Bläddra i källkod

合并主分支

yun
douzhuo 1 år sedan
förälder
incheckning
97e8043df7
16 ändrade filer med 4022 tillägg och 1660 borttagningar
  1. +6
    -2
      manifest.json
  2. +0
    -17
      pages.json
  3. +74
    -15
      pages/center/Piabodata/Employeesstatistics.vue
  4. +23
    -0
      pages/center/Piabodata/StaffAnalysis.vue
  5. +117
    -12
      pages/center/Piabodata/TrendAnalysis.vue
  6. +1439
    -0
      pages/center/Piabodata/TrendAnalysisold.vue
  7. +12
    -1
      pages/center/Piabodata/index.vue
  8. +85
    -65
      pages/center/Piabodata/requireminingAnalysis.vue
  9. +93
    -65
      pages/center/consumer/consumerDetail.vue
  10. +4
    -4
      pages/center/consumer/edit.vue
  11. +1456
    -1006
      pages/center/consumer/index.vue
  12. +463
    -365
      pages/center/records/index.vue
  13. +10
    -7
      pages/index/index.vue
  14. +111
    -29
      pages/mine/details.vue
  15. +127
    -70
      pages/mine/details2.vue
  16. +2
    -2
      utils/domain.js

+ 6
- 2
manifest.json Visa fil

