Browse Source

提交修改

yun
douzhuo 2 years ago
parent
commit
dabf68b07e
17 changed files with 774 additions and 920 deletions
  1. +2
    -2
      App.vue
  2. +56
    -0
      components/loading/index.vue
  3. +0
    -462
      components/long_audio/long_audio.vue
  4. +12
    -1
      pages/center/Piabodata/Groupcontrast.vue
  5. +11
    -0
      pages/center/Piabodata/StaffAnalysis.vue
  6. +13
    -0
      pages/center/Piabodata/Theteamcompared.vue
  7. +17
    -4
      pages/center/Piabodata/TrendAnalysis.vue
  8. +12
    -0
      pages/center/Piabodata/Userinsightinto.vue
  9. +22
    -8
      pages/center/Piabodata/index.vue
  10. +456
    -351
      pages/center/consumer/consumerDetail.vue
  11. +12
    -2
      pages/center/consumer/index.vue
  12. +16
    -4
      pages/center/prohibited/index.vue
  13. +15
    -4
      pages/center/records/index.vue
  14. +38
    -26
      pages/index/customer.vue
  15. +18
    -10
      pages/index/index.vue
  16. +13
    -2
      pages/mine/details2.vue
  17. +61
    -44
      pages/mine/reception/consultant.vue

+ 2
- 2
App.vue View File

