ludc
2023-12-19 02611cd19ef961dedee41f74eb3df13b002993aa
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -46,15 +46,15 @@
                <el-table-column v-if="tableData.length != 0" fixed label="序号" type="index" width="55">
                </el-table-column>
                <!--              生命周期-->
                <el-table-column v-for="(item,index) in lcstatusArray"
                                 v-if=" lcstatusArray.length >= 0 && !item.hidden"
                                 key="index" :show-overflow-tooltip="true" :sortable="item.sortable"
                                 :width="item.width" align="center" label="生命周期值"
                                 prop="lcstatus">
                  <template slot-scope="scope">
                    <span>{{ scope.row.lcstatus_text }}</span>
                  </template>
                </el-table-column>
                <!--                <el-table-column v-for="(item,index) in lcstatusArray"-->
                <!--                                 v-if=" lcstatusArray.length >= 0 && !item.hidden"-->
                <!--                                 key="index" :show-overflow-tooltip="true" :sortable="item.sortable"-->
                <!--                                 :width="item.width" align="center" label="生命周期值"-->
                <!--                                 prop="lcstatus">-->
                <!--                  <template slot-scope="scope">-->
                <!--                    <span>{{ scope.row.lcstatus_text }}</span>-->
                <!--                  </template>-->
                <!--                </el-table-column>-->
                <!--              编号-->
                <el-table-column v-for="(item, index) in CodeArray" v-if="CodeArray.length !== 0 && !item.hidden"
                                 key="index" :label="item.label" :prop="item.prop"
@@ -67,25 +67,15 @@
                  </template>
                </el-table-column>
                <el-table-column v-for="item in this.tableHeadFindData"
                                 v-if="!item.hidden && item.prop !== 'id' && item.prop !== 'lcstatus' && Object.keys(item.referConfig).length <= 0"
                                 v-if="!item.hidden && item.prop !== 'id'"
                                 :key="item.id"
                                 :formatter="item.formatter"
                                 :label="item.label" :prop="item.prop"
                                 :label="item.label"
                                 :prop="item.prop"
                                 :show-overflow-tooltip="true"
                                 :sortable="item.sortable"
                                 :width="item.width"
                                 align="center">
                </el-table-column>
                <!--               参照数据-->
                <el-table-column v-for="(item,index) in referArray"
                                 v-if="item.referConfig && Object.keys(item.referConfig).length > 0 && !item.hidden"
                                 :key="index"
                                 :label="item.title" :show-overflow-tooltip="true"
                                 :sortable="item.sortable" :width="item.width" align="center"
                                 prop="jiliangdw">
                  <template slot-scope="scope">
                    <span>{{ scope.row.jiliangdwname }}</span>
                  </template>
                </el-table-column>
              </el-table>
            </div>
@@ -293,7 +283,6 @@
        btmtype: '',
        code: "",
        type: '',
        // this.visibleDeactivate ?'ENABLE':this.visibleEnable ? 'DISABLE' :this.visibleRecovery ? 'ROLLBACK' :'PUBLIC'
        processName: "",
        vars: {
          codeClassifyOid: "",
@@ -355,17 +344,10 @@
      },
      // 主数据按钮
      masterVrBtnList: [],
      fileOptions: {
        ownbizOid: "0",
        ownbizBtm: "0",
        fileDocClassify: '!=processAuditSuggest',
        fileDocClassifyName: '',
        hasDownload: true,
        hasUpload: true,
        height: 110
      },
      fileOptions: {},
      result: '',
      elapsedTime: '',
      conditionMap: [],
    };
  },
  computed: {
@@ -414,6 +396,15 @@
        this.tableData = newval;
        this.searchResults = newval
        this.doLayout();
        this.fileOptions = {
          ownbizOid: "0",
          ownbizBtm: "0",
          fileDocClassify: '!=processAuditSuggest',
          fileDocClassifyName: '',
          hasDownload: true,
          hasUpload: true,
          height: 'auto'
        }
      },
    },
    tableHeadFindData: {
@@ -434,7 +425,7 @@
          }
          if (_index == 0) {
            this.keyWordFind = record.queryField
            this.keyWordFind = record.queryField;
          }
        })
        this.tableHeadFindDatas = newval;
