AnalysisSystemForRadionucli.../src/views/system/modules/DictItemModal.vue

170 lines
5.0 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="title"
:width="800"
:visible="visible"
:maskClosable="false"
:confirmLoading="confirmLoading"
@ok="handleOk"
@cancel="handleCancel"
:cancelButtonProps="{ props: { type: 'warn' } }"
>
<a-spin :spinning="confirmLoading">
<a-form-model ref="form" :model="model" :rules="validatorRules">
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="itemText" label="Name">
<a-input placeholder="Please Enter Name" v-model="model.itemText" />
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="itemValue" label="Item Value">
<a-input placeholder="Please Enter Item Value" v-model="model.itemValue" />
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Description">
<a-input v-model="model.description" />
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Sort">
<a-input-number :min="1" v-model="model.sortOrder" />
The Smaller The Value, the More Advanced
</a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Enable" hasFeedback>
<a-switch checkedChildren="Enable" unCheckedChildren="Disable" @change="onChose" v-model="visibleCheck" />
</a-form-model-item>
</a-form-model>
</a-spin>
</a-modal>
</template>
<script>
import pick from 'lodash.pick'
import { addDictItem, editDictItem } from '@/api/api'
import { getAction } from '@api/manage'
export default {
name: 'DictItemModal',
data() {
return {
title: '操作',
visible: false,
visibleCheck: true,
model: {},
dictId: '',
status: 1,
labelCol: {
xs: { span: 24 },
sm: { span: 5 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 },
},
confirmLoading: false,
validatorRules: {
itemText: [{ required: true, message: 'Please Enter Name' }],
itemValue: [{ required: true, message: 'Please Enter Item Value' }, { validator: this.validateItemValue }],
},
}
},
created() {},
methods: {
add(dictId) {
this.dictId = dictId
//初始化默认值
this.edit({ sortOrder: 1, status: 1 })
},
edit(record) {
if (record.id) {
this.dictId = record.dictId
}
this.status = record.status
this.visibleCheck = record.status == 1 ? true : false
this.model = Object.assign({}, record)
this.model.dictId = this.dictId
this.model.status = this.status
this.visible = true
},
onChose(checked) {
if (checked) {
this.status = 1
this.visibleCheck = true
} else {
this.status = 0
this.visibleCheck = false
}
},
// 确定
handleOk() {
const that = this
// 触发表单验证
this.$refs.form.validate((valid) => {
if (valid) {
that.confirmLoading = true
this.model.itemText = (this.model.itemText || '').trim()
this.model.itemValue = (this.model.itemValue || '').trim()
this.model.description = (this.model.description || '').trim()
this.model.status = this.status
let obj
if (!this.model.id) {
obj = addDictItem(this.model)
} else {
obj = editDictItem(this.model)
}
obj
.then((res) => {
if (res.success) {
that.$message.success(res.message)
that.$emit('ok')
} else {
that.$message.warning(res.message)
}
})
.finally(() => {
that.confirmLoading = false
that.close()
})
} else {
return false
}
})
},
// 关闭
handleCancel() {
this.close()
},
close() {
this.$emit('close')
this.visible = false
this.$refs.form.resetFields()
},
validateItemValue(rule, value, callback) {
let param = {
itemValue: value,
dictId: this.dictId,
}
if (this.model.id) {
param.id = this.model.id
}
if (value) {
let reg = new RegExp("[`~!@#$^&*()=|{}'.<>《》/?!¥()—【】‘;:”“。,、?]")
if (reg.test(value)) {
callback('Cannot Have Special Charactors')
} else {
//update--begin--autor:lvdandan-----date:20201203------forJT-27【数据字典】字典 - 数据值可重复
getAction('/sys/dictItem/dictItemCheck', param).then((res) => {
if (res.success) {
callback()
} else {
callback(res.message)
}
})
//update--end--autor:lvdandan-----date:20201203------forJT-27【数据字典】字典 - 数据值可重复
}
} else {
callback()
}
},
},
}
</script>