ReportUpForm.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  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. <row-list :col="2">
  12. <a-form-item v-show="false" >
  13. <a-input v-decorator="['id']" type="hidden"/>
  14. </a-form-item>
  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. v-decorator="['reportHandleType']"
  23. @change="changeReportFlag"
  24. placeholder="请选择">
  25. <a-select-option
  26. v-for="item in reportHandleTypeMap"
  27. :key="item.value"
  28. :label="item.label"
  29. :value="item.value">{{ item.label }}
  30. </a-select-option>
  31. </a-select>
  32. </a-form-item>
  33. </row-item>
  34. </row-list>
  35. <row-list :col="2">
  36. <row-item v-show="visibleReport|| model.reportHandleType===3">
  37. <a-form-item
  38. label="上报对象"
  39. :labelCol="BaseTool.Constant.labelCol"
  40. :wrapperCol="BaseTool.Constant.wrapperCol"
  41. >
  42. <a-select
  43. @change="changePlanFlag"
  44. v-decorator="['reportLeaderId']"
  45. placeholder="请选择">
  46. <a-select-option
  47. v-for="item in roleUserMap"
  48. :key="item.userId"
  49. :label="item.realName"
  50. :value="item.userId">{{ item.realName }}
  51. </a-select-option>
  52. </a-select>
  53. </a-form-item>
  54. </row-item>
  55. <row-item v-show="!visibleReport&&model.reportHandleType===1">
  56. <a-form-item
  57. label="派工对象"
  58. :labelCol="BaseTool.Constant.labelCol"
  59. :wrapperCol="BaseTool.Constant.wrapperCol"
  60. >
  61. <a-select
  62. @change="changePlanFlag"
  63. v-decorator="['reportLeaderId']"
  64. placeholder="请选择">
  65. <a-select-option
  66. v-for="item in roleUserMap"
  67. :key="item.userId"
  68. :label="item.realName"
  69. :value="item.userId">{{ item.realName }}
  70. </a-select-option>
  71. </a-select>
  72. </a-form-item>
  73. </row-item>
  74. </row-list>
  75. <row-list :col="1">
  76. <row-item v-show="model.reportHandleType===4">
  77. <a-form-item
  78. label="挂起原因"
  79. :labelCol="BaseTool.Constant.labelCol2"
  80. :wrapperCol="BaseTool.Constant.wrapperCol2"
  81. >
  82. <a-textarea v-decorator="['remark']"/>
  83. </a-form-item>
  84. </row-item>
  85. <row-item v-show="(visibleReport&&model.reportHandleType===2) || (!visibleReport&&model.reportHandleType===3)">
  86. <a-form-item
  87. label="上报原因"
  88. :labelCol="BaseTool.Constant.labelCol2"
  89. :wrapperCol="BaseTool.Constant.wrapperCol2"
  90. >
  91. <a-textarea v-decorator="['remark']"/>
  92. </a-form-item>
  93. </row-item>
  94. <row-item v-show="!visibleReport&&model.reportHandleType===1">
  95. <a-form-item
  96. label="上报备注"
  97. :labelCol="BaseTool.Constant.labelCol2"
  98. :wrapperCol="BaseTool.Constant.wrapperCol2"
  99. >
  100. <a-textarea disabled="disabled" v-decorator="['remark']"/>
  101. </a-form-item>
  102. </row-item>
  103. </row-list>
  104. </a-form>
  105. <template slot="footer">
  106. <a-button :loading="confirmLoading" type="primary" @click="save()">保存</a-button>
  107. </template>
  108. </a-modal>
  109. </template>
  110. <script>
  111. import pick from 'lodash.pick'
  112. import { reportRepair } from '@/api/repair/application-form'
  113. import { queryRepairUser } from '@/api/upms/user-dept'
  114. import SparePartUsedSelectModal from '@/views/sqarepartmanage/sparepartused/modules/SparePartUsedSelectModal'
  115. export default {
  116. name: 'ReportUpForm',
  117. data () {
  118. return {
  119. model: null,
  120. confirmLoading: false,
  121. modalTitle: null,
  122. form: this.$form.createForm(this),
  123. visible: false,
  124. chooseType: null,
  125. roleType: null,
  126. roleUserMap: [],
  127. // 下拉框map
  128. reportLeaderId: null,
  129. visibleReport: false,
  130. reportHandleTypeMap: [
  131. {
  132. label: '派工',
  133. value: 1
  134. },
  135. {
  136. label: '上报',
  137. value: 3
  138. },
  139. {
  140. label: '挂起',
  141. value: 4
  142. }
  143. ]
  144. }
  145. },
  146. components: {
  147. SparePartUsedSelectModal
  148. },
  149. props: {
  150. },
  151. created () {
  152. // 下拉框map
  153. },
  154. methods: {
  155. base (record) {
  156. this.visible = true
  157. var queryType = 1
  158. // 如果是空标识添加
  159. if (record.reportHandleType === 2) {
  160. this.modalTitle = '维修上报'
  161. this.visibleReport = true
  162. } else {
  163. this.modalTitle = '上报处理'
  164. this.visibleReport = false
  165. queryType = 2
  166. }
  167. this.model = record
  168. this.roleType = record.roleType
  169. const params = { roleType: record.roleType, deptId: record.repairDeptId, queryType: queryType }
  170. this.getUsers(params)
  171. const { form: { setFieldsValue } } = this
  172. this.$nextTick(() => {
  173. setFieldsValue(Object.assign(pick(record, [
  174. 'id',
  175. 'remark',
  176. 'reportHandleType'
  177. ])))
  178. })
  179. },
  180. getUsers (params) {
  181. queryRepairUser(params).then(res => {
  182. this.roleUserMap = res.data
  183. })
  184. },
  185. changePlanFlag (value) {
  186. this.reportLeaderId = value
  187. },
  188. changeReportFlag (value) {
  189. this.model.reportHandleType = value
  190. },
  191. save () {
  192. const { form: { validateFieldsAndScroll } } = this
  193. this.confirmLoading = true
  194. validateFieldsAndScroll((errors, values) => {
  195. if (errors) {
  196. this.confirmLoading = false
  197. return
  198. }
  199. // 日期处理
  200. this.model.reportLeaderId = values.reportLeaderId
  201. if (this.model.reportHandleType === 1) { // 维修上报处理
  202. // 维修上报处理
  203. if (this.model.roleType === 2 || this.model.roleType === 3) {
  204. this.model.repairUserId = values.reportLeaderId
  205. } else {
  206. this.model.dispatchUserId = values.reportLeaderId
  207. }
  208. }
  209. this.model.remark = values.remark
  210. this.model.roleType = this.roleType // 上报人角色类型 3 工程师
  211. reportRepair(this.model).then(() => {
  212. this.$message.info('操作成功')
  213. if (this.model.reportHandleType === 2) {
  214. this.handleCancel(2)
  215. } else {
  216. this.handleCancel(1)
  217. }
  218. }).catch(() => {
  219. this.confirmLoading = false
  220. })
  221. })
  222. },
  223. handleCancel (values) {
  224. this.visible = false
  225. this.confirmLoading = false
  226. this.form.resetFields()
  227. if (values === 1) {
  228. this.$emit('ok')
  229. } else {
  230. this.$emit('okk')
  231. }
  232. /* if (this.BaseTool.Object.isNotBlank(values)) {
  233. this.$emit('ok')
  234. } else {
  235. this.$emit('ok')
  236. } */
  237. }
  238. }
  239. }
  240. </script>