@@ -474,6 +465,7 @@
    templateOid: {
      handler(newval, oldval) {
        this.fileOptions.ownbizOid = "0";
        this.statusSelect = 'all'
      },
      deep: true,
    },
@@ -485,11 +477,15 @@
    },
  },
  methods: {
    // 置空查询条件
    resetConditionMap() {
      this.conditionMap = {};
    },
    CodeLinkHandler(row) {
      this.LinkObject = row;
      this.LinkVisible = true;
      this.LinkList = Object.keys(row).map(property => property)
    },
    //状态搜索
    cellSelectHandler(row) {
@@ -501,6 +497,7 @@
    },
    cellStatusFind(lcstatus) {
      this.isLoading = true;
      this.conditionMap["conditionMap[lcstatus]"] = lcstatus;
      TableData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
@@ -578,24 +575,27 @@
      exportGroupCodeExcel({
        codeClassifyOid: this.codeClassifyOid,
      }).then(res => {
        let reader = new FileReader();
        reader.readAsText(res.data)
        reader.onload =  (result) =>{
          try {
            let resData = JSON.parse(result.target.result);  // 解析对象成功
            if (!resData.success) {
              console.log("resData",resData)
              this.$message.error(resData.msg);
              this.isLoading = false;
            }
          } catch (err) {
            // console.log("err",err)// 解析成对象失败,说明是正常的文件流
            func.downloadFileByBlobHandler(res);
            this.$message.success('下载成功,请查看!');
            this.isLoading = false;
          }
        };
        // let reader = new FileReader();
        // reader.readAsText(res.data);
        // reader.onload = () => {
        //   try {
        //     let resData = JSON.parse(reader.result);  // 解析对象成功
        //     if (!resData.success) {
        //       this.$message.error(resData.msg);
        //       this.isLoading = false;
        //     }
        //   } catch (err) {
        //     // 解析成对象失败,说明是正常的文件流
        //     func.downloadFileByBlobHandler(res);
        //     this.$message.success('下载成功,请查看!');
        //     this.isLoading = false;
        //   }
        // };
        func.downloadFileByBlobHandler(res);
        this.$message.success('下载成功,请查看!');
        this.isLoading = false;
      }).catch(error => {
        this.$message.error(error);
      });
    },
    //标准申请
@@ -857,6 +857,7 @@
        codeClassifyOid: this.codeClassifyOid,
        page: this.page.currentPage,
        limit: this.page.pageSize,
        ...this.conditionMap, /**带上分页查询条件 */
      });
      const endTime = performance.now();
      this.elapsedTime = Math.floor(endTime - startTime) * 1;
@@ -918,7 +919,7 @@
        });
      });
    },
    // 将正在编辑的行的状态变为 null ,即退出编辑状态
    //将正在编辑的行的状态变为 null ,即退出编辑状态
    saveRow() {
      this.editingRow = null;
    },
