Browse Source

编辑wbs修改

duy 10 tháng trước cách đây
mục cha
commit
78a2d3d654

+ 115 - 115
src/api/modules/exctab/exceltab.js

@@ -1,297 +1,297 @@
-import { HcApi } from '../../request/index'
+import { HcApi } from "../../request/index";
 
 export default {
     async page(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/page',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/page",
+            method: "get",
             params: form,
-        })
+        });
     },
     //详情
     async detail(id) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/detail',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/detail",
+            method: "get",
             params: { id },
-        })
+        });
     },
     async submit(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/submit',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/submit",
+            method: "post",
             data: form,
-        })
+        });
     },
     async del(ids) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/remove',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/remove",
+            method: "post",
             params: { ids },
-        })
+        });
     },
     //清表树(懒加载)
     async tabLazyTree(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/tab-lazytree',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/tab-lazytree",
+            method: "get",
             params: form,
-        })
+        });
     },
     //清表树(全加载)
     async tabLazyTreeAll(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/tab-lazytree-all',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/tab-lazytree-all",
+            method: "get",
             params: form,
-        })
+        });
     },
     //获取清表详情
     async detailExcel(id) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/detail',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/detail",
+            method: "get",
             params: { id },
-        })
+        });
     },
     //清表编辑 wbs 下拉框选择
     async getWbsTypeList(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/getWbsTypeList',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/getWbsTypeList",
+            method: "get",
             params: form,
-        })
+        });
     },
     //懒加载节点树形结构
     async wbsTree(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/lazy-tree',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/lazy-tree",
+            method: "get",
             params: form,
-        })
+        });
     },
     //wbs树获取表
     async selectByNodeTable(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/selectByNodeTable',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/selectByNodeTable",
+            method: "get",
             params: form,
-        })
+        });
     },
     //添加编辑清表
     async savaDataInfo(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/sava-dataInfo',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/sava-dataInfo",
+            method: "post",
             data: form,
-        })
+        });
     },
     //清表模板树节点排序
     async excTabSort(ids) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/tab-sort',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/tab-sort",
+            method: "post",
             params: { ids },
-        })
+        });
     },
     //批量上清表
     async batchUploadExcelTab(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/batchUploadExcelTab',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/batchUploadExcelTab",
+            method: "post",
             data: form,
-        })
+        });
     },
     //批量上清表
     async uploadExcel(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/put-file-attach',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/put-file-attach",
+            method: "post",
             data: form,
-        })
+        });
     },
     //删除excel文件
     async deleteExcel(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/update',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/update",
+            method: "post",
             data: form,
-        })
+        });
     },
     //删除excel文件
     async deleteExcelModel(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/delete-template',
-            method: 'post',
+            url: "/api/blade-manager/exceltab/delete-template",
+            method: "post",
             data: form,
-        })
+        });
     },
     //下载excel表
     async downExcelFile(fileId) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/down-Excel-file',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/down-Excel-file",
+            method: "get",
             params: { fileId },
-            responseType: 'arraybuffer',
-        })
+            responseType: "arraybuffer",
+        });
     },
     //下载模板
     async downExcelFileModel(fileId) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/down-template-file',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/down-template-file",
+            method: "get",
             params: { fileId },
