@@ -6,7 +6,6 @@ | |||||
onLaunch(options) { | onLaunch(options) { | ||||
uni.getSystemInfo({ | uni.getSystemInfo({ | ||||
success: function(e) { | success: function(e) { | ||||
console.log(e, 'adjsakljdklasjdklsakjdslakjd') | |||||
// #ifdef MP-WEIXIN | // #ifdef MP-WEIXIN | ||||
Vue.prototype.StatusBar = e.statusBarHeight; | Vue.prototype.StatusBar = e.statusBarHeight; | ||||
let custom = wx.getMenuButtonBoundingClientRect(); | let custom = wx.getMenuButtonBoundingClientRect(); | ||||
@@ -19,7 +18,8 @@ | |||||
return { | return { | ||||
StatusBar: Vue.prototype.StatusBar, | StatusBar: Vue.prototype.StatusBar, | ||||
CustomBar: Vue.prototype.CustomBar, | CustomBar: Vue.prototype.CustomBar, | ||||
windowHeight: Vue.prototype.windowHeight | |||||
windowHeight: Vue.prototype.windowHeight, | |||||
LOADING: false | |||||
}; | }; | ||||
}, | }, | ||||
@@ -77,17 +77,22 @@ | |||||
} | } | ||||
return obj | return obj | ||||
}, | }, | ||||
// 检测权限 | |||||
checkAuthority(name = '') { | |||||
let menu = uni.getStorageSync('weapp_session_Menu_data') | |||||
return menu.findIndex(item => item.name == name) != -1 | |||||
}, | |||||
}, | }, | ||||
filters: { | filters: { | ||||
// ASCII码转换 大写字母A是65 演讲人是从1开始所以num+64 | // ASCII码转换 大写字母A是65 演讲人是从1开始所以num+64 | ||||
toCapital(num) { | toCapital(num) { | ||||
let str = '' | let str = '' | ||||
if (num) { | |||||
str = String.fromCharCode(num + 64) | |||||
} | |||||
str = String.fromCharCode(Number(num) + 64) | |||||
return str | return str | ||||
} | |||||
}, | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
@@ -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> |
@@ -450,8 +450,8 @@ class ZAudio extends util_1.EventBus { | |||||
this.audioCtx.singer = renderSinger; | this.audioCtx.singer = renderSinger; | ||||
this.audioCtx.coverImgUrl = renderCoverImgUrl || this.defaultCover; | this.audioCtx.coverImgUrl = renderCoverImgUrl || this.defaultCover; | ||||
this.audioCtx.startTime = 0; | this.audioCtx.startTime = 0; | ||||
this.audioCtx.seek(0); | |||||
this.audioCtx.play(); | |||||
// this.audioCtx.seek(0); | |||||
// this.audioCtx.play(); | |||||
this.commit("setPause", false); | this.commit("setPause", false); | ||||
this.commit("setPlayinfo", { | this.commit("setPlayinfo", { | ||||
src: renderSrc, | src: renderSrc, | ||||
@@ -626,33 +626,6 @@ class ZAudio extends util_1.EventBus { | |||||
// #endif | // #endif | ||||
} | } | ||||
// 重置当前的参数 | |||||
resetDatas() { | |||||
this.loading = false; | |||||
this.renderIndex = 0; | |||||
this.audiolist = []; | |||||
this.renderinfo = { | |||||
current: "00:00:00", | |||||
duration: "00:00:00", | |||||
duration_value: 0, | |||||
current_value: 0, | |||||
src: "", | |||||
title: "", | |||||
singer: "", | |||||
coverImgUrl: "", | |||||
}; | |||||
this.playinfo = { | |||||
current: "00:00:00", | |||||
duration: "00:00:00", | |||||
duration_value: 0, | |||||
current_value: 0, | |||||
src: "", | |||||
title: "", | |||||
singer: "", | |||||
coverImgUrl: "", | |||||
}; | |||||
} | |||||
} | } | ||||
exports.default = ZAudio; | exports.default = ZAudio; | ||||
ZAudio.version = "2.2.51"; | ZAudio.version = "2.2.51"; |
@@ -199,6 +199,7 @@ | |||||
this.loading = loading; | this.loading = loading; | ||||
}); | }); | ||||
this.$zaudio.syncRender() | this.$zaudio.syncRender() | ||||
console.log(this.$zaudio) | |||||
}); | }); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
@@ -79,6 +79,8 @@ var config = { | |||||
firstShowPopup: `${host}/zkMessage/firstShow`, | firstShowPopup: `${host}/zkMessage/firstShow`, | ||||
//消息未读数 | //消息未读数 | ||||
notReadNum: `${host}/zkMessage/findFlagCount`, | notReadNum: `${host}/zkMessage/findFlagCount`, | ||||
//设备日志 | |||||
eqLog: `${host}/equipment/equipmentLog`, | |||||
} | } | ||||
}; | }; | ||||
module.exports = config; | module.exports = config; |
@@ -1,7 +1,7 @@ | |||||
{ | { | ||||
"name" : "去房智控管家", | "name" : "去房智控管家", | ||||
"appid" : "__UNI__7A1611D", | "appid" : "__UNI__7A1611D", | ||||
"description" : "AI营销助理", | |||||
"description" : "去房智控管家", | |||||
"versionName" : "1.1.0", | "versionName" : "1.1.0", | ||||
"versionCode" : "100", | "versionCode" : "100", | ||||
"transformPx" : false, | "transformPx" : false, | ||||
@@ -96,7 +96,7 @@ | |||||
"urlCheck" : false, | "urlCheck" : false, | ||||
"es6" : true, | "es6" : true, | ||||
"postcss" : true, | "postcss" : true, | ||||
"minified" : true | |||||
"minified" : false | |||||
}, | }, | ||||
"usingComponents" : true, | "usingComponents" : true, | ||||
"permission" : {}, | "permission" : {}, | ||||
@@ -42,17 +42,21 @@ | |||||
v-for="(item,index) in dialog.message" :key="index" :data-speaker="item.speaker"> | v-for="(item,index) in dialog.message" :key="index" :data-speaker="item.speaker"> | ||||
<view class="avatar"> | <view class="avatar"> | ||||
<view :style="[SPEAKERSTYLE(item.speaker)]"> | <view :style="[SPEAKERSTYLE(item.speaker)]"> | ||||
<!-- <image v-if="item.isShow == 0" :src="Aimg.replace(/[\r\n]/g,'')" mode="widthFix"></image> --> | |||||
<text v-if="item.isShow == 0">顾</text> | |||||
<text v-else>{{ item.speaker | toCapital }}</text> | |||||
<text>{{ item.speaker | toCapital }}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="contentInfo"> | <view class="contentInfo"> | ||||
<view class="info"> | <view class="info"> | ||||
<text class="AudioUserName" v-if="item.isShow == 0">{{ item.username }}</text> | |||||
<text class="AudioUserName" v-else>{{ item.speaker | toCapital }}</text> | |||||
<text class="AudioUserName"> | |||||
<template v-if="item.username"> | |||||
{{ item.username }} | |||||
</template> | |||||
<template v-else> | |||||
{{ item.speaker | toCapital }} | |||||
</template> | |||||
</text> | |||||
<text>{{conversionTiame(item.bg/1000)}}</text> | <text>{{conversionTiame(item.bg/1000)}}</text> | ||||
</view> | </view> | ||||
<view class="content"> | <view class="content"> | ||||
@@ -535,14 +539,11 @@ | |||||
}, | }, | ||||
onHide() { | onHide() { | ||||
this.isAudio = 0 | |||||
this.info = {} | |||||
this.isPageHide = true | this.isPageHide = true | ||||
}, | }, | ||||
// 销毁实例 | // 销毁实例 | ||||
onUnload() { | onUnload() { | ||||
this.isAudio = 0 | |||||
this.info = {} | this.info = {} | ||||
//卸载不需要的业务和获取播放状态的业务,提高页面性能 | //卸载不需要的业务和获取播放状态的业务,提高页面性能 | ||||
this.$zaudio.off('seek', this.ACTION); | this.$zaudio.off('seek', this.ACTION); | ||||
@@ -2,7 +2,7 @@ | |||||
<view class="cenbox"> | <view class="cenbox"> | ||||
<view class="screeningtop"> | <view class="screeningtop"> | ||||
<view class="screeningview" @click="clickscreening(1)"> | <view class="screeningview" @click="clickscreening(1)"> | ||||
<view>近一周</view> | |||||
<view>{{ showFillterText }}</view> | |||||
<view class="viewimg"> | <view class="viewimg"> | ||||
<image v-if="screeningshow1==false" src="../../../../static/images/down1.png" mode=""></image> | <image v-if="screeningshow1==false" src="../../../../static/images/down1.png" mode=""></image> | ||||
<image v-if="screeningshow1==true" src="../../../../static/images/down2.png" mode=""></image> | <image v-if="screeningshow1==true" src="../../../../static/images/down2.png" mode=""></image> | ||||
@@ -77,10 +77,10 @@ | |||||
<view v-if="screeningshow1==true" class="call_zhezhao" @click="allcancel()"></view> | <view v-if="screeningshow1==true" class="call_zhezhao" @click="allcancel()"></view> | ||||
<view v-if="screeningshow1==true" class="timepick"> | <view v-if="screeningshow1==true" class="timepick"> | ||||
<view class="tiempickbox"> | <view class="tiempickbox"> | ||||
<view :class="{ timeactive: activetime == 0 }" @click="activetimetab(0)">今日</view> | |||||
<view :class="{ timeactive: activetime == 1 }" @click="activetimetab(1)">昨日</view> | |||||
<view :class="{ timeactive: activetime == 2 }" @click="activetimetab(2)">近一周</view> | |||||
<view :class="{ timeactive: activetime == 3 }" @click="activetimetab(3)">本月</view> | |||||
<view :class="{ timeactive: activetime == 0 }" @click="activetimetab(0, '今日')">今日</view> | |||||
<view :class="{ timeactive: activetime == 1 }" @click="activetimetab(1, '昨日')">昨日</view> | |||||
<view :class="{ timeactive: activetime == 2 }" @click="activetimetab(2, '近一周')">近一周</view> | |||||
<view :class="{ timeactive: activetime == 3 }" @click="activetimetab(3, '本月')">本月</view> | |||||
</view> | </view> | ||||
<view class="tiempickzidingyi" @click="activetimetab(5)"> | <view class="tiempickzidingyi" @click="activetimetab(5)"> | ||||
<text v-if="Datesicing.length==0">自定义时间:请选择</text> | <text v-if="Datesicing.length==0">自定义时间:请选择</text> | ||||
@@ -162,6 +162,7 @@ export default { | |||||
keywordIds:'', | keywordIds:'', | ||||
type:0, | type:0, | ||||
customerId: '', // 点击那一项的customerId | customerId: '', // 点击那一项的customerId | ||||
showFillterText: '近一周', | |||||
}; | }; | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
@@ -312,6 +313,7 @@ export default { | |||||
this.tadelist=[...this.tadelist, ...data.results]; | this.tadelist=[...this.tadelist, ...data.results]; | ||||
this.totalpage=data.totalRecord; | this.totalpage=data.totalRecord; | ||||
} | } | ||||
this.$forceUpdate() | |||||
}) | }) | ||||
}, | }, | ||||
//获取三级 | //获取三级 | ||||
@@ -360,6 +362,7 @@ export default { | |||||
//自定义时间确认 | //自定义时间确认 | ||||
totalTimeChange(e){ | totalTimeChange(e){ | ||||
this.Datesicing=e.startDate+'至'+e.endDate; | this.Datesicing=e.startDate+'至'+e.endDate; | ||||
this.showFillterText = '自定义' | |||||
this.starttime=e.startDate; | this.starttime=e.startDate; | ||||
this.endoftime=e.endDate; | this.endoftime=e.endDate; | ||||
this.activetime=this.Inthemiddletime; | this.activetime=this.Inthemiddletime; | ||||
@@ -369,11 +372,12 @@ export default { | |||||
this.Accesstolevel() | this.Accesstolevel() | ||||
}, | }, | ||||
//时间选择 | //时间选择 | ||||
activetimetab(index){ | |||||
activetimetab(index, text){ | |||||
if(index==5){ | if(index==5){ | ||||
this.Inthemiddletime=index; | this.Inthemiddletime=index; | ||||
this.totalTimeShow=!this.totalTimeShow; | this.totalTimeShow=!this.totalTimeShow; | ||||
}else{ | }else{ | ||||
this.showFillterText = text | |||||
this.Datesicing=''; | this.Datesicing=''; | ||||
this.activetime=index; | this.activetime=index; | ||||
this.tadelist=[] | this.tadelist=[] | ||||
@@ -208,6 +208,10 @@ | |||||
<!-- 选择项目 --> | <!-- 选择项目 --> | ||||
<u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'> | <u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'> | ||||
</u-select> | </u-select> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -215,7 +219,11 @@ | |||||
var app = getApp(); | var app = getApp(); | ||||
var util = require("../../../utils/util.js"); | var util = require("../../../utils/util.js"); | ||||
var config = require("../../../config"); | var config = require("../../../config"); | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
activeTotal: 4, | activeTotal: 4, | ||||
@@ -312,6 +320,7 @@ | |||||
}; | }; | ||||
}, | }, | ||||
onLoad() { | onLoad() { | ||||
this.LOADING = true | |||||
let that = this | let that = this | ||||
uni.$on('updateGroup', function(data) { | uni.$on('updateGroup', function(data) { | ||||
console.log(data) | console.log(data) | ||||
@@ -354,7 +363,6 @@ | |||||
this.getdata() | this.getdata() | ||||
// console.log(this.staffList,this.staffList,this.houseId) | // console.log(this.staffList,this.staffList,this.houseId) | ||||
}) | }) | ||||
}, | }, | ||||
//指标执行率分析tab | //指标执行率分析tab | ||||
tapspagek2(index) { | tapspagek2(index) { | ||||
@@ -437,6 +445,7 @@ | |||||
lastStartDate: this.lastStartDate | lastStartDate: this.lastStartDate | ||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.LOADING = false | |||||
// console.log(res,123) | // console.log(res,123) | ||||
// 处理数据 | // 处理数据 | ||||
// return | // return | ||||
@@ -467,6 +476,8 @@ | |||||
this.opts.extra.radar.max = max + 25 | this.opts.extra.radar.max = max + 25 | ||||
this.chartData = allobj | this.chartData = allobj | ||||
this.$forceUpdate() | this.$forceUpdate() | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
//自定义时间 | //自定义时间 | ||||
@@ -120,10 +120,17 @@ | |||||
</u-select> | </u-select> | ||||
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'> | <u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'> | ||||
</u-select> | </u-select> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
timepickpickisshow: true, | timepickpickisshow: true, | ||||
@@ -218,6 +225,7 @@ | |||||
}, | }, | ||||
onLoad(option) { | onLoad(option) { | ||||
this.LOADING = true | |||||
// 获取项目id | // 获取项目id | ||||
this.houseId = uni.getStorageSync('buildingID').id; | this.houseId = uni.getStorageSync('buildingID').id; | ||||
// 请求接口获取所有置业顾问员工的列表 | // 请求接口获取所有置业顾问员工的列表 | ||||
@@ -459,6 +467,7 @@ | |||||
lastStartDate: this.lastStartDate | lastStartDate: this.lastStartDate | ||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.LOADING = false | |||||
// console.log(res) | // console.log(res) | ||||
let first = res.first | let first = res.first | ||||
let second = res.second | let second = res.second | ||||
@@ -499,6 +508,8 @@ | |||||
} | } | ||||
this.opts.extra.radar.max = max + 25 | this.opts.extra.radar.max = max + 25 | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
tabtimetap(index) { | tabtimetap(index) { | ||||
@@ -256,6 +256,11 @@ | |||||
</u-select> | </u-select> | ||||
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'> | <u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'> | ||||
</u-select> | </u-select> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -263,7 +268,11 @@ | |||||
var app = getApp(); | var app = getApp(); | ||||
var util = require("../../../utils/util.js"); | var util = require("../../../utils/util.js"); | ||||
var config = require("../../../config"); | var config = require("../../../config"); | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
activeTotal: 4, | activeTotal: 4, | ||||
@@ -455,6 +464,7 @@ | |||||
}, | }, | ||||
onLoad() { | onLoad() { | ||||
this.LOADING = true | |||||
let that = this | let that = this | ||||
uni.$on('update', function(data) { | uni.$on('update', function(data) { | ||||
// console.log(data) | // console.log(data) | ||||
@@ -818,6 +828,7 @@ | |||||
lastStartDate: this.lastStartDate | lastStartDate: this.lastStartDate | ||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.LOADING = false | |||||
// console.log(res) | // console.log(res) | ||||
// 处理数据 | // 处理数据 | ||||
this.chartData1 = { | this.chartData1 = { | ||||
@@ -899,6 +910,8 @@ | |||||
// console.log(allobj) | // console.log(allobj) | ||||
this.chartData1 = allobj | this.chartData1 = allobj | ||||
this.$forceUpdate() | this.$forceUpdate() | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
// 定义一个公共方法对数据进行处理 | // 定义一个公共方法对数据进行处理 | ||||
@@ -221,12 +221,21 @@ | |||||
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | ||||
<newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2"> | <newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2"> | ||||
</newcalendar> | </newcalendar> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import newcalendar from '@/components/newcalendar/newcalendar.vue'; | import newcalendar from '@/components/newcalendar/newcalendar.vue'; | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
newcalendar, | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
selindexList: [0], // 默认选中第一项 | selindexList: [0], // 默认选中第一项 | ||||
@@ -322,10 +331,8 @@ | |||||
}; | }; | ||||
}, | }, | ||||
components: { | |||||
newcalendar | |||||
}, | |||||
onLoad(option) { | onLoad(option) { | ||||
this.LOADING = true | |||||
this.pamect.houseId = uni.getStorageSync('buildingID').id; | this.pamect.houseId = uni.getStorageSync('buildingID').id; | ||||
this.init() | this.init() | ||||
@@ -472,7 +479,13 @@ | |||||
this.aboutEecondary() | this.aboutEecondary() | ||||
} | } | ||||
} | } | ||||
}); | |||||
setTimeout(() => { | |||||
this.LOADING = false | |||||
}, 1500) | |||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | |||||
}, | }, | ||||
//起始时间 | //起始时间 | ||||
totalTimeChange(e) { | totalTimeChange(e) { | ||||
@@ -589,18 +602,6 @@ | |||||
this.guwenshow = false; | this.guwenshow = false; | ||||
this.Selectlevel = false; | this.Selectlevel = false; | ||||
this.Selecttuandui = 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() | this.init() | ||||
if (index == 1) { | if (index == 1) { | ||||
@@ -89,6 +89,10 @@ | |||||
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | ||||
<u-back-top :scroll-top="scrollTop"></u-back-top> | <u-back-top :scroll-top="scrollTop"></u-back-top> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -96,7 +100,11 @@ | |||||
var app = getApp(); | var app = getApp(); | ||||
var util = require("../../../utils/util.js"); | var util = require("../../../utils/util.js"); | ||||
var config = require("../../../config"); | var config = require("../../../config"); | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
scrollTop: 0, | scrollTop: 0, | ||||
@@ -120,6 +128,7 @@ | |||||
this.scrollTop = e.scrollTop; | this.scrollTop = e.scrollTop; | ||||
}, | }, | ||||
onLoad(e) { | onLoad(e) { | ||||
this.LOADING = true | |||||
this.buildingID=uni.getStorageSync('buildingID').id; | this.buildingID=uni.getStorageSync('buildingID').id; | ||||
if (e.activeTotal) { | if (e.activeTotal) { | ||||
this.activeTotal = e.activeTotal | this.activeTotal = e.activeTotal | ||||
@@ -147,11 +156,11 @@ | |||||
}); | }); | ||||
}else if(i==2){ | }else if(i==2){ | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+this.activeTotal+'&markAdvisor=1'+'&staTime='+this.timeobj.statDateStart+'&endtime='+this.timeobj.statDateEnd | |||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+this.activeTotal+'&markAdvisor=1&validInvalid=0'+'&staTime='+this.timeobj.statDateStart+'&endtime='+this.timeobj.statDateEnd | |||||
}); | }); | ||||
}else{ | }else{ | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+this.activeTotal+'&markAdvisor=0'+'&staTime='+this.timeobj.statDateStart+'&endtime='+this.timeobj.statDateEnd | |||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+this.activeTotal+'&markAdvisor=0&validInvalid=0'+'&staTime='+this.timeobj.statDateStart+'&endtime='+this.timeobj.statDateEnd | |||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
@@ -185,10 +194,11 @@ | |||||
houseId:this.buildingID | houseId:this.buildingID | ||||
} | } | ||||
this.$u.post("/matchKeywords/findmatchdata", parames).then(data => { | this.$u.post("/matchKeywords/findmatchdata", parames).then(data => { | ||||
this.numlist.push({ | |||||
name:"有效接待", | |||||
num:data.total | |||||
}) | |||||
this.LOADING = false | |||||
// this.numlist.push({ | |||||
// name:"有效接待", | |||||
// num:data.total | |||||
// }) | |||||
this.efficient = data.total | this.efficient = data.total | ||||
this.markCount = data.markCount | this.markCount = data.markCount | ||||
this.noMarkCount = data.noMarkCount | this.noMarkCount = data.noMarkCount | ||||
@@ -243,6 +253,8 @@ | |||||
citem.isshow=false | citem.isshow=false | ||||
} | } | ||||
}) | }) | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
//查看 | //查看 | ||||
@@ -97,8 +97,10 @@ | |||||
<view class="title1">团队接待趋势</view> | <view class="title1">团队接待趋势</view> | ||||
<view class="title2"> | <view class="title2"> | ||||
<view class="title2-che" style="width: 220rpx;display: flex;align-items: center;"> | <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> | ||||
</view> | </view> | ||||
@@ -208,6 +210,12 @@ | |||||
:default-value='selindex'></u-select> | :default-value='selindex'></u-select> | ||||
<u-select v-model="staffShow1" :list="teamList" @confirm="staffSelectCallback($event,1)" | <u-select v-model="staffShow1" :list="teamList" @confirm="staffSelectCallback($event,1)" | ||||
:default-value='selindex'></u-select> | :default-value='selindex'></u-select> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -215,7 +223,11 @@ | |||||
var app = getApp(); | var app = getApp(); | ||||
// var util = require("../../../utils/util.js"); | // var util = require("../../../utils/util.js"); | ||||
var config = require("../../../config"); | var config = require("../../../config"); | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
activeTotal: 4, | activeTotal: 4, | ||||
@@ -252,12 +264,11 @@ | |||||
totalTimeShow: false, | totalTimeShow: false, | ||||
activeTab: 0, | activeTab: 0, | ||||
numlist: [ | |||||
{ | |||||
numlist: [{ | |||||
name: '接待量', | name: '接待量', | ||||
num: '', | num: '', | ||||
setName: 'sumCustomer' | setName: 'sumCustomer' | ||||
},{ | |||||
}, { | |||||
name: '有效接待', | name: '有效接待', | ||||
num: '', | num: '', | ||||
setName: 'receptionCount' | setName: 'receptionCount' | ||||
@@ -294,8 +305,7 @@ | |||||
}, | }, | ||||
newlistoj: [], | newlistoj: [], | ||||
newlistoj1: [ | |||||
{ | |||||
newlistoj1: [{ | |||||
name: "接待量", | name: "接待量", | ||||
id: 3, | id: 3, | ||||
title: '单位(个)', | title: '单位(个)', | ||||
@@ -351,6 +361,7 @@ | |||||
}; | }; | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.LOADING = true | |||||
// 获取项目id | // 获取项目id | ||||
this.houseId = uni.getStorageSync('buildingID').id; | this.houseId = uni.getStorageSync('buildingID').id; | ||||
// 获取数据看板 | // 获取数据看板 | ||||
@@ -452,6 +463,7 @@ | |||||
lastStartDate: this.lastStartDate | lastStartDate: this.lastStartDate | ||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.LOADING = false | |||||
// console.log(res) | // console.log(res) | ||||
// 处理销奖维度执行率 | // 处理销奖维度执行率 | ||||
// this.newlisttabinfo | // this.newlisttabinfo | ||||
@@ -470,6 +482,8 @@ | |||||
this.newlisttabinfo = arr | this.newlisttabinfo = arr | ||||
this.allList = res.list | this.allList = res.list | ||||
this.tapspagek3(this.bocindex1) | this.tapspagek3(this.bocindex1) | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
// 获取简报 | // 获取简报 | ||||
@@ -750,4 +764,4 @@ | |||||
.grid:nth-child(3) { | .grid:nth-child(3) { | ||||
border-right: none; | border-right: none; | ||||
} | } | ||||
</style> | |||||
</style> |
@@ -0,0 +1,697 @@ | |||||
<template> | |||||
<view class="box"> | |||||
<!-- 选择器 --> | |||||
<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="deptshow=true"> | |||||
{{ dept}} | |||||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||||
</view> | |||||
<view class="tabbox" @click="guwenshow=true"> | |||||
{{ guwen}} | |||||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||||
</view> | |||||
<!-- <view class="tabbox" @click="taptimetuisshow"> | |||||
{{ 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 style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||||
<view class="boxzonglan" style="min-height: 400rpx;"> | |||||
<view class="zonglantitle">简报 <text @click="showDesc=true">统计说明</text></view> | |||||
<view class="zonglanbox"> | |||||
<view class="grid" style="height: auto;" v-for="(item,index) in numlist" :key="index"> | |||||
<view class="audonum">{{item.name}}</view> | |||||
<view class="num">{{item.firstnum||0}}</view> | |||||
<view class="bottom"> | |||||
<view class="leftnum">对比:{{item.endnum||0}}</view> | |||||
<view class="rightnum" :class="item.duibinum>0?'red':'green'">{{item.duibinum||0}} | |||||
<image v-if="item.duibinum>0" src="https://static.quhouse.com/c4145f84cc3c49769ee2ec11465c085b.png" mode="" /> | |||||
<image v-else src="https://static.quhouse.com/c5dbf780e09a4da0b0bab2d7fa58accd.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!-- 统计说明 --> | |||||
<view class="black-bg" v-if="showDesc" > | |||||
<view class="tongjiDesc"> | |||||
<view class="tongji-title">统计说明</view> | |||||
<view class="text"> | |||||
<view><text class="bold">平均需求挖掘率:</text>筛选时间内,有效接待中已标记顾问的需求挖掘执行率的平均值;</view> | |||||
<view><text class="bold">未标记:</text>筛选时间内,有效接待中未标记顾问的接待数;</view> | |||||
<view><text class="bold">有效接待:</text>筛选时间内,标记为有效的接待数,不包含待接单;</view> | |||||
<view><text class="bold">未挖掘需求数:</text>筛选时间内,需求挖掘平均执行率未0 的需求数;</view> | |||||
</view> | |||||
</view> | |||||
<view class="close" @click="showDesc=false">X</view> | |||||
</view> | |||||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||||
<view class="single"> | |||||
<view class="title"> | |||||
<view class="title1">平均需求挖掘率趋势</view> | |||||
</view> | |||||
<view class="uchaserbox"> | |||||
<qiun-data-charts type="line" :chartData="lineOptsect" :opts="lineOpts" background="none" | |||||
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" /> | |||||
</view> | |||||
</view> | |||||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||||
<view class="single"> | |||||
<view class="title"> | |||||
<view class="title1">平均需求挖掘分布</view> | |||||
</view> | |||||
<view class="uchaserbox"> | |||||
<qiun-data-charts | |||||
type="ring" | |||||
:chartData="ringChartData" | |||||
:canvas2d="true" | |||||
:canvasId="ChartBoxIdwangxiaohuaerlingilingwuyiba1" | |||||
:opts='opts' | |||||
background="none" /> | |||||
</view> | |||||
</view> | |||||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||||
<view class="single"> | |||||
<view class="title"> | |||||
<view class="title1">需求挖掘排名</view> | |||||
</view> | |||||
<view class="tabdada"> | |||||
<view class="tabth"> | |||||
<view>排名</view> | |||||
<view>需求类型/挖掘执行接待数</view> | |||||
<view>执行率</view> | |||||
<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> | |||||
<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> | |||||
<image v-else-if="i==2" class="ranking" src="../../../static/images/ranking3.png" mode=""></image> | |||||
<view class="ranking1" v-else>{{i+1}}</view> | |||||
</view> | |||||
<view class="u-line-1">{{item.name}}({{item.selected}})</view> | |||||
<view>{{item.fraction}}%</view> | |||||
<view @click="Toview(item,i)">查看</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<u-popup v-model="timeshow" mode="bottom"> | |||||
<view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }" | |||||
@click="tabtimetap(4, '近7天')"> | |||||
近7天</view> | |||||
<view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }" | |||||
@click="tabtimetap(5, '近15天')"> | |||||
近15天</view> | |||||
<view class="timeview" :style="{ color: activeTotal == 6 ? '#2B6EFF' : '#333333' }" | |||||
@click="tabtimetap(6, '近30天')"> | |||||
近30天</view> | |||||
<view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(3,'自定义')"> | |||||
自定义</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)" | |||||
:default-value='selindex'></u-select> | |||||
<u-select v-model="deptshow" :list="teamList" @confirm="staffSelectCallback($event,1)" | |||||
:default-value='selindex'></u-select> | |||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | |||||
</template> | |||||
<script> | |||||
var app = getApp(); | |||||
var config = require("../../../config"); | |||||
import loading from "@/components/loading/index.vue" | |||||
export default { | |||||
components: { | |||||
loading | |||||
}, | |||||
data() { | |||||
return { | |||||
selindex: '', | |||||
guwenshow: false, | |||||
timeshow: false, | |||||
selectshow: false, | |||||
deptshow: false, | |||||
deptVal: '', | |||||
guwenVal: '', | |||||
// 筛选文字展示 | |||||
time: '近7天', | |||||
dept: '部门', | |||||
guwen: '顾问', | |||||
huashu: '话术', | |||||
showDesc: false, | |||||
sortList: [], | |||||
ringChartData: { | |||||
}, | |||||
// ring图 分布图 | |||||
opts: { | |||||
rotate: false, | |||||
rotateLock: false, | |||||
color: ["#1890FF","#91CB74","#FAC858","#EE6666"], | |||||
padding: [5,5,5,5], | |||||
dataLabel: true, | |||||
legend: { | |||||
show: true, | |||||
position: "right", | |||||
lineHeight: 25 | |||||
}, | |||||
title: { | |||||
name: "", | |||||
fontSize: 15, | |||||
color: "#666666" | |||||
}, | |||||
subtitle: { | |||||
name: "", | |||||
fontSize: 25, | |||||
color: "#7cb5ec" | |||||
}, | |||||
extra: { | |||||
ring: { | |||||
ringWidth: 60, | |||||
activeOpacity: 0.5, | |||||
activeRadius: 10, | |||||
offsetAngle: 0, | |||||
labelWidth: 15, | |||||
border: false, | |||||
borderWidth: 3, | |||||
borderColor: "#FFFFFF" | |||||
} | |||||
} | |||||
}, | |||||
activeTotal: 4, | |||||
houseId: '', | |||||
// 员工列表 | |||||
staffList: [], | |||||
// 团队列表 | |||||
teamList: [], | |||||
team: { | |||||
value: '', | |||||
label: '' | |||||
}, | |||||
startDate: '', | |||||
endDate: '', | |||||
calendarShow: false, | |||||
activeTab: 0, | |||||
numlist: [{ | |||||
name: '平均需求挖掘率', | |||||
firstnum: '', | |||||
endnum: '', | |||||
duibinum: '', | |||||
setName: 'wordFraction' | |||||
}, { | |||||
name: '未挖掘需求', | |||||
firstnum: '', | |||||
endnum: '', | |||||
duibinum: '', | |||||
setName: 'noFinishWord' | |||||
}, | |||||
{ | |||||
name: '有效接待', | |||||
firstnum: '', | |||||
endnum: '', | |||||
duibinum: '', | |||||
setName: 'activeCustomer' | |||||
}, | |||||
{ | |||||
name: '未标记', | |||||
firstnum: '', | |||||
endnum: '', | |||||
duibinum: '', | |||||
setName: 'markAdvisor' | |||||
}, | |||||
], | |||||
lineOptsect: { | |||||
"categories": [], | |||||
"series": [{ | |||||
"name": "第一段", | |||||
"data": [] | |||||
},{ | |||||
"name": "第二段", | |||||
"data": [] | |||||
} | |||||
] | |||||
}, | |||||
Theteamcomparedisshow: false, | |||||
Groupcontrastisshow: false, | |||||
allList: [], | |||||
lineOpts: { | |||||
yAxis: { | |||||
data: [{ | |||||
max: 100, | |||||
min: 0, | |||||
}] | |||||
} | |||||
}, | |||||
}; | |||||
}, | |||||
onShow() { | |||||
// this.LOADING = true | |||||
// 获取项目id | |||||
this.houseId = uni.getStorageSync('buildingID').id; | |||||
// 获取员工 | |||||
this.getStaffList() | |||||
// 获取团队 | |||||
this.getSectionList() | |||||
this.getdata() | |||||
}, | |||||
onReady: function(){ | |||||
this.getRingData() | |||||
}, | |||||
onPullDownRefresh() { | |||||
}, | |||||
methods: { | |||||
getdata(){ | |||||
// 需求挖掘分析-简报 | |||||
this.wordMiningAnalyze() | |||||
// 挖掘趋势图 | |||||
this.getwordMiningAnalyzePercentage() | |||||
//需求挖掘排行 | |||||
this.getwordMiningRank() | |||||
// 需求挖掘f分布图 | |||||
this.getRingData() | |||||
}, | |||||
// 需求挖掘排行 | |||||
getwordMiningRank(){ | |||||
this.$u.post('/cusLvStatistics/wordMiningRank', { | |||||
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) | |||||
if(res.length){ | |||||
this.sortList = res.map(item=>{ | |||||
return { | |||||
name: item.name, | |||||
id: item.id, | |||||
fraction: item.fraction, | |||||
selected: item.selected | |||||
} | |||||
}) | |||||
} | |||||
}) | |||||
}, | |||||
// 需求挖掘分布图 | |||||
getRingData(){ | |||||
this.$u.post('/cusLvStatistics/wordMiningAnalyzeFenbu', { | |||||
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) | |||||
this.ringChartData = { series: [ | |||||
{ | |||||
data: [ | |||||
{"name":"30%以下","value":res.a}, | |||||
{"name":"30%~50%","value":res.b}, | |||||
{"name":"50%~70%","value":res.c}, | |||||
{"name":"70%以上","value":res.d}, | |||||
] | |||||
} | |||||
]} | |||||
}) | |||||
}, | |||||
Toview(){ | |||||
//跳转到接待记录 | |||||
uni.navigateTo({ | |||||
url: '/pages/center/records/index' | |||||
}); | |||||
}, | |||||
// 需求挖掘分析-简报 | |||||
wordMiningAnalyze() { | |||||
let params = { | |||||
"houseId":this.houseId, | |||||
deptId: this.deptVal, | |||||
createUser: this.guwenVal, | |||||
"dateType": this.activeTotal, | |||||
"firstStartDate":!this.activeTotal?this.startDate:'', | |||||
"firstEndDate":!this.activeTotal?this.endDate:'' | |||||
} | |||||
this.$u.post("/cusLvStatistics/wordMiningAnalyze",params).then(res => { | |||||
// console.log(res.contrast) | |||||
res.contrast.wordFraction = (res.contrast.wordFraction || 0) + '%' | |||||
this.numlist.forEach(item => { | |||||
item.duibinum = res.contrast[item.setName] | |||||
item.endnum = res.end[item.setName] | |||||
item.firstnum = res.first[item.setName] | |||||
}) | |||||
}) | |||||
}, | |||||
// 获取员工列表 | |||||
getStaffList() { | |||||
this.$u.post('/cusLvStatistics/selectAllAccountIdByHouseId', { | |||||
houseId: this.houseId | |||||
}) | |||||
.then(res => { | |||||
// console.log(res) | |||||
if(res.length){ | |||||
this.staffList = res.map(item => { | |||||
return { | |||||
label: item.name, | |||||
value: item.accountId | |||||
} | |||||
}) | |||||
} | |||||
}) | |||||
}, | |||||
// 需求挖掘率趋势图 | |||||
getwordMiningAnalyzePercentage() { | |||||
this.$u.post('/cusLvStatistics/wordMiningAnalyzePercentage', { | |||||
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] = [] | |||||
} | |||||
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 = [] | |||||
} | |||||
let categories3 =[] | |||||
categories1.forEach(item1=>{ | |||||
categories2.forEach(item2=>{ | |||||
categories3.push(item1+ '/' + item2) | |||||
}) | |||||
}) | |||||
this.lineOptsect.categories = categories3 | |||||
console.log(this.lineOptsect.categories) | |||||
}) | |||||
}, | |||||
// 获取团队列表 | |||||
getSectionList() { | |||||
this.$u.post('/cusLvStatistics/findAllDeptIdByHouseId', { | |||||
houseId: this.houseId | |||||
}) | |||||
.then(res => { | |||||
this.teamList = [] | |||||
if(res.length){ | |||||
this.teamList = res.map(item=> { | |||||
return { | |||||
label: item.deptName, | |||||
value: item.deptId | |||||
} | |||||
}) | |||||
} | |||||
}) | |||||
}, | |||||
//时间切换 | |||||
tabtimetap(index, text) { | |||||
if (index == 3) { | |||||
this.calendarShow = true; | |||||
this.activeTotal = null | |||||
} else { | |||||
this.activeTotal = index; | |||||
this.endDate = '' | |||||
this.startDate = '' | |||||
this.time = text | |||||
this.getdata() | |||||
} | |||||
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 | |||||
} | |||||
this.getdata() | |||||
}, | |||||
//自定义时间 | |||||
calendarTimeChange(e) { | |||||
// console.log(e.startDate, e.endDate) | |||||
this.activeTotal = null; | |||||
this.endDate = e.endDate | |||||
this.startDate = e.startDate | |||||
this.time = '自定义' | |||||
this.getdata() | |||||
} | |||||
} | |||||
}; | |||||
</script> | |||||
<style lang="scss" scoped> | |||||
.box { | |||||
width: 100%; | |||||
height: 100%; | |||||
background: #FAFAFA; | |||||
} | |||||
//时间切换的样式 | |||||
.boxtittab { | |||||
position: sticky; | |||||
top: var(--window-top); | |||||
z-index: 999; | |||||
width: 100; | |||||
height: 92rpx; | |||||
background: #FFFFFF; | |||||
border: 1px solid #E0E0E0; | |||||
display: flex; | |||||
align-items: center; | |||||
.tabbox { | |||||
flex: 1; | |||||
height: 100%; | |||||
text-align: center; | |||||
line-height: 92rpx; | |||||
color: #666666; | |||||
font-size: 28rpx; | |||||
overflow: hidden; | |||||
text-overflow: ellipsis; | |||||
display: -webkit-box; | |||||
/* 将对象作为弹性伸缩盒子模型显示 */ | |||||
-webkit-line-clamp: 1; | |||||
/* 控制最多显示几行 */ | |||||
-webkit-box-orient: vertical; | |||||
/* 设置或检索伸缩盒对象的子元素的排列方式 */ | |||||
} | |||||
} | |||||
.timeview { | |||||
height: 80rpx; | |||||
line-height: 80rpx; | |||||
width: 100%; | |||||
text-align: center; | |||||
border-bottom: 1px solid #F8F8F8; | |||||
} | |||||
.black-bg{ | |||||
position: fixed; | |||||
background: rgba(0,0,0,0.6); | |||||
left: 0; | |||||
right: 0; | |||||
top: 0; | |||||
bottom: 0; | |||||
display: flex; | |||||
flex-direction: column; | |||||
justify-content: center; | |||||
align-items: center; | |||||
z-index: 9999; | |||||
.tongjiDesc{ | |||||
width: 80%; | |||||
background: #FFFFFF; | |||||
border-radius: 4rpx; | |||||
padding: 30rpx; | |||||
} | |||||
.close{ | |||||
background: #fff; | |||||
border-radius: 50%; | |||||
width: 80rpx; | |||||
height: 80rpx; | |||||
margin-top: 30rpx; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
} | |||||
.tongji-title{ | |||||
text-align: center; | |||||
font-size: 30rpx; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.text view{ | |||||
margin-bottom: 24rpx; | |||||
} | |||||
.bold{ | |||||
font-weight: bold; | |||||
} | |||||
} | |||||
.grid:nth-child(1) { | |||||
border-right: none; | |||||
border-bottom: none; | |||||
} | |||||
.grid:nth-child(2) { | |||||
border-bottom: none; | |||||
} | |||||
.grid:nth-child(3) { | |||||
border-right: none; | |||||
} | |||||
.grid .bottom{ | |||||
display: flex; | |||||
align-items: center; | |||||
padding-left: 20rpx; | |||||
margin: 10rpx 0 20rpx; | |||||
.leftnum{ | |||||
height: 36rpx; | |||||
font-size: 26rpx; | |||||
font-family: PingFangSC-Regular, PingFang SC; | |||||
font-weight: 400; | |||||
color: #666666; | |||||
line-height: 36rpx; | |||||
margin-right: 20rpx; | |||||
} | |||||
.rightnum{ | |||||
height: 36rpx; | |||||
font-size: 26rpx; | |||||
font-family: PingFangSC-Semibold, PingFang SC; | |||||
font-weight: 600; | |||||
color: #666; | |||||
line-height: 36rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
&.red{ | |||||
color: #E6273A; | |||||
} | |||||
&.green{ | |||||
color: #43CD80; | |||||
} | |||||
image{ | |||||
width: 18rpx; | |||||
height: 14rpx; | |||||
margin-left: 6rpx; | |||||
} | |||||
} | |||||
} | |||||
.zonglantitle{ | |||||
display: flex; | |||||
justify-content: space-between; | |||||
align-items: center; | |||||
text{ | |||||
color: #666666; | |||||
} | |||||
} | |||||
.uchaserbox{ | |||||
width: 100%; | |||||
height: 500rpx; | |||||
} | |||||
.tabdada { | |||||
width: 100%; | |||||
height: 580rpx; | |||||
overflow-y: auto; | |||||
padding-bottom: 20rpx; | |||||
.tabth { | |||||
width: 100%; | |||||
height: 28rpx; | |||||
display: flex; | |||||
font-size: 28rpx; | |||||
line-height: 28rpx; | |||||
color: #666666; | |||||
margin-top: 28rpx; | |||||
} | |||||
.tabth>view:nth-of-type(1) { | |||||
width: 10%; | |||||
text-align: center; | |||||
} | |||||
.tabth>view:nth-of-type(2) { | |||||
width: 46%; | |||||
text-align: center; | |||||
} | |||||
.tabth>view:nth-of-type(3) { | |||||
width: 22%; | |||||
text-align: center; | |||||
} | |||||
.tabth>view:nth-of-type(4) { | |||||
width: 22%; | |||||
text-align: center; | |||||
} | |||||
.tabtd { | |||||
width: 100%; | |||||
height: 30rpx; | |||||
display: flex; | |||||
font-size: 26rpx; | |||||
line-height: 30rpx; | |||||
margin-top: 32rpx; | |||||
} | |||||
.tabtd>view:nth-of-type(1) { | |||||
width: 10%; | |||||
text-align: center; | |||||
line-height: 30rpx; | |||||
} | |||||
.tabtd>view:nth-of-type(2) { | |||||
width: 46%; | |||||
max-width: 400rpx; | |||||
text-align: center; | |||||
color: #333333; | |||||
} | |||||
.tabtd>view:nth-of-type(3) { | |||||
width: 22%; | |||||
text-align: center; | |||||
color: #333333; | |||||
} | |||||
.tabtd>view:nth-of-type(4) { | |||||
width: 22%; | |||||
text-align: center; | |||||
color: #2671E2; | |||||
} | |||||
.ranking { | |||||
width: 34rpx; | |||||
height: 34rpx; | |||||
} | |||||
.ranking1 { | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
background: #ECF1FF; | |||||
color: #424D64; | |||||
font-size: 18rpx; | |||||
text-align: center; | |||||
line-height: 30rpx; | |||||
border-radius: 50%; | |||||
margin: 0 auto; | |||||
} | |||||
.tabech { | |||||
width: 100%; | |||||
height: 600rpx; | |||||
} | |||||
} | |||||
</style> |
@@ -72,14 +72,17 @@ | |||||
</view> | </view> | ||||
<view class="content-sec-lab"> | <view class="content-sec-lab"> | ||||
顾问姓名:<view class="content-sec-lab1">{{item.agentName}}</view> | |||||
顾问姓名:<view class="content-sec-lab1">{{item.agentName||'--'}}</view> | |||||
</view> | |||||
<view class="content-sec-lab"> | |||||
需求挖掘:<view class="content-sec-lab1">{{item.wordFraction||0}}%</view> | |||||
</view> | </view> | ||||
<view class="content-sec-lab"> | <view class="content-sec-lab"> | ||||
添加时间:<view class="content-sec-lab1">{{item.createTime}}</view> | 添加时间:<view class="content-sec-lab1">{{item.createTime}}</view> | ||||
</view> | </view> | ||||
<view class="content-sec-num"> | <view class="content-sec-num"> | ||||
<view class="">{{item.visitRecord || '--'}}次到访</view> | <view class="">{{item.visitRecord || '--'}}次到访</view> | ||||
<view class="">{{item.fraction || '0'}}% | {{item.mm || '0'}}<text | |||||
<view class="">{{item.fraction || 0}}% | {{item.mm || 0}}<text | |||||
style="font-size: 24rpx;">min</text></view> | style="font-size: 24rpx;">min</text></view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -246,11 +249,18 @@ | |||||
</u-popup> | </u-popup> | ||||
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> | <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
orderBylist: [{ | orderBylist: [{ | ||||
@@ -367,6 +377,7 @@ | |||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.LOADING = true | |||||
this.isnorefresh = options.refresh; | this.isnorefresh = options.refresh; | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
@@ -577,8 +588,8 @@ | |||||
// } | // } | ||||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | ||||
this.$u.post("/customer/customerManagement", parames).then(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}` | this.arriveFilter = `${this.staTime}-${this.endtime}` | ||||
} | } | ||||
var list = data.results || []; | var list = data.results || []; | ||||
@@ -606,6 +617,8 @@ | |||||
} | } | ||||
this.totalRecord = data.totalPage; | this.totalRecord = data.totalPage; | ||||
this.totalRecords = data.totalRecord; | 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="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> | ||||
<u-select v-model="showIdent" :list="identList" @confirm="selectIdent"></u-select> | <u-select v-model="showIdent" :list="identList" @confirm="selectIdent"></u-select> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
orderBylist: [{ | orderBylist: [{ | ||||
@@ -173,6 +181,7 @@ | |||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.LOADING = true | |||||
this.isnorefresh = options.refresh; | this.isnorefresh = options.refresh; | ||||
if (options.activeTotal) { | if (options.activeTotal) { | ||||
this.activeTotal = options.activeTotal | this.activeTotal = options.activeTotal | ||||
@@ -331,18 +340,18 @@ | |||||
let newobj = res[0]; | let newobj = res[0]; | ||||
let obj = { | let obj = { | ||||
pageSize: index+1, | |||||
pageSize: index + 1, | |||||
num: this.totalRecords, | num: this.totalRecords, | ||||
query: { | query: { | ||||
...this.nextPageObj | ...this.nextPageObj | ||||
} | } | ||||
} | } | ||||
uni.setStorageSync('nextPageObj', JSON.stringify(obj)) | uni.setStorageSync('nextPageObj', JSON.stringify(obj)) | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: `/pages/center/prohibited/details?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}&index=${index}&isMerge=${res[0].merge}` | url: `/pages/center/prohibited/details?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}&index=${index}&isMerge=${res[0].merge}` | ||||
}) | }) | ||||
// if (res[0].merge == 0) { | // if (res[0].merge == 0) { | ||||
// } | // } | ||||
// else { | // else { | ||||
@@ -387,6 +396,7 @@ | |||||
} | } | ||||
this.$u.post("/customer/findbypage", parames).then(data => { | this.$u.post("/customer/findbypage", parames).then(data => { | ||||
this.LOADING = false | |||||
var list = data.results || []; | var list = data.results || []; | ||||
if (this.isRefresh) { | if (this.isRefresh) { | ||||
this.recordList = list; | this.recordList = list; | ||||
@@ -396,6 +406,8 @@ | |||||
this.totalRecord = data.totalPage; | this.totalRecord = data.totalPage; | ||||
this.totalRecords = data.totalRecord; | this.totalRecords = data.totalRecord; | ||||
this.nextPageObj = parames.query | this.nextPageObj = parames.query | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
//获取顾问列表 | //获取顾问列表 | ||||
@@ -444,7 +456,7 @@ | |||||
} | } | ||||
return str | return str | ||||
}, | }, | ||||
// DisposeStatus | // DisposeStatus | ||||
DisposeStatus(status) { | DisposeStatus(status) { | ||||
let str = ''; | let str = ''; | ||||
@@ -78,10 +78,12 @@ | |||||
<view class="arriveNum">第{{item.visitRecord || "--"}}次接待</view> | <view class="arriveNum">第{{item.visitRecord || "--"}}次接待</view> | ||||
</view> | </view> | ||||
<view class="right"> | <view class="right"> | ||||
<!-- {{item.fraction || '0'}}% | {{item.fraction || '0'}}分 --> | |||||
{{item.fraction || '0'}}% | {{item.fraction || '0'}}% | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="content-last"> | |||||
需求挖掘:{{item.wordFraction|| 0}}% | |||||
</view> | |||||
<view class="content-last"> | <view class="content-last"> | ||||
{{item.createTime}} | {{item.mm || '0'}} min | {{item.createTime}} | {{item.mm || '0'}} min | ||||
</view> | </view> | ||||
@@ -101,7 +103,7 @@ | |||||
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image> | <image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- <view class="screen-counselor"> | |||||
<!-- <view class="screen-counselor"> | |||||
<view class="screen-text"> | <view class="screen-text"> | ||||
客户阶段 | 客户阶段 | ||||
</view> | </view> | ||||
@@ -205,7 +207,8 @@ | |||||
<view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }" | <view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }" | ||||
@click="tabtimetap(3, '近30天')"> | @click="tabtimetap(3, '近30天')"> | ||||
近30天</view> | 近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> | 自定义</view> | ||||
</u-popup> | </u-popup> | ||||
<u-popup v-model="timetushow" mode="bottom"> | <u-popup v-model="timetushow" mode="bottom"> | ||||
@@ -229,11 +232,18 @@ | |||||
90min以上</view> | 90min以上</view> | ||||
</u-popup> | </u-popup> | ||||
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> | <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
orderBylist: [{ | orderBylist: [{ | ||||
@@ -331,6 +341,7 @@ | |||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.LOADING = true | |||||
this.isnorefresh = options.refresh; | this.isnorefresh = options.refresh; | ||||
if (options.activeTotal) { | if (options.activeTotal) { | ||||
this.activeTotal = options.activeTotal | this.activeTotal = options.activeTotal | ||||
@@ -343,7 +354,7 @@ | |||||
} | } | ||||
if (options.staTime) { | if (options.staTime) { | ||||
this.staTime = options.staTime; | this.staTime = options.staTime; | ||||
this.endtime = options.endtime; | |||||
this.endtime = options.endtime + ' 23:59:59'; | |||||
} | } | ||||
}, | }, | ||||
@@ -424,6 +435,7 @@ | |||||
this.$u.post("/customer/lifeTrackDefineList", { | this.$u.post("/customer/lifeTrackDefineList", { | ||||
houseId: this.buildingID | houseId: this.buildingID | ||||
}).then(res => { | }).then(res => { | ||||
this.LOADING = false | |||||
let tempArr = [] | let tempArr = [] | ||||
res.forEach(item => { | res.forEach(item => { | ||||
let tempObj = {} | let tempObj = {} | ||||
@@ -517,6 +529,7 @@ | |||||
var item = { | var item = { | ||||
bg: 0, | bg: 0, | ||||
customerId: item.id, | customerId: item.id, | ||||
wordFraction: item.wordFraction | |||||
} | } | ||||
uni.setStorageSync("searchobj", item); //写入缓存 | uni.setStorageSync("searchobj", item); //写入缓存 | ||||
uni.setStorageSync("entrance", 1); //写入缓存 | uni.setStorageSync("entrance", 1); //写入缓存 | ||||
@@ -537,7 +550,7 @@ | |||||
let newobj = res[0]; | let newobj = res[0]; | ||||
if (res[0].merge == 0) { | if (res[0].merge == 0) { | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}` | |||||
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${"2"}&wordFraction=${item.wordFraction}` | |||||
}) | }) | ||||
} else { | } else { | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
@@ -555,6 +568,8 @@ | |||||
let orderBy = 0; | let orderBy = 0; | ||||
if (this.activeTotal == 5) { | if (this.activeTotal == 5) { | ||||
dateType = null; | dateType = null; | ||||
} else if (this.activeTotal == 3) { | |||||
dateType = null; | |||||
} else if (this.activeTotal == 4) { | } else if (this.activeTotal == 4) { | ||||
dateType = null; | dateType = null; | ||||
} else { | } else { | ||||
@@ -594,6 +609,7 @@ | |||||
parames.query.agentId = this.screen.agentId | parames.query.agentId = this.screen.agentId | ||||
} | } | ||||
this.$u.post("/customer/findbypage", parames).then(data => { | this.$u.post("/customer/findbypage", parames).then(data => { | ||||
this.LOADING = false | |||||
if (this.staTime && this.endtime) { | if (this.staTime && this.endtime) { | ||||
this.arriveFilter = `${this.staTime}-${this.endtime}` | this.arriveFilter = `${this.staTime}-${this.endtime}` | ||||
} | } | ||||
@@ -605,6 +621,8 @@ | |||||
} | } | ||||
this.totalRecord = data.totalPage; | this.totalRecord = data.totalPage; | ||||
this.totalRecords = data.totalRecord; | this.totalRecords = data.totalRecord; | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
//获取顾问列表 | //获取顾问列表 | ||||
@@ -43,9 +43,12 @@ | |||||
</view> | </view> | ||||
<!-- checkAuthority('顾问指派顾问') --> | |||||
<view class="footer-button" v-if="item.status!=0"> | <view class="footer-button" v-if="item.status!=0"> | ||||
<view class="footer1" @click.stop="addTime(item)">接待延时</view> | <view class="footer1" @click.stop="addTime(item)">接待延时</view> | ||||
<view class="footer1" @click.stop="assign(item)">重新指派</view> | |||||
<template v-if="zhipai"> | |||||
<view class="footer1" @click.stop="assign(item)">重新指派</view> | |||||
</template> | |||||
<template v-if="endReception"> | <template v-if="endReception"> | ||||
<view class="footer3" @click.stop="changeEnd(item.id)">结束接待</view> | <view class="footer3" @click.stop="changeEnd(item.id)">结束接待</view> | ||||
</template> | </template> | ||||
@@ -55,15 +58,21 @@ | |||||
<view class="centerbox-che">手机号码:<text class="shizai">{{item.phone || "--"}}</text></view> | <view class="centerbox-che">手机号码:<text class="shizai">{{item.phone || "--"}}</text></view> | ||||
</view> | </view> | ||||
<view class="footer-button" v-if="item.status==0"> | <view class="footer-button" v-if="item.status==0"> | ||||
<view class="footer3" @click.stop="assign(item)">指派顾问</view> | |||||
<template v-if="zhipai"> | |||||
<view class="footer3" @click.stop="assign(item)">指派顾问</view> | |||||
</template> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<image v-if="isAdd == 0 && (dataCode!=6||(dataCode==6&&addAccount==0))" @click="addreception()" class="add" | |||||
<image v-if="dataCode!=6||(dataCode==6&&addAccount==0)" @click="addreception()" class="add" | |||||
src="/static/images/add.png" mode=""></image> | src="/static/images/add.png" mode=""></image> | ||||
<image class="add2" @click="reshCustom()" src="https://static.quhouse.com/zhikong_xcx_img/refresh.png" mode=""> | <image class="add2" @click="reshCustom()" src="https://static.quhouse.com/zhikong_xcx_img/refresh.png" mode=""> | ||||
</image> | </image> | ||||
<u-tabbar activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar> | <u-tabbar activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -71,36 +80,48 @@ | |||||
var util = require("../../utils/util.js"); | var util = require("../../utils/util.js"); | ||||
var config = require("../../config"); | var config = require("../../config"); | ||||
import tabbarList from '@/utils/tabbar.js' | import tabbarList from '@/utils/tabbar.js' | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
noClick:true, | |||||
tabbarList:tabbarList, | |||||
noClick: true, | |||||
tabbarList: tabbarList, | |||||
current: 0, | current: 0, | ||||
buildingID: '', | buildingID: '', | ||||
waitCustomList: [], | waitCustomList: [], | ||||
isAdd: '', | |||||
dataCode: '', | dataCode: '', | ||||
addAccount: '', | addAccount: '', | ||||
endReception: true, | endReception: true, | ||||
fdFlag:null | |||||
fdFlag: null | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | |||||
zhipai() { | |||||
if (this.dataCode == 6) { | |||||
return this.checkAuthority('顾问指派顾问') | |||||
} else { | |||||
return true | |||||
} | |||||
} | |||||
}, | |||||
components: {}, | components: {}, | ||||
onLoad() {}, | |||||
onShow() { | onShow() { | ||||
this.LOADING = true | |||||
this.buildingID = uni.getStorageSync('buildingID').id; | this.buildingID = uni.getStorageSync('buildingID').id; | ||||
const { | const { | ||||
addAccount, | addAccount, | ||||
dataCode | dataCode | ||||
} = uni.getStorageSync("weapp_session_userInfo_data"); | } = uni.getStorageSync("weapp_session_userInfo_data"); | ||||
let menulist = uni.getStorageSync('weapp_session_Menu_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.addAccount = addAccount; | ||||
this.dataCode = dataCode; | this.dataCode = dataCode; | ||||
console.log(this.menulist) | |||||
this.init() | this.init() | ||||
this.queryHaveDept() | |||||
this.updateInit() | this.updateInit() | ||||
}, | }, | ||||
methods: { | methods: { | ||||
@@ -173,21 +194,16 @@ | |||||
} | } | ||||
}, | }, | ||||
queryHaveDept() { | |||||
return new Promise((resolve, reject) => { | |||||
this.$u.get("/user/queryHaveDept?houseId=" + this.buildingID).then(res => { | |||||
this.isAdd = res; | |||||
resolve(); | |||||
}) | |||||
}) | |||||
}, | |||||
init() { | init() { | ||||
this.waitCustomList = [] | this.waitCustomList = [] | ||||
let parames = { | let parames = { | ||||
itemId: this.buildingID | itemId: this.buildingID | ||||
} | } | ||||
this.$u.post("/customer/reception", parames).then(data => { | this.$u.post("/customer/reception", parames).then(data => { | ||||
this.LOADING = false | |||||
this.waitCustomList = data; | this.waitCustomList = data; | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}); | }); | ||||
}, | }, | ||||
//延时接待 | //延时接待 | ||||
@@ -216,26 +232,26 @@ | |||||
cancelColor: "#999999", | cancelColor: "#999999", | ||||
success: res => { | success: res => { | ||||
if (this.noClick) { | 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 { | } else { | ||||
// 这里是重复点击的判断 | |||||
// 这里是重复点击的判断 | |||||
} | } | ||||
} | } | ||||
}) | }) | ||||
@@ -255,29 +271,10 @@ | |||||
}); | }); | ||||
return | return | ||||
} | } | ||||
if (this.waitCustomList.length == 0) { | |||||
uni.navigateTo({ | |||||
url: '/pages/mine/reception/addreception' | |||||
}) | |||||
return | |||||
} else { | |||||
for (var i = 0; i < this.waitCustomList.length; i++) { | |||||
if (this.waitCustomList[i].status == 1) { | |||||
uni.showLoading({ | |||||
title: '当前还有未完成的客户项' | |||||
}); | |||||
setTimeout(function() { | |||||
uni.hideLoading(); | |||||
}, 1000); | |||||
return | |||||
} else { | |||||
uni.navigateTo({ | |||||
url: '/pages/mine/reception/addreception' | |||||
}) | |||||
return | |||||
} | |||||
} | |||||
} | |||||
uni.navigateTo({ | |||||
url: '/pages/mine/reception/addreception' | |||||
}); | |||||
} else { | } else { | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/mine/reception/addreception' | url: '/pages/mine/reception/addreception' | ||||
@@ -439,7 +436,7 @@ | |||||
width: 90upx; | width: 90upx; | ||||
height: 90upx; | height: 90upx; | ||||
position: fixed; | position: fixed; | ||||
bottom:275upx; | |||||
bottom: 275upx; | |||||
right: 44upx; | right: 44upx; | ||||
} | } | ||||
@@ -1,7 +1,7 @@ | |||||
<template> | <template> | ||||
<view class="boox"> | <view class="boox"> | ||||
<view class="title"> | <view class="title"> | ||||
数智工牌 | |||||
{{ isPuqiang ? "数智工牌" : "AI营销辅助"}} | |||||
</view> | </view> | ||||
<view class="booximg"> | <view class="booximg"> | ||||
<!-- <image class="img" src="https://qufang.oss-cn-beijing.aliyuncs.com/zkgj/xcx/guidepage.png" mode=""></image> --> | <!-- <image class="img" src="https://qufang.oss-cn-beijing.aliyuncs.com/zkgj/xcx/guidepage.png" mode=""></image> --> | ||||
@@ -52,6 +52,15 @@ | |||||
pathur3:'/pages/center/prohibited/index', | pathur3:'/pages/center/prohibited/index', | ||||
}; | }; | ||||
}, | }, | ||||
computed: { | |||||
// 是否是普强小程序 | |||||
isPuqiang() { | |||||
return config.service.host.indexOf('xitong.pachira.cn') == -1 | |||||
}, | |||||
}, | |||||
onLoad(opts) { | onLoad(opts) { | ||||
this.name=opts.loginName ||''; | this.name=opts.loginName ||''; | ||||
let stat=opts.path||''; | let stat=opts.path||''; | ||||
@@ -4,7 +4,7 @@ | |||||
<view class="Switching1"> | <view class="Switching1"> | ||||
<image class="Switching1-img" src="../../static/images/building.png" mode=""></image> | <image class="Switching1-img" src="../../static/images/building.png" mode=""></image> | ||||
</view> | </view> | ||||
<view class="Switching2">项目:</view> | |||||
<view class="Switching2">{{ isPuqiang ? '项目' : '客户' }}:</view> | |||||
<view class="Switching3">{{buildingname}}</view> | <view class="Switching3">{{buildingname}}</view> | ||||
<view class="Switching4" v-if="buildingishow" @click="piskbuilding()">切换项目</view> | <view class="Switching4" v-if="buildingishow" @click="piskbuilding()">切换项目</view> | ||||
</view> | </view> | ||||
@@ -60,7 +60,7 @@ | |||||
</view> | </view> | ||||
<view class="title" v-if="equipmentisshow">设备</view> | <view class="title" v-if="equipmentisshow">设备</view> | ||||
<view class="shebenbox" v-if="equipmentisshow" > | |||||
<view class="shebenbox" v-if="equipmentisshow"> | |||||
<view class="shebenche" @click="tapjumpequipment(0)"> | <view class="shebenche" @click="tapjumpequipment(0)"> | ||||
<view class="shebenchenum">{{equipmentobj.totalNum || 0}}</view> | <view class="shebenchenum">{{equipmentobj.totalNum || 0}}</view> | ||||
<view class="shebenchetext">设备总数</view> | <view class="shebenchetext">设备总数</view> | ||||
@@ -90,7 +90,7 @@ | |||||
</view> | </view> | ||||
</view> --> | </view> --> | ||||
<view class="real-timebox"> | <view class="real-timebox"> | ||||
<view class="timebox"> | <view class="timebox"> | ||||
<view class="real" @click="tapjumpreception('1')"> | <view class="real" @click="tapjumpreception('1')"> | ||||
@@ -102,13 +102,13 @@ | |||||
<view class="realtext">有效接待</view> | <view class="realtext">有效接待</view> | ||||
</view> | </view> | ||||
<view class="real" @click="tapjumpreception('2')"> | <view class="real" @click="tapjumpreception('2')"> | ||||
<view class="realnum">{{realtimeobj.receivingCustomer || 0}}</view> | |||||
<view class="realnum">{{realtimeobj.receivingCustomer || 0}}</view> | |||||
<view class="realtext">正在接待</view> | <view class="realtext">正在接待</view> | ||||
</view> | </view> | ||||
<view class="real" @click="tapjumpreception('4')"> | <view class="real" @click="tapjumpreception('4')"> | ||||
<view class="realnum">{{realtimeobj.tagCustomer || 0}}</view> | <view class="realnum">{{realtimeobj.tagCustomer || 0}}</view> | ||||
<view class="realtext">未标顾问</view> | <view class="realtext">未标顾问</view> | ||||
</view> | |||||
</view> | |||||
</view> | </view> | ||||
<view class="timebox"> | <view class="timebox"> | ||||
<view class="real" @click="tapjumpreception('auth')"> | <view class="real" @click="tapjumpreception('auth')"> | ||||
@@ -119,19 +119,18 @@ | |||||
<view class="realnum">{{realtimeobj.fraction || 0}}%</view> | <view class="realnum">{{realtimeobj.fraction || 0}}%</view> | ||||
<view class="realtext">平均执行率</view> | <view class="realtext">平均执行率</view> | ||||
</view> | </view> | ||||
<view class="real" > | |||||
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realnum" style="color: red;" >{{realtimeobj.prohibitedCustomer || 0}}</view> | |||||
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realtext">违禁预警</view> | |||||
<view class="real" @click="tapjumpreception('6')"> | |||||
<view class="realnum">{{realtimeobj.wordFraction || 0}}%</view> | |||||
<view class="realtext">平均挖掘率</view> | |||||
</view> | </view> | ||||
<view class="real"> | <view class="real"> | ||||
<view class="realnum"></view> | |||||
<view class="realtext"></view> | |||||
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realnum" style="color: red;"> | |||||
{{realtimeobj.prohibitedCustomer || 0}} | |||||
</view> | |||||
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realtext">违禁预警</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="title" style="display: flex;"> | <view class="title" style="display: flex;"> | ||||
<view style="width: 55%;">概览</view> | <view style="width: 55%;">概览</view> | ||||
@@ -143,7 +142,7 @@ | |||||
</view> | </view> | ||||
<view class="real-timebox"> | <view class="real-timebox"> | ||||
<view class="timebox"> | <view class="timebox"> | ||||
<view class="real" @click="tapjumpreception('3')"> | |||||
<view class="real" @click="tapjumpreception('3')"> | |||||
<view class="realnum">{{Thisweekobj.receptionCount || 0}}</view> | <view class="realnum">{{Thisweekobj.receptionCount || 0}}</view> | ||||
<view class="realtext">接待量</view> | <view class="realtext">接待量</view> | ||||
</view> | </view> | ||||
@@ -151,56 +150,43 @@ | |||||
<view class="realnum">{{Thisweekobj.activeCustomer|| 0}}</view> | <view class="realnum">{{Thisweekobj.activeCustomer|| 0}}</view> | ||||
<view class="realtext">有效接待</view> | <view class="realtext">有效接待</view> | ||||
</view> | </view> | ||||
<view class="real" @click="tapjumpreception('333')"> | |||||
<view class="realnum">{{Thisweekobj.fraction || 0}}%</view> | |||||
<view class="real" @click="tapjumpreception('333')"> | |||||
<view class="realnum">{{Thisweekobj.fraction || 0}}%</view> | |||||
<view class="realtext">平均执行率</view> | <view class="realtext">平均执行率</view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="timebox"> | <view class="timebox"> | ||||
<view class="real" @click="tapjumpreception('333')"> | |||||
<view class="real" @click="tapjumpreception('333')"> | |||||
<view class="realnum">{{Thisweekobj.avgDuration|| 0}}</view> | <view class="realnum">{{Thisweekobj.avgDuration|| 0}}</view> | ||||
<view class="realtext">平均接待时长</view> | <view class="realtext">平均接待时长</view> | ||||
</view> | </view> | ||||
<view class="real" @click="tapjumpreception('3')"> | |||||
<view class="realnum">{{Thisweekobj.wordFraction || 0}}%</view> | |||||
<view class="realtext">平均挖掘率</view> | |||||
</view> | |||||
<view class="real" @click="prohibitedtap(2)" v-if="methodsisshow==true"> | <view class="real" @click="prohibitedtap(2)" v-if="methodsisshow==true"> | ||||
<view class="realnum" style="color: red;" >{{Thisweekobj.prohibitedCustomer || 0}}</view> | |||||
<view class="realnum" style="color: red;">{{Thisweekobj.prohibitedCustomer || 0}}</view> | |||||
<view class="realtext">违禁预警</view> | <view class="realtext">违禁预警</view> | ||||
</view> | </view> | ||||
<view class="real" v-else> | <view class="real" v-else> | ||||
<view class="realnum"></view> | <view class="realnum"></view> | ||||
<view class="realtext"></view> | <view class="realtext"></view> | ||||
</view> | </view> | ||||
<view class="real"> | |||||
<view class="realnum"></view> | |||||
<view class="realtext"></view> | |||||
</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="title">常用功能</view> | <view class="title">常用功能</view> | ||||
<view class="commonly-box"> | <view class="commonly-box"> | ||||
<!-- 权限菜单控制显隐 因为后台添加的按钮权限并不会在此返回所以需要手动添加 showMenu --> | <!-- 权限菜单控制显隐 因为后台添加的按钮权限并不会在此返回所以需要手动添加 showMenu --> | ||||
<view class="commonly" @click="Piabodata(item.name)" v-for="(item,index) in Menulist" :key="index" v-if="showMenu(item.name)"> | |||||
<view class="commonly" @click="Piabodata(item.name)" v-for="(item,index) in Menulist" :key="index" | |||||
v-if="showMenu(item.name)"> | |||||
<view class="commonly-img"> | <view class="commonly-img"> | ||||
<image v-if="item.name=='客户管理'" class="commonly-img1" src="../../static/images/function1.png" | |||||
mode=""></image> | |||||
<image v-if="item.name=='接待记录'" class="commonly-img1" src="../../static/images/function2.png" | |||||
mode=""></image> | |||||
<image v-if="item.name=='销讲数据'" class="commonly-img1" src="../../static/images/function4.png" | |||||
mode=""></image> | |||||
<image v-if="item.name=='设备管理'" class="commonly-img1" src="../../static/images/function5.png" | |||||
mode=""></image> | |||||
<image v-if="item.name=='值班顾问'" class="commonly-img1" src="../../static/images/function6.png" | |||||
mode=""></image> | |||||
<image v-if="item.name=='顾问排名'" class="commonly-img1" src="../../static/images/rankingguwen.png" | |||||
mode=""></image> | |||||
<image v-if="item.name=='违禁记录'" class="commonly-img1" src="../../static/images/prohibited.png" | |||||
mode=""></image> | |||||
<image class="commonly-img1" :src="item.name | imgFilter" mode=""></image> | |||||
</view> | </view> | ||||
<view class="commonly-text">{{item.name}}</view> | <view class="commonly-text">{{item.name}}</view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- 项目切换 --> | <!-- 项目切换 --> | ||||
<view v-if="Showhiddenunits"> | <view v-if="Showhiddenunits"> | ||||
<u-select :mask-close-able="false" v-model="Showhiddenunits" mode="single-column" :list="lpanlist" | <u-select :mask-close-able="false" v-model="Showhiddenunits" mode="single-column" :list="lpanlist" | ||||
@@ -214,7 +200,7 @@ | |||||
</view> | </view> | ||||
<view class="content"> | <view class="content"> | ||||
<view class="tit">{{tit}}</view> | <view class="tit">{{tit}}</view> | ||||
<u-parse class="ql-editor" :content="content" @preview="preview" @navigate="navigate"/> | |||||
<u-parse class="ql-editor" :content="content" @preview="preview" @navigate="navigate" /> | |||||
<!-- <rich-text :nodes="content"></rich-text> --> | <!-- <rich-text :nodes="content"></rich-text> --> | ||||
</view> | </view> | ||||
<view class="btn" @click="lookDetail">查看详情</view> | <view class="btn" @click="lookDetail">查看详情</view> | ||||
@@ -223,8 +209,8 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
<u-tabbar activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar> | <u-tabbar activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar> | ||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -234,14 +220,20 @@ | |||||
var util = require("../../utils/util.js"); | var util = require("../../utils/util.js"); | ||||
import tabbarList from '@/utils/tabbar.js' | import tabbarList from '@/utils/tabbar.js' | ||||
import uParse from '../../components/gaoyia-parse/parse.vue' | import uParse from '../../components/gaoyia-parse/parse.vue' | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
uParse, | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
id:"", | |||||
isShowUpdate:false, | |||||
tit:"", | |||||
content:"", | |||||
tabbarList:tabbarList, | |||||
id: "", | |||||
isShowUpdate: false, | |||||
tit: "", | |||||
content: "", | |||||
tabbarList: tabbarList, | |||||
current: 0, | current: 0, | ||||
userInfo: {}, | userInfo: {}, | ||||
Showhiddenunits: false, | Showhiddenunits: false, | ||||
@@ -270,7 +262,8 @@ | |||||
prohibitedCustomer: '', | prohibitedCustomer: '', | ||||
tagCustomer: '', | tagCustomer: '', | ||||
fraction: '', | fraction: '', | ||||
receptionCount:'' | |||||
wordFraction: '', | |||||
receptionCount: '' | |||||
}, | }, | ||||
Thisweekobj: { | Thisweekobj: { | ||||
sumCustomer: '', | sumCustomer: '', | ||||
@@ -279,38 +272,56 @@ | |||||
prohibitedCustomer: '', | prohibitedCustomer: '', | ||||
tagCustomer: '', | tagCustomer: '', | ||||
fraction: '', | fraction: '', | ||||
receptionCount:'' | |||||
wordFraction: '', | |||||
receptionCount: '' | |||||
}, | }, | ||||
methodsisshow:false, | |||||
zhixingcenterindex:2, | |||||
methodsisshow: false, | |||||
zhixingcenterindex: 2, | |||||
totalTimeShow: false, | totalTimeShow: false, | ||||
statDateStart:'', | |||||
statDateEnd:'', | |||||
statDateStart: '', | |||||
statDateEnd: '', | |||||
needShow: ['客户管理', '接待记录', '销讲数据', '设备管理', '值班顾问', '顾问排名', '违禁记录'], // 权限配置需要展示出来的功能入口 | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | computed: { | ||||
// 是否是普强小程序 | |||||
showMenu() { | showMenu() { | ||||
return name => { | return name => { | ||||
if (name == '标记有效无效接待' || name == '结束接待' || name == '客户编辑') { | |||||
return false | |||||
} else { | |||||
if (this.needShow.findIndex(item => item == name) != -1) { | |||||
return true | return true | ||||
} else { | |||||
return false | |||||
} | } | ||||
} | } | ||||
} | |||||
}, | |||||
// 是否是普强小程序 | |||||
isPuqiang() { | |||||
return config.service.host.indexOf('xitong.pachira.cn') == -1 | |||||
}, | |||||
}, | }, | ||||
components: { | |||||
uParse | |||||
onLoad() { | |||||
if (!this.isPuqiang) { | |||||
uni.setNavigationBarTitle({ | |||||
title: 'AI营销辅助平台' | |||||
}) | |||||
} | |||||
this.initPopup() | |||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.LOADING = true | |||||
this.getMenu() | this.getMenu() | ||||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | ||||
if(this.userInfo.dataCode==6 || this.userInfo.dataCode==3){ | |||||
this.methodsisshow=false; | |||||
}else{ | |||||
this.methodsisshow=true; | |||||
if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) { | |||||
this.methodsisshow = false; | |||||
} else { | |||||
this.methodsisshow = true; | |||||
} | } | ||||
if (this.userInfo.zkProperties.length == 1) { | if (this.userInfo.zkProperties.length == 1) { | ||||
this.buildingID = uni.getStorageSync('buildingID').id; | this.buildingID = uni.getStorageSync('buildingID').id; | ||||
@@ -339,9 +350,10 @@ | |||||
this.initrealTimeStatistics() | this.initrealTimeStatistics() | ||||
this.updateInit() | this.updateInit() | ||||
}, | }, | ||||
onPullDownRefresh() { | onPullDownRefresh() { | ||||
this.getMenu() | this.getMenu() | ||||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | ||||
if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) { | if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) { | ||||
this.methodsisshow = false; | this.methodsisshow = false; | ||||
@@ -378,14 +390,16 @@ | |||||
uni.stopPullDownRefresh() | uni.stopPullDownRefresh() | ||||
}, 3000) | }, 3000) | ||||
}, | }, | ||||
onLoad() { | |||||
this.initPopup() | |||||
}, | |||||
methods: { | methods: { | ||||
close(){ | |||||
towajue(){ | |||||
uni.navigateTo({ | |||||
url: "/pages/center/Piabodata/requireminingAnalysis" | |||||
}) | |||||
}, | |||||
close() { | |||||
this.isShowUpdate = false; | this.isShowUpdate = false; | ||||
}, | }, | ||||
lookDetail(){ | |||||
lookDetail() { | |||||
let datas = { | let datas = { | ||||
id: this.id, | id: this.id, | ||||
title: this.tit, | title: this.tit, | ||||
@@ -396,8 +410,8 @@ | |||||
url: "../mine/messageDetail" | url: "../mine/messageDetail" | ||||
}) | }) | ||||
let data = { | let data = { | ||||
id:this.id, | |||||
accountId:uni.getStorageSync('weapp_session_userInfo_data').accountId | |||||
id: this.id, | |||||
accountId: uni.getStorageSync('weapp_session_userInfo_data').accountId | |||||
} | } | ||||
uni.request({ | uni.request({ | ||||
url: config.service.updateRead, | url: config.service.updateRead, | ||||
@@ -413,7 +427,7 @@ | |||||
}) | }) | ||||
this.isShowUpdate = false; | this.isShowUpdate = false; | ||||
}, | }, | ||||
initPopup(){ | |||||
initPopup() { | |||||
uni.request({ | uni.request({ | ||||
url: config.service.updatePopup, | url: config.service.updatePopup, | ||||
method: "GET", | method: "GET", | ||||
@@ -421,9 +435,9 @@ | |||||
'content-type': 'application/json', | 'content-type': 'application/json', | ||||
'Access-Token': uni.getStorageSync('weapp_session_login_data').token | 'Access-Token': uni.getStorageSync('weapp_session_login_data').token | ||||
}, | }, | ||||
data: { | data: { | ||||
}, | }, | ||||
success: (res) => { | success: (res) => { | ||||
this.first(res.data.data.id) | this.first(res.data.data.id) | ||||
@@ -431,11 +445,11 @@ | |||||
this.tit = res.data.data.title | this.tit = res.data.data.title | ||||
this.aid = res.data.data.accountId | this.aid = res.data.data.accountId | ||||
this.id = res.data.data.id | this.id = res.data.data.id | ||||
this.isShowUpdate = res.data.data.readFlag==0?true:false; | |||||
this.isShowUpdate = res.data.data.readFlag == 0 ? true : false; | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
first(id){ | |||||
first(id) { | |||||
uni.request({ | uni.request({ | ||||
url: config.service.firstShowPopup, | url: config.service.firstShowPopup, | ||||
method: "GET", | method: "GET", | ||||
@@ -443,7 +457,9 @@ | |||||
'content-type': 'application/json', | 'content-type': 'application/json', | ||||
'Access-Token': uni.getStorageSync('weapp_session_login_data').token | 'Access-Token': uni.getStorageSync('weapp_session_login_data').token | ||||
}, | }, | ||||
data:{id}, | |||||
data: { | |||||
id | |||||
}, | |||||
success: (res) => {} | success: (res) => {} | ||||
}) | }) | ||||
}, | }, | ||||
@@ -453,7 +469,7 @@ | |||||
method: "GET", | method: "GET", | ||||
data: { | data: { | ||||
id: uni.getStorageSync('weapp_session_userInfo_data').accountId, | id: uni.getStorageSync('weapp_session_userInfo_data').accountId, | ||||
projectId: uni.getStorageSync('buildingID').id, | |||||
projectId: uni.getStorageSync('buildingID').id, | |||||
}, | }, | ||||
header: { | header: { | ||||
'content-type': 'application/json', | 'content-type': 'application/json', | ||||
@@ -465,28 +481,28 @@ | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
//获取权限 | //获取权限 | ||||
getMenu(){ | |||||
getMenu() { | |||||
this.$u.get("/user/getMenu").then(data => { | this.$u.get("/user/getMenu").then(data => { | ||||
uni.setStorageSync("weapp_session_Menu_data", data) | uni.setStorageSync("weapp_session_Menu_data", data) | ||||
this.Menulist = uni.getStorageSync('weapp_session_Menu_data'); | this.Menulist = uni.getStorageSync('weapp_session_Menu_data'); | ||||
console.log(this.Menulist, 'adasdasds123') | console.log(this.Menulist, 'adasdasds123') | ||||
}) | |||||
}) | |||||
}, | }, | ||||
//自定义时间 | //自定义时间 | ||||
totalTimeChange(e) { | totalTimeChange(e) { | ||||
this.statDateStart=e.startDate; | |||||
this.statDateEnd=e.endDate; | |||||
this.zhixingcenterindex=7; | |||||
this.statDateStart = e.startDate; | |||||
this.statDateEnd = e.endDate; | |||||
this.zhixingcenterindex = 7; | |||||
this.initworkThisWeek() | this.initworkThisWeek() | ||||
}, | }, | ||||
//时间选择 | //时间选择 | ||||
tabtimeclick(i){ | |||||
if(i==7){ | |||||
tabtimeclick(i) { | |||||
if (i == 7) { | |||||
this.totalTimeShow = true; | this.totalTimeShow = true; | ||||
}else{ | |||||
this.zhixingcenterindex=i; | |||||
} else { | |||||
this.zhixingcenterindex = i; | |||||
this.initworkThisWeek() | this.initworkThisWeek() | ||||
} | } | ||||
}, | }, | ||||
@@ -501,9 +517,9 @@ | |||||
}, | }, | ||||
data: { | data: { | ||||
houseId: this.buildingID, | houseId: this.buildingID, | ||||
dateType:this.zhixingcenterindex==7?null:this.zhixingcenterindex, | |||||
statDateStart:this.statDateStart, | |||||
statDateEnd:this.statDateEnd | |||||
dateType: this.zhixingcenterindex == 7 ? null : this.zhixingcenterindex, | |||||
statDateStart: this.statDateStart, | |||||
statDateEnd: this.statDateEnd | |||||
}, | }, | ||||
success: (data) => { | success: (data) => { | ||||
if (data.data.data == null) { | if (data.data.data == null) { | ||||
@@ -514,10 +530,11 @@ | |||||
receivingCustomer: data.data.data.receivingCustomer, | receivingCustomer: data.data.data.receivingCustomer, | ||||
activeCustomer: data.data.data.activeCustomer, | activeCustomer: data.data.data.activeCustomer, | ||||
prohibitedCustomer: data.data.data.prohibitedCustomer, | prohibitedCustomer: data.data.data.prohibitedCustomer, | ||||
avgDuration: Math.floor(data.data.data.avgDuration/60) ||0, | |||||
avgDuration: Math.floor(data.data.data.avgDuration / 60) || 0, | |||||
tagCustomer: data.data.data.tagCustomer, | tagCustomer: data.data.data.tagCustomer, | ||||
fraction: data.data.data.fraction, | fraction: data.data.data.fraction, | ||||
receptionCount:data.data.data.receptionCount | |||||
wordFraction: data.data.data.wordFraction, | |||||
receptionCount: data.data.data.receptionCount | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -536,6 +553,7 @@ | |||||
houseId: this.buildingID | houseId: this.buildingID | ||||
}, | }, | ||||
success: (data) => { | success: (data) => { | ||||
this.LOADING = false | |||||
if (data.data.data == null) { | if (data.data.data == null) { | ||||
return | return | ||||
} else { | } else { | ||||
@@ -544,16 +562,20 @@ | |||||
receivingCustomer: data.data.data.receivingCustomer, | receivingCustomer: data.data.data.receivingCustomer, | ||||
activeCustomer: data.data.data.activeCustomer, | activeCustomer: data.data.data.activeCustomer, | ||||
prohibitedCustomer: data.data.data.prohibitedCustomer, | prohibitedCustomer: data.data.data.prohibitedCustomer, | ||||
avgDuration: Math.floor(data.data.data.avgDuration/60) ||0, | |||||
avgDuration: Math.floor(data.data.data.avgDuration / 60) || 0, | |||||
tagCustomer: data.data.data.tagCustomer, | tagCustomer: data.data.data.tagCustomer, | ||||
fraction: data.data.data.fraction, | fraction: data.data.data.fraction, | ||||
receptionCount:data.data.data.receptionCount | |||||
wordFraction: data.data.data.wordFraction, | |||||
receptionCount: data.data.data.receptionCount | |||||
} | } | ||||
} | } | ||||
}, | |||||
fail: () => { | |||||
this.LOADING = false | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
//设备 | //设备 | ||||
initequipment() { | initequipment() { | ||||
uni.request({ | uni.request({ | ||||
@@ -625,7 +647,7 @@ | |||||
piskbuilding() { | piskbuilding() { | ||||
// this.Showhiddenunits = true; | // this.Showhiddenunits = true; | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url:"../mine/selectBuilding" | |||||
url: "../mine/selectBuilding" | |||||
}) | }) | ||||
}, | }, | ||||
// 项目选择确认 | // 项目选择确认 | ||||
@@ -641,127 +663,153 @@ | |||||
this.initrealTimeStatistics() | this.initrealTimeStatistics() | ||||
this.initequipment() | this.initequipment() | ||||
this.iniodianloang() | this.iniodianloang() | ||||
}, | }, | ||||
// 项目选择取消 | // 项目选择取消 | ||||
cancel() { | cancel() { | ||||
this.Showhiddenunits = false; | this.Showhiddenunits = false; | ||||
}, | }, | ||||
tapjumpequipment(i){ | |||||
this.Menulist.forEach(item=>{ | |||||
if(item.name=='设备管理'){ | |||||
tapjumpequipment(i) { | |||||
this.Menulist.forEach(item => { | |||||
if (item.name == '设备管理') { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/mine/equipment/index?active='+i | |||||
url: '/pages/mine/equipment/index?active=' + i | |||||
}); | }); | ||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
prohibitedtap(i){ | |||||
if(i==1){ | |||||
prohibitedtap(i) { | |||||
if (i == 1) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/prohibited/index?refresh='+'refresh'+'&activeTotal='+'0'+'&violatedStatus=1' | |||||
url: '/pages/center/prohibited/index?refresh=' + 'refresh' + '&activeTotal=' + '0' + | |||||
'&violatedStatus=1' | |||||
}); | }); | ||||
}else{ | |||||
if(this.zhixingcenterindex==2){ | |||||
} else { | |||||
if (this.zhixingcenterindex == 2) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/prohibited/index?refresh='+'refresh'+'&activeTotal='+'2'+'&violatedStatus=1' | |||||
url: '/pages/center/prohibited/index?refresh=' + 'refresh' + '&activeTotal=' + '2' + | |||||
'&violatedStatus=1' | |||||
}); | }); | ||||
}else if(this.zhixingcenterindex==6){ | |||||
} else if (this.zhixingcenterindex == 6) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/prohibited/index?refresh='+'refresh'+'&activeTotal='+'3'+'&violatedStatus=1' | |||||
url: '/pages/center/prohibited/index?refresh=' + 'refresh' + '&activeTotal=' + '3' + | |||||
'&violatedStatus=1' | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/prohibited/index?refresh='+'refresh'+'&activeTotal='+'4'+'&staTime='+this.statDateStart+'&endtime='+this.statDateEnd+'&violatedStatus=1' | |||||
url: '/pages/center/prohibited/index?refresh=' + 'refresh' + '&activeTotal=' + '4' + | |||||
'&staTime=' + this.statDateStart + '&endtime=' + this.statDateEnd + | |||||
'&violatedStatus=1' | |||||
}); | }); | ||||
} | } | ||||
} | } | ||||
}, | }, | ||||
tapjumpreception(i){ | |||||
this.Menulist.forEach(item=>{ | |||||
if(item.name=='接待记录'){ | |||||
if(i==1){ | |||||
tapjumpreception(i) { | |||||
this.Menulist.forEach(item => { | |||||
if (item.name == '接待记录') { | |||||
if (i == 1) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + '&activeTotal=' + | |||||
'0' | |||||
}); | }); | ||||
} else if (i == 'auth') { | } else if (i == 'auth') { | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'0'+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + '&activeTotal=' + | |||||
'0' + '&validInvalid=0' | |||||
}); | }); | ||||
}else if(i==2){ | |||||
} else if (i == 2) { | |||||
uni.switchTab({ | uni.switchTab({ | ||||
url: '/pages/index/customer' | url: '/pages/index/customer' | ||||
}); | }); | ||||
}else if(i==3){ | |||||
if(this.zhixingcenterindex==2){ | |||||
} else if (i == 3) { | |||||
if (this.zhixingcenterindex == 2) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'2' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '2' | |||||
}); | }); | ||||
}else if(this.zhixingcenterindex==6){ | |||||
} else if (this.zhixingcenterindex == 6) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'3' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '3' | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'4'+'&staTime='+this.statDateStart+'&endtime='+this.statDateEnd | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '4' + '&staTime=' + this.statDateStart + | |||||
'&endtime=' + this.statDateEnd | |||||
}); | }); | ||||
} | } | ||||
}else if(i==333){ | |||||
if(this.zhixingcenterindex==2){ | |||||
} else if (i == 333) { | |||||
if (this.zhixingcenterindex == 2) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'2'+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '2' + '&validInvalid=0' | |||||
}); | }); | ||||
}else if(this.zhixingcenterindex==6){ | |||||
} else if (this.zhixingcenterindex == 6) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'3'+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '3' + '&validInvalid=0' | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'4'+'&staTime='+this.statDateStart+'&endtime='+this.statDateEnd+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '4' + '&staTime=' + this.statDateStart + | |||||
'&endtime=' + this.statDateEnd + '&validInvalid=0' | |||||
}); | }); | ||||
} | } | ||||
}else if(i==3){ | |||||
if(this.zhixingcenterindex==2){ | |||||
} else if (i == 3) { | |||||
if (this.zhixingcenterindex == 2) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'2' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '2' | |||||
}); | }); | ||||
}else if(this.zhixingcenterindex==6){ | |||||
} else if (this.zhixingcenterindex == 6) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'3' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '3' | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'4'+'&staTime='+this.statDateStart+'&endtime='+this.statDateEnd | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '4' + '&staTime=' + this.statDateStart + | |||||
'&endtime=' + this.statDateEnd | |||||
}); | }); | ||||
} | } | ||||
}else if(i==6){ | |||||
} else if (i == 6) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'0'+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + '&activeTotal=' + | |||||
'0' + '&validInvalid=0' | |||||
}); | }); | ||||
}else if(i==7){ | |||||
if(this.zhixingcenterindex==2){ | |||||
} else if (i == 7) { | |||||
if (this.zhixingcenterindex == 2) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'2'+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '2' + '&validInvalid=0' | |||||
}); | }); | ||||
}else if(this.zhixingcenterindex==6){ | |||||
} else if (this.zhixingcenterindex == 6) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'3'+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '3' + '&validInvalid=0' | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'4'+'&staTime='+this.statDateStart+'&endtime='+this.statDateEnd+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=' + '4' + '&staTime=' + this.statDateStart + | |||||
'&endtime=' + this.statDateEnd + '&validInvalid=0' | |||||
}); | }); | ||||
} | } | ||||
}else if (i == 4) { | |||||
} else if (i == 4) { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal=0'+'&markAdvisor=0'+'&validInvalid=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=0' + '&markAdvisor=0' + '&validInvalid=0' | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal=0'+'&markAdvisor=0' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' + | |||||
'&activeTotal=0' + '&markAdvisor=0' | |||||
}); | }); | ||||
} | } | ||||
} | } | ||||
@@ -774,7 +822,7 @@ | |||||
}); | }); | ||||
} else if (item == '接待记录') { | } else if (item == '接待记录') { | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/records/index?refresh='+'refresh' | |||||
url: '/pages/center/records/index?refresh=' + 'refresh' | |||||
}); | }); | ||||
} else if (item == '值班顾问') { | } else if (item == '值班顾问') { | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
@@ -784,97 +832,138 @@ | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/mine/equipment/index' | url: '/pages/mine/equipment/index' | ||||
}); | }); | ||||
} else if(item == '顾问排名') { | |||||
} else if (item == '顾问排名') { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/Piabodata/Employeesstatistics' | url: '/pages/center/Piabodata/Employeesstatistics' | ||||
}); | }); | ||||
}else if(item == '违禁记录'){ | |||||
} else if (item == '违禁记录') { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/prohibited/index?refresh='+'refresh' | |||||
url: '/pages/center/prohibited/index?refresh=' + 'refresh' | |||||
}); | }); | ||||
}else{ | |||||
} else { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/center/consumer/index?refresh='+'refresh' | |||||
url: '/pages/center/consumer/index?refresh=' + 'refresh' | |||||
}); | }); | ||||
} | } | ||||
}, | }, | ||||
}, | }, | ||||
filters: { | |||||
imgFilter(type) { | |||||
let path = '' | |||||
switch (type) { | |||||
case '客户管理': | |||||
path = '../../static/images/function1.png' | |||||
break | |||||
case '接待记录': | |||||
path = '../../static/images/function2.png' | |||||
break | |||||
case '销讲数据': | |||||
path = '../../static/images/function4.png' | |||||
break | |||||
case '设备管理': | |||||
path = '../../static/images/function5.png' | |||||
break | |||||
case '值班顾问': | |||||
path = '../../static/images/function6.png' | |||||
break | |||||
case '顾问排名': | |||||
path = '../../static/images/rankingguwen.png' | |||||
break | |||||
case '违禁记录': | |||||
path = '../../static/images/prohibited.png' | |||||
break | |||||
} | |||||
return path | |||||
} | |||||
} | |||||
}; | }; | ||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.update{ | |||||
width: 100%; | |||||
height: 100%; | |||||
background: rgba(0, 0, 0, 0.5); | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
bottom: 0; | |||||
right: 0; | |||||
z-index: 9999; | |||||
.updateBox{ | |||||
width: 80%; | |||||
background: #FFFFFF; | |||||
position: relative; | |||||
left: 50%; | |||||
margin-left: -40%; | |||||
padding: 20rpx; | |||||
border-radius: 10rpx; | |||||
top: 140rpx; | |||||
.top{ | |||||
width: 350rpx; | |||||
height: 220rpx; | |||||
margin: 0 auto; | |||||
image{ | |||||
width: 100%; | |||||
height: 100%; | |||||
} | |||||
} | |||||
.btn{ | |||||
width: 510rpx; | |||||
height: 88rpx; | |||||
background: #2671E2; | |||||
margin: 0 auto; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
font-size: 36rpx; | |||||
border-radius: 8rpx; | |||||
color: #FFFFFF; | |||||
} | |||||
.content{ | |||||
height: 268rpx; | |||||
overflow-y: auto; | |||||
margin: 46rpx 0; | |||||
} | |||||
.tit{ | |||||
font-size: 40rpx; | |||||
text-align: center; | |||||
font-weight: bold; | |||||
} | |||||
.close{ | |||||
position: absolute; | |||||
bottom: -100rpx; | |||||
left: 50%; | |||||
margin-left: -50rpx; | |||||
.update { | |||||
width: 100%; | |||||
height: 100%; | |||||
background: rgba(0, 0, 0, 0.5); | |||||
position: fixed; | |||||
top: 0; | |||||
left: 0; | |||||
bottom: 0; | |||||
right: 0; | |||||
z-index: 9999; | |||||
.updateBox { | |||||
width: 80%; | |||||
background: #FFFFFF; | |||||
position: relative; | |||||
left: 50%; | |||||
margin-left: -40%; | |||||
padding: 20rpx; | |||||
border-radius: 10rpx; | |||||
top: 140rpx; | |||||
.top { | |||||
width: 350rpx; | |||||
height: 220rpx; | |||||
margin: 0 auto; | |||||
image { | |||||
width: 100%; | |||||
height: 100%; | |||||
} | } | ||||
} | } | ||||
.btn { | |||||
width: 510rpx; | |||||
height: 88rpx; | |||||
background: #2671E2; | |||||
margin: 0 auto; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
font-size: 36rpx; | |||||
border-radius: 8rpx; | |||||
color: #FFFFFF; | |||||
} | |||||
.content { | |||||
height: 268rpx; | |||||
overflow-y: auto; | |||||
margin: 46rpx 0; | |||||
} | |||||
.tit { | |||||
font-size: 40rpx; | |||||
text-align: center; | |||||
font-weight: bold; | |||||
} | |||||
.close { | |||||
position: absolute; | |||||
bottom: -100rpx; | |||||
left: 50%; | |||||
margin-left: -50rpx; | |||||
} | |||||
} | |||||
} | } | ||||
.activecllasscet{ | |||||
.activecllasscet { | |||||
font-size: 28rpx; | font-size: 28rpx; | ||||
font-weight: 400; | font-weight: 400; | ||||
color: #008ef2; | color: #008ef2; | ||||
} | } | ||||
.cet{ | |||||
.cet { | |||||
font-size: 28rpx; | font-size: 28rpx; | ||||
font-weight: 400; | font-weight: 400; | ||||
color: #333333; | color: #333333; | ||||
.cetview{ | |||||
.cetview { | |||||
margin-left: 20rpx; | margin-left: 20rpx; | ||||
} | } | ||||
} | } | ||||
.cented-box { | .cented-box { | ||||
padding: 30rpx; | padding: 30rpx; | ||||
background: #F8F8F8; | background: #F8F8F8; | ||||
@@ -24,15 +24,17 @@ | |||||
<image src="/static/images/arrow.png" style="width: 18rpx;height: 32rpx;" mode=""></image> | <image src="/static/images/arrow.png" style="width: 18rpx;height: 32rpx;" mode=""></image> | ||||
</view> | </view> | ||||
</navigator> | </navigator> | ||||
<navigator class="line" url="/pages/mine/subscribe"> | |||||
<view class="title"> | |||||
<image src="/static/images/studyhot.png" style="width: 36rpx;height: 36rpx;" mode=""></image> | |||||
订阅消息 | |||||
</view> | |||||
<view class="right"> | |||||
<image src="/static/images/arrow.png" style="width: 18rpx;height: 32rpx;" mode=""></image> | |||||
</view> | |||||
</navigator> | |||||
<template v-if="isPuqiang"> | |||||
<navigator class="line" url="/pages/mine/subscribe"> | |||||
<view class="title"> | |||||
<image src="/static/images/studyhot.png" style="width: 36rpx;height: 36rpx;" mode=""></image> | |||||
订阅消息 | |||||
</view> | |||||
<view class="right"> | |||||
<image src="/static/images/arrow.png" style="width: 18rpx;height: 32rpx;" mode=""></image> | |||||
</view> | |||||
</navigator> | |||||
</template> | |||||
<navigator class="line" url="/pages/mine/Myprofile"> | <navigator class="line" url="/pages/mine/Myprofile"> | ||||
<view class="title"> | <view class="title"> | ||||
<image src="/static/images/setting.png" style="width: 36rpx;height: 36rpx;" mode=""></image> | <image src="/static/images/setting.png" style="width: 36rpx;height: 36rpx;" mode=""></image> | ||||
@@ -89,32 +91,37 @@ | |||||
var util = require("../../utils/util.js"); | var util = require("../../utils/util.js"); | ||||
var config = require("../../config"); | var config = require("../../config"); | ||||
import tabbarList from '@/utils/tabbar.js' | import tabbarList from '@/utils/tabbar.js' | ||||
export default { | export default { | ||||
data() { | data() { | ||||
return { | return { | ||||
tabbarList:tabbarList, | |||||
tabbarList: tabbarList, | |||||
current: 0, | current: 0, | ||||
tabList: [ | |||||
{ | |||||
tabList: [{ | |||||
name: '系统消息' | name: '系统消息' | ||||
}, | }, | ||||
{ | { | ||||
name: '升级公告' | name: '升级公告' | ||||
}, | |||||
}, | |||||
], | ], | ||||
name: "", | name: "", | ||||
photo: "", | photo: "", | ||||
mobile: "", | mobile: "", | ||||
count:0, | |||||
count: 0, | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | |||||
isPuqiang() { | |||||
return config.service.host.indexOf('xitong.pachira.cn') == -1 | |||||
} | |||||
}, | |||||
onShow: function() { | onShow: function() { | ||||
var userInfos = uni.getStorageSync('weapp_session_userInfo_data'); | var userInfos = uni.getStorageSync('weapp_session_userInfo_data'); | ||||
this.name = userInfos.name, | this.name = userInfos.name, | ||||
this.photo = userInfos.picUrl, | |||||
this.mobile = userInfos.loginName | |||||
this.photo = userInfos.picUrl, | |||||
this.mobile = userInfos.loginName | |||||
this.updateInit() | this.updateInit() | ||||
console.log(config.service.host.indexOf('xitong.pachira.cn') != -1) | |||||
}, | }, | ||||
methods: { | methods: { | ||||
updateInit() { | updateInit() { | ||||
@@ -135,10 +142,10 @@ | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
scan(){ | |||||
scan() { | |||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url:"../mine/registerCode" | |||||
url: "../mine/registerCode" | |||||
}) | }) | ||||
}, | }, | ||||
//拨打电话 | //拨打电话 | ||||
@@ -194,23 +201,23 @@ | |||||
// }) | // }) | ||||
// } | // } | ||||
// }) | // }) | ||||
// } else { | // } else { | ||||
// console.log('登录失败!' + res.errMsg) | // console.log('登录失败!' + res.errMsg) | ||||
// } | // } | ||||
// } | // } | ||||
// }) | // }) | ||||
// // /pages/mine/subscribe | // // /pages/mine/subscribe | ||||
// }, | // }, | ||||
} | } | ||||
}; | }; | ||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.count{ | |||||
.count { | |||||
background: red; | background: red; | ||||
width: 50rpx; | width: 50rpx; | ||||
height: 50rpx; | height: 50rpx; | ||||
@@ -222,6 +229,7 @@ | |||||
font-size: 24rpx; | font-size: 24rpx; | ||||
margin-right: 20rpx; | margin-right: 20rpx; | ||||
} | } | ||||
.main { | .main { | ||||
padding: 0 30rpx; | padding: 0 30rpx; | ||||
background: #F8F8F8; | background: #F8F8F8; | ||||
@@ -302,4 +310,4 @@ | |||||
} | } | ||||
} | } | ||||
} | } | ||||
</style> | |||||
</style> |
@@ -8,15 +8,15 @@ | |||||
<view class="cwjs-item center"> | <view class="cwjs-item center"> | ||||
<image src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/user.png" class="logo_input"> | <image src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/user.png" class="logo_input"> | ||||
</image> | </image> | ||||
<input class="cwjs-item cwjs-input" v-model="username" placeholder="请输入账号名" type="number" maxlength="11" placeholder-style="color:#AAAAAA"></input> | |||||
<input class="cwjs-item cwjs-input" v-model="username" placeholder="请输入账号名" type="number" maxlength="11" placeholder-style="color:#AAAAAA"/> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="cwjs-cells item-flex" style="margin-top:13rpx;"> | <view class="cwjs-cells item-flex" style="margin-top:13rpx;"> | ||||
<view class="cwjs-item center"> | <view class="cwjs-item center"> | ||||
<image src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/lock.png" class="logo_input"> | <image src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/lock.png" class="logo_input"> | ||||
</image> | </image> | ||||
<input class="cwjs-item cwjs-input" placeholder="请输入密码" placeholder-style="color:#AAAAAA" type="password" v-model="password" maxlength="16" v-if="passwordType"></input> | |||||
<input class="cwjs-item cwjs-input" placeholder="请输入密码" placeholder-style="color:#AAAAAA" maxlength="16" v-model="password" v-else></input> | |||||
<input class="cwjs-item cwjs-input" placeholder="请输入密码" placeholder-style="color:#AAAAAA" type="password" v-model="password" maxlength="16" v-if="passwordType"/> | |||||
<input class="cwjs-item cwjs-input" placeholder="请输入密码" placeholder-style="color:#AAAAAA" maxlength="16" v-model="password" v-else/> | |||||
</view> | </view> | ||||
<view class="imagesBox" @tap="changeBindPassword"> | <view class="imagesBox" @tap="changeBindPassword"> | ||||
<image v-if="passwordType==false" src="../../static/images/zhengkai.png" class="images" mode="scaleToFill"></image> | <image v-if="passwordType==false" src="../../static/images/zhengkai.png" class="images" mode="scaleToFill"></image> | ||||
@@ -41,10 +41,8 @@ | |||||
export default { | export default { | ||||
data() { | data() { | ||||
return { | return { | ||||
username: '', | |||||
//获取到的用户名的值 | |||||
password: '', | |||||
//获取到的密码栏中的值 | |||||
username: '',//18831048327 ,18888888800 | |||||
password: '',//123456 | |||||
passwordType: true, | passwordType: true, | ||||
agreeChecked: true | agreeChecked: true | ||||
}; | }; | ||||
@@ -94,7 +92,8 @@ | |||||
method: "POST", | method: "POST", | ||||
data: loginParams, | data: loginParams, | ||||
success: function(result) { | success: function(result) { | ||||
var data = result.data; //console.log("登陆信息", data); | |||||
var data = result.data; | |||||
//console.log("登陆信息", data); | |||||
if (data && data.code == 10000) { | if (data && data.code == 10000) { | ||||
var res = data.data; | var res = data.data; | ||||
if (res) { | if (res) { | ||||
@@ -149,8 +148,6 @@ | |||||
uni.setStorageSync("weapp_session_Menu_data", data) | uni.setStorageSync("weapp_session_Menu_data", data) | ||||
}) | }) | ||||
} | } | ||||
} | } | ||||
}; | }; | ||||
</script> | </script> | ||||
@@ -79,6 +79,7 @@ | |||||
let param = { | let param = { | ||||
keywordIds:'', | keywordIds:'', | ||||
id: this.customerId, | id: this.customerId, | ||||
projectId: uni.getStorageSync('buildingID').id, | |||||
} | } | ||||
let str = [] | let str = [] | ||||
this.allList.map(item => { | this.allList.map(item => { | ||||
@@ -51,9 +51,7 @@ | |||||
v-for="(item,index) in dialog.message" :key="index" :data-speaker="item.speaker"> | v-for="(item,index) in dialog.message" :key="index" :data-speaker="item.speaker"> | ||||
<view class="avatar"> | <view class="avatar"> | ||||
<view :style="[SPEAKERSTYLE(item.speaker)]"> | <view :style="[SPEAKERSTYLE(item.speaker)]"> | ||||
<!-- <image v-if="item.isShow == 0" :src="Aimg.replace(/[\r\n]/g,'')" mode="widthFix"></image> --> | |||||
<text v-if="item.speaker == 0">顾</text> | |||||
<text v-else>{{ item.speaker | toCapital }}</text> | |||||
<text>{{ item.speaker | toCapital }}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="contentInfo"> | <view class="contentInfo"> | ||||
@@ -115,6 +113,10 @@ | |||||
<view class="backTop" @click="gotoTop"> | <view class="backTop" @click="gotoTop"> | ||||
<image src="/static/images/backTop.png" mode=""></image> | <image src="/static/images/backTop.png" mode=""></image> | ||||
</view> | </view> | ||||
<view v-if="eqLog!=-1" class="eqLog" @click="eqLogClick()"> | |||||
<view style="width: 78rpx;text-align: center;">设备日志</view> | |||||
</view> | |||||
<!-- 加入常错词 --> | <!-- 加入常错词 --> | ||||
<view class="zhezhoa" v-if="isshow2" @tap="Cancelout"></view> | <view class="zhezhoa" v-if="isshow2" @tap="Cancelout"></view> | ||||
@@ -278,10 +280,14 @@ | |||||
ACTION: Symbol('zaudio'), // 唯一值区分每个页面的方法 | ACTION: Symbol('zaudio'), // 唯一值区分每个页面的方法 | ||||
isPageHide: false, // 是否息屏 | isPageHide: false, // 是否息屏 | ||||
duration: '', // 总时长 | duration: '', // 总时长 | ||||
eqLog:0, | |||||
}; | }; | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
let menu = uni.getStorageSync('weapp_session_Menu_data'); | |||||
this.eqLog = menu.findIndex(item=>item.name=='设备日志'); | |||||
this.status = options.status; | this.status = options.status; | ||||
this.customerId = options.customerId; | this.customerId = options.customerId; | ||||
this.itemobj = uni.getStorageSync('searchobj'); | this.itemobj = uni.getStorageSync('searchobj'); | ||||
@@ -365,6 +371,11 @@ | |||||
} | } | ||||
}, | }, | ||||
methods: { | methods: { | ||||
eqLogClick(){ | |||||
uni.navigateTo({ | |||||
url:`./equipmentLog?id=${this.customerId}` | |||||
}) | |||||
}, | |||||
effectiveAdd() { | effectiveAdd() { | ||||
if (this.effectiveindex == 4) { | if (this.effectiveindex == 4) { | ||||
if (this.effectiveitext.length == 0) { | if (this.effectiveitext.length == 0) { | ||||
@@ -1690,6 +1701,20 @@ | |||||
height: 34upx; | height: 34upx; | ||||
} | } | ||||
} | } | ||||
.eqLog { | |||||
width: 115upx; | |||||
height: 115upx; | |||||
background: rgba(211, 235, 253, 1); | |||||
box-shadow: 0 0 10rpx 7rpx #f1f1f1;; | |||||
border-radius: 50%; | |||||
position: fixed; | |||||
bottom: 300upx; | |||||
right: 8upx; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
color: #008EF2; | |||||
} | |||||
// 评分 | // 评分 | ||||
.rate-box { | .rate-box { | ||||
@@ -39,13 +39,19 @@ | |||||
</template> | </template> | ||||
<view class="avatar"> | <view class="avatar"> | ||||
<view :style="[SPEAKERSTYLE(item.speaker)]"> | <view :style="[SPEAKERSTYLE(item.speaker)]"> | ||||
<text v-if="item.isShow == 0">顾</text> | |||||
<text v-else>{{ item.speaker | toCapital }}</text> | |||||
<text>{{ item.speaker | toCapital }}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="contentInfo"> | <view class="contentInfo"> | ||||
<view class="info"> | <view class="info"> | ||||
<text class="AudioUserName">{{ item.speaker | toCapital }}</text> | |||||
<text class="AudioUserName"> | |||||
<template v-if="item.username"> | |||||
{{ item.username }} | |||||
</template> | |||||
<template v-else> | |||||
{{ item.speaker | toCapital }} | |||||
</template> | |||||
</text> | |||||
<text>{{conversionTiame(item.bg/1000)}}</text> | <text>{{conversionTiame(item.bg/1000)}}</text> | ||||
</view> | </view> | ||||
<view class="contentMain"> | <view class="contentMain"> | ||||
@@ -94,16 +100,18 @@ | |||||
</view> | </view> | ||||
<view class="fill"></view> | <view class="fill"></view> | ||||
<!-- audioinfo2 --> | <!-- audioinfo2 --> | ||||
<view class="tmmchen" v-if="Menulistisshow==true"> | |||||
<view class="tmmchen"> | |||||
<image @click="Receivedetailsabouttab('Receivedetailsabout')" src="../../static/images/allimg.png" | <image @click="Receivedetailsabouttab('Receivedetailsabout')" src="../../static/images/allimg.png" | ||||
mode=""></image> | mode=""></image> | ||||
<view @click="Receivedetailsabouttab('Receivedetailsabout')">更多</view> | <view @click="Receivedetailsabouttab('Receivedetailsabout')">更多</view> | ||||
<view class="allimg" v-if="Thetapeidisshow"> | <view class="allimg" v-if="Thetapeidisshow"> | ||||
<view v-if="eqLog!=-1" @click="eqLogClick()" style="line-height: 70rpx;margin-top: 10rpx;">设备日志 | |||||
</view> | |||||
<view @click="Receivetap()" style="line-height: 70rpx;margin-top: 10rpx;">接待信息</view> | <view @click="Receivetap()" style="line-height: 70rpx;margin-top: 10rpx;">接待信息</view> | ||||
<view @click="alllogo()" style="line-height:70rpx;">{{userlistobj.validInvalidName}}</view> | |||||
<view v-if="Menulistisshow==true" @click="alllogo()" style="line-height:70rpx;"> | |||||
{{userlistobj.validInvalidName}}</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="tmmchen" @click="Receivetap()" v-if="Menulistisshow==false"> | <view class="tmmchen" @click="Receivetap()" v-if="Menulistisshow==false"> | ||||
<image @click="Receivedetailsabouttab('Receivedetailsabout')" | <image @click="Receivedetailsabouttab('Receivedetailsabout')" | ||||
src="../../static/images/audioinfo2.png" mode=""></image> | src="../../static/images/audioinfo2.png" mode=""></image> | ||||
@@ -111,7 +119,7 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view v-else class="bottomboxs" @click="sureRefinement">确定</view> | <view v-else class="bottomboxs" @click="sureRefinement">确定</view> | ||||
<!-- 标记 --> | <!-- 标记 --> | ||||
<view class="zhezhoa" v-if="biojiisshow" @tap="unmarktap()"></view> | <view class="zhezhoa" v-if="biojiisshow" @tap="unmarktap()"></view> | ||||
@@ -244,10 +252,12 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="pingfenbox"> | <view class="pingfenbox"> | ||||
<view :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">销讲总执行率{{totalRate}}% | |||||
</view> | |||||
<view :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)"> | |||||
销讲总执行率{{totalRate||0}}%</view> | |||||
<view v-if="methodsisshow==true" :class="{ activecllasscet: zhixingcenterindex == 1 }" | <view v-if="methodsisshow==true" :class="{ activecllasscet: zhixingcenterindex == 1 }" | ||||
@click="recordclick(1)">禁忌执行</view> | @click="recordclick(1)">禁忌执行</view> | ||||
<view :class="{ activecllasscet: zhixingcenterindex == 2 }" @click="recordclick(2)"> | |||||
需求挖掘率{{KeyWordsfraction||0}}%</view> | |||||
</view> | </view> | ||||
<view v-if="zhixingcenterindex == 0" class="cenisbox"> | <view v-if="zhixingcenterindex == 0" class="cenisbox"> | ||||
<view | <view | ||||
@@ -257,7 +267,7 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="Level-box" v-for="(item,index) in ratelist" :key="index"> | <view class="Level-box" v-for="(item,index) in ratelist" :key="index"> | ||||
<view class="Level1che" @click="changeshow(item,1)"> | |||||
<view class="Level1che" @click="hangeshow2(item,1)"> | |||||
<view class="title1">{{item.name.substring(0,8)}}</view> | <view class="title1">{{item.name.substring(0,8)}}</view> | ||||
<view class="leve1-jindu"> | <view class="leve1-jindu"> | ||||
<view class="jindutiao"> | <view class="jindutiao"> | ||||
@@ -271,7 +281,7 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i"> | <view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i"> | ||||
<view class="Level2che" @click="changeshow2(subitem,1)"> | |||||
<view class="Level2che" @click="hangeshow2(subitem,1)"> | |||||
<view class="title1">{{subitem.name.substring(0,8)}}</view> | <view class="title1">{{subitem.name.substring(0,8)}}</view> | ||||
<view class="leve1-jindu"> | <view class="leve1-jindu"> | ||||
<view class="zhixing" v-if="!subitem.selected">已执行</view> | <view class="zhixing" v-if="!subitem.selected">已执行</view> | ||||
@@ -290,6 +300,7 @@ | |||||
<view class="jiantobox"> | <view class="jiantobox"> | ||||
<image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png" | <image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png" | ||||
mode="" /> | mode="" /> | ||||
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" /> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view> | <view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view> | ||||
@@ -304,6 +315,73 @@ | |||||
<view v-if="prohibitedlist.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">暂无数据 | <view v-if="prohibitedlist.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">暂无数据 | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view v-if="zhixingcenterindex == 2" class="cenisbox"> | |||||
<view | |||||
style="width: 100%;height: 80rpx;border-bottom: 1rpx solid #E0E0E0;display: flex;align-items: center;"> | |||||
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 20rpx;">指标</view> | |||||
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率 | |||||
</view> | |||||
</view> | |||||
<view class="Level-box" v-for="(item,index) in KeyWordsfractionList" :key="index"> | |||||
<view class="Level1che" @click="hangeshow2(item,1)"> | |||||
<view class="title1">{{item.name}}</view> | |||||
<view class="leve1-jindu"> | |||||
<view class="jindutiao"> | |||||
<view class="huanxing" v-if="item.selected==0" :style="{width: item.fraction+'%'}"> | |||||
</view> | |||||
<view class="huanxing" v-else style="width: 0"></view> | |||||
<view class="text">{{item.selected==0?item.fraction:0}}%</view> | |||||
</view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" /> | |||||
<image v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
<!-- 话术在一级下 --> | |||||
<view v-if="item.showLevel==1"> | |||||
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;"> | |||||
<view class="hsnrtest">话术内容</view> | |||||
<view class="Level3che" v-for="(che,inc) in item.questionList" :key='inc'> | |||||
<view class="title1">{{inc+1}}.{{che.question}}</view> | |||||
<view class="jiantobox"> | |||||
<image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png" | |||||
mode="" /> | |||||
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<!-- 话术在二级下 --> | |||||
<view v-if="item.showLevel==2"> | |||||
<view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="Level2che" @click="hangeshow2(subitem,1)"> | |||||
<view class="title1 u-line-1">{{subitem.name}}</view> | |||||
<view class="leve1-jindu"> | |||||
<view class="zhixing" v-if="!subitem.selected">已执行</view> | |||||
<view class="zhixing2" v-else>未执行</view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image v-if="!subitem.show" class="arrow rotatearrow" src="/static/images/down.png" | |||||
mode="" /> | |||||
<image v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
<view v-if="subitem.show" style="padding: 30rpx 0;"> | |||||
<view class="hsnrtest">话术内容</view> | |||||
<view class="Level3che" v-for="(che,inc) in subitem.questionList" :key='inc'> | |||||
<view class="title1">{{inc+1}}.{{che.question}}</view> | |||||
<view class="jiantobox"> | |||||
<image v-if="che.selected==0" class="arrow" | |||||
src="/static/images/rate-checked.png" mode="" /> | |||||
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | </view> | ||||
<!-- 客户意向 --> | <!-- 客户意向 --> | ||||
@@ -426,6 +504,10 @@ | |||||
</view> | </view> | ||||
<u-toast ref="uToast" /> | <u-toast ref="uToast" /> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -435,13 +517,17 @@ | |||||
var config = require("../../config"); | var config = require("../../config"); | ||||
import zaudio from '@/components/uniapp-zaudio/zaudio'; | import zaudio from '@/components/uniapp-zaudio/zaudio'; | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | components: { | ||||
zaudio | |||||
zaudio, | |||||
loading | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
KeyWordsfraction: 0, | |||||
KeyWordsfractionList: [], | |||||
noClick: true, | noClick: true, | ||||
kehuyixiangcenterindex: 0, | kehuyixiangcenterindex: 0, | ||||
Acquirecustomerintentlist2: [], | Acquirecustomerintentlist2: [], | ||||
@@ -543,8 +629,8 @@ | |||||
isPageHide: false, // 是否息屏 | isPageHide: false, // 是否息屏 | ||||
duration: '', // 总时长 | duration: '', // 总时长 | ||||
isBand: false, // 阻止二次提交 | isBand: false, // 阻止二次提交 | ||||
refined: false, | refined: false, | ||||
eqLog: 0, | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | computed: { | ||||
@@ -555,8 +641,13 @@ | |||||
}, | }, | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.LOADING = true | |||||
let menu = uni.getStorageSync('weapp_session_Menu_data'); | |||||
this.eqLog = menu.findIndex(item => item.name == '设备日志'); | |||||
this.status = options.status; | this.status = options.status; | ||||
this.customerId = options.customerId; | this.customerId = options.customerId; | ||||
this.KeyWordsfraction = options.wordFraction || 0; | |||||
this.itemobj = uni.getStorageSync('searchobj'); | this.itemobj = uni.getStorageSync('searchobj'); | ||||
console.log(this.itemobj) | console.log(this.itemobj) | ||||
this.stateisshow = options.stateisshow; | this.stateisshow = options.stateisshow; | ||||
@@ -637,6 +728,14 @@ | |||||
item.checked = !item.checked | item.checked = !item.checked | ||||
this.$forceUpdate() | this.$forceUpdate() | ||||
}, | }, | ||||
hangeshow2(item, type) { | |||||
item.show = !item.show; | |||||
}, | |||||
eqLogClick() { | |||||
uni.navigateTo({ | |||||
url: `./equipmentLog?id=${this.customerId}` | |||||
}) | |||||
}, | |||||
rolexuanze(index) { | rolexuanze(index) { | ||||
this.roleindexrow = index; | this.roleindexrow = index; | ||||
}, | }, | ||||
@@ -692,9 +791,10 @@ | |||||
this.zhixingcenterindex = i; | this.zhixingcenterindex = i; | ||||
if (i == 0) { | if (i == 0) { | ||||
this.getRatelist() | this.getRatelist() | ||||
} else { | |||||
console.log('999') | |||||
} else if (i == 1) { | |||||
this.huoqujinji() | this.huoqujinji() | ||||
} else { | |||||
this.getfindKeyWordsBycusId() | |||||
} | } | ||||
}, | }, | ||||
//获取禁忌 | //获取禁忌 | ||||
@@ -716,7 +816,7 @@ | |||||
//评分点击 | //评分点击 | ||||
clickaudeopal(item) { | clickaudeopal(item) { | ||||
if (item.selected == 0 && item.viewFlag != 1) { | if (item.selected == 0 && item.viewFlag != 1) { | ||||
console.log(item) | |||||
// console.log(item) | |||||
this.Pinspeak = false | this.Pinspeak = false | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/mine/ScoringPlaylist?customerId=' + this.customerId + "&id=" + item | url: '/pages/mine/ScoringPlaylist?customerId=' + this.customerId + "&id=" + item | ||||
@@ -937,10 +1037,11 @@ | |||||
//接待详情点击 | //接待详情点击 | ||||
Receivedetailsabouttab(stringa) { | Receivedetailsabouttab(stringa) { | ||||
if (stringa == 'Receivedetailsabout') { | if (stringa == 'Receivedetailsabout') { | ||||
this.gituserlist() | |||||
this.Thetapeidisshow = !this.Thetapeidisshow; | this.Thetapeidisshow = !this.Thetapeidisshow; | ||||
this.gituserlist() | |||||
} else if (stringa == 'Pinspeak') { | } else if (stringa == 'Pinspeak') { | ||||
this.getRatelist() | this.getRatelist() | ||||
this.getfindKeyWordsBycusId() | |||||
this.Pinspeak = true; | this.Pinspeak = true; | ||||
} else { | } else { | ||||
if (this.kehuyixiangcenterindex == 0) { | if (this.kehuyixiangcenterindex == 0) { | ||||
@@ -1042,7 +1143,6 @@ | |||||
} else { | } else { | ||||
tempRoleIndex = this.roleindex | tempRoleIndex = this.roleindex | ||||
} | } | ||||
console.log() | |||||
uni.request({ | uni.request({ | ||||
url: config.service.getCorpusAnal + '?corpusId=' + this.luyinList[this.csdFileindex].id + | url: config.service.getCorpusAnal + '?corpusId=' + this.luyinList[this.csdFileindex].id + | ||||
"&bg=" + bgcd + "&speaker=" + tempRoleIndex + "&voFlag=" + voFlagValue + | "&bg=" + bgcd + "&speaker=" + tempRoleIndex + "&voFlag=" + voFlagValue + | ||||
@@ -1421,7 +1521,7 @@ | |||||
}) | }) | ||||
}) | }) | ||||
}, | }, | ||||
// 确认批量加精 | // 确认批量加精 | ||||
sureRefinement() { | sureRefinement() { | ||||
this.isshow3 = true; | this.isshow3 = true; | ||||
@@ -1437,7 +1537,7 @@ | |||||
}) | }) | ||||
}) | }) | ||||
}, | }, | ||||
// 取消加精 | // 取消加精 | ||||
Cancelout2() { | Cancelout2() { | ||||
this.isshow3 = false; | this.isshow3 = false; | ||||
@@ -1512,7 +1612,6 @@ | |||||
this.messagelisy = this.dialogList[i].message | this.messagelisy = this.dialogList[i].message | ||||
this.argtextindex1 = i; | this.argtextindex1 = i; | ||||
this.argtextindex2 = index; | this.argtextindex2 = index; | ||||
}, | }, | ||||
//回到顶部 | //回到顶部 | ||||
gotoTop() { | gotoTop() { | ||||
@@ -1521,21 +1620,36 @@ | |||||
this.scrollId = "top"; | this.scrollId = "top"; | ||||
}) | }) | ||||
}, | }, | ||||
//切换tab | |||||
changeTab(type) { | |||||
if (type == 0) { | |||||
this.tab = 0 | |||||
} else { | |||||
this.tab = 1; | |||||
this.getRatelist(); | |||||
} | |||||
}, | |||||
//评分上下显隐 | |||||
changeshow(item, type) { | |||||
item.show = !item.show; | |||||
}, | |||||
changeshow2(item, type) { | |||||
item.show = !item.show; | |||||
// 客户详情需求挖掘话术 | |||||
getfindKeyWordsBycusId() { | |||||
this.$u.get("/cusLvStatistics/findKeyWordsBycusId?cusId=" + this.customerId).then(res => { | |||||
// console.log(res) | |||||
if (res.length) { | |||||
// this.KeyWordsfraction = 0 | |||||
res.forEach(item => { | |||||
// if(item.selected==0){ | |||||
// this.KeyWordsfraction += +item.fraction // 总执行率 | |||||
// } | |||||
item.show = false | |||||
item.children.forEach(obj => { | |||||
obj.show = false | |||||
if (obj.questionList.length) { | |||||
obj.questionList.forEach(subobj => { | |||||
subobj.show = false | |||||
}) | |||||
} | |||||
}) | |||||
if (item.questionList.length) { | |||||
item.questionList.forEach(obj => { | |||||
obj.show = false | |||||
}) | |||||
} | |||||
}) | |||||
this.KeyWordsfractionList = res | |||||
} else { | |||||
this.KeyWordsfractionList = [] | |||||
} | |||||
}) | |||||
}, | }, | ||||
getRatelist() { | getRatelist() { | ||||
this.$u.get("/customer/findzkMByCusId", { | this.$u.get("/customer/findzkMByCusId", { | ||||
@@ -1624,6 +1738,7 @@ | |||||
'Access-Token': uni.getStorageSync('weapp_session_login_data').token | 'Access-Token': uni.getStorageSync('weapp_session_login_data').token | ||||
}, | }, | ||||
success: (data) => { | success: (data) => { | ||||
this.LOADING = false | |||||
this.isShowMark = data.data.data.viewNameFlag | this.isShowMark = data.data.data.viewNameFlag | ||||
this.tablist = []; | this.tablist = []; | ||||
this.roleindexbiaoji = 0; | this.roleindexbiaoji = 0; | ||||
@@ -1686,6 +1801,10 @@ | |||||
this.dialogList.push(jsonInfo[this.textindex]); | this.dialogList.push(jsonInfo[this.textindex]); | ||||
var itc = parseInt(info.bg / 1000) | var itc = parseInt(info.bg / 1000) | ||||
this.adasdasdasd(itc) | this.adasdasdasd(itc) | ||||
}, | |||||
fail: () => { | |||||
this.LOADING = false | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
@@ -1694,7 +1813,6 @@ | |||||
return util.formatSecond(time) | return util.formatSecond(time) | ||||
}, | }, | ||||
//音频前进回退 | //音频前进回退 | ||||
sliderChangeComplate(currentTime) { | sliderChangeComplate(currentTime) { | ||||
this.dialogList = [] | this.dialogList = [] | ||||
@@ -1897,7 +2015,7 @@ | |||||
align-items: center; | align-items: center; | ||||
} | } | ||||
} | } | ||||
.bottomboxs { | .bottomboxs { | ||||
width: 100%; | width: 100%; | ||||
height: 90rpx; | height: 90rpx; | ||||
@@ -1989,7 +2107,8 @@ | |||||
.allimg { | .allimg { | ||||
position: absolute; | position: absolute; | ||||
width: 168rpx; | width: 168rpx; | ||||
top: -152rpx; | |||||
min-height: 210rpx; | |||||
top: -240rpx; | |||||
border: 1px solid #E0E0E0; | border: 1px solid #E0E0E0; | ||||
background: #FFFFFF; | background: #FFFFFF; | ||||
font-size: 26rpx; | font-size: 26rpx; | ||||
@@ -0,0 +1,357 @@ | |||||
<template> | |||||
<view class="eqLog"> | |||||
<view class="bg"></view> | |||||
<view class="tophead" :style="{height: `${CustomBar}px`}"> | |||||
<view class="topheads" :style="{height: `${CustomBar}px`,paddingTop: `${StatusBar}px`}"> | |||||
<view class="eqno"> | |||||
<image @click="back" class="backs" src="@/static/images/back.png" mode=""></image> | |||||
<view class="middle"> | |||||
设备日志 | |||||
</view> | |||||
</view> | |||||
<!-- 背景色 --> | |||||
<view class="eqNo-bg"></view> | |||||
</view> | |||||
</view> | |||||
<view class="eqNo"> | |||||
<view class="noInfo"> | |||||
<view class="left"> | |||||
<text style="font-weight: 500;">设备编号:{{ info.imei || '' }}</text> | |||||
<text>录音说明:{{ info.recordExplain || '' }}</text> | |||||
</view> | |||||
<view class="right"> | |||||
<text>{{state(info.recording)}}</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="eqMain"> | |||||
<view class="recordingStart"> | |||||
<view class="items"> | |||||
<text>录音开启用时</text> | |||||
<text class="font" | |||||
:style="{color: info.recording==1?'red':'#333'}">{{info.startActionTime || ''}}min</text> | |||||
</view> | |||||
<view class="line"></view> | |||||
<view class="items"> | |||||
<text>待上传文件</text> | |||||
<text class="font" :style="{color: info.fileCount==0?'#333':'red'}">{{info.fileCount || 0}}个</text> | |||||
</view> | |||||
</view> | |||||
<view class="recording"> | |||||
<view class="left-box"> | |||||
<view class="cycle"></view> | |||||
<view class="point"></view> | |||||
<view class="cycle"></view> | |||||
</view> | |||||
<view class="recordingBox"> | |||||
<text class="recordingBoxItem-title" >录音开启</text> | |||||
<view class="recordingBoxItem"> | |||||
<text class="left">指派人:</text> | |||||
<text class="right">{{info.owenrName}}</text> | |||||
</view> | |||||
<view class="recordingBoxItem"> | |||||
<text class="left">指派时间:</text> | |||||
<text class="right">{{info.assignTime}}</text> | |||||
</view> | |||||
<view class="recordingBoxItem"> | |||||
<text class="left">录音开始时间:</text> | |||||
<view class="right" style="font-weight: bold;font-size: 28rpx;"> | |||||
<text :style="{color: info.recording==1?'red':'#333'}"> | |||||
{{info.recordStartTime}} | |||||
</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="recordingBox" style="margin-top: 40rpx;"> | |||||
<text class="recordingBoxItem-title">录音关闭</text> | |||||
<view class="recordingBoxItem"> | |||||
<text class="left">结束人:</text> | |||||
<text class="right">{{info.userName}}</text> | |||||
</view> | |||||
<view class="recordingBoxItem"> | |||||
<text class="left">结束时间:</text> | |||||
<text class="right">{{info.assignEndTime}}</text> | |||||
</view> | |||||
<view class="recordingBoxItem"> | |||||
<text class="left">录音结束时间:</text> | |||||
<view class="right" style="font-weight: bold;font-size: 28rpx;"> | |||||
<text :style="{color: info.recording==1?'red':'#333'}"> | |||||
{{info.recordEndTime}} | |||||
</text> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="offlineRec"> | |||||
<text style="font-size:32rpx;font-weight: 700;">离线记录</text> | |||||
<view class="recMain"> | |||||
<block v-for="(item,index) in info.offLineList" :key="index"> | |||||
<text>{{index+1}}、 {{item}}</text> | |||||
</block> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</view> | |||||
</template> | |||||
<script> | |||||
export default { | |||||
data() { | |||||
return { | |||||
info: {}, | |||||
} | |||||
}, | |||||
computed: { | |||||
state() { | |||||
return (e => { | |||||
switch (e) { | |||||
case 0: | |||||
return "接待中"; | |||||
case 1: | |||||
return "部分录音"; | |||||
default: | |||||
return "完整录音"; | |||||
} | |||||
}) | |||||
}, | |||||
}, | |||||
onLoad(options) { | |||||
this.$u.get("/equipment/equipmentLog", { | |||||
id: options.id | |||||
}).then(res => { | |||||
// console.log(res) | |||||
this.info = res | |||||
}) | |||||
}, | |||||
methods: { | |||||
back() { | |||||
uni.navigateBack() | |||||
} | |||||
} | |||||
} | |||||
</script> | |||||
<style lang="scss"> | |||||
.eqLog { | |||||
position: relative; | |||||
width: 100vw; | |||||
min-height: 100vh; | |||||
background: #F8F8F8; | |||||
.bg { | |||||
position: absolute; | |||||
top: 0; | |||||
left: 0; | |||||
right: 0; | |||||
z-index: 0; | |||||
width: 100%; | |||||
height: 420rpx; | |||||
background: linear-gradient(180deg, #2671E2 0%, #3B9CF4 54%, #93C8F7 100%); | |||||
} | |||||
.tophead { | |||||
position: sticky; | |||||
top: 0; | |||||
z-index: 999; | |||||
width: 100%; | |||||
.topheads { | |||||
position: relative; | |||||
z-index: 1; | |||||
overflow: hidden; | |||||
.eqno { | |||||
position: relative; | |||||
z-index: 1; | |||||
width: 100%; | |||||
height: 100%; | |||||
display: flex; | |||||
align-items: center; | |||||
.backs { | |||||
margin-left: 24rpx; | |||||
width: 48rpx; | |||||
height: 48rpx; | |||||
} | |||||
.middle { | |||||
position: absolute; | |||||
left: 50%; | |||||
top: 50%; | |||||
transform: translate(-50%, -50%); | |||||
font-size: 32rpx; | |||||
color: #fff; | |||||
} | |||||
} | |||||
.eqNo-bg { | |||||
position: absolute; | |||||
top: 0; | |||||
left: 0; | |||||
right: 0; | |||||
z-index: 0; | |||||
width: 100%; | |||||
height: 420rpx; | |||||
background: linear-gradient(180deg, #2671E2 0%, #3B9CF4 54%, #93C8F7 100%); | |||||
} | |||||
} | |||||
} | |||||
.eqNo { | |||||
position: relative; | |||||
z-index: 1; | |||||
width: 100%; | |||||
.noInfo { | |||||
margin: 24rpx auto 0; | |||||
padding: 24rpx; | |||||
width: 690rpx; | |||||
min-height: 152rpx; | |||||
background: #FFFFFF; | |||||
border-radius: 8rpx; | |||||
display: flex; | |||||
justify-content: space-between; | |||||
.left { | |||||
display: flex; | |||||
flex-direction: column; | |||||
justify-content: space-between; | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
} | |||||
.right { | |||||
flex-shrink: 0; | |||||
font-size: 32rpx; | |||||
font-weight: 400; | |||||
} | |||||
} | |||||
} | |||||
.eqMain { | |||||
position: relative; | |||||
z-index: 1; | |||||
padding: 0 30rpx; | |||||
.recordingStart { | |||||
margin-top: 20rpx; | |||||
width: 100%; | |||||
height: 164rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
border-radius: 8rpx; | |||||
background: #FFFFFF; | |||||
.items { | |||||
flex-grow: 1; | |||||
display: flex; | |||||
flex-direction: column; | |||||
align-items: center; | |||||
justify-content: center; | |||||
color: #1C1010; | |||||
font-size: 30rpx; | |||||
.font { | |||||
margin-top: 20rpx; | |||||
font-weight: 700; | |||||
} | |||||
} | |||||
.line { | |||||
width: 1rpx; | |||||
height: 88rpx; | |||||
background: #E0E0E0; | |||||
} | |||||
} | |||||
.recording { | |||||
position: relative; | |||||
z-index: 1; | |||||
margin-top: 20rpx; | |||||
padding: 30rpx 30rpx 30rpx 68rpx; | |||||
display: flex; | |||||
flex-direction: column; | |||||
background: #FFFFFF; | |||||
border-radius: 8rpx; | |||||
.left-box { | |||||
position: absolute; | |||||
left: 30rpx; | |||||
top: 40rpx; | |||||
width: 24rpx; | |||||
height: 300rpx; | |||||
display: flex; | |||||
flex-direction: column; | |||||
align-items: center; | |||||
.cycle { | |||||
width: 24rpx; | |||||
height: 24rpx; | |||||
flex-shrink: 0; | |||||
border-radius: 50%; | |||||
border: 4rpx solid #2671E2; | |||||
} | |||||
.point { | |||||
flex-grow: 1; | |||||
border-left: 5rpx dotted #2671E2; | |||||
} | |||||
} | |||||
.recordingBox { | |||||
width: 100%; | |||||
display: flex; | |||||
flex-direction: column; | |||||
.recordingBoxItem-title { | |||||
font-size: 32rpx; | |||||
font-weight: 700; | |||||
} | |||||
.recordingBoxItem { | |||||
margin-top: 24rpx; | |||||
display: flex; | |||||
.left { | |||||
flex-shrink: 0; | |||||
width: 210rpx; | |||||
color: #505050; | |||||
font-size: 30rpx; | |||||
} | |||||
.right { | |||||
flex-grow: 1; | |||||
font-size: 30rpx !important; | |||||
overflow: hidden; | |||||
text-overflow: ellipsis; | |||||
white-space: nowrap; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.offlineRec { | |||||
margin-top: 20rpx; | |||||
padding: 28rpx 24rpx; | |||||
border-radius: 8rpx; | |||||
background: #FFFFFF; | |||||
.recMain { | |||||
display: flex; | |||||
flex-direction: column; | |||||
text { | |||||
margin: 24rpx 0; | |||||
font-size: 30rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
</style> |
@@ -54,13 +54,14 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="Pinspeak" v-if="shifoinfo==0">顾问</view> | |||||
<view class="chented" v-if="shifoinfo==0" @click="clickShowhid()"> | |||||
<!-- <template v-if="shifoinfo==0 && userInfo.dataCode != 6"> --> | |||||
<view class="Pinspeak">顾问</view> | |||||
<view class="chented" @click="clickShowhid()"> | |||||
<view class="title" style="border: none;"> | <view class="title" style="border: none;"> | ||||
<view class="titletext">接待顾问</view> | <view class="titletext">接待顾问</view> | ||||
<view class="titletext2" | <view class="titletext2" | ||||
style="font-size: 30rpx;font-weight: 400;color: #B2B2B2;line-height: 90rpx;padding-left: 10rpx;"> | style="font-size: 30rpx;font-weight: 400;color: #B2B2B2;line-height: 90rpx;padding-left: 10rpx;"> | ||||
<!-- {{text || '请选择接待顾问'}} --> | |||||
<text v-if="text" style="color: #333333;">{{text}}</text> | <text v-if="text" style="color: #333333;">{{text}}</text> | ||||
<text v-else>请选择接待顾问</text> | <text v-else>请选择接待顾问</text> | ||||
</view> | </view> | ||||
@@ -69,14 +70,14 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- </template> --> | |||||
<view class="clive" @click.stop="$noMultipleClicks(save)" :style="{background:(isBand==false?'#2671E2':'#949494')}">确定</view> | |||||
<view class="clive" @click.stop="$noMultipleClicks(save)" | |||||
:style="{background:(isBand==false?'#2671E2':'#949494')}">确定</view> | |||||
<!-- <view v-if="Showhiddenunits"> --> | |||||
<!-- <u-select v-model="show" :list="list"></u-select> --> | |||||
<u-select :mask-close-able="false" label-name="sourceName" value-name="id" v-model="Showhiddenunits" | <u-select :mask-close-able="false" label-name="sourceName" value-name="id" v-model="Showhiddenunits" | ||||
mode="single-column" :list="list" @cancel="cancel" @confirm="confirm"></u-select> | mode="single-column" :list="list" @cancel="cancel" @confirm="confirm"></u-select> | ||||
<!-- </view> --> | |||||
<u-select :mask-close-able="false" v-model="Showhid" mode="single-column" :list="freeList" @cancel="cancel1" | <u-select :mask-close-able="false" v-model="Showhid" mode="single-column" :list="freeList" @cancel="cancel1" | ||||
@confirm="confirm1"></u-select> | @confirm="confirm1"></u-select> | ||||
<u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext" | <u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext" | ||||
@@ -111,7 +112,7 @@ | |||||
replaceReception: 0 | replaceReception: 0 | ||||
}, | }, | ||||
showSourceName: '', // 展示文字 | showSourceName: '', // 展示文字 | ||||
shifoinfo: 0, | |||||
shifoinfo: 0, // 高级权限 项目是否能指派顾问 | |||||
freeList: [], | freeList: [], | ||||
Showhid: false, | Showhid: false, | ||||
text: null, | text: null, | ||||
@@ -123,9 +124,18 @@ | |||||
saveisshow: true, | saveisshow: true, | ||||
isBand: false, // 阻止二次提交 | isBand: false, // 阻止二次提交 | ||||
tap: true, | tap: true, | ||||
fdFlag:null | |||||
fdFlag: null, | |||||
isPass: false, // 当前顾问是否正在接待 | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | |||||
// 用户详情 | |||||
userInfo() { | |||||
return uni.getStorageSync("weapp_session_userInfo_data") | |||||
}, | |||||
}, | |||||
onShow() { | onShow() { | ||||
this.parames.projectId = uni.getStorageSync('buildingID').id; | this.parames.projectId = uni.getStorageSync('buildingID').id; | ||||
console.log(this.$u) | console.log(this.$u) | ||||
@@ -134,6 +144,7 @@ | |||||
this.getFromSource(); | this.getFromSource(); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
// 获取客户来源 | // 获取客户来源 | ||||
getFromSource() { | getFromSource() { | ||||
uni.request({ | uni.request({ | ||||
@@ -176,8 +187,18 @@ | |||||
if (this.isBand) return | if (this.isBand) return | ||||
this.save() | this.save() | ||||
}, | }, | ||||
save() { | save() { | ||||
// 校验当前登录人是否是顾问 | |||||
let obj = this.freeList.find(item => { | |||||
return item.agentId == this.userInfo.accountId | |||||
}) || null | |||||
if (!obj && this.userInfo.dataCode == 6) { | |||||
this.isPass = true | |||||
} else { | |||||
this.isPass = false | |||||
} | |||||
if (this.parames.name.length == 0) { | if (this.parames.name.length == 0) { | ||||
uni.showToast({ | uni.showToast({ | ||||
icon: "none", | icon: "none", | ||||
@@ -192,6 +213,15 @@ | |||||
}) | }) | ||||
return; | return; | ||||
} | } | ||||
// 判断条件2是否选中顾问 | |||||
if (this.isPass && !this.parames.agentId) { | |||||
uni.showToast({ | |||||
icon: "none", | |||||
title: "请选择顾问~" | |||||
}) | |||||
return; | |||||
} | |||||
const that = this; | const that = this; | ||||
this.isBand = true | this.isBand = true | ||||
this.$u.post("customer/daitiReception", { | this.$u.post("customer/daitiReception", { | ||||
@@ -220,7 +250,7 @@ | |||||
that.confirmtext = res.replacement.name + "代接待", //确认文字 | that.confirmtext = res.replacement.name + "代接待", //确认文字 | ||||
that.canceltext = res.owner.name + '接待', //取消文字 | that.canceltext = res.owner.name + '接待', //取消文字 | ||||
that.show = true; | that.show = true; | ||||
this.isBand = false | |||||
this.isBand = false | |||||
} else { | } else { | ||||
that.daitiReceptionobj = res; | that.daitiReceptionobj = res; | ||||
console.log(that.daitiReceptionobj) | console.log(that.daitiReceptionobj) | ||||
@@ -229,7 +259,7 @@ | |||||
that.confirmtext = res.replacement.name + "代接待", //确认文字 | that.confirmtext = res.replacement.name + "代接待", //确认文字 | ||||
that.canceltext = res.assign.name + '接待', //取消文字 | that.canceltext = res.assign.name + '接待', //取消文字 | ||||
that.show = true; | that.show = true; | ||||
this.isBand = false | |||||
this.isBand = false | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -283,6 +313,23 @@ | |||||
this.parames.howMany = num; | this.parames.howMany = num; | ||||
}, | }, | ||||
clickShowhid() { | clickShowhid() { | ||||
if (this.shifoinfo != 0) { | |||||
uni.showToast({ | |||||
icon: 'none', | |||||
title: '您没有指派权限~', | |||||
duration: 2000 | |||||
}); | |||||
return | |||||
} | |||||
if (this.userInfo.dataCode == 6 && !this.checkAuthority('顾问指派顾问')) { | |||||
uni.showToast({ | |||||
icon: "none", | |||||
title: "您没有指派权限~", | |||||
duration: 2000 | |||||
}) | |||||
return | |||||
} | |||||
if (this.freeList.length == 0) { | if (this.freeList.length == 0) { | ||||
uni.showToast({ | uni.showToast({ | ||||
icon: 'none', | icon: 'none', | ||||
@@ -342,6 +389,10 @@ | |||||
item.label = item.name + "(无设备)"; | item.label = item.name + "(无设备)"; | ||||
} | } | ||||
item.value = item.agentId | item.value = item.agentId | ||||
if (this.userInfo.accountId == item.agentId) { | |||||
this.text = item.label | |||||
this.parames.agentId = item.agentId; | |||||
} | |||||
}) | }) | ||||
}) | }) | ||||
}, | }, | ||||
@@ -49,11 +49,20 @@ | |||||
<u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext" | <u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext" | ||||
:cancel-text='canceltext' @cancel="confirmA" @confirm="confirmB" :show-cancel-button='true' | :cancel-text='canceltext' @cancel="confirmA" @confirm="confirmB" :show-cancel-button='true' | ||||
:content="content"></u-modal> | :content="content"></u-modal> | ||||
<!-- 加载组件 --> | |||||
<loading v-model="LOADING"></loading> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
import loading from "@/components/loading/index.vue" | |||||
export default { | export default { | ||||
components: { | |||||
loading | |||||
}, | |||||
data() { | data() { | ||||
return { | return { | ||||
customerId: '', | customerId: '', | ||||
@@ -73,55 +82,17 @@ | |||||
list: [], // 部门列表 | list: [], // 部门列表 | ||||
listCurrent: 0, //选中分类下标 | listCurrent: 0, //选中分类下标 | ||||
deptId: '', | deptId: '', | ||||
} | } | ||||
}, | }, | ||||
onLoad(option) { | onLoad(option) { | ||||
this.LOADING = true | |||||
this.customerId = option.id; | this.customerId = option.id; | ||||
this.getAllList() | |||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.buildingID = uni.getStorageSync('buildingID').id; | this.buildingID = uni.getStorageSync('buildingID').id; | ||||
this.getFreeList(); | this.getFreeList(); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
// 获取全部的列表 | |||||
getAllList() { | |||||
let params = { | |||||
houseId: uni.getStorageSync('buildingID').id | |||||
} | |||||
this.$u.post('/cusLvStatistics/findAllDeptIdByHouseId', params) | |||||
.then(res => { | |||||
console.log(res, 'list') | |||||
if (res && res.length > 0) { | |||||
this.list = res | |||||
this.list.unshift({ | |||||
deptName: '全部', | |||||
deptId: '', | |||||
}) | |||||
} | |||||
}) | |||||
}, | |||||
// 重置页面数据 | |||||
initPageList() { | |||||
this.freeList = [] | |||||
}, | |||||
// 选中部门 | |||||
change(index) { | |||||
this.deptId = this.list[index].deptId | |||||
this.listCurrent = index; | |||||
this.initPageList() | |||||
this.getFreeList() | |||||
}, | |||||
// 搜索 | |||||
searchFunc() { | |||||
console.log('我搜索了', 'keywords') | |||||
this.initPageList() | |||||
this.getFreeList() | |||||
}, | |||||
//取消 | //取消 | ||||
confirmA() { | confirmA() { | ||||
if (this.daitiReceptionobj.assign != null) { | if (this.daitiReceptionobj.assign != null) { | ||||
@@ -139,7 +110,7 @@ | |||||
this.replaceReception = 1; | this.replaceReception = 1; | ||||
this.baochunfun() | this.baochunfun() | ||||
}, | }, | ||||
// 保存按钮点击事件 | |||||
save() { | save() { | ||||
console.log(this.chosedAgentId) | console.log(this.chosedAgentId) | ||||
if (!this.chosedAgentId) { | if (!this.chosedAgentId) { | ||||
@@ -183,7 +154,6 @@ | |||||
} | } | ||||
}); | }); | ||||
}, | }, | ||||
// 保存指派顾问 | |||||
baochunfun() { | baochunfun() { | ||||
uni.showLoading({ | uni.showLoading({ | ||||
title: "保存中", | title: "保存中", | ||||
@@ -199,22 +169,22 @@ | |||||
icon: "none", | icon: "none", | ||||
title: "分配成功" | title: "分配成功" | ||||
}) | }) | ||||
uni.hideLoading() | |||||
uni.navigateBack() | |||||
}) | |||||
uni.navigateBack(); | |||||
uni.hideLoading(); | |||||
}); | |||||
}, | }, | ||||
// 获取顾问列表 | |||||
getFreeList() { | getFreeList() { | ||||
this.$u.get("/zkAgentPool/freeList?itemId=" + this.buildingID + "&deptId=" + this.deptId + '&name=' + this | |||||
.keywords) | |||||
.then(res => { | |||||
if (res.length == 0) { | |||||
this.freeList = [] | |||||
} else { | |||||
this.freeList = res; | |||||
this.textcdhSKJ = res[0].name | |||||
} | |||||
}) | |||||
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(evt) { | radioChange(evt) { | ||||
this.chosedAgentId = ''; | this.chosedAgentId = ''; | ||||
@@ -3,8 +3,9 @@ | |||||
<view class="text1">第一步:关注数智工牌公众号</view> | <view class="text1">第一步:关注数智工牌公众号</view> | ||||
<view style="width: 96%;margin: 0 auto;"> | <view style="width: 96%;margin: 0 auto;"> | ||||
<view class="text2" style="margin-top: 30rpx;">1.长按识别二维码或保存至相册进行关注</view> | <view class="text2" style="margin-top: 30rpx;">1.长按识别二维码或保存至相册进行关注</view> | ||||
<view style="text-align: center;" > | |||||
<image @click="baocun()" style="width: 300rpx;height: 300rpx;" src="../../static/images/supimg.png" mode=""></image> | |||||
<view style="text-align: center;"> | |||||
<image @click="baocun()" style="width: 300rpx;height: 300rpx;" src="../../static/images/supimg.png" | |||||
mode=""></image> | |||||
</view> | </view> | ||||
<view style="margin-top: 30rpx;" class="text2">2.微信搜索公众号【数智工牌】进行关注</view> | <view style="margin-top: 30rpx;" class="text2">2.微信搜索公众号【数智工牌】进行关注</view> | ||||
</view> | </view> | ||||
@@ -26,66 +27,68 @@ | |||||
export default { | export default { | ||||
data() { | data() { | ||||
return { | return { | ||||
}; | }; | ||||
}, | }, | ||||
onShow: function() { | onShow: function() { | ||||
var userInfos = uni.getStorageSync('weapp_session_userInfo_data'); | var userInfos = uni.getStorageSync('weapp_session_userInfo_data'); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
baocun () { | |||||
const _this = this; | |||||
wx.getImageInfo({ | |||||
src: '/static/images/supimg.png', | |||||
success: function (res) { | |||||
wx.saveImageToPhotosAlbum({ | |||||
filePath: res.path, | |||||
success (result) { | |||||
_this.setData({ show: false }); | |||||
wx.showToast({ | |||||
title: '保存成功', | |||||
icon: 'success', | |||||
duration: 2000 | |||||
}) | |||||
}, | |||||
fail (err) { | |||||
if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { | |||||
wx.openSetting({ | |||||
success (settingdata) { | |||||
if (settingdata.authSetting['scope.writePhotosAlbum']) { | |||||
_this.savePhoto() | |||||
} else { | |||||
wx.showToast({ | |||||
title: '获取权限失败,无法保存图片', | |||||
icon: 'success', | |||||
duration: 2000 | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
} | |||||
}) | |||||
} | |||||
baocun() { | |||||
const _this = this; | |||||
wx.getImageInfo({ | |||||
src: '/static/images/supimg.png', | |||||
success: function(res) { | |||||
wx.saveImageToPhotosAlbum({ | |||||
filePath: res.path, | |||||
success(result) { | |||||
wx.showToast({ | |||||
title: '保存成功', | |||||
icon: 'success', | |||||
duration: 2000 | |||||
}) | |||||
}, | |||||
fail(err) { | |||||
if (err.errMsg === "saveImageToPhotosAlbum:fail auth deny") { | |||||
wx.openSetting({ | |||||
success(settingdata) { | |||||
if (settingdata.authSetting[ | |||||
'scope.writePhotosAlbum']) { | |||||
_this.savePhoto() | |||||
} else { | |||||
wx.showToast({ | |||||
title: '获取权限失败,无法保存图片', | |||||
icon: 'success', | |||||
duration: 2000 | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
} | |||||
} | |||||
}) | |||||
} | |||||
}) | |||||
} | |||||
} | } | ||||
}; | }; | ||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.main { | .main { | ||||
padding:30rpx; | |||||
padding: 30rpx; | |||||
background: #F8F8F8; | background: #F8F8F8; | ||||
display: flex; | display: flex; | ||||
flex-direction: column; | flex-direction: column; | ||||
min-height: 100vh; | min-height: 100vh; | ||||
padding-bottom: 40rpx; | padding-bottom: 40rpx; | ||||
background: #FFFFFF; | background: #FFFFFF; | ||||
.text1{ | |||||
.text1 { | |||||
color: #303030; | color: #303030; | ||||
font-size: 30rpx; | font-size: 30rpx; | ||||
} | } | ||||
.text2{ | |||||
.text2 { | |||||
font-size: 30rpx; | font-size: 30rpx; | ||||
color: #666666; | color: #666666; | ||||
} | } | ||||
@@ -443,8 +443,14 @@ | |||||
// 分割数组排名前三,倒三 | // 分割数组排名前三,倒三 | ||||
getTopThree() { | getTopThree() { | ||||
if (this.weekObj.XJTopList && this.weekObj.XJTopList.length > 0) { | if (this.weekObj.XJTopList && this.weekObj.XJTopList.length > 0) { | ||||
this.carryOutLast = this.weekObj.XJTopList.slice(0, 3) | |||||
let arr = this.weekObj.XJTopList.slice(0, 3) | |||||
arr.forEach(item => { | |||||
if (item.value != 100) { | |||||
this.carryOutLast.push(item) | |||||
} | |||||
}) | |||||
this.carryOutTop = this.weekObj.XJTopList.reverse().slice(0, 3) | this.carryOutTop = this.weekObj.XJTopList.reverse().slice(0, 3) | ||||
console.log(this.weekObj.XJTopList) | |||||
} | } | ||||
if (this.weekObj.ZXLTopList && this.weekObj.ZXLTopList.length > 0) { | if (this.weekObj.ZXLTopList && this.weekObj.ZXLTopList.length > 0) { | ||||
this.consultant = this.weekObj.ZXLTopList.reverse().slice(0, 3) | this.consultant = this.weekObj.ZXLTopList.reverse().slice(0, 3) | ||||
@@ -1,11 +1,11 @@ | |||||
// http.js使用域名 | // 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://192.168.31.211:8080/api';// 泽明 | |||||
// const baseUrl = 'http://localhost:8080/autoSR/api'; // 本地 | |||||
// const baseUrl = 'http://192.168.31.161:8080/autoSR/api'; // 长龙 | |||||
// const baseUrl = 'http://192.168.31.86:9090/api'; // 盛浩 | |||||
const baseUrl = 'https://zkgj.quhouse.com/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 = 'https://zkgj.quhouse.com/api'; // 质控正式 | |||||
// const baseUrl = 'https://hfju.com/api'; // 数智正式 | // const baseUrl = 'https://hfju.com/api'; // 数智正式 | ||||
// const baseUrl = 'https://xitong.pachira.cn/api'; // AI营销辅助 普强使用 | |||||
// config使用域名 | // config使用域名 | ||||
@@ -16,7 +16,6 @@ const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式 | |||||
// const host = 'http://192.168.31.57:8080/autoSR/api';// 本地 | // const host = 'http://192.168.31.57:8080/autoSR/api';// 本地 | ||||
const host = baseUrl; // 测试站 | const host = baseUrl; // 测试站 | ||||
// const host = 'http://192.168.31.167:8080/autoSR/api'; // 长龙 | // const host = 'http://192.168.31.167:8080/autoSR/api'; // 长龙 | ||||
// const host = 'http://192.168.31.134:8080/autoSR/api'; // 佳豪 | |||||
// const host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | // const host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | ||||
// const host = 'https://zkgj.quhouse.com/api'; // 质控正式 | // const host = 'https://zkgj.quhouse.com/api'; // 质控正式 | ||||
// const host = 'https://hfju.com/api'; // 数智正式 | // const host = 'https://hfju.com/api'; // 数智正式 | ||||
@@ -1,5 +1,6 @@ | |||||
import { baseUrl } from './domain.js' | |||||
import { | |||||
baseUrl | |||||
} from './domain.js' | |||||
const install = (Vue, vm) => { | const install = (Vue, vm) => { | ||||
Vue.prototype.$u.http.setConfig({ | Vue.prototype.$u.http.setConfig({ | ||||
@@ -7,44 +8,44 @@ const install = (Vue, vm) => { | |||||
loadingText: '加载中~', | loadingText: '加载中~', | ||||
loadingTime: 800, | loadingTime: 800, | ||||
}); | }); | ||||
// 请求拦截,如果有token,携带token | |||||
Vue.prototype.$u.http.interceptor.request = (config) => { | |||||
const token = uni.getStorageSync('weapp_session_login_data'); | |||||
if(token){ | |||||
config.header['Access-Token'] = token.token; | |||||
} | |||||
return config | |||||
} | |||||
// 响应拦截,公共错误处理 | |||||
Vue.prototype.$u.http.interceptor.response = (res) => { | |||||
if(res.code == 10000) { | |||||
return res.data; | |||||
}else if(res.code == 10003 || res.code == 20006){ | |||||
uni.hideToast(); | |||||
uni.showToast({ | |||||
icon:"none", | |||||
title:"您的登录已失效,请重新登录", | |||||
duration: 2000 | |||||
}) | |||||
uni.clearStorageSync(); | |||||
setTimeout(function () { | |||||
uni.reLaunch({ | |||||
url: '/pages/login/index' | |||||
}); | |||||
},2000); | |||||
return false; | |||||
}else{ | |||||
uni.hideLoading(); | |||||
uni.showToast({ | |||||
icon:"none", | |||||
title:res.message, | |||||
duration: 3000 | |||||
}) | |||||
return false; | |||||
} | |||||
} | |||||
// 请求拦截,如果有token,携带token | |||||
Vue.prototype.$u.http.interceptor.request = (config) => { | |||||
const token = uni.getStorageSync('weapp_session_login_data'); | |||||
if (token) { | |||||
config.header['Access-Token'] = token.token; | |||||
} | |||||
return config | |||||
} | |||||
// 响应拦截,公共错误处理 | |||||
Vue.prototype.$u.http.interceptor.response = (res) => { | |||||
if (res.code == 10000) { | |||||
return res.data; | |||||
} else if (res.code == 10003 || res.code == 20006) { | |||||
uni.hideToast(); | |||||
uni.showToast({ | |||||
icon: "none", | |||||
title: "您的登录已失效,请重新登录", | |||||
duration: 2000 | |||||
}) | |||||
uni.clearStorageSync(); | |||||
setTimeout(function() { | |||||
uni.reLaunch({ | |||||
url: '/pages/login/index' | |||||
}); | |||||
}, 2000); | |||||
return false; | |||||
} else { | |||||
uni.hideLoading(); | |||||
uni.showToast({ | |||||
icon: "none", | |||||
title: res.message, | |||||
duration: 3000 | |||||
}) | |||||
return false; | |||||
} | |||||
} | |||||
} | } | ||||
export default { | export default { | ||||
install | install | ||||
} | |||||
} |