diff --git a/src/views/system/Menu/Detail/BasicInfo.vue b/src/views/system/Menu/Detail/BasicInfo.vue index 1b2cc56d..52111879 100644 --- a/src/views/system/Menu/Detail/BasicInfo.vue +++ b/src/views/system/Menu/Detail/BasicInfo.vue @@ -11,6 +11,7 @@ { required: true, message: '请上传图标', + trigger: 'change', }, ]" style="flex: 0 0 186px" @@ -45,11 +46,22 @@ label="名称" name="name" :rules="[ - { required: true, message: '请输入名称',trigger: 'change', }, - { max: 64, message: '最多可输入64个字符', trigger: 'change', }, + { + required: true, + message: '请输入名称', + trigger: 'change', + }, + { + max: 64, + message: '最多可输入64个字符', + trigger: 'change', + }, ]" > - + @@ -57,15 +69,26 @@ label="编码" name="code" :rules="[ - { required: true, message: '请输入编码', trigger: 'change', }, - { max: 64, message: '最多可输入64个字符', trigger: 'change', }, + { + required: true, + message: '请输入编码', + trigger: 'change', + }, + { + max: 64, + message: '最多可输入64个字符', + trigger: 'change', + }, { validator: form.checkCode, trigger: 'blur', }, ]" > - + @@ -80,7 +103,10 @@ { max: 128, message: '最多可输入128字符' }, ]" > - + @@ -94,7 +120,11 @@ }, ]" > - + @@ -104,6 +134,8 @@ @@ -277,7 +309,7 @@ const form = reactive({ accessSupport: resp.result?.accessSupport?.value || 'unsupported', }; - form.sourceCode = resp.result.code + form.sourceCode = resp.result.code; }); // 获取关联菜单 getMenuTree_api({ paging: false }).then((resp: any) => { @@ -292,10 +324,11 @@ const form = reactive({ }); }, checkCode: async (_rule: Rule, value: string): Promise => { - if (!value) return Promise.reject('请输入编码'); + if (!value) return Promise.reject(''); else if (value.length > 64) return Promise.reject('最多可输入64个字符'); // 编辑时不校验原本的编码 - else if (routeParams.id && value === form.sourceCode) return Promise.resolve(''); + else if (routeParams.id && value === form.sourceCode) + return Promise.resolve(''); else { const resp: any = await validCode_api({ code: value, @@ -372,6 +405,13 @@ type assetType = { label: string; value: string; }; + +watch( + () => form.data.icon, + () => { + basicFormRef.value?.validate(); + }, +);