duy 5 months ago
parent
commit
8a9f915f4d
1 changed files with 20 additions and 2 deletions
  1. 20 2
      src/views/project/list/file-title-dialog.vue

+ 20 - 2
src/views/project/list/file-title-dialog.vue

@@ -322,6 +322,7 @@ const chooseFile = (row, index) => {
         chooseFileVisible.value = true
         chooseFileIndex.value = index
         deCheckTreeKeys.value = row.ruleSizeValId
+        fileTitleModel.value.type = row.type
             getTitleRangeData()
       } else {
       window.$message.warning('请先选择文件题名规则')
@@ -349,11 +350,28 @@ const batchsaveFileSize = () => {
     // TODO: 实现批量保存逻辑
 }
 const saveFileSize = () => {
-    // TODO: 实现保存逻辑
     chooseFileVisible.value = false
-    if ( fileTableData.value.length > 0) {
+    if (fileTableData.value.length > 0) {
         fileTableData.value[chooseFileIndex.value].type = fileTitleModel.value.type
+        // 获取选中的节点名称
+        const checkedNodes = getCheckedNodes(fileTreeData.value, deCheckTreeKeys.value)
+        fileTableData.value[chooseFileIndex.value].ruleSizeVal = checkedNodes.map(node => node.nodeName).join('、')
     }
+    fileTableData.value[chooseFileIndex.value].ruleSizeValId = deCheckTreeKeys.value
+}
+
+// 递归获取选中的节点
+const getCheckedNodes = (treeData, checkedKeys) => {
+    let result = []
+    treeData.forEach(node => {
+        if (checkedKeys.includes(node.id)) {
+            result.push(node)
+        }
+        if (node.children) {
+            result = result.concat(getCheckedNodes(node.children, checkedKeys))
+        }
+    })
+    return result
 }
 const changeRadio = (val) => {
     const fileItem = fileTableData.value[chooseFileIndex.value]