wupengfei
2025-04-21 524b1febe13e9305e9a27c870e09819e0e363bbd
src/components/commonView/FourStreamsMaterialFileTable.vue
@@ -9,7 +9,7 @@
      :showTableColumnSetting="false"
    >
      <template #fileBusinessType="{ row }">
        {{ FourStreamsMaterialFileBusinessTypeEnumText[row.fileBusinessType] }}
        {{ BusinessTypeEnumText[row.fileBusinessType] }}
      </template>
      <template #operationBtn-uploadBtn="{ data, row }">
        <BlFileUpload
@@ -25,22 +25,31 @@
        </BlFileUpload>
      </template>
    </ProTableV2>
    <FourStreamsBatchMaterialFileDialog
      v-bind="dialogProps"
      :name="''"
      :zipName="`${BusinessTypeEnumText[currentFourStreamsMaterialFileTableItem.fileBusinessType as any]}`"
      v-model:fileList="currentFourStreamsMaterialFileTableItem.fileList"
      :showDeleteBtn="showDeleteBtn"
    />
  </div>
</template>
<script setup lang="ts">
<script setup lang="ts" generic="T">
import {
  FourStreamsMaterialFileTableProps,
  FourStreamsMaterialFileTableItem,
  FourStreamsMaterialFileBusinessTypeEnumText,
  BaseMaterialFileTableItem,
} from './types';
import {
  ProTableV2,
  defineColumns,
  defineOperationBtns,
  BlFileUpload,
  bolePreview,
  useDialog,
} from '@bole-core/components';
import FourStreamsBatchMaterialFileDialog from './FourStreamsBatchMaterialFileDialog.vue';
import { downloadFileByUrl } from '@/utils';
import { Message, isFileCanPreview } from '@bole-core/core';
import { useDefineColumns } from '@/hooks';
@@ -55,9 +64,10 @@
  showDownloadBtn: true,
  showDeleteBtn: true,
  downloadBtnText: '下载',
  BusinessTypeEnumText: () => FourStreamsMaterialFileBusinessTypeEnumText,
});
const list = defineModel<FourStreamsMaterialFileTableItem[]>('list');
const list = defineModel<BaseMaterialFileTableItem<T>[]>('list');
const columns = defineColumns([
  {
@@ -152,6 +162,12 @@
  } catch (error) {}
}
const currentFourStreamsMaterialFileTableItem = ref<BaseMaterialFileTableItem<T>>({
  fileBusinessType: 0 as any,
  fileList: [],
});
const { dialogProps, dialogState } = useDialog();
async function handlePreview(row: FourStreamsMaterialFileTableItem) {
  if (row.fileList.length > 1) {
    // currentEnterpriseMaterialFileTableItem.value = row;