|
|
@@ -51,7 +51,6 @@
|
|
|
>
|
|
|
<el-input
|
|
|
v-model="item.itemValue"
|
|
|
- W
|
|
|
placeholder="请输入"
|
|
|
type="textarea"
|
|
|
show-word-limit
|
|
|
@@ -65,7 +64,7 @@
|
|
|
>
|
|
|
<el-input
|
|
|
v-model="item.itemCode"
|
|
|
- placeholder="请输入字典项编码"
|
|
|
+ placeholder="请输入"
|
|
|
type="textarea"
|
|
|
show-word-limit
|
|
|
maxlength="500"
|
|
|
@@ -346,20 +345,28 @@
|
|
|
const handleSubmit = async () => {
|
|
|
if (!formRef.value) return;
|
|
|
|
|
|
- await formRef.value.validate((valid: boolean) => {
|
|
|
- if (valid) {
|
|
|
- const cloneFormData = cloneDeep(formData) as FormData;
|
|
|
- const submitDictDataList = cloneFormData.sysDictDataList.map((item) => {
|
|
|
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
|
- const { fileList, ...rest } = item;
|
|
|
- item.dictCode = formData.dictCode;
|
|
|
- return rest;
|
|
|
- });
|
|
|
- cloneFormData.sysDictDataList = submitDictDataList;
|
|
|
-
|
|
|
- emit('submit', JSON.parse(JSON.stringify(cloneFormData))); // 暂时发送原始数据,上传需单独处理
|
|
|
+ try {
|
|
|
+ await formRef.value.validate();
|
|
|
+ const cloneFormData: FormData = cloneDeep(formData);
|
|
|
+ cloneFormData.sysDictDataList = cloneFormData.sysDictDataList.map((item) => {
|
|
|
+ return {
|
|
|
+ ...item,
|
|
|
+ dictCode: cloneFormData.dictCode,
|
|
|
+ };
|
|
|
+ });
|
|
|
+ const codeSet = new Set();
|
|
|
+ for (const item of cloneFormData.sysDictDataList) {
|
|
|
+ if (codeSet.has(item.itemCode)) {
|
|
|
+ ElMessage.warning(`字典项编码 "${item.itemCode}" 重复,请修改`);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ codeSet.add(item.itemCode);
|
|
|
}
|
|
|
- });
|
|
|
+ emit('submit', cloneFormData);
|
|
|
+ } catch (err) {
|
|
|
+ // 6. 校验失败
|
|
|
+ console.warn('表单校验未通过', err);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
// 移动方法
|