ludc
2025-01-15 c659560c7ee8d8f8278b938421de13bf65d1e1b1
Source/plt-web/plt-web-ui/src/views/modelingMenu/queryTemplate/linkTypeQuery/formQueryDialog.vue
@@ -6,25 +6,25 @@
      <el-button v-if="!readOnly" plain size="mini" type="primary" @click="clearValue">清空值</el-button>
      <el-button v-if="!readOnly" plain size="mini" type="primary" @click="delAll">删除全部条件</el-button>
    </div>
    <div v-if="radioForm==0" style="height: 220px;text-align: center;" @drop="drop" @dragover.prevent>
    <div v-if="radioForm==0" style="height: calc(100% - 75px);text-align: center;" @drop="drop" @dragover.prevent>
      <div v-for="(condition,index) in conditionList" :key="index" class="el-input--small"
           style="margin-bottom: 5px; text-align:left">
        <span :title="condition.clause"
              style="width: 32%;display: inline-block;text-align: right;word-break: break-all">{{ condition.clause }}</span>
        <avue-select v-model="condition.operator" :clearable="false" :dic="condition.operatorDic" :disabled="readOnly"
                     style="width: 80px;margin: 0 5px;" type="tree"></avue-select>
        <!--<el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:300px;margin-right: 5px;display: inline-block;" type="date"
        <el-date-picker v-if="condition.type=='VTDate'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:36%;margin-right: 5px;display: inline-block;" type="date"
                        value-format="YYYY-MM-DD">
        </el-date-picker>
        <el-date-picker v-else-if="condition.type=='VTDateTime'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:300px;margin-right: 5px;display: inline-block;"
                        style="width:36%;margin-right: 5px;display: inline-block;"
                        type="datetime">
        </el-date-picker>
        <el-time-select v-else-if="condition.type=='VTTime'" v-model="condition.ordinaryValue" :disabled="readOnly"
                        style="width:300px;margin-right: 5px;display: inline-block;" value-format="HH:mm:ss">
                        style="width:36%;margin-right: 5px;display: inline-block;" value-format="HH:mm:ss">
        </el-time-select>
        <avue-input-number v-else-if="condition.type=='VTInteger'" v-model="condition.ordinaryValue"
        <!--<avue-input-number v-else-if="condition.type=='VTInteger'" v-model="condition.ordinaryValue"
                           :disabled="readOnly"
                           precision="0"
                           style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
@@ -34,7 +34,7 @@
                           style="width:300px;margin-right: 5px;display: inline-block;"></avue-input-number>
        <avue-input v-else v-model="condition.ordinaryValue" :disabled="readOnly" placeholder=""
                    style="width: 300px;margin-right: 5px;"></avue-input>-->
        <avue-input v-model="condition.ordinaryValue" :disabled="readOnly" placeholder=""
        <avue-input v-else v-model="condition.ordinaryValue" :disabled="readOnly" placeholder=""
                    style="width: 36%;margin-right: 5px;"></avue-input>
        <el-button v-if="!readOnly" plain size="mini" type="primary" @click="checkTemp(index)">选择查询模板</el-button>
        <el-button v-if="!readOnly" icon="el-icon-delete" size="mini" style="padding: 7px 8px" type="danger"
@@ -49,11 +49,11 @@
                 @node-click="nodeClick"></avue-tree>
    </div>
    <div v-if="!readOnly" 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 v-show="radioForm==1" plain size="mini" type="primary" @click="addHandler">增加逻辑</el-button>
      <el-button v-show="radioForm==1" plain size="mini" type="primary" @click="editHandler">修改条件</el-button>
      <el-button v-show="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>
      <!--<el-button plain size="mini" type="primary" @click="">取消</el-button>-->
    </div>
    <!--修改条件-->
@@ -155,7 +155,6 @@
<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 {
@@ -179,7 +178,20 @@
    },
    searchColumn: {
      type: Array,
      default: []
      default: [
        {
          label: 'OID',
          prop: 'OID',
        },
        {
          label: 'CREATOR',
          prop: 'CREATOR'
        },
        {
          label: 'CREATETIME',
          prop: 'CREATETIME'
        },
      ]
    },
  },
  data() {
@@ -351,23 +363,30 @@
          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;
            if(queryTemplate.id.indexOf('qt_')==0){
              item.clause += '.' + queryTemplate.condition.cIMap['ci1'].leafInfo.clause;
              item.ordinaryValue = queryTemplate.condition.cIMap['ci1'].leafInfo.value.ordinaryValue;
              item.type = queryTemplate.condition.cIMap['ci1'].leafInfo.type;
            }else {
              item.ordinaryValue = queryTemplate.id+';'+queryTemplate.clauseList.join(',');
              /*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.operatorDic = that.operatorDic;
                    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) {
@@ -381,19 +400,7 @@
                operatorDic: []
              }
              if (this.queryCondition.cIMap[key].leafInfo.value.queryTemplate) {
                item.ordinaryValue = this.queryCondition.cIMap[key].leafInfo.value.queryTemplate.id+';'+this.queryCondition.cIMap[key].leafInfo.value.queryTemplate.clauseList.join(',');
                if(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate.id.indexOf('qt_')==0){
                  getValue(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate, item)
                }else {
                  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;
                  }
                }
              } else {
                item.ordinaryValue = this.queryCondition.cIMap[key].leafInfo.value.ordinaryValue;
                item.type = this.queryCondition.cIMap[key].leafInfo.type;
@@ -498,7 +505,9 @@
    }
  },
  created() {
    this.getTemp();
    if (!this.readOnly) {
      this.getTemp();
    }
  },
  methods: {
    // 拖拽到时
@@ -673,7 +682,8 @@
    //选择查询模板
    checkTemp(index) {
      if (index >= 0) {
        if (['VTInteger', 'VTDouble', 'VTLong', 'VTDateTime', 'VTDate', 'VTTime'].includes(this.conditionList[index].type)) {
        if (['VTDateTime', 'VTDate', 'VTTime'].includes(this.conditionList[index].type)) {
          this.$message.warning("该属性类型不能选择查询模板");
          return false;
        }
      }
@@ -759,9 +769,15 @@
}
</script>
<style scoped>
::v-deep .el-input--small .el-input__inner {
  height: 28px;
  line-height: 28px;
<style lang="scss" scoped>
::v-deep {
  .el-input--small .el-input__inner {
    height: 28px;
    line-height: 28px;
  }
  .el-radio {
    margin-right: 30px;
  }
}
</style>