wangting
2024-12-09 a68ce68105de4a7d61c89298f4e4ef079443ba4a
Source/plt-web/plt-web-ui/src/components/dynamic-components/dynamic-table.vue
@@ -270,6 +270,7 @@
      const queryFields = !validatenull(this.currentDefineVO.queryColumns) ? this.currentDefineVO.queryColumns.map(item => item.field) : [];
      return this.currentDefineVO.cols[0].map(item => {
        const search = queryFields.includes(item.field); // 判断 field 是否在 queryColumns 里
        item.type = this.columnType[item.fieldType] || item.fieldType;
        if (this.currentDefineVO.btmType == 'fileobject' && item.field == 'name') {
          //是文件
          item.formatter = function (d) {
@@ -280,31 +281,50 @@
        if (typeof formatter == "string" && formatter != '') {
          formatter = eval("(" + formatter + ")");
        }
        item.type = this.columnType[item.fieldType] || item.fieldType;
        if (['date', 'datetime', 'time'].includes(item.type)) {
          item.valueFormat = item.dateFormate;
          item.format = item.dateFormate;
        }
        return {
          ...item,
          prop: item.field,
          label: item.title,
          search: search,
          formatter: formatter
          formatter: formatter,
          overHidden: true
        };
      });
    },
    sourceDataMap: function () {
      const sourceDataMap = {};
      if (Object.keys(this.sourceData).length>0) {
        if(this.sourceData.oid ) {
          if (this.sourceData.oid.indexOf('@vcitreesep@') > -1) {
            this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1];
        if(this.sourceData.part && Object.keys(this.sourceData.part).length>0){
          //说明源数据是树节点
          if(this.sourceData.part.oid ) {
            if (this.sourceData.part.oid.indexOf('@vcitreesep@') > -1) {
              this.sourceData.part.oid = this.sourceData.oid.split('@vcitreesep@')[1];
            }
            sourceDataMap.sourceBtmName = this.sourceBtmType;
            sourceDataMap.sourceOid = this.sourceData.part.oid;
          }
          sourceDataMap.sourceBtmName = this.sourceBtmType;;
          sourceDataMap.sourceOid = this.sourceData.oid;
        }else {
          if(this.sourceData.oid ) {
            if (this.sourceData.oid.indexOf('@vcitreesep@') > -1) {
              this.sourceData.oid = this.sourceData.oid.split('@vcitreesep@')[1];
            }
            sourceDataMap.sourceBtmName = this.sourceBtmType;
            sourceDataMap.sourceOid = this.sourceData.oid;
          }
        }
        for (let i in this.sourceData) {
          const item = this.sourceData[i]
          if (item && item.constructor === Object) continue;
          if (['type', 'context', 'content', 'querytemplate', 'querytype'].includes(i)) continue;
          sourceDataMap['sourceData["' + i + '"]'] = item
          if (item && item.constructor === Object) {
            sourceDataMap['sourceData["' + i + '"]'] = JSON.stringify(item)
          }else {
            sourceDataMap['sourceData["' + i + '"]'] = item
          }
        }
      }
@@ -319,7 +339,7 @@
    },
    getParams: function () {
      const tableParams = {
        btmname: this.currentDefineVO.btmType,
        btmName: this.currentDefineVO.btmType,
        btmType:this.currentDefineVO.btmType,
        tableDefineId: this.currentDefineVO.id,
        componentOid: this.componentVO.oid,
@@ -336,7 +356,11 @@
      if (Object.keys(this.sourceData).length>0 && this.isShow) {
        this.tableList = [];
        this.loading = true;
        getList(page.currentPage, page.pageSize, Object.assign({},this.params,this.query,params)).then(res => {
        let url='';
        if(this.componentVO.bsCustQueryCLsOrUrl && this.componentVO.bsCustQueryCLsOrUrl.indexOf('/')!=-1){
          url=this.componentVO.bsCustQueryCLsOrUrl;
        }
        getList(page.currentPage, page.pageSize, Object.assign({},this.params,this.query,params),url).then(res => {
          let data = [];
          if (res.data && res.data.data) {
            data = res.data.data;