@@ -96,10 +96,14 @@
"urlCheck" : false,
"es6" : true,
"postcss" : true,
"minified" : false
"minified" : true
},
"usingComponents" : true,
"permission" : {},
"permission" : {
"scope.userLocation" : {
"desc" : "获取地址信息"
}
},
"requiredBackgroundModes" : [ "audio" ],
"plugins" : {
"WechatSI" : {


+ 0
- 17
pages.json Visa fil

@@ -4,23 +4,6 @@
},
//这个pages里只放这五个页面,新增页面时请对应的放到下面的分包里
"pages": [
// {
// "path": "pages/mine/registerForm",
// "style": {
// "navigationBarTitleText": "访客登记表",
// "navigationBarBackgroundColor": "#2671E2",
// "navigationBarTextStyle": "white"
// }
// },
// {
// "path": "pages/mine/registerResult",
// "style": {
// "navigationBarTitleText": "访客登记表",
// "navigationBarBackgroundColor": "#2671E2",
// "navigationBarTextStyle": "white"
// }
// },
{
"path": "pages/index/guide",
"style": {


+ 74
- 15
pages/center/Piabodata/Employeesstatistics.vue Visa fil

@@ -22,15 +22,15 @@
<view class="title1" style="flex: 1;">接待量排名(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 35%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">合计</view>
<view class="text1-2">{{newlisttabinfo1.total}}</view>
</view>
<view class="sanbox1" style="width: 40%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">顾问</view>
<view class="text1-2">{{newlisttabinfo1.count}}</view>
</view>
<view class="sanbox1" style="width: 25%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">人均接待量</view>
<view class="text1-2">{{newlisttabinfo1.avg}}</view>
</view>
@@ -61,11 +61,11 @@
<view class="title1" style="flex: 1;">销讲执行率排行(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 40%;">
<view class="sanbox1" style="width: 50%;">
<view class="text1-1">顾问</view>
<view class="text1-2">{{newlisttabinfo3.count}}</view>
</view>
<view class="sanbox1" style="width: 25%;">
<view class="sanbox1" style="width: 50%;">
<view class="text1-1">人均执行率</view>
<view class="text1-2">{{newlisttabinfo3.avg}}</view>
</view>
@@ -95,15 +95,15 @@
<view class="title1" style="flex: 1;">录音时长(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 35%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">合计</view>
<view class="text1-2">{{newlisttabinfo2.total}}</view>
</view>
<view class="sanbox1" style="width: 40%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">顾问</view>
<view class="text1-2">{{newlisttabinfo2.count}}</view>
</view>
<view class="sanbox1" style="width: 25%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">人均录音时长</view>
<view class="text1-2">{{newlisttabinfo2.avg}}</view>
</view>
@@ -133,15 +133,15 @@
<view class="title1" style="flex: 1;">违禁次数排名(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 35%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">合计</view>
<view class="text1-2">{{newlisttabinfo4.total}}</view>
</view>
<view class="sanbox1" style="width: 40%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">顾问</view>
<view class="text1-2">{{newlisttabinfo4.count}}</view>
</view>
<view class="sanbox1" style="width: 25%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">人均违禁次数</view>
<view class="text1-2">{{newlisttabinfo4.avg}}</view>
</view>
@@ -171,15 +171,15 @@
<view class="title1" style="flex: 1;">接待未标顾问(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 35%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">合计</view>
<view class="text1-2">{{newlisttabinfo5.total}}</view>
</view>
<view class="sanbox1" style="width: 40%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">顾问</view>
<view class="text1-2">{{newlisttabinfo5.count}}</view>
</view>
<view class="sanbox1" style="width: 25%;">
<view class="sanbox1" style="width: 33.33%;">
<view class="text1-1">均值</view>
<view class="text1-2">{{newlisttabinfo5.avg}}</view>
</view>
@@ -202,6 +202,39 @@
</view>
</view>

<!--平均需求挖掘率排名(TOP10) -->
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1" style="flex: 1;">平均需求挖掘率排名(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 50%;">
<view class="text1-1">楼盘总数</view>
<view class="text1-2">{{newlisttabinfo6.total}}</view>
</view>
<view class="sanbox1" style="width: 50%;">
<view class="text1-1">平均挖掘率</view>
<view class="text1-2">{{newlisttabinfo6.avg}}</view>
</view>
</view>
<view class="jindu" style="min-height: 360rpx;">
<view v-if="newlisttabinfo6.result.length!=0" class="jindu-box"
v-for="(item,index) in newlisttabinfo6.result" :key="index">
<view class="jindu-boxche" v-if="item.zxl != 0">
<view class="jindu-name" v-if="item.name">{{item.name.substring(0,4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#FBA448"
:percent="item.zxl1"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
<view v-if="newlisttabinfo6.result.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">
暂无数据
</view>
</view>
</view>

<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
</view>
@@ -250,6 +283,12 @@
total: '',
result: [],
},
newlisttabinfo6: {
avg: '',
count: '',
total: '',
result: [],
},
};
},
onLoad(option) {
@@ -292,6 +331,12 @@
total: '',
result: [],
}
this.newlisttabinfo4 = {
avg: '',
count: '',
total: '',
result: [],
}

var activeTotal = 0;
if (this.activeTotal == 3) {
@@ -312,6 +357,7 @@
this.staffStatisticsExecutionRateTop10(promse)
this.staffStatisticsProhibitedTop10(promse)
this.staffStatisticsUnlabeledTop10(promse)
this.wordlevelTop10(promse)
},
//接待量排名
staffStatisticsReceptionTop10(promse) {
@@ -369,6 +415,17 @@
this.newlisttabinfo5 = res;
})
},
// 平均需求挖掘率排名
wordlevelTop10(promse) {
this.$u.post('/cusLvStatistics/staffStatisticsUnlabeledTop', promse).then(res => {
res.result.forEach(item => {
item.zxl = item.tagCustomer
item.name = item.accountName
})
res.result = this.dealData(res.result)
this.newlisttabinfo6 = res;
})
},

//自定义时间
totalTimeChange(e) {
@@ -425,7 +482,6 @@
width: 100%;
height: 100%;
background: #FAFAFA;
padding-bottom: 60rpx;
}
.single {
@@ -443,6 +499,9 @@
display: flex;
padding-top: 20rpx;
padding-bottom: 20rpx;
.sanbox1{
text-align: center;
}

.text1-1 {
color: #666666;


+ 23
- 0
pages/center/Piabodata/StaffAnalysis.vue Visa fil

@@ -76,6 +76,29 @@
canvasId="wangxiaouaerlingeryilingwuyibhh" :canvas2d="true" />
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1" style="flex: 1;">平均需求挖掘率趋势</view>
<view class="title3" style="flex: 1;">
<!-- <view class="title3-box" style="width: 40%;" @click="tabtimetap1(0)">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">有效录音</view>
</view>
<view class="title3-box" style="width: 40%;"@click="tabtimetap1(1)">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">录音时长</view>
</view> -->
</view>
</view>
<view class="hejibox">
<view class="heji">{{staff1.label}}:{{newTeam2||0}}</view>
<view class="heji" v-if="timepickpickisshow">{{staff2.label}}:{{newAvg2||0}}</view>
</view>
<view class="danwei">录音时长</view>
<view class="uchaserbox">
<qiun-data-charts type="line" :chartData="lineOptsect1" background="none" :ontouch="true"
canvasId="wangxiaouaerlingeryilingwuyibhh" :canvas2d="true" />
</view>
</view>

<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">


+ 117
- 12
pages/center/Piabodata/TrendAnalysis.vue Visa fil

@@ -1,7 +1,25 @@
<template>
<view>
<view class="timetabct">
<view class="timetabctview">
<!-- 选择器 -->
<view class="boxtittab">
<view class="tabbox" @click="timeshow = true">
{{ time }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="timeshow = true">
{{ team }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="selectshow = true">
{{ guwen }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="huashuShow = true">
{{huashu}}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
</view>
<!--<view class="timetabct">
<view class="timetabctview">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">7天</view>
</view>
<view class="timetabctview">
@@ -10,7 +28,7 @@
<view class="timetabctview">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">30天</view>
</view>
</view>
</view> -->

<view class="timepick">
<view class="timepicktime">
@@ -42,6 +60,7 @@
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<!-- 简报 -->
<view class="boxzonglan" style="min-height: 100rpx;">
<view class="zonglantit">简报</view>
<view class="zonglanbox">
@@ -73,7 +92,7 @@
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="boxtittab" style="border: none;height: 82rpx;">
<view class="tabbox">
<!-- <view class="tabbox">
<view :class="{ activecllasscet2: newactiveTotal == 0 }" @click="tabxuanxiangtap(0)">项目</view>
</view>
<view class="tabbox">
@@ -81,6 +100,15 @@
</view>
<view class="tabbox">
<view :class="{ activecllasscet2: newactiveTotal == 2 }" @click="tabxuanxiangtap(2)">团队</view>
</view> -->
<view class="tabbox">
<view :class="{ activecllasscet2: newactiveTotal == 0 }" @click="tabxuanxiangtap(0)">平均执行率</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet2: newactiveTotal == 1 }" @click="tabxuanxiangtap(1)">平均挖掘率</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet2: newactiveTotal == 2 }" @click="tabxuanxiangtap(2)">挖掘场景</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet2: newactiveTotal == 3 }" @click="tabxuanxiangtap(3)">销讲一级</view>
@@ -92,13 +120,13 @@


<view class="chart">
<view
<!-- <view
style="display: flex;justify-content:center;padding-left: 30rpx;padding-right: 30rpx;margin-top: 16rpx;"
v-if="guwenshow&&lopanobj.name" @click="oninputtap()">
<view class="title2-che" style="width: 220rpx;">{{lopanobj.name}}
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view> -->

<view style="padding: 30rpx;padding-bottom: 20rpx;align-items: center;" v-if="Selectlevel">
<view style="display: flex;align-items: center;border-bottom: 1px solid #C9C9C9;height: 80rpx;">
@@ -164,7 +192,6 @@
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
</view>
</view>

</view>

<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
@@ -225,7 +252,32 @@
<newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2">
</newcalendar>
<!-- 接待时间 -到访时间-->
<u-popup v-model="timeshow" mode="bottom">
<view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(5, '接待时间')">
全部</view>
<view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(0, '今天')">
今天</view>
<view class="timeview" :style="{ color: activeTotal == 1 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(1, '昨天')">
昨天</view>
<view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(2, '近7天')">
近7天</view>
<view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(3, '近30天')">
近30天</view>
<view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(4, '')">
自定义</view>
</u-popup>
<!-- 顾问 -->
<u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select>
<!-- 全部话术 -->
<u-select v-model="huashushow" :list="huashuList" @confirm="actionSelectCallback1"></u-select>

<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
@@ -241,6 +293,13 @@
},
data() {
return {
time: '接待时间',
team: '部门',
guwen: '顾问',
huashu: '全部话术',
huashuList: false,
huashuShow: false,
freeList: [], //顾问
selindexList: [0], // 默认选中第一项
selindexList4: [0], // 默认选中第一项
compareFlag: false,
@@ -262,6 +321,12 @@
num1: '0',
num2: '0'
},
{
name: '有效接待',
num: '10',
num1: '0',
num2: '0'
},
],
activeTotal: 0, //时间下标
newactiveTotal: 0, //tab下标
@@ -323,7 +388,6 @@
},
Showhiddenunits4: false,
showCanvas: true,

timepickpickisshow: false,
sheartime1: "",
sheartime2: "",
@@ -338,6 +402,7 @@
this.LOADING = true
this.pamect.houseId = uni.getStorageSync('buildingID').id;
this.init()
this.getFreeList()
if (option.type == 1) {
this.timepickpickisshow = true
@@ -383,6 +448,31 @@
},
},
methods: {
// 顾问
actionSelectCallback(e) {
// this.screen.agentId = e[0].value;
// this.counselorName = e[0].label;
},
// 话术
actionSelectCallback1(e) {
// this.screen.agentId = e[0].value;
// this.counselorName = e[0].label;
},
//获取顾问列表
getFreeList() {
this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", {
houseId: this.pamect.houseId
}).then(res => {
this.freeList = res;
this.huashuList = res;
if(this.freeList.length){
this.freeList.forEach(item => {
item.label = item.name;
item.value = item.accountId
})
}
})
},
// 时间格式转换
fomatDate(date) {
if (!date) return '--'
@@ -605,6 +695,18 @@
this.guwenshow = false;
this.Selectlevel = false;
this.Selecttuandui = false;
// this.tableDate = []
// this.pamect.showStatus = 0;
// this.pamect.timeType = "4";
// this.pamect.firstStartDate = '';
// this.pamect.firstEndDate = '';
// this.pamect.lastStartDate = '';
// this.pamect.lastEndDate = '';
// this.pamect.accountId = '';
// this.pamect.marketingId = '';
// this.pamect.deptId = ""
// this.activeTotal = 0;
this.timepickpickisshow = false;
this.init()

if (index == 1) {
@@ -761,7 +863,6 @@
arr[1].push(data.thirdList[index].total)
})
that.tableDate = arr

console.log(this.lineOptsect, 'console.log(this.lineOptsect)')
}

@@ -1051,7 +1152,7 @@
this.Selecttuanduiobj.id = "";
this.Selecttuanduiobj.name = "全部";
this.pamect.deptId = this.Selecttuanduiobj.id;
this.TeamCompared()
// this.TeamCompared()
}
})
},
@@ -1435,8 +1536,12 @@
border-right: none;
border-bottom: none;
}
.grid:nth-child(2) {
border-bottom: none;
}

