消息列表

This commit is contained in:
shijingjing
2022-06-13 22:54:51 +08:00
parent bf29282de6
commit abc33595df
2 changed files with 93 additions and 56 deletions

View File

@@ -61,24 +61,27 @@
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="其他类型" style="width: 100%">
<!-- <el-form-item label="其他类型" style="width: 100%">
<el-radio-group v-model="form.contentType" @change="onTypeChange">
<el-radio label="image">图片</el-radio>
<el-radio label="video">视频</el-radio>
<el-radio label="file">附件</el-radio>
</el-radio-group>
</el-form-item>
</el-form-item> -->
<!-- 图片 -->
<el-form-item label="图片" style="width: 100%" v-if="form.contentType === 'image'">
<ai-uploader :instance="instance" isWechat v-model="files" acceptType=".jpg,.png,.jpeg" :limit="1" url="/app/wxcp/upload/uploadFile?type=image"></ai-uploader>
<!-- v-if="form.contentType === 'image'" -->
<el-form-item label="图片" style="width: 100%">
<ai-uploader :instance="instance" isWechat v-model="imgList" acceptType=".jpg,.png,.jpeg" :limit="1" url="/app/wxcp/upload/uploadFile?type=image"></ai-uploader>
</el-form-item>
<!-- 视频 -->
<el-form-item label="视频" style="width: 100%" v-if="form.contentType === 'video'">
<ai-uploader :instance="instance" fileType="file" isWechat acceptType=".mp4" v-model="files" :limit="1" url="/app/wxcp/upload/uploadFile?type=video"></ai-uploader>
<!-- v-if="form.contentType === 'video'" -->
<el-form-item label="视频" style="width: 100%">
<ai-uploader :instance="instance" fileType="file" isWechat acceptType=".mp4" v-model="videoList" :limit="1" url="/app/wxcp/upload/uploadFile?type=video"></ai-uploader>
</el-form-item>
<!-- 附件 -->
<el-form-item label="附件" style="width: 100%" v-if="form.contentType === 'file'">
<ai-uploader :instance="instance" fileType="file" isWechat v-model="files" :limit="1" url="/app/wxcp/upload/uploadFile?type=file"></ai-uploader>
<!-- v-if="form.contentType === 'file'" -->
<el-form-item label="附件" style="width: 100%">
<ai-uploader :instance="instance" fileType="file" isWechat v-model="filesList" :limit="1" url="/app/wxcp/upload/uploadFile?type=file"></ai-uploader>
</el-form-item>
</el-form>
@@ -104,17 +107,20 @@
<ai-info-item label="创建者" :value="data.userName" isLine></ai-info-item>
<ai-info-item label="发送类型" :value="data.sendType" isLine>{{ data.sendType | format }}</ai-info-item>
<ai-info-item label="发送时间" :value="data.sendTime" isLine v-if="data.sendType == 1"></ai-info-item>
<ai-info-item label="群发内容" :value="data.content" isLine></ai-info-item>
<ai-info-item label="图片" isLine v-if="data.contentType == 'image'">
<ai-uploader v-model="accessUrlAll" :instance="instance" :limit="1" disabled/>
</ai-info-item>
<ai-info-item label="视频" isLine v-if="data.contentType == 'video'">
<video :src="data.accessUrl"
style="width: 100%; height:100%; object-fit: fill;" muted controls="controls"></video>
</ai-info-item>
<ai-info-item label="附件" isLine v-if="data.contentType == 'file'">
<ai-file-list :fileList="accessUrlAll" ></ai-file-list>
</ai-info-item>
<div v-for="item in data.fileList" :key="item.id">
<ai-info-item label="群发内容" :value="item.content" isLine v-if="item.contentType == 'text'"></ai-info-item>
<ai-info-item label="图片" isLine v-if="item.contentType == 'image'">
<!-- <ai-uploader v-model="item" :instance="instance" :limit="1" disabled/> -->
</ai-info-item>
<ai-info-item label="视频" isLine v-if="item.contentType == 'video'">
<video :src="item.accessUrl"
style="width: 100%; height:100%; object-fit: fill;" muted controls="controls"></video>
</ai-info-item>
<ai-info-item label="附件" isLine v-if="item.contentType == 'file'">
<ai-file-list :fileList="accessUrlAll" ></ai-file-list>
</ai-info-item>
</div>
</ai-wrapper>
</template>
</ai-card>
@@ -143,32 +149,49 @@
form: {
areaId: '',
tag: '',
content: '',
contentType: 'text',
file: {},
accessUrl: '',
accessDesc: '',
accessTitle: '',
accessImgurl: '',
accessAppid: '',
sendType: '0',
sendTime: '',
mediaId: '',
name: '',
content: '',
contentType: 'text',
fileList: [
{
accessAppid: "",
accessDesc: "",
accessImgurl: "",
accessTitle: "",
accessUrl: "",
// content: "",
contentType: "",
createdA: 0,
mediaId: ""
}
],
// file: {},
// accessUrl: '',
// accessDesc: '',
// accessTitle: '',
// accessImgurl: '',
// accessAppid: '',
// mediaId: '',
// name: '',
},
tags: [],
subTags: {},
areaId: [],
areaName: [],
imgList: [],
videoList: [],
filesList: [],
files: [],
areaRootId: '',
accessUrlAll: [],
users: [],
rules: {
content: [{ required: true, message: '请输入群发内容', trigger: 'change' }],
content: [{ required: true, message: '请输入群发内容'}],
sendType: [{ required: true, message: '请选择群发方式' }],
sendTime: [{ required: true, message: '请选择群发时间' }],
},
}
},
@@ -249,31 +272,40 @@
this.$refs.form.validate((valid) => {
if (valid) {
if(this.files.length) {
this.form.accessUrl = this.files[0].url,
this.form.mediaId = this.files[0].media.mediaId
}
if (this.form.contentType == 'text' && !this.form.content) {
return this.$message.error('请输入消息内容')
this.form.fileList = []
var contentList = {
content: this.form.content,
contentType: 'text'
}
// if (this.form.contentType === 'image' && !this.form.accessUrl) {
// return this.$message.error('请上传图片')
// }
// if (this.form.contentType === 'video' && !this.form.accessUrl) {
// return this.$message.error('请上传视频')
// }
this.form.fileList.push(contentList)
// if (this.form.contentType === 'file' && !this.form.accessUrl) {
// return this.$message.error('请上传附件')
// }
if(this.imgList.length) {
var info = {
contentType: 'image',
mediaId: this.imgList[0].media.mediaId,
accessUrl: this.imgList[0].url
}
this.form.fileList.push(info)
}
// if (this.form.sendType == 1) {
// if (!this.form.sendTime) {
// return this.$message.error('请选择时间')
// }
// }
if(this.videoList.length) {
var info = {
contentType: 'video',
mediaId: this.videoList[0].media.mediaId,
accessUrl: this.videoList[0].url
}
this.form.fileList.push(info)
}
if(this.filesList.length) {
var info = {
contentType: 'file',
mediaId: this.filesList[0].media.mediaId,
accessUrl: this.filesList[0].url
}
this.form.fileList.push(info)
}
this.instance.post(`/app/pushmessage/addOrUpdate`, {
...this.form

View File

@@ -49,6 +49,7 @@
</template>
<script>
import { mapState } from 'vuex'
export default {
name: "List",
props: {
@@ -59,7 +60,7 @@ export default {
data() {
return {
tableData: [],
page: {current: 1, size: 10, total: 0},
page: {current: 1, size: 10, total: 0,pages: 0},
id: '',
}
},
@@ -69,7 +70,7 @@ export default {
computed: {
colConfigs() {
return [
{ prop: "contentType", label: '消息类型', align: "center", width: "250px", formart: v => this.mapType(v) },
// { prop: "contentType", label: '消息类型', align: "center", width: "250px", formart: v => this.mapType(v) },
{ slot: 'type' },
{ prop: "sendType", label: '发送类型', align: "center", width: "250px", formart: v => v == 0 ? '立即发送' : '定时发送'},
{ prop: "createTime", label: '创建时间', align: "center", width: "250px"},
@@ -77,14 +78,18 @@ export default {
{ prop: "userName", label: '创建人', align: "center", width: "250px", },
{ slot: "options" ,},
]
}
},
...mapState(['user'])
},
methods: {
getTableData() {
this.instance.post("/app/pushmessage/list", null, {
params: {...this.page}
this.instance.post(`/app/pushmessage/list?`, null, {
params: {
...this.page,
}
}).then(res => {
console.log(res);
if (res?.data) {
this.tableData = res.data.records
this.page.total = res.data.total