-            responseType: 'arraybuffer',
-        })
+            responseType: "arraybuffer",
+        });
     },
     //元素识别获取列表信息
     async getExcelHtmlCol(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/get-excel-html-col',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/get-excel-html-col",
+            method: "get",
             params: form,
-        })
+        });
     },
     //清表生成html
     async getExcelHtml(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/get-excel-html',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/get-excel-html",
+            method: "get",
             params: form,
-        })
+        });
     },
     //获取字段信息
     async getColByTabId(form) {
         return HcApi({
-            url: '/api/blade-manager/exctabcell/getColByTabId',
-            method: 'get',
+            url: "/api/blade-manager/exctabcell/getColByTabId",
+            method: "get",
             params: form,
-        })
+        });
     },
     //保存字段信息
     async saveColByTabId(form) {
         return HcApi({
-            url: '/api/blade-manager/exctabcell/update',
-            method: 'post',
+            url: "/api/blade-manager/exctabcell/update",
+            method: "post",
             data: form,
-        })
+        });
     },
     //删除字段信息
     async delColByTabId(ids) {
         return HcApi({
-            url: '/api/blade-manager/exctabcell/remove',
-            method: 'post',
+            url: "/api/blade-manager/exctabcell/remove",
+            method: "post",
             params: { ids },
-        })
+        });
     },
     //新增字段信息
     async addColByTabId(form) {
         return HcApi({
-            url: '/api/blade-manager/exctabcell/save',
-            method: 'post',
+            url: "/api/blade-manager/exctabcell/save",
+            method: "post",
             data: form,
-        })
+        });
     },
     //添加到元素库
     async submitExcelElement(form) {
         return HcApi({
-            url: '/api/blade-manager/wbsFormElement/submit-excel-relation-wbsTree-element',
-            method: 'post',
+            url: "/api/blade-manager/wbsFormElement/submit-excel-relation-wbsTree-element",
+            method: "post",
             data: form,
-        })
+        });
     },
     async getLazyTree(form) {
         return HcApi({
-            url: '/api/blade-manager/wbsTree/lazy-tree',
-            method: 'get',
+            url: "/api/blade-manager/wbsTree/lazy-tree",
+            method: "get",
             params: form,
-        })
+        });
     },
     async getAllTree(form) {
         return HcApi({
-            url: '/api/blade-manager/wbsTree/tree',
-            method: 'get',
+            url: "/api/blade-manager/wbsTree/tree",
+            method: "get",
             params: form,
-        })
+        });
     },
     //获取清表信息
     async getNodeTable(form) {
         return HcApi({
-            url: '/api/blade-manager/wbsTree/get-node-table',
-            method: 'get',
+            url: "/api/blade-manager/wbsTree/get-node-table",
+            method: "get",
             params: form,
-        })
+        });
     },
     //保存关联
     async saveRelation(form) {
         return HcApi({
-            url: '/api/blade-manager/wbsFormElement/save-relation',
-            method: 'post',
+            url: "/api/blade-manager/wbsFormElement/save-relation",
+            method: "post",
             data: form,
-        })
+        });
     },
     //取消关联
     async cancelRelation(form) {
         return HcApi({
-            url: '/api/blade-manager/wbsFormElement/cancel-relation',
-            method: 'get',
+            url: "/api/blade-manager/wbsFormElement/cancel-relation",
+            method: "get",
             params: form,
-        })
+        });
     },
     //分页获取清表
     async getList(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/list',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/list",
+            method: "get",
             params: form,
-        })
+        });
     },
     //关联清表保存
     async saveLinkTab(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/save-linkTab',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/save-linkTab",
+            method: "get",
             params: form,
-        })
+        });
     },
     //获取excel字段信息
     async getElementInfoByTabId(form) {
         return HcApi({
-            url: '/api/blade-manager/linkdatainfo/getElementInfoByTabId',
-            method: 'get',
+            url: "/api/blade-manager/linkdatainfo/getElementInfoByTabId",
+            method: "get",
             params: form,
-        })
+        });
     },
     //提取未匹配的元素字段
     async getUnMatchField(form) {
         return HcApi({
-            url: '/api/blade-manager/exceltab/getUnMatchField',
-            method: 'get',
+            url: "/api/blade-manager/exceltab/getUnMatchField",
+            method: "get",
             params: form,
-        })
+        });
     },
     //删除元素
     async delExcelElement(form) {
         return HcApi({
-            url: '/api/blade-manager/linkdatainfo/saveTabColInfo',
-            method: 'post',
+            url: "/api/blade-manager/linkdatainfo/saveTabColInfo",
+            method: "post",
             data: form,
-        })
+        });
     },
     //保存匹配元素
     async saveTabColInfo(form) {
         return HcApi({
-            url: '/api/blade-manager/linkdatainfo/saveTabColInfo2',
-            method: 'post',
+            url: "/api/blade-manager/linkdatainfo/saveTabColInfo2",
+            method: "post",
             data: form,
-        })
+        });
     },
     //添加新元素
     async submitBatch(form) {
         return HcApi({
-            url: '/api/blade-manager/wbsFormElement/submit-batch',
-            method: 'post',
+            url: "/api/blade-manager/wbsFormElement/submit-batch",
+            method: "post",
             data: form,
-        })
+        });
     },
