From 7b3d5fb08fdbd2ce574c3b9ab666c8c7082be728 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 06 九月 2024 15:38:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue |  137 +++++++++++++++++++++++++++++++--------------
 1 files changed, 94 insertions(+), 43 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
index 2b7229c..91d6197 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
@@ -2,7 +2,7 @@
   <el-dialog v-dialogDrag
              :title="dialog.title"
              :visible.sync="dialog.showDialog"
-             width="1600px"
+             width="1620px"
              :append-to-body="true"
              class="avue-dialog"
              :destroy-on-close="true"
@@ -47,7 +47,7 @@
             <div>
               鏌ヨ妯℃澘瀹氫箟
               <avue-select @change="linkQueryDefineChange" class="el-input--small" v-model="linkQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="linkQueryDefineDic" style="width:240px"></avue-select>
-              <avue-tree style="height: 265px" :data="linkTreeData" :option="treeOption"  @node-drag-start="handleDragStart">
+              <avue-tree style="height: 265px" :data="linkTreeData" :option="treeOption"  @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
               </avue-tree>
             </div>
           </fieldset>
@@ -55,7 +55,12 @@
         <el-main>
           <fieldset style="margin: 0 10px">
             <legend>&nbsp;鏌ヨ鏉′欢&nbsp;</legend>
-            <form-query-dialog style="height: 300px;" :queryCondition="queryCondition" :queryTree="queryTree"></form-query-dialog>
+            <form-query-dialog ref="formQuery"
+                               style="height: 300px;"
+                               :queryCondition="queryCondition"
+                               :queryTree="queryTree"
+                               :levelFlag.sync="form.levelFlag"
+            ></form-query-dialog>
           </fieldset>
         </el-main>
         <el-aside style="width:350px">
@@ -64,7 +69,7 @@
             <div>
               鏌ヨ妯℃澘瀹氫箟
               <avue-select @change="businessQueryDefineChange" class="el-input--small" v-model="businessQueryDefineForm" placeholder="璇烽�夋嫨鍐呭" type="tree" :dic="businessQueryDefineDic" style="width: 240px;"></avue-select>
-              <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption"  @node-drag-start="handleDragStart">
+              <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption"  @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
               </avue-tree>
             </div>
           </fieldset>
@@ -82,7 +87,7 @@
 import {getAllOrderbyAttributeByLink} from "@/api/modeling/linkType/api";
 import {linkSave} from "@/api/queryTemplate/linkTypeQuery";
 import basicOption from "@/util/basic-option";
-import {gridTemplate} from "@/api/queryTemplate/queryDefine";
+import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
 import formQueryDialog from "./formQueryDialog.vue";
 export default {
   name: "formDialog",
@@ -174,6 +179,7 @@
       form:{
         btmName:'',
         qtName: '',
+        levelFlag:0,//0:鏅�氭煡璇㈡ā鏉�; 1:楂樼骇鏌ヨ妯℃澘"
         queryTemplate:{}
       },
       //宸叉湁鎺掑簭鍒楄〃閰嶇疆
@@ -273,7 +279,8 @@
       //楂樼骇鏌ヨ鏉′欢
       queryTree:{},
       //鏅�氭煡璇㈡潯浠�
-      queryCondition:[]
+      queryCondition:[],
+
     };
   },
   watch: {
@@ -322,14 +329,7 @@
         }
       },
       immediate: true,
-    },
-    'dialog.type': {
-      handler(val) {
-        if(val=='edit'){
-        }
-      },
-      immediate: true,
-    },
+    }
   },
   methods: {
     openDialog(btmName, title, mode, data) {
@@ -350,12 +350,16 @@
           this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭
         }
         this.queryCondition=this.selectData.queryTemplate.condition;
-        this.queryTree=this.selectData.queryTemplate.tree;
+        this.queryTree=this.selectData.tree;
+        this.form.levelFlag=this.selectData.levelFlag;
       } else {
         this.selectData = {};
         this.orderInfoList = [];
         this.queryCondition=[];
-        this.queryTree={};
+        this.queryTree={
+          connector:'骞朵笖',
+          child:[]
+        };
       }
       this.dialog.showDialog = true;
       this.getTemp(data.treeData.label, true)
@@ -367,6 +371,7 @@
         this.form = {
           btmName: '',
           qtName: '',
+          levelFlag:0,
           queryTemplate: {}
         };
         this.orderInfoList =[];