@@ -931,40 +932,46 @@
      })
    },
    // 排序
    sortChange(val) {
      // console.log(val)
      this.isLoading = true;
      let order = "";
      if (val.order == "ascending") {
        order = "asc";
      } else {
        order = "desc";
    async sortChange(val) {
      try {
        this.isLoading = true;
        const order = val.order == 'ascending' ? 'asc' : 'desc';
        const {data} = await TableData({
          templateOid: this.templateOid,
          codeClassifyOid: this.codeClassifyOid,
          order: order,
          sort: val.prop,
          page: this.page.currentPage,
          limit: this.page.pageSize,
          ...this.conditionMap
        });
        this.data = data.data;
      } finally {
        this.isLoading = false;
      }
      TableData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        order: order,
        sort: val.prop,
        page: this.page.currentPage,
        limit: this.page.pageSize,
      }).then((res) => {
        setTimeout(() => {
          this.data = res.data.data;
          this.isLoading = false;
        }, 100);
      });
    },
    //分页刷新
    async onLoad(val) {
      await TableData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        page: this.page.currentPage,
        limit: this.page.pageSize,
      }).then((res) => {
      this.isLoading = true;
      try {
        let conditionMap = {};
        if (this.statusSelect !== 'all') {
          conditionMap.lcstatus = this.statusSelect;
        }
        const res = await TableData({
          templateOid: this.templateOid,
          codeClassifyOid: this.codeClassifyOid,
          page: this.page.currentPage,
          limit: this.page.pageSize,
          conditionMap
        });
        this.tableData = res.data.data;
        this.doLayout()
      });
        this.doLayout();
      } catch (error) {
        this.$message.error(error)
      } finally {
        this.isLoading = false;
      }
    },
    //多选
    handleSelectionChange(list) {
@@ -997,42 +1004,53 @@
      this.findvisible = true;
    },
    // 高级查询
    echoContion(val) {
      FindData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        ...val,
      }).then((res) => {
    async echoContion(val) {
      this.conditionMap = val;
      try {
        const res = await FindData({
          templateOid: this.templateOid,
          codeClassifyOid: this.codeClassifyOid,
          ...val,
          page: this.page.currentPage = 1,/** 每次点击高级查询都应该从第一页开始*/
          limit: this.page.pageSize
        });
        this.tableData = res.data.data;
        this.page.total = res.data.total
      });
      } catch (error) {
      }
    },
    //相似项查询
    similarHandler() {
      if (this.selectRow.length <= 0) {
        this.$message.warning("请选择一条数据");
      } else if (this.selectRow.length > 1) {
        this.$message.warning("只能选择一条数据");
      } else {
        this.similarVisible = true;
        return;
      }
      if (this.selectRow.length > 1) {
        this.$message.warning("只能选择一条数据");
        return;
      }
      this.similarVisible = true;
    },
    //数据更改
    DataChange() {
      if (this.selectRow.length <= 0) {
        this.$message.warning("请选择一条数据");
      } else if (this.selectRow.length > 1) {
        this.$message.warning("只能选择一条数据");
      } else if (this.selectRow[0].lcstatus != "Released") {
        this.$message.warning("只有状态为已发布的数据才能进行数据更改");
      } else {
        this.DataVisible = true;
        this.rowOid = this.selectRow[0]['oid']
        return
      }
      if (this.selectRow.length > 1) {
        this.$message.warning("只能选择一条数据");
        return;
      }
      if (this.selectRow[0].lcstatus != "Released") {
        this.$message.warning("只有状态为已发布的数据才能进行数据更改");
        return;
      }
      this.DataVisible = true;
      this.rowOid = this.selectRow[0]['oid']
    },
    //增加保存
    AddSumbit(val) {
      // console.log('val',val)
      if (func.notEmpty(val.ts)) {
        val.ts = func.formattedDateTime(val.ts);
        //console.log(val.ts);
@@ -1075,17 +1093,22 @@
    //输入回车搜索
    tableFindInp() {
      this.isLoading = true;
      TableData({
        templateOid: this.templateOid,
        codeClassifyOid: this.codeClassifyOid,
        page: this.page.currentPage,
        limit: this.page.pageSize,
        ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*'
      }).then(res => {
        this.tableData = res.data.data;
        this.page.total = res.data.total;
      try {
        // 存储查询条件,主要是为了点击页码时带上这个条件
        this.conditionMap["conditionMap[" + this.keyWordFind + "]"] = '*' + this.WupinFindValue + '*';
        TableData({
          templateOid: this.templateOid,
          codeClassifyOid: this.codeClassifyOid,
          page: this.page.currentPage,
          limit: this.page.pageSize,
          ['conditionMap[' + this.keyWordFind + ']']: '*' + this.WupinFindValue + '*'
        }).then(res => {
          this.tableData = res.data.data;
          this.page.total = res.data.total;
        })
      } finally {
        this.isLoading = false;
      })
      }
    }
  }
@@ -1095,7 +1118,7 @@
<style lang="scss" scoped>
//固定列高度
/deep/ .el-table__fixed {
  height: calc(100vh - 370px) !important;
  height: calc(100vh - 365px) !important;
}
// 滚动条样式修改
@@ -1133,7 +1156,7 @@
.top {
  overflow-y: scroll;
  min-height: 55%;
  min-height: 40%;
}
.bottom {