@@ -6,7 +6,6 @@
onLaunch(options) {
uni.getSystemInfo({
success: function(e) {
console.log(e, 'adjsakljdklasjdklsakjdslakjd')
// #ifdef MP-WEIXIN
Vue.prototype.StatusBar = e.statusBarHeight;
let custom = wx.getMenuButtonBoundingClientRect();
@@ -19,7 +18,8 @@
return {
StatusBar: Vue.prototype.StatusBar,
CustomBar: Vue.prototype.CustomBar,
windowHeight: Vue.prototype.windowHeight
windowHeight: Vue.prototype.windowHeight,
LOADING: false
};
},



+ 56
- 0
components/loading/index.vue View File

@@ -0,0 +1,56 @@
<template>
<view class="pages" v-if="value">
<div class="donut"></div>
</view>
</template>

<script>
export default {
name: '加载组件',
props: {
// v-model绑定的变量
value: {
type: Boolean,
default: false
},
},
}
</script>

<style lang="scss" scoped>
.pages {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 999999;
display: flex;
flex-direction: column;
align-items: center;
background: #fff;

.donut {
margin-top: 35vh;
display: inline-block;
border: 10rpx solid rgba(0, 0, 0, 0.1);
border-left-color: #1296db;
border-radius: 50%;
width: 150rpx;
height: 150rpx;
animation: donut-spin 1.2s linear infinite;
}
}



@Keyframes donut-spin {
0% {
transform: rotate(0deg);
}

100% {
transform: rotate(360deg);
}
}
</style>

+ 0
- 462
components/long_audio/long_audio.vue View File

@@ -1,462 +0,0 @@
<template>
<view>
<!-- 播放块 -->
<view class="bottomhead">
<view class="audio-play" @tap="changePlayState">
<image class="image" mode="widthFix"
:src="audioPlay ? 'https://qufang.oss-cn-beijing.aliyuncs.com/upload/icon/xcx/jjycrm/pause.png' : 'https://qufang.oss-cn-beijing.aliyuncs.com/upload/icon/xcx/jjycrm/play.png'">
</image>
</view>
<view class="audio-slider">
<view class="audio-time">
<text>{{currentTimeStr}}</text>
</view>
<slider class="slider" min="0" :max="sliderMax" @change="sliderChangeComplate" block-size="14"
:value="sliderValue" activeColor="blue"></slider>
<view class="audio-time">
<text>{{timeStr}}</text>
</view>
</view>
</view>
</view>
</template>

<script>
var util = require("@/utils/util.js");
var config = require("@/config");
export default {
name: "long_audio",
data() {
return {
audioPlay: false, //当前的播放状态控制
sliderValue: 0, //进度条最小值
sliderMax: 0, //进度条最大值
innerAudioContext:null, //播放实例
currentTimeStr: "00:00", //当前进度的时间
timeStr: "00:00", //总的时间
recordPath: "",
luyinList: [], //录音文件
newluyinList: [],
dialogList: [], //录音识别列表
csdFileindex: 0,
date: "", //年月日
scrollId: "",
playNow: 0,
alltimeStr: "00:00:00",
};
},
props:{
customerId:'',
infos:null,
roleindex:0
},
mounted() {
this.roleindex = 0;
this.innerAudioContext = uni.createInnerAudioContext();
this.innerAudioContext.autoplay = false;
this.innerAudioContext.title = '音频';
this.onPlay()
this.onPause()
this.onCanplay()
this.onEnded()
this.onSeeking()
this.onSeeked()
this.TimeUpdate()
this.init(this.infos)
},
destroyed() {
//暂停
this.innerAudioContext.pause()
// 销毁
// this.innerAudioContext.destroy();
},
methods: {
onPlay() {
this.innerAudioContext.onPlay(() => {
// 播放监听
console.log('播放!');
this.audioPlay = true;
wx.enableAlertBeforeUnload({
message: "是否确认退出详情页面?",
success: function(res) {
console.log("方法注册成功:", res);
},
fail: function(errMsg) {
console.log("方法注册失败:", errMsg);
},
});
});
},
onPause() {
this.innerAudioContext.onPause(() => {
wx.disableAlertBeforeUnload({
success: function(res) {
console.log(res)
},
fail: function(e) {
console.log(e)
}
});
// 暂停监听
console.log('暂停播放!');
this.audioPlay = false
});
},
onCanplay() {
this.innerAudioContext.onCanplay((callback) => {
console.log("缓冲回调", this.innerAudioContext.duration);
})
},
onEnded() {
this.innerAudioContext.onEnded(() => {
// 结束播放监听
console.log('播放结束!');
this.audioPlay = false;
});
},
onSeeking() {
this.innerAudioContext.onSeeking((res) => {
console.log("进行跳转", res);
})
},
onSeeked() {
this.innerAudioContext.onSeeked((res) => {
console.log("结束跳转", res);
this.$forceUpdate()
});
},
TimeUpdate() {
this.innerAudioContext.onTimeUpdate(() => {
// var pages = getCurrentPages();
// if(pages[pages.length-1].route!="pages/mine/details2"){
// this.innerAudioContext.destroy();
// }
const {
currentTime,
duration
} = this.innerAudioContext;
console.log(currentTime, 'TimeUpdate, currentTime')
this.playNow = parseInt(currentTime * 1000)
uni.$emit("playNows", this.playNow)
console.log(this.playNow)
if (this.dialogList.length == 0) {
return
} else {
const message = this.dialogList[0].message;
for (let i = 0; i < message.length; i++) {
if (Number(message[i].bg) < this.playNow && Number(message[i].ed) > this.playNow) {
this.scrollId = "dialog" + this.csdFileindex + "text" + message[i].bg;
uni.$emit("scrollIds", this.scrollId)
break;
}
}
}
const currTimeStr = this.formatTime(currentTime);
this.sliderValue = parseInt(currentTime);
// 变动的时间
this.currentTimeStr = currTimeStr;
//进度条最大值
this.sliderMax = this.luyinList[this.csdFileindex].recordDuration;
this.$forceUpdate()
});
},
//分角色标记刷新
fenjiaoseunfo() {
var bgcd = this.sliderValue * 1000;
this.newluyinList = [];
this.dialogList = [];
uni.request({
url: config.service.getCorpusAnal + '?corpusId=' + this.luyinList[this.csdFileindex].id +
"&bg=" + bgcd + "&speaker=" + this.roleindex + '&num=50', //仅为示例,并非真实接口地址。
method: "GET",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
this.tablist = [];
let jsonInfo = JSON.parse(data.data.data.audioContent);
for (var i = 0; i <= data.data.data.speakerNum; i++) {
if (i === 0) {
this.tablist.push({
name: '全部'
})
} else {
this.tablist.push({
name: String.fromCharCode(i + 64)
})
}
}

if (data.data.data.speaker == null) {
this.roleindexbiaoji = 0;
this.dshfkjsdkksodofydwfkhwdfkjh = 0;
} else {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data.speaker]
.name + "顾问";
this.roleindexbiaoji = data.data.data.speaker - 1;
this.dshfkjsdkksodofydwfkhwdfkjh = data.data.data.speaker - 1;
}
if (this.roleindex > this.tablist.length - 1) {
this.roleindex = this.tablist.length - 1
this.fenjiaoseunfo()
}


this.speaker = data.data.data.speaker;
//上拉标记点
this.textindex = data.data.data.index;
//下拉标记点
this.toptextindex = data.data.data.index;

jsonInfo.forEach(item => {
item.message = JSON.parse(item.onebest)
item.backindex = this.csdFileindex
})
console.log(jsonInfo)

this.newluyinList = jsonInfo;
if (this.textindex == null) {
return
} else {
this.dialogList.push(jsonInfo[this.textindex]);
}
}
})
},
// 获取转义后的对话结果
getCorpusAnalysis(info) {
this.dialogList = [];
this.newluyinList = []
uni.request({
url: config.service.getCorpusAnal + '?corpusId=' + this.luyinList[this.csdFileindex].id +
"&bg=" + info.bg + "&speaker=" + this.roleindex + '&num=50', //仅为示例,并非真实接口地址。
method: "GET",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
this.tablist = [];
this.roleindexbiaoji = 0;
let jsonInfo = JSON.parse(data.data.data.audioContent);
for (var i = 0; i <= data.data.data.speakerNum; i++) {
if (i === 0) {
this.tablist.push({
name: '全部'
})
} else {
this.tablist.push({
name: String.fromCharCode(i + 64)
})
}
}
if (data.data.data.speaker == null) {
this.dshfkjsdkksodofydwfkhwdfkjh = 0;
} else {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data.speaker]
.name + "顾问";
this.roleindexbiaoji = data.data.data.speaker - 1;
this.dshfkjsdkksodofydwfkhwdfkjh = data.data.data.speaker - 1;
}
this.speaker = data.data.data.speaker;
//上拉标记点
this.textindex = data.data.data.index;
//下拉标记点
this.toptextindex = data.data.data.index;
jsonInfo.forEach(item => {
item.message = JSON.parse(item.onebest)
item.backindex = this.csdFileindex;
if (info.onebest) {
item.message.forEach(che => {
if (che.onebest == info.onebest) {
che.onebest =
`<font style='color: red'>${che.onebest}</font>`;
}
})
}
})
this.newluyinList = jsonInfo;
this.dialogList.push(jsonInfo[this.textindex]);
var itc = parseInt(info.bg / 1000)
this.adasdasdasd(itc)
}
})
},
init(info) {
this.sliderMax = 0; //进度条最大值
this.timeStr = "00:00"; //总的时间
const parames = {
pageNum: 1,
pageSize: 100,
query: {
customerId: this.customerId
}
}
this.$u.post("/corpus/findByPage", parames).then(res => {
if (res && res.length) {
let alltime = 1 + res[0].recordDuration;
this.calibration = res[0].calibration;
if (this.calibration == 0) {
this.kehuyixiangcenterindex = 0;
} else {
this.kehuyixiangcenterindex = 1;
}
this.alltimeStr = this.getTime(alltime)
if (info.bg != 0) {
this.luyinList = res;
this.recordPath = res[0].recordPath
this.sliderMax = this.getTime(res[0].recordDuration)
this.timeStr = this.getTime(res[0].recordDuration)
this.date = res[0].receptionTime;

this.getCorpusAnalysis(info);
this.creatAudio()
} else {
this.luyinList = res;
this.recordPath = res[0].recordPath
this.sliderMax = this.getTime(res[0].recordDuration)
this.timeStr = this.getTime(res[0].recordDuration)
this.date = res[0].receptionTime;

this.getCorpusAnalysis(info);
this.creatAudio()
}
}
})
},
//搜索跳转
adasdasdasd(e) {
const currTimeStr = this.formatTime(e)
this.currentTimeStr = currTimeStr
this.innerAudioContext.seek(e);
if (uni.getStorageSync('entrance') == 1) {
return
} else {
this.innerAudioContext.play();
}
},
getTime(time) {
return util.formatSecond(time)
},
// 录音暂停播放
changePlayState() {
if (this.audioPlay == false) {
this.innerAudioContext.play();
} else {
this.innerAudioContext.pause()
}
},
//音频前进回退
sliderChangeComplate(e) {
let platetime = e.detail.value * 1000;
this.dialogList = []
uni.request({
url: config.service.fastForward + '?corpusId=' + this.luyinList[this.csdFileindex].id +
"&bg=" + platetime, //仅为示例,并非真实接口地址。
method: "GET",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
this.textindex = data.data.data.index;
this.toptextindex = data.data.data.index;
if (data.data.data.index > this.newluyinList.length) {
this.dialogList.push(this.newluyinList[0])
} else {
this.dialogList.push(this.newluyinList[data.data.data.index])
}
console.log(e.detail, '1233333333333333333333333333333333333333333333333333333333333')
const currTimeStr = this.formatTime(e.detail.value)
this.currentTimeStr = currTimeStr
this.innerAudioContext.seek(e.detail.value);
this.innerAudioContext.play();
}
})
},
//录音实例
creatAudio() {
this.innerAudioContext = uni.createInnerAudioContext();
if (uni.getStorageSync('entrance') == 1) {
this.innerAudioContext.autoplay = false;
} else {
this.innerAudioContext.autoplay = true;
}
this.innerAudioContext.src = this.recordPath;
this.innerAudioContext.title = '音频';
this.onPlay()
this.onPause()
this.onCanplay()
this.onEnded()
this.onSeeking()
this.onSeeked()
this.TimeUpdate()
},
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
let second = num % 60;
if (second < 10) second = '0' + second;
let min = Math.floor(num / 60);
if (min < 10) min = '0' + min;
return min + ":" + second;
},
}
}
</script>

