Merge remote-tracking branch 'origin/build' into build

This commit is contained in:
aixianling
2023-03-01 16:45:10 +08:00
7 changed files with 88 additions and 84 deletions

View File

@@ -201,7 +201,7 @@
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item v-if="form.enableExamine === '1'" label="审批人员" prop="examines" style="width: 100%;" :rules="[{ required: true, message: '请选择审批人员', trigger: 'change' }]"> <el-form-item v-if="form.enableExamine === '1'" label="审批人员" prop="examines" style="width: 100%;" :rules="[{ required: true, message: '请选择审批人员', trigger: 'change' }]">
<ai-wechat-selecter :instance="instance" v-model="form.examines" @change="onUserChange"> <ai-user-selecter :instance="instance" v-model="form.examines" @change="onUserChange">
<div class="AppAnnounceDetail-select"> <div class="AppAnnounceDetail-select">
<el-input class="AppAnnounceDetail-select__input" size="small" placeholder="请选择..." v-model="form.examinesName"></el-input> <el-input class="AppAnnounceDetail-select__input" size="small" placeholder="请选择..." v-model="form.examinesName"></el-input>
<div class="select-left" v-if="form.examines.length"> <div class="select-left" v-if="form.examines.length">
@@ -210,7 +210,7 @@
<i v-if="!form.examines.length">请选择</i> <i v-if="!form.examines.length">请选择</i>
<div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div> <div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div>
</div> </div>
</ai-wechat-selecter> </ai-user-selecter>
</el-form-item> </el-form-item>
</div> </div>
</template> </template>
@@ -325,7 +325,7 @@
<ai-dialog <ai-dialog
:visible.sync="isShowTags" :visible.sync="isShowTags"
width="800px" width="800px"
title="批量打标签" title="选择标签"
@close="onClose" @close="onClose"
@onConfirm="onTagsConfirm"> @onConfirm="onTagsConfirm">
<div class="tags"> <div class="tags">
@@ -346,7 +346,7 @@
<ai-dialog <ai-dialog
:visible.sync="isShowRemoveTags" :visible.sync="isShowRemoveTags"
width="800px" width="800px"
title="批量移除标签" title="除标签"
@close="onClose" @close="onClose"
@onConfirm="onRemoveTagsConfirm"> @onConfirm="onRemoveTagsConfirm">
<div class="tags"> <div class="tags">

View File

@@ -133,11 +133,11 @@
:current.sync="search1.current" :current.sync="search1.current"
:size.sync="search1.size" :size.sync="search1.size"
@getList="getMemberInfo"> @getList="getMemberInfo">
<el-table-column slot="user" label="员" align="left"> <el-table-column slot="user" label="员" align="left">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div class="userinfo"> <div class="userinfo">
<span>{{ row.groupOwnerName }}</span> <span>{{ row.userName }}</span>
<span style="color: #999">{{ row.mainDepartmentName }}</span> <span style="color: #999">{{ row.userDepartmentName }}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@@ -149,22 +149,26 @@
<ai-dialog <ai-dialog
:visible.sync="isShowGroups" :visible.sync="isShowGroups"
width="890px" width="890px"
customFooter
title="群发范围" title="群发范围"
@onConfirm="isShowGroups = false"> @onConfirm="isShowGroups = false">
<ai-wrapper> <ai-wrapper>
<ai-info-item label="消息发送" isLine :value="info.taskTitle"> <ai-info-item label="消息发送" isLine :value="info.taskTitle">
<div class="text"> <div class="text">
<span>{{ info.sendScope === '0' ? '全部' : '按条件筛选的' }}</span> <span>{{ info.sendScope === '0' ? '全部' : '按条件筛选的' }}</span>
<i>{{ info.groupList.length }}</i> <i>{{ info.groupList.length }}</i>
<span>个居民</span> <span>个居民</span>
</div> </div>
</ai-info-item> </ai-info-item>
<ai-info-item label="添加人" isLine :value="userNames"></ai-info-item> <ai-info-item label="添加人" isLine :value="userNames"></ai-info-item>
<ai-info-item label="标签" isLine>{{ info.filterTagsName || '-' }}</ai-info-item> <ai-info-item label="标签" isLine>{{ info.filterTagsName || '-' }}</ai-info-item>
<ai-info-item label="剔除标签" isLine>{{ info.excludeFilterTagsName || '-' }}</ai-info-item> <ai-info-item label="剔除标签" isLine>{{ info.excludeFilterTagsName || '-' }}</ai-info-item>
<ai-info-item label="性别" isLine>{{ mapGender(info.gender) }}</ai-info-item> <ai-info-item label="性别" isLine>{{ mapGender(info.gender) }}</ai-info-item>
<ai-info-item label="添加时间" isLine>{{ info.addEndTime + '-' + info.addFromTime }}</ai-info-item> <ai-info-item label="添加时间" isLine>{{ info.addEndTime + '-' + info.addFromTime }}</ai-info-item>
</ai-wrapper> </ai-wrapper>
<div class="dialog-footer" slot="footer">
<el-button @click="isShowGroups = false">关闭</el-button>
</div>
</ai-dialog> </ai-dialog>
<div class="detail-phone" v-if="isShowPhone"> <div class="detail-phone" v-if="isShowPhone">
<div class="mask"></div> <div class="mask"></div>
@@ -196,7 +200,6 @@
isShowGroups: false, isShowGroups: false,
isShowPhone: false, isShowPhone: false,
user1: [], user1: [],
user2: [],
radio1: '未执行', radio1: '未执行',
search1: { search1: {
current: 1, current: 1,
@@ -206,20 +209,14 @@
sendStatus: '0' sendStatus: '0'
}, },
memberInfo: {}, memberInfo: {},
groupInfo: {},
tableData1: [], tableData1: [],
fileList: [], fileList: [],
tableData2: [],
info: {}, info: {},
content: '', content: '',
currIndex: 0, currIndex: 0,
colConfigs3: [
{ prop: 'groupOwnerName', label: '群主' },
{ prop: 'groupNames', label: '群名称' }
],
colConfigs1: [ colConfigs1: [
{ slot: 'user', label: '员' }, { slot: 'user', label: '员' },
{ prop: 'groupCount', label: '预计送达居民', align: 'center' } { prop: 'groupCount', label: '预计送达居民', align: 'center' }
], ],
groups: [], groups: [],
timer: null, timer: null,
@@ -252,8 +249,8 @@
} }
}).then(res => { }).then(res => {
if (res.code === 0) { if (res.code === 0) {
// this.tableData1 = res.data.executedList.records this.tableData1 = res.data.executedList.records
// this.total1 = res.data.executedList.total this.total1 = res.data.executedList.total
this.memberInfo = res.data this.memberInfo = res.data
} }
}) })