@@ -378,26 +383,8 @@
     submitDialog() {
       this.$refs.form.validate((valid) => {
         if (valid) {
-          let formData={
-            btmName:this.form.btmName,
-            qtName:this.form.qtName,
-            queryTemplate:{
-              btmType:this.form.btmType,
-              clauseList:['*'],
-              direction:this.form.direction,
-              id:this.form.qtName,
-              level:this.form.level,
-              linkType:this.form.btmName,
-              orderInfoList:this.orderInfoList,
-              queryISLeaf:this.form.queryISLeaf,
-              recReturnMode:1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER
-              rightFlag:true,
-              secretFlag:true,
-              type:'link',
-              version:this.form.version
-            }
-          }
-          formData.condition=[]
+          const formData=this.initFormData();
+          console.log(formData)
           linkSave(formData).then(res => {
             if (res.data.success) {
               this.$message.success("淇濆瓨鎴愬姛");
@@ -409,6 +396,60 @@
           return false;
         }
       });
+    },
+    initFormData() {
+      let formData = {
+        btmName: this.form.btmName,
+        qtName: this.form.qtName,
+        levelFlag: this.form.levelFlag,
+        queryTemplate: {
+          btmType: this.form.btmType,
+          clauseList: ['*'],
+          direction: this.form.direction,
+          id: this.form.qtName,
+          level: this.form.level,
+          linkType: this.form.btmName,
+          orderInfoList: this.orderInfoList,
+          queryISLeaf: this.form.queryISLeaf,
+          recReturnMode: 1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER
+          rightFlag: true,
+          secretFlag: true,
+          type: 'link',
+          version: this.form.version
+        }
+      }
+      if (formData.levelFlag == 1) {
+        //楂樼骇
+        let that = this;
+        function initValue(nodeChild) {
+          let children = [];
+          if (nodeChild) {
+            nodeChild.forEach((item, index) => {
+              if (item.label != '骞朵笖' && item.label != '鎴栬��') {
+                children.push(item.label);
+              } else {
+                children.push({
+                  connector: item.label,
+                  child: initValue(item.children)
+                })
+              }
+            })
+          }
+          return children;
+        }
+
+        let treeData = {
+          connector: this.$refs.formQuery.treeData[0].label
+        };
+        if (this.$refs.formQuery.treeData[0].children) {
+          treeData.child = initValue(this.$refs.formQuery.treeData[0].children);
+        }
+        formData.tree = treeData
+      }
+
+      formData.condition = this.$refs.formQuery.conditionList;
+
+      return formData;
     },
     getFormData(form) {
       this.form = form;
@@ -468,7 +509,7 @@
     //鑾峰彇鏌ヨ妯℃澘瀹氫箟涓嬫媺
     getTemp(btmName,linkFlag) {
       if (btmName) {
-        gridTemplate({btmName: btmName, linkFlag: linkFlag}).then(res => {
+        queryTemplateListByAttr({btmName: btmName, linkFlag: linkFlag,direction:this.form.direction}).then(res => {
           const data = res.data.data.map(item => {
             item.label = item.name + '-' + (item.linkTypeName || item.btmName);
             item.value = item.name;
@@ -486,10 +527,11 @@
     },
     linkQueryDefineChange(data) {
       if (data.value) {
-        const childData = data.item.abNames.map(item => {
+        const childData = data.item.attrs.map(item => {
           return {
-            label: item,
-            value: item
+            label: item.name,
+            value: item.name,
+            atttributes:item
           };
         });
         this.linkTreeData = [{
@@ -501,10 +543,11 @@
     },
     businessQueryDefineChange(data) {
       if (data.value) {
-        const childData = data.item.abNames.map(item => {
+        const childData = data.item.attrs.map(item => {
           return {
-            label: item,
-            value: item
+            label: item.name,
+            value: item.name,
+            atttributes:item
           };
         });
         this.businessTreeData = [{
@@ -518,7 +561,15 @@
     handleDragStart(node, ev) {
       // 浣跨敤 setData 鏂规硶璁剧疆鏁版嵁
       ev.dataTransfer.setData('item', JSON.stringify(node.data));
+      if(this.form.levelFlag==1){
+        this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-start', ev,{node:this.$refs.formQuery.initItem(node)});
+      }
     },
+    handleDragEnd(draggingNode,endNode,position,ev){
+      if(this.form.levelFlag==1) {
+        this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev);
+      }
+    }
   },
 }
 </script>

--
Gitblit v1.9.3