<style lang="scss">
.bottomhead {
width: 100%;
height: 81rpx;
border-bottom: 1px solid #E0E0E0;
display: flex;
justify-content: space-between;
align-items: center;

.audio-slider {
width: 87%;
display: flex;
justify-content: space-between;
align-items: center;
padding-right: 30rpx;
}

.audio-slider .slider {
width: 100%;
padding: 0px 15rpx;
box-sizing: border-box;
}

.audio-time {
width: 110rpx;
text-align: right;
font-size: 26rpx;
line-height: 28rpx;
color: #70798D;
display: flex;
justify-content: space-between;
}

.audio-play {
width: 48rpx;
height: 48rpx;
flex-shrink: 0;
}

.audio-play .image {
width: 100%;
height: 100%;
margin-left: 30rpx;
}
}
</style>

+ 12
- 1
pages/center/Piabodata/Groupcontrast.vue View File

@@ -208,6 +208,10 @@
<!-- 选择项目 -->
<u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'>
</u-select>


<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

@@ -215,7 +219,11 @@
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
activeTotal: 4,
@@ -312,6 +320,7 @@
};
},
onLoad() {
this.LOADING = true
let that = this
uni.$on('updateGroup', function(data) {
console.log(data)
@@ -354,7 +363,6 @@
this.getdata()
// console.log(this.staffList,this.staffList,this.houseId)
})

},
//指标执行率分析tab
tapspagek2(index) {
@@ -437,6 +445,7 @@
lastStartDate: this.lastStartDate
})
.then(res => {
this.LOADING = false
// console.log(res,123)
// 处理数据
// return
@@ -467,6 +476,8 @@
this.opts.extra.radar.max = max + 25
this.chartData = allobj
this.$forceUpdate()
}).catch(e => {
this.LOADING = false
})
},
//自定义时间


