|
|
@@ -85,6 +85,12 @@
|
|
|
<el-tag v-if="scope.row.addType == 1">意向</el-tag>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
+ <el-table-column label="添加类型" align="center" prop="isWeCom">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tag v-if="scope.row.isWeCom == 1">个微</el-tag>
|
|
|
+ <el-tag v-if="scope.row.isWeCom == 2">企微</el-tag>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="任务状态" align="center">
|
|
|
<template slot-scope="scope">
|
|
|
<el-tag v-if="scope.row.taskStatus == 0">未启动</el-tag>
|
|
|
@@ -117,7 +123,7 @@
|
|
|
<el-button
|
|
|
size="mini"
|
|
|
type="text"
|
|
|
- @click="wxOpen(scope.row.id)"
|
|
|
+ @click="wxOpen(scope.row.id,scope.row.isWeCom)"
|
|
|
v-hasPermi="['system:companyVoiceRobotic:list']"
|
|
|
>加微管理</el-button>
|
|
|
<el-button
|
|
|
@@ -249,8 +255,21 @@
|
|
|
<div class="section-title">
|
|
|
<i class="el-icon-user-solid"></i>
|
|
|
<span>分配账号</span>
|
|
|
- <el-button type="primary" size="mini" icon="el-icon-plus" @click="addQwUser" plain>添加</el-button>
|
|
|
</div>
|
|
|
+ <el-form-item label="添加类型" prop="isWeCom">
|
|
|
+ <el-radio-group v-model="form.isWeCom">
|
|
|
+ <el-radio :label="1" border>
|
|
|
+ <i class="el-icon-pie-chart"></i>
|
|
|
+ 个微
|
|
|
+ </el-radio>
|
|
|
+ <el-radio :label="2" border>
|
|
|
+ <i class="el-icon-star-on"></i>
|
|
|
+ 企微
|
|
|
+ </el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-button type="primary" size="mini" icon="el-icon-plus" @click="addQwUser" plain>添加</el-button>
|
|
|
+
|
|
|
<div class="account-list" v-if="form.qwUser && form.qwUser.length">
|
|
|
<div v-for="(item, index) in form.qwUser" :key="index" class="account-item">
|
|
|
<el-row :gutter="12">
|
|
|
@@ -261,7 +280,7 @@
|
|
|
</el-col>
|
|
|
<el-col :span="form.addType == 1 ? 7 : 10">
|
|
|
<el-button icon="el-icon-user" @click="openQwUserSelect(index)" size="small" style="width: 100%;">
|
|
|
- 选择企微
|
|
|
+ 选择账号
|
|
|
<el-tag v-if="item.companyUserId && item.companyUserId.length" type="success" size="mini" style="margin-left: 6px;">
|
|
|
{{ item.companyUserId.length }}
|
|
|
</el-tag>
|
|
|
@@ -316,7 +335,11 @@
|
|
|
</div>
|
|
|
</el-drawer>
|
|
|
<customer-select @success="selectFun" ref="customer"/>
|
|
|
- <qw-user-select @success="selectQwUserFun" ref="qwUserSelect"/>
|
|
|
+ <component
|
|
|
+ :is="getCurrentComponent()"
|
|
|
+ @success="selectQwUserFun"
|
|
|
+ ref="dynamicQwUserSelect"
|
|
|
+ />
|
|
|
|
|
|
<el-drawer title="呼叫客户列表" size="60%" :visible.sync="callees.show" width="800px" append-to-body>
|
|
|
<el-table v-loading="callees.loading" :data="callees.list">
|
|
|
@@ -347,7 +370,7 @@
|
|
|
@pagination="getCalleesList"
|
|
|
/>
|
|
|
</el-drawer>
|
|
|
- <el-drawer title="加微详情" size="60%" :visible.sync="wx.show" append-to-body>
|
|
|
+ <el-drawer title="加个微详情" size="60%" :visible.sync="wx.show" append-to-body>
|
|
|
<el-table v-loading="wx.loading" :data="wx.list">
|
|
|
<el-table-column label="意向等级" align="center" prop="intention"/>
|
|
|
<el-table-column label="微信昵称" align="center" prop="wxNickName"/>
|
|
|
@@ -367,6 +390,25 @@
|
|
|
@pagination="getWxList"
|
|
|
/>
|
|
|
</el-drawer>
|
|
|
+ <el-drawer title="加企微详情" size="60%" :visible.sync="qw.show" append-to-body>
|
|
|
+ <el-table v-loading="qw.loading" :data="qw.list">
|
|
|
+ <el-table-column label="意向等级" align="center" prop="intention"/>
|
|
|
+ <el-table-column label="企微昵称" align="center" prop="wxNickName"/>
|
|
|
+ <el-table-column label="企微id" align="center" prop="wxNo"/>
|
|
|
+ <el-table-column label="手机号" align="center" prop="phone"/>
|
|
|
+ <el-table-column label="话术" align="center" prop="dialogName"/>
|
|
|
+ <el-table-column label="分配数量" align="center" prop="num"/>
|
|
|
+ <el-table-column label="添加数量" align="center" prop="addNum"/>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <pagination
|
|
|
+ v-show="qw.total>0"
|
|
|
+ :total="qw.total"
|
|
|
+ :page.sync="qw.queryParams.pageNum"
|
|
|
+ :limit.sync="qw.queryParams.pageSize"
|
|
|
+ @pagination="getWxListQw"
|
|
|
+ />
|
|
|
+ </el-drawer>
|
|
|
|
|
|
<!-- 执行日志对话框 -->
|
|
|
<el-drawer
|
|
|
@@ -538,13 +580,15 @@ import draggable from 'vuedraggable'
|
|
|
import { listAll } from '@/api/company/wxDialog';
|
|
|
import customerSelect from '@/views/crm/components/CustomerSelect.vue';
|
|
|
import qwUserSelect from '@/views/components/QwUserSelect.vue';
|
|
|
+import qwUserSelectTwo from '@/views/components/QwUserSelectTwo.vue';
|
|
|
import customerDetails from "@/views/crm/components/customerDetails.vue";
|
|
|
import {getDicts} from "@/api/system/dict/data";
|
|
|
import { optionList } from '@/api/company/companyWorkflow'
|
|
|
+import {wxListQw} from "../../../api/company/companyVoiceRobotic";
|
|
|
|
|
|
export default {
|
|
|
name: "Robotic",
|
|
|
- components: { draggable, customerDetails, customerSelect, qwUserSelect},
|
|
|
+ components: { draggable, customerDetails, customerSelect, qwUserSelect,qwUserSelectTwo},
|
|
|
data() {
|
|
|
return {
|
|
|
// 遮罩层
|
|
|
@@ -603,7 +647,7 @@ export default {
|
|
|
// 表单参数
|
|
|
form: {},
|
|
|
taskFlowList: [{key: "cellPhone", value: "外呼"}, {key: "sendMsg", value: "发短信"}, {key: "addWx", value: "加微"}],
|
|
|
- taskFlowMap: {cellPhone: "外呼", sendMsg: "发短信", addWx: "加微"},
|
|
|
+ taskFlowMap: {cellPhone: "外呼", sendMsg: "发短信", addWx: "加微", qwAddWx: "企微加个微"},
|
|
|
statusObj: {},
|
|
|
levelList: {},
|
|
|
robotList: [],
|
|
|
@@ -639,6 +683,17 @@ export default {
|
|
|
pageSize: 10,
|
|
|
},
|
|
|
},
|
|
|
+ qw: {
|
|
|
+ show: false,
|
|
|
+ list: [],
|
|
|
+ loading: false,
|
|
|
+ total: 0,
|
|
|
+ queryParams: {
|
|
|
+ id: null,
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ },
|
|
|
+ },
|
|
|
execLogs: {
|
|
|
show: false,
|
|
|
loading: false,
|
|
|
@@ -697,6 +752,32 @@ export default {
|
|
|
console.log(res);
|
|
|
});
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ // 监听添加类型的切换,清空选择器数据
|
|
|
+ 'form.isWeCom': {
|
|
|
+ handler(newVal, oldVal) {
|
|
|
+ // 只有当值真正发生变化时才执行清空操作
|
|
|
+ if (newVal !== oldVal && oldVal !== undefined) {
|
|
|
+ // 清空 qwUser 数组中的选择数据
|
|
|
+ if (this.form.qwUser && this.form.qwUser.length > 0) {
|
|
|
+ this.form.qwUser.forEach(item => {
|
|
|
+ item.companyUserId = []; // 清空已选择的账号ID
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清空选择器列表数据
|
|
|
+ this.selectQwUserList = [];
|
|
|
+
|
|
|
+ // 重置当前选择索引
|
|
|
+ this.thisQwUserIndex = 0;
|
|
|
+
|
|
|
+ // 强制更新视图
|
|
|
+ this.$forceUpdate();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ immediate: false
|
|
|
+ }
|
|
|
+ },
|
|
|
methods: {
|
|
|
getSmsTempDropList(){
|
|
|
getSmsTempList().then(res=>{
|
|
|
@@ -765,7 +846,8 @@ export default {
|
|
|
userTableList: [],
|
|
|
companyAiWorkflowId: null,
|
|
|
runtimeRangeStart:null,
|
|
|
- runtimeRangeEnd:null
|
|
|
+ runtimeRangeEnd:null,
|
|
|
+ isWeCom: 1,
|
|
|
};
|
|
|
this.resetForm("form");
|
|
|
},
|
|
|
@@ -808,13 +890,13 @@ export default {
|
|
|
if (this.form.weekDay && this.form.weekDay.length > 0) {
|
|
|
this.form.weekDay1 = this.form.weekDay.join(",")
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 验证加微方案
|
|
|
if(!this.form.qwUser || this.form.qwUser.length == 0){
|
|
|
this.msgError("请添加分配账号");
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// 验证每个账号是否选择了企微和话术
|
|
|
for(let i = 0; i < this.form.qwUser.length; i++) {
|
|
|
const account = this.form.qwUser[i];
|
|
|
@@ -827,7 +909,7 @@ export default {
|
|
|
// return;
|
|
|
// }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
let list = [];
|
|
|
this.form.qwUser.forEach(l => {
|
|
|
list = list.concat(l.companyUserId.map(e => {return {intention: l.intention, companyUserId: e,wxDialogId: l.wxDialogId,smsTempId:l.smsTempId}}))
|
|
|
@@ -898,12 +980,12 @@ export default {
|
|
|
openSelect() {
|
|
|
this.$refs.customer.setRows(this.form.userTableList || []);
|
|
|
},
|
|
|
- openQwUserSelect(index) {
|
|
|
- this.thisQwUserIndex = index;
|
|
|
- this.$nextTick(() => {
|
|
|
- this.$refs.qwUserSelect.setRows(this.selectQwUserList[index]);
|
|
|
- })
|
|
|
- },
|
|
|
+ // openQwUserSelect(index) {
|
|
|
+ // this.thisQwUserIndex = index;
|
|
|
+ // this.$nextTick(() => {
|
|
|
+ // this.$refs.qwUserSelect.setRows(this.selectQwUserList[index]);
|
|
|
+ // })
|
|
|
+ // },
|
|
|
selectFun(e) {
|
|
|
this.form.userIds = e.ids;
|
|
|
this.form.userNames = e.names;
|
|
|
@@ -928,10 +1010,25 @@ export default {
|
|
|
this.callees.loading = false;
|
|
|
});
|
|
|
},
|
|
|
- wxOpen(id){
|
|
|
- this.wx.show = true;
|
|
|
- this.wx.queryParams.id = id;
|
|
|
- this.getWxList();
|
|
|
+ wxOpen(id, isWeCom) {
|
|
|
+ console.log("isWeCom="+isWeCom)
|
|
|
+ if (isWeCom === 2) {
|
|
|
+ this.qw.show = true;
|
|
|
+ this.qw.queryParams.id = id;
|
|
|
+ this.getWxListQw();
|
|
|
+ } else {
|
|
|
+ this.wx.show = true;
|
|
|
+ this.wx.queryParams.id = id;
|
|
|
+ this.getWxList();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getWxListQw() {
|
|
|
+ this.qw.loading = true;
|
|
|
+ wxListQw(this.qw.queryParams).then(response => {
|
|
|
+ this.qw.list = response.rows;
|
|
|
+ this.qw.total = response.total;
|
|
|
+ this.qw.loading = false;
|
|
|
+ });
|
|
|
},
|
|
|
getWxList() {
|
|
|
this.wx.loading = true;
|
|
|
@@ -1058,6 +1155,21 @@ export default {
|
|
|
const remainSeconds = seconds % 60;
|
|
|
return minutes + 'm' + remainSeconds + 's';
|
|
|
},
|
|
|
+ // 获取当前应该使用的组件
|
|
|
+ getCurrentComponent() {
|
|
|
+ return this.form.isWeCom === 2 ? 'qwUserSelectTwo' : 'qwUserSelect';
|
|
|
+ },
|
|
|
+
|
|
|
+ openQwUserSelect(index) {
|
|
|
+ this.thisQwUserIndex = index;
|
|
|
+ this.$nextTick(() => {
|
|
|
+ // 根据 isWeCom 的值选择对应的组件引用
|
|
|
+ const componentRef = this.form.isWeCom === 2 ? this.$refs.dynamicQwUserSelect : this.$refs.dynamicQwUserSelect;
|
|
|
+ if (componentRef && typeof componentRef.setRows === 'function') {
|
|
|
+ componentRef.setRows(this.selectQwUserList[index]);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
// 获取头像颜色
|
|
|
getAvatarColor(index) {
|
|
|
const colors = ['#1890ff', '#52c41a', '#faad14', '#722ed1', '#eb2f96'];
|