wangting
2024-11-22 2fc52c10964ef98247e6e0eeb4be9c85c9d513f6
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formDialog.vue
@@ -60,6 +60,8 @@
                               :queryCondition="queryCondition"
                               :queryTree="queryTree"
                               :levelFlag.sync="form.levelFlag"
                               :searchColumn="searchColumn"
                               @queryHandler="queryHandler"
            ></form-query-dialog>
          </fieldset>
        </el-main>
@@ -85,7 +87,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";
@@ -94,24 +96,35 @@
  components:{formQueryDialog},
  data(){
    return {
      searchColumn: [
        {
          label: 'OID',
          prop: 'OID',
        },
        {
          label: 'CREATOR',
          prop: 'CREATOR'
        },
        {
          label: 'CREATETIME',
          prop: 'CREATETIME'
        },
      ],
      dialog: {
        showDialog: false,
        title: "创建",
        submitTxt: "保存",
        submitIcon: "el-icon-check",
        loading: false,
        type: "add",
      },
      crudDialog: {
        showDialog: false,
        submitTxt: "保存",
        submitIcon: "el-icon-check",
      },
      formItems:[{
        label: '查询模板名称',
        prop: 'qtName',
        type: 'input',
        span:5,
        span:4.5,
        labelWidth: 100,
        rules: [{
          required: true,
          message: "请输入查询模板名称",
@@ -122,8 +135,8 @@
        prop: 'direction',
        type: 'radio',
        value:'positive',
        labelWidth:70,
        span: 3,
        labelWidth:80,
        span: 3.5,
        dicData: [{
          label: '正向',
          value: 'positive'
@@ -141,7 +154,8 @@
        label: '版本版次',
        prop: 'version',
        type: 'select',
        span:5,
        span:4,
        labelWidth:110,
        dicData: [{
          label: '当前版本当前版次',
          value: 1
@@ -160,7 +174,7 @@
        label: '查询是否有下级',
        prop: 'queryISLeaf',
        type: 'switch',
        labelWidth:140,
        labelWidth:150,
        dicData: [ {
          label: '否',
          value: false
@@ -173,7 +187,7 @@
        label: '子节点层次数',
        prop: 'level',
        type: 'number',
        span:3,
        labelWidth:130,
        value:1
      }],
      form:{
@@ -183,7 +197,7 @@
        queryTemplate:{}
      },
      //已有排序列表配置
      crudOption: {
        crudOption: {
        ...basicOption,
        addBtn: false,
        editBtn: false,
@@ -268,12 +282,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 +392,9 @@
        };
      }
      this.dialog.showDialog = true;
      this.treeOption.defaultExpandedKeys=[data.treeData.label]
      this.getTemp(data.treeData.label, true)
    },
    cancelDialog() {
      this.dialog.loading = false;
@@ -516,7 +541,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;
@@ -534,33 +559,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 +585,39 @@
      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) {
              const data = res.data.data;
              const result = data.map(item => {
                const filteredAttrs = item.hisAttrValList.filter(attr =>
                  attr.attrName === "OID" || attr.attrName === "CREATOR" || attr.attrName === "CREATETIME"
                );
                const newObj = filteredAttrs.reduce((acc, attr) => {
                  acc[attr.attrName] = attr.attrVal;
                  return acc;
                }, {});
                return newObj;
              });
              this.$refs.formQuery.resultData = result;
              this.$refs.formQuery.queryResultDialog.showDialog = true;
              this.$refs.formQuery.queryResultDialog.loading = false;
            }
          });
        } else {
          return false;
        }
      });
    },
  },
}
</script>