wms_vue/src/view/dict/modal/data/edit.vue

131 lines
3.4 KiB
Vue

<template>
<a-modal :open="visible" title="修改字典" cancelText="取消" okText="提交" @ok="submit" @cancel="cancel">
<a-form ref="formRef" :model="formState" :rules="formRules" :label-col="labelCol" :wrapper-col="wrapperCol">
<a-form-item ref="label" label="中文标签" name="label">
<a-input v-model:value="formState.label" />
</a-form-item>
<a-form-item ref="value" label="标识" name="value">
<a-input v-model:value="formState.value" />
</a-form-item>
<a-form-item ref="code" label="类型" name="code">
<a-input v-model:value="formState.code" />
</a-form-item>
<a-form-item ref="color" label="颜色" name="color">
<a-input v-model:value="formState.color" />
</a-form-item>
<a-form-item ref="sort" label="排序" name="sort">
<a-input-number v-model:value="formState.sort" />
</a-form-item>
<a-form-item label="状态" name="enable">
<a-switch v-model:checked="formState.enable" />
</a-form-item>
<a-form-item label="备注" name="remark">
<a-textarea v-model:value="formState.remark" />
</a-form-item>
</a-form>
</a-modal>
</template>
<script>
import {
message
} from '@hwork/ant-design-vue';
import {
edit
} from "@/api/module/dictData";
import {
defineComponent,
reactive,
ref,
toRaw,
watch
} from "vue";
export default defineComponent({
props: {
visible: {
type: Boolean,
},
record: {
type: Object,
}
},
emit: ["close"],
setup(props, context) {
const formRef = ref();
const formState = reactive({});
const formRules = {
name: [{
required: true,
message: '请输入名称',
trigger: 'blur'
}, ],
code: [{
required: true,
message: '请输入标识',
trigger: 'blur'
}, ]
};
watch(props, (props) => {
formState.id = props.record.id;
formState.label = props.record.label;
formState.value = props.record.value;
formState.color = props.record.color;
formState.code = props.record.code;
formState.sort = props.record.sort;
formState.enable = props.record.enable;
formState.remark = props.record.remark;
})
const submit = (e) => {
formRef.value
.validate()
.then(() => {
edit(toRaw(formState)).then((response) => {
if (response.success) {
message.success({
content: '保存成功',
duration: 1
}).then(() => {
cancel();
});
} else {
message.success({
content: '保存失败',
duration: 1
}).then(() => {
cancel();
});
}
});
})
.catch(error => {
console.log('error', error);
});
};
const cancel = (e) => {
formRef.value.resetFields();
context.emit("close", false);
};
return {
submit,
cancel,
formRef,
formState,
formRules,
labelCol: {
span: 6
},
wrapperCol: {
span: 18
},
};
},
});
</script>