@@ -8,6 +8,7 @@ import { useI18n } from 'vue-i18n'
88
99const { t } = useI18n ()
1010const emits = defineEmits ([' finish' ])
11+ const resource = ref (null )
1112const state = reactive ({
1213 id: null ,
1314 opt: null ,
@@ -84,21 +85,11 @@ const resourceFormRules = ref({
8485 name: [
8586 {
8687 required: true ,
87- message: state .placeholder ,
88- trigger: ' change' ,
89- },
90- {
91- required: true ,
92- message: state .placeholder ,
93- trigger: ' blur' ,
94- },
95- {
9688 min: 1 ,
9789 max: 64 ,
9890 message: t (' dashboard.length_limit64' ),
9991 trigger: ' change' ,
10092 },
101- { required: true , trigger: ' blur' },
10293 ],
10394 pid: [
10495 {
@@ -131,23 +122,28 @@ const propsTree = {
131122const showPid = false
132123
133124const saveResource = () => {
134- const params = {
135- id: state .id ,
136- node_type: state .nodeType ,
137- name: resourceForm .name ,
138- opt: state .opt ,
139- pid: resourceForm .pid ,
140- type: ' dashboard' ,
141- level: state .nodeType === ' folder' ? 0 : 1 ,
142- }
143- saveDashboardResource (params , function (rsp : any ) {
144- const messageTips = t (' common.save_success' )
145- ElMessage ({
146- type: ' success' ,
147- message: messageTips ,
148- })
149- emits (' finish' , { opt: state .opt , resourceId: rsp .id })
150- resetForm ()
125+ // @ts-expect-error eslint-disable-next-line @typescript-eslint/ban-ts-comment
126+ resource .value ?.validate ((result ) => {
127+ if (result ) {
128+ const params = {
129+ id: state .id ,
130+ node_type: state .nodeType ,
131+ name: resourceForm .name ,
132+ opt: state .opt ,
133+ pid: resourceForm .pid ,
134+ type: ' dashboard' ,
135+ level: state .nodeType === ' folder' ? 0 : 1 ,
136+ }
137+ saveDashboardResource (params , function (rsp : any ) {
138+ const messageTips = t (' common.save_success' )
139+ ElMessage ({
140+ type: ' success' ,
141+ message: messageTips ,
142+ })
143+ emits (' finish' , { opt: state .opt , resourceId: rsp .id })
144+ resetForm ()
145+ })
146+ }
151147 })
152148}
153149
0 commit comments