font-end/src/views/main/scrsecurity/addForm.vue
zhangyanan 9414356df1 修改
2025-10-14 17:41:30 +08:00

132 lines
4.2 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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
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 { scrSecurityAdd } 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: {
// 初始化方法
add (record) {
this.visible = true
},
/**
* 提交表单
*/
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
scrSecurityAdd(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>