+ 11
- 0
pages/center/Piabodata/StaffAnalysis.vue View File

@@ -120,10 +120,17 @@
</u-select>
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'>
</u-select>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>
<script>
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
timepickpickisshow: true,
@@ -218,6 +225,7 @@
},

onLoad(option) {
this.LOADING = true
// 获取项目id
this.houseId = uni.getStorageSync('buildingID').id;
// 请求接口获取所有置业顾问员工的列表
@@ -459,6 +467,7 @@
lastStartDate: this.lastStartDate
})
.then(res => {
this.LOADING = false
// console.log(res)
let first = res.first
let second = res.second
@@ -499,6 +508,8 @@
}
this.opts.extra.radar.max = max + 25

}).catch(e => {
this.LOADING = false
})
},
tabtimetap(index) {


+ 13
- 0
pages/center/Piabodata/Theteamcompared.vue View File

@@ -256,6 +256,11 @@
</u-select>
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'>
</u-select>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

@@ -263,7 +268,11 @@
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
activeTotal: 4,
@@ -455,6 +464,7 @@
},

onLoad() {
this.LOADING = true
let that = this
uni.$on('update', function(data) {
// console.log(data)
@@ -818,6 +828,7 @@
lastStartDate: this.lastStartDate
})
.then(res => {
this.LOADING = false
// console.log(res)
// 处理数据
this.chartData1 = {
@@ -899,6 +910,8 @@
// console.log(allobj)
this.chartData1 = allobj
this.$forceUpdate()
}).catch(e => {
this.LOADING = false
})
},
// 定义一个公共方法对数据进行处理


+ 17
- 4
pages/center/Piabodata/TrendAnalysis.vue View File

@@ -221,12 +221,21 @@
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2">
</newcalendar>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>

</template>
<script>
import newcalendar from '@/components/newcalendar/newcalendar.vue';
import loading from "@/components/loading/index.vue"
export default {
components: {
newcalendar,
loading
},
data() {
return {
selindexList: [0], // 默认选中第一项
@@ -322,10 +331,8 @@
};

},
components: {
newcalendar
},
onLoad(option) {
this.LOADING = true
this.pamect.houseId = uni.getStorageSync('buildingID').id;
this.init()
@@ -472,7 +479,13 @@
this.aboutEecondary()
}
}
});
setTimeout(() => {
this.LOADING = false
}, 1500)
}).catch(e => {
this.LOADING = false
})
},
//起始时间
totalTimeChange(e) {


+ 12
- 0
pages/center/Piabodata/Userinsightinto.vue View File

@@ -89,6 +89,10 @@

<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<u-back-top :scroll-top="scrollTop"></u-back-top>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

@@ -96,7 +100,11 @@
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
scrollTop: 0,
@@ -120,6 +128,7 @@
this.scrollTop = e.scrollTop;
},
onLoad(e) {
this.LOADING = true
this.buildingID=uni.getStorageSync('buildingID').id;
if (e.activeTotal) {
this.activeTotal = e.activeTotal
@@ -185,6 +194,7 @@
houseId:this.buildingID
}
this.$u.post("/matchKeywords/findmatchdata", parames).then(data => {
this.LOADING = false
this.numlist.push({
name:"有效接待",
num:data.total
@@ -243,6 +253,8 @@
citem.isshow=false
}
})
}).catch(e => {
this.LOADING = false
})
},
//查看


