修复打包异常文件

pull/106/head
puhui999 2023-04-08 22:52:23 +08:00
parent d679a7a3be
commit 25a175a895
3 changed files with 88 additions and 81 deletions

View File

@ -1,21 +1,21 @@
<template> <template>
<Dialog title="上传文件" v-model="dialogVisible"> <Dialog v-model="dialogVisible" title="上传文件">
<el-upload <el-upload
ref="uploadRef" ref="uploadRef"
:limit="1"
accept=".jpg, .png, .gif"
:auto-upload="false"
drag
:headers="headers"
:action="url" :action="url"
:auto-upload="false"
:data="data" :data="data"
:disabled="formLoading" :disabled="formLoading"
:headers="headers"
:limit="1"
:on-change="handleFileChange" :on-change="handleFileChange"
:on-progress="handleFileUploadProgress" :on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess" :on-success="handleFileSuccess"
accept=".jpg, .png, .gif"
drag
> >
<i class="el-icon-upload"></i> <i class="el-icon-upload"></i>
<div class="el-upload__text"> 将文件拖到此处 <em>点击上传</em> </div> <div class="el-upload__text"> 将文件拖到此处 <em>点击上传</em></div>
<template #tip> <template #tip>
<div class="el-upload__tip" style="color: red"> <div class="el-upload__tip" style="color: red">
提示仅允许导入 jpgpnggif 格式文件 提示仅允许导入 jpgpnggif 格式文件
@ -23,19 +23,19 @@
</template> </template>
</el-upload> </el-upload>
<template #footer> <template #footer>
<el-button @click="submitFileForm" type="primary" :disabled="formLoading"> </el-button> <el-button :disabled="formLoading" type="primary" @click="submitFileForm"> </el-button>
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
</template> </template>
</Dialog> </Dialog>
</template> </template>
<script setup lang="ts"> <script lang="ts" setup>
import { Dialog } from '@/components/Dialog' import { Dialog } from '@/components/Dialog'
import { getAccessToken } from '@/utils/auth' import { getAccessToken } from '@/utils/auth'
const { t } = useI18n() // const { t } = useI18n() //
const message = useMessage() // const message = useMessage() //
const dialogVisible = ref(false) // const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12 const formLoading = ref(false) // 12
const url = import.meta.env.VITE_UPLOAD_URL const url = import.meta.env.VITE_UPLOAD_URL
const headers = { Authorization: 'Bearer ' + getAccessToken() } const headers = { Authorization: 'Bearer ' + getAccessToken() }

View File

