@@ -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 | |||
}; | |||
}, | |||
@@ -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> |
@@ -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> |
@@ -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 | |||
}) | |||
}, | |||
//自定义时间 | |||
@@ -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) { | |||
@@ -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 | |||
}) | |||
}, | |||
// 定义一个公共方法对数据进行处理 | |||
@@ -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) { | |||
@@ -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 | |||
}) | |||
}, | |||
//查看 | |||
@@ -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> |
@@ -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 | |||
}) | |||
}, | |||
//获取顾问列表 | |||
@@ -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 = ''; | |||
@@ -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 | |||
}) | |||
}, | |||
//获取顾问列表 | |||
@@ -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; | |||
} | |||
@@ -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' | |||
@@ -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 = [] | |||
@@ -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) { | |||