+ 22
- 8
pages/center/Piabodata/index.vue View File

@@ -97,8 +97,10 @@
<view class="title1">团队接待趋势</view>
<view class="title2">
<view class="title2-che" style="width: 220rpx;display: flex;align-items: center;">
<text style="flex-grow: 1;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">{{team.label}}</text>
<image style="flex-shrink: 0;" class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
<text
style="flex-grow: 1;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;">{{team.label}}</text>
<image style="flex-shrink: 0;" class="righttochoose"
src="../../../static/images/righttochoose.png" mode=""></image>
</view>

</view>
@@ -208,6 +210,12 @@
:default-value='selindex'></u-select>
<u-select v-model="staffShow1" :list="teamList" @confirm="staffSelectCallback($event,1)"
:default-value='selindex'></u-select>




<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

@@ -215,7 +223,11 @@
var app = getApp();
// var util = require("../../../utils/util.js");
var config = require("../../../config");
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
activeTotal: 4,
@@ -252,12 +264,11 @@
totalTimeShow: false,
activeTab: 0,

numlist: [
{
numlist: [{
name: '接待量',
num: '',
setName: 'sumCustomer'
},{
}, {
name: '有效接待',
num: '',
setName: 'receptionCount'
@@ -294,8 +305,7 @@
},
newlistoj: [],

newlistoj1: [
{
newlistoj1: [{
name: "接待量",
id: 3,
title: '单位(个)',
@@ -351,6 +361,7 @@
};
},
onShow() {
this.LOADING = true
// 获取项目id
this.houseId = uni.getStorageSync('buildingID').id;
// 获取数据看板
@@ -452,6 +463,7 @@
lastStartDate: this.lastStartDate
})
.then(res => {
this.LOADING = false
// console.log(res)
// 处理销奖维度执行率
// this.newlisttabinfo
@@ -470,6 +482,8 @@
this.newlisttabinfo = arr
this.allList = res.list
this.tapspagek3(this.bocindex1)
}).catch(e => {
this.LOADING = false
})
},
// 获取简报
@@ -750,4 +764,4 @@
.grid:nth-child(3) {
border-right: none;
}
</style>
</style>

+ 456
- 351
pages/center/consumer/consumerDetail.vue
File diff suppressed because it is too large
View File


+ 12
- 2
pages/center/consumer/index.vue View File

@@ -246,11 +246,18 @@
</u-popup>

<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>

<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

<script>
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
orderBylist: [{
@@ -367,6 +374,7 @@
}
},
onLoad(options) {
this.LOADING = true
this.isnorefresh = options.refresh;
},
onShow() {
@@ -577,8 +585,8 @@
// }
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
this.$u.post("/customer/customerManagement", parames).then(data => {
if(this.staTime && this.endtime) {
this.LOADING = false
if (this.staTime && this.endtime) {
this.arriveFilter = `${this.staTime}-${this.endtime}`
}
var list = data.results || [];
@@ -606,6 +614,8 @@
}
this.totalRecord = data.totalPage;
this.totalRecords = data.totalRecord;
}).catch(e => {
this.LOADING = false
})
},
//获取顾问列表


+ 16
- 4
pages/center/prohibited/index.vue View File

@@ -80,11 +80,19 @@
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>

<u-select v-model="showIdent" :list="identList" @confirm="selectIdent"></u-select>


<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

<script>
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
orderBylist: [{
@@ -173,6 +181,7 @@
}
},
onLoad(options) {
this.LOADING = true
this.isnorefresh = options.refresh;
if (options.activeTotal) {
this.activeTotal = options.activeTotal
@@ -331,18 +340,18 @@
let newobj = res[0];

let obj = {
pageSize: index+1,
pageSize: index + 1,
num: this.totalRecords,
query: {
...this.nextPageObj
}
}
uni.setStorageSync('nextPageObj', JSON.stringify(obj))
uni.navigateTo({
url: `/pages/center/prohibited/details?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}&index=${index}&isMerge=${res[0].merge}`
})
// if (res[0].merge == 0) {
// }
// else {
@@ -387,6 +396,7 @@
}

this.$u.post("/customer/findbypage", parames).then(data => {
this.LOADING = false
var list = data.results || [];
if (this.isRefresh) {
this.recordList = list;
@@ -396,6 +406,8 @@
this.totalRecord = data.totalPage;
this.totalRecords = data.totalRecord;
this.nextPageObj = parames.query
}).catch(e => {
this.LOADING = false
})
},
//获取顾问列表
@@ -444,7 +456,7 @@
}
return str
},
// DisposeStatus
DisposeStatus(status) {
let str = '';


+ 15
- 4
pages/center/records/index.vue View File

@@ -101,7 +101,7 @@
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
</view>
</view>
<!-- <view class="screen-counselor">
<!-- <view class="screen-counselor">
<view class="screen-text">
客户阶段
</view>
@@ -205,7 +205,8 @@
<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 class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(4, '')">
自定义</view>
</u-popup>
<u-popup v-model="timetushow" mode="bottom">
@@ -229,11 +230,18 @@
90min以上</view>
</u-popup>
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>

<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

<script>
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
orderBylist: [{
@@ -331,6 +339,7 @@
}
},
onLoad(options) {
this.LOADING = true
this.isnorefresh = options.refresh;
if (options.activeTotal) {
this.activeTotal = options.activeTotal
@@ -342,9 +351,8 @@
this.screen.validInvalid = options.validInvalid
}
if (options.staTime) {
this.staTime = options.staTime;
this.endtime = options.endtime+' 23:59:59';
this.endtime = options.endtime + ' 23:59:59';
}

},
@@ -597,6 +605,7 @@
parames.query.agentId = this.screen.agentId
}
this.$u.post("/customer/findbypage", parames).then(data => {
this.LOADING = false
if (this.staTime && this.endtime) {
this.arriveFilter = `${this.staTime}-${this.endtime}`
}
@@ -608,6 +617,8 @@
}
this.totalRecord = data.totalPage;
this.totalRecords = data.totalRecord;
}).catch(e => {
this.LOADING = false
})
},
//获取顾问列表