@ -1,40 +1,47 @@
<template> <template>
<doc-alert title="上传下载" url="https://doc.iocoder.cn/file/"/> <doc-alert title="上传下载" url="https://doc.iocoder.cn/file/" />
<!-- 搜索 --> <!-- 搜索 -->
<ContentWrap> <ContentWrap>
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true"> <el-form ref="queryFormRef" :inline="true" :model="queryParams" class="-mb-15px">
<el-form-item label="文件路径" prop="path"> <el-form-item label="文件路径" prop="path">
<el-input <el-input
v-model="queryParams.path" v-model="queryParams.path"
placeholder="请输入文件路径"
clearable clearable
placeholder="请输入文件路径"
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="文件类型" prop="type" width="80"> <el-form-item label="文件类型" prop="type" width="80">
<el-input <el-input
v-model="queryParams.type" v-model="queryParams.type"
placeholder="请输入文件类型"
clearable clearable
placeholder="请输入文件类型"
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="创建时间" prop="createTime"> <el-form-item label="创建时间" prop="createTime">
<el-date-picker <el-date-picker
v-model="queryParams.createTime" v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
end-placeholder="结束日期"
start-placeholder="开始日期"
type="daterange"
value-format="YYYY-MM-DD HH:mm:ss"
/> />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery">
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <Icon class="mr-5px" icon="ep:search" />
搜索
</el-button>
<el-button @click="resetQuery">
<Icon class="mr-5px" icon="ep:refresh" />
重置
</el-button>
<el-button type="primary" @click="openForm"> <el-button type="primary" @click="openForm">
<Icon icon="ep:upload" class="mr-5px" /> 上传文件 <Icon class="mr-5px" icon="ep:upload" />
上传文件
</el-button> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -43,31 +50,31 @@
<!-- 列表 --> <!-- 列表 -->
<ContentWrap> <ContentWrap>
<el-table v-loading="loading" :data="list"> <el-table v-loading="loading" :data="list">
<el-table-column label="文件名" align="center" prop="name" :show-overflow-tooltip="true" /> <el-table-column :show-overflow-tooltip="true" align="center" label="文件名" prop="name" />
<el-table-column label="文件路径" align="center" prop="path" :show-overflow-tooltip="true" /> <el-table-column :show-overflow-tooltip="true" align="center" label="文件路径" prop="path" />
<el-table-column label="URL" align="center" prop="url" :show-overflow-tooltip="true" /> <el-table-column :show-overflow-tooltip="true" align="center" label="URL" prop="url" />
<el-table-column <el-table-column
label="文件大小" :formatter="fileSizeFormatter"
align="center" align="center"
label="文件大小"
prop="size" prop="size"
width="120" width="120"
:formatter="fileSizeFormatter"
/> />
<el-table-column label="文件类型" align="center" prop="type" width="180px" /> <el-table-column align="center" label="文件类型" prop="type" width="180px" />
<el-table-column <el-table-column
label="上传时间" :formatter="dateFormatter"
align="center" align="center"
label="上传时间"
prop="createTime" prop="createTime"
width="180" width="180"
:formatter="dateFormatter"
/> />
<el-table-column label="操作" align="center"> <el-table-column align="center" label="操作">
<template #default="scope"> <template #default="scope">
<el-button <el-button
v-hasPermi="['infra:config:delete']"
link link
type="danger" type="danger"
@click="handleDelete(scope.row.id)" @click="handleDelete(scope.row.id)"
v-hasPermi="['infra:config:delete']"
> >
删除 删除
</el-button> </el-button>
@ -76,9 +83,9 @@
</el-table> </el-table>
<!-- 分页 --> <!-- 分页 -->
<Pagination <Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize" v-model:limit="queryParams.pageSize"
v-model:page="queryParams.pageNo"
:total="total"
@pagination="getList" @pagination="getList"
/> />
</ContentWrap> </ContentWrap>
@ -86,11 +93,11 @@
<!-- 表单弹窗添加/修改 --> <!-- 表单弹窗添加/修改 -->
<FileForm ref="formRef" @success="getList" /> <FileForm ref="formRef" @success="getList" />
</template> </template>
<script setup lang="ts" name="Config"> <script lang="ts" name="Config" setup>
import { fileSizeFormatter } from '@/utils' import { fileSizeFormatter } from '@/utils'
import { dateFormatter } from '@/utils/formatTime' import { dateFormatter } from '@/utils/formatTime'
import * as FileApi from '@/api/infra/file' import * as FileApi from '@/api/infra/file'
import FileUploadForm from './FileForm.vue'
const message = useMessage() // const message = useMessage() //
const { t } = useI18n() // const { t } = useI18n() //

View File

