Selaa lähdekoodia

提交

newStyle
douzhuo 1 vuosi sitten
vanhempi
commit
7d677e3c8d
8 muutettua tiedostoa jossa 215 lisäystä ja 50 poistoa
  1. +22
    -1
      src/api/modules/http.js
  2. +110
    -44
      src/views/Customer/index.vue
  3. +5
    -0
      src/views/Customer/table.js
  4. +39
    -1
      src/views/ReceivingRecords/index.vue
  5. +6
    -0
      src/views/ReceivingRecords/table.js
  6. +19
    -0
      src/views/Template/Pinspeakwords.vue
  7. +12
    -1
      src/views/Template/table.js
  8. +2
    -3
      vue.config.js

+ 22
- 1
src/api/modules/http.js Näytä tiedosto

@@ -911,4 +911,25 @@ export function updateRead(params) {
method: 'get',
params
})
}
}


// 获取销讲业务模板
export function marketingBusiness(params) {
return request({
url: 'autoSR/api/customer/marketingBusiness',
method: 'get',
params
})
}


// 检测销讲模板名称是否重复
export function findByRepetitionName(params) {
return request({
url: 'autoSR/template/findByRepetitionName',
method: 'get',
params
})
}


+ 110
- 44
src/views/Customer/index.vue Näytä tiedosto

@@ -22,13 +22,13 @@
</div>

<div class="div-labox">
<div class="labeltext" style="margin-left: 15px;">
<div class="labeltext" style="margin-left: 15px">
<!-- 时间: -->
<el-select
v-model="searchForm.timeType"
@change="houseChange"
placeholder="请选择"
style="width: 125px;"
style="width: 125px"
>
<el-option
v-for="item in timeTypeList"
@@ -243,6 +243,26 @@
</el-option>
</el-select>
</div>
<div class="div-labox">
<div class="labeltext">销讲业务:</div>
<el-select
v-model="searchForm.marketingBusiness"
multiple
clearable
filterable
collapse-tags
placeholder="请选择"
class="div-inpbox"
>
<el-option
v-for="item in templateList"
:key="item.id"
:label="item.templateName"
:value="item.id"
>
</el-option>
</el-select>
</div>
</div>
<div class="app-topbox">
<div class="div-labox">
@@ -250,23 +270,33 @@
<el-button type="primary" @click="screen">筛选</el-button>
<el-button @click="clearScreen" type="text">清空筛选条件</el-button>

<el-button style="margin-left:10px;" @click="isSystoleForm" type="text">{{isOpen?'收起':'展开'}}<i style="margin-left:5px;" :class="isOpen?'el-icon-arrow-up':'el-icon-arrow-down'"></i></el-button>

<el-button
style="margin-left: 10px"
@click="isSystoleForm"
type="text"
>{{ isOpen ? "收起" : "展开"
}}<i
style="margin-left: 5px"
:class="isOpen ? 'el-icon-arrow-up' : 'el-icon-arrow-down'"
></i
></el-button>
</div>
<div style="margin-left: auto; margin-right: 10px">
<el-button :disabled="isBand" type="primary" @click="transfer"
>批量转交</el-button
>
<el-button v-if="cus_index_downLoad" @click="downLoad" icon="el-icon-download">导出</el-button>
<el-button
v-if="cus_index_downLoad"
@click="downLoad"
icon="el-icon-download"
>导出</el-button
>
</div>
</div>
</div>

<!-- 表格 -->
<div class="cen-tab">

<avue-crud
ref="crud"
:page.sync="page"
@@ -279,27 +309,34 @@
@selection-change="handleSelectionChange"
>
<template slot-scope="{ row }" slot="menu">
<el-button @click="toCustomer" type="text" v-if="cus_index_detail">客户详情</el-button>
<el-button
type="text"
@click="Receivedetailsabout(row)"
v-if="cus_index_visit"
>接待详情</el-button
>
<el-button type="text" @click="tranfser(row)" v-if="cus_index_take"
>转交</el-button
>
<el-button @click="toCustomer" type="text" v-if="cus_index_detail"
>客户详情</el-button
>
<el-button
type="text"
@click="Receivedetailsabout(row)"
v-if="cus_index_visit"
>接待详情</el-button
>
<el-button type="text" @click="tranfser(row)" v-if="cus_index_take"
>转交</el-button
>
</template>
</avue-crud>
</div>

