|
@@ -1,28 +1,12 @@
|
|
|
<template>
|
|
<template>
|
|
|
<!-- 搜索 -->
|
|
<!-- 搜索 -->
|
|
|
<ContentWrap>
|
|
<ContentWrap>
|
|
|
- <el-form
|
|
|
|
|
- class="-mb-15px"
|
|
|
|
|
- :model="queryParams"
|
|
|
|
|
- ref="queryFormRef"
|
|
|
|
|
- :inline="true"
|
|
|
|
|
- label-width="68px"
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="68px">
|
|
|
<el-form-item :label="t('infra.filePath')" prop="path">
|
|
<el-form-item :label="t('infra.filePath')" prop="path">
|
|
|
- <el-input
|
|
|
|
|
- v-model="queryParams.path"
|
|
|
|
|
- :placeholder="t('infra.pleaseEnterTheFilePath')"
|
|
|
|
|
- clearable
|
|
|
|
|
- @keyup.enter="handleQuery"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-input v-model="queryParams.path" :placeholder="t('infra.pleaseEnterTheFilePath')" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item :label="t('infra.fileType')" prop="type" width="80">
|
|
<el-form-item :label="t('infra.fileType')" prop="type" width="80">
|
|
|
- <el-input
|
|
|
|
|
- v-model="queryParams.type"
|
|
|
|
|
- :placeholder="t('infra.pleaseEnterTheFileType')"
|
|
|
|
|
- clearable
|
|
|
|
|
- @keyup.enter="handleQuery"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-input v-model="queryParams.type" :placeholder="t('infra.pleaseEnterTheFileType')" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item :label="t('public.createTime')" prop="createTime">
|
|
<el-form-item :label="t('public.createTime')" prop="createTime">
|
|
|
<el-date-picker
|
|
<el-date-picker
|
|
@@ -35,11 +19,9 @@
|
|
|
/>
|
|
/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
- <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{t('common.search')}}</el-button>
|
|
|
|
|
- <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{t('common.reset')}}</el-button>
|
|
|
|
|
- <el-button type="primary" plain @click="openForm">
|
|
|
|
|
- <Icon icon="ep:upload" class="mr-5px" /> {{t('infra.uploadFile')}}
|
|
|
|
|
- </el-button>
|
|
|
|
|
|
|
+ <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('common.search') }}</el-button>
|
|
|
|
|
+ <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> {{ t('common.reset') }}</el-button>
|
|
|
|
|
+ <el-button type="primary" plain @click="openForm"> <Icon icon="ep:upload" class="mr-5px" /> {{ t('infra.uploadFile') }} </el-button>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-form>
|
|
</el-form>
|
|
|
</ContentWrap>
|
|
</ContentWrap>
|
|
@@ -50,16 +32,11 @@
|
|
|
<el-table-column :label="t('infra.fileName')" align="center" prop="name" :show-overflow-tooltip="true" />
|
|
<el-table-column :label="t('infra.fileName')" align="center" prop="name" :show-overflow-tooltip="true" />
|
|
|
<el-table-column :label="t('infra.filePath')" align="center" prop="path" :show-overflow-tooltip="true" />
|
|
<el-table-column :label="t('infra.filePath')" align="center" prop="path" :show-overflow-tooltip="true" />
|
|
|
<el-table-column label="URL" align="center" prop="url" :show-overflow-tooltip="true" />
|
|
<el-table-column label="URL" align="center" prop="url" :show-overflow-tooltip="true" />
|
|
|
- <el-table-column
|
|
|
|
|
- :label="t('infra.fileSize')"
|
|
|
|
|
- align="center"
|
|
|
|
|
- prop="size"
|
|
|
|
|
- width="120"
|
|
|
|
|
- :formatter="fileSizeFormatter"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-table-column :label="t('infra.fileSize')" align="center" prop="size" width="120" :formatter="fileSizeFormatter" />
|
|
|
<el-table-column :label="t('infra.fileType')" align="center" prop="type" width="180px" />
|
|
<el-table-column :label="t('infra.fileType')" align="center" prop="type" width="180px" />
|
|
|
<el-table-column :label="t('infra.fileContent')" align="center" prop="url" width="110px">
|
|
<el-table-column :label="t('infra.fileContent')" align="center" prop="url" width="110px">
|
|
|
<template #default="{ row }">
|
|
<template #default="{ row }">
|
|
|
|
|
+ <img :src="row.url" />
|
|
|
<el-image
|
|
<el-image
|
|
|
v-if="row.type.includes('image')"
|
|
v-if="row.type.includes('image')"
|
|
|
class="h-80px w-80px"
|
|
class="h-80px w-80px"
|
|
@@ -69,46 +46,23 @@
|
|
|
preview-teleported
|
|
preview-teleported
|
|
|
fit="cover"
|
|
fit="cover"
|
|
|
/>
|
|
/>
|
|
|
- <el-link
|
|
|
|
|
- v-else-if="row.type.includes('pdf')"
|
|
|
|
|
- type="primary"
|
|
|
|
|
- :href="row.url"
|
|
|
|
|
- :underline="false"
|
|
|
|
|
- target="_blank"
|
|
|
|
|
- >{{t('infra.preview')}}</el-link
|
|
|
|
|
- >
|
|
|
|
|
- <el-link v-else type="primary" download :href="row.url" :underline="false" target="_blank"
|
|
|
|
|
- >{{t('infra.download')}}</el-link
|
|
|
|
|
- >
|
|
|
|
|
|
|
+ <el-link v-else-if="row.type.includes('pdf')" type="primary" :href="row.url" :underline="false" target="_blank">{{
|
|
|
|
|
+ t('infra.preview')
|
|
|
|
|
+ }}</el-link>
|
|
|
|
|
+ <el-link v-else type="primary" download :href="row.url" :underline="false" target="_blank">{{ t('infra.download') }}</el-link>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
|
|
- :label="t('infra.uploadTime')"
|
|
|
|
|
- align="center"
|
|
|
|
|
- prop="createTime"
|
|
|
|
|
- width="180"
|
|
|
|
|
- :formatter="dateFormatter"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <el-table-column :label="t('infra.uploadTime')" align="center" prop="createTime" width="180" :formatter="dateFormatter" />
|
|
|
<el-table-column :label="t('public.operate')" align="center">
|
|
<el-table-column :label="t('public.operate')" align="center">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
- <el-button
|
|
|
|
|
- link
|
|
|
|
|
- type="danger"
|
|
|
|
|
- @click="handleDelete(scope.row.id)"
|
|
|
|
|
- v-hasPermi="['infra:file:delete']"
|
|
|
|
|
- >
|
|
|
|
|
- {{ t('public.delete') }}
|
|
|
|
|
|
|
+ <el-button link type="danger" @click="handleDelete(scope.row.id)" v-hasPermi="['infra:file:delete']">
|
|
|
|
|
+ {{ t('public.delete') }}
|
|
|
</el-button>
|
|
</el-button>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
<!-- 分页 -->
|
|
<!-- 分页 -->
|
|
|
- <Pagination
|
|
|
|
|
- :total="total"
|
|
|
|
|
- v-model:page="queryParams.pageNo"
|
|
|
|
|
- v-model:limit="queryParams.pageSize"
|
|
|
|
|
- @pagination="getList"
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
</ContentWrap>
|
|
</ContentWrap>
|
|
|
|
|
|
|
|
<!-- 表单弹窗:添加/修改 -->
|
|
<!-- 表单弹窗:添加/修改 -->
|
|
@@ -143,7 +97,13 @@ const getList = async () => {
|
|
|
loading.value = true
|
|
loading.value = true
|
|
|
try {
|
|
try {
|
|
|
const data = await FileApi.getFilePage(queryParams)
|
|
const data = await FileApi.getFilePage(queryParams)
|
|
|
- list.value = data.list
|
|
|
|
|
|
|
+
|
|
|
|
|
+ list.value = data.list.map((item) => {
|
|
|
|
|
+ item.url = import.meta.env.VITE_MALL_H5_DOMAIN + item.url
|
|
|
|
|
+ return item
|
|
|
|
|
+ })
|
|
|
|
|
+ console.log('🚀 ~ list.value=data.list.map ~ list:', list)
|
|
|
|
|
+
|
|
|
total.value = data.total
|
|
total.value = data.total
|
|
|
} finally {
|
|
} finally {
|
|
|
loading.value = false
|
|
loading.value = false
|