.grid:nth-child(3) {
width: 50.5%;
width: 50%;
border-right: none;
}
</style>

+ 1439
- 0
pages/center/Piabodata/TrendAnalysisold.vue
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 12
- 1
pages/center/Piabodata/index.vue Visa fil

@@ -46,6 +46,12 @@
</view>
<view class="Piabodata-text">集团对比</view>
</view>
<view class="Piabodata" @click="towajue()">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/qushi.png" mode=""></image>
</view>
<view class="Piabodata-text">需求挖掘分析</view>
</view>

</view>

@@ -54,7 +60,7 @@
<view class="zonglantit">简报</view>
<view class="zonglanbox">
<view class="grid" v-for="(item,index) in numlist" :key="index">
<view class="audonum">{{item.name}}</text></view>
<view class="audonum">{{item.name}}</view>
<view class="num">{{item.num}}</view>
</view>
</view>
@@ -398,6 +404,11 @@
}, 1000);
},
methods: {
towajue(){
uni.navigateTo({
url: "/pages/center/Piabodata/requireminingAnalysis"
})
},
queryHaveDept() {
return new Promise((resolve, reject) => {
this.$u.get("/user/queryHaveDept?houseId=" + this.houseId).then(res => {


+ 85
- 65
pages/center/Piabodata/requireminingAnalysis.vue Visa fil

@@ -14,13 +14,10 @@
{{ guwen}}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<!-- <view class="tabbox" @click="taptimetuisshow">
<view class="tabbox" @click="huashushow=true">
{{ huashu}}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view> -->
<!-- <view class="tabbox" @click="screenshow">
更多筛选<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view> -->
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="boxzonglan" style="min-height: 400rpx;">
@@ -59,7 +56,7 @@
</view>
<view class="uchaserbox">
<qiun-data-charts type="line" :chartData="lineOptsect" :opts="lineOpts" background="none"
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba2" :canvas2d="true" />
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
@@ -72,7 +69,7 @@
type="ring"
:chartData="ringChartData"
:canvas2d="true"
:canvasId="ChartBoxIdwangxiaohuaerlingilingwuyiba1"
canvasId="ChartBoxIdwangxiaohuaerlingilingwuyiba1"
:opts='opts'
background="none" />
</view>
@@ -90,7 +87,7 @@
<view>操作</view>
</view>
<view v-if="total==0" style="color: #999999;width: 100%;height: 500rpx;line-height: 500rpx;text-align: center;" >暂无数据</view>
<view class="tabtd" v-for="(item,i) in sortList" :key="i">
<view class="tabtd" v-for="(item,i) in rankList" :key="i">
<view>
<image v-if="i==0" class="ranking" src="../../../static/images/ranking1.png" mode=""></image>
<image v-else-if="i==1" class="ranking" src="../../../static/images/ranking2.png" mode=""></image>
@@ -117,9 +114,11 @@
自定义</view>
</u-popup>
<u-calendar v-model="calendarShow" mode="range" @change="calendarTimeChange"></u-calendar>
<u-select v-model="guwenshow" :list="staffList" @confirm="staffSelectCallback($event,0)"
<u-select v-model="guwenshow" :list="staffList" @confirm="guwenCallback"
:default-value='selindex'></u-select>
<u-select v-model="deptshow" :list="teamList" @confirm="deptCallback"
:default-value='selindex'></u-select>
<u-select v-model="deptshow" :list="teamList" @confirm="staffSelectCallback($event,1)"
<u-select v-model="hushushow" :list="hushuList" @confirm="huashuCallback"
:default-value='selindex'></u-select>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
@@ -137,19 +136,21 @@
data() {
return {
selindex: '',
huashushow: false,
guwenshow: false,
timeshow: false,
selectshow: false,
deptshow: false,
deptVal: '',
huashuVal: '',
guwenVal: '',
// 筛选文字展示
time: '近7天',
dept: '部门',
guwen: '顾问',
huashu: '话术',
huashu: '业务话术',
showDesc: false,
sortList: [],
rankList: [],//排名列表
ringChartData: {
},
// ring图 分布图
@@ -189,10 +190,9 @@
},
activeTotal: 4,
houseId: '',
// 员工列表
staffList: [],
// 团队列表
teamList: [],
hushuList: [],// 业务话术
staffList: [],// 员工列表
teamList: [],// 团队列表
team: {
value: '',
label: ''
@@ -200,7 +200,6 @@
startDate: '',
endDate: '',
calendarShow: false,
activeTab: 0,
numlist: [{
name: '平均需求挖掘率',
firstnum: '',
@@ -232,17 +231,13 @@
lineOptsect: {
"categories": [],
"series": [{
"name": "第一段",
"name": "起始时间",
"data": []
},{
"name": "第二段",
"name": "对比时间",
"data": []
}
]
}]
},
Theteamcomparedisshow: false,
Groupcontrastisshow: false,
allList: [],
lineOpts: {
yAxis: {
data: [{
@@ -254,7 +249,6 @@
};
},
onShow() {
// this.LOADING = true
// 获取项目id
this.houseId = uni.getStorageSync('buildingID').id;
// 获取员工
@@ -264,35 +258,39 @@
this.getdata()
},
onReady: function(){
this.getRingData()
},
onPullDownRefresh() {
// 获取项目id
this.houseId = uni.getStorageSync('buildingID').id;
// 获取员工
this.getStaffList()
// 获取团队
this.getSectionList()
this.getdata()
},
methods: {
getdata(){
// 需求挖掘分析-简报
this.wordMiningAnalyze()
// 挖掘趋势图
this.getwordMiningAnalyzePercentage()
//需求挖掘排行
this.getwordMiningRank()
// 挖掘趋势图
this.getwordMiningAnalyzePercentage()
// 需求挖掘f分布图
this.getRingData()
},
// 需求挖掘排行
getwordMiningRank(){
this.$u.post('/cusLvStatistics/wordMiningRank', {
houseId: this.houseId,
deptId: this.deptVal,
createUser: this.guwenVal,
"houseId": this.houseId,
"deptId": this.deptVal,
"createUser": this.guwenVal,
"dateType":this.activeTotal,
"firstStartDate":!this.activeTotal?this.startDate:'',
"firstEndDate":!this.activeTotal?this.endDate:''
})
.then(res => {
console.log(res)
// console.log(res)
if(res.length){
this.sortList = res.map(item=>{
this.rankList = res.map(item=>{
return {
name: item.name,
id: item.id,
@@ -300,21 +298,23 @@
selected: item.selected
}
})
}else{
this.rankList = []
}
})
},
// 需求挖掘分布图
getRingData(){
this.$u.post('/cusLvStatistics/wordMiningAnalyzeFenbu', {
houseId: this.houseId,
deptId: this.deptVal,
createUser: this.guwenVal,
"houseId": this.houseId,
"deptId": this.deptVal,
"createUser": this.guwenVal,
"firstStartDate":!this.activeTotal?this.startDate:'',
"firstEndDate":!this.activeTotal?this.endDate:'',
"dateType":this.activeTotal
})
.then(res => {
console.log(res)
// console.log(res)
this.ringChartData = { series: [
{
data: [
@@ -330,15 +330,15 @@
Toview(){
//跳转到接待记录
uni.navigateTo({
url: '/pages/center/records/index'
url: '/pages/center/records/index?refresh=refresh'
});
},
// 需求挖掘分析-简报
wordMiningAnalyze() {
let params = {
"houseId":this.houseId,
deptId: this.deptVal,
createUser: this.guwenVal,
"deptId": this.deptVal,
"userId": this.guwenVal,
"dateType": this.activeTotal,
"firstStartDate":!this.activeTotal?this.startDate:'',
"firstEndDate":!this.activeTotal?this.endDate:''
@@ -346,6 +346,8 @@
this.$u.post("/cusLvStatistics/wordMiningAnalyze",params).then(res => {
// console.log(res.contrast)
res.contrast.wordFraction = (res.contrast.wordFraction || 0) + '%'
res.first.wordFraction = (res.first.wordFraction || 0) + '%'
res.end.wordFraction = (res.end.wordFraction || 0) + '%'
this.numlist.forEach(item => {
item.duibinum = res.contrast[item.setName]
item.endnum = res.end[item.setName]
@@ -367,43 +369,47 @@
value: item.accountId
}
})
this.staffList.unshift({
label: '全部',
value: ''
})
}
})
},
// 需求挖掘率趋势图
getwordMiningAnalyzePercentage() {
let categories1 = []
let categories2 = []
let categories3 = []
this.$u.post('/cusLvStatistics/wordMiningAnalyzePercentage', {
houseId: this.houseId,
deptId: this.deptVal,
createUser: this.guwenVal,
"houseId": this.houseId,
"deptId": this.deptVal,
"createUser": this.guwenVal,
"dateType": this.activeTotal,
"firstStartDate":!this.activeTotal?this.startDate:'',
"firstEndDate":!this.activeTotal?this.endDate:''
})
.then(res => {
let categories1 = []
let categories2 = []
if(res.first&&res.first.length){
categories1 = res.first.map(item=> item.statDate.substring(0,10))
this.lineOptsect.series[0].data=res.first.map(item=> item.wordFraction)
}else{
categories1= []
this.lineOptsect.series[0] = []
this.lineOptsect.series[0].data = []
}
if(res.end&&res.end.length){
this.lineOptsect.series[1].data=res.end.map(item=> item.wordFraction)
categories2 = res.end.map(item => item.statDate.substring(0,10))
}else{
categories2 = []
this.lineOptsect.series[1].data = []
}
let categories3 =[]
categories1.forEach(item1=>{
categories2.forEach(item2=>{
categories3.push(item1+ '/' + item2)
})
})
for(let i=0;i<categories1.length;i++){
categories3.push(categories1[i]+'/'+categories2[i])
}
// console.log(categories3)
this.lineOptsect.categories = categories3
console.log(this.lineOptsect.categories)
})
},
// 获取团队列表
@@ -420,6 +426,10 @@
value: item.deptId
}
})
this.teamList.unshift({
label: '全部',
value: ''
})
}
})
},
@@ -437,16 +447,26 @@
}
this.timeshow = false
},
staffSelectCallback(e, idx) {
if (idx == 0) {
this.guwenVal = e[0].value
this.guwen = e[0].label
} else { // 部门
this.dept = e[0].label
this.deptVal = e[0].value
}
// 顾问选择
guwenCallback(e){
// console.log(e)
this.guwenVal = e[0].value
this.guwen = e[0].label
this.getdata()
},
// 部门选择
deptCallback(e){
// console.log(e)
this.deptVal = e[0].value
this.dept = e[0].label
this.getdata()
},
// 话术选择
huashuCallback(e){
// console.log(e)
this.huashuVal = e[0].value
this.huashu = e[0].label
this.getdata()

},
//自定义时间
calendarTimeChange(e) {
@@ -517,7 +537,7 @@
.tongjiDesc{
width: 80%;
background: #FFFFFF;
border-radius: 4rpx;
border-radius: 12rpx;
padding: 30rpx;
}
.close{


+ 93
- 65
pages/center/consumer/consumerDetail.vue Visa fil

@@ -14,18 +14,49 @@
<image class="screen-sel-img" src="../../../static/images/edit.png" mode=""></image>
</view>
</view>
<!-- <view class="right">
<view class="point"></view>
<view class="test">定金</view>
</view> -->
<view class="right">
<view class="test"
>销讲执行:<text class="blue"
>{{ customerInfo.fraction || 0 }}%</text
></view
>
</view>
</view>
<view class="content-sec">
<view class="content-sec-lab">
手机号码:<view class="content-sec-lab1">
{{customerInfo.phone&&customerInfo.isShow==1?customerInfo.phone.length==11?customerInfo.phone.substr(0, 3) + '****' + customerInfo.phone.substr(7):customerInfo.phone:customerInfo.phone&&customerInfo.isShow!=1?customerInfo.phone: '--'}}
<view class="content-sec-lab1">
手机号码:{{customerInfo.phone&&customerInfo.isShow==1?customerInfo.phone.length==11?customerInfo.phone.substr(0, 3) + '****' + customerInfo.phone.substr(7):customerInfo.phone:customerInfo.phone&&customerInfo.isShow!=1?customerInfo.phone: '--'}}
</view>
<view class="content-sec-lab1" style="width: 44%"
>到访次数:{{ customerInfo.visitRecord || "--" }}次/{{
customerInfo.mm || 0
}}min</view
>
</view>
<view class="content-sec-lab" @click.stop="tipupon">
<view class="content-sec-lab">
<view class="content-sec-lab1"
>需求挖掘:{{ customerInfo.wordFraction || 0 }}%</view
>
<view class="content-sec-lab1" @click.stop="tipupon" style="width: 44%"
>画像标签:<text class="look">{{
customerInfo.demand.cusSemanticWordsList.length || 0
}}</text><text class="look1" >查看</text></view
>
</view>
<view class="content-sec-lab">
<view class="content-sec-lab1"
>所属顾问:{{ customerInfo.agentName || "--" }}</view
>
<view class="content-sec-lab1" style="width: 44%"
>客户阶段:{{ customerInfo.agentName || "--" }}</view
>
</view>
<view class="content-sec-lab">
<view class="content-sec-lab1"
>上次到访:{{ customerInfo.createTime || "--" }}</view
>
</view>
<!-- <view class="content-sec-lab" @click.stop="tipupon">
客户标签:
<text v-if="!customerInfo.demand.cusSemanticWordsList">暂无</text>
<view v-else class="content-sec-tips"
@@ -33,21 +64,7 @@
<view class="conmsg-msg-lab-img" v-if="customerInfo.demand.cusSemanticWordsList.length>0">
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
</view>
</view>
<view class="content-sec-lab">
顾问姓名:<view class="content-sec-lab1">{{customerInfo.ownerName||'--'}}</view>
</view>
<view class="content-sec-lab">
需求挖掘:<view class="content-sec-lab1">{{customerInfo.wordFraction||0}}%</view>
</view>
<view class="content-sec-lab">
添加时间:<view class="content-sec-lab1">{{customerInfo.createTime}}</view>
</view>
<view class="content-sec-num">
<view class="">{{customerInfo.visitRecord || '--'}}次到访</view>
<view class="">{{customerInfo.fraction || '0'}}% | {{customerInfo.mm || '0'}}<text
style="font-size: 24rpx;">min</text></view>
</view>
</view> -->
</view>
<view class="content-last">
<view class="content-last-con">
@@ -336,9 +353,9 @@
<view class="foot-tab" @click="followRecordAdd()">写跟进</view>
</view>
<!-- closeable -->
<u-popup v-model="tipshow" mode="center" width="500rpx" height="500rpx" closeable>
<u-popup v-model="tipshow" mode="center" mask-close-able width="560rpx" border-radius="14">
<scroll-view scroll-y="true" style="height: 440rpx;">
<view style="margin-top: 60rpx; display: flex; flex-wrap: wrap; padding-left: 20rpx;">
<view style="display: flex; flex-wrap: wrap; padding:20rpx;">
<view class="upon-sec-tips" v-for="(item,index) in customerInfo.demand.cusSemanticWords"
:key="index">
{{item.name}}
@@ -1049,7 +1066,6 @@
display: flex;
justify-content: space-between;
box-sizing: border-box;
// border-top: 1px solid #E0E0E0;
font-weight: 400;
color: #292929;
height: 90rpx;
@@ -1060,21 +1076,22 @@
display: flex;

.img {
// margin-top: 19rpx;
width: 52rpx;
height: 52rpx;
border: 1px solid #E0E0E0;
border-radius: 50%;
text-align: center;
line-height: 50rpx;
margin-right: 20rpx;
}

.test {
margin-top: 11rpx;
font-weight: 500;
color: #333333;
}
width: 52rpx;
height: 52rpx;
border-radius: 50%;
text-align: center;
line-height: 50rpx;
margin-right: 20rpx;
color: #fff;
font-size: 30rpx;
background: #9f61c8;
}

.test {
margin-top: 11rpx;
font-weight: 500;
color: #333333;
}

.edit {
height: 30rpx;
@@ -1089,22 +1106,18 @@
}
}

.right {
display: flex;

.point {
width: 12rpx;
height: 12rpx;
background: #2B6EFF;
border-radius: 50%;
margin-right: 9rpx;
margin-top: 20rpx;
}

.test {
margin-top: 11rpx;
}
}
.right {
display: flex;
.test {
margin-top: 11rpx;
.blue {
font-size: 32rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #2671e2;
}
}
}
}

.content-sec {
@@ -1113,8 +1126,9 @@
position: relative;

.content-sec-lab {
margin-top: 30rpx;
margin-top: 28rpx;
display: flex;
justify-content: space-between;
font-size: 30rpx;
font-weight: 400;
color: #666666;
@@ -1122,6 +1136,21 @@

.content-sec-lab1 {
color: #333333;
.look{
font-size: 32rpx;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
color: #2671E2;
}
.look1{
height: 42rpx;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #2671E2;
line-height: 42rpx;
margin-left: 60rpx;
}
}

.content-sec-tips {
@@ -1404,22 +1433,21 @@
}

.upon-sec-tips {
// max-width:120rpx ;
min-width:96rpx;
height: 46rpx;
background: #F2F2F2;
border-radius: 6rpx;
text-align: center;
line-height: 26rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 46rpx;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
font-size: 26rpx;
font-weight: 400;
color: #333333;
margin-right: 20rpx;
margin-top: 20rpx;
margin: 0 20rpx 20rpx 0;
padding: 0 10rpx;
box-sizing: border-box;
padding: 10rpx 24rpx;
}

.conmsg-msg-lab-img {


+ 4
- 4
pages/center/consumer/edit.vue Visa fil

@@ -465,20 +465,20 @@
.con-msg-con {
display: flex;
flex-wrap: wrap;
// justify-content: space-around;
border-bottom: 1px solid #E0E0E0;
padding-bottom: 16rpx;

.chebox {
// width: 20%;
height: 60rpx;
line-height: 60rpx;
// margin: 10rpx 0;
margin-bottom: 25rpx;
margin-right: 20rpx;
border: 1px solid #E0E0E0;
box-sizing: border-box;
padding: 0 10rpx;
border-radius: 12rpx;
min-width: 150rpx;
text-align: center
}
}

@@ -486,7 +486,7 @@
width: 120rpx;
height: 60rpx;
background: #FFFFFF;
border-radius: 4rpx;
border-radius: 12rpx;
border: 1px solid #E0E0E0;
text-align: center;
line-height: 60rpx;


+ 1456
- 1006
pages/center/consumer/index.vue
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 463
- 365
pages/center/records/index.vue
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 10
- 7
pages/index/index.vue Visa fil

@@ -440,12 +440,15 @@

},
success: (res) => {
this.first(res.data.data.id)
this.content = res.data.data.content
this.tit = res.data.data.title
this.aid = res.data.data.accountId
this.id = res.data.data.id
this.isShowUpdate = res.data.data.readFlag == 0 ? true : false;
let data = res.data.data
if(data){
this.first(data.id)
this.content = data.content
this.tit = data.title
this.aid = data.accountId
this.id = data.id
this.isShowUpdate = data.readFlag == 0 ? true : false;
}
}
})
},
@@ -487,7 +490,7 @@
this.$u.get("/user/getMenu").then(data => {
uni.setStorageSync("weapp_session_Menu_data", data)
this.Menulist = uni.getStorageSync('weapp_session_Menu_data');
console.log(this.Menulist, 'adasdasds123')
// console.log(this.Menulist, 'adasdasds123')
})
},
//自定义时间


+ 111
- 29
pages/mine/details.vue Visa fil

@@ -72,6 +72,9 @@
<view v-if="jiaoseshow" @click="Addtheessence()"
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 22rpx;">加精华
</view>
<!-- <view @click="openwajue()"
style="font-size: 24rpx;text-align: center;margin-left: 22rpx;">挖掘话术
</view> -->
<view @click="clickbofang(dialog.backindex,item)"
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 14rpx;">播放
</view>
@@ -118,10 +121,19 @@
<view style="width: 78rpx;text-align: center;">设备日志</view>
</view>
<!-- 加入常错词 -->
<view class="zhezhoa" v-if="isshow2" @tap="Cancelout"></view>
<view class="zhezhao" v-if="isshow2" @tap="Cancelout"></view>
<u-modal v-model="isshow2" title="添加常错词" :show-cancel-button="true" @cancel="Cancelout" @confirm="Confirmtheexit">
<view class="tian-view">
<viwe class="tian-view-t2" style="margin-left: 20rpx;">
常错词:<textarea :auto-height="true" type="text" v-model="thewrongword" :disabled="isNum" class="tian-input" placeholder="请输入" />
</viwe>
</view>
<view class="tian-view">
<viwe class="tian-view-t3" style="margin-left: 20rpx;">正确词:<input class="huashu-input" v-model="reswrongword" type="text" placeholder="请输入" />
</viwe>
</view>
<!-- <view class="tian-view">
<viwe class="tian-view-t1"></viwe>
<viwe class="tian-view-t2">常错词:</viwe>
<viwe class="tian-view-t3">
@@ -134,7 +146,7 @@
<viwe class="tian-view-t3">
<input class="tian-input" v-model="reswrongword" type="text" placeholder="请输入" />
</viwe>
</view>
</view> -->
</u-modal>
<!-- <view class="bounced" v-if="isshow2">
@@ -158,7 +170,7 @@
</view>
</view> -->
<!-- 加精华 -->
<view class="zhezhoa" v-if="isshow3" @tap="Cancelout2"></view>
<view class="zhezhao" v-if="isshow3" @tap="Cancelout2"></view>
<view class="bounced" v-if="isshow3">
<view class="jiajinghuatit">加精华</view>
<view style="width: 100%;text-indent: 20rpx;font-size: 28rpx;">选择标签</view>
@@ -173,8 +185,24 @@
<view class="bounced3-2" @tap="Confirmtheexit2">确认</view>
</view>
</view>
<!-- 加入挖掘话术 -->
<view class="zhezhao" v-if="wajueshow" @tap="CancelAdd"></view>
<u-modal v-model="wajueshow" title="新增挖掘话术" :show-cancel-button="true" @cancel="CancelAdd" @confirm="wajueConfirm(word)">
<view class="tian-view" style="margin-left: 20rpx;">
<viwe class="tian-view-t3">
话术分类:<input class="huashu-input" disabled @click="treeshow=true" v-model="wordBiaoqian" type="text" placeholder="请选择" />
</viwe>
</view>
<view class="tian-view" style="margin-left: 20rpx;">
<viwe class="tian-view-t2">
话术内容:<textarea :auto-height="true" type="text" v-model="thewrongword" class="tian-input" placeholder="请输入" />
<!-- <input class="huashu-input" v-model="thewrongword" type="text" placeholder="请输入" /> -->
</viwe>
</view>
</u-modal>
<u-select v-model="treeshow" mode="mutil-column-auto" @confirm="confirm" :list="treelist"></u-select>

<view class="zhezhoa" v-if="effective"></view>
<view class="zhezhao" v-if="effective"></view>
<view class="bounced" v-if="effective">
<view class="jiajinghuatit">选择</view>
<view>
@@ -212,6 +240,11 @@
},
data() {
return {
wajueshow: false,
wordBiaoqian: '',
wordBiaoqianId: [],
treelist: [],
treeshow: false,
recordPath: "",
customerId: "",
luyinList: [], //录音文件
@@ -329,6 +362,7 @@
}
})
this.buildingID = uni.getStorageSync('buildingID').id;
this.getWordMiningList()
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
if (this.userInfo.dataCode == 6) {
this.jiaoseshow = false
@@ -340,7 +374,6 @@
!this.isPageHide && this.init(info)
},


onHide() {
this.isPageHide = true
},
@@ -371,6 +404,58 @@
}
},
methods: {
//获取画像标签
getWordMiningList() {
this.treelist = [];
this.$u.get("/corpus/findSelectedWordMiningTemplate", {
houseId: this.buildingID,
selected: 0
})
.then((res) => {
// console.log(res)
if(res.length){
res.forEach(item=>{
item.value = item.id;
item.label = item.name;
if(item.children.length){
item.children.forEach(subitem=>{
subitem.value = subitem.id;
subitem.label = subitem.name;
})
}else{
item.children=[{
value: 'default'+ item.id,
label: '--'
}]
}
})
}
this.treelist = res;
});
},
wajueConfirm(){
},
// 挖掘话术分类树的选择
confirm(e){
console.log(e)
if(e[1].label=='--'){
this.wordBiaoqian = e[0].label
this.wordBiaoqianId[0] = e[0].value
}else{
this.wordBiaoqian = e[0].label + '-' + e[1].label
this.wordBiaoqianId[0] = e[0].value
this.wordBiaoqianId[1] = e[1].value
}
},
CancelAdd(){
this.wajueshow = false
},
//加入挖掘话术
openwajue(word) {
this.wajueword = word;
this.wajueshow = true;
},
eqLogClick(){
uni.navigateTo({
url:`./equipmentLog?id=${this.customerId}`
@@ -1190,44 +1275,41 @@

// 表单
.tian-view {
width: 570upx;
width: 570rpx;
background-color: #FFFFFF;
border-bottom: 1px solid #ededee;
display: flex;
min-height: 96rpx;

.tian-view-t1 {
width: 20rpx;
font-size: 34rpx;
height: 34rpx;
line-height: 110rpx;
letter-spacing: 0px;
color: red;
}
margin-bottom:30rpx;

.tian-view-t2 {
width: 30%;
min-height: 96rpx;
line-height: 96rpx;
width: 100%;
font-size: 34rpx;
display: flex;
align-items: center;
color: #333;
.tian-input {
width: 384rpx;
font-size: 34rpx;
padding: 0 10rpx;
border: none;
border-bottom: 1px solid #e0e0e0;
}
}

.tian-view-t3 {
width: 61%;
padding-top: 31rpx;
padding-bottom: 31rpx;
width: 100%;
display: flex;

.tian-input {
width: 98%;
font-size: 34rpx;
align-items: center;
.huashu-input{
width: 384rpx;
height: 60rpx;
padding: 0 10rpx;
font-size: 34rpx;
border: none;
border-bottom: 1px solid #E0E0E0;
}
}
}

.zhezhoa {
.zhezhao {
position: fixed;
top: 0;
left: 0;


+ 127
- 70
pages/mine/details2.vue Visa fil

@@ -66,6 +66,9 @@
<view @click="Oftenthewrongword()"
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 22rpx;">常错词
</view>
<view @click="openwajue(item)"
style="font-size: 24rpx;text-align: center;margin-left: 22rpx;">挖掘话术
</view>
<view v-if="jiaoseshow" @click="Addtheessence()"
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 22rpx;">加精华
</view>
@@ -129,7 +132,7 @@
</view>
</template>
<!-- 标记 -->
<view class="zhezhoa" v-if="biojiisshow" @tap="unmarktap()"></view>
<view class="zhezhao" v-if="biojiisshow" @tap="unmarktap()"></view>
<view class="bounced" v-if="biojiisshow">
<view class="jiajinghuatit">标记为顾问</view>
<view
@@ -145,51 +148,36 @@
</view>
</view>

<!-- 加入常错词 -->
<view class="zhezhoa" v-if="isshow2" @tap="Cancelout"></view>

<u-modal v-model="isshow2" title="添加常错词" :show-cancel-button="true" @cancel="Cancelout"
@confirm="$noMultipleClicks(Confirmtheexit)">
<view class="tian-view">
<viwe class="tian-view-t1"></viwe>
<viwe class="tian-view-t2">常错词:</viwe>
<!-- 加入挖掘话术 -->
<view class="zhezhao" v-if="wajueshow" @tap="CancelAdd"></view>
<u-modal v-model="wajueshow" title="新增挖掘话术" :show-cancel-button="true" @cancel="CancelAdd" @confirm="wajueConfirm()">
<view class="tian-view" style="margin-left: 20rpx;">
<viwe class="tian-view-t3">
<textarea :auto-height="true" type="text" v-model="thewrongword" :disabled="isNum"
class="tian-input" placeholder="请输入" />
话术分类:<input class="huashu-input" disabled @click="treeshow=true" v-model="wordBiao.wordBiaoqian" type="text" placeholder="请选择" />
</viwe>
</view>
<view class="tian-view" style="margin-bottom: 74rpx;">
<viwe class="tian-view-t1"></viwe>
<viwe class="tian-view-t2">正确词:</viwe>
<viwe class="tian-view-t3">
<input class="tian-input" v-model="reswrongword" type="text" placeholder="请输入" />
<view class="tian-view" style="margin-left: 20rpx;">
<viwe class="tian-view-t2">
话术内容:<textarea :auto-height="true" type="text" v-model="thewrongword" class="tian-input" placeholder="请输入" />
</viwe>
</view>
</u-modal>

<!-- <view class="bounced" v-if="isshow2">
<!-- 加入常错词 -->
<view class="zhezhao" v-if="isshow2" @tap="Cancelout"></view>
<u-modal v-model="isshow2" title="添加常错词" :show-cancel-button="true" @cancel="Cancelout" @confirm="$noMultipleClicks(Confirmtheexit)">
<view class="tian-view">
<viwe class="tian-view-t1"></viwe>
<viwe class="tian-view-t2">常错词:</viwe>
<viwe class="tian-view-t3">
<input type="text" v-model="thewrongword" class="tian-input" placeholder="请输入" />
<viwe class="tian-view-t2" style="margin-left: 20rpx;">
常错词:<textarea :auto-height="true" type="text" v-model="thewrongword" :disabled="isNum" class="tian-input" placeholder="请输入" />
</viwe>
</view>
<view class="tian-view">
<viwe class="tian-view-t1"></viwe>
<viwe class="tian-view-t2">正确词:</viwe>
<viwe class="tian-view-t3">
<input class="tian-input" v-model="reswrongword" type="text" placeholder="请输入" />
</viwe>
</view>
<view class="bounced3">
<view class="bounced3-1" @tap="Cancelout">取消</view>
<view class="bounced3-2" @tap="Confirmtheexit">确认</view>
<viwe class="tian-view-t3" style="margin-left: 20rpx;">正确词:<input class="huashu-input" v-model="reswrongword" type="text" placeholder="请输入" /></viwe>
</view>
</view> -->
</u-modal>

<!-- 加精华 -->
<view class="zhezhoa" v-if="isshow3" @tap="Cancelout2"></view>
<view class="zhezhao" v-if="isshow3" @tap="Cancelout2"></view>
<view class="bounced" v-if="isshow3">
<view class="jiajinghuatit">加精华</view>
<view style="width: 100%;text-indent: 20rpx;font-size: 28rpx;">选择标签</view>
@@ -206,7 +194,7 @@
</view>

<!-- 接待详情 -->
<view class="zhezhoa" @click="clenReceivedetailsabout()" v-if="Receivedetailsabout"></view>
<view class="zhezhao" @click="clenReceivedetailsabout()" v-if="Receivedetailsabout"></view>
<view class="followingpop-up" v-if="Receivedetailsabout">
<view class="guanbibox">
<image class="guanbixen" @click="clenReceivedetailsabout()" src="../../static/images/Shutdown.png"
@@ -247,7 +235,7 @@
</view>

<!-- 销讲执行 -->
<view class="zhezhoa" @click="clenReceivedetailsabout()" v-if="Pinspeak"></view>
<view class="zhezhao" @click="clenReceivedetailsabout()" v-if="Pinspeak"></view>
<view class="followingpop-up" v-if="Pinspeak">
<view class="guanbibox">
<image class="guanbixen" @click="clenReceivedetailsabout()" src="../../static/images/Shutdown.png"
@@ -392,7 +380,7 @@
</view>

<!-- 客户意向 -->
<view class="zhezhoa" @click="clenReceivedetailsabout()" v-if="intention"></view>
<view class="zhezhao" @click="clenReceivedetailsabout()" v-if="intention"></view>
<view class="followingpop-up" v-if="intention">
<view class="guanbibox">
<image class="guanbixen" @click="clenReceivedetailsabout()" src="../../static/images/Shutdown.png"
@@ -465,7 +453,7 @@
<view class="calibration" @click="$noMultipleClicks(tocalibration)">校准</view>
</view>

<view class="zhezhoa" v-if="effective"></view>
<view class="zhezhao" v-if="effective"></view>
<view class="bounced" v-if="effective">
<view class="jiajinghuatit">选择</view>
<view>
@@ -491,7 +479,7 @@
</view>

<!-- 修改角色 -->
<view class="zhezhoa" v-if="roleisshaw" @tap="unmarktap()"></view>
<view class="zhezhao" v-if="roleisshaw" @tap="unmarktap()"></view>
<view class="bounced" v-if="roleisshaw">
<view class="jiajinghuatit">修改角色</view>
<view
@@ -511,7 +499,7 @@
</view>

<u-toast ref="uToast" />
<u-select v-model="treeshow" mode="mutil-column-auto" @confirm="confirmTree" :list="treelist"></u-select>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>

@@ -533,6 +521,14 @@

data() {
return {
wordBiao: {
level: 1,
wordBiaoqian: '',
wordBiaoqianId: ''
},// 添加话术
treelist: [],
huaxiangList: [],
treeshow: false,
KeyWordsfraction: 0,
KeyWordsfractionList: [],
noClick: true,
@@ -598,7 +594,6 @@
Menulistisshow: false,
validInvalid: 0,
calibration: 0,

effective: false,
effectiveindex: '0',
effectiveitems: [{
@@ -627,12 +622,12 @@
textItself: '',
argtextindex1: 0,
argtextindex2: 0,

wajueshow: false,
wajueword: '',
roleisshaw: false,
roleindexrow: 0,
roletiaoshu: 0,
infos: null,

ACTION: Symbol('zaudio'), // 唯一值区分每个页面的方法
isPageHide: false, // 是否息屏
duration: '', // 总时长
@@ -698,6 +693,7 @@
this.intention = false;
this.kehuyixiangcenterindex = 0;
this.buildingID = uni.getStorageSync('buildingID').id;
this.getWordMiningList()
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) {
this.methodsisshow = false;
@@ -730,6 +726,67 @@
},

methods: {
//获取画像标签
getWordMiningList() {
this.treelist = [];
this.$u.get("/corpus/findSelectedWordMiningTemplate", {
houseId: this.buildingID,
selected: 0
})
.then((res) => {
// console.log(res)
if(res.length){
res.forEach(item=>{
item.value = item.id;
item.label = item.name;
if(item.children.length){
item.children.forEach(subitem=>{
subitem.value = subitem.id;
subitem.label = subitem.name;
})
}else{
item.children=[{
value: 'default'+ item.id,
label: '--'
}]
}
})
}
this.treelist = res;
});
},
// 添加挖掘词
wajueConfirm(){
this.$u.post("/corpus/addWordMining", {
"houseId":this.buildingID,// 楼盘id
"cusId":this.customerId, //客户id
"question":this.thewrongword,// 问题
"keywordsId":this.wordBiao.wordBiaoqianId,// 标签id
"level":this.wordBiao.level // 标签等级
})
.then((res) => {
console.log(res)
this.wajueItem.isshow = false
})
},
// 挖掘话术分类树的选择
confirmTree(e){
console.log(e)
if(e[1].label=='--'){
this.wordBiao.wordBiaoqian = e[0].label
this.wordBiao.wordBiaoqianId = e[0].value
this.wordBiao.level = 1
}else{
this.wordBiao.wordBiaoqian = e[0].label + '/' + e[1].label
this.wordBiao.wordBiaoqianId= e[1].value
this.wordBiao.level = 2
}
console.log(this.wordBiao.wordBiaoqian)
},
CancelAdd(){
this.wajueshow = false
this.wajueItem.isshow= false
},
// 选中取反
cbChange(item) {
item.checked = !item.checked
@@ -1060,8 +1117,6 @@
}
},



//接待详情点击
Receivedetailsabouttab(stringa) {
if (stringa == 'Receivedetailsabout') {
@@ -1527,6 +1582,11 @@
this.reswrongword = "";
this.isshow2 = true;
},
//加入挖掘话术
openwajue(item) {
this.wajueItem = item
this.wajueshow = true;
},
//加精华
Addtheessence() {
this.refined = true
@@ -1610,7 +1670,7 @@
changanxiaoguo(item, index, i) {
this.messagelisy = [];
this.changanitem = {};
this.duihuawenjianid = "",
this.duihuawenjianid = "";
this.cancelBeast()
this.changanitem = item;
this.duihuawenjianid = this.luyinList[this.csdFileindex].id;
@@ -1677,7 +1737,7 @@
show: false,
ratepercent: 0,
children: [],
viewFlag: item.viewFlag,
viewFlag: item.viewFlag
})
} else {
if (item.selected == 0) {
@@ -2141,7 +2201,7 @@
}


.zhezhoa {
.zhezhao {
position: fixed;
top: 0;
left: 0;
@@ -2626,39 +2686,36 @@

// 表单
.tian-view {
width: 570upx;
width: 570rpx;
background-color: #FFFFFF;
border-bottom: 1px solid #ededee;
display: flex;
min-height: 96rpx;

.tian-view-t1 {
width: 20rpx;
font-size: 34rpx;
height: 34rpx;
line-height: 110rpx;
letter-spacing: 0px;
color: red;
}
margin-bottom:30rpx;

.tian-view-t2 {
width: 30%;
min-height: 96rpx;
line-height: 96rpx;
width: 100%;
font-size: 34rpx;
display: flex;
align-items: center;
color: #333;
.tian-input {
width: 384rpx;
font-size: 34rpx;
padding: 0 10rpx;
border: none;
border-bottom: 1px solid #e0e0e0;
}
}

.tian-view-t3 {
width: 61%;
padding-top: 31rpx;
padding-bottom: 31rpx;
width: 100%;
display: flex;

.tian-input {
width: 98%;
font-size: 34rpx;
align-items: center;
.huashu-input{
width: 384rpx;
height: 60rpx;
padding: 0 10rpx;
font-size: 34rpx;
border: none;
border-bottom: 1px solid #E0E0E0;
}
}
}


+ 2
- 2
utils/domain.js Visa fil

@@ -1,8 +1,8 @@
// http.js使用域名
// const baseUrl = 'http://81.70.55.170:9090/autoSR/api';// 最新测试
const baseUrl = 'http://81.70.55.170:9090/autoSR/api';// 最新测试
// const baseUrl = 'http://127.0.0.1:8080/autoSR/api'; // 本地
// const baseUrl = 'http://192.168.31.169:8080/autoSR/api'; // 长龙
const baseUrl = 'http://192.168.31.149:9090/api'; // 盛浩
// const baseUrl = 'http://192.168.31.149:9090/api'; // 盛浩
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式
// const baseUrl = 'https://hfju.com/api'; // 数智正式
// const baseUrl = 'https://xitong.pachira.cn/api'; // AI营销辅助 普强使用


Laddar…
Avbryt
Spara