张诺
8 小时以前 ba65f3383951a27ee44163aea36d48f5c22b8fff
src/components/PIMTable/PIMTable.vue
@@ -30,7 +30,7 @@
    <el-table-column align="center" label="序号" type="index" width="60" />
    <el-table-column
      v-for="(item, index) in column"
      v-for="(item, index) in visibleColumns"
      :key="index"
      :column-key="item.columnKey"
      :filter-method="item.filterHandler"
@@ -45,6 +45,7 @@
      :sortable="!!item.sortable"
      :type="item.type"
      :width="item.width"
      :minWidth="item.minWidth"
    >
      <template #header="scope">
        <div class="pim-table-header-cell">
@@ -225,7 +226,7 @@
<script setup>
import pagination from "./Pagination.vue";
import { ref, inject, getCurrentInstance } from "vue";
import { ref, inject, getCurrentInstance, computed, unref } from "vue";
import { ElMessage } from "element-plus";
// 获取全局的 uploadHeader
@@ -333,6 +334,23 @@
  },
});
const resolveColumnVisible = (visible) => {
  if (visible === undefined) return true;
  if (typeof visible === "function") {
    try {
      return !!visible();
    } catch (error) {
      console.warn("PIMTable column visible function error:", error);
      return true;
    }
  }
  return !!unref(visible);
};
const visibleColumns = computed(() => {
  return (props.column || []).filter((item) => resolveColumnVisible(item?.visible));
});
// Data
const uploadRefs = ref([]);
const currentFiles = ref({});