| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  | <template> | 
					
						
							|  |  |  |  |   <a-modal | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |     title="编辑" | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |     :width="900" | 
					
						
							|  |  |  |  |     :visible="visible" | 
					
						
							|  |  |  |  |     :confirmLoading="confirmLoading" | 
					
						
							|  |  |  |  |     @ok="handleSubmit" | 
					
						
							|  |  |  |  |     @cancel="handleCancel" | 
					
						
							|  |  |  |  |   > | 
					
						
							|  |  |  |  |     <a-spin :spinning="confirmLoading"> | 
					
						
							|  |  |  |  |       <a-form :form="form"> | 
					
						
							|  |  |  |  |         <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item> | 
					
						
							|  |  |  |  |         <a-form-item | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |           label="作业票" | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |           :labelCol="labelCol" | 
					
						
							|  |  |  |  |           :wrapperCol="wrapperCol" | 
					
						
							|  |  |  |  |         > | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |           <a-select style="width: 100%" placeholder="请选择作业票" v-decorator="['name', {rules: [{ required: true, message: '请选择作业票!' }]}]"> | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |             <a-select-option v-for="(item,index) in nameData" :key="index" :value="item.code">{{ item.name }}</a-select-option> | 
					
						
							|  |  |  |  |           </a-select> | 
					
						
							|  |  |  |  |         </a-form-item> | 
					
						
							|  |  |  |  |         <a-form-item | 
					
						
							|  |  |  |  |           label="月份" | 
					
						
							|  |  |  |  |           :labelCol="labelCol" | 
					
						
							|  |  |  |  |           :wrapperCol="wrapperCol" | 
					
						
							|  |  |  |  |           has-feedback | 
					
						
							|  |  |  |  |         > | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |           <a-month-picker show-time style="width: 100%" placeholder="请选择月份" v-decorator="['happenTime',{rules: [{ required: true, message: '请选择月份!' }]}]" @change="happenTimeOnChange"/> | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |         </a-form-item> | 
					
						
							|  |  |  |  |         <a-form-item | 
					
						
							|  |  |  |  |           label="数量" | 
					
						
							|  |  |  |  |           :labelCol="labelCol" | 
					
						
							|  |  |  |  |           :wrapperCol="wrapperCol" | 
					
						
							|  |  |  |  |           has-feedback | 
					
						
							|  |  |  |  |         > | 
					
						
							|  |  |  |  |           <a-input-number placeholder="请输入数量" style="width: 100%" v-decorator="['totalNum', {rules: [{required: true, message: '请输入数量!'}]}]" /> | 
					
						
							|  |  |  |  |         </a-form-item> | 
					
						
							| 
									
										
										
										
											2025-10-17 16:09:44 +08:00
										 |  |  |  |         <a-form-item | 
					
						
							|  |  |  |  |           label="施工地点" | 
					
						
							|  |  |  |  |           :labelCol="labelCol" | 
					
						
							|  |  |  |  |           :wrapperCol="wrapperCol" | 
					
						
							|  |  |  |  |         > | 
					
						
							|  |  |  |  |           <a-select style="width: 100%" placeholder="请选择施工地点" v-decorator="['workPlace', {rules: [{ required: true, message: '请选择施工地点!' }]}]"> | 
					
						
							|  |  |  |  |             <a-select-option v-for="(item,index) in workPlaceData" :key="index" :value="item.code">{{ item.name }}</a-select-option> | 
					
						
							|  |  |  |  |           </a-select> | 
					
						
							|  |  |  |  |         </a-form-item> | 
					
						
							|  |  |  |  |         <a-form-item | 
					
						
							|  |  |  |  |           label="级别" | 
					
						
							|  |  |  |  |           :labelCol="labelCol" | 
					
						
							|  |  |  |  |           :wrapperCol="wrapperCol" | 
					
						
							|  |  |  |  |         > | 
					
						
							|  |  |  |  |           <a-select style="width: 100%" placeholder="请选择级别" v-decorator="['level', {rules: [{ required: true, message: '请选择级别!' }]}]"> | 
					
						
							|  |  |  |  |             <a-select-option v-for="(item,index) in levelData" :key="index" :value="item.code">{{ item.name }}</a-select-option> | 
					
						
							|  |  |  |  |           </a-select> | 
					
						
							|  |  |  |  |         </a-form-item> | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |       </a-form> | 
					
						
							|  |  |  |  |     </a-spin> | 
					
						
							|  |  |  |  |   </a-modal> | 
					
						
							|  |  |  |  | </template> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | <script> | 
					
						
							|  |  |  |  |   import { scrWorkTaskEdit } from '@/api/modular/main/scrworktask/scrWorkTaskManage' | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |   import moment from 'moment' | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |   export default { | 
					
						
							|  |  |  |  |     data () { | 
					
						
							|  |  |  |  |       return { | 
					
						
							|  |  |  |  |         labelCol: { | 
					
						
							|  |  |  |  |           xs: { span: 24 }, | 
					
						
							|  |  |  |  |           sm: { span: 5 } | 
					
						
							|  |  |  |  |         }, | 
					
						
							|  |  |  |  |         wrapperCol: { | 
					
						
							|  |  |  |  |           xs: { span: 24 }, | 
					
						
							|  |  |  |  |           sm: { span: 15 } | 
					
						
							|  |  |  |  |         }, | 
					
						
							|  |  |  |  |         nameData: [], | 
					
						
							|  |  |  |  |         visible: false, | 
					
						
							|  |  |  |  |         confirmLoading: false, | 
					
						
							| 
									
										
										
										
											2025-10-17 16:09:44 +08:00
										 |  |  |  |         form: this.$form.createForm(this), | 
					
						
							|  |  |  |  |         workPlaceData: [], | 
					
						
							|  |  |  |  |         levelData: [] | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |       } | 
					
						
							|  |  |  |  |     }, | 
					
						
							|  |  |  |  |     methods: { | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |       moment, | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |       // 初始化方法
 | 
					
						
							|  |  |  |  |       edit (record) { | 
					
						
							|  |  |  |  |         this.visible = true | 
					
						
							|  |  |  |  |         const nameOption = this.$options | 
					
						
							|  |  |  |  |         this.nameData = nameOption.filters['dictData']('work_task_type') | 
					
						
							| 
									
										
										
										
											2025-10-17 16:09:44 +08:00
										 |  |  |  |         const workPlaceOption = this.$options | 
					
						
							|  |  |  |  |         this.workPlaceData = workPlaceOption.filters['dictData']('work_place') | 
					
						
							|  |  |  |  |         const levelOption = this.$options | 
					
						
							|  |  |  |  |         this.levelData = levelOption.filters['dictData']('work_level') | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |         setTimeout(() => { | 
					
						
							|  |  |  |  |           this.form.setFieldsValue( | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |               id: record.id, | 
					
						
							|  |  |  |  |               name: record.name, | 
					
						
							| 
									
										
										
										
											2025-10-17 16:09:44 +08:00
										 |  |  |  |               totalNum: record.totalNum, | 
					
						
							|  |  |  |  |               workPlace: record.workPlace, | 
					
						
							|  |  |  |  |               level: record.level | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |           ) | 
					
						
							|  |  |  |  |         }, 100) | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |         if (record.happenTime) { | 
					
						
							|  |  |  |  |             this.form.getFieldDecorator('happenTime', { initialValue: moment(record.happenTime, 'YYYY-MM-DD') }) | 
					
						
							|  |  |  |  |             this.happenTimeDateString = moment(record.happenTime).format('YYYY-MM-DD') | 
					
						
							|  |  |  |  |         } | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |       }, | 
					
						
							|  |  |  |  |       handleSubmit () { | 
					
						
							|  |  |  |  |         const { form: { validateFields } } = this | 
					
						
							|  |  |  |  |         this.confirmLoading = true | 
					
						
							|  |  |  |  |         validateFields((errors, values) => { | 
					
						
							|  |  |  |  |           if (!errors) { | 
					
						
							|  |  |  |  |             for (const key in values) { | 
					
						
							|  |  |  |  |               if (typeof (values[key]) === 'object' && values[key] != null) { | 
					
						
							|  |  |  |  |                 values[key] = JSON.stringify(values[key]) | 
					
						
							|  |  |  |  |               } | 
					
						
							|  |  |  |  |             } | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |             values.happenTime = moment(this.happenTimeDateString).format('YYYY-MM-DD') || null | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |             scrWorkTaskEdit(values).then((res) => { | 
					
						
							|  |  |  |  |               if (res.success) { | 
					
						
							|  |  |  |  |                 this.$message.success('编辑成功') | 
					
						
							|  |  |  |  |                 this.confirmLoading = false | 
					
						
							|  |  |  |  |                 this.$emit('ok', values) | 
					
						
							|  |  |  |  |                 this.handleCancel() | 
					
						
							|  |  |  |  |               } else { | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |                 this.$message.error('编辑失败:' + res.message)//  + res.message
 | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |               } | 
					
						
							|  |  |  |  |             }).finally((res) => { | 
					
						
							|  |  |  |  |               this.confirmLoading = false | 
					
						
							|  |  |  |  |             }) | 
					
						
							|  |  |  |  |           } else { | 
					
						
							|  |  |  |  |             this.confirmLoading = false | 
					
						
							|  |  |  |  |           } | 
					
						
							|  |  |  |  |         }) | 
					
						
							|  |  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |       happenTimeOnChange(date, dateString) { | 
					
						
							|  |  |  |  |         this.happenTimeDateString = dateString | 
					
						
							|  |  |  |  |       }, | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |       handleCancel () { | 
					
						
							| 
									
										
										
										
											2025-10-14 17:41:30 +08:00
										 |  |  |  |         this.happenTimeDateString = '' | 
					
						
							|  |  |  |  |         this.form.getFieldDecorator('happenTime', { initialValue: null }) | 
					
						
							| 
									
										
										
										
											2025-10-13 18:17:10 +08:00
										 |  |  |  |         this.form.resetFields() | 
					
						
							|  |  |  |  |         this.visible = false | 
					
						
							|  |  |  |  |       } | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  |   } | 
					
						
							|  |  |  |  | </script> |