-}
+};

+ 33 - 0
src/api/modules/wbs/wbsforelement.js

@@ -45,4 +45,37 @@ export default {
             params: form,
         });
     },
+    async updateBatchElements(list, initTableName) {
+        return HcApi({
+            url:
+                "/api/blade-manager/wbsTree/update-batch-elements?initTableName=" +
+                initTableName,
+            method: "post",
+            data: list,
+        });
+    },
+    //保存新元素
+    async saveElement(form) {
+        return HcApi({
+            url: "/api/blade-manager/wbsFormElement/save",
+            method: "post",
+            data: form,
+        });
+    },
+    //删除元素
+    async removeElement(form) {
+        return HcApi({
+            url: "/apiapi/blade-manager/wbsFormElement/remove",
+            method: "post",
+            params: form,
+        });
+    },
+    //删除表
+    async removeTable(form) {
+        return HcApi({
+            url: "/api/blade-manager/wbsTree/remove-table",
+            method: "get",
+            params: form,
+        });
+    },
 };

+ 191 - 24
src/views/desk/wbs/create-new-excel.vue

@@ -77,6 +77,7 @@
                             1.元素名称不能为空<br />
                             2.数据类型不能为空<br />
                             3.元素长度不能为空<br />
+                            4.编辑元素信息请谨慎操作<br />
                         </div>
                     </template>
                     <el-button
@@ -89,16 +90,33 @@
                     </el-button>
                 </el-tooltip>
             </template>
-            <template #extra v-if="!tableId">
+
+            <template #extra>
                 <el-button size="small" type="success" @click="addRowClick"
                     >新增</el-button
                 >
-                <el-button size="small" type="primary" @click="uploadClick"
+                <el-button
+                    size="small"
+                    type="primary"
+                    @click="uploadClick"
+                    v-if="!tableId"
                     >快捷导入</el-button
                 >
-                <el-button size="small" type="warning">下载导入模板</el-button>
+                <el-button
+                    size="small"
+                    type="warning"
+                    v-if="!tableId"
+                    @click="downLoadFile"
+                    :loading="downloadLoading"
+                    >下载导入模板</el-button
+                >
             </template>
-
+            <hc-search-input
+                v-model="queryValue"
+                @search="getEditEleList"
+                class="w-100 mb-4"
+                v-if="tableId"
+            />
             <hc-table :column="tableColumn" :datas="editEleList">
                 <template #eName="{ row }">
                     <hc-table-input v-model="row.eName" />
@@ -145,10 +163,38 @@
                 <template #eInspectionMethod="{ row }">
                     <hc-table-input v-model="row.eInspectionMethod" />
                 </template>
+                <template #dynamicDict="{ row }" v-if="tableId">
+                    <el-select v-model="row.dynamicDict" placeholder="请选择">
+                        <el-option
+                            v-for="item in dynamicDictList"
+                            :key="item.id"
+                            :label="item.label"
+                            :value="item.value"
+                        ></el-option>
+                    </el-select>
+                </template>
                 <template #action="{ row, index }">
-                    <el-link type="danger" @click="rowDelClick(row, index)"
+                    <el-link
+                        type="danger"
+                        @click="rowDelClick(row, index)"
+                        v-if="row.id"
                         >删除</el-link
                     >
+                    <div v-else>
+                        <el-link
+                            v-if="tableId"
+                            type="primary"
+                            @click="addSaveClick(row, index)"
+                            :loading="addSaveLoading"
+                            >保存</el-link
+                        >
+                        <el-link
+                            type="danger"
+                            @click="rowDelClick(row, index)"
+                            :loading="rowDelLoading"
+                            >删除</el-link
+                        >
+                    </div>
                 </template>
             </hc-table>
         </hc-card-item>
