Merge remote-tracking branch 'origin/dev' into build
This commit is contained in:
@@ -20,7 +20,7 @@
|
|||||||
<el-radio label="2">按网格选择</el-radio>
|
<el-radio label="2">按网格选择</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="选择群主" v-if="form.sendScope !== '0'" prop="wxGroupsName" style="width: 100%;" :rules="[{ required: true, message: '请选择选择群主', trigger: 'change' }]">
|
<el-form-item label="添加人" v-if="form.sendScope !== '0'" prop="wxGroupsName" style="width: 100%;" :rules="[{ required: true, message: '请选择选择群主', trigger: 'change' }]">
|
||||||
<ai-picker
|
<ai-picker
|
||||||
:instance="instance"
|
:instance="instance"
|
||||||
multiple
|
multiple
|
||||||
@@ -47,15 +47,50 @@
|
|||||||
</div>
|
</div>
|
||||||
</ai-picker>
|
</ai-picker>
|
||||||
<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="同一个居民若有多个添加人,则会由最后跟客户进行聊天互动的人员进行群发">
|
||||||
<i class="iconfont iconModal_Warning"></i>
|
<i class="iconfont iconModal_Warning"></i>
|
||||||
</el-tooltip>
|
</el-tooltip>
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="添加时间" v-if="form.sendScope !== '0'" prop="wxGroupsName">
|
||||||
|
<el-date-picker
|
||||||
|
type="daterange"
|
||||||
|
align="right"
|
||||||
|
unlink-panels
|
||||||
|
size="small"
|
||||||
|
range-separator="至"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期">
|
||||||
|
</el-date-picker>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="标签" style="width: 100%" v-if="form.sendScope !== '0'" prop="wxGroupsName">
|
||||||
|
<div class="AppAnnounceDetail-select" @click="isShowTags = true">
|
||||||
|
<el-input class="AppAnnounceDetail-select__input" size="small" placeholder="请选择..." v-model="form.examinesName"></el-input>
|
||||||
|
<div class="select-left" v-if="form.examines.length">
|
||||||
|
<span v-for="(item, index) in form.examines" :key="index">
|
||||||
|
<ai-open-data type="userName" :openid="item.wxOpenUserId"></ai-open-data>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<i v-if="!form.examines.length">请选择</i>
|
||||||
|
<div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="剔除标签" style="width: 100%" v-if="form.sendScope !== '0'" prop="wxGroupsName">
|
||||||
|
<div class="AppAnnounceDetail-select" @click="isShowTags = true">
|
||||||
|
<el-input class="AppAnnounceDetail-select__input" size="small" placeholder="请选择..." v-model="form.examinesName"></el-input>
|
||||||
|
<div class="select-left" v-if="form.examines.length">
|
||||||
|
<span v-for="(item, index) in form.examines" :key="index">
|
||||||
|
<ai-open-data type="userName" :openid="item.wxOpenUserId"></ai-open-data>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<i v-if="!form.examines.length">请选择</i>
|
||||||
|
<div class="select-right">{{ form.examines.length ? '重新选择' : '选择' }}</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="发送内容" prop="content" style="width: 100%;" :rules="[{ required: true, message: '请输入发送内容', trigger: 'blur' }]">
|
<el-form-item label="发送内容" prop="content" style="width: 100%;" :rules="[{ required: true, message: '请输入发送内容', trigger: 'blur' }]">
|
||||||
<el-input size="small" type="textarea" :rows="6" maxlength="1300" show-word-limit placeholder="请输入文本内容..." v-model="form.content"></el-input>
|
<el-input size="small" type="textarea" :rows="6" maxlength="1300" show-word-limit placeholder="请输入文本内容..." v-model="form.content"></el-input>
|
||||||
<div class="add">
|
<div class="add">
|
||||||
@@ -111,16 +146,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
<el-upload
|
<el-upload
|
||||||
ref="upload"
|
ref="upload"
|
||||||
multiple
|
multiple
|
||||||
:file-list="fileList"
|
:file-list="fileList"
|
||||||
:show-file-list="false"
|
:show-file-list="false"
|
||||||
:before-upload="v => handleChange(v, 20, '.zip,.rar,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.txt')"
|
:before-upload="v => handleChange(v, 20, '.zip,.rar,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.txt')"
|
||||||
:limit="9"
|
:limit="9"
|
||||||
:on-exceed="onExceed"
|
:on-exceed="onExceed"
|
||||||
action="/app/wxcp/upload/uploadFile"
|
action="/app/wxcp/upload/uploadFile"
|
||||||
accept=".zip,.rar,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.txt"
|
accept=".zip,.rar,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.txt"
|
||||||
:http-request="v => submitUpload(v, '3')">
|
:http-request="v => submitUpload(v, '3')">
|
||||||
<div class="content-item" trigger>
|
<div class="content-item" trigger>
|
||||||
<img src="https://cdn.cunwuyun.cn/dvcp/announce/folder.png"/>
|
<img src="https://cdn.cunwuyun.cn/dvcp/announce/folder.png"/>
|
||||||
<p>文件</p>
|
<p>文件</p>
|
||||||
@@ -143,10 +178,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="宣发审批" prop="enableExamine" style="width: 100%;" :rules="[{ required: true, message: '请输入任务名称', trigger: 'blur' }]">
|
<el-form-item label="宣发审批" prop="enableExamine" style="width: 100%;" :rules="[{ required: true, message: '请输入任务名称', trigger: 'blur' }]">
|
||||||
<el-switch
|
<el-switch
|
||||||
v-model="form.enableExamine"
|
v-model="form.enableExamine"
|
||||||
active-value="1"
|
active-value="1"
|
||||||
inactive-value="0"
|
inactive-value="0"
|
||||||
active-text="开启后,创建的群发任务需要审批人进行审批">
|
active-text="开启后,创建的群发任务需要审批人进行审批">
|
||||||
</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' }]">
|
||||||
@@ -180,29 +215,29 @@
|
|||||||
<div class="ai-form">
|
<div class="ai-form">
|
||||||
<el-form-item label="标题" style="width: 100%;" prop="linkTitle" :rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]">
|
<el-form-item label="标题" style="width: 100%;" prop="linkTitle" :rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]">
|
||||||
<el-input
|
<el-input
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="请输入标题"
|
placeholder="请输入标题"
|
||||||
maxlength="42"
|
maxlength="42"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
v-model="linkForm.linkTitle">
|
v-model="linkForm.linkTitle">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="链接" style="width: 100%;" prop="linkUrl" :rules="[{ required: true, message: '请输入链接', trigger: 'blur' }]">
|
<el-form-item label="链接" style="width: 100%;" prop="linkUrl" :rules="[{ required: true, message: '请输入链接', trigger: 'blur' }]">
|
||||||
<el-input
|
<el-input
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="请输入链接"
|
placeholder="请输入链接"
|
||||||
maxlength="682"
|
maxlength="682"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
v-model="linkForm.linkUrl">
|
v-model="linkForm.linkUrl">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="描述" style="width: 100%;" prop="linkDesc">
|
<el-form-item label="描述" style="width: 100%;" prop="linkDesc">
|
||||||
<el-input
|
<el-input
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="请输入描述"
|
placeholder="请输入描述"
|
||||||
maxlength="170"
|
maxlength="170"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
v-model="linkForm.linkDesc">
|
v-model="linkForm.linkDesc">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="封面图" prop="linkPicUrl" style="width: 100%;">
|
<el-form-item label="封面图" prop="linkPicUrl" style="width: 100%;">
|
||||||
@@ -212,34 +247,34 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</ai-dialog>
|
</ai-dialog>
|
||||||
<ai-dialog
|
<ai-dialog
|
||||||
:visible.sync="isShowAddMiniapp"
|
:visible.sync="isShowAddMiniapp"
|
||||||
width="920px"
|
width="920px"
|
||||||
title="小程序消息"
|
title="小程序消息"
|
||||||
@close="onClose"
|
@close="onClose"
|
||||||
@onConfirm="onMiniAppForm">
|
@onConfirm="onMiniAppForm">
|
||||||
<el-form ref="miniAppForm" :model="miniAppForm" label-width="130px" label-position="right">
|
<el-form ref="miniAppForm" :model="miniAppForm" label-width="130px" label-position="right">
|
||||||
<div class="ai-form">
|
<div class="ai-form">
|
||||||
<el-form-item label="小程序appid" style="width: 100%;" prop="mpAppid" :rules="[{ required: true, message: '小程序appid', trigger: 'blur' }]">
|
<el-form-item label="小程序appid" style="width: 100%;" prop="mpAppid" :rules="[{ required: true, message: '小程序appid', trigger: 'blur' }]">
|
||||||
<el-input
|
<el-input
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="小程序appid"
|
placeholder="小程序appid"
|
||||||
v-model="miniAppForm.mpAppid">
|
v-model="miniAppForm.mpAppid">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="小程序page路径" style="width: 100%;" prop="mpPage" :rules="[{ required: true, message: '请输入小程序page路径', trigger: 'blur' }]">
|
<el-form-item label="小程序page路径" style="width: 100%;" prop="mpPage" :rules="[{ required: true, message: '请输入小程序page路径', trigger: 'blur' }]">
|
||||||
<el-input
|
<el-input
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="请输入小程序page路径"
|
placeholder="请输入小程序page路径"
|
||||||
v-model="miniAppForm.mpPage">
|
v-model="miniAppForm.mpPage">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="标题" style="width: 100%;" prop="mpTitle" :rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]">
|
<el-form-item label="标题" style="width: 100%;" prop="mpTitle" :rules="[{ required: true, message: '请输入标题', trigger: 'blur' }]">
|
||||||
<el-input
|
<el-input
|
||||||
size="small"
|
size="small"
|
||||||
placeholder="请输入标题"
|
placeholder="请输入标题"
|
||||||
maxlength="20"
|
maxlength="20"
|
||||||
show-word-limit
|
show-word-limit
|
||||||
v-model="miniAppForm.mpTitle">
|
v-model="miniAppForm.mpTitle">
|
||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="封面图" prop="media" style="width: 100%;" :rules="[{ required: true, message: '请上传封面图', trigger: 'change' }]">
|
<el-form-item label="封面图" prop="media" style="width: 100%;" :rules="[{ required: true, message: '请上传封面图', trigger: 'change' }]">
|
||||||
@@ -249,21 +284,21 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</ai-dialog>
|
</ai-dialog>
|
||||||
<ai-dialog
|
<ai-dialog
|
||||||
:visible.sync="isShowDate"
|
:visible.sync="isShowDate"
|
||||||
width="590px"
|
width="590px"
|
||||||
title="定时发送"
|
title="定时发送"
|
||||||
customFooter>
|
customFooter>
|
||||||
<el-form ref="dateForm" :model="dateForm" label-width="130px" label-position="right">
|
<el-form ref="dateForm" :model="dateForm" label-width="130px" label-position="right">
|
||||||
<div class="ai-form">
|
<div class="ai-form">
|
||||||
<el-form-item label="定时发送时间" style="width: 100%;" prop="choiceTime" :rules="[{ required: true, message: '请选择定时发送时间', trigger: 'change' }]">
|
<el-form-item label="定时发送时间" style="width: 100%;" prop="choiceTime" :rules="[{ required: true, message: '请选择定时发送时间', trigger: 'change' }]">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
v-model="dateForm.choiceTime"
|
v-model="dateForm.choiceTime"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
size="small"
|
size="small"
|
||||||
:picker-options="pickerOptions"
|
:picker-options="pickerOptions"
|
||||||
value-format="yyyy-MM-dd HH:mm:ss"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="请选择定时发送时间">
|
placeholder="请选择定时发送时间">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
@@ -273,6 +308,27 @@
|
|||||||
<el-button @click="onDateForm" type="primary" :loading="isLoading2" style="width: 92px;">确认</el-button>
|
<el-button @click="onDateForm" type="primary" :loading="isLoading2" style="width: 92px;">确认</el-button>
|
||||||
</div>
|
</div>
|
||||||
</ai-dialog>
|
</ai-dialog>
|
||||||
|
<ai-dialog
|
||||||
|
:visible.sync="isShowTags"
|
||||||
|
width="800px"
|
||||||
|
:title="isRemoveTag ? '批量移除标签' : '批量打标签'"
|
||||||
|
@close="onClose"
|
||||||
|
@onConfirm="onTagsConfirm">
|
||||||
|
<div class="tags">
|
||||||
|
<div class="tag-item" v-for="(item, index) in tags" :key="index">
|
||||||
|
<h2>{{ item.name }}</h2>
|
||||||
|
<div class="tag-item__right">
|
||||||
|
<el-button
|
||||||
|
:type="chooseTags.indexOf(item.id) === -1 ? '' : 'primary'"
|
||||||
|
v-for="(item, index) in item.tagList"
|
||||||
|
@click="choose(item.id)"
|
||||||
|
:key="index">
|
||||||
|
{{ item.name }}
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ai-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@@ -305,7 +361,10 @@ export default {
|
|||||||
info: {},
|
info: {},
|
||||||
department: [],
|
department: [],
|
||||||
isLoading1: false,
|
isLoading1: false,
|
||||||
|
tags: [],
|
||||||
|
isShowTags: false,
|
||||||
isLoading2: false,
|
isLoading2: false,
|
||||||
|
isRemoveTag: false,
|
||||||
fileList: [],
|
fileList: [],
|
||||||
isShowAddLink: false,
|
isShowAddLink: false,
|
||||||
isShowAddMiniapp: false,
|
isShowAddMiniapp: false,
|
||||||
@@ -372,11 +431,27 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.getWxGroups()
|
this.getWxGroups()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.getTags()
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(['initOpenData', 'transCanvas']),
|
...mapActions(['initOpenData', 'transCanvas']),
|
||||||
|
|
||||||
|
getTags () {
|
||||||
|
this.instance.post(`/app/wxcp/wxcorptag/listAll?size=100`).then(res => {
|
||||||
|
if (res.code == 0) {
|
||||||
|
this.tags = res.data.records
|
||||||
|
|
||||||
|
console.log(res.data.records)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
onTagsConfirm () {
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
getInfo(id) {
|
getInfo(id) {
|
||||||
this.instance.post(`/app/appmasssendingtask/queryDetailById?id=${id}`).then(res => {
|
this.instance.post(`/app/appmasssendingtask/queryDetailById?id=${id}`).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user