View File

@@ -33,14 +33,14 @@
@change="search.current = 1, getList()" @change="search.current = 1, getList()"
placeholder="选择群发结束日期"> placeholder="选择群发结束日期">
</el-date-picker> </el-date-picker>
<ai-wechat-selecter :instance="instance" @change="onUserChange" :isMultiple="false" v-model="user"> <ai-user-selecter :instance="instance" @change="onUserChange" :isMultiple="false" v-model="user">
<div class="userSelcet"> <div class="userSelcet">
<span style="color: #606266;" v-if="search.createUserId">{{ name }}</span> <span style="color: #606266;" v-if="search.createUserId">{{ name }}</span>
<span v-else>创建人</span> <span v-else>创建人</span>
<i class="el-icon-arrow-up" v-if="!search.createUserId"></i> <i class="el-icon-arrow-up" v-if="!search.createUserId"></i>
<i class="el-icon-circle-close" v-if="search.createUserId" @click.stop="user = [], search.createUserId = '', name = '', search.current = 1, getList()"></i> <i class="el-icon-circle-close" v-if="search.createUserId" @click.stop="user = [], search.createUserId = '', name = '', search.current = 1, getList()"></i>
</div> </div>
</ai-wechat-selecter> </ai-user-selecter>
</template> </template>
<template slot="right"> <template slot="right">
<el-input <el-input
@@ -74,6 +74,7 @@
<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">
<el-button type="text" @click="close(row.id)" v-if="['3'].includes(row.status)">关闭</el-button>
<el-button type="text" @click="remindExamine(row.id)" v-if="['0'].includes(row.status)">催办</el-button> <el-button type="text" @click="remindExamine(row.id)" v-if="['0'].includes(row.status)">催办</el-button>
<el-button type="text" @click="cancel(row.id)" v-if="['0'].includes(row.status)">撤回</el-button> <el-button type="text" @click="cancel(row.id)" v-if="['0'].includes(row.status)">撤回</el-button>
<el-button type="text" @click="toDetail(row.id)">详情</el-button> <el-button type="text" @click="toDetail(row.id)">详情</el-button>
@@ -182,7 +183,7 @@
remindExamine (id) { remindExamine (id) {
this.$confirm('确认再次通知任务审核人员?').then(() => { this.$confirm('确认再次通知任务审核人员?').then(() => {
this.instance.post(`/app/appmasssendingtask/remindExamine?id=${id}`).then(res => { this.instance.post(`/app/whchatmomentstask/remindExamine?id=${id}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('催办成功!') this.$message.success('催办成功!')
this.getList() this.getList()
@@ -193,7 +194,7 @@
cancel (id) { cancel (id) {
this.$confirm('确认撤回该群发任务?').then(() => { this.$confirm('确认撤回该群发任务?').then(() => {
this.instance.post(`/app/appmasssendingtask/cancel?id=${id}`).then(res => { this.instance.post(`/app/whchatmomentstask/cancel?id=${id}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('撤回成功!') this.$message.success('撤回成功!')
this.getList() this.getList()
@@ -202,11 +203,11 @@
}) })
}, },
remove(id) { close (id) {
this.$confirm('确定删除该数据').then(() => { this.$confirm('确定关闭该群发任务').then(() => {
this.instance.post(`/app/appmasssendingtask/delete?ids=${id}`).then(res => { this.instance.post(`/app/whchatmomentstask/closeTask?id=${id}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('删除成功!') this.$message.success('关闭成功!')
this.getList() this.getList()
} }
}) })

View File

@@ -1,8 +1,8 @@
<template> <template>
<div class="AppAnnounceWeChat"> <div class="AppAnnounceWeChat">
<!-- <keep-alive :include="['List']"> --> <keep-alive :include="['List']">
<component ref="component" :is="component" @change="onChange" :params="params" :instance="instance" :dict="dict"></component> <component ref="component" :is="component" @change="onChange" :params="params" :instance="instance" :dict="dict"></component>
<!-- </keep-alive> --> </keep-alive>
</div> </div>
</template> </template>
@@ -55,7 +55,7 @@
this.params = data.params this.params = data.params
} }
if (data.type === 'list') { if (data.type === 'List') {
this.component = 'List' this.component = 'List'
this.params = data.params this.params = data.params

View File

@@ -53,11 +53,11 @@
</div> </div>
</div> </div>
<div class="tips"> <div class="tips">
<p>消息预计送达居民</p> <p>消息预计可见居民数</p>
<span>{{ groupLen }}</span> <span>{{ groupLen }}</span>
<el-tooltip <el-tooltip
placement="top" placement="top"
content="将由指定群主发送给TA作为群主的所有的群由于企业微信限制当超过1000个时将只发送到最近活跃的1000个群"> content="将由指定人员发送给TA添加的且符合所有筛选条件的居民当多个人员添加同一个居民时该居民只可看见第1个完成发表的人员的朋友圈">
<i class="iconfont iconModal_Warning"></i> <i class="iconfont iconModal_Warning"></i>
</el-tooltip> </el-tooltip>
</div> </div>
@@ -147,7 +147,7 @@
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item v-if="form.enableExamine === '1'" label="审批人员" prop="examines" style="width: 100%;" :rules="[{ required: true, message: '请选择审批人员', trigger: 'change' }]"> <el-form-item v-if="form.enableExamine === '1'" label="审批人员" prop="examines" style="width: 100%;" :rules="[{ required: true, message: '请选择审批人员', trigger: 'change' }]">
<ai-wechat-selecter :instance="instance" v-model="form.examines" @change="onUserChange"> <ai-user-selecter :instance="instance" v-model="form.examines" @change="onUserChange">
<div class="AppAnnounceDetail-select"> <div class="AppAnnounceDetail-select">
<el-input class="AppAnnounceDetail-select__input" size="small" placeholder="请选择..." v-model="form.examinesName"></el-input> <el-input class="AppAnnounceDetail-select__input" size="small" placeholder="请选择..." v-model="form.examinesName"></el-input>
<div class="select-left" v-if="form.examines.length"> <div class="select-left" v-if="form.examines.length">
@@ -156,7 +156,7 @@
<i v-if="!form.examines.length">请选择</i> <i v-if="!form.examines.length">请选择</i>
<div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div> <div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div>
</div> </div>
</ai-wechat-selecter> </ai-user-selecter>
</el-form-item>`` </el-form-item>``
</div> </div>
</template> </template>
@@ -234,7 +234,7 @@
<ai-dialog <ai-dialog
:visible.sync="isShowTags" :visible.sync="isShowTags"
width="800px" width="800px"
title="标签'" title="选择标签'"
@close="onClose" @close="onClose"
@onConfirm="onTagsConfirm"> @onConfirm="onTagsConfirm">
<div class="tags"> <div class="tags">
@@ -335,7 +335,9 @@ export default {
...mapState(['user']), ...mapState(['user']),
groupLen() { groupLen() {
return this.form.executorList.length return this.form.executorList.map(v => v.customerCount).reduce((prev, cur) => {
return prev + cur
}, 0)
} }
}, },
@@ -663,7 +665,7 @@ export default {
cancel(isRefresh) { cancel(isRefresh) {
this.$emit('change', { this.$emit('change', {
type: 'list', type: 'List',
isRefresh: !!isRefresh isRefresh: !!isRefresh
}) })
} }

View File

@@ -1,7 +1,7 @@
<template> <template>
<ai-detail class="AppAnnounceDetail"> <ai-detail class="AppAnnounceDetail" v-loading="isLoading">
<template slot="title"> <template slot="title">
<ai-title title="群发详情" isShowBack isShowBottomBorder @onBackClick="cancel(false)"> <ai-title title="群发详情" isShowBack isShowBottomBorder @onBackClick="cancel(true)">
</ai-title> </ai-title>
</template> </template>
<template slot="content"> <template slot="content">
@@ -133,11 +133,11 @@
:current.sync="search1.current" :current.sync="search1.current"
:size.sync="search1.size" :size.sync="search1.size"
@getList="getMemberInfo"> @getList="getMemberInfo">
<el-table-column slot="user" label="员" align="left"> <el-table-column slot="user" label="员" align="left">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<div class="userinfo"> <div class="userinfo">
<span>{{ row.groupOwnerName }}</span> <span>{{ row.userName }}</span>
<span style="color: #999">{{ row.mainDepartmentName }}</span> <span style="color: #999">{{ row.userDepartmentName }}</span>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@@ -149,19 +149,23 @@
<ai-dialog <ai-dialog
:visible.sync="isShowGroups" :visible.sync="isShowGroups"
width="890px" width="890px"
customFooter
title="群发范围" title="群发范围"
@onConfirm="isShowGroups = false"> @onConfirm="isShowGroups = false">
<ai-wrapper> <ai-wrapper>
<ai-info-item label="消息发送" isLine :value="info.taskTitle"> <ai-info-item label="消息发送" isLine :value="info.taskTitle">
<div class="text"> <div class="text">
<span>{{ info.sendScope === '0' ? '全部' : '按条件筛选的' }}</span> <span>{{ info.sendScope === '0' ? '全部' : '按条件筛选的' }}</span>
<i>{{ info.executorList.length }}</i> <i>{{ info.executorList.length }}</i>
<span>个居民</span> <span>个居民</span>
</div> </div>
</ai-info-item> </ai-info-item>
<ai-info-item label="添加人" isLine :value="userNames"></ai-info-item> <ai-info-item label="添加人" isLine :value="userNames"></ai-info-item>
<ai-info-item label="标签" isLine>{{ info.filterTagsName || '-' }}</ai-info-item> <ai-info-item label="标签" isLine>{{ info.filterTagsName || '-' }}</ai-info-item>
</ai-wrapper> </ai-wrapper>
<div class="dialog-footer" slot="footer">
<el-button @click="isShowGroups = false">关闭</el-button>
</div>
</ai-dialog> </ai-dialog>
<div class="detail-phone" v-if="isShowPhone"> <div class="detail-phone" v-if="isShowPhone">
<div class="mask"></div> <div class="mask"></div>
@@ -210,20 +214,17 @@
info: {}, info: {},
content: '', content: '',
currIndex: 0, currIndex: 0,
colConfigs3: [
{ prop: 'groupOwnerName', label: '群主' },
{ prop: 'groupNames', label: '群名称' }
],
colConfigs1: [ colConfigs1: [
{ slot: 'user', label: '成员' }, { slot: 'user', label: '成员' },
{ prop: 'groupCount', label: '预计送达居民群', align: 'center' } { prop: 'groupCount', label: '预计发送朋友圈', align: 'center' }
], ],
groups: [], groups: [],
timer: null, timer: null,
min: 60, min: 60,
isDisabled: false, isDisabled: false,
rejecterId: '', rejecterId: '',
userNames: '' userNames: '',
isLoading: false
} }
}, },
@@ -249,8 +250,8 @@
} }
}).then(res => { }).then(res => {
if (res.code === 0) { if (res.code === 0) {
// this.tableData1 = res.data.executedList.records this.tableData1 = res.data.executedList.records
// this.total1 = res.data.executedList.total this.total1 = res.data.executedList.total
this.memberInfo = res.data this.memberInfo = res.data
} }
}) })
@@ -268,7 +269,7 @@
}, },
sendMsg () { sendMsg () {
this.instance.post(`/app/whchatmomentstask/remindExamine?id=${this.params.id}`).then(res => { this.instance.post(`/app/whchatmomentstask/remindSend?id=${this.params.id}`).then(res => {
if (res.code === 0) { if (res.code === 0) {
this.$message.success('提醒成功') this.$message.success('提醒成功')
this.getInfo(this.params.id) this.getInfo(this.params.id)
@@ -292,6 +293,7 @@
}, },
getInfo (id) { getInfo (id) {
this.isLoading = true
this.instance.post(`/app/whchatmomentstask/queryDetailById?id=${id}`).then(res => { this.instance.post(`/app/whchatmomentstask/queryDetailById?id=${id}`).then(res => {
if (res.code === 0) { if (res.code === 0) {
this.info = res.data this.info = res.data
@@ -327,6 +329,7 @@
} }
} }
} }
this.isLoading = false
}) })
}, },
@@ -352,7 +355,7 @@
cancel (isRefresh) { cancel (isRefresh) {
this.$emit('change', { this.$emit('change', {
type: 'list', type: 'List',
isRefresh: !!isRefresh isRefresh: !!isRefresh
}) })
} }

View File

@@ -33,14 +33,14 @@
@change="search.current = 1, getList()" @change="search.current = 1, getList()"
placeholder="选择群发结束日期"> placeholder="选择群发结束日期">
</el-date-picker> </el-date-picker>
<ai-wechat-selecter :instance="instance" @change="onUserChange" :isMultiple="false" v-model="user"> <ai-user-selecter :instance="instance" @change="onUserChange" :isMultiple="false" v-model="user">
<div class="userSelcet"> <div class="userSelcet">
<span style="color: #606266;" v-if="search.createUserId">{{ name }}</span> <span style="color: #606266;" v-if="search.createUserId">{{ name }}</span>
<span v-else>创建人</span> <span v-else>创建人</span>
<i class="el-icon-arrow-up" v-if="!search.createUserId"></i> <i class="el-icon-arrow-up" v-if="!search.createUserId"></i>
<i class="el-icon-circle-close" v-if="search.createUserId" @click.stop="user = [], search.createUserId = '', name = '', search.current = 1, getList()"></i> <i class="el-icon-circle-close" v-if="search.createUserId" @click.stop="user = [], search.createUserId = '', name = '', search.current = 1, getList()"></i>
</div> </div>
</ai-wechat-selecter> </ai-user-selecter>
</template> </template>
<template slot="right"> <template slot="right">
<el-input <el-input
@@ -74,6 +74,7 @@
<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">
<el-button type="text" @click="close(row.id)" v-if="['3'].includes(row.status)">关闭</el-button>
<el-button type="text" @click="remindExamine(row.id)" v-if="['0'].includes(row.status)">催办</el-button> <el-button type="text" @click="remindExamine(row.id)" v-if="['0'].includes(row.status)">催办</el-button>
<el-button type="text" @click="cancel(row.id)" v-if="['0'].includes(row.status)">撤回</el-button> <el-button type="text" @click="cancel(row.id)" v-if="['0'].includes(row.status)">撤回</el-button>
<el-button type="text" @click="toDetail(row.id)">详情</el-button> <el-button type="text" @click="toDetail(row.id)">详情</el-button>
@@ -182,7 +183,7 @@
remindExamine (id) { remindExamine (id) {
this.$confirm('确认再次通知任务审核人员?').then(() => { this.$confirm('确认再次通知任务审核人员?').then(() => {
this.instance.post(`/app/appmasssendingtask/remindExamine?id=${id}`).then(res => { this.instance.post(`/app/whchatmomentstask/remindExamine?id=${id}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('催办成功!') this.$message.success('催办成功!')
this.getList() this.getList()
@@ -193,7 +194,7 @@
cancel (id) { cancel (id) {
this.$confirm('确认撤回该群发任务?').then(() => { this.$confirm('确认撤回该群发任务?').then(() => {
this.instance.post(`/app/appmasssendingtask/cancel?id=${id}`).then(res => { this.instance.post(`/app/whchatmomentstask/cancel?id=${id}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('撤回成功!') this.$message.success('撤回成功!')
this.getList() this.getList()
@@ -202,11 +203,11 @@
}) })
}, },
remove(id) { close (id) {
this.$confirm('确定删除该数据').then(() => { this.$confirm('确定关闭该群发任务').then(() => {
this.instance.post(`/app/appmasssendingtask/delete?ids=${id}`).then(res => { this.instance.post(`/app/whchatmomentstask/closeTask?id=${id}`).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$message.success('删除成功!') this.$message.success('关闭成功!')
this.getList() this.getList()
} }
}) })