提交 bd8fb283 编写于 作者: L linkwechat8856@163.com

Merge remote-tracking branch 'origin/master'

......@@ -3,7 +3,7 @@
<div class="task-wrapper">
<div class="header">
<span> 群SOP </span>
<div> {{ task.createTime }} </div>
<div>{{ task.createTime }}</div>
</div>
<div class="group">
......@@ -32,7 +32,12 @@
<div class="image-list">
<template v-for="material of task.materialList">
<!-- mediaType: 0 图片(image)、1 语音(voice)、2 视频(video),3 普通文件(file) 4 文本 5 海报 6 海报字体 -->
<van-image v-if="material.mediaType === 0" width="80" :key="material.id" :src="material.materialUrl"></van-image>
<van-image
v-if="material.mediaType === 0"
width="80"
:key="material.id"
:src="material.materialUrl"
></van-image>
</template>
<template v-for="pic of task.picList">
<van-image width="80" :key="pic" :src="pic"></van-image>
......@@ -46,7 +51,7 @@
</div>
<div class="send-button" v-if="!state">
<van-button type="info" size="mini" @click="send">发送</van-button>
<van-button type="info" size="mini" @click="send()">发送</van-button>
</div>
</div>
......@@ -79,17 +84,17 @@ export default {
}
},
data () {
data() {
return {
showCopy: false, // 展示复制按钮
touchDelay: 750, // 触发显示按钮的长按时常
showCopy: false, // 展示复制按钮
touchDelay: 750, // 触发显示按钮的长按时常
copyEvent: null,
touch: false,
touch: false
}
},
methods: {
goState (active) {
goState(active) {
if (!this.isAdmin) return
this.$router.push({
......@@ -97,41 +102,63 @@ export default {
query: {
taskId: this.task.ruleId,
active: active === 1 ? 1 : 0,
taskType: 2,
taskType: 2
}
})
},
send () {
send() {
const userId = this.$store.state.userId
const taskId = this.task.ruleId
wx.invoke("shareToExternalChat", {
title: '',
desc: '',
link: '',
imgUrl: ''
}, function(res) {
if (res.err_msg == "shareToExternalChat:ok") {
changeStatus(userId, taskId, 1).then((res) => {
this.$emit('refresh')
}).catch(() => {
this.$emit('refresh')
})
let _this = this
this.$toast.loading({
message: '正在发送...',
duration: 0,
forbidClick: true
})
let mes = {
title: this.task.title,
desc: this.task.content
// link: '', // 消息链接
// imgUrl: this.task.materialUrl && this.task.materialUrl[0] ? this.task.materialUrl[0].materialUrl : ''
}
// mes.link || delete mes.link
// mes.imgUrl || delete mes.imgUrl
wx.invoke('shareToExternalChat', mes, async function(res) {
if (res.err_msg == 'shareToExternalChat:ok') {
try {
await changeStatus(userId, taskId, 1)
} catch (error) {
_this.$toast.clear()
_this.$dialog({ message: '接口失败:' + JSON.stringify(error) })
return
}
// .then((res) => {
// }).catch(() => {
// this.$emit('refresh')
// })
_this.$toast.clear()
this.$emit('refresh')
} else {
if (res.err_code == 1) {
// 用户取消发送
} else {
_this.$dialog({ message: 'shareToExternalChat失败:' + JSON.stringify(res) })
}
}
)
_this.$toast.clear()
})
},
touchStart () {
    clearTimeout(this.copyEvent)
touchStart() {
clearTimeout(this.copyEvent)
    this.copyEvent = setTimeout(() => {
        this.touch = true
    }, this.touchDelay)
this.copyEvent = setTimeout(() => {
this.touch = true
}, this.touchDelay)
},
touchEnd () {
touchEnd() {
clearTimeout(this.copyEvent)
if (this.touch) this.showCopy = true
this.touch = false
......@@ -139,13 +166,13 @@ export default {
},
computed: {
sendRange () {
sendRange() {
if (!this.task.startExeTime || !this.task.stopExeTime) return ''
return this.task.startExeTime + ' - ' + this.task.stopExeTime
},
todoMembers () {
todoMembers() {
if (!(this.task && this.task.scopeList && this.task.scopeList.length > 0)) return []
const members = []
......@@ -156,16 +183,16 @@ export default {
return members
},
showTodo () {
showTodo() {
if (this.todoMembers.length === 0) return ''
const names = this.todoMembers.map(m => m.name)
const names = this.todoMembers.map((m) => m.name)
if (this.todoMembers.length <= 2) return names.join('')
return names[0] + '' + names[1] + '' + this.todoMembers.length + ''
},
doneMembers () {
doneMembers() {
if (!this.task || !this.task.scopeList || this.task.scopeList.length === 0) return []
const members = []
......@@ -176,14 +203,14 @@ export default {
return members
},
showDone () {
showDone() {
if (this.doneMembers.length === 0) return ''
const names = this.doneMembers.map(m => m.name)
const names = this.doneMembers.map((m) => m.name)
if (this.doneMembers.length <= 2) return names.join('')
return names[0] + '' + names[1] + '' + this.doneMembers.length + ''
},
}
},
mounted() {
......@@ -196,90 +223,89 @@ export default {
this.clipboard.on('error', (e) => {
this.showCopy = false
})
},
}
}
</script>
<style lang="less" scoped>
.task-wrapper {
padding: 10px 8px;
.header {
display: flex;
justify-content: space-between;
align-items: center;
margin: 5px 0 12px;
span {
font-size: 18px;
font-weight: bold;
}
.task-wrapper {
padding: 10px 8px;
.header {
display: flex;
justify-content: space-between;
align-items: center;
margin: 5px 0 12px;
span {
font-size: 18px;
font-weight: bold;
}
}
.group {
.group-tags {
:nth-child(n+2) {
margin-left: 5px;
}
.van-tag {
background-color: #f2f2f2;
color: black;
padding: 6px 10px;
}
.group {
.group-tags {
:nth-child(n + 2) {
margin-left: 5px;
}
}
.content {
padding: 15px;
background-color: #f2f2f2;
font-size: 16px;
line-height: 20px;
color: #999999;
// margin-bottom: 15px;
min-height: 30px;
position: relative;
.copy-wrapper {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background-color: rgba(0, 0, 0, 0.4);
display: flex;
align-items: center;
justify-content: space-around;
.van-tag {
background-color: #f2f2f2;
color: black;
padding: 6px 10px;
}
}
}
.image-list {
.van-image {
padding: 10px 10px 0 0;
}
.content {
padding: 15px;
background-color: #f2f2f2;
font-size: 16px;
line-height: 20px;
color: #999999;
// margin-bottom: 15px;
min-height: 30px;
position: relative;
.copy-wrapper {
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background-color: rgba(0, 0, 0, 0.4);
display: flex;
align-items: center;
justify-content: space-around;
}
}
.van-cell {
padding: 10px 6px;
.image-list {
.van-image {
padding: 10px 10px 0 0;
}
}
.send-button {
padding: 10px 5px 5px;
display: flex;
flex-direction: row-reverse;
.van-cell {
padding: 10px 6px;
}
.van-button {
padding: 0 12px;
margin-right: 12px;
border-radius: 4px;
font-size: 12px;
}
.send-button {
padding: 10px 5px 5px;
display: flex;
flex-direction: row-reverse;
.van-button {
padding: 0 12px;
margin-right: 12px;
border-radius: 4px;
font-size: 12px;
}
}
}
.bottom-line {
background-color: #f2f2f2;
height: 15px;
}
.bottom-line {
background-color: #f2f2f2;
height: 15px;
}
</style>
......@@ -16,10 +16,7 @@
{{ task.welcomeMsg }}
</div>
<div class="copy-wrapper" v-show="showCopy">
<van-button
:class="'copy-btn_' + task.taskId"
:data-clipboard-text="task.welcomeMsg"
>
<van-button :class="'copy-btn_' + task.taskId" :data-clipboard-text="task.welcomeMsg">
复制
</van-button>
</div>
......@@ -67,21 +64,33 @@ export default {
},
methods: {
send() {
let _this = this
this.$toast.loading({
message: '正在发送...',
duration: 0,
forbidClick: true
})
wx.invoke(
'sendChatMessage',
{
msgtype: 'news',
news: {
link: this.groupCodeUrl,
title: '客户群活码',
desc: '客户群活码',
title: this.task.taskName,
desc: this.task.welcomeMsg,
imgUrl: this.imgUrl
}
},
function(res) {
if (res.err_msg == 'sendChatMessage:ok') {
} else {
if (res.err_code == 1) {
// 用户取消发送
} else {
_this.$dialog({ message: 'sendChatMessage失败:' + JSON.stringify(res) })
}
}
_this.$toast.clear()
}
)
},
......@@ -105,26 +114,18 @@ export default {
return keywords
},
groupCodeUrl() {
let groupCodeInfo = this.task.groupCodeInfo
if (window.location.hash[0] === '#') {
return (
window.location.origin +
window.location.pathname +
'#/groupCode?id=' +
this.task.groupCodeInfo.id
window.location.origin + window.location.pathname + '#/groupCode?id=' + (groupCodeInfo && groupCodeInfo.id)
)
}
return (
window.location.origin +
window.location.pathname +
'groupCode?id=' +
this.task.groupCodeInfo.id
)
return window.location.origin + window.location.pathname + '#/groupCode?id=' + (groupCodeInfo && groupCodeInfo.id)
},
imgUrl() {
if (this.task.groupCodeInfo && this.task.groupCodeInfo.codeUrl)
return this.task.groupCodeInfo.codeUrl
return ''
let groupCodeInfo = this.task.groupCodeInfo
return groupCodeInfo && groupCodeInfo.codeUrl ? groupCodeInfo.codeUrl : ''
}
},
mounted() {
......
此差异已折叠。
......@@ -2,22 +2,11 @@
<div class="wrap" v-loading="loading">
<el-form :model="form" ref="form" :rules="rules" label-width="100px">
<el-form-item label="规则名称" prop="ruleName">
<el-input
v-model="form.ruleName"
maxlength="30"
show-word-limit
placeholder="请输入"
clearable
/>
<el-input v-model="form.ruleName" maxlength="30" show-word-limit placeholder="请输入" clearable />
</el-form-item>
<el-form-item label="执行群聊">
<el-tag
size="medium"
v-for="(group, index) in customerGroups"
:key="index"
>{{ group.groupName }}</el-tag
>
<el-tag size="medium" v-for="(group, index) in customerGroups" :key="index">{{ group.groupName }}</el-tag>
<el-button
type="primary"
plain
......@@ -70,23 +59,12 @@
class="mb8"
></el-input>
<div
v-for="text in textMaterialList"
:key="text.id"
class="text-wrapper"
>
<div
class="content overflow-ellipsis"
>
<div v-for="text in textMaterialList" :key="text.id" class="text-wrapper">
<div class="content overflow-ellipsis">
{{ text.content }}
</div>
<el-button
icon="el-icon-close"
class="remove-btn"
size="mini"
@click="removeTextMaterial(text)"
>
<el-button icon="el-icon-close" class="remove-btn" size="mini" @click="removeTextMaterial(text)">
</el-button>
</div>
</el-tab-pane>
......@@ -94,60 +72,25 @@
<el-tab-pane name="1">
<span slot="label"> <i class="el-icon-date"></i> 图片 </span>
<div
v-for="image in imageMaterialList"
:key="image.id"
class="image-wrapper"
>
<el-image
:src="image.materialUrl"
fit="fit"
>
</el-image>
<el-button
icon="el-icon-close"
class="remove-btn"
size="mini"
@click="removeImageMaterial(image)"
>
<div v-for="image in imageMaterialList" :key="image.id" class="image-wrapper">
<el-image :src="image.materialUrl" fit="fit"> </el-image>
<el-button icon="el-icon-close" class="remove-btn" size="mini" @click="removeImageMaterial(image)">
</el-button>
</div>
<div
v-for="url in form.picList"
:key="url"
class="image-wrapper"
>
<el-image
:src="url"
fit="fit"
>
</el-image>
<el-button
icon="el-icon-close"
class="remove-btn"
size="mini"
@click="removeImage(url)"
>
</el-button>
<div v-for="url in form.picList" :key="url" class="image-wrapper">
<el-image :src="url" fit="fit"> </el-image>
<el-button icon="el-icon-close" class="remove-btn" size="mini" @click="removeImage(url)"> </el-button>
</div>
<upload
:fileUrl.sync="uploadImageUrl"
class="image-uploader"
>
<upload :fileUrl.sync="uploadImageUrl" class="image-uploader">
<i class="el-icon-plus uploader-icon"></i>
</upload>
</el-tab-pane>
<el-button
type="primary"
class="mt20"
@click="dialogVisibleSelectMaterial = true"
>从素材库选择</el-button
>
<el-button type="primary" class="mt20" @click="dialogVisibleSelectMaterial = true">从素材库选择</el-button>
</el-tabs>
</div>
</el-form-item>
......@@ -162,14 +105,9 @@
<!-- 预览 -->
<div class="tip">欢迎语样式</div>
<PhoneDialog
:message="form.content || '请输入加群引导语'"
:imageList="imageList"
:messageList="messageList"
>
<PhoneDialog :message="form.content || '请输入加群引导语'" :imageList="imageList" :messageList="messageList">
<template #image="{ image }">
<el-image style="border-radius: 6px; width: 100px;" :src="image" fit="fit">
</el-image>
<el-image style="border-radius: 6px; width: 100px;" :src="image" fit="fit"> </el-image>
</template>
<template #text="{ text }">
{{ text }}
......@@ -218,11 +156,7 @@ export default {
components: { PhoneDialog, SelectMaterial, SelectCustomerGroup },
data() {
const checkContent = (rule, value, callback) => {
if (
!this.form.content &&
this.form.picList.length === 0 &&
this.form.materialIdList.length === 0
) {
if (!this.form.content && this.form.picList.length === 0 && this.form.materialIdList.length === 0) {
callback(new Error('该项为必填项'))
} else {
callback()
......@@ -250,26 +184,17 @@ export default {
pickerOptions: {
disabledDate(time) {
// return time.getTime() < Date.now()
return (
time.getTime() <
new Date(new Date(new Date().toLocaleDateString()).getTime())
)
return time.getTime() < new Date(new Date(new Date().toLocaleDateString()).getTime())
}
},
uploadImageUrl: '',
imageMaterialList: [],
textMaterialList: [],
rules: Object.freeze({
ruleName: [
{ required: true, message: '该项为必填项', trigger: 'blur' }
],
ruleName: [{ required: true, message: '该项为必填项', trigger: 'blur' }],
title: [{ required: true, message: '该项为必填项', trigger: 'blur' }],
chatIdList: [
{ required: true, message: '该项为必填项', trigger: 'change' }
],
startExeTime: [
{ required: true, message: '该项为必填项', trigger: 'change' }
],
chatIdList: [{ required: true, message: '该项为必填项', trigger: 'change' }],
startExeTime: [{ required: true, message: '该项为必填项', trigger: 'change' }],
content: [
// { required: true, message: '该项为必填项', trigger: 'change' },
{ validator: checkContent, trigger: 'change' }
......@@ -399,196 +324,16 @@ export default {
},
removeImageMaterial(image) {
this.imageMaterialList.splice(this.imageMaterialList.indexOf(image), 1)
this.form.materialIdList.splice(
this.form.materialIdList.indexOf(image.id),
1
)
this.form.materialIdList.splice(this.form.materialIdList.indexOf(image.id), 1)
},
removeTextMaterial(text) {
this.textMaterialList.splice(this.textMaterialList.indexOf(text), 1)
this.form.materialIdList.splice(
this.form.materialIdList.indexOf(text.id),
1
)
this.form.materialIdList.splice(this.form.materialIdList.indexOf(text.id), 1)
}
}
}
</script>
<template>
<div class="wrap" v-loading="loading">
<el-form :model="form" ref="form" :rules="rules" label-width="100px">
<el-form-item label="规则名称" prop="ruleName">
<el-input
v-model="form.ruleName"
maxlength="30"
show-word-limit
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="执行群聊" prop="chatIdList">
<el-tag
size="medium"
v-for="(group, index) in customerGroups"
:key="index"
>{{ group.groupName }}</el-tag
>
<el-button
type="primary"
plain
:class="customerGroups.length > 0 ? 'ml10' : ''"
icon="el-icon-plus"
size="mini"
@click="dialogVisibleSelectCustomerGroup = true"
>{{ customerGroups.length ? '修改' : '添加' }}</el-button
>
</el-form-item>
<el-form-item label="内容名称" prop="title">
<el-input
v-model="form.title"
maxlength="220"
show-word-limit
:autosize="{ minRows: 5, maxRows: 20 }"
placeholder="请输入"
clearable
></el-input>
</el-form-item>
<el-form-item label="执行时间" prop="startExeTime">
<el-date-picker
v-model="dateRange"
value-format="yyyy-MM-dd HH:mm:ss"
type="datetimerange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
align="right"
></el-date-picker>
</el-form-item>
<el-form-item label="消息内容" prop="content">
<div class="content-left">
<el-button class="create" @click="goRoute">新建素材</el-button>
<el-tabs v-model="activeName">
<el-tab-pane name="0">
<span slot="label"> <i class="el-icon-date"></i> 文本 </span>
<el-input
v-model="form.content"
type="textarea"
maxlength="220"
show-word-limit
:autosize="{ minRows: 10, maxRows: 50 }"
placeholder="请输入"
class="mb8"
></el-input>
<div
v-for="text in textMaterialList"
:key="text.id"
class="text-wrapper"
>
<div class="content overflow-ellipsis">
{{ text.content }}
</div>
<el-button
icon="el-icon-close"
class="remove-btn"
size="mini"
@click="removeTextMaterial(text)"
></el-button>
</div>
</el-tab-pane>
<el-tab-pane name="1">
<span slot="label"> <i class="el-icon-date"></i> 图片 </span>
<div
v-for="image in imageMaterialList"
:key="image.id"
class="image-wrapper"
>
<el-image :src="image.materialUrl" fit="fit"></el-image>
<el-button
icon="el-icon-close"
class="remove-btn"
size="mini"
@click="removeImageMaterial(image)"
></el-button>
</div>
<div v-for="url in form.picList" :key="url" class="image-wrapper">
<el-image :src="url" fit="fit"></el-image>
<el-button
icon="el-icon-close"
class="remove-btn"
size="mini"
@click="removeImage(url)"
></el-button>
</div>
<upload :fileUrl.sync="uploadImageUrl" class="image-uploader">
<i class="el-icon-plus uploader-icon"></i>
</upload>
</el-tab-pane>
<el-button
type="primary"
class="mt20"
@click="dialogVisibleSelectMaterial = true"
>从素材库选择</el-button
>
</el-tabs>
</div>
</el-form-item>
<el-form-item label=" ">
<el-button type="primary" @click="submit">保存</el-button>
<el-button @click="$router.back()">取消</el-button>
</el-form-item>
</el-form>
<div class="preview-wrap">
<!-- 预览 -->
<div class="tip">欢迎语样式</div>
<PhoneDialog
:message="form.content || '请输入加群引导语'"
:imageList="imageList"
:messageList="messageList"
>
<template #image="{ image }">
<el-image class="phone-dialog-image" :src="image" fit="fit">
</el-image>
</template>
<template #text="{ text }">
{{ text }}
</template>
</PhoneDialog>
</div>
<!-- 选择素材弹窗 -->
<SelectMaterial
v-if="activeName === '0'"
:key="0"
:visible.sync="dialogVisibleSelectMaterial"
type="0"
:showArr="[0]"
@success="submitSelectMaterial"
></SelectMaterial>
<SelectMaterial
v-else
:key="1"
:visible.sync="dialogVisibleSelectMaterial"
type="1"
:showArr="[1]"
@success="submitSelectMaterial"
></SelectMaterial>
<!-- 选择客户群聊 -->
<SelectCustomerGroup
:visible.sync="dialogVisibleSelectCustomerGroup"
@success="submitSelectCustomerGroup"
:multiSelect="true"
></SelectCustomerGroup>
</div>
</template>
<style lang="scss" scoped>
.wrap {
display: flex;
......
......@@ -114,9 +114,10 @@ export default {
},
// 获取显示用实际群聊
getDisplayGroups(row) {
const groups = row.groupList.map((g) => g.groupName)
return groups.join(' ')
if (row.groupList) {
const groups = row.groupList.map((g) => g.groupName)
return groups.join('')
}
}
}
}
......@@ -125,13 +126,7 @@ export default {
<template>
<div>
<div class="top-search">
<el-form
inline
label-position="right"
:model="query"
label-width="100px"
ref="queryForm"
>
<el-form inline label-position="right" :model="query" label-width="100px" ref="queryForm">
<el-form-item label="规则名称" prop="ruleName">
<el-input v-model="query.ruleName" placeholder="请输入"></el-input>
</el-form-item>
......@@ -151,16 +146,8 @@ export default {
></el-date-picker>
</el-form-item>
<el-form-item label=" ">
<el-button
v-hasPermi="['customerManage:customer:query']"
type="primary"
@click="getList(1)"
>查询</el-button
>
<el-button
v-hasPermi="['customerManage:customer:query']"
type="success"
@click="resetQuery()"
<el-button v-hasPermi="['customerManage:customer:query']" type="primary" @click="getList(1)">查询</el-button>
<el-button v-hasPermi="['customerManage:customer:query']" type="success" @click="resetQuery()"
>重置</el-button
>
</el-form-item>
......@@ -182,30 +169,12 @@ export default {
</div>
</div>
<el-table
v-loading="loading"
:data="list"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="50"
align="center"
></el-table-column>
<el-table-column
label="规则名称"
align="center"
prop="ruleName"
:show-overflow-tooltip="true"
></el-table-column>
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center"></el-table-column>
<el-table-column label="规则名称" align="center" prop="ruleName" :show-overflow-tooltip="true"></el-table-column>
<el-table-column label="执行群聊" align="center" width="120">
<template #default="{ row }">
<el-popover
placement="bottom"
width="200"
trigger="hover"
:content="getDisplayGroups(row)"
>
<el-popover placement="bottom" width="200" trigger="hover" :content="getDisplayGroups(row)">
<div slot="reference" class="table-desc overflow-ellipsis">
{{ getDisplayGroups(row) }}
</div>
......@@ -213,28 +182,12 @@ export default {
</template>
</el-table-column>
<el-table-column
label="创建人"
align="center"
prop="createBy"
></el-table-column>
<el-table-column label="创建人" align="center" prop="createBy"></el-table-column>
<el-table-column
label="创建人"
align="center"
prop="createBy"
></el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
></el-table-column>
<el-table-column label="创建人" align="center" prop="createBy"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime"></el-table-column>
<el-table-column
label="操作"
align="center"
class-name="small-padding fixed-width"
>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
v-hasPermi="['enterpriseWechat:view']"
......
<script>
import {
getList,
remove,
download,
downloadBatch
} from '@/api/communityOperating/newCustomer'
import { getList, remove, download, downloadBatch } from '@/api/communityOperating/newCustomer'
export default {
components: {},
......@@ -157,14 +152,7 @@ export default {
<template>
<div>
<el-form
ref="queryForm"
:inline="true"
:model="query"
label-width="100px"
class="top-search"
size="small"
>
<el-form ref="queryForm" :inline="true" :model="query" label-width="100px" class="top-search" size="small">
<el-form-item label="活码名称" prop="emplCodeName">
<el-input v-model="query.emplCodeName" placeholder="请输入"></el-input>
</el-form-item>
......@@ -184,18 +172,8 @@ export default {
></el-date-picker>
</el-form-item>
<el-form-item label=" ">
<el-button
v-hasPermi="['customerManage:customer:query']"
type="primary"
@click="getList(1)"
>查询</el-button
>
<el-button
v-hasPermi="['customerManage:customer:query']"
type="success"
@click="resetQuery()"
>重置</el-button
>
<el-button v-hasPermi="['customerManage:customer:query']" type="primary" @click="getList(1)">查询</el-button>
<el-button v-hasPermi="['customerManage:customer:query']" type="success" @click="resetQuery()">重置</el-button>
</el-form-item>
</el-form>
......@@ -204,50 +182,20 @@ export default {
<el-button type="primary" @click="goRoute()">新建自动拉群</el-button>
</div>
<div>
<el-button
type="primary"
:disabled="!ids.length"
@click="downloadBatch()"
>批量下载</el-button
>
<el-button
v-hasPermi="['customerManage:customer:export']"
:disabled="!ids.length"
type="cyan"
@click="remove()"
<el-button type="primary" :disabled="!ids.length" @click="downloadBatch()">批量下载</el-button>
<el-button v-hasPermi="['customerManage:customer:export']" :disabled="!ids.length" type="cyan" @click="remove()"
>批量删除</el-button
>
</div>
</div>
<el-table
v-loading="loading"
:data="list"
@selection-change="handleSelectionChange"
>
<el-table-column
type="selection"
width="50"
align="center"
></el-table-column>
<el-table-column
prop="codeName"
label="活码名称"
align="center"
></el-table-column>
<el-table-column
prop="emplList"
label="使用员工"
align="center"
width="130"
>
<el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50" align="center"></el-table-column>
<el-table-column prop="codeName" label="活码名称" align="center"></el-table-column>
<el-table-column prop="emplList" label="使用员工" align="center" width="130">
<template #default="{ row }">
<el-popover placement="bottom" trigger="hover">
<el-image
slot="reference"
:src="row.emplCodeUrl"
class="code-image--small"
></el-image>
<el-image slot="reference" :src="row.emplCodeUrl" class="code-image--small"></el-image>
<el-image :src="row.emplCodeUrl" class="code-image"></el-image>
</el-popover>
</template>
......@@ -256,93 +204,35 @@ export default {
</el-image>
</template> -->
</el-table-column>
<el-table-column
prop="emplList"
label="使用员工"
align="center"
:show-overflow-tooltip="true"
>
<el-table-column prop="emplList" label="使用员工" align="center" :show-overflow-tooltip="true">
<template slot-scope="{ row }">
<el-tag
size="medium"
type="info"
v-for="(item, index) in row.emplList"
:key="index"
>{{ item.businessName }}</el-tag
>
<el-tag size="medium" type="info" v-for="(item, index) in row.emplList" :key="index">{{
item.businessName
}}</el-tag>
</template>
</el-table-column>
<el-table-column
label="客户标签"
align="center"
width="160"
:show-overflow-tooltip="true"
>
<el-table-column label="客户标签" align="center" width="160" :show-overflow-tooltip="true">
<template slot-scope="{ row }">
<el-tag
size="medium"
type="info"
v-for="(item, index) in row.tagList"
:key="index"
>{{ item.tagName }}</el-tag
>
<el-tag size="medium" type="info" v-for="(item, index) in row.tagList" :key="index">{{
item.tagName
}}</el-tag>
</template>
</el-table-column>
<el-table-column
label="实际群聊"
align="center"
:show-overflow-tooltip="true"
>
<el-table-column label="实际群聊" align="center" :show-overflow-tooltip="true">
<template slot-scope="{ row }">
<el-tag
size="medium"
v-for="(item, index) in row.groupList"
:key="index"
>{{ item.groupName }}</el-tag
>
<el-tag size="medium" v-for="(item, index) in (row.actualGroupName || '').split(',')" :key="index">{{
item
}}</el-tag>
</template>
</el-table-column>
<el-table-column
label="添加好友数"
align="center"
prop="cusNumber"
></el-table-column>
<el-table-column
label="创建人"
align="center"
prop="createBy"
></el-table-column>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
width="160"
></el-table-column>
<el-table-column
label="操作"
align="center"
width="180"
class-name="small-padding fixed-width"
>
<el-table-column label="添加好友数" align="center" prop="cusNumber"></el-table-column>
<el-table-column label="创建人" align="center" prop="createBy"></el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" width="160"></el-table-column>
<el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
<template slot-scope="{ row }">
<el-button
v-hasPermi="['enterpriseWechat:edit']"
type="text"
@click="goRoute(row.id)"
>编辑</el-button
>
<el-button
v-hasPermi="['enterpriseWechat:view']"
type="text"
@click="download(row)"
>下载</el-button
>
<el-button
v-hasPermi="['enterpriseWechat:edit']"
type="text"
@click="remove(row.id)"
>删除</el-button
>
<el-button v-hasPermi="['enterpriseWechat:edit']" type="text" @click="goRoute(row.id)">编辑</el-button>
<el-button v-hasPermi="['enterpriseWechat:view']" type="text" @click="download(row)">下载</el-button>
<el-button v-hasPermi="['enterpriseWechat:edit']" type="text" @click="remove(row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
......
......@@ -205,7 +205,6 @@ export default {
}
},
handleNodeClick(data, add) {
debugger
if (!data.userId) {
} else {
this.talkName = data.name
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册