wangting
2025-01-13 f399034d0f8e7960512858392d0e8a8692406773
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: 200px;display: inline-block;text-align: right">{{ condition.clause }}</span>
              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"
                        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>
@@ -33,7 +33,9 @@
                           :disabled="readOnly"
                           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>
                    style="width: 300px;margin-right: 5px;"></avue-input>-->
        <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"
                   @click="delCondition(index)"></el-button>
@@ -174,7 +176,24 @@
    readOnly: {
      type: Boolean,
      default: false
    }
    },
    searchColumn: {
      type: Array,
      default: [
        {
          label: 'OID',
          prop: 'OID',
        },
        {
          label: 'CREATOR',
          prop: 'CREATOR'
        },
        {
          label: 'CREATETIME',
          prop: 'CREATETIME'
        },
      ]
    },
  },
  data() {
    return {
@@ -260,24 +279,7 @@
        header: false,
        height: window.innerHeight - 220,
        menu: false,
        column: [
          {
            label: 'OID',
            prop: 'OID',
          },
          {
            label: 'REVISIONOID',
            prop: 'REVISIONOID'
          },
          {
            label: 'NAMEOID',
            prop: 'NAMEOID'
          },
          {
            label: 'BTMNAME',
            prop: 'BTMNAME'
          }
        ]
        column: this.searchColumn
      },
      clickNode: {},
      operatorIntDic: [{
@@ -362,23 +364,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) {
@@ -392,7 +401,7 @@
                operatorDic: []
              }
              if (this.queryCondition.cIMap[key].leafInfo.value.queryTemplate) {
                getValue(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate, item)
                  getValue(this.queryCondition.cIMap[key].leafInfo.value.queryTemplate, item)
              } else {
                item.ordinaryValue = this.queryCondition.cIMap[key].leafInfo.value.ordinaryValue;
                item.type = this.queryCondition.cIMap[key].leafInfo.type;
@@ -550,7 +559,6 @@
      return item
    },
    handleDragEnd(draggingNode, dropNode, dropType, ev) {
      debugger;
      console.log('tree drag end: ', dropNode && dropNode.label, dropType);
    },
    handleDragOver({event}) {
@@ -673,7 +681,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 +768,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>