消息群发
This commit is contained in:
@@ -97,20 +97,19 @@
|
||||
<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>
|
||||
<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="item.accessUrl" ></ai-file-list>
|
||||
</ai-info-item>
|
||||
</div>
|
||||
|
||||
</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="图片" isLine v-if="item.contentType == 'image'">
|
||||
<ai-uploader v-model="images" :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="[item.accessUrl]"></ai-file-list>
|
||||
</ai-info-item>
|
||||
</ai-wrapper>
|
||||
</template>
|
||||
</ai-card>
|
||||
@@ -120,182 +119,176 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {mapState} from "vuex";
|
||||
import AiDvWrapper from '../../../../project/dvui/layout/AiDvWrapper/AiDvWrapper.vue';
|
||||
export default {
|
||||
components: { AiDvWrapper },
|
||||
name: 'Add',
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
params: Object
|
||||
},
|
||||
|
||||
import {mapState} from "vuex";
|
||||
data () {
|
||||
return {
|
||||
isShow: false,
|
||||
data: {},
|
||||
form: {
|
||||
areaId: '',
|
||||
tag: '',
|
||||
sendType: '0',
|
||||
sendTime: '',
|
||||
content: '',
|
||||
contentType: 'text',
|
||||
fileList: [
|
||||
{
|
||||
accessAppid: "",
|
||||
accessDesc: "",
|
||||
accessImgurl: "",
|
||||
accessTitle: "",
|
||||
accessUrl: "",
|
||||
content: "",
|
||||
contentType: "",
|
||||
createdA: 0,
|
||||
mediaId: ""
|
||||
}
|
||||
],
|
||||
},
|
||||
tags: [],
|
||||
subTags: {},
|
||||
areaId: [],
|
||||
areaName: [],
|
||||
imgList: [],
|
||||
videoList: [],
|
||||
filesList: [],
|
||||
areaRootId: '',
|
||||
users: [],
|
||||
images: [],
|
||||
rules: {
|
||||
content: [{ required: true, message: '请输入群发内容'}],
|
||||
sendType: [{ required: true, message: '请选择群发方式' }],
|
||||
sendTime: [{ required: true, message: '请选择群发时间' }],
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
export default {
|
||||
name: 'Add',
|
||||
|
||||
props: {
|
||||
instance: Function,
|
||||
dict: Object,
|
||||
params: Object
|
||||
},
|
||||
|
||||
data () {
|
||||
return {
|
||||
isShow: false,
|
||||
data: {},
|
||||
form: {
|
||||
areaId: '',
|
||||
tag: '',
|
||||
sendType: '0',
|
||||
sendTime: '',
|
||||
content: '',
|
||||
contentType: 'text',
|
||||
fileList: [
|
||||
{
|
||||
accessAppid: "",
|
||||
accessDesc: "",
|
||||
accessImgurl: "",
|
||||
accessTitle: "",
|
||||
accessUrl: "",
|
||||
content: "",
|
||||
contentType: "",
|
||||
createdA: 0,
|
||||
mediaId: ""
|
||||
}
|
||||
],
|
||||
},
|
||||
tags: [],
|
||||
subTags: {},
|
||||
areaId: [],
|
||||
areaName: [],
|
||||
imgList: [],
|
||||
videoList: [],
|
||||
filesList: [],
|
||||
areaRootId: '',
|
||||
users: [],
|
||||
rules: {
|
||||
content: [{ required: true, message: '请输入群发内容'}],
|
||||
sendType: [{ required: true, message: '请选择群发方式' }],
|
||||
sendTime: [{ required: true, message: '请选择群发时间' }],
|
||||
},
|
||||
computed: {
|
||||
tagsChange() {
|
||||
if(this.tags.length) {
|
||||
return this.form.tag = this.tags.toString();
|
||||
}
|
||||
},
|
||||
|
||||
computed: {
|
||||
tagsChange() {
|
||||
if(this.tags.length) {
|
||||
return this.form.tag = this.tags.toString();
|
||||
}
|
||||
},
|
||||
areaid() {
|
||||
return this.form.areaId = this.areaId.toString();
|
||||
},
|
||||
...mapState(['user'])
|
||||
areaid() {
|
||||
return this.form.areaId = this.areaId.toString();
|
||||
},
|
||||
...mapState(['user'])
|
||||
},
|
||||
|
||||
created () {
|
||||
if (this.params.id) {
|
||||
this.getInfo()
|
||||
} else {
|
||||
this.getSubTags()
|
||||
}
|
||||
this.areaRootId = [this.user.info.areaId.substr(0, 6),'000000'].join("")
|
||||
},
|
||||
created () {
|
||||
if (this.params.id) {
|
||||
this.getInfo()
|
||||
} else {
|
||||
this.getSubTags()
|
||||
}
|
||||
this.areaRootId = [this.user.info.areaId.substr(0, 6),'000000'].join("")
|
||||
},
|
||||
|
||||
filters: {
|
||||
format(value) {
|
||||
if(value == 0) {
|
||||
return '立即发送'
|
||||
} else if(value == 1) {
|
||||
return '定时发送'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
|
||||
handleAreaSelect(v) {
|
||||
this.areaName = v?.[0]?.label
|
||||
},
|
||||
|
||||
getSelectPerson(val) {
|
||||
this.form.name = val[0].name;
|
||||
this.form.phone = val[0].phone;
|
||||
this.form.userId = val[0].sysUserId
|
||||
this.form.wxUserId = val[0].id
|
||||
},
|
||||
|
||||
// 标签
|
||||
getSubTags () {
|
||||
this.instance.post(`/app/wxcp/wxcorptag/listAll`).then(res => {
|
||||
if (res?.data) {
|
||||
this.subTags = res.data.records
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getInfo () {
|
||||
this.instance.post(`/app/pushmessage/detail?id=${this.params.id}`).then(res => {
|
||||
if (res?.data) {
|
||||
this.data = res.data
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
confirm () {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
|
||||
this.form.fileList = []
|
||||
let contentList = {
|
||||
content: this.form.content,
|
||||
contentType: 'text'
|
||||
}
|
||||
|
||||
this.form.fileList.push(contentList)
|
||||
|
||||
if(this.imgList.length) {
|
||||
let item = {
|
||||
contentType: 'image',
|
||||
mediaId: this.imgList[0].media.mediaId,
|
||||
accessUrl: this.imgList[0].url
|
||||
}
|
||||
this.form.fileList.push(item)
|
||||
}
|
||||
|
||||
if(this.videoList.length) {
|
||||
let item = {
|
||||
contentType: 'video',
|
||||
mediaId: this.videoList[0].media.mediaId,
|
||||
accessUrl: this.videoList[0].url
|
||||
}
|
||||
this.form.fileList.push(item)
|
||||
}
|
||||
|
||||
if(this.filesList.length) {
|
||||
let item = {
|
||||
contentType: 'file',
|
||||
mediaId: this.filesList[0].media.mediaId,
|
||||
accessUrl: this.filesList[0].url
|
||||
}
|
||||
this.form.fileList.push(item)
|
||||
}
|
||||
|
||||
this.instance.post(`/app/pushmessage/addOrUpdate`, {
|
||||
...this.form
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 600)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
cancel (isRefresh) {
|
||||
this.$emit('change', {
|
||||
type: 'List',
|
||||
isRefresh: isRefresh ? true : false
|
||||
})
|
||||
filters: {
|
||||
format(value) {
|
||||
if(value == 0) {
|
||||
return '立即发送'
|
||||
} else if(value == 1) {
|
||||
return '定时发送'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
handleAreaSelect(v) {
|
||||
this.areaName = v?.[0]?.label
|
||||
},
|
||||
getSelectPerson(val) {
|
||||
this.form.name = val[0].name;
|
||||
this.form.phone = val[0].phone;
|
||||
this.form.userId = val[0].sysUserId
|
||||
this.form.wxUserId = val[0].id
|
||||
},
|
||||
// 标签
|
||||
getSubTags () {
|
||||
this.instance.post(`/app/wxcp/wxcorptag/listAll`).then(res => {
|
||||
if (res?.data) {
|
||||
this.subTags = res.data.records
|
||||
}
|
||||
})
|
||||
},
|
||||
getInfo () {
|
||||
this.instance.post(`/app/pushmessage/detail?id=${this.params.id}`).then(res => {
|
||||
if (res?.data) {
|
||||
this.data = res.data
|
||||
let obj = res.data.fileList.filter(e=> e.contentType == "image")
|
||||
this.images = [{ url: obj[0].accessUrl }]
|
||||
}
|
||||
})
|
||||
},
|
||||
confirm () {
|
||||
this.$refs.form.validate((valid) => {
|
||||
if (valid) {
|
||||
this.form.fileList = []
|
||||
let contentList = {
|
||||
content: this.form.content,
|
||||
contentType: 'text'
|
||||
}
|
||||
this.form.fileList.push(contentList)
|
||||
|
||||
if(this.imgList.length) {
|
||||
let item = {
|
||||
contentType: 'image',
|
||||
mediaId: this.imgList[0].media.mediaId,
|
||||
accessUrl: this.imgList[0].url
|
||||
}
|
||||
this.form.fileList.push(item)
|
||||
}
|
||||
|
||||
if(this.videoList.length) {
|
||||
let item = {
|
||||
contentType: 'video',
|
||||
mediaId: this.videoList[0].media.mediaId,
|
||||
accessUrl: this.videoList[0].url
|
||||
}
|
||||
this.form.fileList.push(item)
|
||||
}
|
||||
|
||||
if(this.filesList.length) {
|
||||
let item = {
|
||||
contentType: 'file',
|
||||
mediaId: this.filesList[0].media.mediaId,
|
||||
accessUrl: this.filesList[0].url
|
||||
}
|
||||
this.form.fileList.push(item)
|
||||
}
|
||||
|
||||
this.instance.post(`/app/pushmessage/addOrUpdate`, {
|
||||
...this.form
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$message.success('提交成功')
|
||||
setTimeout(() => {
|
||||
this.cancel(true)
|
||||
}, 600)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
cancel (isRefresh) {
|
||||
this.$emit('change', {
|
||||
type: 'List',
|
||||
isRefresh: isRefresh ? true : false
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
@@ -69,9 +69,16 @@ export default {
|
||||
},
|
||||
computed: {
|
||||
colConfigs() {
|
||||
let conType = {
|
||||
text: "文本",
|
||||
image: "图片",
|
||||
video: "视频",
|
||||
file: "附件"
|
||||
}
|
||||
return [
|
||||
// { prop: "contentType", label: '消息类型', align: "center", width: "250px", formart: v => this.mapType(v) },
|
||||
{ slot: 'type' },
|
||||
{ prop: "fileList", label: '消息类型', align: "center", width: "250px", formart: v => v?.map(e=> conType[e.contentType]).toString() },
|
||||
{ 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: "createTime", label: '创建时间', align: "center", width: "250px"},
|
||||
{ prop: "sendTime", label: '发送时间', align: "center", width: "250px"},
|
||||
|
||||
Reference in New Issue
Block a user