@@ -19,7 +19,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 | |||||
}; | }; | ||||
}, | }, | ||||
@@ -225,6 +225,10 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -274,6 +278,7 @@ | |||||
}; | }; | ||||
}, | }, | ||||
onLoad() { | onLoad() { | ||||
this.LOADING = true | |||||
// 获取项目id | // 获取项目id | ||||
this.houseId = uni.getStorageSync('buildingID').id; | this.houseId = uni.getStorageSync('buildingID').id; | ||||
this.init() | this.init() | ||||
@@ -439,12 +444,15 @@ | |||||
//未标记客户数量排名, | //未标记客户数量排名, | ||||
staffStatisticsUnlabeledTop10(promse) { | staffStatisticsUnlabeledTop10(promse) { | ||||
this.$u.post('/cusLvStatistics/staffStatisticsUnlabeledTop', promse).then(res => { | this.$u.post('/cusLvStatistics/staffStatisticsUnlabeledTop', promse).then(res => { | ||||
this.LOADING = false | |||||
res.result.forEach(item => { | res.result.forEach(item => { | ||||
item.zxl = item.tagCustomer | item.zxl = item.tagCustomer | ||||
item.name = item.accountName | item.name = item.accountName | ||||
}) | }) | ||||
res.result = this.dealData(res.result) | res.result = this.dealData(res.result) | ||||
this.newlisttabinfo5 = res; | this.newlisttabinfo5 = res; | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
@@ -235,6 +235,11 @@ | |||||
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | ||||
<!-- 选择项目 --> | <!-- 选择项目 --> | ||||
<u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'></u-select> | <u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'></u-select> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -306,6 +311,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) | ||||
@@ -449,7 +455,8 @@ | |||||
lastEndDate:this.lastEndDate, | lastEndDate:this.lastEndDate, | ||||
lastStartDate:this.lastStartDate | lastStartDate:this.lastStartDate | ||||
}) | }) | ||||
.then(res=>{ | |||||
.then(res=>{ | |||||
this.LOADING = false | |||||
let allobj={ | let allobj={ | ||||
categories:[], | categories:[], | ||||
series:[] | series:[] | ||||
@@ -474,6 +481,8 @@ | |||||
}else{ | }else{ | ||||
this.emptyCharData = false; | this.emptyCharData = false; | ||||
} | } | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
//自定义时间 | //自定义时间 | ||||
@@ -130,6 +130,10 @@ | |||||
</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> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script> | <script> | ||||
@@ -227,7 +231,8 @@ | |||||
}; | }; | ||||
}, | }, | ||||
onLoad: function(options) { | |||||
onLoad(options) { | |||||
this.LOADING = true | |||||
// 获取项目id | // 获取项目id | ||||
this.houseId = uni.getStorageSync('buildingID').id; | this.houseId = uni.getStorageSync('buildingID').id; | ||||
// this.buildingname = uni.getStorageSync('buildingID').name; | // this.buildingname = uni.getStorageSync('buildingID').name; | ||||
@@ -471,6 +476,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 | ||||
@@ -503,6 +509,8 @@ | |||||
}) | }) | ||||
} | } | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
tabtimetap(index) { | tabtimetap(index) { | ||||
@@ -177,6 +177,10 @@ | |||||
</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> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -371,6 +375,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) | ||||
@@ -752,6 +757,7 @@ | |||||
lastStartDate: this.lastStartDate | lastStartDate: this.lastStartDate | ||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.LOADING = false | |||||
// console.log(res) | // console.log(res) | ||||
// 处理数据 | // 处理数据 | ||||
this.chartData1 = { | this.chartData1 = { | ||||
@@ -828,6 +834,8 @@ | |||||
// console.log(allobj) | // console.log(allobj) | ||||
this.chartData1 = allobj | this.chartData1 = allobj | ||||
this.$forceUpdate() | this.$forceUpdate() | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
// 定义一个公共方法对数据进行处理 | // 定义一个公共方法对数据进行处理 | ||||
@@ -20,7 +20,7 @@ | |||||
</view> | </view> | ||||
<view class="timepickpick" @click="checkboxChange()"> | <view class="timepickpick" @click="checkboxChange()"> | ||||
<image v-if="timepickpickisshow" style="width: 30rpx;height: 30rpx;" | <image v-if="timepickpickisshow" style="width: 30rpx;height: 30rpx;" | ||||
src="../../../static/images/xuanzhong.png" mode=""></image> | |||||
src="../../../static/images/xuanzhong.png" mode=""></image> | |||||
<view v-else style="width: 30rpx;height:30rpx;border: 1px solid #E0E0E0;box-sizing:border-box;"></view> | <view v-else style="width: 30rpx;height:30rpx;border: 1px solid #E0E0E0;box-sizing:border-box;"></view> | ||||
<view style="font-size:26rpx;text-indent: 12rpx;">对比</view> | <view style="font-size:26rpx;text-indent: 12rpx;">对比</view> | ||||
</view> | </view> | ||||
@@ -47,7 +47,7 @@ | |||||
{{item.name}} | {{item.name}} | ||||
</view> | </view> | ||||
<view class="num u-flex" v-if="item.name==='平均执行率'"> | <view class="num u-flex" v-if="item.name==='平均执行率'"> | ||||
{{item.num}}% | |||||
{{item.num}}% | |||||
<!-- <image style="margin-left: 2rpx;width: 28rpx;height: 14rpx" src="../../../static/images/excute.png" mode="" /> --> | <!-- <image style="margin-left: 2rpx;width: 28rpx;height: 14rpx" src="../../../static/images/excute.png" mode="" /> --> | ||||
</view> | </view> | ||||
<view class="num" v-else-if="item.name==='有效接待'">{{item.num||'--'}}</view> | <view class="num" v-else-if="item.name==='有效接待'">{{item.num||'--'}}</view> | ||||
@@ -56,11 +56,11 @@ | |||||
<view class="comparesize" v-if="compareFlag&&timepickpickisshow"> | <view class="comparesize" v-if="compareFlag&&timepickpickisshow"> | ||||
<text style="margin-right: 50rpx;">对比:{{item.name==='平均执行率'?item.num1+'%':item.num1}}</text> | <text style="margin-right: 50rpx;">对比:{{item.name==='平均执行率'?item.num1+'%':item.num1}}</text> | ||||
<text :style="{color:item.num2*1>0?'red':'green'}"> | <text :style="{color:item.num2*1>0?'red':'green'}"> | ||||
{{item.num2}} | |||||
<template v-if="item.name==='平均执行率'"> | |||||
% | |||||
</template> | |||||
{{(item.num2*1) > 0 ? '↑' : '↓'}}</text> | |||||
{{item.num2}} | |||||
<template v-if="item.name==='平均执行率'"> | |||||
% | |||||
</template> | |||||
{{(item.num2*1) > 0 ? '↑' : '↓'}}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- <view class="grid" v-for="(item,index) in numlist" :key="index" | <!-- <view class="grid" v-for="(item,index) in numlist" :key="index" | ||||
@@ -229,8 +229,11 @@ | |||||
<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> | ||||
</view> | |||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import newcalendar from '@/components/newcalendar/newcalendar.vue'; | import newcalendar from '@/components/newcalendar/newcalendar.vue'; | ||||
@@ -357,14 +360,15 @@ | |||||
components: { | components: { | ||||
newcalendar | newcalendar | ||||
}, | }, | ||||
onLoad: function(options) { | |||||
onLoad(options) { | |||||
this.LOADING = true | |||||
this.pamect.houseId = uni.getStorageSync('buildingID').id; | this.pamect.houseId = uni.getStorageSync('buildingID').id; | ||||
this.init() | this.init() | ||||
}, | }, | ||||
onPullDownRefresh(){ | |||||
onPullDownRefresh() { | |||||
this.init() | this.init() | ||||
setTimeout(function () { | |||||
uni.stopPullDownRefresh(); | |||||
setTimeout(function() { | |||||
uni.stopPullDownRefresh(); | |||||
}, 1000); | }, 1000); | ||||
}, | }, | ||||
watch: { | watch: { | ||||
@@ -491,6 +495,10 @@ | |||||
this.aboutEecondary() | this.aboutEecondary() | ||||
} | } | ||||
} | } | ||||
setTimeout(() => { | |||||
this.LOADING = false | |||||
}, 1500) | |||||
}); | }); | ||||
}, | }, | ||||
//起始时间 | //起始时间 | ||||
@@ -1188,10 +1196,11 @@ | |||||
} | } | ||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.boxtittab .tabbox{ | |||||
flex: none; | |||||
padding: 0 35rpx; | |||||
} | |||||
.boxtittab .tabbox { | |||||
flex: none; | |||||
padding: 0 35rpx; | |||||
} | |||||
.uchaserbox { | .uchaserbox { | ||||
height: 500rpx; | height: 500rpx; | ||||
} | } | ||||
@@ -1306,7 +1315,8 @@ | |||||
display: flex; | display: flex; | ||||
justify-content: center; | justify-content: center; | ||||
} | } | ||||
.timetabctview view{ | |||||
.timetabctview view { | |||||
width: 100rpx; | width: 100rpx; | ||||
} | } | ||||
@@ -21,9 +21,10 @@ | |||||
<view class="grid" v-for="(item,index) in numlist" :key="index"> | <view class="grid" v-for="(item,index) in numlist" :key="index"> | ||||
<view class="audonum"> | <view class="audonum"> | ||||
<view class="circle"></view> | <view class="circle"></view> | ||||
{{item.name}}</view> | |||||
{{item.name}} | |||||
</view> | |||||
<view class="num u-flex" v-if="item.name==='平均执行率'"> | <view class="num u-flex" v-if="item.name==='平均执行率'"> | ||||
{{item.num}} | |||||
{{item.num}} | |||||
<!-- <image style="margin-left: 2rpx;width: 28rpx;height: 14rpx" src="../../../static/images/excute.png" mode="" /> --> | <!-- <image style="margin-left: 2rpx;width: 28rpx;height: 14rpx" src="../../../static/images/excute.png" mode="" /> --> | ||||
</view> | </view> | ||||
<view class="num" v-else-if="item.name==='有效接待'">{{item.num||'--'}}</view> | <view class="num" v-else-if="item.name==='有效接待'">{{item.num||'--'}}</view> | ||||
@@ -54,8 +55,8 @@ | |||||
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" /> | :ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" /> | ||||
</template> | </template> | ||||
<template v-else> | <template v-else> | ||||
<qiun-data-charts type="line" :opts="lineOpts1" :chartData="lineOptsect" background="none" :ontouch="true" | |||||
canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" /> | |||||
<qiun-data-charts type="line" :opts="lineOpts1" :chartData="lineOptsect" background="none" | |||||
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" /> | |||||
</template> | </template> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -67,7 +68,7 @@ | |||||
<view class="title1">团队接待趋势</view> | <view class="title1">团队接待趋势</view> | ||||
<view class="title2"> | <view class="title2"> | ||||
{{team.label}} | {{team.label}} | ||||
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image> | |||||
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="danwei">单位(%)</view> | <view class="danwei">单位(%)</view> | ||||
@@ -84,8 +85,8 @@ | |||||
<view class="title"> | <view class="title"> | ||||
<view class="title1">员工接待趋势</view> | <view class="title1">员工接待趋势</view> | ||||
<view class="title2" @click="staffShow=true"> | <view class="title2" @click="staffShow=true"> | ||||
{{staff.label}} | |||||
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image> | |||||
{{staff.label}} | |||||
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- <view class="hejibox"> | <!-- <view class="hejibox"> | ||||
@@ -93,8 +94,8 @@ | |||||
<view class="heji">均值:{{allavg1||0}}</view> | <view class="heji">均值:{{allavg1||0}}</view> | ||||
</view> --> | </view> --> | ||||
<view class="danwei">单位(%)</view> | <view class="danwei">单位(%)</view> | ||||
<view style="width: 100%;height: 300rpx;text-align: center;line-height: 300rpx;" | |||||
v-if="lineOptsect2.series.length===0">暂无数据</view> | |||||
<view style="width: 100%;height: 300rpx;text-align: center;line-height: 300rpx;" | |||||
v-if="lineOptsect2.series.length===0">暂无数据</view> | |||||
<view class="uchaserbox"> | <view class="uchaserbox"> | ||||
<qiun-data-charts :opts="lineOpts" type="line" :chartData="lineOptsect2" background="none" | <qiun-data-charts :opts="lineOpts" type="line" :chartData="lineOptsect2" background="none" | ||||
:ontouch="true" canvasId="wangxiaohuaerlingeryilingwuyibao" :canvas2d="true" /> | :ontouch="true" canvasId="wangxiaohuaerlingeryilingwuyibao" :canvas2d="true" /> | ||||
@@ -119,15 +120,15 @@ | |||||
<view class="heji">合计:50</view> | <view class="heji">合计:50</view> | ||||
<view class="heji">均值:25</view> | <view class="heji">均值:25</view> | ||||
</view> --> | </view> --> | ||||
<view style="width: 100%;text-align: center;line-height: 300rpx;" | |||||
v-if="newlisttabinfo.length==0">暂无数据</view> | |||||
<view style="width: 100%;text-align: center;line-height: 300rpx;" v-if="newlisttabinfo.length==0">暂无数据 | |||||
</view> | |||||
<view v-else class="jindu" style="margin-top: 20rpx;"> | <view v-else class="jindu" style="margin-top: 20rpx;"> | ||||
<scroll-view style="height: 300rpx;" scroll-y="true"> | <scroll-view style="height: 300rpx;" scroll-y="true"> | ||||
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index"> | <view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index"> | ||||
<view class="jindu-boxche"> | <view class="jindu-boxche"> | ||||
<view class="jindu-name">{{item.name.substring(0, 4)}}</view> | <view class="jindu-name">{{item.name.substring(0, 4)}}</view> | ||||
<view class="progress-cus"> | <view class="progress-cus"> | ||||
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'" ></view> | |||||
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'"></view> | |||||
</view> | </view> | ||||
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view> | <view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view> | ||||
</view> | </view> | ||||
@@ -155,7 +156,7 @@ | |||||
<view class="jindu-boxche"> | <view class="jindu-boxche"> | ||||
<view class="jindu-name">{{item.name.substring(0, 4)}}</view> | <view class="jindu-name">{{item.name.substring(0, 4)}}</view> | ||||
<view class="progress-cus"> | <view class="progress-cus"> | ||||
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'" ></view> | |||||
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'"></view> | |||||
</view> | </view> | ||||
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view> | <view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view> | ||||
</view> | </view> | ||||
@@ -168,6 +169,9 @@ | |||||
: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> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -210,7 +214,7 @@ | |||||
danwei: '单位(次)', | danwei: '单位(次)', | ||||
totalTimeShow: false, | totalTimeShow: false, | ||||
activeTab: 0, | activeTab: 0, | ||||
numlist: [{ | numlist: [{ | ||||
name: '平均执行率', | name: '平均执行率', | ||||
num: '', | num: '', | ||||
@@ -221,7 +225,7 @@ | |||||
num: '', | num: '', | ||||
setName: 'avgDuration', | setName: 'avgDuration', | ||||
}, | }, | ||||
{ | { | ||||
name: '接待量', | name: '接待量', | ||||
num: '', | num: '', | ||||
@@ -233,7 +237,7 @@ | |||||
setName: 'activeCustomer', | setName: 'activeCustomer', | ||||
}, | }, | ||||
], | ], | ||||
lineOptsect: { | lineOptsect: { | ||||
"categories": [], | "categories": [], | ||||
"series": [] | "series": [] | ||||
@@ -260,7 +264,7 @@ | |||||
title: '单位(min)', | title: '单位(min)', | ||||
setName: 'sumDuration' | setName: 'sumDuration' | ||||
}, | }, | ||||
{ | { | ||||
name: "接待量", | name: "接待量", | ||||
id: 3, | id: 3, | ||||
@@ -274,8 +278,8 @@ | |||||
setName: 'receptionCount' | setName: 'receptionCount' | ||||
}, | }, | ||||
], | ], | ||||
bocindex: 0, | bocindex: 0, | ||||
newlisttabinfo: [{ | newlisttabinfo: [{ | ||||
name: '接待量', | name: '接待量', | ||||
@@ -327,6 +331,7 @@ | |||||
}; | }; | ||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.LOADING = true | |||||
let newmenulist = uni.getStorageSync('weapp_session_Menu_data'); | let newmenulist = uni.getStorageSync('weapp_session_Menu_data'); | ||||
this.permissions.commonly2 = newmenulist.lpdb; | this.permissions.commonly2 = newmenulist.lpdb; | ||||
this.permissions.commonly3 = newmenulist.xjqs; | this.permissions.commonly3 = newmenulist.xjqs; | ||||
@@ -370,9 +375,9 @@ | |||||
}, 1000); | }, 1000); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getPercent(num){ | |||||
getPercent(num) { | |||||
console.log(num) | console.log(num) | ||||
return num||0 | |||||
return num || 0 | |||||
}, | }, | ||||
// 获取员工列表 | // 获取员工列表 | ||||
getStaffList() { | getStaffList() { | ||||
@@ -416,6 +421,7 @@ | |||||
lastStartDate: this.lastStartDate | lastStartDate: this.lastStartDate | ||||
}) | }) | ||||
.then(res => { | .then(res => { | ||||
this.LOADING = false | |||||
// console.log(res) | // console.log(res) | ||||
// 处理销奖维度执行率 | // 处理销奖维度执行率 | ||||
// this.newlisttabinfo | // this.newlisttabinfo | ||||
@@ -434,6 +440,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 | |||||
}) | }) | ||||
}, | }, | ||||
// 获取简报 | // 获取简报 | ||||
@@ -447,7 +455,7 @@ | |||||
.then(res => { | .then(res => { | ||||
res.fraction = (res.fraction || 0) + '%' | res.fraction = (res.fraction || 0) + '%' | ||||
this.numlist.map(item => { | this.numlist.map(item => { | ||||
item.num = res[item.setName] || 0 | |||||
item.num = res[item.setName] || 0 | |||||
}) | }) | ||||
}) | }) | ||||
}, | }, | ||||
@@ -595,7 +603,7 @@ | |||||
allobj.categories.push(item.statDate.slice(5, 10)) | allobj.categories.push(item.statDate.slice(5, 10)) | ||||
allobj.series[0].data.push(item[this.newlistoj1[index].setName]) | allobj.series[0].data.push(item[this.newlistoj1[index].setName]) | ||||
}) | }) | ||||
this.bocindex = index; | this.bocindex = index; | ||||
this.lineOptsect = allobj | this.lineOptsect = allobj | ||||
}, | }, | ||||
@@ -237,7 +237,9 @@ | |||||
</scroll-view> | </scroll-view> | ||||
</u-popup> | </u-popup> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -264,6 +266,7 @@ | |||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.LOADING = true | |||||
this.customerId = options.id; | this.customerId = options.id; | ||||
_this = this | _this = this | ||||
}, | }, | ||||
@@ -296,6 +299,7 @@ | |||||
this.$u.get("/customer/findById", { | this.$u.get("/customer/findById", { | ||||
id: this.customerId | id: this.customerId | ||||
}).then(res => { | }).then(res => { | ||||
this.LOADING = false | |||||
if (res.fraction == null) { | if (res.fraction == null) { | ||||
res.fraction = '0'; | res.fraction = '0'; | ||||
} | } | ||||
@@ -311,6 +315,8 @@ | |||||
// console.log(res.demand.cusSemanticWords,'关键字') | // console.log(res.demand.cusSemanticWords,'关键字') | ||||
this.customerInfo = res; | this.customerInfo = res; | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
tabtimetap(idx) { | tabtimetap(idx) { | ||||
@@ -78,6 +78,10 @@ | |||||
</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> | ||||
<u-select v-model="showIdent" :list="identList" @confirm="selectIdent"></u-select> | <u-select v-model="showIdent" :list="identList" @confirm="selectIdent"></u-select> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -169,6 +173,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 | ||||
@@ -380,6 +385,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; | ||||
@@ -389,6 +395,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 | |||||
}) | }) | ||||
}, | }, | ||||
//获取顾问列表 | //获取顾问列表 | ||||
@@ -219,6 +219,9 @@ | |||||
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> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -316,6 +319,7 @@ | |||||
} | } | ||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.LOADING = true | |||||
this.isnorefresh = options.refresh; | this.isnorefresh = options.refresh; | ||||
this.activeTotal = options.activeTotal | this.activeTotal = options.activeTotal | ||||
this.screen.markAdvisor = options.markAdvisor | this.screen.markAdvisor = options.markAdvisor | ||||
@@ -534,6 +538,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 || []; | ||||
// this.recordList = [...this.recordList, ...list]; | // this.recordList = [...this.recordList, ...list]; | ||||
if(this.isRefresh){ | if(this.isRefresh){ | ||||
@@ -546,6 +551,8 @@ | |||||
if(this.staTime && this.endtime) { | if(this.staTime && this.endtime) { | ||||
this.startFilterTime = `${this.staTime}-${this.endtime}` | this.startFilterTime = `${this.staTime}-${this.endtime}` | ||||
} | } | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
//获取顾问列表 | //获取顾问列表 | ||||
@@ -70,7 +70,7 @@ | |||||
负责顾问:<view class="content-sec-lab1">{{item.agentName || ''}}</view> | 负责顾问:<view class="content-sec-lab1">{{item.agentName || ''}}</view> | ||||
</view> | </view> | ||||
<view class="content-sec-lab" style="line-height: 46rpx;"> | |||||
<view class="content-sec-lab" style="line-height: 46rpx;"> | |||||
客户意向: | 客户意向: | ||||
<text v-if="item.demand.cusSemanticWordsList==null">暂无</text> | <text v-if="item.demand.cusSemanticWordsList==null">暂无</text> | ||||
<template v-else> | <template v-else> | ||||
@@ -85,20 +85,21 @@ | |||||
<view class="content-sec-num"> | <view class="content-sec-num"> | ||||
<view>到访{{item.visitRecord || '--'}}次</view> | <view>到访{{item.visitRecord || '--'}}次</view> | ||||
<view> | <view> | ||||
{{item.mm || '0'}}min/{{item.fraction || '0'}}% | |||||
{{item.mm || '0'}}min/{{item.fraction || '0'}}% | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<template v-if="permissions.commonly2"> | <template v-if="permissions.commonly2"> | ||||
<view class="content-last"> | <view class="content-last"> | ||||
<!-- <view class="content-last-tab"> | |||||
<!-- <view class="content-last-tab"> | |||||
<image src="/static/images/genjin-icon.png" mode="" />添加提醒</view> | <image src="/static/images/genjin-icon.png" mode="" />添加提醒</view> | ||||
<view class="content-last-tab"> | <view class="content-last-tab"> | ||||
<image src="/static/images/genjin-icon.png" mode="" /> | <image src="/static/images/genjin-icon.png" mode="" /> | ||||
打电话</view> --> | 打电话</view> --> | ||||
<view class="content-last-tab" @click.stop="gotoFollowUp(item)"> | <view class="content-last-tab" @click.stop="gotoFollowUp(item)"> | ||||
<image src="/static/images/genjin-icon.png" mode="" /> | <image src="/static/images/genjin-icon.png" mode="" /> | ||||
写跟进</view> | |||||
写跟进 | |||||
</view> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -245,8 +246,8 @@ | |||||
<u-popup v-model="soltishow" mode="bottom"> | <u-popup v-model="soltishow" mode="bottom"> | ||||
<view class="soltishow" @tap.stop @touchmove.stop> | <view class="soltishow" @tap.stop @touchmove.stop> | ||||
<block v-for="(item, index) in orderBylist" :key="index"> | <block v-for="(item, index) in orderBylist" :key="index"> | ||||
<view class="soltishow-item" | |||||
:style="orderBy==item.value?'color: #2B6EFF':''" @click="selectCallback2(item)"> | |||||
<view class="soltishow-item" :style="orderBy==item.value?'color: #2B6EFF':''" | |||||
@click="selectCallback2(item)"> | |||||
{{ item.label }} | {{ item.label }} | ||||
</view> | </view> | ||||
</block> | </block> | ||||
@@ -255,8 +256,12 @@ | |||||
<!-- <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> --> | <!-- <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> --> | ||||
<!-- 底部导航栏 --> | <!-- 底部导航栏 --> | ||||
<!-- <u-tabbar :mid-button="true" activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"> | |||||
<!-- <u-tabbar :mid-button="true" activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"> | |||||
</u-tabbar> --> | </u-tabbar> --> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -425,6 +430,7 @@ | |||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.LOADING = true | |||||
let newmenulist = uni.getStorageSync('weapp_session_Menu_data'); | let newmenulist = uni.getStorageSync('weapp_session_Menu_data'); | ||||
this.permissions.commonly1 = newmenulist.khgl_ck; | this.permissions.commonly1 = newmenulist.khgl_ck; | ||||
this.permissions.commonly2 = newmenulist.khgl_gj; | this.permissions.commonly2 = newmenulist.khgl_gj; | ||||
@@ -461,7 +467,7 @@ | |||||
} | } | ||||
}, | }, | ||||
methods: { | methods: { | ||||
filterFun(){ | |||||
filterFun() { | |||||
}, | }, | ||||
// 过滤 | // 过滤 | ||||
@@ -642,7 +648,7 @@ | |||||
parames.query.level = this.screen.record.join(','); | parames.query.level = this.screen.record.join(','); | ||||
} | } | ||||
this.$u.post("/customer/customerManagement", parames).then(data => { | this.$u.post("/customer/customerManagement", parames).then(data => { | ||||
this.LOADING = false | |||||
// if (this.staTime && this.endtime) { | // if (this.staTime && this.endtime) { | ||||
// this.receptionDuration = `${this.staTime}-${this.endtime}` | // this.receptionDuration = `${this.staTime}-${this.endtime}` | ||||
// } | // } | ||||
@@ -664,6 +670,8 @@ | |||||
} | } | ||||
this.totalRecord = data.totalPage; | this.totalRecord = data.totalPage; | ||||
this.totalRecords = data.totalRecord; | this.totalRecords = data.totalRecord; | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
//获取顾问列表 | //获取顾问列表 | ||||
@@ -843,7 +851,8 @@ | |||||
-webkit-box-orient: vertical; | -webkit-box-orient: vertical; | ||||
/* 设置或检索伸缩盒对象的子元素的排列方式 */ | /* 设置或检索伸缩盒对象的子元素的排列方式 */ | ||||
} | } | ||||
.activeColor{ | |||||
.activeColor { | |||||
color: #2671E2; | color: #2671E2; | ||||
font-weight: bold; | font-weight: bold; | ||||
} | } | ||||
@@ -869,7 +878,8 @@ | |||||
display: flex; | display: flex; | ||||
align-items: center; | align-items: center; | ||||
justify-content: center; | justify-content: center; | ||||
.filter{ | |||||
.filter { | |||||
width: 40rpx; | width: 40rpx; | ||||
height: 40rpx; | height: 40rpx; | ||||
margin-left: 30rpx; | margin-left: 30rpx; | ||||
@@ -940,6 +950,7 @@ | |||||
.content-tips { | .content-tips { | ||||
background: #fff; | background: #fff; | ||||
margin-bottom: 20rpx; | margin-bottom: 20rpx; | ||||
.content-first { | .content-first { | ||||
padding: 19rpx 30rpx; | padding: 19rpx 30rpx; | ||||
display: flex; | display: flex; | ||||
@@ -1099,7 +1110,8 @@ | |||||
display: flex; | display: flex; | ||||
align-items: center; | align-items: center; | ||||
justify-content: center; | justify-content: center; | ||||
image{ | |||||
image { | |||||
width: 40rpx; | width: 40rpx; | ||||
height: 40rpx; | height: 40rpx; | ||||
margin-right: 12rpx; | margin-right: 12rpx; | ||||
@@ -294,6 +294,9 @@ | |||||
</u-popup> | </u-popup> | ||||
<!-- 底部导航栏 --> | <!-- 底部导航栏 --> | ||||
<!-- <u-tabbar :mid-button="false" activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar> --> | <!-- <u-tabbar :mid-button="false" activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar> --> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -384,6 +387,7 @@ | |||||
}, | }, | ||||
components: {}, | components: {}, | ||||
onLoad() { | onLoad() { | ||||
this.LOADING = true | |||||
this.sendLog() | this.sendLog() | ||||
}, | }, | ||||
@@ -614,6 +618,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 { | ||||
@@ -628,6 +633,9 @@ | |||||
receptionCount: data.data.data.receptionCount | receptionCount: data.data.data.receptionCount | ||||
} | } | ||||
} | } | ||||
}, | |||||
fail: () => { | |||||
this.LOADING = false | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
@@ -438,6 +438,10 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<u-toast ref="uToast" /> | <u-toast ref="uToast" /> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -564,6 +568,7 @@ | |||||
}, | }, | ||||
onLoad(options) { | onLoad(options) { | ||||
this.LOADING = true | |||||
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'); | ||||
@@ -1641,6 +1646,7 @@ | |||||
'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token | 'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token | ||||
}, | }, | ||||
success: (data) => { | success: (data) => { | ||||
this.LOADING = false | |||||
this.tablist = []; | this.tablist = []; | ||||
let jsonInfo = JSON.parse(data.data.data.audioContent); | let jsonInfo = JSON.parse(data.data.data.audioContent); | ||||
@@ -1689,6 +1695,9 @@ | |||||
this.newluyinList = jsonInfo; | this.newluyinList = jsonInfo; | ||||
this.dialogList.push(jsonInfo[this.textindex]); | this.dialogList.push(jsonInfo[this.textindex]); | ||||
this.adasdasdasd(Math.floor(info.bg / 1000)) | this.adasdasdasd(Math.floor(info.bg / 1000)) | ||||
}, | |||||
fail: () => { | |||||
this.LOADING = false | |||||
} | } | ||||
}) | }) | ||||
}, | }, | ||||
@@ -40,6 +40,10 @@ | |||||
<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> | ||||
<!-- 加载组件 --> | |||||
<u-loadings v-model="LOADING"></u-loadings> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
@@ -62,6 +66,7 @@ | |||||
} | } | ||||
}, | }, | ||||
onLoad(option) { | onLoad(option) { | ||||
this.LOADING = true | |||||
this.customerId = option.id; | this.customerId = option.id; | ||||
this.freeList = [] | this.freeList = [] | ||||
}, | }, | ||||
@@ -152,12 +157,15 @@ | |||||
}, | }, | ||||
getFreeList() { | getFreeList() { | ||||
this.$u.get("/zkAgentPool/freeList?itemId=" + this.buildingID).then(res => { | this.$u.get("/zkAgentPool/freeList?itemId=" + this.buildingID).then(res => { | ||||
this.LOADING = false | |||||
if (res.length == 0) { | if (res.length == 0) { | ||||
this.freeList = [] | this.freeList = [] | ||||
} else { | } else { | ||||
this.freeList = res; | this.freeList = res; | ||||
this.textcdhSKJ = res[0].name | this.textcdhSKJ = res[0].name | ||||
} | } | ||||
}).catch(e => { | |||||
this.LOADING = false | |||||
}) | }) | ||||
}, | }, | ||||
radioChange: function(evt) { | radioChange: function(evt) { | ||||
@@ -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> |