+ 38
- 26
pages/index/customer.vue View File

@@ -64,6 +64,10 @@
<image class="add2" @click="reshCustom()" src="https://static.quhouse.com/zhikong_xcx_img/refresh.png" mode="">
</image>
<u-tabbar activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar>


<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

@@ -71,11 +75,15 @@
var util = require("../../utils/util.js");
var config = require("../../config");
import tabbarList from '@/utils/tabbar.js'
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
noClick:true,
tabbarList:tabbarList,
noClick: true,
tabbarList: tabbarList,
current: 0,
buildingID: '',
waitCustomList: [],
@@ -83,22 +91,23 @@
dataCode: '',
addAccount: '',
endReception: true,
fdFlag:null
fdFlag: null
};
},
components: {},
onLoad() {},
onShow() {
this.LOADING = true
this.buildingID = uni.getStorageSync('buildingID').id;
const {
addAccount,
dataCode
} = uni.getStorageSync("weapp_session_userInfo_data");
let menulist = uni.getStorageSync('weapp_session_Menu_data')
this.endReception = menulist.findIndex(item => { return item.name == '结束接待' }) != -1
this.endReception = menulist.findIndex(item => {
return item.name == '结束接待'
}) != -1
this.addAccount = addAccount;
this.dataCode = dataCode;
console.log(this.menulist)
this.init()
this.queryHaveDept()
this.updateInit()
@@ -187,7 +196,10 @@
itemId: this.buildingID
}
this.$u.post("/customer/reception", parames).then(data => {
this.LOADING = false
this.waitCustomList = data;
}).catch(e => {
this.LOADING = false
});
},
//延时接待
@@ -216,26 +228,26 @@
cancelColor: "#999999",
success: res => {
if (this.noClick) {
this.noClick= false;
if (res.confirm) {
if (res.confirm) {
this.$u.post("/customer/endReception", {
id: id,
houseId: this.buildingID
}).then(res => {
uni.showToast({
icon: "none",
title: "操作成功"
})
this.init();
});
}
}
setTimeout(()=> {
this.noClick= true;
}, 2000)
this.noClick = false;
if (res.confirm) {
if (res.confirm) {
this.$u.post("/customer/endReception", {
id: id,
houseId: this.buildingID
}).then(res => {
uni.showToast({
icon: "none",
title: "操作成功"
})
this.init();
});
}
}
setTimeout(() => {
this.noClick = true;
}, 2000)
} else {
// 这里是重复点击的判断
// 这里是重复点击的判断
}
}
})
@@ -439,7 +451,7 @@
width: 90upx;
height: 90upx;
position: fixed;
bottom:275upx;
bottom: 275upx;
right: 44upx;
}



