From 4e811ec71dba161e13592828a6035e9316b1548e Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 30 八月 2024 17:15:29 +0800
Subject: [PATCH] 链接类型查询模板

---
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue |  103 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 76 insertions(+), 27 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 6ed5d5c..2b7229c 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
@@ -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">
+              <avue-tree style="height: 265px" :data="linkTreeData" :option="treeOption"  @node-drag-start="handleDragStart">
               </avue-tree>
             </div>
           </fieldset>
@@ -55,9 +55,7 @@
         <el-main>
           <fieldset style="margin: 0 10px">
             <legend>&nbsp;鏌ヨ鏉′欢&nbsp;</legend>
-            <div style="height: 300px;">
-
-            </div>
+            <form-query-dialog style="height: 300px;" :queryCondition="queryCondition" :queryTree="queryTree"></form-query-dialog>
           </fieldset>
         </el-main>
         <el-aside style="width:350px">
@@ -66,7 +64,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">
+              <avue-tree style="height: 265px" :data="businessTreeData" :option="treeOption"  @node-drag-start="handleDragStart">
               </avue-tree>
             </div>
           </fieldset>
@@ -85,9 +83,10 @@
 import {linkSave} from "@/api/queryTemplate/linkTypeQuery";
 import basicOption from "@/util/basic-option";
 import {gridTemplate} from "@/api/queryTemplate/queryDefine";
-import {deleteAttributes} from "@/api/modeling/attributePool/api";
+import formQueryDialog from "./formQueryDialog.vue";
 export default {
   name: "formDialog",
+  components:{formQueryDialog},
   data(){
     return {
       dialog: {
@@ -175,16 +174,7 @@
       form:{
         btmName:'',
         qtName: '',
-        queryTemplate:{
-
-        }
-      },
-      formTemplate:{
-        btmName:'',
-        qtName: '',
-        queryTemplate:{
-
-        }
+        queryTemplate:{}
       },
       //宸叉湁鎺掑簭鍒楄〃閰嶇疆
       crudOption: {
@@ -264,6 +254,13 @@
         menu: false,
         addBtn: false,
         filter:false,
+        draggable: true,
+        allowDrop: () => {
+          return false;
+        },
+        allowDrag: () => {
+          return true;
+        },
       },
       linkQueryDefineForm:'',//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊�
       linkQueryDefineDic:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -273,6 +270,10 @@
       businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
       //涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑椤瑰睘鎬�
       businessTreeData: [],
+      //楂樼骇鏌ヨ鏉′欢
+      queryTree:{},
+      //鏅�氭煡璇㈡潯浠�
+      queryCondition:[]
     };
   },
   watch: {
@@ -322,40 +323,83 @@
       },
       immediate: true,
     },
+    'dialog.type': {
+      handler(val) {
+        if(val=='edit'){
+        }
+      },
+      immediate: true,
+    },
   },
   methods: {
     openDialog(btmName, title, mode, data) {
       this.dialog.title = title;
-      this.dialog.showDialog = true;
       this.dialog.type = mode;
       this.form.btmName = btmName;
       this.treeData = data.treeData;
 
       if (data.selectData) {
         this.selectData = data.selectData;
-        this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭
+        this.form.qtName = this.selectData.qtName;
+        this.form.direction = this.selectData.queryTemplate.direction;
+        this.form.btmType = this.selectData.queryTemplate.btmType;
+        this.form.version = this.selectData.queryTemplate.version;
+        this.form.queryISLeaf = this.selectData.queryTemplate.queryISLeaf;
+        this.form.level = this.selectData.queryTemplate.level;
+        if (data.selectData.queryTemplate.orderInfoList && data.selectData.queryTemplate.orderInfoList.length > 0) {
+          this.orderInfoList = JSON.parse(JSON.stringify(data.selectData.queryTemplate.orderInfoList));//宸叉湁鎺掑簭
+        }
+        this.queryCondition=this.selectData.queryTemplate.condition;
+        this.queryTree=this.selectData.queryTemplate.tree;
       } else {
         this.selectData = {};
-        this.orderInfoList =[];
+        this.orderInfoList = [];
+        this.queryCondition=[];
+        this.queryTree={};
       }
-      this.getTemp(data.treeData.label,true)
+      this.dialog.showDialog = true;
+      this.getTemp(data.treeData.label, true)
     },
     cancelDialog() {
+      this.dialog.loading = false;
+      this.dialog.showDialog = false;
       this.$nextTick(() => {
-        this.form = this.formTemplate;
+        this.form = {
+          btmName: '',
+          qtName: '',
+          queryTemplate: {}
+        };
         this.orderInfoList =[];
-        this.dialog.loading = false;
-        this.dialog.showDialog = false;
-        this.$refs.form.resetFields();
         this.businessQueryDefineForm='';
         this.linkQueryDefineForm='';
+        this.$refs.form.clearValidate();
       });
     },
     submitDialog() {
       this.$refs.form.validate((valid) => {
         if (valid) {
-          linkSave(this.form).then(res => {
-            if (res.success) {
+          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=[]
+          linkSave(formData).then(res => {
+            if (res.data.success) {
               this.$message.success("淇濆瓨鎴愬姛");
               this.cancelDialog();
               this.$emit("refresh");
@@ -469,7 +513,12 @@
           children: childData
         }]
       }
-    }
+    },
+    // 寮�濮嬫嫋鎷芥爲鑺傜偣浜嬩欢
+    handleDragStart(node, ev) {
+      // 浣跨敤 setData 鏂规硶璁剧疆鏁版嵁
+      ev.dataTransfer.setData('item', JSON.stringify(node.data));
+    },
   },
 }
 </script>

--
Gitblit v1.9.3