Commit b1536ead by 陈羽

update: 销售线索迭代2

parent cd2f9f06
...@@ -16,12 +16,12 @@ ...@@ -16,12 +16,12 @@
<template> <template>
<div v-show="customDialog"> <div v-show="customDialog">
<el-dialog class="app-dialog" title="批量删除" :visible.sync="customDialog" width="600px" :before-close="handleClose"> <el-dialog class="app-dialog" title="批量删除" :visible.sync="customDialog" width="600px" :before-close="handleClose">
<div v-if="showTip"> <div v-if="showTip" style="margin-bottom:20px;">
<div role="alert" class="el-alert el-alert--info flex flex-align-start"> <div role="alert" class="el-alert el-alert--info flex flex-align-start">
<i class="el-alert__icon el-icon-info"></i> <i class="el-alert__icon el-icon-info"></i>
<div class="el-alert__content"> <div class="el-alert__content">
<span class="el-alert__title"> <span class="el-alert__title">
删除任务后,会影响任务统计如已完成,完成率,待完成等,请知悉 删除任务后,会影响任务统计如已完成,完成率,待完成等以及销售线索收益,请知悉
</span> </span>
</div> </div>
</div> </div>
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<span style="color:#2f54eb;font-size:10px;padding-left:10px;" v-if="showTip">删除任务后,会影响任务统计如已完成,完成率,待完成等,请知悉</span> <span style="color:#2f54eb;font-size:10px;padding-left:10px;" v-if="showTip">删除任务后,会影响任务统计如已完成,完成率,待完成等,请知悉</span>
</div> --> </div> -->
<el-form ref="form" :model="formData" :rules="rules" label-width="100px" @submit.native.prevent> <el-form ref="form" :model="formData" :rules="rules" label-width="100px" @submit.native.prevent>
<el-form-item v-if="showTab" label=""> <el-form-item v-if="showTab" label="" label-width="0">
<el-radio v-model="formData.delOptFlag" label="0">仅删除逾期任务</el-radio> <el-radio v-model="formData.delOptFlag" label="0">仅删除逾期任务</el-radio>
<el-radio v-model="formData.delOptFlag" label="1">删除所有待完成任务</el-radio> <el-radio v-model="formData.delOptFlag" label="1">删除所有待完成任务</el-radio>
</el-form-item> </el-form-item>
......
<!--
* @Descripttion: 销售线索-门店任务-任务详情-完成详细信息
* @version: 1.0.0
* @Author: 阿羽
* @Date: 2021-04-13 17:57:01
* @LastEditors: 阿羽
* @LastEditTime: 2021-04-13 17:57:01
-->
<!--
<salesleads-taskinfo :item="item"></salesleads-taskinfo>
import salesleadsTaskinfo from '@/components/review/salesleads-task-info.vue';
-->
<template>
<el-dialog title="完成详情" :visible.sync="dialogVisible" width="600px" @close="close">
<div class="">
<el-form :model="form" :rules="rules" ref="form" label-width="120px" class="demo-form">
<el-form-item label="完成时间" prop="overdueTime"> {{ form.finishTime | formatTimeStamp }}</el-form-item>
<el-form-item label="备注" prop="finishRemark"> {{ form.reason || '' }} </el-form-item>
<el-form-item label="图片" prop="imgUrl">
<template v-for="item in form.taskUrls">
<el-popover placement="right-start" :open-delay="200" width="300" trigger="hover" :key="item">
<img style="display:block;width:100%" :src="item" alt="" />
<el-image slot="reference" style="width: 40px; height: 40px" :src="item" fit="cover"></el-image>
</el-popover>
</template>
</el-form-item>
</el-form>
</div>
</el-dialog>
</template>
<script>
export default {
props: {
taskData: {
type: Object,
default() {
return {};
}
}
},
components: {},
data() {
return {
dialogVisible: true,
form: {
finishTime: null,
reason: '',
taskUrls: []
}
};
},
methods: {
close() {
this.$emit('close');
}
},
watch: {
taskData(newData) {
const that = this;
if (Object.keys(newData).length) {
that.$nextTick(() => {
that.form = JSON.parse(JSON.stringify(newData));
});
}
}
},
mounted() {
const that = this;
if (Object.keys(that.taskData).length) {
that.$nextTick(() => {
that.form = JSON.parse(JSON.stringify(that.taskData));
});
}
}
};
</script>
<style lang="scss" scoped>
>>> .el-dialog__header {
padding: 19px 28px;
}
>>> .el-dialog__body {
padding-top: 10px;
}
>>> .el-form-item {
margin-bottom: 0;
.el-form-item__label {
line-height: 30px;
}
.el-form-item__content {
font-size: 14px;
font-weight: 400;
color: #303133;
line-height: 30px;
}
.el-popover__reference {
margin-top: 10px;
margin-right: 10px;
border-radius: 4px;
}
}
</style>
...@@ -30,9 +30,9 @@ ...@@ -30,9 +30,9 @@
{{ scope.row.enterpriseName || '--' }} {{ scope.row.enterpriseName || '--' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="关联门店" show-overflow-tooltip> <el-table-column prop="" label="关联门店">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.storeName || '--' }} <p>{{ scope.row.storeName || '--' }}<el-tag type="danger" v-if="scope.row.mainStoreFlag">主门店</el-tag></p>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="关联时间" show-overflow-tooltip> <el-table-column prop="" label="关联时间" show-overflow-tooltip>
......
...@@ -12,24 +12,24 @@ ...@@ -12,24 +12,24 @@
--> -->
<template> <template>
<el-dialog title="完成详情" :visible.sync="dialogVisible" width="600px" @close="close"> <el-dialog title="完成详情" :visible.sync="dialogVisible" width="600px" @close="close">
<div class=""> <div>
<el-form :model="form" :rules="rules" ref="form" label-width="120px" class="demo-form"> <el-tabs v-model="activeName" @tab-click="handleTabClick">
<el-form-item label="完成时间" prop="overdueTime"> {{ form.finishTime | formatTimeStamp }}</el-form-item> <el-tab-pane :label="`${tab.label}(${countList[tab.type]})`" :name="tab.name" v-for="tab in tabsList" :key="tab.name"></el-tab-pane>
<el-form-item label="完成方式" prop="touchTypes"> {{ form.touchFinishTypeName }}</el-form-item> </el-tabs>
<el-form-item label="备注" prop="finishRemark"> {{ form.finishRemark || '' }} </el-form-item> <el-table :data="tableData" style="width: 100%" height="200" v-loading="loading">
<el-form-item label="图片" prop="imgUrl"> <el-table-column prop="memberName" label="会员姓名" show-overflow-tooltip> </el-table-column>
<template v-for="item in form.remarkImgUrl"> <el-table-column prop="sendStatus" label="发送状态" width="176">
<el-popover placement="right-start" :open-delay="200" width="300" trigger="hover" :key="item"> <template slot-scope="scope"><i :class="['dot', statusClassName[scope.row.sendStatus]]"></i>{{ statusLabel[scope.row.sendStatus] }}</template>
<img style="display:block;width:100%" :src="item" alt="" /> </el-table-column>
<el-image slot="reference" style="width: 40px; height: 40px" :src="item" fit="cover"></el-image> <el-table-column prop="failReasonDescription" label="原因" show-overflow-tooltip> </el-table-column>
</el-popover> </el-table>
</template> <el-pagination background layout="prev, pager, next" :total="total" style="text-align:right;" @current-change="handlePageChange"> </el-pagination>
</el-form-item>
</el-form>
</div> </div>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { getRequest } from '@/api/api';
import errMsg from '@/common/js/error';
export default { export default {
props: { props: {
item: { item: {
...@@ -42,18 +42,108 @@ export default { ...@@ -42,18 +42,108 @@ export default {
components: {}, components: {},
data() { data() {
return { return {
loading: false,
dialogVisible: true, dialogVisible: true,
form: { activeName: '0',
finishTime: null, pageParams: {
finishRemark: '', pageNum: 1,
touchFinishTypeName: '', pageSize: 5,
remarkImgUrl: [] enterpriseId: '',
taskId: ''
},
total: 0,
tabsList: [
{
label: '全部',
name: '0',
params: null,
type: 'totalCount'
},
{
label: '待发送',
name: '1',
params: 0,
type: 'waitSendCount'
},
{
label: '已发送',
name: '2',
params: 1,
type: 'successCount'
},
{
label: '发送失败',
name: '3',
params: 2,
type: 'failCount'
} }
],
countList: {
totalCount: 0,
waitSendCount: 0,
successCount: 0,
failCount: 0
},
tableData: [],
// 0未发送 1已发送 2发送失败
statusClassName: ['bg-C0C4CC', 'bg-33AF4A', 'bg-F5222D'],
statusLabel: ['未发送', '已发送', '发送失败']
}; };
}, },
methods: { methods: {
close() { close() {
this.$emit('close'); this.$emit('close');
},
handleTabClick(tab, event) {
this.pageParams.pageNum = 1;
this.getTableList();
},
handlePageChange(pageNum) {
this.pageParams.pageNum = pageNum;
this.getTableList();
},
getNum() {
const that = this;
const para = { ...that.pageParams };
getRequest('/haoban-task-manage-web/market/clue/web/member-send-count', para)
.then(res => {
let resData = res.data;
if (resData.errorCode == 1 && resData.result) {
this.countList = Object.assign(this.countList, resData.result);
} else {
errMsg.errorMsg(resData);
}
})
.catch(function(error) {
that.$message.error({
duration: 1000,
message: error.message
});
});
},
getTableList() {
const that = this;
that.loading = true;
const para = Object.assign({}, that.pageParams, { sendStatus: that.tabsList[this.activeName].params });
getRequest('/haoban-task-manage-web/market/clue/web/task-member-list', para)
.then(res => {
let resData = res.data;
that.tableData = [];
if (resData.errorCode == 1 && resData.result) {
that.tableData = Array.isArray(resData.result.list) ? resData.result.list : [];
that.total = resData.result.pageInfo.total || 0;
} else {
errMsg.errorMsg(resData);
}
that.loading = false;
})
.catch(function(error) {
that.loading = false;
that.$message.error({
duration: 1000,
message: error.message
});
});
} }
}, },
watch: { watch: {
...@@ -61,7 +151,9 @@ export default { ...@@ -61,7 +151,9 @@ export default {
const that = this; const that = this;
if (Object.keys(newData).length) { if (Object.keys(newData).length) {
that.$nextTick(() => { that.$nextTick(() => {
that.form = JSON.parse(JSON.stringify(newData)); that.pageParams = Object.assign({}, that.pageParams, JSON.parse(JSON.stringify(newData)));
that.getNum();
that.getTableList();
}); });
} }
} }
...@@ -70,34 +162,32 @@ export default { ...@@ -70,34 +162,32 @@ export default {
const that = this; const that = this;
if (Object.keys(that.item).length) { if (Object.keys(that.item).length) {
that.$nextTick(() => { that.$nextTick(() => {
that.form = JSON.parse(JSON.stringify(that.item)); that.pageParams = Object.assign({}, that.pageParams, JSON.parse(JSON.stringify(that.item)));
that.getNum();
that.getTableList();
}); });
} }
} }
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.bg-C0C4CC {
background: #c0c4cc;
}
.bg-33AF4A {
background: #33af4a;
}
.bg-F5222D {
background: #f5222d;
}
>>> .el-dialog__header { >>> .el-dialog__header {
padding: 19px 28px; padding: 19px 28px;
} }
>>> .el-dialog__body { >>> .el-dialog__body {
padding-top: 10px; padding-top: 10px;
} }
>>> .el-form-item { >>> .el-table__empty-block {
margin-bottom: 0; min-height: 150px;
.el-form-item__label {
line-height: 30px;
}
.el-form-item__content {
font-size: 14px;
font-weight: 400;
color: #303133;
line-height: 30px;
}
.el-popover__reference {
margin-top: 10px;
margin-right: 10px;
border-radius: 4px;
}
} }
</style> </style>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="link" label="页面路径" show-overflow-tooltip></el-table-column> <el-table-column prop="link" label="页面路径" show-overflow-tooltip></el-table-column>
<el-table-column prop="" label="关联小程序" show-overflow-tooltip> <el-table-column prop="" label="关联小程序" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.link }}</template> <template slot-scope="scope">{{ scope.row.materialDesc }}</template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="编辑人" show-overflow-tooltip> <el-table-column prop="" label="编辑人" show-overflow-tooltip>
<template slot-scope="scope">{{ scope.row.staffName }}</template> <template slot-scope="scope">{{ scope.row.staffName }}</template>
......
...@@ -128,7 +128,8 @@ export default { ...@@ -128,7 +128,8 @@ export default {
}, 300), }, 300),
postSave() { postSave() {
const that = this; const that = this;
let data = { let data = {};
data = {
materialIds: that.editRow.materialId, materialIds: that.editRow.materialId,
toWxEnterpriseIds: that.form.checkedList.join(',') toWxEnterpriseIds: that.form.checkedList.join(',')
}; };
......
...@@ -18,8 +18,8 @@ ...@@ -18,8 +18,8 @@
1.【话务任务】预计将于5月下旬下线,功能将由【销售线索】替代;<br /> 1.【话务任务】预计将于5月下旬下线,功能将由【销售线索】替代;<br />
2.【话务任务】下线后,【GIC后台-智能营销】中的“话务”事件也将下线,后续如需针对门店终端下发任务,请通过【GIC后台-智能营销】中的“企微任务”事件下发;<br /> 2.【话务任务】下线后,【GIC后台-智能营销】中的“话务”事件也将下线,后续如需针对门店终端下发任务,请通过【GIC后台-智能营销】中的“企微任务”事件下发;<br />
3.【话务任务】下线后,该应用中原本的“会话任务”也会下线,“不良评价回访”任务将转移至其他应用,请知悉<br /> --> 3.【话务任务】下线后,该应用中原本的“会话任务”也会下线,“不良评价回访”任务将转移至其他应用,请知悉<br /> -->
1.预计2021年1月功能更新后将仅保留近一年数据,历史数据将清除。如需保存超过一年历史数据,请于1月前导出保存<br /> 1.仅统计近一年数据<br />
2.因任务数据量过大,门店视图统计数据改为每日刷新一次;<br /> 2.话务任务统计数据每日刷新一次;<br />
3.需要注意:话务完成详情是实时展示;完成数据统计是每日刷新,可能出现任务详情显示已完成,但是已完成数量并没有+1。这属于统计的正常情况。 3.需要注意:话务完成详情是实时展示;完成数据统计是每日刷新,可能出现任务详情显示已完成,但是已完成数量并没有+1。这属于统计的正常情况。
</span> </span>
</div> </div>
......
...@@ -10,18 +10,21 @@ ...@@ -10,18 +10,21 @@
<div class="app-detail-wrap"> <div class="app-detail-wrap">
<div class="task-set-content boder-box"> <div class="task-set-content boder-box">
<div class="task-set-cell"> <div class="task-set-cell">
<div class="set-line-item"> <div class="set-line-item flex">
<el-tooltip class="item" effect="dark" content="代理商户默认关闭双向呼叫功能,如需开通请联系达摩运营或实施进行开通" placement="top-start" :open-delay="200"> <el-tooltip class="item" effect="dark" content="代理商户默认关闭双向呼叫功能,如需开通请联系达摩运营或实施进行开通" placement="top-start" :open-delay="200">
<span class="set-line-item_title text-right"> <i style="cursor: pointer;font-style: normal;padding-bottom: 2px; border-bottom: 1px dashed rgb(47, 84, 235);" class="font-14 color-606266">话务任务拨打</i></span> <span class="set-line-item_title text-right"> <i style="cursor: pointer;font-style: normal;padding-bottom: 2px; border-bottom: 1px dashed rgb(47, 84, 235);" class="font-14 color-606266">话务任务拨打</i></span>
</el-tooltip> </el-tooltip>
<el-select v-model="setObj.taskCallType" placeholder="请选择" class="w-240" @change="changeSelect"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select><span v-if="setObj.taskCallType == 2" class="font-14 color-909399 p-l-10 set-long-tip">第三方双向呼叫及透传(透传功能暂无法使用,外呼显示号码为固定电话),可监控通话状态。呼叫结算及通话记录存储于GIC计费中心。</span> <el-checkbox-group v-model="setObj.taskCallTypes" @change="taskCallTypeChange">
<span v-if="setObj.taskCallType == 1" class="font-14 color-909399 p-l-10">导购手机呼叫,无法监控通话状态。呼叫结算费用由导购手机自费。</span> <el-checkbox :label="item.value" v-for="item in options" :key="item.value">
<el-tooltip class="item" effect="dark" placement="top-start" :open-delay="200">
<template slot="content">
<p v-for="tip in item.tooltips" :key="tip">{{ tip }}</p>
</template>
<i class="tooltips">{{ item.label }}</i>
</el-tooltip>
</el-checkbox>
</el-checkbox-group>
</div> </div>
<!-- <div class="set-line-item">
<span class="set-line-item_title font-14 color-606266 text-right">话务任务下发:</span>
<el-input-number controls-position="right" class="w-100" v-model="setObj.overDayJudge" placeholder="请输入内容" :step="1" :step-strictly="true" :min="0" :max="99999999"></el-input-number><span class="font-14 color-606266 p-l-10"></span>
<span class="font-14 color-909399 p-l-15">注:0天即为当天下发,当天完成,1天即为当天下发,次日24:00之前完成</span>
</div> -->
<div class="set-line-item font-0"> <div class="set-line-item font-0">
<span class="set-line-item_title font-14 color-606266 text-right">话务任务下发:</span> <span class="set-line-item_title font-14 color-606266 text-right">话务任务下发:</span>
<div class="inline-block vertical-top"> <div class="inline-block vertical-top">
...@@ -112,16 +115,23 @@ export default { ...@@ -112,16 +115,23 @@ export default {
activeBrand: this.brandId, // 商户(品牌) id activeBrand: this.brandId, // 商户(品牌) id
options: [ options: [
{ {
label: '普通电话', label: '企业电话',
value: 1 value: '2',
tooltips: ['1.对接第三方呼叫中心,外呼显示第三方号码,可监控通话状态。费用结算及通话记录存储于GIC计费中心;', '2.若任务创建时无双向呼叫权限,此项设置勾选也不生效']
}, },
{ {
label: '双向透传', label: '私人电话',
value: 2 value: '1',
tooltips: ['导购手机呼叫,无法监控通话状态。呼叫结算费用由导购手机自费']
},
{
label: '企微会话',
value: '4',
tooltips: ['通过企微会话完成任务,无法监控通话状态。不产生通话费用']
} }
], ],
setObj: { setObj: {
taskCallType: 1, taskCallTypes: [],
taskType: 1, taskType: 1,
overDayJudge: '', overDayJudge: '',
distributeTypeJudge: '', distributeTypeJudge: '',
...@@ -134,6 +144,9 @@ export default { ...@@ -134,6 +144,9 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
taskCallTypeChange(v) {
console.log(v);
},
/** /**
* 保存 * 保存
*/ */
...@@ -145,7 +158,7 @@ export default { ...@@ -145,7 +158,7 @@ export default {
postSave() { postSave() {
const that = this; const that = this;
let para = { let para = {
taskCallType: that.setObj.taskCallType, taskCallTypes: that.setObj.taskCallTypes.join(','),
enterpriseId: that.activeBrand, enterpriseId: that.activeBrand,
taskType: 1, taskType: 1,
overDayJudge: that.setObj.overDayJudge, overDayJudge: that.setObj.overDayJudge,
...@@ -185,8 +198,9 @@ export default { ...@@ -185,8 +198,9 @@ export default {
.then(res => { .then(res => {
let resData = res.data; let resData = res.data;
if (resData.errorCode == 1) { if (resData.errorCode == 1) {
resData.result.relaxTaskJudge = resData.result.relaxTaskJudge == 1 ? true : false; resData.result.relaxTaskJudge = resData.result.relaxTaskJudge == 1;
that.setObj = resData.result; const taskCallTypes = typeof resData.result.taskCallTypes === 'string' ? resData.result.taskCallTypes.split(',') : [];
that.setObj = Object.assign({}, resData.result, { taskCallTypes });
return; return;
} }
errMsg.errorMsg(resData); errMsg.errorMsg(resData);
...@@ -247,6 +261,11 @@ export default { ...@@ -247,6 +261,11 @@ export default {
} }
} }
} }
.flex {
display: flex;
justify-content: flex-start;
align-items: center;
}
.set-line-item_title { .set-line-item_title {
display: inline-block; display: inline-block;
width: 120px; width: 120px;
...@@ -267,4 +286,12 @@ export default { ...@@ -267,4 +286,12 @@ export default {
white-space: pre-wrap; white-space: pre-wrap;
} }
} }
.tooltips {
cursor: pointer;
font-style: normal;
padding-bottom: 2px;
border-bottom: 1px dashed rgb(47, 84, 235);
font-size: 14px;
color: #606266;
}
</style> </style>
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
</div> </div>
<div class="m-t-20"> <div class="m-t-20">
<el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }"> <el-table class="select-table" ref="multipleTable" v-loading="loading" :data="tableData" tooltip-effect="dark" :style="{ width: '100%', minHeight: tableH }">
<el-table-column prop="" label="审核事项" show-overflow-tooltip> <el-table-column prop="" label="商户列表" show-overflow-tooltip min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="ul-li-cell flex"> <div class="ul-li-cell flex">
<div class="cell-img"> <div class="cell-img">
...@@ -48,6 +48,21 @@ ...@@ -48,6 +48,21 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="企业类型" show-overflow-tooltip>
<template slot-scope="scope"
><span class="color-606266">{{ scope.row.wxEnterpriseType | wxEnterpriseTypeFilter }}</span></template
>
</el-table-column>
<el-table-column prop="" label="开平类型" show-overflow-tooltip>
<template slot-scope="scope"
><span class="color-606266">{{ scope.row.memberOpenCardFlag ? '不同开平' : '同一开平' }}</span></template
>
</el-table-column>
<el-table-column prop="" label="导购编辑" show-overflow-tooltip>
<template slot-scope="scope">
<el-switch v-model="scope.row.clerkEditFlag" :active-value="1" :inactive-value="0" @change="clerkEditFlagChange(scope.row, scope.$index)"></el-switch>
</template>
</el-table-column>
<el-table-column prop="" label="提交人" show-overflow-tooltip> <el-table-column prop="" label="提交人" show-overflow-tooltip>
<template slot-scope="scope" <template slot-scope="scope"
><span class="color-606266">{{ scope.row.staffName || '--' }}</span></template ><span class="color-606266">{{ scope.row.staffName || '--' }}</span></template
...@@ -59,7 +74,7 @@ ...@@ -59,7 +74,7 @@
<div class="line-18 color-606266">{{ scope.row.createTime | timeStampToHms }}</div> <div class="line-18 color-606266">{{ scope.row.createTime | timeStampToHms }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="操作"> <el-table-column prop="" label="操作" min-width="200">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="text" @click="AddAuthMerchant(scope.row)">编辑授权设置</el-button> <el-button type="text" @click="AddAuthMerchant(scope.row)">编辑授权设置</el-button>
<el-button type="text" @click="toStoreList(scope.row)">绑定门店列表</el-button> <el-button type="text" @click="toStoreList(scope.row)">绑定门店列表</el-button>
...@@ -114,6 +129,11 @@ export default { ...@@ -114,6 +129,11 @@ export default {
}; };
}, },
computed: {}, computed: {},
filters: {
wxEnterpriseTypeFilter(v) {
return v == 0 ? '总部' : v == 1 ? '代理' : '';
}
},
methods: { methods: {
/** /**
* 新增企业 * 新增企业
...@@ -222,6 +242,45 @@ export default { ...@@ -222,6 +242,45 @@ export default {
}); });
}) })
.catch(() => {}); .catch(() => {});
},
clerkEditFlagChange(item, index) {
const that = this;
that
.$confirm(`是否确认修改导购编辑权限?`, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
that.loading = true;
let para = { wxEnterprieseRelatedId: item.wxEnterpriseRelatedId, clerkEditFlag: that.tableData[index].clerkEditFlag ? 1 : 0 };
getRequest('/haoban-manage3-web/set-clerk-edit', para)
.then(res => {
that.loading = false;
let resData = res.data;
if (resData.errorCode == 1) {
that.$message.success({
duration: 1000,
message: '修改成功'
});
this.getTableList();
return false;
}
this.getTableList();
errMsg.errorMsg(resData);
})
.catch(function(error) {
that.loading = false;
that.$message.error({
duration: 1000,
message: error.message
});
this.getTableList();
});
})
.catch(() => {
that.tableData[index].clerkEditFlag = that.tableData[index].clerkEditFlag ? 0 : 1;
});
} }
}, },
watch: { watch: {
......
...@@ -10,7 +10,10 @@ ...@@ -10,7 +10,10 @@
<div class="daily-set-wrap"> <div class="daily-set-wrap">
<div class="company-set-content border-box"> <div class="company-set-content border-box">
<div class="company-title m-b-20 flex flex-space-between"> <div class="company-title m-b-20 flex flex-space-between">
<div class="line-h-32"><span class="color-303133 font-14 font-w-600">企业微信基本信息</span><el-button class="m-l-20" type="text" @click="refeshData">同步刷新 </el-button></div> <div class="line-h-32">
<span class="color-303133 font-14 font-w-600">企业微信基本信息</span>
<el-button class="m-l-20" type="text" @click="refeshData">同步刷新 </el-button>
</div>
<div> <div>
<set-tip v-if="!checkShow" :tipText="tipText"></set-tip> <set-tip v-if="!checkShow" :tipText="tipText"></set-tip>
</div> </div>
...@@ -21,7 +24,8 @@ ...@@ -21,7 +24,8 @@
<span class="font-14 color-303133">{{ companyObj.smallVersion || '免费版' }}</span> <span class="font-14 color-303133">{{ companyObj.smallVersion || '免费版' }}</span>
</el-form-item> --> </el-form-item> -->
<el-form-item label="企业名称"> <el-form-item label="企业名称">
<span class="font-14 color-303133 p-r-10">{{ companyObj.corpName }}</span> <el-tag> {{ companyObj.contactFlag == 1 ? '已认证' : '未认证' }}</el-tag <span class="font-14 color-303133 p-r-10">{{ companyObj.corpName }}</span>
<el-tag> {{ companyObj.contactFlag == 1 ? '已认证' : '未认证' }}</el-tag
><span v-if="companyObj.contactFlag == 1" class="p-l-10 font-12 color-909399">认证到期 {{ companyObj.verifiedEndTime | timeStampToYmd }}</span> ><span v-if="companyObj.contactFlag == 1" class="p-l-10 font-12 color-909399">认证到期 {{ companyObj.verifiedEndTime | timeStampToYmd }}</span>
</el-form-item> </el-form-item>
<el-form-item label="企业ID"> <el-form-item label="企业ID">
...@@ -43,9 +47,11 @@ ...@@ -43,9 +47,11 @@
<div class="company-title m-b-20 m-t-30"><span class="color-303133 font-14 font-w-600">客户密钥维护</span></div> <div class="company-title m-b-20 m-t-30"><span class="color-303133 font-14 font-w-600">客户密钥维护</span></div>
<div class="company-info-body secret-body"> <div class="company-info-body secret-body">
<div class="m-b-20 secret-cell"> <div class="m-b-20 secret-cell">
<span class="inline-block w-127" <span class="inline-block w-127">
><el-tooltip class="item" effect="dark" content="企业微信中【客户联系】API中若更新secret,请复制后更新至此处。首次使用好办请输入。" placement="top-start"> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;" class="font-14 color-606266">客户联系secret:</span></el-tooltip> </span <el-tooltip class="item" effect="dark" content="企业微信中【客户联系】API中若更新secret,请复制后更新至此处。首次使用好办请输入。" placement="top-start"> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;" class="font-14 color-606266">客户联系secret:</span></el-tooltip>
><el-input class="m-l-10 w-399" maxlength="200" v-model="wxObj.secretVal" placeholder="必填"></el-input><el-button class="m-l-20" type="text" @click="saveSecret('1')">保存</el-button><span v-if="wxObj.updateTime" class="m-l-20 font-12 color-909399">最后一次保存:{{ wxObj.updateTime | formatTimeStamp }}</span </span>
<el-input class="m-l-10 w-399" maxlength="200" v-model="wxObj.secretVal" placeholder="必填"></el-input>
<el-button class="m-l-20" type="text" @click="saveSecret('1')">保存</el-button><span v-if="wxObj.updateTime" class="m-l-20 font-12 color-909399">最后一次保存:{{ wxObj.updateTime | formatTimeStamp }}</span
><span class="m-l-37 font-14 color-303133" ><span class="m-l-37 font-14 color-303133"
><span :class="['iconfont', wxObj.checkFlag ? 'color-49c958 iconchenggong' : 'color-f83431 iconshibai']"></span><span class="p-l-10">{{ wxObj.checkFlag ? '校验成功' : '校验失败' }}</span></span ><span :class="['iconfont', wxObj.checkFlag ? 'color-49c958 iconchenggong' : 'color-f83431 iconshibai']"></span><span class="p-l-10">{{ wxObj.checkFlag ? '校验成功' : '校验失败' }}</span></span
> >
...@@ -53,20 +59,24 @@ ...@@ -53,20 +59,24 @@
</div> </div>
<div class="m-b-20 secret-cell"> <div class="m-b-20 secret-cell">
<span class="inline-block w-127" <span class="inline-block w-127">
><el-tooltip class="item" effect="dark" placement="top-start"> <el-tooltip class="item" effect="dark" placement="top-start">
<div slot="content">企业微信中通讯录同步若更新secret,请复制后更新至此处。<br />因获取Secret而获取通讯录的相关信息。首次使用好办请输入。<br />若发生相关变更,与企业微信无关,特此告知!</div> <div slot="content">企业微信中通讯录同步若更新secret,请复制后更新至此处。<br />因获取Secret而获取通讯录的相关信息。首次使用好办请输入。<br />若发生相关变更,与企业微信无关,特此告知!</div>
<span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;" class="font-14 color-606266">通讯录secret:</span></el-tooltip <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;" class="font-14 color-606266">通讯录secret:</span>
></span </el-tooltip>
><el-input class="m-l-10 w-399" maxlength="200" v-model="contactObj.secretVal" placeholder="非必填"></el-input><el-button class="m-l-20" type="text" @click="saveSecret('2')">保存</el-button><span v-if="contactObj.updateTime" class="m-l-20 font-12 color-909399">最后一次保存:{{ contactObj.updateTime | formatTimeStamp }}</span </span>
<el-input class="m-l-10 w-399" maxlength="200" v-model="contactObj.secretVal" placeholder="非必填"></el-input>
<el-button class="m-l-20" type="text" @click="saveSecret('2')">保存</el-button><span v-if="contactObj.updateTime" class="m-l-20 font-12 color-909399">最后一次保存:{{ contactObj.updateTime | formatTimeStamp }}</span
><span class="m-l-37 font-14 color-303133" ><span class="m-l-37 font-14 color-303133"
><span :class="['iconfont', contactObj.checkFlag ? 'color-49c958 iconchenggong' : 'color-f83431 iconshibai']"></span><span class="p-l-10">{{ contactObj.checkFlag ? '校验成功' : '校验失败' }}</span></span ><span :class="['iconfont', contactObj.checkFlag ? 'color-49c958 iconchenggong' : 'color-f83431 iconshibai']"></span><span class="p-l-10">{{ contactObj.checkFlag ? '校验成功' : '校验失败' }}</span></span
> >
</div> </div>
<div class="m-b-20 secret-cell"> <div class="m-b-20 secret-cell">
<span class="inline-block w-127" <span class="inline-block w-127">
><el-tooltip class="item" effect="dark" content="用于获取登录小程序用户的手机号/姓名/部门信息" placement="top-start"> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;" class="font-14 color-606266">好办助手secret:</span></el-tooltip> </span <el-tooltip class="item" effect="dark" content="用于获取登录小程序用户的手机号/姓名/部门信息" placement="top-start"> <span style="cursor: pointer;padding-bottom: 2px; border-bottom: 1px dashed #2F54EB;" class="font-14 color-606266">好办助手secret:</span></el-tooltip>
><el-input class="m-l-10 w-399" maxlength="200" v-model="haobanObj.secretVal" placeholder="必填"></el-input><el-button class="m-l-20" type="text" @click="saveSecret('3')">保存</el-button><span v-if="haobanObj.updateTime" class="m-l-20 font-12 color-909399">最后一次保存:{{ haobanObj.updateTime | formatTimeStamp }}</span </span>
<el-input class="m-l-10 w-399" maxlength="200" v-model="haobanObj.secretVal" placeholder="必填"></el-input>
<el-button class="m-l-20" type="text" @click="saveSecret('3')">保存</el-button><span v-if="haobanObj.updateTime" class="m-l-20 font-12 color-909399">最后一次保存:{{ haobanObj.updateTime | formatTimeStamp }}</span
><span class="m-l-37 font-14 color-303133" ><span class="m-l-37 font-14 color-303133"
><span :class="['iconfont', haobanObj.checkFlag ? 'color-49c958 iconchenggong' : 'color-f83431 iconshibai']"></span><span class="p-l-10">{{ haobanObj.checkFlag ? '校验成功' : '校验失败' }}</span></span ><span :class="['iconfont', haobanObj.checkFlag ? 'color-49c958 iconchenggong' : 'color-f83431 iconshibai']"></span><span class="p-l-10">{{ haobanObj.checkFlag ? '校验成功' : '校验失败' }}</span></span
> >
...@@ -103,14 +113,20 @@ ...@@ -103,14 +113,20 @@
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="" label="操作"> <el-table-column prop="" label="操作">
<template slot-scope="scope"> <el-button type="text" @click="toEdit(scope.$index, scope.row)">编辑</el-button><el-button type="text" @click="toDel(scope.$index, scope.row)">删除</el-button> </template> <template slot-scope="scope">
<el-button type="text" @click="toEdit(scope.$index, scope.row)">编辑</el-button>
<el-button type="text" @click="toDel(scope.$index, scope.row)">删除</el-button>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<div v-if="tableData.length < 10" class="text-center add-cell cursor-pointer" @click="addSecret"><span class="el-icon-plus font-14 color-2f54eb add-cell-txt"></span><span class="font-14 color-2f54eb p-l-5 add-cell-txt">新建</span><span class="font-12 color-c0c4cc p-l-20">最多添加10个</span></div> <div v-if="tableData.length < 10" class="text-center add-cell cursor-pointer" @click="addSecret"><span class="el-icon-plus font-14 color-2f54eb add-cell-txt"></span><span class="font-14 color-2f54eb p-l-5 add-cell-txt">新建</span><span class="font-12 color-c0c4cc p-l-20">最多添加10个</span></div>
</div> </div>
</div> </div>
</div> </div>
<div v-if="wxShow" class="line-h-32 m-b-20"><span class="color-303133 font-14 font-w-600">企微好友</span><el-button v-if="wxShow" class="m-l-20" type="text" @click="refeshDataWx">同步刷新 </el-button></div> <div v-if="wxShow" class="line-h-32 m-b-20">
<span class="color-303133 font-14 font-w-600">企微好友</span>
<el-button v-if="wxShow" class="m-l-20" type="text" @click="refeshDataWx">同步刷新 </el-button>
</div>
<div v-if="wxShow"> <div v-if="wxShow">
<el-form ref="wxForm" label-width="115px"> <el-form ref="wxForm" label-width="115px">
<el-form-item> <el-form-item>
...@@ -690,9 +706,9 @@ export default { ...@@ -690,9 +706,9 @@ export default {
} }
} }
} }
.table-condition { // .table-condition {
// min-width: 1200px; // min-width: 1200px;
} // }
.secret-body { .secret-body {
.el-input { .el-input {
>>> .el-input__inner { >>> .el-input__inner {
......
<!--
* @Descripttion: 当前组件信息
* @version: 1.0.0
* @Author: 无尘
* @Date: 2019-03-20 14:36:37
* @LastEditors: 无尘
* @LastEditTime: 2020-08-26 10:05:42
-->
<template> <template>
<div class="my-customer-wrap common-set-wrap"> <div class="my-customer-wrap common-set-wrap">
<!-- <nav-crumb :navpath="navpath"> </nav-crumb> -->
<div class="right-content"> <div class="right-content">
<div class="right-box" :style="{ 'min-height': bgHeight }"> <div class="right-box" :style="{ 'min-height': bgHeight }">
<div class="apps-content flex" :style="{ 'min-height': bgHeight }"> <div class="apps-content flex" :style="{ 'min-height': bgHeight }">
...@@ -185,7 +176,8 @@ export default { ...@@ -185,7 +176,8 @@ export default {
let para = { let para = {
...that.pageParams, ...that.pageParams,
enterpriseId: localStorage.getItem('userInfoBrandId'), enterpriseId: localStorage.getItem('userInfoBrandId'),
qywxEnterpriseId: JSON.parse(localStorage.getItem('userInfos')).wxEnterpriseId qywxEnterpriseId: JSON.parse(localStorage.getItem('userInfos')).wxEnterpriseId,
taskType: 2
}; };
if (para.date) { if (para.date) {
para.startTime = para.date[0]; para.startTime = para.date[0];
...@@ -216,9 +208,9 @@ export default { ...@@ -216,9 +208,9 @@ export default {
}, },
showDetail(item) { showDetail(item) {
if (this.$route.query.ecmPlanId) { if (this.$route.query.ecmPlanId) {
this.$router.push(`storeDetail/${item.storeId}?tab=2&ecmPlanId=${this.$route.query.ecmPlanId}`); this.$router.push(`grStoreDetail/${item.storeId}?tab=2&ecmPlanId=${this.$route.query.ecmPlanId}`);
} else { } else {
this.$router.push(`storeDetail/${item.storeId}`); this.$router.push(`grStoreDetail/${item.storeId}`);
} }
} }
}, },
......
...@@ -118,7 +118,8 @@ export default { ...@@ -118,7 +118,8 @@ export default {
], ],
pageParams: { pageParams: {
pageNum: 1, pageNum: 1,
pageSize: 20 pageSize: 20,
taskType: 2
}, },
// 分页参数 // 分页参数
total: 0, total: 0,
...@@ -215,7 +216,7 @@ export default { ...@@ -215,7 +216,7 @@ export default {
}); });
}, },
showDetail(item) { showDetail(item) {
this.$router.push(`storeList?ecmPlanId=${item.ecmPlanId}`); this.$router.push(`grStoreList?ecmPlanId=${item.ecmPlanId}`);
} }
}, },
watch: { watch: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment