ZaiZai 1 éve
szülő
commit
87bdccc619
1 módosított fájl, 24 hozzáadás és 13 törlés
  1. 24 13
      src/views/system/menu.vue

+ 24 - 13
src/views/system/menu.vue

@@ -42,7 +42,7 @@
         </hc-card>
     </div>
     <!-- 菜单新增编辑 -->
-    <hc-dialog v-model="menuDataModal" :title="isCopy ? '复制菜单数据' : formModel.id ? '编辑菜单' : '修改菜单'" widths="46rem" @close="menuDataModalClose" @save="menuDataModalSave">
+    <hc-dialog v-model="menuDataModal" :title="formModel.id ? '修改菜单' : '新增菜单'" widths="46rem" @close="menuDataModalClose" @save="menuDataModalSave">
         <el-form ref="formRef" :model="formModel" :rules="formRules" label-position="top" label-width="auto" size="large">
             <el-row :gutter="20">
                 <el-col :span="12">
@@ -94,7 +94,7 @@
 import { onMounted, ref } from 'vue'
 import { HcDelMsg } from 'hc-vue3-ui'
 import mainApi from '~api/system/menu'
-import { arrToId, getArrValue } from 'js-fast-way'
+import { arrToId, deepClone, formValidate, getArrValue } from 'js-fast-way'
 import { reloadPage } from '~src/utils/tools'
 
 onMounted(() => {
@@ -159,7 +159,6 @@ const getLevelMenuData = async () => {
 }
 
 //菜单数据弹窗
-const isCopy = ref(false)
 const menuDataModal = ref(false)
 const formRef = ref(null)
 const formModel = ref({ category: 1 })
@@ -175,7 +174,6 @@ const eidtMenu = (row) => {
         ...row,
         children: null,
     }
-    isCopy.value = false
     menuDataModal.value = true
 }
 //新增菜单
@@ -185,16 +183,13 @@ const addMenu = () => {
         parentId: 0,
         sort: 1,
     }
-    isCopy.value = false
     menuDataModal.value = true
 }
 const copyChildren = (row) => {
-    formModel.value = {
-        ...row,
-        children: null,
-        id: '',
-    }
-    isCopy.value = true
+    const form = deepClone(row)
+    delete form.id
+    delete form.children
+    formModel.value = form
     menuDataModal.value = true
 }
 
@@ -228,15 +223,31 @@ const addChildren = (row) => {
         parentId: row.id,
         sort: 1,
     }
-    isCopy.value = false
     menuDataModal.value = true
 }
-const menuDataModalSave = () => {
 
+//保存
+const menuDataModalSave = async () => {
+    const formRes = await formValidate(formRef.value)
+    if (!formRes) return false
+    //处理数据
+    const form = formModel.value
+    form.parentId = form.parentId ?? 0
+    form.alias = form.alias ?? form.code
+    //发起请求
+    const { error, code, msg } = await mainApi.submit(form)
+    if (!error && code === 200) {
+        window?.$message?.success('操作成功')
+        menuDataModal.value = false
+        reloadPage()
+    } else {
+        window?.$message?.error(msg ?? '操作失败')
+    }
 }
 
 const menuDataModalClose = () => {
     menuDataModal.value = false
+    formModel.value = {}
 }
 
 //图标选择