wangting
2024-09-27 aa869225a5f2054cb0253d8f037863aaec866c6e
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"  @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>
@@ -60,6 +60,7 @@
                               :queryCondition="queryCondition"
                               :queryTree="queryTree"
                               :levelFlag.sync="form.levelFlag"
                               @queryHandler="queryHandler"
            ></form-query-dialog>
          </fieldset>
        </el-main>
@@ -69,7 +70,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>
@@ -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";
@@ -196,7 +197,14 @@
          prop: 'orderField'
        }, {
          label: '排序方式',
          prop: 'orderMode'
          prop: 'orderMode',
          formatter:function (row, value) {
            if (row.orderMode == 'ASC') {
              return '升序'
            }else{
              return '降序'
            }
          }
        }, {
          label: '优先级',
          prop: 'level'
@@ -261,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:[],//链接类型查询模板定义下拉数据
@@ -362,7 +379,9 @@
        };
      }
      this.dialog.showDialog = true;
      this.treeOption.defaultExpandedKeys=[data.treeData.label]
      this.getTemp(data.treeData.label, true)
    },
    cancelDialog() {
      this.dialog.loading = false;
@@ -509,7 +528,7 @@
    //获取查询模板定义下拉
    getTemp(btmName,linkFlag) {
      if (btmName) {
        queryTemplateListByAttr({btmName: btmName, linkFlag: linkFlag,direction:this.form.direction}).then(res => {
        queryTemplateListByAttr({btmName: btmName, linkFlag: linkFlag,direction:linkFlag?null:this.form.direction}).then(res => {
          const data = res.data.data.map(item => {
            item.label = item.name + '-' + (item.linkTypeName || item.btmName);
            item.value = item.name;
@@ -527,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
        }]
      }
    },
@@ -561,6 +564,32 @@
    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);
      }
    },
    //查询
    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;
        }
      });
    },
  },
}