zouyu
2025-03-18 bc44c8e3c9d85691ce3fa73ef1300a6fae46e365
src/components/Table/lims-table.vue
@@ -4,6 +4,8 @@
    <el-table
      ref="multipleTable"
      v-loading="tableLoading"
      element-loading-text="加载中..."
      element-loading-spinner="el-icon-loading"
      :border="border"
      :data="tableData"
      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
@@ -12,7 +14,7 @@
      :row-class-name="rowClassName"
      :row-style="rowStyle"
      :row-key="rowKey"
      :span-method="spanMethod"
      :span-method="finalSpanMethod"
      :stripe="stripe"
      style="width: 100%"
      tooltip-effect="dark"
@@ -317,6 +319,10 @@
    },
  },
  props: {
    parentSpanMethod: {
      type: Function,
      default: () => {},
    },
    isSelection: {
      type: Boolean,
      default: undefined,
@@ -412,10 +418,31 @@
    //   this.doLayout();
    // },
  },
  updated() {
    this.$nextTick(() => {
      this.$refs.multipleTable.doLayout();
    });
  },
  computed: {
    finalSpanMethod() {
      if(this.parentSpanMethod) {
        console.log('父组件的合并方法');
        return this.parentSpanMethod;
      }else{
        console.log('子组件的合并方法');
        return this.spanMethod;
      }
    },
  },
  mounted() {
    this.calculateSpanInfo();
  },
  methods: {
    doLayout() {
      this.$nextTick(() => {
        this.$refs.multipleTable && this.$refs.multipleTable.doLayout();
      });
    },
    getWidth(row, row0) {
      let count = 0;
      row.forEach((a) => {
@@ -487,6 +514,7 @@
      if (!linkEvent) {
        return this.$message.warning("请配置lingk事件");
      }
      console.log(linkEvent);
      linkEvent.vueComponent[linkEvent.method](row);
    },
    // 合并单元格