From 5042cc0622d36e3df27d0d086219ba17bc40e2f5 Mon Sep 17 00:00:00 2001
From: wangting <675591594@qq.com>
Date: 星期五, 06 九月 2024 18:29:55 +0800
Subject: [PATCH] 查询模板

---
 /dev/null                                                                                        |  728 ---------------------------------------------
 Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js                             |    8 
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue      |   64 ++-
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue |   41 -
 Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue  |   69 ++-
 5 files changed, 96 insertions(+), 814 deletions(-)

diff --git a/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js b/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js
index 852c6bd..80d1bb2 100644
--- a/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js
+++ b/Source/plt-web/plt-web-ui/src/api/queryTemplate/businessTypeQuery.js
@@ -1,9 +1,9 @@
 import request from '@/router/axios';
 //涓氬姟绫诲瀷鏌ヨ妯℃澘
 // 鍒涘缓
-export function linkSave(params) {
+export function btmSave(params) {
   return request({
-    url: "/api/templateController/linkSave",
+    url: "/api/templateController/btmSave",
     method: "post",
     data:params
   });
@@ -17,9 +17,9 @@
   });
 }
 // 鏌ヨ鏉′欢鐨勬煡璇㈡帴鍙o紝鎺ュ彛鏂瑰紡POST锛屽弬鏁颁笌淇濆瓨鎺ュ彛浼犲弬涓�鑷�
-export function getCriteria(params) {
+export function getCriteriaBtm(params) {
   return request({
-    url: "/api/templateController/getCriteria",
+    url: "/api/templateController/getCriteriaBtm",
     method: "post",
     data:params
   });
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
index e11d0a9..f30d66c 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formDialog.vue
@@ -60,6 +60,7 @@
                                :queryCondition="queryCondition"
                                :queryTree="queryTree"
                                :levelFlag.sync="form.levelFlag"
+                               @queryHandler="queryHandler"
             ></form-query-dialog>
           </fieldset>
         </el-main>
@@ -73,10 +74,10 @@
 </template>
 
 <script>
-import {linkSave,getBizTypeQTDs} from "@/api/queryTemplate/businessTypeQuery";
+import {btmSave,getBizTypeQTDs,getCriteriaBtm} from "@/api/queryTemplate/businessTypeQuery";
 import basicOption from "@/util/basic-option";
 import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
-import formQueryDialog from "./formQueryDialog.vue";
+import formQueryDialog from "@/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue";
 export default {
   name: "formDialog",
   components:{formQueryDialog},
@@ -201,9 +202,18 @@
         allowDrop: () => {
           return false;
         },
-        allowDrag: () => {
-          return true;
+        allowDrag: (dropNode) => {
+          if (dropNode.data.attrs && dropNode.data.attrs.length>0) {
+            return false;
+          } else {
+            return true;
+          }
         },
+        props:{
+          label:'name',
+          value:'name',
+          children:'attrs'
+        }
       },
       businessQueryDefineForm:'',//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊�
       businessQueryDefineDic:[],//涓氬姟绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -227,7 +237,6 @@
       if (data.selectData) {
         this.selectData = data.selectData;
         this.form.qtName = this.selectData.qtName;
-        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));//宸叉湁鎺掑簭
         }
@@ -244,6 +253,7 @@
         };
       }
       this.dialog.showDialog = true;
+      this.treeOption.defaultExpandedKeys=[data.treeData.label]
       this.getTemp(data.treeData.label)
       this.getAllAttr();
     },
