SealDestroyModal.vue 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. <template>
  2. <a-modal
  3. :title="title"
  4. :width="width"
  5. :visible="visible"
  6. :confirmLoading="confirmLoading"
  7. @ok="handleOk"
  8. @cancel="handleCancel"
  9. cancelText="关闭">
  10. <a-spin :spinning="confirmLoading">
  11. <a-form :form="form">
  12. <a-col span="8">
  13. <a-form-item label="印章名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
  14. <j-popup
  15. v-decorator="['sealName', validatorRules.sealName]"
  16. :trigger-change="true"
  17. org-fields="seal_name,seal_material,seal_size,id"
  18. dest-fields="sealName,sealMaterial,sealSize,sealId"
  19. code="seal_select"
  20. @callback="popupCallback"/>
  21. </a-form-item>
  22. </a-col>
  23. <a-col span="8">
  24. <a-form-item label="印制材质" :labelCol="labelCol" :wrapperCol="wrapperCol">
  25. <a-input v-decorator="[ 'sealMaterial', validatorRules.sealMaterial]" :disabled="true" placeholder="请输入印制材质"></a-input>
  26. </a-form-item>
  27. </a-col>
  28. <a-col span="8">
  29. <a-form-item label="印章尺寸" :labelCol="labelCol" :wrapperCol="wrapperCol">
  30. <a-input v-decorator="[ 'sealSize', validatorRules.sealSize]" :disabled="true" placeholder="请输入印章尺寸"></a-input>
  31. </a-form-item>
  32. </a-col>
  33. <a-col span="8">
  34. <a-form-item label="销毁日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
  35. <j-date placeholder="请选择销毁日期" v-decorator="[ 'destroyDate', validatorRules.destroyDate]" :trigger-change="true" style="width: 100%"/>
  36. </a-form-item>
  37. </a-col>
  38. <a-col span="8">
  39. <a-form-item label="经办人" :labelCol="labelCol" :wrapperCol="wrapperCol">
  40. <j-popup
  41. v-decorator="['handlingPerson', validatorRules.handlingPerson]"
  42. :trigger-change="true"
  43. org-fields="realname,depart_name"
  44. dest-fields="handlingPerson,handlingDept"
  45. code="user_dept"
  46. @callback="popupCallback"/>
  47. </a-form-item>
  48. </a-col>
  49. <a-col span="8">
  50. <a-form-item label="经办部门" :labelCol="labelCol" :wrapperCol="wrapperCol">
  51. <a-input v-decorator="[ 'handlingDept', validatorRules.handlingDept]" :disabled="true" placeholder="请输入经办部门"></a-input>
  52. </a-form-item>
  53. </a-col>
  54. <a-col span="24">
  55. <a-form-item label="销毁原因" :labelCol="labelCol1" :wrapperCol="wrapperCol1">
  56. <a-textarea v-decorator="['destroyResult', validatorRules.destroyResult]" rows="1" placeholder="请输入销毁原因"/>
  57. </a-form-item>
  58. </a-col>
  59. <a-col span="24">
  60. <a-form-item label="备注" :labelCol="labelCol1" :wrapperCol="wrapperCol1">
  61. <a-textarea v-decorator="['remark', validatorRules.remark]" rows="1" placeholder="请输入备注"/>
  62. </a-form-item>
  63. </a-col>
  64. <a-col span="24">
  65. <a-form-item label="附件" :labelCol="labelCol1" :wrapperCol="wrapperCol1">
  66. <j-upload v-decorator="['file', validatorRules.file]" :trigger-change="true"></j-upload>
  67. </a-form-item>
  68. </a-col>
  69. </a-form>
  70. </a-spin>
  71. </a-modal>
  72. </template>
  73. <script>
  74. import { httpAction } from '@/api/manage'
  75. import pick from 'lodash.pick'
  76. import { validateDuplicateValue } from '@/utils/util'
  77. import JDate from '@/components/jeecg/JDate'
  78. import JUpload from '@/components/jeecg/JUpload'
  79. export default {
  80. name: "SealDestroyModal",
  81. components: {
  82. JDate,
  83. JUpload,
  84. },
  85. data () {
  86. return {
  87. form: this.$form.createForm(this),
  88. title:"操作",
  89. width:1150,
  90. visible: false,
  91. model: {},
  92. labelCol: {
  93. xs: { span: 24 },
  94. sm: { span: 6 },
  95. },
  96. wrapperCol: {
  97. xs: { span: 24 },
  98. sm: { span: 15 },
  99. },
  100. labelCol1: {
  101. xs: { span: 24 },
  102. sm: { span: 2 },
  103. },
  104. wrapperCol1: {
  105. xs: { span: 24 },
  106. sm: { span: 21 },
  107. },
  108. sealId:'',
  109. confirmLoading: false,
  110. validatorRules: {
  111. sealName: {rules: [
  112. {required: true, message: '请输入印章名称!'},
  113. ]},
  114. sealMaterial: {rules: [
  115. ]},
  116. sealSize: {rules: [
  117. ]},
  118. destroyDate: {rules: [
  119. {required: true, message: '请输入销毁日期!'},
  120. ]},
  121. handlingPerson: {rules: [
  122. {required: true, message: '请输入经办人!'},
  123. ]},
  124. handlingDept: {rules: [
  125. ]},
  126. destroyResult: {rules: [
  127. {required: true, message: '请输入销毁原因!'},
  128. ]},
  129. remark: {rules: [
  130. {required: true, message: '请输入备注!'},
  131. ]},
  132. file: {rules: [
  133. ]},
  134. },
  135. url: {
  136. add: "/sealDestroy/sealDestroy/add",
  137. edit: "/sealDestroy/sealDestroy/edit",
  138. }
  139. }
  140. },
  141. created () {
  142. },
  143. methods: {
  144. add () {
  145. this.edit({});
  146. },
  147. edit (record) {
  148. this.form.resetFields();
  149. this.model = Object.assign({}, record);
  150. this.visible = true;
  151. this.$nextTick(() => {
  152. this.form.setFieldsValue(pick(this.model,'sealName','sealMaterial','sealSize','destroyDate','handlingPerson','handlingDept','destroyResult','remark','file'))
  153. })
  154. },
  155. close () {
  156. this.$emit('close');
  157. this.visible = false;
  158. },
  159. handleOk () {
  160. const that = this;
  161. // 触发表单验证
  162. this.form.validateFields((err, values) => {
  163. if (!err) {
  164. that.confirmLoading = true;
  165. let httpurl = '';
  166. let method = '';
  167. if(!this.model.id){
  168. httpurl+=this.url.add;
  169. method = 'post';
  170. }else{
  171. httpurl+=this.url.edit;
  172. method = 'put';
  173. }
  174. let formData = Object.assign(this.model, values);
  175. formData.sealId = this.sealId;
  176. console.log("表单提交数据",formData)
  177. httpAction(httpurl,formData,method).then((res)=>{
  178. if(res.success){
  179. that.$message.success(res.message);
  180. that.$emit('ok');
  181. }else{
  182. that.$message.warning(res.message);
  183. }
  184. }).finally(() => {
  185. that.confirmLoading = false;
  186. that.close();
  187. })
  188. }
  189. })
  190. },
  191. handleCancel () {
  192. this.close()
  193. },
  194. popupCallback(row){
  195. console.log(row.sealId)
  196. if(typeof(row.sealId)!="undefined"){
  197. this.sealId = row.sealId;
  198. }
  199. this.form.setFieldsValue(pick(row,'sealName','sealMaterial','sealSize','destroyDate','handlingPerson','handlingDept','destroyResult','remark','file'))
  200. console.log(this.sealId)
  201. },
  202. }
  203. }
  204. </script>