素材库

This commit is contained in:
yanran200730
2023-03-03 13:48:14 +08:00
parent cec0cf34e4
commit 1b95c37826
3 changed files with 61 additions and 45 deletions

View File

@@ -12,7 +12,7 @@
<span <span
v-for="(item, index) in typeList" v-for="(item, index) in typeList"
:key="index" :key="index"
:class="[currIndex === index ? 'active' : '']" @click="currIndex = index"> :class="[currIndex === index ? 'active' : '']" @click="currIndex = index, search.current = 1, getList()">
{{ item }} {{ item }}
</span> </span>
</div> </div>
@@ -36,7 +36,6 @@
:tableData="tableData" :tableData="tableData"
:col-configs="colConfigs" :col-configs="colConfigs"
:total="total" :total="total"
v-loading="loading"
style="margin-top: 6px; width: 100%;" style="margin-top: 6px; width: 100%;"
:current.sync="search.current" :current.sync="search.current"
:size.sync="search.size" :size.sync="search.size"
@@ -61,8 +60,9 @@
<ai-dialog <ai-dialog
:visible.sync="isShow" :visible.sync="isShow"
width="920px" width="920px"
title="小程序消息" :title="id ? '编辑' : '添加' + typeList[currIndex]"
@close="onClose" @close="onClose"
:close-on-click-modal="false"
destroy-on-close destroy-on-close
@onConfirm="confirm"> @onConfirm="confirm">
<el-form ref="form" v-if="isShow" :model="form" label-width="130px" label-position="right"> <el-form ref="form" v-if="isShow" :model="form" label-width="130px" label-position="right">
@@ -95,9 +95,9 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 1" label="上传图片" style="width: 100%;" prop="fileUrl" :rules="[{ required: true, message: '请上传', trigger: 'change' }]"> <el-form-item v-if="currIndex === 1" label="上传图片" style="width: 100%;" prop="fileUrl" :rules="[{ required: true, message: '请上传', trigger: 'change' }]">
<ai-uploader url="/app/wxcp/upload/uploadFile?type=image" :instance="instance" isWechat v-model="form.fileUrl" :limit="1"></ai-uploader> <ai-uploader :instance="instance" v-model="form.fileUrl" :limit="1"></ai-uploader>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 3" label="文件名称" style="width: 100%;" prop="title" :rules="[{ required: true, message: '请输入图片名称', trigger: 'blur' }]"> <el-form-item v-if="currIndex === 3" label="文件名称" style="width: 100%;" prop="title" :rules="[{ required: true, message: '请输入文件名称', trigger: 'blur' }]">
<el-input <el-input
size="small" size="small"
placeholder="请输入图片名称" placeholder="请输入图片名称"
@@ -106,8 +106,8 @@
v-model="form.title"> v-model="form.title">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 3" label="上传文件" style="width: 100%;" prop="content" :rules="[{ required: true, message: '请上传', trigger: 'change' }]"> <el-form-item v-if="currIndex === 3" label="上传文件" style="width: 100%;" prop="fileUrl" :rules="[{ required: true, message: '请上传', trigger: 'change' }]">
<ai-uploader url="/app/wxcp/upload/uploadFile?type=image" type="file" :instance="instance" isWechat v-model="form.fileUrl" :limit="1"></ai-uploader> <ai-uploader fileType="file" url="/admin/file/add2" :instance="instance" v-model="form.fileUrl" :limit="1"></ai-uploader>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 4" label="视频标题" style="width: 100%;" prop="title" :rules="[{ required: true, message: '请输入视频标题', trigger: 'blur' }]"> <el-form-item v-if="currIndex === 4" label="视频标题" style="width: 100%;" prop="title" :rules="[{ required: true, message: '请输入视频标题', trigger: 'blur' }]">
<el-input <el-input
@@ -119,10 +119,10 @@
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 4" label="上传视频" style="width: 100%;" prop="fileUrl" :rules="[{ required: true, message: '请上传', trigger: 'change' }]"> <el-form-item v-if="currIndex === 4" label="上传视频" style="width: 100%;" prop="fileUrl" :rules="[{ required: true, message: '请上传', trigger: 'change' }]">
<ai-uploader url="/app/wxcp/upload/uploadFile?type=image" type="file" :instance="instance" isWechat v-model="form.fileUrl" :limit="1"></ai-uploader> <ai-uploader :instance="instance" fileType="file" v-model="form.fileUrl" :limit="1"></ai-uploader>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 4" label="视频封面图" prop="pictureUrl" style="width: 100%;" :rules="[{ required: true, message: '请上传视频封面图', trigger: 'change' }]"> <el-form-item v-if="currIndex === 4" label="视频封面图" prop="pictureUrl" style="width: 100%;" :rules="[{ required: true, message: '请上传视频封面图', trigger: 'change' }]">
<ai-uploader url="/app/wxcp/upload/uploadFile?type=image" :instance="instance" isWechat v-model="form.pictureUrl" :limit="1"></ai-uploader> <ai-uploader :instance="instance" v-model="form.pictureUrl" :limit="1"></ai-uploader>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 4" label="视频描述" style="width: 100%;" prop="content" :rules="[{ required: true, message: '请输入视频描述', trigger: 'blur' }]"> <el-form-item v-if="currIndex === 4" label="视频描述" style="width: 100%;" prop="content" :rules="[{ required: true, message: '请输入视频描述', trigger: 'blur' }]">
<el-input <el-input
@@ -142,13 +142,13 @@
v-model="form.title"> v-model="form.title">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 5" label="网页链接" style="width: 100%;" prop="linkUrl" :rules="[{ required: true, message: '请输入网页链接链接', trigger: 'blur' }]"> <el-form-item v-if="currIndex === 5" label="网页链接" style="width: 100%;" prop="pagePath" :rules="[{ required: true, message: '请输入网页链接链接', trigger: 'blur' }]">
<el-input <el-input
size="small" size="small"
placeholder="请输入网页链接链接" placeholder="请输入网页链接链接"
maxlength="682" maxlength="682"
show-word-limit show-word-limit
v-model="form.linkUrl"> v-model="form.pagePath">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="form.currIndex === 5" label="网页描述" style="width: 100%;" prop="content"> <el-form-item v-if="form.currIndex === 5" label="网页描述" style="width: 100%;" prop="content">
@@ -160,8 +160,8 @@
v-model="form.content"> v-model="form.content">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 5" label="网页封面图" prop="media" style="width: 100%;" :rules="[{ required: true, message: '请上传封面图', trigger: 'change' }]"> <el-form-item v-if="currIndex === 5" label="网页封面图" prop="pictureUrl" style="width: 100%;" :rules="[{ required: true, message: '请上传封面图', trigger: 'change' }]">
<ai-uploader url="/app/wxcp/upload/uploadFile?type=image" :instance="instance" isWechat v-model="form.fileUrl" :limit="1"></ai-uploader> <ai-uploader :instance="instance" v-model="form.pictureUrl" :limit="1"></ai-uploader>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 2" label="小程序标题" style="width: 100%;" prop="title" :rules="[{ required: true, message: '请输入小程序标题', trigger: 'blur' }]"> <el-form-item v-if="currIndex === 2" label="小程序标题" style="width: 100%;" prop="title" :rules="[{ required: true, message: '请输入小程序标题', trigger: 'blur' }]">
<el-input <el-input
@@ -172,11 +172,11 @@
v-model="form.title"> v-model="form.title">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 2" label="小程序appid" style="width: 100%;" prop="appid" :rules="[{ required: true, message: '小程序appid', trigger: 'blur' }]"> <el-form-item v-if="currIndex === 2" label="小程序appid" style="width: 100%;" prop="appId" :rules="[{ required: true, message: '小程序appid', trigger: 'blur' }]">
<el-input <el-input
size="small" size="small"
placeholder="小程序appid" placeholder="小程序appid"
v-model="form.appid"> v-model="form.appId">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 2" label="小程序路径" style="width: 100%;" prop="pagePath" :rules="[{ required: true, message: '请输入小程序路径', trigger: 'blur' }]"> <el-form-item v-if="currIndex === 2" label="小程序路径" style="width: 100%;" prop="pagePath" :rules="[{ required: true, message: '请输入小程序路径', trigger: 'blur' }]">
@@ -186,8 +186,8 @@
v-model="form.pagePath"> v-model="form.pagePath">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item v-if="currIndex === 2" label="小程序封面图" prop="media" style="width: 100%;" :rules="[{ required: true, message: '请上传封面图', trigger: 'change' }]"> <el-form-item v-if="currIndex === 2" label="小程序封面图" prop="pictureUrl" style="width: 100%;" :rules="[{ required: true, message: '请上传封面图', trigger: 'change' }]">
<ai-uploader url="/app/wxcp/upload/uploadFile?type=image" :instance="instance" isWechat v-model="form.fileUrl" :limit="1"></ai-uploader> <ai-uploader :instance="instance" v-model="form.pictureUrl" :limit="1"></ai-uploader>
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
@@ -217,51 +217,46 @@
appId: '', appId: '',
content: '', content: '',
fileUrl: [], fileUrl: [],
appid: '',
pagePath: '', pagePath: '',
pictureUrl: [], pictureUrl: [],
title: '' title: ''
}, },
id: '',
typeList: ['话术', '图片', '小程序', '文件', '视频', '网页'], typeList: ['话术', '图片', '小程序', '文件', '视频', '网页'],
currIndex: 0, currIndex: 0,
tableData: [], tableData: [],
loading: false, total: 0
total: 0, }
colConfigs: [ },
computed: {
colConfigs () {
return [
{ prop: 'taskTitle', label: '任务名称' }, { prop: 'taskTitle', label: '任务名称' },
{ prop: 'typeName', label: '群发类型', align: 'center' }, { prop: 'typeName', label: '群发类型', align: 'center' },
{ slot: 'user', label: '创建人', openType: 'userName', align: 'center' }, { slot: 'user', label: '创建人', openType: 'userName', align: 'center' },
{ prop: 'choiceTime', label: '群发时间', align: 'center' }, { prop: 'choiceTime', label: '群发时间', align: 'center' }
{ prop: 'completionRate', label: '任务完成率', align: 'center', format: v => v ? v === '0.0' ? '0%' : `${v}%` : '-' }
] ]
} }
}, },
created () { created () {
this.dict.load('mstStatus').then(() => { this.getList()
this.getList()
})
}, },
methods: { methods: {
getList() { getList() {
this.loading = true this.instance.post(`/app/appmaterialinfo/list`, null, {
this.instance.post(`/app/appmasssendingtask/list`, null, {
params: { params: {
...this.search, ...this.search,
type: this.currIndex
} }
}).then(res => { }).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.tableData = res.data.records this.tableData = res.data.records
this.total = res.data.total this.total = res.data.total
this.$nextTick(() => {
this.loading = false
})
} else {
this.loading = false
} }
}).catch(() => {
this.loading = false
}) })
}, },
@@ -278,11 +273,17 @@
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
this.instance.post(`/app/appmaterialinfo/addOrUpdate`, { this.instance.post(`/app/appmaterialinfo/addOrUpdate`, {
...this.form ...this.form,
type: this.currIndex,
fileUrl: this.form.fileUrl.length ? this.form.fileUrl[0].url : '',
pictureUrl: this.form.pictureUrl.length ? this.form.pictureUrl[0].url : '',
fileSizeStr: this.form.fileUrl.length ? this.form.fileUrl[0].fileSizeStr : '',
}).then(res => { }).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('提交成功') this.$message.success('提交成功')
this.isShow = false this.isShow = false
this.getList()
} }
}) })
} }