+ 18
- 10
pages/index/index.vue View File

@@ -216,8 +216,8 @@
</view>
</view>
</view>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
<u-tabbar activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar>
</view>
</template>
@@ -227,7 +227,13 @@
var util = require("../../utils/util.js");
import tabbarList from '@/utils/tabbar.js'
import uParse from '../../components/gaoyia-parse/parse.vue'
import loading from "@/components/loading/index.vue"
export default {
components: {
uParse,
loading
},

data() {
return {
id: "",
@@ -300,10 +306,7 @@
return config.service.host.indexOf('xitong.pachira.cn') == -1
},
},
components: {
uParse
},

onLoad() {
if (!this.isPuqiang) {
uni.setNavigationBarTitle({
@@ -312,9 +315,10 @@
}
this.initPopup()
},
onShow() {
this.LOADING = true
this.getMenu()

this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
@@ -351,7 +355,7 @@
this.initrealTimeStatistics()
this.updateInit()
},
onPullDownRefresh() {
this.getMenu()

@@ -548,6 +552,7 @@
houseId: this.buildingID
},
success: (data) => {
this.LOADING = false
if (data.data.data == null) {
return
} else {
@@ -562,6 +567,9 @@
receptionCount: data.data.data.receptionCount
}
}
},
fail: () => {
this.LOADING = false
}
})
},
@@ -840,7 +848,7 @@

filters: {
imgFilter(type) {
let path = ''
let path = ''
switch (type) {
case '客户管理':
path = '../../static/images/function1.png'


+ 13
- 2
pages/mine/details2.vue View File

@@ -424,6 +424,10 @@
</view>

<u-toast ref="uToast" />
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>
@@ -433,9 +437,11 @@
var config = require("../../config");

import zaudio from '@/components/uniapp-zaudio/zaudio';
import loading from "@/components/loading/index.vue"
export default {
components: {
zaudio
zaudio,
loading
},

data() {
@@ -552,6 +558,7 @@
},
},
onLoad(options) {
this.LOADING = true
let menu = uni.getStorageSync('weapp_session_Menu_data');
this.eqLog = menu.findIndex(item=>item.name=='设备日志');
@@ -1609,6 +1616,7 @@
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
this.LOADING = false
this.isShowMark = data.data.data.viewNameFlag
this.tablist = [];
this.roleindexbiaoji = 0;
@@ -1672,6 +1680,10 @@
this.dialogList.push(jsonInfo[this.textindex]);
var itc = parseInt(info.bg / 1000)
this.adasdasdasd(itc)
},
fail: () => {
this.LOADING = false
}
})
},
@@ -1680,7 +1692,6 @@
return util.formatSecond(time)
},