<!-- 提示转义客户 -->
<el-dialog title="客户流转" :visible.sync="dialogVisible" width="30%" :center="true">
<el-dialog
title="客户流转"
:visible.sync="dialogVisible"
width="30%"
:center="true"
>
<div>
<span>员工:</span>
<el-select
v-model="agentId"
style="width:86%"
style="width: 86%"
clearable
filterable
placeholder="请选择"
@@ -314,7 +351,16 @@
</el-option>
</el-select>
</div>
<span slot="footer" class="dialog-footer" style="border-top:1px solid #eee;padding-top: 20px;display: flex;justify-content: end;">
<span
slot="footer"
class="dialog-footer"
style="
border-top: 1px solid #eee;
padding-top: 20px;
display: flex;
justify-content: end;
"
>
<el-button
@click="
dialogVisible = false;
@@ -334,7 +380,6 @@ import { exportMethodPost } from "@/util/util";
export default {
data() {
return {
tableIdName: "CustomerIndex", // 当前页面需要的变量
tableOption: this.$tableOption.CustomerIndex, // 当前table配置项
tableLoading: false, // 是否显示加载中
@@ -345,8 +390,7 @@ export default {
pageSize: 10, // 每页显示多少条
},


isOpen:false,
isOpen: false,
TimetoAhoose: 2,
time: [],
houseList: [],
@@ -490,6 +534,7 @@ export default {
clientStage: "",
orderBy: "",
sensitiveWords: [],
marketingBusiness: [],
},
clientStagelist: [],
sensitiveList: [], //违禁词
@@ -499,6 +544,8 @@ export default {
isBand: true, // 批量转交按钮状态
selectMoreIds: "", // 多选客户id
agentId: "", // 移交员工的id

templateList: [], // 销讲业务列表
};
},
computed: {
@@ -528,7 +575,18 @@ export default {
this.zkhousePage();
},
methods: {
// 获取销讲业务
getMarketingBusiness() {
this.$api.http
.marketingBusiness({ houseId: this.searchForm.projectId })
.then((res) => {
console.log(res);
if (res.code == 10000) {
this.templateList = res.data;
}
});
},

// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
@@ -537,11 +595,11 @@ export default {
}
});
},
isSystoleForm(){
this.isOpen = !this.isOpen
isSystoleForm() {
this.isOpen = !this.isOpen;
},
toCustomer() {
this.$router.push('/Customer/CustomerDetail')
this.$router.push("/Customer/CustomerDetail");
},
// 批量转交按钮点击事件
transfer() {
@@ -561,12 +619,12 @@ export default {
tranfser(row) {
console.log(row);
this.dialogVisible = true;
this.selectMoreIds = row.id;
this.selectMoreIds = row.id;
},

// 转移客户至其他顾问
theCirculation(query) {
console.log(query)
console.log(query);
this.$api.http.theCirculation(query).then((res) => {
if (res.code == 0) {
this.$message({
@@ -632,8 +690,9 @@ export default {
size: this.page.pageSize,
...this.searchForm,
};
obj.marketingBusiness = obj.marketingBusiness.join(',')
obj.keywordIds = obj.keywordsId.join(",");
console.log(obj, '入参')
console.log(obj, "入参");
obj.sensitiveWords = JSON.stringify(obj.sensitiveWords);
(obj.dateType = this.searchForm.staDate
? null
@@ -642,7 +701,7 @@ export default {
// console.log(res)
this.tableData = res.data.records;
this.page.total = res.data.total;
// 表格中设置ref属性,在数据渲染之后或者updated()之后
this.$nextTick(() => {
this.$refs.crud.doLayout();
@@ -662,6 +721,7 @@ export default {
endDate: "",
dateType: null,
searchForm: "",
marketingBusiness: [],
timeType: "0",
orderBy: "",
sensitiveWords: [],
@@ -675,6 +735,9 @@ export default {
houseChange() {
this.searchForm.sensitiveWords = [];
this.searchForm.keywordsId = [];
this.searchForm.marketingBusiness = [];
// 获取销讲业务
this.getMarketingBusiness();
this.findbypage();
this.findKeywords();
// 获取置业顾问列表
@@ -738,6 +801,9 @@ export default {
this.searchForm.projectId = res.data[0].id;
}
this.houseChange();

// 获取销讲业务
this.getMarketingBusiness();
});
},
// 置业顾问列表
@@ -854,27 +920,27 @@ export default {
color: #ffffff;
background: #2671e2;
}
/deep/ .el-table__header-wrapper{
thead{
tr{
th{
background: #F5F7FA;
/deep/ .el-table__header-wrapper {
thead {
tr {
th {
background: #f5f7fa;
color: #333333;
}
}
}
}
/deep/ .el-dialog--center{
/deep/ .el-dialog--center {
border-radius: 8px;
.el-dialog__title{
.el-dialog__title {
font-weight: bold;
}
}
/deep/ .el-button--primary{
background: #2671E2 !important;
border: 1px solid #2671E2 !important;
/deep/ .el-button--primary {
background: #2671e2 !important;
border: 1px solid #2671e2 !important;
}
/deep/ .el-button--text{
color: #2671E2;
/deep/ .el-button--text {
color: #2671e2;
}
</style>

+ 5
- 0
src/views/Customer/table.js Näytä tiedosto

@@ -284,6 +284,11 @@ export default {
prop: "mm",
width: '100px',
},
{
label: "销讲业务",
prop: "marketingBusinessName",
width: '100px',
},
{
sortable: true,
label: "销讲执行率",


+ 39
- 1
src/views/ReceivingRecords/index.vue Näytä tiedosto

@@ -257,6 +257,26 @@
></el-option>
</el-select>
</div>
<div class="div-lab">
<div class="label">销讲业务:</div>
<el-select
v-model="searchForm.marketingBusiness"
multiple
clearable
filterable
collapse-tags
placeholder="请选择"
class="div-inpbox"
>
<el-option
v-for="item in templateList"
:key="item.id"
:label="item.templateName"
:value="item.id"
>
</el-option>
</el-select>
</div>
</div>

<div class="app-titel" style="margin-top: 15px">
@@ -473,11 +493,14 @@ export default {
taboo: "",
zfal: "", // 正反案例 0:正面案例 1:反面案例
validInvalid: "", // 是否为有效接待 0:有效 1:无效
marketingBusiness: [],
},
rec_index_show: false, // 按钮权限
rec_index_text: false, // 按钮权限
rec_index_voice: false, // 按钮权限
rec_index_downLoad: false, // 按钮权限

templateList: [], // 销讲业务列表
};
},
computed: {
@@ -599,6 +622,17 @@ export default {
},

methods: {
// 获取销讲业务
getMarketingBusiness() {
this.$api.http
.marketingBusiness({ houseId: this.searchForm.projectId })
.then((res) => {
console.log(res);
if (res.code == 10000) {
this.templateList = res.data;
}
});
},
// 获取当前页面的显隐
setTableOption() {
this.$db.getDataByKey(this.tableIdName).then((res) => {
@@ -660,6 +694,7 @@ export default {
obj.projectId = this.$route.query.houseId;
}
obj.keywordIds = obj.keywordsId.join(",");
obj.marketingBusiness = obj.marketingBusiness.join(',')
obj.dateType = this.searchForm.staDate ? null : this.searchForm.dateType;
this.$api.api.findbypage(obj).then((res) => {
console.log(res);
@@ -685,6 +720,7 @@ export default {
houseType: "",
dateType: null,
taboo: "",
marketingBusiness: [],
zfal: "",
// projectId: this.houseList[0].id,
projectId:
@@ -754,6 +790,9 @@ export default {
this.searchForm.projectId = res.data[0].id;
}
this.houseChange();

// 获取销讲业务
this.getMarketingBusiness();
});
},
// 置业顾问列表
@@ -817,7 +856,6 @@ export default {
}
},

showColumn(nowV) {
let params = {
tableIdName: this.tableIdName,


+ 6
- 0
src/views/ReceivingRecords/table.js Näytä tiedosto

@@ -59,10 +59,16 @@ export default {
}
},

{
label: "销讲业务",
prop: "marketingBusinessName",
},

{
sortable: true,
label: "画像标签触达次数",
prop: "total",
width: '150px',
},

{


+ 19
- 0
src/views/Template/Pinspeakwords.vue Näytä tiedosto

@@ -204,6 +204,7 @@
maxlength="16"
show-word-limit
clearable
@blur="findByRepetitionName"
>
</el-input>
</div>
@@ -429,6 +430,22 @@ export default {
},
},
methods: {
// 检测模板名称
findByRepetitionName() {
this.$api.http
.findByRepetitionName({
name: this.inparams.templateName,
houseId: this.houseId,
})
.then((res) => {
if (res.code != 0) {
this.$message({
message: res.msg,
type: "warning",
});
}
});
},
// 项目选择
selectChange(e) {
this.houseId = e;
@@ -515,11 +532,13 @@ export default {
tempId: this.Templateid,
};
this.$api.http.templatedelfindByTempId(parmest).then((res) => {
console.log(res.data, "res.data");
this.houseId = res.data.houseId;
this.checklist = res.data.list;
this.nodelist = res.data.list;
this.inparams.templateName = res.data.templateName;
this.inparams.defaultTemplate = res.data.defaultTemplate;
console.log(this.inparams);
this.getHouse2();
this.checklist.forEach((item) => {
this.rateMap.set(item.id, item.fraction); // map维护分数


+ 12
- 1
src/views/Template/table.js Näytä tiedosto

@@ -30,11 +30,22 @@ export default {
if(data.status == 1) return '停用'
}
},
{
label: "模板名称",
prop: "templateName",
},
{
label: "默认话术",
prop: "defaultTemplate",
formatter: (data) => {
if(data.defaultTemplate == 0) return '是'
if(data.defaultTemplate == 1) return '否'
}
},
{
label: "大类个数",
prop: "count",
},
{
label: "创建时间",
prop: "createTime",


+ 2
- 3
vue.config.js Näytä tiedosto

@@ -3,13 +3,12 @@
* https://cli.vuejs.org/zh/config/
*/
// const url = 'http://192.168.31.160:9999' //长龙
// const url = 'http://192.168.31.149:9999' // 胜浩
const url = 'http://192.168.31.85:9999' // 胜浩
// const url = 'http://127.0.0.1:9999' // 本地

const url = 'http://39.97.244.65:9999' // 测试服务器
// const url = 'http://39.97.244.65:9999' // 测试服务器

// const url = 'http://62.234.122.43:9999' //正式服务器1
// const url = 'http://82.156.35.22:9999' // 正式服务器2
// const url = 'https://www.aihxz.com' // 正式域名
const CompressionWebpackPlugin = require('compression-webpack-plugin')
const productionGzipExtensions = ['js', 'css']


Ladataan…
Peruuta
Tallenna