ReportUpForm.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. <template>
  2. <a-modal
  3. :title="modalTitle"
  4. :width="800"
  5. :visible="visible"
  6. :confirmLoading="confirmLoading"
  7. class="ant-modal2"
  8. @cancel="handleCancel"
  9. >
  10. <a-form :form="form">
  11. <a-form-item v-show="false" >
  12. <a-input v-decorator="['id']" type="hidden"/>
  13. </a-form-item>
  14. <row-list :col="2">
  15. <row-item v-show='visibleReport'>
  16. <a-form-item
  17. label="上报对象"
  18. :labelCol="BaseTool.Constant.labelCol"
  19. :wrapperCol="BaseTool.Constant.wrapperCol"
  20. >
  21. <a-select
  22. @change="changePlanFlag"
  23. v-decorator="['reportLeaderId']"
  24. placeholder="请选择">
  25. <a-select-option
  26. v-for="item in roleUserMap"
  27. :key="item.userId"
  28. :label="item.realName"
  29. :value="item.userId">{{ item.realName }}
  30. </a-select-option>
  31. </a-select>
  32. </a-form-item>
  33. </row-item>
  34. <row-item v-show='!visibleReport'>
  35. <a-form-item
  36. label="派工对象"
  37. :labelCol="BaseTool.Constant.labelCol"
  38. :wrapperCol="BaseTool.Constant.wrapperCol"
  39. >
  40. <a-select
  41. @change="changePlanFlag"
  42. v-decorator="['reportLeaderId']"
  43. placeholder="请选择">
  44. <a-select-option
  45. v-for="item in roleUserMap"
  46. :key="item.userId"
  47. :label="item.realName"
  48. :value="item.userId">{{ item.realName }}
  49. </a-select-option>
  50. </a-select>
  51. </a-form-item>
  52. </row-item>
  53. </row-list>
  54. <row-list :col="1">
  55. <row-item v-show='visibleReport'>
  56. <a-form-item
  57. label="上报原因"
  58. :labelCol="BaseTool.Constant.labelCol2"
  59. :wrapperCol="BaseTool.Constant.wrapperCol2"
  60. >
  61. <a-textarea v-decorator="['remark']"/>
  62. </a-form-item>
  63. </row-item>
  64. <row-item v-show='!visibleReport'>
  65. <a-form-item
  66. label="上报备注"
  67. :labelCol="BaseTool.Constant.labelCol2"
  68. :wrapperCol="BaseTool.Constant.wrapperCol2"
  69. >
  70. <a-textarea disabled='disabled' v-decorator="['remark']"/>
  71. </a-form-item>
  72. </row-item>
  73. </row-list>
  74. </a-form>
  75. <template slot="footer">
  76. <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
  77. </template>
  78. </a-modal>
  79. </template>
  80. <script>
  81. import pick from 'lodash.pick'
  82. import { reportRepair } from '@/api/repair/application-form'
  83. import { queryRepairUser } from '@/api/upms/user-dept'
  84. import SparePartUsedSelectModal from '@/views/sqarepartmanage/sparepartused/modules/SparePartUsedSelectModal'
  85. export default {
  86. name: 'ReportUpForm',
  87. data () {
  88. return {
  89. model: null,
  90. confirmLoading: false,
  91. modalTitle: null,
  92. form: this.$form.createForm(this),
  93. visible: false,
  94. chooseType: null,
  95. roleType: null,
  96. roleUserMap: [],
  97. // 下拉框map
  98. reportLeaderId: null,
  99. visibleReport: false
  100. }
  101. },
  102. components: {
  103. SparePartUsedSelectModal
  104. },
  105. props: {
  106. },
  107. created () {
  108. // 下拉框map
  109. },
  110. methods: {
  111. base (record) {
  112. this.visible = true
  113. var queryType = 1
  114. // 如果是空标识添加
  115. if (record.reportHandleType === 2) {
  116. this.modalTitle = '维修上报'
  117. this.visibleReport = true
  118. if (record.roleType === 1) {
  119. // 维修人上报,type 3
  120. record.reportHandleType = 3
  121. }
  122. } else {
  123. this.modalTitle = '上报处理'
  124. this.visibleReport = false
  125. queryType = 2
  126. }
  127. this.model = record
  128. const params = { roleType: record.roleType, deptId: record.repairDeptId, queryType: queryType }
  129. this.getUsers(params)
  130. const { form: { setFieldsValue } } = this
  131. this.$nextTick(() => {
  132. setFieldsValue(Object.assign(pick(record, [
  133. 'id',
  134. 'remark'
  135. ])))
  136. })
  137. },
  138. getUsers (params) {
  139. queryRepairUser(params).then(res => {
  140. this.roleUserMap = res.data
  141. })
  142. },
  143. changePlanFlag (value) {
  144. this.reportLeaderId = value
  145. },
  146. save () {
  147. const { form: { validateFieldsAndScroll } } = this
  148. this.confirmLoading = true
  149. validateFieldsAndScroll((errors, values) => {
  150. if (errors) {
  151. this.confirmLoading = false
  152. return
  153. }
  154. // 日期处理
  155. this.model.reportLeaderId = values.reportLeaderId
  156. if (this.model.reportHandleType === 1) { // 维修上报
  157. // 维修上报处理
  158. if (this.model.roleType === 2 || this.model.roleType === 3) {
  159. this.model.repairUserId = values.reportLeaderId
  160. } else {
  161. this.model.dispatchUserId = values.reportLeaderId
  162. }
  163. }
  164. this.model.remark = values.remark
  165. reportRepair(this.model).then(() => {
  166. this.$message.info('操作成功')
  167. if (this.model.reportHandleType !== 1) {
  168. this.$router.push({ path: '/repair/form/mine' })
  169. } else {
  170. this.handleCancel(values)
  171. }
  172. }).catch(() => {
  173. this.confirmLoading = false
  174. })
  175. })
  176. },
  177. handleCancel (values) {
  178. this.visible = false
  179. this.confirmLoading = false
  180. this.form.resetFields()
  181. if (this.BaseTool.Object.isNotBlank(values)) {
  182. this.$emit('ok')
  183. } else {
  184. this.$emit('ok')
  185. }
  186. }
  187. }
  188. }
  189. </script>