69 lines
2.2 KiB
Vue
69 lines
2.2 KiB
Vue
<template>
|
|
<el-drawer v-model="visible" size="860px" :title="title" append-to-body>
|
|
<el-table v-loading="loading" :data="list" border max-height="calc(100vh - 160px)" empty-text="该版本暂无导入附件">
|
|
<el-table-column label="文件名称" prop="fileName" min-width="220" show-overflow-tooltip />
|
|
<el-table-column label="生效时间" prop="effectiveTime" width="170" align="center" />
|
|
<el-table-column label="大小" width="100" align="right">
|
|
<template #default="{ row }">{{ formatSize(row.fileSize) }}</template>
|
|
</el-table-column>
|
|
<el-table-column label="上传人" prop="createBy" width="110" align="center" show-overflow-tooltip />
|
|
<el-table-column label="上传时间" prop="createTime" width="170" align="center" />
|
|
<el-table-column label="操作" width="90" align="center" fixed="right">
|
|
<template #default="{ row }">
|
|
<el-button link type="primary" :disabled="!row.filePath" @click="handleDownload(row)">下载</el-button>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table>
|
|
</el-drawer>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { usePriceSetModule } from '../../composables/usePriceSetModule'
|
|
|
|
const { api } = usePriceSetModule()
|
|
|
|
const { proxy } = getCurrentInstance()
|
|
|
|
const visible = ref(false)
|
|
const title = ref('')
|
|
const loading = ref(false)
|
|
const list = ref([])
|
|
const version = ref(null)
|
|
|
|
function open(row) {
|
|
version.value = row
|
|
const no = (row && row.versionNo) || ''
|
|
title.value = no ? (no + ' · 导入附件') : '导入附件'
|
|
visible.value = true
|
|
loadList()
|
|
}
|
|
|
|
function loadList() {
|
|
if (!version.value || version.value.psvId == null) return
|
|
loading.value = true
|
|
api.listPriceSetVersionExcelFiles(version.value.psvId).then(res => {
|
|
list.value = res.data || []
|
|
}).finally(() => {
|
|
loading.value = false
|
|
})
|
|
}
|
|
|
|
function formatSize(bytes) {
|
|
const n = Number(bytes)
|
|
if (!n || n < 0) return '-'
|
|
if (n < 1024) return n + ' B'
|
|
if (n < 1024 * 1024) return (n / 1024).toFixed(1) + ' KB'
|
|
return (n / (1024 * 1024)).toFixed(2) + ' MB'
|
|
}
|
|
|
|
function handleDownload(row) {
|
|
if (!row || !row.filePath) {
|
|
proxy.$modal.msgWarning('文件路径不存在')
|
|
return
|
|
}
|
|
proxy.$download.resource(row.filePath)
|
|
}
|
|
|
|
defineExpose({ open })
|
|
</script>
|