@ -8,7 +8,7 @@
支持发送视频消息时支持新建视频 支持发送视频消息时支持新建视频
--> -->
<template> <template>
<el-tabs type="border-card" v-model="objDataRef.type" @tab-click="handleClick"> <el-tabs v-model="objDataRef.type" type="border-card" @tab-click="handleClick">
<!-- 类型 1文本 --> <!-- 类型 1文本 -->
<el-tab-pane name="text"> <el-tab-pane name="text">
<template #label> <template #label>
@ -18,10 +18,10 @@
</el-row> </el-row>
</template> </template>
<el-input <el-input
type="textarea" v-model="objDataRef.content"
:rows="5" :rows="5"
placeholder="请输入内容" placeholder="请输入内容"
v-model="objDataRef.content" type="textarea"
@input="inputContent" @input="inputContent"
/> />
</el-tab-pane> </el-tab-pane>
@ -29,29 +29,29 @@
<el-tab-pane name="image"> <el-tab-pane name="image">
<template #label> <template #label>
<el-row align="middle"> <el-row align="middle">
<icon icon="ep:picture" class="mr-5px" /> <icon class="mr-5px" icon="ep:picture" />
图片 图片
</el-row> </el-row>
</template> </template>
<!-- 情况一已经选择好素材或者上传好图片 --> <!-- 情况一已经选择好素材或者上传好图片 -->
<div class="select-item" v-if="objDataRef.url"> <div v-if="objDataRef.url" class="select-item">
<img class="material-img" :src="objDataRef.url" /> <img :src="objDataRef.url" class="material-img" />
<p class="item-name" v-if="objDataRef.name">{{ objDataRef.name }}</p> <p v-if="objDataRef.name" class="item-name">{{ objDataRef.name }}</p>
<el-row class="ope-row"> <el-row class="ope-row">
<el-button type="danger" circle @click="deleteObj"> <el-button circle type="danger" @click="deleteObj">
<icon icon="ep:delete" /> <icon icon="ep:delete" />
</el-button> </el-button>
</el-row> </el-row>
</div> </div>
<!-- 情况二未做完上述操作 --> <!-- 情况二未做完上述操作 -->
<el-row v-else style="text-align: center" align="middle"> <el-row v-else align="middle" style="text-align: center">
<!-- 选择素材 --> <!-- 选择素材 -->
<el-col :span="12" class="col-select"> <el-col :span="12" class="col-select">
<el-button type="success" @click="openMaterial"> <el-button type="success" @click="openMaterial">
素材库选择 素材库选择
<icon icon="ep:circle-check" /> <icon icon="ep:circle-check" />
</el-button> </el-button>
<el-dialog title="选择图片" v-model="dialogImageVisible" width="90%" append-to-body> <el-dialog v-model="dialogImageVisible" append-to-body title="选择图片" width="90%">
<wx-material-select :obj-data="objDataRef" @selectMaterial="selectMaterial" /> <wx-material-select :obj-data="objDataRef" @selectMaterial="selectMaterial" />
</el-dialog> </el-dialog>
</el-col> </el-col>
@ -59,13 +59,13 @@
<el-col :span="12" class="col-add"> <el-col :span="12" class="col-add">
<el-upload <el-upload
:action="actionUrl" :action="actionUrl"
:headers="headers"
multiple
:limit="1"
:file-list="fileList"
:data="uploadData"
:before-upload="beforeImageUpload" :before-upload="beforeImageUpload"
:data="uploadData"
:file-list="fileList"
:headers="headers"
:limit="1"
:on-success="handleUploadSuccess" :on-success="handleUploadSuccess"
multiple
> >
<el-button type="primary">上传图片</el-button> <el-button type="primary">上传图片</el-button>
<template #tip> <template #tip>
@ -88,13 +88,13 @@
</el-row> </el-row>
</template> </template>
<div class="select-item2" v-if="objDataRef.url"> <div v-if="objDataRef.url" class="select-item2">
<p class="item-name">{{ objDataRef.name }}</p> <p class="item-name">{{ objDataRef.name }}</p>
<div class="item-infos"> <div class="item-infos">
<wx-voice-player :url="objDataRef.url" /> <wx-voice-player :url="objDataRef.url" />
</div> </div>
<el-row class="ope-row"> <el-row class="ope-row">
<el-button type="danger" icon="el-icon-delete" circle @click="deleteObj" /> <el-button circle icon="el-icon-delete" type="danger" @click="deleteObj" />
</el-row> </el-row>
</div> </div>
<el-row v-else style="text-align: center"> <el-row v-else style="text-align: center">
@ -103,7 +103,7 @@
<el-button type="success" @click="openMaterial"> <el-button type="success" @click="openMaterial">
素材库选择<i class="el-icon-circle-check el-icon--right"></i> 素材库选择<i class="el-icon-circle-check el-icon--right"></i>
</el-button> </el-button>
<el-dialog title="选择语音" v-model="dialogVoiceVisible" width="90%" append-to-body> <el-dialog v-model="dialogVoiceVisible" append-to-body title="选择语音" width="90%">
<WxMaterialSelect :objData="objData" @selectMaterial="selectMaterial" /> <WxMaterialSelect :objData="objData" @selectMaterial="selectMaterial" />
</el-dialog> </el-dialog>
</el-col> </el-col>
@ -111,13 +111,13 @@
<el-col :span="12" class="col-add"> <el-col :span="12" class="col-add">
<el-upload <el-upload
:action="actionUrl" :action="actionUrl"
:headers="headers"
multiple
:limit="1"
:file-list="fileList"
:data="uploadData"
:before-upload="beforeVoiceUpload" :before-upload="beforeVoiceUpload"
:data="uploadData"
:file-list="fileList"
:headers="headers"
:limit="1"
:on-success="handleUploadSuccess" :on-success="handleUploadSuccess"
multiple
> >
<el-button type="primary">点击上传</el-button> <el-button type="primary">点击上传</el-button>
<template #tip> <template #tip>
@ -145,8 +145,8 @@
@input="inputContent" @input="inputContent"
/> />
<el-input <el-input
class="input-margin-bottom"
v-model="objDataRef.description" v-model="objDataRef.description"
class="input-margin-bottom"
placeholder="请输入描述" placeholder="请输入描述"
@input="inputContent" @input="inputContent"
/> />
@ -154,14 +154,14 @@
<wx-video-player v-if="objDataRef.url" :url="objDataRef.url" /> <wx-video-player v-if="objDataRef.url" :url="objDataRef.url" />
</div> </div>
<el-col> <el-col>
<el-row style="text-align: center" align="middle"> <el-row align="middle" style="text-align: center">
<!-- 选择素材 --> <!-- 选择素材 -->
<el-col :span="12"> <el-col :span="12">
<el-button type="success" @click="openMaterial"> <el-button type="success" @click="openMaterial">
素材库选择 素材库选择
<icon icon="ep:circle-check" /> <icon icon="ep:circle-check" />
</el-button> </el-button>
<el-dialog title="选择视频" v-model="dialogVideoVisible" width="90%" append-to-body> <el-dialog v-model="dialogVideoVisible" append-to-body title="选择视频" width="90%">
<wx-material-select :objData="objDataRef" @selectMaterial="selectMaterial" /> <wx-material-select :objData="objDataRef" @selectMaterial="selectMaterial" />
</el-dialog> </el-dialog>
</el-col> </el-col>
@ -169,13 +169,13 @@
<el-col :span="12"> <el-col :span="12">
<el-upload <el-upload
:action="actionUrl" :action="actionUrl"
:headers="headers"
multiple
:limit="1"
:file-list="fileList"
:data="uploadData"
:before-upload="beforeVideoUpload" :before-upload="beforeVideoUpload"
:data="uploadData"
:file-list="fileList"
:headers="headers"
:limit="1"
:on-success="handleUploadSuccess" :on-success="handleUploadSuccess"
multiple
> >
<el-button type="primary" <el-button type="primary"
>新建视频 >新建视频
@ -196,17 +196,17 @@
</el-row> </el-row>
</template> </template>
<el-row> <el-row>
<div class="select-item" v-if="objDataRef.articles.size > 0"> <div v-if="objDataRef.articles.size > 0" class="select-item">
<wx-news :articles="objDataRef.articles" /> <wx-news :articles="objDataRef.articles" />
<el-col class="ope-row"> <el-col class="ope-row">
<el-button type="danger" circle @click="deleteObj"> <el-button circle type="danger" @click="deleteObj">
<icon icon="ep:delete" /> <icon icon="ep:delete" />
</el-button> </el-button>
</el-col> </el-col>
</div> </div>
<!-- 选择素材 --> <!-- 选择素材 -->
<el-col :span="24" v-if="!objDataRef.content"> <el-col v-if="!objDataRef.content" :span="24">
<el-row style="text-align: center" align="middle"> <el-row align="middle" style="text-align: center">
<el-col :span="24"> <el-col :span="24">
<el-button type="success" @click="openMaterial" <el-button type="success" @click="openMaterial"
>{{ newsType === '1' ? '选择已发布图文' : '选择草稿箱图文' }} >{{ newsType === '1' ? '选择已发布图文' : '选择草稿箱图文' }}
@ -215,11 +215,11 @@
</el-col> </el-col>
</el-row> </el-row>
</el-col> </el-col>
<el-dialog title="选择图文" v-model="dialogNewsVisible" width="90%" append-to-body> <el-dialog v-model="dialogNewsVisible" append-to-body title="选择图文" width="90%">
<wx-material-select <wx-material-select
:newsType="newsType"
:objData="objDataRef" :objData="objDataRef"
@selectMaterial="selectMaterial" @selectMaterial="selectMaterial"
:newsType="newsType"
/> />
</el-dialog> </el-dialog>
</el-row> </el-row>
@ -234,13 +234,13 @@
</template> </template>
<el-row align="middle" justify="center"> <el-row align="middle" justify="center">
<el-col :span="6"> <el-col :span="6">
<el-row align="middle" justify="center" class="thumb-div"> <el-row align="middle" class="thumb-div" justify="center">
<el-col :span="24"> <el-col :span="24">
<el-row align="middle" justify="center"> <el-row align="middle" justify="center">
<img <img
style="width: 100px"
v-if="objDataRef.thumbMediaUrl" v-if="objDataRef.thumbMediaUrl"
:src="objDataRef.thumbMediaUrl" :src="objDataRef.thumbMediaUrl"
style="width: 100px"
/> />
<icon v-else icon="ep:plus" /> <icon v-else icon="ep:plus" />
</el-row> </el-row>
@ -248,18 +248,18 @@
<div class="thumb-but"> <div class="thumb-but">
<el-upload <el-upload
:action="actionUrl" :action="actionUrl"
:headers="headers"
multiple
:limit="1"
:file-list="fileList"
:data="uploadData"
:before-upload="beforeThumbImageUpload" :before-upload="beforeThumbImageUpload"
:data="uploadData"
:file-list="fileList"
:headers="headers"
:limit="1"
:on-success="handleUploadSuccess" :on-success="handleUploadSuccess"
multiple
> >
<template #trigger> <template #trigger>
<el-button type="text">本地上传</el-button> <el-button type="text">本地上传</el-button>
</template> </template>
<el-button type="text" @click="openMaterial" style="margin-left: 5px" <el-button style="margin-left: 5px" type="text" @click="openMaterial"
>素材库选择 >素材库选择
</el-button> </el-button>
</el-upload> </el-upload>
@ -267,7 +267,7 @@
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
<el-dialog title="选择图片" v-model="dialogThumbVisible" width="80%" append-to-body> <el-dialog v-model="dialogThumbVisible" append-to-body title="选择图片" width="80%">
<wx-material-select <wx-material-select
:objData="{ type: 'image', accountId: objDataRef.accountId }" :objData="{ type: 'image', accountId: objDataRef.accountId }"
@selectMaterial="selectMaterial" @selectMaterial="selectMaterial"