wangting
2024-08-30 4e811ec71dba161e13592828a6035e9316b1548e
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:RECRETURNMODE_FLAT, 2:RECRETURNMODE_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>