消息群发

This commit is contained in:
shijingjing
2022-06-14 14:04:00 +08:00
parent dc44b85d69
commit 7235fd4834
2 changed files with 182 additions and 182 deletions

View File

@@ -97,20 +97,19 @@
<ai-info-item label="创建者" :value="data.userName" isLine></ai-info-item> <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.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.sendTime" isLine v-if="data.sendType == 1"></ai-info-item>
<div v-for="item in data.fileList" :key="item.id"> </ai-wrapper>
<ai-wrapper 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="群发内容" :value="item.content" isLine v-if="item.contentType == 'text'"></ai-info-item>
<ai-info-item label="图片" isLine v-if="item.contentType == 'image'"> <ai-info-item label="图片" isLine v-if="item.contentType == 'image'">
<!-- <ai-uploader v-model="item" :instance="instance" :limit="1" disabled/> --> <ai-uploader v-model="images" :instance="instance" :limit="1" disabled/>
</ai-info-item> </ai-info-item>
<ai-info-item label="视频" isLine v-if="item.contentType == 'video'"> <ai-info-item label="视频" isLine v-if="item.contentType == 'video'">
<video :src="item.accessUrl" <video :src="item.accessUrl" style="width: 100%; height:100%; object-fit: fill;" muted controls="controls"></video>
style="width: 100%; height:100%; object-fit: fill;" muted controls="controls"></video>
</ai-info-item> </ai-info-item>
<ai-info-item label="附件" isLine v-if="item.contentType == 'file'"> <ai-info-item label="附件" isLine v-if="item.contentType == 'file'">
<ai-file-list :fileList="item.accessUrl" ></ai-file-list> <ai-file-list :fileList="[item.accessUrl]"></ai-file-list>
</ai-info-item> </ai-info-item>
</div>
</ai-wrapper> </ai-wrapper>
</template> </template>
</ai-card> </ai-card>
@@ -120,12 +119,11 @@
</template> </template>
<script> <script>
import {mapState} from "vuex";
import {mapState} from "vuex"; import AiDvWrapper from '../../../../project/dvui/layout/AiDvWrapper/AiDvWrapper.vue';
export default {
export default { components: { AiDvWrapper },
name: 'Add', name: 'Add',
props: { props: {
instance: Function, instance: Function,
dict: Object, dict: Object,
@@ -166,6 +164,7 @@
filesList: [], filesList: [],
areaRootId: '', areaRootId: '',
users: [], users: [],
images: [],
rules: { rules: {
content: [{ required: true, message: '请输入群发内容'}], content: [{ required: true, message: '请输入群发内容'}],
sendType: [{ required: true, message: '请选择群发方式' }], sendType: [{ required: true, message: '请选择群发方式' }],
@@ -206,18 +205,15 @@
}, },
methods: { methods: {
handleAreaSelect(v) { handleAreaSelect(v) {
this.areaName = v?.[0]?.label this.areaName = v?.[0]?.label
}, },
getSelectPerson(val) { getSelectPerson(val) {
this.form.name = val[0].name; this.form.name = val[0].name;
this.form.phone = val[0].phone; this.form.phone = val[0].phone;
this.form.userId = val[0].sysUserId this.form.userId = val[0].sysUserId
this.form.wxUserId = val[0].id this.form.wxUserId = val[0].id
}, },
// 标签 // 标签
getSubTags () { getSubTags () {
this.instance.post(`/app/wxcp/wxcorptag/listAll`).then(res => { this.instance.post(`/app/wxcp/wxcorptag/listAll`).then(res => {
@@ -226,25 +222,23 @@
} }
}) })
}, },
getInfo () { getInfo () {
this.instance.post(`/app/pushmessage/detail?id=${this.params.id}`).then(res => { this.instance.post(`/app/pushmessage/detail?id=${this.params.id}`).then(res => {
if (res?.data) { if (res?.data) {
this.data = res.data this.data = res.data
let obj = res.data.fileList.filter(e=> e.contentType == "image")
this.images = [{ url: obj[0].accessUrl }]
} }
}) })
}, },
confirm () { confirm () {
this.$refs.form.validate((valid) => { this.$refs.form.validate((valid) => {
if (valid) { if (valid) {
this.form.fileList = [] this.form.fileList = []
let contentList = { let contentList = {
content: this.form.content, content: this.form.content,
contentType: 'text' contentType: 'text'
} }
this.form.fileList.push(contentList) this.form.fileList.push(contentList)
if(this.imgList.length) { if(this.imgList.length) {
@@ -287,7 +281,6 @@
} }
}) })
}, },
cancel (isRefresh) { cancel (isRefresh) {
this.$emit('change', { this.$emit('change', {
type: 'List', type: 'List',
@@ -295,7 +288,7 @@
}) })
} }
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@@ -69,9 +69,16 @@ export default {
}, },
computed: { computed: {
colConfigs() { colConfigs() {
let conType = {
text: "文本",
image: "图片",
video: "视频",
file: "附件"
}
return [ return [
// { prop: "contentType", label: '消息类型', align: "center", width: "250px", formart: v => this.mapType(v) }, { prop: "fileList", label: '消息类型', align: "center", width: "250px", formart: v => v?.map(e=> conType[e.contentType]).toString() },
{ slot: 'type' }, { prop: "fileList", label: '消息类型', align: "center", width: "250px", formart: v => v?.filter(e=> e.contentType == 'text')[0].content },
// { slot: 'type' },
{ prop: "sendType", label: '发送类型', align: "center", width: "250px", formart: v => v == 0 ? '立即发送' : '定时发送'}, { prop: "sendType", label: '发送类型', align: "center", width: "250px", formart: v => v == 0 ? '立即发送' : '定时发送'},
{ prop: "createTime", label: '创建时间', align: "center", width: "250px"}, { prop: "createTime", label: '创建时间', align: "center", width: "250px"},
{ prop: "sendTime", label: '发送时间', align: "center", width: "250px"}, { prop: "sendTime", label: '发送时间', align: "center", width: "250px"},