@@ -268,7 +278,7 @@
         if (valid) {
           const formData=this.initFormData();
           console.log(formData)
-          linkSave(formData).then(res => {
+          btmSave(formData).then(res => {
             if (res.data.success) {
               this.$message.success("淇濆瓨鎴愬姛");
               this.cancelDialog();
@@ -288,16 +298,7 @@
         qtName: this.form.qtName,
         levelFlag: this.form.levelFlag,
         queryTemplate: {
-          clauseList: ['*'],
-          direction: this.form.direction,
-          id: this.form.qtName,
-          linkType: this.form.btmName,
           orderInfoList: this.orderInfoList,
-          recReturnMode: 1,//閫掑綊杩斿洖鏁版嵁妯″紡:1锛歊ECRETURNMODE_FLAT, 2锛歊ECRETURNMODE_FILTER
-          rightFlag: true,
-          secretFlag: true,
-          type: 'link',
-          version: this.form.version
         }
       }
       if (formData.levelFlag == 1) {
@@ -341,7 +342,6 @@
     },
     // 琛屽垹闄�
     rowDeleteHandler(data) {
-      debugger;
       this.orderInfoList.splice(data.index,1);
       this.orderFieldList.unshift({
         id: data.row.orderField
@@ -390,31 +390,22 @@
     //鑾峰彇鏌ヨ妯℃澘瀹氫箟涓嬫媺
     getTemp(btmName) {
       if (btmName) {
-        queryTemplateListByAttr({btmName: btmName}).then(res => {
+        queryTemplateListByAttr({btmName: btmName,linkFlag:false}).then(res => {
           const data = res.data.data.map(item => {
-            item.label = item.name + '-' + (item.linkTypeName || item.btmName);
+            item.label = item.name + '-' + item.btmName;
             item.value = item.name;
             return item;
           });
             this.businessQueryDefineDic=data;
             data.length>0 && (this.businessQueryDefineForm= data[0].value);
-
         })
       }
     },
     businessQueryDefineChange(data) {
       if (data.value) {
-        const childData = data.item.attrs.map(item => {
-          return {
-            label: item.name,
-            value: item.name,
-            atttributes:item
-          };
-        });
         this.businessTreeData = [{
-          label: data.value,
-          value: data.value,
-          children: childData
+          name: data.value,
+          attrs: data.item.attrs
         }]
       }
     },
@@ -430,7 +421,25 @@
       if(this.form.levelFlag==1) {
         this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev);
       }
-    }
+    },
+    //鏌ヨ
+    queryHandler(){
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.$refs.formQuery.queryResultDialog.loading=true;
+          const formData=this.initFormData();
+          getCriteriaBtm(formData).then(res => {
+            if (res.data.success) {
+              this.resultData=res.data.data;
+              this.$refs.formQuery.queryResultDialog.showDialog=true;
+              this.$refs.formQuery.queryResultDialog.loading=false;
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
   },
 }
 </script>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formQueryDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formQueryDialog.vue
deleted file mode 100644
index 38ff8db..0000000
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/businessTypeQuery/formQueryDialog.vue
+++ /dev/null
@@ -1,728 +0,0 @@
-<template>
-  <div style="padding: 0 10px">
-    <div style="text-align: center;margin-bottom: 10px">
-      <avue-radio v-model="radioForm"  :dic="radioDic" style="margin: 0 20px 0 0;display: inline-block"></avue-radio>
-      <el-button  plain size="mini" type="primary" @click="clearValue">娓呯┖鍊�</el-button>
-      <el-button  plain size="mini" type="primary" @click="delAll">鍒犻櫎鍏ㄩ儴鏉′欢</el-button>
-    </div>
-    <div v-if="radioForm==0" @drop="drop" @dragover.prevent style="height: 220px;text-align: center;">
-      <div v-for="(condition,index) in conditionList" :key="index" class="el-input--small" style="margin-bottom: 5px; text-align:left">
-        <span style="width: 200px;display: inline-block;text-align: right" :title="condition.clause">{{condition.clause}}</span>
-        <avue-select v-model="condition.operator" type="tree" :dic="condition.operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
-        <el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;" value-format="YYYY-MM-DD"
-                        type="date">
-        </el-date-picker>
-        <el-date-picker v-else-if="condition.type=='VTDateTime'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"
-                        type="datetime">
-        </el-date-picker>
-        <el-time-select v-else-if="condition.type=='VTTime'" v-model="condition.ordinaryValue" value-format="HH:mm:ss" style="width:300px;margin-right: 5px;display: inline-block;">
-        </el-time-select>
-        <avue-input-number v-else-if="condition.type=='VTInteger'" precision="0" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
-        <avue-input-number v-else-if="condition.type=='VTLong' || condition.type=='VTDouble'" v-model="condition.ordinaryValue" style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
-        <avue-input v-else v-model="condition.ordinaryValue" placeholder="" style="width: 300px;margin-right: 5px;"></avue-input>
-        <el-button  plain size="mini" type="primary" @click="checkTemp(index)">閫夋嫨鏌ヨ妯℃澘</el-button>
-        <el-button  size="mini" type="danger" icon="el-icon-delete" @click="delCondition(index)" style="padding: 7px 8px"></el-button>
-      </div>
-    </div>
-    <div v-else @drop="drop" @dragover.prevent style="height: 220px;text-align: left">
-      <avue-tree ref="tree" @node-drag-end="handleDragEnd" @node-drag-leave="handleDragLeave"  @node-drag-over="handleDragOver"
-                  style="height: 220px" :data="treeData" :option="treeOption"  @node-click="nodeClick" node-key="value"></avue-tree>
-    </div>
-    <div style="text-align: right;margin-top: 10px;">
-      <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="addHandler">澧炲姞閫昏緫</el-button>
-      <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="editHandler">淇敼鏉′欢</el-button>
-      <el-button v-if="radioForm==1"  plain size="mini" type="primary" @click="delHandler">鍒犻櫎</el-button>
-      <el-button  plain size="mini" type="primary" @click="queryHandler">鏌ヨ</el-button>
-      <el-button  plain size="mini" type="primary" @click="">鍙栨秷</el-button>
-    </div>
-
-    <!--淇敼鏉′欢-->
-    <el-dialog v-dialogDrag
-               :title="dialog.title"
-               :visible.sync="dialog.showDialog"
-               width="550px"
-               :append-to-body="true"
-               class="avue-dialog"
-               :destroy-on-close="true"
-               :close-on-click-modal="false"
-               @close="dialog.showDialog=false">
-      <div style="height: 200px;">
-        {{clickNode.showLabel}}
-        <avue-select v-if="['VTInteger','VTDouble','VTLong'].includes(clickNode.type)" v-model="clickNode.operator" type="tree" :dic="operatorIntDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
-        <avue-select v-else-if="['VTDateTime','VTDate','VTTime'].includes(clickNode.type)" v-model="clickNode.operator" type="tree" :dic="operatorDateDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
-        <avue-select v-else v-model="clickNode.operator" type="tree" :dic="operatorDic" :clearable="false" style="width: 80px;margin: 0 5px;"></avue-select>
-        <el-date-picker v-if="clickNode.type=='VTDate'" v-model="clickNode.inputValue" style="width:300px;display: inline-block;" value-format="YYYY-MM-DD"
-          type="date">
-        </el-date-picker>
-        <el-date-picker v-else-if="clickNode.type=='VTDateTime'" v-model="clickNode.inputValue" style="width:350px;display: inline-block;"
-          type="datetime">
-        </el-date-picker>
-        <el-time-select v-else-if="clickNode.type=='VTTime'" v-model="clickNode.inputValue" value-format="HH:mm:ss" style="width:300px;display: inline-block;">
-        </el-time-select>
-        <avue-input-number v-else-if="clickNode.type=='VTInteger'" precision="0" v-model="clickNode.inputValue" style="width:300px;display: inline-block;"></avue-input-number>
-        <avue-input-number v-else-if="clickNode.type=='VTLong' || clickNode.type=='VTDouble'" v-model="clickNode.inputValue" style="width:300px;display: inline-block;"></avue-input-number>
-        <avue-input v-else v-model="clickNode.inputValue" type="textarea" style="width: 300px;margin-right: 5px;vertical-align: top;"></avue-input>
-      </div>
-      <div class="dialog-footer avue-dialog__footer">
-        <el-button size="small" @click="checkTemp" v-if="!['VTInteger','VTDouble','VTLong','VTDateTime','VTDate','VTTime'].includes(clickNode.type)">閫夋嫨鏌ヨ妯℃澘</el-button>
-        <el-button type="primary" plain size="small" @click="submitDialog" >淇� 瀛�</el-button>
-        <el-button size="small" @click="dialog.showDialog=false">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
-    <el-dialog v-dialogDrag
-               :title="queryDialog.title"
-               :visible.sync="queryDialog.showDialog"
-               width="800px"
-               :append-to-body="true"
-               class="avue-dialog"
-               :destroy-on-close="true"
-               :close-on-click-modal="false"
-               @close="cancleQueryDialog">
-      <div class="el-input--small">
-        杈撳叆鏌ヨ瀛楁锛�<avue-input v-model="queryField" style="width: 500px;margin-bottom: 10px"></avue-input>
-        <avue-crud  ref="crud" :data="crudData" :option="crudOption"
-                    :page.sync="page"
-                    :table-loading="tableLoading"
-                    @selection-change="selectionChange"
-                    @row-click="rowClick"
-                    @size-change="sizeChange"
-                    @current-change="currentChange">
-        </avue-crud>
-      </div>
-      <div class="dialog-footer avue-dialog__footer">
-        <el-button type="primary" plain size="small" @click="submitQueryDialog" >纭� 瀹�</el-button>
-        <el-button size="small" @click="cancleQueryDialog">鍙� 娑�</el-button>
-      </div>
-    </el-dialog>
-    <el-dialog v-dialogDrag
-               :title="queryResultDialog.title"
-               :visible.sync="queryResultDialog.showDialog"
-               width="900px"
-               :append-to-body="true"
-               class="avue-dialog"
-               :destroy-on-close="true"
-               :close-on-click-modal="false"
-               @close="queryResultDialog.showDialog='false'">
-      <div class="el-input--small">
-        <avue-crud  ref="crud" :data="resultData" :option="resultOption"
-                    :table-loading="queryResultDialog.loading">
-        </avue-crud>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import basicOption from "@/util/basic-option";
-import {getAllQTs} from "@/api/queryTemplate/queryDefine";
-import {getCriteria} from "@/api/queryTemplate/linkTypeQuery";
-import {dateFormat} from "@/util/date"
-export default {
-name: "formQueryDialog",
-  props: {
-    queryCondition: {
-      type: Array,
-      default: []
-    },
-    queryTree: {
-      type: Object,
-      default: {}
-    },
-    levelFlag:{
-      type: Number,
-      default: 0
-    }
-  },
-  data() {
-    return {
-      dialog: {
-        showDialog: false,
-        title: "鏌ヨ鏉′欢璁剧疆妗�",
-        loading: false
-      },
-      queryDialog: {
-        showDialog: false,
-        title: "閫夋嫨鏌ヨ妯℃澘",
-        loading: false
-      },
-      queryResultDialog: {
-        showDialog: false,
-        title: "鏌ヨ缁撴灉",
-        loading: false
-      },
-      radioDic: [{
-        label: '鏅��',
-        value: 0
-      }, {
-        label: '楂樼骇',
-        value: 1
-      }],
-      conditionList:[],
-      treeData:[],
-      treeOption:{
-        defaultExpandAll:true,
-        menu: false,
-        addBtn: false,
-        filter:false,
-        draggable: true,
-        allowDrop: (draggingNode, dropNode, type) => {
-          debugger;
-          if (dropNode.data.label === '骞朵笖' || dropNode.data.label === '鎴栬��') {
-            return true;
-          } else {
-            this.$message.error('璇烽�変腑閫昏緫鏉′欢娣诲姞鏌ヨ椤�');
-            return false;
-          }
-        },
-        allowDrag: (draggingNode) => {
-          return false;
-        },
-      },
-      page: {
-        currentPage: 1,
-        pageSize: 10,
-        total: 0,
-        pageSizes: [10, 30, 50, 100],
-      },
-      crudData:[],
-      crudOption: {
-        ...basicOption,
-        addBtn: false,
-        editBtn: false,
-        delBtn: false,
-        tip: false,
-        header: false,
-        height: window.innerHeight-220,
-        menu: false,
-        column: [{
-          label: '鏌ヨ妯℃澘鍚嶇О',
-          prop: 'qtName',
-          sortable: true,
-        }, {
-          label: '閾炬帴绫诲瀷鎴栦笟鍔$被鍨�',
-          prop: 'btmName',
-          sortable: true,
-        }]
-      },
-      tableLoading: false,
-      selectionRow:[],
-      queryField:'',
-      resultData:[],
-      resultOption: {
-        ...basicOption,
-        addBtn: false,
-        editBtn: false,
-        delBtn: false,
-        tip: false,
-        header: false,
-        height: window.innerHeight-220,
-        menu: false,
-        column: [{
-          label: 'OID',
-          prop: 'OID',
-        }, {
-          label: 'CREATOR',
-          prop: 'CREATOR'
-        }, {
-          label: 'CREATETIME',
-          prop: 'CREATETIME'
-        }]
-      },
-      clickNode:{},
-      operatorIntDic:[{
-        label: '=',
-        value: '='
-      }, {
-        label: '!=',
-        value: '!='
-      }, {
-        label: '鍖呭惈',
-        value: '鍖呭惈'
-      }, {
-        label: 'in',
-        value: 'in'
-      }, {
-        label: 'not in',
-        value: 'not in'
-      }, {
-        label: '>=',
-        value: '>='
-      }, {
-        label: '>',
-        value: '>'
-      }, {
-        label: '<=',
-        value: '<='
-      }, {
-        label: '<',
-        value: '<'
-      }],
-      operatorDateDic : [{
-        label: '=',
-        value: '='
-      }, {
-        label: '!=',
-        value: '!='
-      }, {
-        label: 'in',
-        value: 'in'
-      }, {
-        label: 'not in',
-        value: 'not in'
-      }, {
-        label: '>=',
-        value: '>='
-      }, {
-        label: '<=',
-        value: '<='
-      }],
-      operatorDic : [{
-        label: '=',
-        value: '='
-      }, {
-        label: '!=',
-        value: '!='
-      }, {
-        label: '鍖呭惈',
-        value: '鍖呭惈'
-      }, {
-        label: 'in',
-        value: 'in'
-      }, {
-        label: 'not in',
-        value: 'not in'
-      }]
-    }
-  },
-  computed: {
-    radioForm:{
-      get() {
-        return this.levelFlag;
-      },
-      set(value) {
-        this.$emit('update:levelFlag', value);
-      }
-    }
-  },
-  watch: {
-    queryCondition:{
-      handler(val) {
-        if(val && val.cIMap){
-          let list=[];
-          let that=this;
-          let getValue =function(queryTemplate,item) {
-            for (let key in queryTemplate.condition.cIMap) {
-              if (queryTemplate.condition.cIMap[key].leaf) {
-                item.clause += '.' + queryTemplate.condition.cIMap[key].leafInfo.clause;
-                if (queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate) {
-                  getValue(queryTemplate.condition.cIMap[key].leafInfo.value.queryTemplate, item)
-                } else {
-                  item.ordinaryValue = queryTemplate.condition.cIMap[key].leafInfo.value.ordinaryValue;
-                  item.type=queryTemplate.condition.cIMap[key].leafInfo.type;
-                  if(['VTInteger','VTDouble','VTLong'].includes(item.type)){
-                    item.operatorDic=that.operatorIntDic;
-                  }else if(['VTDateTime','VTDate','VTTime'].includes(item.type)){
-                    item.operatorDic=that.operatorDateDic;
-                  }else{
-                    item.operatorDic=that.operatorDic;
-                  }
-                }
-              }
-            }
-          }
-          for (let key in val.cIMap) {
-            if (this.queryCondition.cIMap[key].leaf) {
-              let clause=this.queryCondition.cIMap[key].leafInfo.clause;
-              let operator= this.queryCondition.cIMap[key].leafInfo.operator;
-              let item={
-                clause: clause,
-                operator: operator,
-                ordinaryValue: '',
-                operatorDic :[]
-              }
-              if(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate) {
-                getValue(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate, item)
-              }else {
-                item.ordinaryValue=this.queryCondition.cIMap[key].leafInfo.value.ordinaryValue;
-                item.type=this.queryCondition.cIMap[key].leafInfo.type;
-                if(['VTInteger','VTDouble','VTLong'].includes(item.type)){
-                  item.operatorDic=that.operatorIntDic;
-                }else if(['VTDateTime','VTDate','VTTime'].includes(item.type)){
-                  item.operatorDic=that.operatorDateDic;
-                }else{
-                  item.operatorDic=that.operatorDic;
-                }
-              }
-              list.push(item)
-            }
-          }
-          this.conditionList= list;
-        }else{
-          this.conditionList=[]
-        }
-      },
-      immediate: true,
-      deep:true
-    },
-    queryTree:{
-      handler(val) {
-        this.treeIndex=0;
-        if(val && Object.keys(val).length>0){
-          let treeData = [];
-          let that=this;
-          function initValue(nodeChild) {
-            let children=[];
-            if(nodeChild){
-              nodeChild.forEach((item,index)=>{
-                that.treeIndex++;
-                if(item.column !=null && item.column != undefined){
-                  const values= item.column.split(' ');
-                  let inputValue='';
-                  let operator='';
-                  let showLabel=''
-                  if(item.column.indexOf('not in')!=-1){
-                    operator='not in';
-                    if(values.length>3){
-                      inputValue=values[3];
-                    }
-                  }else{
-                    if(values.length>1){
-                      operator=values[1];
-                      if(values.length>2){
-                        inputValue=values[2];
-                      }
-                    }
-                  }
-
-                  if(values[0].indexOf('.')!=-1){
-                    const labels=values[0].split('.')
-                    showLabel=labels[labels.length-1];
-                  }else {
-                    showLabel=values[0];
-                  }
-                  children.push({
-                    label:item.column,
-                    value:item.column+that.treeIndex,
-                    type:item.type,
-                    valueIndex:'v'+that.treeIndex,
-                    inputValue:inputValue,
-                    operator:operator,
-                    showLabel:showLabel
-                  })
-                }else {
-                  children.push({
-                    label:item.connector,
-                    value:item.connector+that.treeIndex,
-                    valueIndex:'v'+that.treeIndex,
-                    children:initValue(item.child)
-                  })
-                }
-              })
-            }
-            return children;
-          }
-          const node={
-            label:val.connector,
-            value:val.connector+this.treeIndex,
-            valueIndex:'v'+this.treeIndex,
-            children:initValue(val.child)
-          }
-          treeData.push(node)
-          this.treeData = treeData;
-        }else {
-          this.treeData=[{
-            label: '骞朵笖',
-            value: '骞朵笖' + this.treeIndex,
-            valueIndex: 'v' + this.treeIndex,
-            connector: '骞朵笖',
-            children: []
-          }]
-        }
-      },
-      immediate: true,
-      deep:true
-    }
-  },
-  created() {
-    this.getTemp();
-  },
-  methods: {
-    // 鎷栨嫿鍒版椂
-    drop(event) {
-      // 浣跨敤 getData 鏂规硶鑾峰彇鏁版嵁
-      const data = JSON.parse(event.dataTransfer.getData('item'));
-      if (this.radioForm == 0) {
-        const params = {
-          clause: data.value,
-          operator: '=',
-          ordinaryValue: ''
-        }
-        if (data.atttributes.vtDataType == 'VTInteger' || data.atttributes.vtDataType == 'VTDouble' || data.atttributes.vtDataType == 'VTLong') {
-          params.operatorDic =JSON.parse(JSON.stringify(this.operatorIntDic)) ;
-        } else if (data.atttributes.vtDataType == 'VTDateTime' || data.atttributes.vtDataType == 'VTDate' || data.atttributes.vtDataType == 'VTTime') {
-          params.operatorDic = JSON.parse(JSON.stringify(this.operatorDateDic))
-        } else {
-          params.operatorDic = JSON.parse(JSON.stringify(this.operatorDic))
-        }
-        params.type=data.atttributes.vtDataType;
-        this.conditionList.push(params)
-      }else {
-        if (this.clickNode.label != '骞朵笖' && this.clickNode.label != '鎴栬��') {
-          this.$message.error('璇烽�変腑閫昏緫鏉′欢娣诲姞鏌ヨ椤�');
-          return;
-        }
-        this.$refs.tree.append(this.initItem(data), this.clickNode);
-      }
-    },
-    initItem(data){
-      this.treeIndex++;
-      let item={
-        label: data.value,
-        value: data.value + this.treeIndex,
-        valueIndex: 'v' + this.treeIndex,
-        type:data.vtDataType,
-        children: [],
-        inputValue:data.value,
-        operator:'=',
-        showLabel:data.value
-      };
-      let showLabel='';
-      if(data.value.indexOf('.')!=-1){
-        const labels=data.value.split('.')
-        showLabel=labels[labels.length-1];
-      }else {
-        showLabel=data.value;
-      }
-      item.showLabel=showLabel;
-      return item
-    },
-    handleDragEnd(draggingNode, dropNode, dropType, ev) {
-      debugger;
-      console.log('tree drag end: ', dropNode && dropNode.label, dropType);
-    },
-    handleDragOver({event}) {
-      // 闃绘榛樿浜嬩欢锛屽厑璁告斁缃�
-      event.preventDefault();
-    },
-    handleDragLeave({event}) {
-      // 娓呴櫎鏀剧疆鏁堟灉
-      event.preventDefault();
-    },
-    //鍒犻櫎鏅�氭煡璇㈡潯浠�
-    delCondition(index) {
-      this.conditionList.splice(index, 1);
-    },
-    //娓呯┖鍊�
-    clearValue() {
-      if (this.radioForm == 0) {
-        this.conditionList.map(item => {
-          item.ordinaryValue = '';
-          return item;
-        })
-        this.conditionList = this.conditionList
-      } else {
-        if(this.treeData[0] && this.treeData[0].children) {
-          this.clearTreeValue(this.treeData[0].children)
-        }
-      }
-    },
-    clearTreeValue(nodes){
-      nodes.forEach((node,index)=>{
-        if(node.children){
-          this.clearTreeValue(node.children)
-        }else {
-          if(node.label.indexOf('not in')!=-1){
-            node.label=node.label.split(' ')[0]+' not in'
-          }else {
-            let values = node.label.split(' ');
-            if (values.length > 2) {
-              node.label = values[0] + ' ' + values[1];
-            }
-          }
-        }
-      })
-    },
-    //鍒犻櫎鍏ㄩ儴鏉′欢
-    delAll() {
-      if (this.radioForm == 0) {
-        this.conditionList = [];
-      } else {
-        this.treeIndex = 0;
-        this.treeData = [];
-        this.clickNode={};
-      }
-    },
-    nodeClick(data) {
-      this.clickNode = data
-    },
-    //鏍� 澧炲姞閫昏緫鏉′欢
-    addHandler() {
-      if (Object.keys(this.clickNode).length>0) {
-        if (this.clickNode.label == '骞朵笖' || this.clickNode.label == '鎴栬��') {
-          this.treeIndex++;
-          this.$refs.tree.append({
-            label: '骞朵笖',
-            value: '骞朵笖' + this.treeIndex,
-            valueIndex: 'v' + this.treeIndex,
-            children: []
-          }, this.$refs.tree.getCurrentNode());
-        } else {
-          this.$message.error("鍙兘瀵归�昏緫鏉′欢澧炲姞閫昏緫鏉′欢");
-        }
-      } else {
-        if(this.treeData.length==0){
-          this.treeIndex = 0;
-          this.treeData = [{
-            label: '骞朵笖',
-            value: '骞朵笖' + this.treeIndex,
-            valueIndex: 'v' + this.treeIndex,
-            connector: '骞朵笖',
-            children: []
-          }]
-        }else {
-          this.$message.warning("璇烽�夋嫨鏌ヨ鏉′欢");
-        }
-      }
-    },
-    //鏍� 淇敼鏉′欢
-    editHandler() {
-      if (Object.keys(this.clickNode).length>0) {
-        if (this.clickNode.label == '骞朵笖') {
-          this.clickNode.label = '鎴栬��'
-        } else if (this.clickNode.label == '鎴栬��') {
-          this.clickNode.label = '骞朵笖'
-        } else {
-          this.dialog.showDialog = true;
-        }
-      } else {
-        this.$message.warning("璇烽�夋嫨鏌ヨ鏉′欢");
-      }
-    },
-    //鏍� 鍒犻櫎鏉′欢
-    delHandler() {
-      if (Object.keys(this.clickNode).length>0) {
-        this.$confirm('鎮ㄧ‘瀹氳鍒犻櫎鎵�閫夋嫨鐨勬潯浠跺悧锛�', '鎻愮ず', {
-          confirmButtonText: '纭畾',
-          cancelButtonText: '鍙栨秷',
-          type: 'warning'
-        }).then(() => {
-          this.$refs.tree.remove(this.clickNode);
-          this.clickNode = {};
-        })
-      } else {
-        this.$message.warning("璇烽�夋嫨鏌ヨ鏉′欢");
-      }
-    },
-    //鏌ヨ
-    queryHandler(){
-      this.$parent.$parent.$parent.$parent.$refs.form.validate((valid) => {
-        if (valid) {
-          this.queryResultDialog.loading=true;
-          const formData=this.$parent.$parent.$parent.$parent.initFormData();
-          getCriteria(formData).then(res => {
-            if (res.data.success) {
-              this.resultData=res.data.data;
-              this.queryResultDialog.showDialog=true;
-              this.queryResultDialog.loading=false;
-            }
-          });
-        } else {
-          return false;
-        }
-      });
-    },
-    //閫夋嫨鏌ヨ妯℃澘
-    checkTemp(index) {
-      if(index>=0){
-        if(['VTInteger','VTDouble','VTLong','VTDateTime','VTDate','VTTime'].includes(this.conditionList[index].type)){
-          return false;
-        }
-      }
-      this.queryIndex=index;
-      this.queryDialog.showDialog=true;
-      this.$nextTick(()=>{
-        this.$refs.crud.doLayout();
-      });
-    },
-    //鏌ヨ鏉′欢淇濆瓨
-    submitDialog() {
-      const values= this.clickNode.label.split(' ');
-      this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+this.clickNode.inputValue;
-      try{
-        if(['VTDateTime'].includes(this.clickNode.type)){
-          this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue);
-        }else  if(['VTDate'].includes(this.clickNode.type)){
-          this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue ,'yyyy-MM-dd');
-        }else  if(['VTTime'].includes(this.clickNode.type)){
-          this.clickNode.label = values[0]+' '+this.clickNode.operator+' '+dateFormat(this.clickNode.inputValue ,'hh:mm:ss');
-        }
-      }catch (e) {
-
-      }
-
-      this.dialog.showDialog = false;
-    },
-    //鑾峰彇鏌ヨ妯℃澘鍒楄〃
-    getTemp() {
-      getAllQTs(this.page.currentPage, this.page.pageSize).then(res => {
-        this.crudData = res.data.data;
-        this.tableLoading = false;
-      })
-    },
-    rowClick(row) {
-      this.$refs.crud.toggleSelection();
-      this.$refs.crud.toggleRowSelection(row); //閫変腑褰撳墠琛�
-      this.selectionRow = [row];
-    },
-    selectionChange(list) {
-      this.selectionRow = list;
-    },
-    selectionClear() {
-      this.selectionRow = [];
-      this.$refs.crud.toggleSelection();
-    },
-    //閫夋嫨鏌ヨ妯℃澘
-    submitQueryDialog() {
-      if (this.selectionRow.length == 0) {
-        this.$message.error('璇烽�夋嫨鏌ヨ妯℃澘鍐嶈繘琛屾搷浣�');
-        return;
-      }
-      if (this.queryField == '') {
-        this.$message.error('璇峰~鍐欒緭鍏ユ煡璇㈠瓧娈�');
-        return;
-      }
-      const value = this.selectionRow[0].qtName + ';' + this.queryField
-      if (this.radioForm == 0) {
-        //鏅��
-        this.conditionList[this.queryIndex].ordinaryValue = value;
-      } else {
-        this.clickNode.inputValue = value;
-      }
-      this.cancleQueryDialog();
-    },
-    cancleQueryDialog(){
-      this.queryDialog.showDialog = false;
-      this.selectionClear();
-      this.queryField='';
-      this.queryIndex=null;
-    },
-    sizeChange(val) {
-      this.page.pageSize = val;
-      this.getTemp();
-    },
-
-    // 椤电爜
-    currentChange(val) {
-      this.page.currentPage = val;
-      this.getTemp();
-    },
-  }
-}
-</script>
-
-<style scoped>
-::v-deep .el-input--small .el-input__inner{
-  height: 28px;
-  line-height: 28px;
-}
-</style>
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 d37c1d1..0561cfc 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
@@ -60,6 +60,7 @@
                                :queryCondition="queryCondition"
                                :queryTree="queryTree"
                                :levelFlag.sync="form.levelFlag"
+                               @queryHandler="queryHandler"
             ></form-query-dialog>
           </fieldset>
         </el-main>
@@ -85,7 +86,7 @@
 
 <script>
 import {getAllOrderbyAttributeByLink} from "@/api/modeling/linkType/api";
-import {linkSave} from "@/api/queryTemplate/linkTypeQuery";
+import {linkSave,getCriteria} from "@/api/queryTemplate/linkTypeQuery";
 import basicOption from "@/util/basic-option";
 import {queryTemplateListByAttr} from "@/api/queryTemplate/queryDefine";
 import formQueryDialog from "./formQueryDialog.vue";
@@ -268,12 +269,21 @@
         addBtn: false,
         filter:false,
         draggable: true,
-        allowDrop: () => {
+        allowDrop: (node) => {
           return false;
         },
-        allowDrag: () => {
-          return true;
+        allowDrag: (dropNode) => {
+          if (dropNode.data.attrs && dropNode.data.attrs.length>0) {
+            return false;
+          } else {
+            return true;
+          }
         },
+        props:{
+          label:'name',
+          value:'name',
+          children:'attrs'
+        }
       },
       linkQueryDefineForm:'',//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟閫変腑鍊�
       linkQueryDefineDic:[],//閾炬帴绫诲瀷鏌ヨ妯℃澘瀹氫箟涓嬫媺鏁版嵁
@@ -369,7 +379,9 @@
         };
       }
       this.dialog.showDialog = true;
+      this.treeOption.defaultExpandedKeys=[data.treeData.label]
       this.getTemp(data.treeData.label, true)
+
     },
     cancelDialog() {
       this.dialog.loading = false;
@@ -534,33 +546,17 @@
     },
     linkQueryDefineChange(data) {
       if (data.value) {
-        const childData = data.item.attrs.map(item => {
-          return {
-            label: item.name,
-            value: item.name,
-            atttributes:item
-          };
-        });
         this.linkTreeData = [{
-          label: data.value,
-          value: data.value,
-          children: childData
+          name: data.value,
+          attrs: data.item.attrs
         }]
       }
     },
     businessQueryDefineChange(data) {
       if (data.value) {
-        const childData = data.item.attrs.map(item => {
-          return {
-            label: item.name,
-            value: item.name,
-            atttributes:item
-          };
-        });
         this.businessTreeData = [{
-          label: data.value,
-          value: data.value,
-          children: childData
+          name: data.value,
+          attrs: data.item.attrs
         }]
       }
     },
@@ -576,7 +572,25 @@
       if(this.form.levelFlag==1) {
         this.$refs.formQuery.$refs.tree.$emit('tree-node-drag-end', ev);
       }
-    }
+    },
+    //鏌ヨ
+    queryHandler(){
+      this.$refs.form.validate((valid) => {
+        if (valid) {
+          this.$refs.formQuery.queryResultDialog.loading=true;
+          const formData=this.initFormData();
+          getCriteria(formData).then(res => {
+            if (res.data.success) {
+              this.resultData=res.data.data;
+              this.$refs.formQuery.queryResultDialog.showDialog=true;
+              this.$refs.formQuery.queryResultDialog.loading=false;
+            }
+          });
+        } else {
+          return false;
+        }
+      });
+    },
   },
 }
 </script>
diff --git a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
index 38ff8db..237f483 100644
--- a/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
+++ b/Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -94,6 +94,7 @@
         <el-button size="small" @click="cancleQueryDialog">鍙� 娑�</el-button>
       </div>
     </el-dialog>
+    <!--鏌ヨ-->
     <el-dialog v-dialogDrag
                :title="queryResultDialog.title"
                :visible.sync="queryResultDialog.showDialog"
@@ -102,7 +103,7 @@
                class="avue-dialog"
                :destroy-on-close="true"
                :close-on-click-modal="false"
-               @close="queryResultDialog.showDialog='false'">
+               @close="queryResultDialog.showDialog=false">
       <div class="el-input--small">
         <avue-crud  ref="crud" :data="resultData" :option="resultOption"
                     :table-loading="queryResultDialog.loading">
@@ -453,18 +454,18 @@
       const data = JSON.parse(event.dataTransfer.getData('item'));
       if (this.radioForm == 0) {
         const params = {
-          clause: data.value,
+          clause: data.name,
           operator: '=',
           ordinaryValue: ''
         }
-        if (data.atttributes.vtDataType == 'VTInteger' || data.atttributes.vtDataType == 'VTDouble' || data.atttributes.vtDataType == 'VTLong') {
+        if (data.vtDataType == 'VTInteger' || data.vtDataType == 'VTDouble' || data.vtDataType == 'VTLong') {
           params.operatorDic =JSON.parse(JSON.stringify(this.operatorIntDic)) ;
-        } else if (data.atttributes.vtDataType == 'VTDateTime' || data.atttributes.vtDataType == 'VTDate' || data.atttributes.vtDataType == 'VTTime') {
+        } else if (data.vtDataType == 'VTDateTime' || data.vtDataType == 'VTDate' || data.vtDataType == 'VTTime') {
           params.operatorDic = JSON.parse(JSON.stringify(this.operatorDateDic))
         } else {
           params.operatorDic = JSON.parse(JSON.stringify(this.operatorDic))
         }
-        params.type=data.atttributes.vtDataType;
+        params.type=data.vtDataType;
         this.conditionList.push(params)
       }else {
         if (this.clickNode.label != '骞朵笖' && this.clickNode.label != '鎴栬��') {
@@ -477,21 +478,21 @@
     initItem(data){
       this.treeIndex++;
       let item={
-        label: data.value,
-        value: data.value + this.treeIndex,
+        label: data.name,
+        value: data.name + this.treeIndex,
         valueIndex: 'v' + this.treeIndex,
         type:data.vtDataType,
         children: [],
-        inputValue:data.value,
+        inputValue:'',
         operator:'=',
-        showLabel:data.value
+        showLabel:data.name
       };
       let showLabel='';
-      if(data.value.indexOf('.')!=-1){
-        const labels=data.value.split('.')
+      if(data.name.indexOf('.')!=-1){
+        const labels=data.name.split('.')
         showLabel=labels[labels.length-1];
       }else {
-        showLabel=data.value;
+        showLabel=data.name;
       }
       item.showLabel=showLabel;
       return item
@@ -615,21 +616,7 @@
     },
     //鏌ヨ
     queryHandler(){
-      this.$parent.$parent.$parent.$parent.$refs.form.validate((valid) => {
-        if (valid) {
-          this.queryResultDialog.loading=true;
-          const formData=this.$parent.$parent.$parent.$parent.initFormData();
-          getCriteria(formData).then(res => {
-            if (res.data.success) {
-              this.resultData=res.data.data;
-              this.queryResultDialog.showDialog=true;
-              this.queryResultDialog.loading=false;
-            }
-          });
-        } else {
-          return false;
-        }
-      });
+      this.$emit('queryHandler');
     },
     //閫夋嫨鏌ヨ妯℃澘
     checkTemp(index) {

--
Gitblit v1.9.3