149 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
		
		
			
		
	
	
			149 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
|   | <template> | |||
|  |   <a-modal | |||
|  |     title="编辑" | |||
|  |     :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 | |||
|  |           label="发生时间" | |||
|  |           :labelCol="labelCol" | |||
|  |           :wrapperCol="wrapperCol" | |||
|  |           has-feedback | |||
|  |         > | |||
|  |           <a-date-picker show-time style="width: 100%" placeholder="请选择发生时间" v-decorator="['happenTime',{rules: [{ required: true, message: '请选择发生时间!' }]}]" @change="happenTimeOnChange"/> | |||
|  |         </a-form-item> | |||
|  |         <a-form-item | |||
|  |           label="事件类型" | |||
|  |           :labelCol="labelCol" | |||
|  |           :wrapperCol="wrapperCol" | |||
|  |           has-feedback | |||
|  |         > | |||
|  |           <a-input placeholder="请输入事件类型" v-decorator="['eventType', {rules: [{required: true, message: '请输入事件类型!'}]}]" /> | |||
|  |         </a-form-item> | |||
|  |         <a-form-item | |||
|  |           label="标题" | |||
|  |           :labelCol="labelCol" | |||
|  |           :wrapperCol="wrapperCol" | |||
|  |           has-feedback | |||
|  |         > | |||
|  |           <a-input placeholder="请输入标题" v-decorator="['title', {rules: [{required: true, message: '请输入标题!'}]}]" /> | |||
|  |         </a-form-item> | |||
|  |         <a-form-item | |||
|  |           label="内容" | |||
|  |           :labelCol="labelCol" | |||
|  |           :wrapperCol="wrapperCol" | |||
|  |           has-feedback | |||
|  |         > | |||
|  |           <a-textarea placeholder="请输入内容" v-decorator="['content', {rules: [{required: true, message: '请输入内容!'}]}]" :auto-size="{ minRows: 3, maxRows: 6 }"/> | |||
|  |         </a-form-item> | |||
|  |         <a-form-item | |||
|  |           label="应对处理" | |||
|  |           :labelCol="labelCol" | |||
|  |           :wrapperCol="wrapperCol" | |||
|  |           has-feedback | |||
|  |         > | |||
|  |           <a-textarea placeholder="请输入应对处理" v-decorator="['cope', {rules: [{required: true, message: '请输入应对处理!'}]}]" :auto-size="{ minRows: 3, maxRows: 6 }"/> | |||
|  |         </a-form-item> | |||
|  |         <a-form-item | |||
|  |           label="责任主体" | |||
|  |           :labelCol="labelCol" | |||
|  |           :wrapperCol="wrapperCol" | |||
|  |           has-feedback | |||
|  |         > | |||
|  |           <a-textarea placeholder="请输入责任主体" v-decorator="['responsible', {rules: [{required: true, message: '请输入责任主体!'}]}]" :auto-size="{ minRows: 3, maxRows: 6 }"/> | |||
|  |         </a-form-item> | |||
|  |       </a-form> | |||
|  |     </a-spin> | |||
|  |   </a-modal> | |||
|  | </template> | |||
|  | 
 | |||
|  | <script> | |||
|  |   import moment from 'moment' | |||
|  |   import { scrSecurityEdit } from '@/api/modular/main/scrsecurity/scrSecurityManage' | |||
|  |   export default { | |||
|  |     data () { | |||
|  |       return { | |||
|  |         labelCol: { | |||
|  |           xs: { span: 24 }, | |||
|  |           sm: { span: 5 } | |||
|  |         }, | |||
|  |         wrapperCol: { | |||
|  |           xs: { span: 24 }, | |||
|  |           sm: { span: 15 } | |||
|  |         }, | |||
|  |         happenTimeDateString: '', | |||
|  |         visible: false, | |||
|  |         confirmLoading: false, | |||
|  |         form: this.$form.createForm(this) | |||
|  |       } | |||
|  |     }, | |||
|  |     methods: { | |||
|  |       moment, | |||
|  |       // 初始化方法
 | |||
|  |       edit (record) { | |||
|  |         this.visible = true | |||
|  |         setTimeout(() => { | |||
|  |           this.form.setFieldsValue( | |||
|  |             { | |||
|  |               id: record.id, | |||
|  |               eventType: record.eventType, | |||
|  |               title: record.title, | |||
|  |               content: record.content, | |||
|  |               cope: record.cope, | |||
|  |               responsible: record.responsible | |||
|  |             } | |||
|  |           ) | |||
|  |         }, 100) | |||
|  |         // 时间单独处理
 | |||
|  |         if (record.happenTime) { | |||
|  |             this.form.getFieldDecorator('happenTime', { initialValue: moment(record.happenTime, 'YYYY-MM-DD HH:mm:ss') }) | |||
|  |             this.happenTimeDateString = moment(record.happenTime).format('YYYY-MM-DD HH:mm:ss') | |||
|  |         } | |||
|  |       }, | |||
|  |       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]) | |||
|  |               } | |||
|  |             } | |||
|  |             values.happenTime = this.happenTimeDateString || null | |||
|  |             scrSecurityEdit(values).then((res) => { | |||
|  |               if (res.success) { | |||
|  |                 this.$message.success('编辑成功') | |||
|  |                 this.confirmLoading = false | |||
|  |                 this.$emit('ok', values) | |||
|  |                 this.handleCancel() | |||
|  |               } else { | |||
|  |                 this.$message.error('编辑失败')//  + res.message
 | |||
|  |               } | |||
|  |             }).finally((res) => { | |||
|  |               this.confirmLoading = false | |||
|  |             }) | |||
|  |           } else { | |||
|  |             this.confirmLoading = false | |||
|  |           } | |||
|  |         }) | |||
|  |       }, | |||
|  |       happenTimeOnChange(date, dateString) { | |||
|  |         this.happenTimeDateString = dateString | |||
|  |       }, | |||
|  |       handleCancel () { | |||
|  |         this.happenTimeDateString = '' | |||
|  |         this.form.getFieldDecorator('happenTime', { initialValue: null }) | |||
|  |         this.form.resetFields() | |||
|  |         this.visible = false | |||
|  |       } | |||
|  |     } | |||
|  |   } | |||
|  | </script> |