yuxc
2025-01-15 2bea732496b4f5051233ed94e206160992351596
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="1620px"
             width="1650px"
             :append-to-body="true"
             class="avue-dialog"
             :destroy-on-close="true"
@@ -46,8 +46,8 @@
            <legend>&nbsp;链接类型候选条件&nbsp;</legend>
            <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" @node-drag-end="handleDragEnd">
              <avue-select @change="linkQueryDefineChange" class="el-input--small" v-model="linkQueryDefineForm" placeholder="请选择内容" type="tree" :dic="linkQueryDefineDic" style="width:245px"></avue-select>
              <avue-tree style="width:335px;height: 268px" :data="linkTreeData" :option="treeOption"  @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
              </avue-tree>
            </div>
          </fieldset>
@@ -70,8 +70,8 @@
            <legend>&nbsp;业务类型候选条件&nbsp;</legend>
            <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" @node-drag-end="handleDragEnd">
              <avue-select @change="businessQueryDefineChange" class="el-input--small" v-model="businessQueryDefineForm" placeholder="请选择内容" type="tree" :dic="businessQueryDefineDic" style="width: 245px;"></avue-select>
              <avue-tree style="width:335px;height: 268px" :data="businessTreeData" :option="treeOption"  @node-drag-start="handleDragStart" @node-drag-end="handleDragEnd">
              </avue-tree>
            </div>
          </fieldset>
@@ -79,7 +79,7 @@
      </el-container>
    </div>
    <div class="dialog-footer avue-dialog__footer">
      <el-button type="primary" plain size="small" @click="submitDialog" >保 存</el-button>
      <el-button type="primary" size="small" @click="submitDialog" >保 存</el-button>
      <el-button size="small" @click="cancelDialog">取 消</el-button>
    </div>
  </el-dialog>
@@ -123,7 +123,8 @@
        label: '查询模板名称',
        prop: 'qtName',
        type: 'input',
        span:5,
        span:4.5,
        labelWidth: 110,
        rules: [{
          required: true,
          message: "请输入查询模板名称",
@@ -134,26 +135,49 @@
        prop: 'direction',
        type: 'radio',
        value:'positive',
        labelWidth:70,
        span: 3,
        labelWidth:80,
        span: 3.5,
        dicData: [{
          label: '正向',
          value: 'positive'
        }, {
          label: '反向',
          value: 'opposite'
        }]
        }],
        control: (val, form) => {
          const dicData=this.getDicData(val);
          this.form.btmType=dicData[0].value
          return {
            btmType: {
              dicData: dicData
            }
          };
        }
      },{
        label: '业务类型',
        prop: 'btmType',
        type: 'select',
        labelWidth:110,
        dicData: []
        clearable:false,
        rules: [{
          required: true,
          message: "请选择业务类型",
          trigger: "blur"
        }],
        dicData: [],
        change: ({ value, column, item, dic }) => {
          this.form.btmType=value;
          if(value){
            this.getAllAttr();
            this.getTemp(value,false);
          }
        },
      }, {
        label: '版本版次',
        prop: 'version',
        type: 'select',
        span:5,
        span:4,
        labelWidth:110,
        dicData: [{
          label: '当前版本当前版次',
          value: 1
@@ -172,7 +196,7 @@
        label: '查询是否有下级',
        prop: 'queryISLeaf',
        type: 'switch',
        labelWidth:140,
        labelWidth:150,
        dicData: [ {
          label: '否',
          value: false
@@ -185,7 +209,7 @@
        label: '子节点层次数',
        prop: 'level',
        type: 'number',
        span:3,
        labelWidth:130,
        value:1
      }],
      form:{
@@ -284,11 +308,7 @@
          return false;
        },
        allowDrag: (dropNode) => {
          if (dropNode.data.attrs && dropNode.data.attrs.length>0) {
            return false;
          } else {
            return true;
          }
          return true;
        },
        props:{
          label:'name',
@@ -311,54 +331,7 @@
    };
  },
  watch: {
    //方向
    'form.direction': {
      handler(val) {
        if(val=='positive'){
          //正向
          const dicData=this.treeData.btmItemsTo.map(item=>{
            return {
              label: item,
              value: item
            }
          })
          dicData.push({
            label: '所有类型',
            value: '*'
          })
          this.$refs.form.updateDic('btmType', dicData);
          this.form.btmType=dicData[0].value
          this.getAllAttr();
        }else if(val=='opposite'){
          //反向
          const dicData=this.treeData.btmItemsFrom.map(item=>{
            return {
              label: item,
              value: item
            }
          })
          dicData.push({
            label: '所有类型',
            value: '*'
          })
          this.$refs.form.updateDic('btmType', dicData);
          this.form.btmType=dicData[0].value
          this.getAllAttr();
        }
      },
      immediate: true,
    },
    //业务类型
    'form.btmType': {
      handler(val) {
        if(val && val!='*'){
          this.getTemp(val,false);
        }
      },
      immediate: true,
    }
  },
  watch: {},
  methods: {
    openDialog(btmName, title, mode, data) {
      this.dialog.title = title;
@@ -380,7 +353,11 @@
        this.queryCondition=this.selectData.queryTemplate.condition;
        this.queryTree=this.selectData.tree;
        this.form.levelFlag=this.selectData.levelFlag;
        const dicData=this.getDicData(this.form.direction);
        this.formItems[2].dicData=dicData;
      } else {
        this.form.direction='positive';
        this.selectData = {};
        this.orderInfoList = [];
        this.queryCondition=[];
@@ -388,11 +365,39 @@
          connector:'并且',
          child:[]
        };
        const dicData=this.getDicData(this.form.direction);
        this.formItems[2].dicData=dicData;
        this.form.btmType=dicData[0].value;
      }
      this.dialog.showDialog = true;
      this.treeOption.defaultExpandedKeys=[data.treeData.label]
      this.getTemp(data.treeData.label, true)
    },
    //获取业务类型下拉数据
    getDicData(directionVal){
      let dicData=[];
      if(directionVal=='positive'){
        //正向
        dicData=this.treeData.btmItemsTo.map(item=>{
          return {
            label: item,
            value: item
          }
        })
      }else if(directionVal=='opposite'){
        //反向
        dicData=this.treeData.btmItemsFrom.map(item=>{
          return {
            label: item,
            value: item
          }
        })
      }
      dicData.push({
        label: '所有类型',
        value: '*'
      })
      return dicData;
    },
    cancelDialog() {
      this.dialog.loading = false;
@@ -493,7 +498,7 @@
      this.orderFieldList.unshift({
        id: data.row.orderField
      });
      this.tableFormOption.column[0].dicData= this.orderFieldList
      this.$refs.tableForm.updateDic('orderField',this.orderFieldList);
    },
    //获取排序设置中所有排序字段
    getAllAttr() {
@@ -557,18 +562,12 @@
    },
    linkQueryDefineChange(data) {
      if (data.value) {
        this.linkTreeData = [{
          name: data.value,
          attrs: data.item.attrs
        }]
        this.linkTreeData = [ data.item]
      }
    },
    businessQueryDefineChange(data) {
      if (data.value) {
        this.businessTreeData = [{
          name: data.value,
          attrs: data.item.attrs
        }]
        this.businessTreeData = [ data.item]
      }
    },
    // 开始拖拽树节点事件
@@ -622,11 +621,7 @@
<style scoped>
fieldset {
  border-radius: 5px;
  -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1);
  padding: 10px 6px;
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #EBEEF5;
}