@@ -210,7 +256,7 @@ import { ref, watch } from "vue";
 import { getDictionaryData } from "~src/utils/tools";
 import mainApi from "~api/wbs/wbsforelement";
 import { useAppStore } from "~src/store";
-import { HcUploadFileApi } from "hc-vue3-ui";
+import { HcUploadFileApi, HcDelMsg } from "hc-vue3-ui";
 import { formValidate, getArrValue, downloadBlob, type } from "js-fast-way";
 const store = useAppStore();
 const userInfo = ref(store.getUserInfo);
@@ -239,6 +285,19 @@ const props = defineProps({
         type: String,
         default: "",
     },
+    initTableName: {
+        type: String,
+        default: "",
+    },
+
+    initTableId: {
+        type: String,
+        default: "",
+    },
+    eKey: {
+        type: String,
+        default: "",
+    },
 });
 //事件
 const emit = defineEmits(["close"]);
@@ -251,6 +310,7 @@ const isShow = defineModel("modelValue", {
 watch(isShow, (val) => {
     if (val) {
         getDataTypelist();
+        getDynamicDictList();
     } else {
         emit("close");
     }
@@ -262,6 +322,9 @@ const wbsId = ref(props.wid);
 const node = ref(props.node);
 const modelTitle = ref(props.title);
 const tableId = ref(props.tableId);
+const initTableName = ref(props.initTableName);
+const initTableId = ref(props.initTableId);
+const eKey = ref(props.eKey);
 //监听数据
 watch(
     () => [
@@ -271,29 +334,52 @@ watch(
         props.node,
         props.title,
         props.tableId,
+        props.initTableName,
+        props.initTableId,
+        props.eKey,
     ],
-    ([own, table, wbsid, nodeInfo, til, tid]) => {
+    ([own, table, wbsid, nodeInfo, til, tid, tname, itid, ekey]) => {
         ownerTypeList.value = own;
         tableTypelist.value = table;
         wbsId.value = wbsid;
         node.value = nodeInfo;
         modelTitle.value = til;
         tableId.value = tid;
+        initTableName.value = tname;
+        initTableId.value = itid;
+        eKey.value = ekey;
     },
     { deep: true }
 );
 watch(
     tableId,
     (val) => {
+        console.log(val, "val11111111");
+
         if (val) {
             getEditEleList();
+            tableColumn.value = [
+                { key: "eName", name: "元素名称", width: 150 },
+                { key: "eType", name: "数据类型", width: 120 },
+                { key: "eLength", name: "长度" },
+                { key: "eAllowDeviation", name: "允许偏差值", width: 180 },
+                { key: "eInspectionMethod", name: "检查方法和频率" },
+                { key: "dynamicDict", name: "动态字典" },
+                { key: "action", name: "操作", width: 80, align: "center" },
+            ];
         } else {
             editEleList.value = [];
+            tableColumn.value = [
+                { key: "eName", name: "元素名称", width: 150 },
+                { key: "eType", name: "数据类型", width: 120 },
+                { key: "eLength", name: "长度" },
+                { key: "eAllowDeviation", name: "允许偏差值", width: 180 },
+                { key: "eInspectionMethod", name: "检查方法和频率" },
+                { key: "action", name: "操作", width: 80, align: "center" },
+            ];
         }
     },
-    {
-        deep: true,
-    }
+    { deep: true }
 );
 //表单
 const formRef = ref(null);
@@ -319,18 +405,19 @@ const formRules = {
     },
 };
 
-const curEleTable = ref({});
 const formModel = ref({});
 const editVisible = ref(false);
-const tableColumn = [
+const tableColumn = ref([
     { key: "eName", name: "元素名称", width: 150 },
     { key: "eType", name: "数据类型", width: 120 },
     { key: "eLength", name: "长度" },
     { key: "eAllowDeviation", name: "允许偏差值", width: 180 },
     { key: "eInspectionMethod", name: "检查方法和频率" },
     { key: "action", name: "操作", width: 80, align: "center" },
-];
+]);
 const editEleList = ref([]);
+const queryValue = ref("");
+
 const getEditEleList = async () => {
     const { data } = await mainApi.getTableElements({
         id: tableId.value,
@@ -338,6 +425,12 @@ const getEditEleList = async () => {
         type: 1,
     });
     editEleList.value = getArrValue(data);
+    const eleReg = /(-|>|<|≥|≤|±|【】)?([^≥≤±【】]*)/;
+    editEleList.value.forEach((element) => {
+        eleReg.exec(element.eAllowDeviation);
+        element.allow = RegExp.$1 ? RegExp.$1 : "";
+        element.deviation = RegExp.$2 ? RegExp.$2 : "";
+    });
 };
 const dataTypeList = ref([]);
 const getDataTypelist = async () => {
@@ -346,6 +439,13 @@ const getDataTypelist = async () => {
     }
     dataTypeList.value = await getDictionaryData("data_type", false);
 };
+const dynamicDictList = ref([]); //动态字典列表
+const getDynamicDictList = async () => {
+    if (dynamicDictList.value.length > 1) {
+        return;
+    }
+    dynamicDictList.value = await getDictionaryData("land_field_dict", false);
+};
 const setDefaultLength = (row) => {
     const dataTypeDefaultMap = {
         1: 250, //字符串
@@ -358,17 +458,64 @@ const setDefaultLength = (row) => {
     };
     row.eLength = dataTypeDefaultMap[row.eType];
 };
-const rowDelClick = (row, index) => {
-    editEleList.value.splice(index, 1);
+const rowDelLoading = ref(false);
+const rowDelClick = async (row, index) => {
+    if (!row.id) {
+        editEleList.value.splice(index, 1);
+    } else {
+        HcDelMsg(async (resolve) => {
+            //发起请求
+            rowDelLoading.value = true;
+            const { isRes } = await mainApi.removeElement({
+                ids: row.id,
+                initTableName: initTableName.value,
+                eKey: row.ekey,
+            });
+            resolve(); //关闭弹窗
+            if (!isRes) return;
+            window?.$message?.success("操作成功");
+        });
+    }
 };
 const addRowClick = () => {
     editEleList.value.push({});
 };
+const addSaveLoading = ref(false);
+const addSaveClick = async (row) => {
+    if (!row.eName) {
+        window.$message.warning("请填写元素名称");
+        return;
+    }
+    if (!row.eType) {
+        window.$message.warning("请选择数据类型");
+        return;
+    }
+
+    row.eAllowDeviation =
+        (row.allow ? row.allow : "") + (row.deviation ? row.deviation : "");
+    row.fId = initTableId.value;
+    row.initTableName = initTableName.value;
+    if (!row.eLength) {
+        window.$message.warning("请填写长度");
+        return;
+    }
+    addSaveLoading.value = true;
+    const { error, code, data } = await mainApi.saveElement(row);
+    addSaveLoading.value = false;
+    if (!error && code === 200) {
+        window?.$message?.success("操作成功");
+        row.id = data.id;
+        row.ekey = data.ekey;
+    }
+};
 const submitLoading = ref(false);
 
 const saveFormAndElementHandle = async () => {
-    const formRes = await formValidate(formRef.value);
-    if (!formRes) return false;
+    if (!tableId.value) {
+        const formRes = await formValidate(formRef.value);
+        if (!formRes) return false;
+    }
+
     formModel.value.wbsId = wbsId.value;
     formModel.value.tenantId = userInfo.value.tenant_id;
     formModel.value.nodeType = -1;
@@ -376,6 +523,13 @@ const saveFormAndElementHandle = async () => {
     formModel.value.parentId = node.value.id;
     formModel.value.nodeName = node.value.nodeName;
     for (let i = 0; i < editEleList.value.length; i++) {
+        if (tableId.value) {
+            if (!editEleList.value[i].eName.id) {
+                window.$message.warning("请先将新增的元素点击保存");
+                return;
+            }
+        }
+
         if (!editEleList.value[i].eName) {
             window.$message.warning("请填写第" + (i + 1) + "条元素名称");
             return;
@@ -397,13 +551,26 @@ const saveFormAndElementHandle = async () => {
         });
         submitLoading.value = true;
         formModel.value.elementList = editEleList;
-        const { error, code } = await mainApi.saveFormAndElement({
-            ...formModel.value,
-        });
-        submitLoading.value = false;
-        if (!error && code === 200) {
-            window?.$message?.success("操作成功");
-            dialogClose();
+
+        if (!tableId.value) {
+            const { error, code } = await mainApi.saveFormAndElement({
+                ...formModel.value,
+            });
+            submitLoading.value = false;
+            if (!error && code === 200) {
+                window?.$message?.success("操作成功");
+                dialogClose();
+            }
+        } else {
+            const { error, code } = await mainApi.updateBatchElements(
+                editEleList.value,
+                initTableName.value
+            );
+            submitLoading.value = false;
+            if (!error && code === 200) {
+                window?.$message?.success("操作成功");
+                dialogClose();
+            }
         }
     } else {
         window.$message.warning("请填写完整元素表信息");

+ 27 - 2
src/views/desk/wbs/drawer-wbs.vue

@@ -199,6 +199,7 @@
             :tree-props="treeProps"
             :node-type="majorDatatype"
             :major-type="majorDataTypeList"
+            :title="modalTreeTitle"
             @close="addEditClose"
             @change="treeNodeEditChange"
         />
@@ -212,6 +213,9 @@
             :ownerTypeList="ownerTypeList"
             :title="modalTitle"
             :tableId="tableId"
+            :initTableName="initTableName"
+            :initTableId="initTableId"
+            :eKey="eKey"
         ></createNewExcel>
         <!-- 编辑元素表信息 -->
         <editElePage
@@ -246,6 +250,7 @@ import {
     isNullES,
 } from "js-fast-way";
 import mainApi from "~api/wbs/tree";
+import mainWbsApi from "~api/wbs/wbsforelement";
 
 import { useAppStore } from "~src/store";
 import TreeNodeEditDialog from "./tree-node-edit.vue";
@@ -438,8 +443,10 @@ const treeMenuClick = async ({ key, data, node, keys }) => {
         formModel.value.uniqueCode = "";
 
         formModel.value.majorDataType = "";
+        formModel.value.fullName = "";
         await nextTick();
         isAddEditShow.value = true;
+        modalTreeTitle.value = "新增节点";
     } else if (key === "edit") {
         formModel.value = deepClone(data);
         formModel.value.nodeName = formModel.value.title;
@@ -447,6 +454,7 @@ const treeMenuClick = async ({ key, data, node, keys }) => {
         getNodeDetail(data, node);
         await nextTick();
         isAddEditShow.value = true;
+        modalTreeTitle.value = "编辑节点";
     } else if (key === "rank") {
         const pid = node.parent.data.id;
         const { data } = await mainApi.findWbsTreeSameLevel({ parentId: pid });
@@ -528,7 +536,7 @@ const getOwnerTypelist = async () => {
 
 //新增、编辑节点
 const isAddEditShow = ref(false);
-
+const modalTreeTitle = ref("新增节点");
 const formModel = ref({});
 
 //新增、编辑节点提交
@@ -543,6 +551,7 @@ const treeNodeEditChange = () => {
     isAddEditShow.value = false;
     formModel.value = {};
     console.log("编辑节点被修改");
+    setTreeMode();
 };
 //树重加载
 const setTreeMode = () => {
@@ -612,12 +621,26 @@ const drawerClose = () => {
     emit("close");
 };
 const tableId = ref("");
+const initTableName = ref("");
+const initTableId = ref("");
+const eKey = ref("");
 const editRowClick = (row) => {
     isCreateShow.value = true;
     modalTitle.value = row.tableName + "元素编辑";
     tableId.value = row.id;
+    initTableName.value = row.initTableName;
+    initTableId.value = row.initTableId;
+    eKey.value = row.ekey;
+};
+const rowDelClick = async (row) => {
+    console.log("删除");
+    HcDelMsg(async (resolve) => {
+        const { isRes } = await mainWbsApi.removeTable({ id: row.id });
+        resolve(); //关闭弹窗的回调
+        if (!isRes) return;
+        getTableData();
+    });
 };
-const rowDelClick = () => {};
 
 //创建新的元素表
 const isCreateShow = ref(false);
@@ -631,6 +654,8 @@ const createNew = () => {
     tableId.value = "";
     if (id) {
         isCreateShow.value = true;
+        modalTitle.value = "创建新的元素表";
+        tableId.value = "";
     } else {
         window.$message.warning("请先选择在哪个节点下创建表");
     }

+ 29 - 15
src/views/desk/wbs/tree-node-edit.vue

@@ -2,7 +2,7 @@
     <hc-dialog
         v-model="isShow"
         widths="26rem"
-        title="编辑节点"
+        :title="modalTitle"
         is-footer-center
         @close="dialogClose"
     >
@@ -168,7 +168,7 @@
                     clearable
                     class="is-right-btn"
                 >
-                    <template v-if="nodeDetail.id" #append>
+                    <template #append>
                         <el-button hc-btn type="primary" @click="addAliasName"
                             >添加</el-button
                         >
@@ -215,6 +215,7 @@ import {
 } from "js-fast-way";
 import { useAppStore } from "~src/store";
 import mainApi from "~api/wbs/tree";
+import { getChildList } from "~api/other";
 const store = useAppStore();
 const userInfo = ref(store.getUserInfo);
 const props = defineProps({
@@ -243,6 +244,10 @@ const props = defineProps({
         type: Array,
         default: () => [],
     },
+    title: {
+        type: [String],
+        default: "新增节点",
+    },
 });
 
 //事件
@@ -262,6 +267,7 @@ const nodeDetail = ref(props.node);
 const nodeTypelist = ref(props.nodeType);
 const majorDataType = ref(props.majorType);
 const testProps = ref(props.treeProps);
+const modalTitle = ref(props.title);
 
 //监听数据
 watch(
@@ -273,8 +279,9 @@ watch(
         props.nodeType,
         props.majorType,
         props.treeProps,
+        props.title,
     ],
-    ([node, type, wid, nodeType, majorType, treeProps]) => {
+    ([node, type, wid, nodeType, majorType, treeProps, title]) => {
         formModel.value = node;
         nodeDetail.value = node;
         wbsType.value = type;
@@ -283,6 +290,7 @@ watch(
         nodeTypelist.value = nodeType;
         majorDataType.value = majorType;
         testProps.value = treeProps;
+        modalTitle.value = title;
     },
     { deep: true }
 );
@@ -353,20 +361,26 @@ const aliasNameClose = (index) => {
 //提交别名
 const submitAliasLoading = ref(false);
 const aliasSubmit = async () => {
-    submitAliasLoading.value = true;
+    if (!nodeDetail.value.id) {
+        const fullName = aliasArr.value.join(",");
+        formModel.value.fullName = fullName;
+        aliasDialogClose();
+    } else {
+        submitAliasLoading.value = true;
 
-    const { id } = nodeDetail.value;
+        const { id } = nodeDetail.value;
 
-    const fullName = aliasArr.value.join(",");
-    formModel.value.fullName = fullName;
-    const { isRes } = await mainApi.submitFullName({
-        id: id,
-        fullNames: fullName,
-    });
-    submitAliasLoading.value = false;
-    if (!isRes) return;
-    aliasDialogClose();
-    window?.$message?.success("操作成功");
+        const fullName = aliasArr.value.join(",");
+        formModel.value.fullName = fullName;
+        const { isRes } = await mainApi.submitFullName({
+            id: id,
+            fullNames: fullName,
+        });
+        submitAliasLoading.value = false;
+        if (!isRes) return;
+        aliasDialogClose();
+        window?.$message?.success("操作成功");
+    }
 };
 
 //关闭节点别名弹窗