协同宣发

This commit is contained in:
yanran200730
2022-07-25 11:36:32 +08:00
parent 12c6d325ce
commit bd3ef507cc
3 changed files with 57 additions and 36 deletions

View File

@@ -55,7 +55,7 @@
<div class="add-item" v-for="(item, index) in fileList" :key="index"> <div class="add-item" v-for="(item, index) in fileList" :key="index">
<div class="left"> <div class="left">
<img :src="mapIcon(item.msgType)" /> <img :src="mapIcon(item.msgType)" />
<span>{{ item.name || item.linkTitle || item.mpTitle }}</span> <span>{{ item.mpTitle || item.name || item.linkTitle }}</span>
</div> </div>
<i @click="removeFile(index)">删除</i> <i @click="removeFile(index)">删除</i>
</div> </div>
@@ -198,6 +198,7 @@
</div> </div>
<div class="msg-wrapper msg-miniapp" v-if="item.msgType === '5'"> <div class="msg-wrapper msg-miniapp" v-if="item.msgType === '5'">
<h2>{{ item.mpTitle }}</h2> <h2>{{ item.mpTitle }}</h2>
<img :src="item.url" />
<div class="msg-bottom"> <div class="msg-bottom">
<i>小程序</i> <i>小程序</i>
<img src="https://cdn.cunwuyun.cn/dvcp/announce/miniapp.png"> <img src="https://cdn.cunwuyun.cn/dvcp/announce/miniapp.png">
@@ -292,6 +293,7 @@
v-model="dateForm.choiceTime" v-model="dateForm.choiceTime"
type="datetime" type="datetime"
size="small" size="small"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择定时发送时间"> placeholder="请选择定时发送时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
@@ -490,7 +492,8 @@
...this.miniAppForm, ...this.miniAppForm,
msgType: '5', msgType: '5',
...this.miniAppForm.media[0], ...this.miniAppForm.media[0],
mediaId: this.miniAppForm.media[0].media.mediaId mediaId: this.miniAppForm.media[0].media.mediaId,
sysFileId: this.miniAppForm.media[0].id
}) })
this.isShowAddMiniapp = false this.isShowAddMiniapp = false
@@ -600,12 +603,15 @@
...this.fileList ...this.fileList
] ]
this.isLoading = true if (sendType === 0) {
this.isLoading = true
}
this.instance.post(`/app/appmasssendingtask/addOrUpdate`, { this.instance.post(`/app/appmasssendingtask/addOrUpdate`, {
...this.form, ...this.form,
id: this.params.id, id: this.params.id,
wxGroups: this.form.wxGroups, wxGroups: this.form.wxGroups,
contents, contents,
sendType,
choiceTime: this.dateForm.choiceTime, choiceTime: this.dateForm.choiceTime,
filterCriteria: this.form.filterCriteria.join(','), filterCriteria: this.form.filterCriteria.join(','),
examines: this.form.examines.length ? this.form.examines.map(v => { examines: this.form.examines.length ? this.form.examines.map(v => {
@@ -865,7 +871,9 @@
.msg-miniapp { .msg-miniapp {
width: 206px; width: 206px;
padding: 0 12px;
text-align: justify; text-align: justify;
font-size: 0;
background: #FFFFFF; background: #FFFFFF;
border-radius: 5px; border-radius: 5px;
font-size: 14px; font-size: 14px;
@@ -873,17 +881,24 @@
h2 { h2 {
line-height: 1.2; line-height: 1.2;
padding: 8px 10px 8px; padding: 8px 0;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
color: #222222; color: #222222;
font-size: 14px; font-size: 14px;
} }
img {
width: 100%;
height: 120px;
margin-bottom: 8px;
}
.msg-bottom { .msg-bottom {
display: flex; display: flex;
align-items: center; align-items: center;
line-height: 1; line-height: 1;
padding: 8px 12px; padding: 4px 0;
border-top: 1px solid #eee;
i { i {
margin-right: 4px; margin-right: 4px;
@@ -893,8 +908,8 @@
} }
img { img {
width: 20px; width: 16px;
height: 20px; height: 16px;
border-radius: 50%; border-radius: 50%;
} }
} }

View File

@@ -13,46 +13,48 @@
content="任务开始后3天内15分钟更新1次3天后访问页面时触发更新1时间最多刷新1次"> content="任务开始后3天内15分钟更新1次3天后访问页面时触发更新1时间最多刷新1次">
<i class="iconfont iconDetails"></i> <i class="iconfont iconDetails"></i>
</el-tooltip> </el-tooltip>
<span>数据更新于2022-07-06 09:23</span> <span>数据更新于{{ info.dataUpdateTime }}</span>
</div> </div>
</template> </template>
<template #content> <template #content>
<ai-wrapper> <ai-wrapper>
<ai-info-item label="任务名称" isLine value="群发的任务名称群发的任务名称群发的任务名称群发的任务名称"></ai-info-item> <ai-info-item label="任务名称" isLine :value="info.taskTitle"></ai-info-item>
<ai-info-item label="任务状态" isLine> <ai-info-item label="任务状态" isLine>
<span>进行中</span> <span>{{ dict.getLabel('mstStatus', info.status) }}</span>
</ai-info-item> </ai-info-item>
<ai-info-item label="创建人"> <ai-info-item label="创建人">
<div class="user"> <div class="user">
<img src="https://cdn.cunwuyun.cn/dvcp/announce/user.png" /> <img src="https://cdn.cunwuyun.cn/dvcp/announce/user.png" />
<span>陈沐</span> <span><ai-open-data type="userName" :openid="info.createUserId"></ai-open-data></span>
</div> </div>
</ai-info-item> </ai-info-item>
<ai-info-item label="审批人"> <ai-info-item label="审批人">
<div class="user"> <div class="user" v-for="(item, index) in info.examines" :key="index">
<img src="https://cdn.cunwuyun.cn/dvcp/announce/user.png" /> <img src="https://cdn.cunwuyun.cn/dvcp/announce/user.png" />
<span>陈沐</span> <span>
<ai-open-data type="userName" :openid="item.wxOpenUserId"></ai-open-data>
</span>
</div> </div>
</ai-info-item> </ai-info-item>
<ai-info-item label="创建时间" value="2021-05-12 18:00"></ai-info-item> <ai-info-item label="创建时间" :value="info.createTime"></ai-info-item>
<ai-info-item label="群发时间" value="2021-05-12 18:00"></ai-info-item> <ai-info-item label="群发时间" :value="info.choiceTime"></ai-info-item>
<ai-info-item label="群发范围" isLine> <ai-info-item label="群发范围" isLine>
<div class="text"> <div class="text">
<span>按条件筛选的</span> <span>按条件筛选的</span>
<i>222</i> <i>{{ info.wxGroups.length }}</i>
<span>个客户群</span> <span>个客户群</span>
<em>详情</em> <em>详情</em>
</div> </div>
</ai-info-item> </ai-info-item>
<ai-info-item label="消息内容" isLine> <ai-info-item label="消息内容" isLine>
<div class="msg"> <div class="msg">
<p>样眼专系要反决十听社养天车度命部对思工美议不想率化和想由然同油能务养也只也布我情点教包江经面队号都今先把层变水口较到个是族连界...</p> <p>{{ content }}</p>
<div class="msg-bottom"> <div class="msg-bottom" v-if="fileList.length">
<div class="left"> <div class="left">
<img src="https://cdn.cunwuyun.cn/dvcp/announce/img.png" /> <img src="https://cdn.cunwuyun.cn/dvcp/announce/img.png" />
<span>图片附件235325346.jpg </span> <span>图片附件235325346.jpg </span>
<i>3</i> <i>{{ fileList.length }}</i>
<span>个附</span> <span>个附</span>
</div> </div>
<div class="right">预览消息</div> <div class="right">预览消息</div>
</div> </div>
@@ -177,10 +179,6 @@
</template> </template>
</ai-card> </ai-card>
</template> </template>
<template #footer>
<el-button @click="cancel">取消</el-button>
<el-button type="primary" @click="confirm">提交</el-button>
</template>
</ai-detail> </ai-detail>
</template> </template>
@@ -202,7 +200,10 @@
current: 1, current: 1,
size: 10 size: 10
}, },
fileList: [],
tableData: [], tableData: [],
info: {},
content: '',
currIndex: 0, currIndex: 0,
colConfigs: [ colConfigs: [
{ prop: 'position', label: '任务名称' }, { prop: 'position', label: '任务名称' },
@@ -216,22 +217,32 @@
}, },
created () { created () {
this.getInfo(this.params.id)
}, },
methods: { methods: {
getInfo (id) { getInfo (id) {
this.instance.post(`/app/wxcp/wxuser/queryDetailById?id=${id}`).then(res => { this.instance.post(`/app/appmasssendingtask/queryDetailById?id=${id}`).then(res => {
if (res.code === 0) { if (res.code === 0) {
this.form = { this.info = res.data
...res.data
const content = res.data.contents.filter(v => v.msgType === '0')
if (content.length) {
this.content = content[0].content
} }
this.fileList = res.data.contents.filter(v => v.msgType !== '0').map(v => {
return {
...v,
...v.sysFile
}
})
} }
}) })
}, },
getList () { getList () {},
},
cancel (isRefresh) { cancel (isRefresh) {
this.$emit('change', { this.$emit('change', {

View File

@@ -49,15 +49,10 @@
:col-configs="colConfigs" :col-configs="colConfigs"
:total="total" :total="total"
v-loading="loading" v-loading="loading"
style="margin-top: 6px;" style="margin-top: 6px; width: 100%;"
:current.sync="search.current" :current.sync="search.current"
:size.sync="search.size" :size.sync="search.size"
@getList="getList"> @getList="getList">
<el-table-column slot="username" label="姓名">
<template slot-scope="{ row }">
<ai-open-data style="height: 20px" type="userName" :openid="row.name"/>
</template>
</el-table-column>
<el-table-column slot="options" width="140px" fixed="right" label="操作" align="center"> <el-table-column slot="options" width="140px" fixed="right" label="操作" align="center">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div class="table-options"> <div class="table-options">