View File

@@ -350,14 +350,29 @@ export default {
this.$message.success('上传成功') this.$message.success('上传成功')
return false return false
} }
let data = res.data[0].split(';')
this.fileList.forEach(item => { if (Object.prototype.toString.call(res.data) === '[object Object]') {
if (item.uid === file.file.uid) { this.fileList.forEach(item => {
item.id = data[1] if (item.uid === file.file.uid) {
item.path = data[0] item.id = res.data.id
item.url = data[0] item.path = res.data.url
} item.url = res.data.url
}) item.url = res.data.url
item.fileSizeStr = res.data.fileSizeStr
item.postfix = res.data.postfix
}
})
} else {
let data = res.data[0].split(';')
this.fileList.forEach(item => {
if (item.uid === file.file.uid) {
item.id = data[1]
item.path = data[0]
item.url = data[0]
}
})
}
this.emitChange(this.fileList) this.emitChange(this.fileList)
this.$message.success('上传成功') this.$message.success('上传成功')
} }

View File

@@ -57,7 +57,7 @@ module.exports = {
proxy: { proxy: {
//设置代理,可解决跨5 //设置代理,可解决跨5
'/lan': { '/lan': {
target: 'http://192.168.1.87:39000', target: 'http://192.168.1.87:39010',
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
//地址重写 //地址重写