//音频前进回退
sliderChangeComplate(currentTime) {
this.dialogList = []


+ 61
- 44
pages/mine/reception/consultant.vue View File

@@ -36,13 +36,24 @@
<view class="save" @click="save" :class="{active:chosedAgentId}">
保存
</view>
<u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext" :cancel-text='canceltext' @cancel="confirmA" @confirm="confirmB" :show-cancel-button='true' :content="content"></u-modal>

<u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext"
:cancel-text='canceltext' @cancel="confirmA" @confirm="confirmB" :show-cancel-button='true'
:content="content"></u-modal>



<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
</view>
</template>

<script>
import loading from "@/components/loading/index.vue"
export default {
components: {
loading
},
data() {
return {
customerId: '',
@@ -51,39 +62,40 @@
current: null,
chosedAgentId: '',
textcdhSKJ: '',
show:false,
show: false,
content: '东临碣石,以观沧海',
confirmtext:'1',//确认文字
canceltext:'2',//取消文字
daitiReceptionobj:{},
replaceReception:0
confirmtext: '1', //确认文字
canceltext: '2', //取消文字
daitiReceptionobj: {},
replaceReception: 0
}
},
onLoad(option) {
this.LOADING = true
this.customerId = option.id;
},
onShow() {
this.buildingID = uni.getStorageSync('buildingID').id;
this.getFreeList();
this.getFreeList();
},
methods: {
//取消
confirmA(){
if(this.daitiReceptionobj.assign!=null){
//取消
confirmA() {
if (this.daitiReceptionobj.assign != null) {
this.baochunfun()
} else {
uni.showToast({
icon: "none",
title: "【" + this.daitiReceptionobj.owner.name + "】正在接待中"
})
return;
}
},
// 确认
confirmB() {
this.replaceReception = 1;
this.baochunfun()
}else{
uni.showToast({
icon: "none",
title: "【"+this.daitiReceptionobj.owner.name+"】正在接待中"
})
return;
}
},
// 确认
confirmB(){
this.replaceReception=1;
this.baochunfun()
},
},
save() {
console.log(this.chosedAgentId)
if (!this.chosedAgentId) {
@@ -98,34 +110,36 @@
agentId: that.chosedAgentId,
id: that.customerId
}).then(res => {
if(res.unchecked==0){
if (res.unchecked == 0) {
that.baochunfun()
}else{
if(res.zs==0){
} else {
if (res.zs == 0) {
that.baochunfun()
}else{
if(res.assign==null&&res.replacement==null){
} else {
if (res.assign == null && res.replacement == null) {
that.baochunfun()
}else{
if(res.assign==null){
that.daitiReceptionobj=res;
that.content="此客户的顾问为【"+ res.owner.name +"】,确认让【"+ res.replacement.name +"】代接待吗?"
that.confirmtext=res.replacement.name +"代接待",//确认文字
that.canceltext=res.owner.name +'接待',//取消文字
that.show=true;
}else{
that.daitiReceptionobj=res;
that.content="此客户的顾问为【"+ res.owner.name +"】,确认让【"+ res.replacement.name +"】代接待吗?"
that.confirmtext=res.replacement.name +"代接待",//确认文字
that.canceltext=res.assign.name +'接待',//取消文字
that.show=true;
} else {
if (res.assign == null) {
that.daitiReceptionobj = res;
that.content = "此客户的顾问为【" + res.owner.name + "】,确认让【" + res.replacement.name +
"】代接待吗?"
that.confirmtext = res.replacement.name + "代接待", //确认文字
that.canceltext = res.owner.name + '接待', //取消文字
that.show = true;
} else {
that.daitiReceptionobj = res;
that.content = "此客户的顾问为【" + res.owner.name + "】,确认让【" + res.replacement.name +
"】代接待吗?"
that.confirmtext = res.replacement.name + "代接待", //确认文字
that.canceltext = res.assign.name + '接待', //取消文字
that.show = true;
}
}
}
}
});
},
baochunfun(){
baochunfun() {
uni.showLoading({
title: "保存中",
mask: true
@@ -134,7 +148,7 @@
this.$u.post("customer/assign", {
agentId: that.chosedAgentId,
id: that.customerId,
replaceReception:this.replaceReception
replaceReception: this.replaceReception
}).then(res => {
uni.showToast({
icon: "none",
@@ -146,12 +160,15 @@
},
getFreeList() {
this.$u.get("/zkAgentPool/freeList?itemId=" + this.buildingID).then(res => {
this.LOADING = false
if (res.length == 0) {
this.freeList = []
} else {
this.freeList = res;
this.textcdhSKJ = res[0].name
}
}).catch(e => {
this.LOADING = false
})
},
radioChange: function(evt) {


Loading…
Cancel
Save