Browse Source

init2

yun
wangxiaohua 3 years ago
parent
commit
fdfaf65286
52 changed files with 3054 additions and 309 deletions
  1. +183
    -0
      App.vue
  2. +19
    -2
      config.js
  3. +1
    -0
      main.js
  4. +75
    -5
      pages.json
  5. +255
    -0
      pages/center/Piabodata/Groupcontrast.vue
  6. +255
    -0
      pages/center/Piabodata/Theteamcompared.vue
  7. +286
    -0
      pages/center/Piabodata/index.vue
  8. +201
    -4
      pages/index/customer.vue
  9. +108
    -87
      pages/index/guide.vue
  10. +396
    -6
      pages/index/index.vue
  11. +190
    -3
      pages/index/learning.vue
  12. +187
    -142
      pages/index/personal.vue
  13. +24
    -2
      pages/login/Setthepassword.vue
  14. +30
    -13
      pages/login/Verification.vue
  15. +65
    -8
      pages/login/index.vue
  16. +76
    -14
      pages/login/yinzhongmalogin.vue
  17. +142
    -0
      pages/mine/Changehepassword.vue
  18. +169
    -0
      pages/mine/Myprofile.vue
  19. +104
    -0
      pages/mine/nickname.vue
  20. +158
    -0
      pages/mine/reception/addreception.vue
  21. +102
    -0
      pages/mine/signature.vue
  22. BIN
      static/images/Thtapedrive1.png
  23. BIN
      static/images/Thtapedrive2.png
  24. BIN
      static/images/add.png
  25. BIN
      static/images/battery.png
  26. BIN
      static/images/building.png
  27. BIN
      static/images/good.png
  28. BIN
      static/images/jituan.png
  29. BIN
      static/images/problem.png
  30. BIN
      static/images/qushi.png
  31. BIN
      static/images/reverse.png
  32. BIN
      static/images/righttochoose.png
  33. BIN
      static/images/search.png
  34. BIN
      static/images/signal0.png
  35. BIN
      static/images/signal1.png
  36. BIN
      static/images/signal2.png
  37. BIN
      static/images/signal3.png
  38. BIN
      static/images/signal4.png
  39. BIN
      static/images/signal5.png
  40. BIN
      static/images/tabBar/customer.png
  41. BIN
      static/images/tabBar/customerActive.png
  42. BIN
      static/images/tabBar/home.png
  43. BIN
      static/images/tabBar/homeActive.png
  44. BIN
      static/images/tabBar/user.png
  45. BIN
      static/images/tabBar/userActive.png
  46. BIN
      static/images/tabBar/voice.png
  47. BIN
      static/images/tabBar/voiceActive.png
  48. BIN
      static/images/tuandui.png
  49. BIN
      static/images/yinghu.png
  50. BIN
      static/images/yuangong.png
  51. +26
    -21
      uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
  52. +2
    -2
      utils/http.js

+ 183
- 0
App.vue View File

@@ -24,4 +24,187 @@
<style lang="scss">
@import "uview-ui/index.scss";
/*每个页面公共css */
//图表样式等
.single{
width: 100%;
background: #FFFFFF;
.title{
width: 100%;
height: 90rpx;
border-bottom: 1rpx solid #E0E0E0;
display: flex;
.title1{
flex: 2;
font-size: 30rpx;
font-weight: 600;
color: #333333;
line-height: 90rpx;
text-indent: 30rpx;
}
.title3{
flex: 3;
height: 90rpx;
display: flex;
align-items: center;
justify-content: flex-end;
.title3-box{
display: flex;
align-items: center;
width: 25%;
justify-content: center;
.activecltab{
border-bottom: 2px solid #2671E2;
}
}
}
.title2{
flex: 3;
height: 90rpx;
display: flex;
align-items: center;
.title2-che{
width: 178rpx;
height: 48rpx;
background: #FFFFFF;
border-radius: 6rpx;
border: 1px solid #E0E0E0;
line-height: 48rpx;
font-size: 28rpx;
font-weight: 400;
color: #666666;
text-indent: 12rpx;
margin-left: 35rpx;
position: relative;
.righttochoose{
width: 18rpx;
height: 24rpx;
position: absolute;
top: 12rpx;
right: 12rpx;
}
}
}
}
.swiper-box{
width: 97%;
margin: 0 auto;
}
.hejibox{
width: 100%;
height: 80rpx;
display: flex;
.heji{
width: 50%;
height: 100%;
font-size: 28rpx;
font-weight: 400;
color: #666666;
line-height: 80rpx;
text-indent: 30rpx;
}
}
.danwei{
width: 100%;
height: 40rpx;
font-size: 24rpx;
font-weight: 400;
color: #999999;
line-height: 40rpx;
text-indent: 30rpx;
}
.uchaserbox{
width: 100%;
height: 470rpx;
}
.jindu{
width: 100%;
height: 300rpx;
.jindu-box{
width: 100%;
padding-left: 30rpx;
padding-right: 30rpx;
.jindu-boxche{
width: 100%;
height: 46rpx;
display: flex;
align-items: center;
height: 50rpx;
.jindu-name{
width: 120rpx;
font-size: 28rpx;
color: #666666;
}
.jindu-zxl{
width: 120rpx;
font-size: 26rpx;
margin-left: 16rpx;
color: #666666;
text-align: center;
}
}
}
}
}
//时间切换的样式
.boxtittab {
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;
display: flex;
justify-content: center;
.activecllasscet {
width: 96rpx;
border-bottom: 2px solid #2671E2;
}
}
}
//多个格子的样式
.boxzonglan {
width: 100%;
min-height: 496rpx;
background: #FFFFFF;
padding: 30rpx 30rpx 30rpx 30rpx;
.zonglantit {
font-size: 30rpx;
color: #333333;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 600;
}
.zonglanbox {
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: 24rpx;
.grid {
width: 50%;
height: 128rpx;
border: 1px solid #E0E0E0;
.audonum {
color: #666666;
text-indent: 40rpx;
font-size: 26rpx;
margin-top: 20rpx;
}
.num {
color: #333333;
text-indent: 40rpx;
font-size: 32rpx;
font-weight: 600;
margin-top: 10rpx;
}
}
}
}
</style>

+ 19
- 2
config.js View File

@@ -2,11 +2,11 @@
* 小程序配置文件
*/
// 此处主机域名修改成腾讯云解决方案分配的域名
// var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站
var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站
// var host = 'http://192.168.31.163:8080/autoSR/api'; // 长龙
// var host = 'http://192.168.31.130:8080/autoSR/api'; // 佳豪
// var host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏
var host = 'https://zkgj.quhouse.com/api'; // 质控正式
// var host = 'https://zkgj.quhouse.com/api'; // 质控正式
// var host = 'https://hfju.com/api'; // 数智正式


@@ -16,8 +16,25 @@ var config = {
service: {
host,
iMServiceHost,
//验证toen
verify:`${host}/user/verify`,
//登录
login: `${host}/user/login`,
//获取用户信息
getUser: `${host}/user/getUser`,
//发送验证码
sendCode:`${host}/user/sendCode`,
//验证码校验
plogin:`${host}/user/plogin`,
//忘记密码
forgotPassword:`${host}/user/forgotPassword`,
//修改密码
updatePassword: `${host}/user/resetPwd`,
//修改用户信息
upload: `${host}/user/update`,
// 上传头像
uploadHeadImg:`${host}/user/uploadHeadPortrait`,
}
};
module.exports = config;

+ 1
- 0
main.js View File

@@ -4,6 +4,7 @@ import dayjs from './utils/dayjs.min.js'
Vue.config.productionTip = false;

Vue.prototype.$dayjs = dayjs;

// 引入全局uView
import uView from 'uview-ui'
Vue.use(uView);


+ 75
- 5
pages.json View File

@@ -14,8 +14,8 @@
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页",
"navigationBarBackgroundColor": "#008EF2",
"navigationBarTitleText": "智控管家",
"navigationBarBackgroundColor": "#2671E2",
"navigationBarTextStyle": "white"
}
},
@@ -23,20 +23,20 @@
"path": "pages/index/customer",
"style": {
"navigationBarTitleText": "接待",
"navigationBarBackgroundColor": "#008EF2",
"navigationBarBackgroundColor": "#2671E2",
"navigationBarTextStyle": "white"
}
},{
"path": "pages/index/learning",
"style": {
"navigationBarTitleText": "学习",
"navigationBarBackgroundColor": "#008EF2",
"navigationBarBackgroundColor": "#2671E2",
"navigationBarTextStyle": "white"
}
},{
"path": "pages/index/personal",
"style": {
"navigationBarTitleText": "个人",
"navigationBarTitleText": "我的",
"navigationBarBackgroundColor": "#2671E2",
"navigationBarTextStyle": "white"
}
@@ -96,6 +96,50 @@
"root": "pages/mine",//个人中心
"name": "mine",
"pages": [
{
"path": "Myprofile",
"style": {
"navigationBarTitleText": "编辑资料",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "nickname",
"style": {
"navigationBarTitleText": "编辑昵称",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "signature",
"style": {
"navigationBarTitleText": "编辑签名",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Changehepassword",
"style": {
"navigationBarTitleText": "修改密码",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "reception/addreception",
"style": {
"navigationBarTitleText": "新增接待",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
}
]
},
@@ -110,6 +154,32 @@
"root": "pages/center",//中心逻辑的模块都放到这里
"name": "center",
"pages": [
{
"path": "Piabodata/index",
"style": {
"navigationBarTitleText": "销讲数据",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Piabodata/Groupcontrast",
"style": {
"navigationBarTitleText": "集团对比",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
},
{
"path": "Piabodata/Theteamcompared",
"style": {
"navigationBarTitleText": "团队对比",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}
}
]
}


+ 255
- 0
pages/center/Piabodata/Groupcontrast.vue View File

@@ -0,0 +1,255 @@
<template>
<view class="box">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">今日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">昨日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">近一周</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">接待量(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#FBA448" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">接待时长(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#4FC78F" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1" style="flex: 1;">销讲排名(TOP10)</view>
<view class="title3" style="flex: 1;">
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">执行率</view>
</view>
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">得分</view>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#9B6BDF" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1" style="flex: 1;">顾问排名(TOP10)</view>
<view class="title3" style="flex: 1;">
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">执行率</view>
</view>
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">得分</view>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#9B6BDF" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title" style="padding-right: 30rpx;">
<view class="title1" style="flex: 1;">违禁能力(TOP10)</view>
<view class="title2" style="flex: 1;justify-content: flex-end;">
<view class="title2-che">楼盘
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="uchaserbox">
<qiun-data-charts
type="radar"
:chartData="chartData"
:canvas2d="true"
canvasId="wangxiaohuaerlingeryilingwuyib88"
background="none"
/>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">禁忌执行率(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#E6625B" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title" style="padding-right: 30rpx;">
<view class="title1" style="flex: 1;">违禁能力(TOP10)</view>
<view class="title2" style="flex: 1;justify-content: flex-end;">
<view class="title2-che">楼盘
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="uchaserbox">
<qiun-data-charts
type="radar"
:chartData="chartData"
:canvas2d="true"
canvasId="wangxiaohuaerlingeryilingwuyib89"
background="none"
/>
</view>
</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");
export default {
data() {
return {
activeTotal: 2,
activeTotal2: 0,
bocindex:0,
newlisttabinfo:[
{name:'接待量',zxl:'10'},
{name:'平均执行率',zxl:'50'},
{name:'接待客户',zxl:'80'},
],
chartData:{
"categories": ["维度1","维度2","维度3","维度4","维度5","维度6"],
"series": [
{
"name": "成交量",
"data": [90,110,165,195,187,172]
}
]
}
};
},
onLoad() {
},
methods: {
//指标执行率分析tab
tapspagek2(index) {
this.bocindex = index;
},
//集团对比
Groupcontrast(){
uni.navigateTo({
url: '/pages/center/Piabodata/Groupcontrast'
});
}
}
};
</script>
<style lang="scss" scoped>
.box {
width: 100%;
height: 100%;
background: #FAFAFA;
padding-bottom: 60rpx;
}
</style>

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

@@ -0,0 +1,255 @@
<template>
<view class="box">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">今日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">昨日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">近一周</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">接待量(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#FBA448" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">接待时长(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#4FC78F" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1" style="flex: 1;">销讲排名(TOP10)</view>
<view class="title3" style="flex: 1;">
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">执行率</view>
</view>
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">得分</view>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#9B6BDF" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1" style="flex: 1;">顾问排名(TOP10)</view>
<view class="title3" style="flex: 1;">
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">执行率</view>
</view>
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">得分</view>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#9B6BDF" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title" style="padding-right: 30rpx;">
<view class="title1" style="flex: 1;">违禁能力(TOP10)</view>
<view class="title2" style="flex: 1;justify-content: flex-end;">
<view class="title2-che">楼盘
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="uchaserbox">
<qiun-data-charts
type="radar"
:chartData="chartData"
:canvas2d="true"
canvasId="wangxiaohuaerlingeryilingwuyib88"
background="none"
/>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">禁忌执行率(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#E6625B" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title" style="padding-right: 30rpx;">
<view class="title1" style="flex: 1;">违禁能力(TOP10)</view>
<view class="title2" style="flex: 1;justify-content: flex-end;">
<view class="title2-che">楼盘
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="uchaserbox">
<qiun-data-charts
type="radar"
:chartData="chartData"
:canvas2d="true"
canvasId="wangxiaohuaerlingeryilingwuyib89"
background="none"
/>
</view>
</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");
export default {
data() {
return {
activeTotal: 2,
activeTotal2: 0,
bocindex:0,
newlisttabinfo:[
{name:'接待量',zxl:'10'},
{name:'平均执行率',zxl:'50'},
{name:'接待客户',zxl:'80'},
],
chartData:{
"categories": ["维度1","维度2","维度3","维度4","维度5","维度6"],
"series": [
{
"name": "成交量",
"data": [90,110,165,195,187,172]
}
]
}
};
},
onLoad() {
},
methods: {
//指标执行率分析tab
tapspagek2(index) {
this.bocindex = index;
},
//集团对比
Groupcontrast(){
uni.navigateTo({
url: '/pages/center/Piabodata/Groupcontrast'
});
}
}
};
</script>
<style lang="scss" scoped>
.box {
width: 100%;
height: 100%;
background: #FAFAFA;
padding-bottom: 60rpx;
}
</style>

+ 286
- 0
pages/center/Piabodata/index.vue View File

@@ -0,0 +1,286 @@
<template>
<view class="box">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">今日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">昨日</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">近一周</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="Piabodata-box">
<view class="Piabodata">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/qushi.png" mode=""></image>
</view>
<view class="Piabodata-text">趋势分析</view>
</view>
<view class="Piabodata">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/yuangong.png" mode=""></image>
</view>
<view class="Piabodata-text">员工分析</view>
</view>
<view class="Piabodata">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/yinghu.png" mode=""></image>
</view>
<view class="Piabodata-text">用户洞察</view>
</view>
<view class="Piabodata" @click="Theteamcompared()">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/tuandui.png" mode=""></image>
</view>
<view class="Piabodata-text">团队对比</view>
</view>
<view class="Piabodata" @click="Groupcontrast()">
<view class="Piabodata-img">
<image class="Piabodata-img1" src="../../../static/images/jituan.png" mode=""></image>
</view>
<view class="Piabodata-text">集团对比</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="boxzonglan">
<view class="zonglantit">简报</view>
<view class="zonglanbox">
<view class="grid" v-for="(item,index) in numlist" :key="index">
<view class="audonum">{{item.name}}</text></view>
<view class="num">{{item.num}}</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">接待趋势</view>
</view>
<view class="swiper-box">
<u-tabs-swiper ref="tabs" font-size="30" :bold="true" swiper-width="600" :current="bocindex" @change="tapspagek2"
inactive-color="#b1b1b1" active-color="#008ef2" :list="newlistoj" :is-scroll="true">
</u-tabs-swiper>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyiba1"
:canvas2d="true"
/>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">团队接待趋势</view>
<view class="title2">
<view class="title2-che">毛丫丫
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
<view class="title2-che">执行率
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyibao"
:canvas2d="true"
/>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">销讲维度执行率</view>
<view class="title3">
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">执行率</view>
</view>
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">得分</view>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#4FC78F" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">销讲指标执行率</view>
</view>
<view class="swiper-box">
<u-tabs-swiper ref="tabs" font-size="30" :bold="true" swiper-width="600" :current="bocindex" @change="tapspagek2"
inactive-color="#b1b1b1" active-color="#008ef2" :list="newlistoj" :is-scroll="true">
</u-tabs-swiper>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#4FC78F" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view>
</view>
</view>
</view>
</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");
export default {
data() {
return {
activeTotal: 2,
activeTotal2: 0,
timeobj:{
statDateStart:'',
statDateEnd:''
},
totalTimeShow: false,
activeTab: 0,
numlist:[
{name:'接待量',num:'10'},
{name:'平均执行率',num:'10'},
{name:'接待客户',num:'10'},
],
lineOptsect:{
"categories": ["2016","2017","2018","2019","2020","2021"],
"series": [
{
"name": "成交量",
"data": [35,8,25,37,4,20]
}
]
},
newlistoj:[
{name:"接待量",id:1},
{name:"平均执行率",id:2},
{name:"接待客户",id:3},
{name:"接待",id:4},
{name:"接待量",id:5},
{name:"接待",id:6},
],
bocindex:0,
newlisttabinfo:[
{name:'接待量',zxl:'10'},
{name:'平均执行率',zxl:'50'},
{name:'接待客户',zxl:'80'},
],
};
},
onLoad() {
},
methods: {
//指标执行率分析tab
tapspagek2(index) {
this.bocindex = index;
},
//集团对比
Groupcontrast(){
uni.navigateTo({
url: '/pages/center/Piabodata/Groupcontrast'
});
},
//团队对比
Theteamcompared(){
uni.navigateTo({
url: '/pages/center/Piabodata/Theteamcompared'
});
}
}
};
</script>
<style lang="scss" scoped>
.box {
width: 100%;
height: 100%;
background: #FAFAFA;
padding-bottom: 60rpx;
}
.Piabodata-box{
width: 100%;
background: #FFFFFF;
display: flex;
flex-wrap: wrap;
padding-bottom: 30rpx;
.Piabodata{
width: 33.3%;
.Piabodata-img{
width: 100%;
text-align: center;
.Piabodata-img1{
width: 134rpx;
height: 134rpx;
}
}
.Piabodata-text{
width: 100%;
text-align: center;
font-size: 24rpx;
font-weight: 400;
color: #333333;
margin-top: -10rpx;
}
}
}
</style>

+ 201
- 4
pages/index/customer.vue View File

@@ -1,6 +1,80 @@
<template>
<view>
接待
<view class="cented-box">
<view class="customer">
<view class="title">
<view class="zuo">
<view class="zuoimg">A</view>
<view class="zuoname">李先生</view>
</view>
<view class="you">
<view class="youimg1"></view>
<view class="youtext">接待中</view>
</view>
</view>
<view class="centerbox">
<view class="centerbox-che">手机号码:<text class="shizai">17551333886</text></view>
<view class="centerbox-che">开始时间:<text class="shizai">2021-07-20 14:00:30</text></view>
<view class="centerbox-che">顾问姓名:<text class="shizai">毛丫丫</text></view>
<view class="centerbox-che2">
<view class="Workcard">工牌电量:<text class="shizai">56%</text></view>
<view class="Workcard">录音状态:<text class="shizai">使用中</text></view>
</view>
</view>
<view class="footer-button">
<view class="footer1">接待延时</view>
<view class="footer1">重新指派</view>
<view class="footer3">结束接待</view>
</view>
</view>
<view class="customer">
<view class="title">
<view class="zuo">
<view class="zuoimg">A</view>
<view class="zuoname">李先生</view>
</view>
<view class="you">
<view class="youimg1"></view>
<view class="youtext">排队中</view>
</view>
</view>
<view class="centerbox">
<view class="centerbox-che">手机号码:<text class="shizai">--</text></view>
</view>
<view class="footer-button">
<view class="footer3">指派顾问</view>
</view>
</view>
<view class="customer">
<view class="title">
<view class="zuo">
<view class="zuoimg">A</view>
<view class="zuoname">李先生</view>
</view>
<view class="you">
<view class="youimg1"></view>
<view class="youtext">接待中</view>
</view>
</view>
<view class="centerbox">
<view class="centerbox-che">手机号码:<text class="shizai">17551333886</text></view>
<view class="centerbox-che">开始时间:<text class="shizai">2021-07-20 14:00:30</text></view>
<view class="centerbox-che">顾问姓名:<text class="shizai">毛丫丫</text></view>
<view class="centerbox-che2">
<view class="Workcard">工牌电量:<text class="shizai">56%</text></view>
<view class="Workcard">录音状态:<text class="shizai">使用中</text></view>
</view>
</view>
<view class="footer-button">
<view class="footer1">接待延时</view>
<view class="footer1">重新指派</view>
<view class="footer3">结束接待</view>
</view>
</view>
<image @click="addreception()" class="add" src="/static/images/add.png" mode=""></image>
</view>
</template>

@@ -13,12 +87,135 @@
onLoad() {},
onShow() {},
methods: {
//新增接待
addreception(){
uni.navigateTo({
url: '/pages/mine/reception/addreception'
});
}
},
};
</script>

<style lang="scss" scoped>

.cented-box{
background: #F8F8F8;
width: 100%;
height: 100%;
padding-bottom: 30rpx;
}
.customer{
margin-top: 30rpx;
width: 100%;
background: #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(224, 224, 224, 0.3);
.title{
height: 90rpx;
border-bottom: 1px solid #E0E0E0;
display: flex;
align-items: center;
.zuo{
width: 80%;
height: 100%;
display: flex;
align-items: center;
.zuoimg{
width: 52rpx;
height: 52rpx;
border-radius: 50%;
border: 1px solid #C9C9C9;
font-size: 30rpx;
color: #292929;
font-weight: 400;
line-height: 52rpx;
text-align: center;
margin-left: 30rpx;
}
.zuoname{
font-size: 30rpx;
font-weight: 500;
color: #333333;
line-height: 30rpx;
margin-left: 20rpx;
}
}
.you{
width: 20%;
height: 100%;
display: flex;
align-items: center;
.youimg1{
width: 12rpx;
height: 12rpx;
border-radius: 50%;
background: #2B6EFF;
}
.youtext{
font-size: 30rpx;
font-weight: 400;
color: #292929;
line-height: 30rpx;
margin-left: 10rpx;
}
}
}
.centerbox{
.centerbox-che{
width: 100%;
margin-top: 30rpx;
height: 30rpx;
font-size: 30rpx;
font-weight: 400;
color: #666666;
line-height: 30rpx;
text-indent: 30rpx;
.shizai{
color: #333333;
}
}
.centerbox-che2{
width: 100%;
margin-top: 30rpx;
height: 30rpx;
font-size: 30rpx;
font-weight: 400;
color: #666666;
line-height: 30rpx;
text-indent: 30rpx;
display: flex;
.Workcard{
width: 50%;
}
}
}
.footer-button{
margin-top: 30rpx;
width: 100%;
height: 90rpx;
display: flex;
font-size: 30rpx;
font-weight: 400;
color: #333333;
border-top: 1rpx solid #E0E0E0;
.footer1{
flex: 1;
text-align: center;
line-height: 90rpx;
border-right: 1rpx solid #E0E0E0;
}
.footer3{
flex: 1;
text-align: center;
line-height: 90rpx;
}
}
}
.add {
width: 90rpx;
height: 90rpx;
position: fixed;
bottom: 70rpx;
right: 44rpx;
}
</style>

+ 108
- 87
pages/index/guide.vue View File

@@ -1,95 +1,116 @@
<template>
<view class="full">
<view class="logo"></view>
<view class="title">
数智工牌
</view>
<image class="middle" src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/lead_middle.png" mode="scaleToFill"></image>
<view class="content">
<view class="">
1 智能语音转写
</view>
<view class="">
2 高效的判客机制
</view>
<view class="">
3 全方位的客户跟进
</view>
<view class="">
4 专业的经纪管家
</view>
<view class="">
5 在线实时沟通
</view>
</view>
<view @click="bindWxBLogin" class="button">
立即去登录
</view>
</view>
<view class="full">
<view class="logo"></view>
<view class="title">
数智工牌
</view>
<image class="middle" src="https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/lead_middle.png"
mode="scaleToFill"></image>
<view class="content">
<view class="">
1 智能语音转写
</view>
<view class="">
2 高效的判客机制
</view>
<view class="">
3 全方位的客户跟进
</view>
<view class="">
4 专业的经纪管家
</view>
<view class="">
5 在线实时沟通
</view>
</view>
<view @click="bindWxBLogin" class="button">
立即去登录
</view>
</view>

</template>

<script>
var app = getApp();
var config = require("../../config");
export default {
data() {
return {
};
},
onShow: function () { },
onHide: function(){ },
methods: {
bindWxBLogin() {
wx.navigateTo({
url: '/pages/login/index'
});
}
var app = getApp();
var config = require("../../config");
export default {
data() {
return {

};
},
onShow: function() {
uni.request({
url: config.service.verify,
method: "GET",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
if (data.data.code == 10000) {
uni.switchTab({
url: '/pages/index/index'
});
}
}
})
},
onHide: function() {},
methods: {
bindWxBLogin() {
wx.navigateTo({
url: '/pages/login/index'
});
}

}
};
}
};
</script>
<style lang="scss">
.full{
width: 100vw;
height: 100vh;
position: relative;
background: url("https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/lead_background.png");
background-size: 100% 100%;
display: flex;
flex-direction: column;
align-items: center;
.full {
width: 100vw;
height: 100vh;
position: relative;
background: url("https://qufang.oss-cn-beijing.aliyuncs.com/channelHelper/lead_background.png");
background-size: 100% 100%;
display: flex;
flex-direction: column;
align-items: center;

.logo {
width: 202upx;
height: 202upx;
margin-top: 40rpx
}

.title {
color: #FFFFFF;
font-size: 36upx;
font-weight: 500;
}

.middle {
width: 480upx;
height: 485upx;
margin-top: 34upx;
}

.content {
color: #FFFFFF;
font-size: 28rpx;
line-height: 66rpx;
}

.logo{
width: 202upx;
height: 202upx;
margin-top: 40rpx
}
.title{
color: #FFFFFF;
font-size: 36upx;
font-weight:500;
}
.middle{
width: 480upx;
height: 485upx;
margin-top: 34upx;
}
.content{
color: #FFFFFF;
font-size: 28rpx;
line-height: 66rpx;
}
.button{
background: #fff;
border-radius:76px;
width:584upx;
height:100upx;
color: #008EF2;
font-size: 40upx;
line-height: 100upx;
text-align: center;
}
}
</style>
.button {
background: #fff;
border-radius: 76px;
width: 584upx;
height: 100upx;
color: #008EF2;
font-size: 40upx;
line-height: 100upx;
text-align: center;
}
}
</style>

+ 396
- 6
pages/index/index.vue View File

@@ -1,24 +1,414 @@
<template>
<view>
首页
<view class="cented-box">
<view class="Switchingbox">
<view class="Switching1">
<image class="Switching1-img" src="../../static/images/building.png" mode=""></image>
</view>
<view class="Switching2">楼盘:</view>
<view class="Switching3">{{buildingname}}</view>
<view class="Switching4" v-if="buildingishow" @click="piskbuilding()">切换楼盘</view>
</view>
<view class="title" style="margin-top: 30rpx;">我的工牌</view>
<view class="Workcard">
<view class="Workcard-box">
<view class="Workcardimg">
<image class="Workcardimg1" src="../../static/images/battery.png" mode=""></image>
</view>
<view class="Workcardtext">电量:96%</view>
</view>
<view class="Workcard-box">
<view class="Workcardimg">
<image class="Workcardimg1" src="../../static/images/signal5.png" mode=""></image>
</view>
<view class="Workcardtext">信号:弱</view>
</view>
<view class="Workcard-box">
<view class="Workcardimg">
<image class="Workcardimg3" src="../../static/images/Thtapedrive2.png" mode=""></image>
</view>
<view class="Workcardtext">录音:未开启</view>
</view>
</view>
<view class="title">设备</view>
<view class="shebenbox">
<view class="shebenche">
<view class="shebenchenum">158</view>
<view class="shebenchetext">设备总数</view>
</view>
<view class="shebenche">
<view class="shebenchenum">5</view>
<view class="shebenchetext">在线</view>
</view>
<view class="shebenche">
<view class="shebenchenum">2</view>
<view class="shebenchetext">活跃</view>
</view>
<view class="shebenche">
<view class="shebenchenum" style="color: red;">5</view>
<view class="shebenchetext">急需充电</view>
</view>
</view>
<view class="title">实时统计</view>
<view class="real-timebox">
<view class="timebox">
<view class="real">
<view class="realnum">44</view>
<view class="realtext">接待量</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">正在接待</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">接待客户</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">录音时长</view>
</view>
</view>
<view class="timebox">
<view class="real">
<view class="realnum">44</view>
<view class="realtext">未标顾问</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">平均得分</view>
</view>
<view class="real">
<!-- <view class="realnum" style="color: red;">44</view>
<view class="realtext">违禁提醒</view> -->
</view>
</view>
</view>
<view class="title">本周工作</view>
<view class="real-timebox">
<view class="timebox">
<view class="real">
<view class="realnum">44</view>
<view class="realtext">接待量</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">接待客户</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">录音时长</view>
</view>
</view>
<view class="timebox">
<view class="real">
<view class="realnum">44</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real">
<view class="realnum">44</view>
<view class="realtext">平均得分</view>
</view>
<view class="real">
<!-- <view class="realnum">44</view>
<view class="realtext">违禁预警</view> -->
</view>
</view>
</view>
<view class="title">常用功能</view>
<view class="commonly-box">
<view class="commonly" @click="Piabodata()">
<view class="commonly-img">
<image class="commonly-img1" src="../../static/images/building.png" mode=""></image>
</view>
<view class="commonly-text">销讲数据</view>
</view>
<view class="commonly">
<view class="commonly-img">
<image class="commonly-img1" src="../../static/images/building.png" mode=""></image>
</view>
<view class="commonly-text">客户管理</view>
</view>
<view class="commonly">
<view class="commonly-img">
<image class="commonly-img1" src="../../static/images/building.png" mode=""></image>
</view>
<view class="commonly-text">客户管理</view>
</view>
<view class="commonly">
<view class="commonly-img">
<image class="commonly-img1" src="../../static/images/building.png" mode=""></image>
</view>
<view class="commonly-text">客户管理</view>
</view>
<view class="commonly">
<view class="commonly-img">
<image class="commonly-img1" src="../../static/images/building.png" mode=""></image>
</view>
<view class="commonly-text">客户管理</view>
</view>
<view class="commonly">
<view class="commonly-img">
<image class="commonly-img1" src="../../static/images/building.png" mode=""></image>
</view>
<view class="commonly-text">客户管理</view>
</view>
<view class="commonly">
<view class="commonly-img">
<image class="commonly-img1" src="../../static/images/building.png" mode=""></image>
</view>
<view class="commonly-text">客户管理</view>
</view>
</view>
<!-- 楼盘切换 -->
<view v-if="Showhiddenunits">
<u-select :mask-close-able="false" v-model="Showhiddenunits" mode="single-column" :list="lpanlist" @cancel="cancel" @confirm="confirm"></u-select>
</view>
</view>
</template>

<script>
export default {
data() {
return {};
return {
userInfo:{},
Showhiddenunits:false,
lpanlist:[],
buildingname:'',
buildingID:'',
buildingishow:false
};
},
components: {},
onLoad() {},
onShow() {},
onShow() {
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
if(this.userInfo.zkProperties.length==1){
this.buildingID=uni.getStorageSync('buildingID').id;
this.buildingname=uni.getStorageSync('buildingID').name;
this.buildingishow=false;
}else{
this.buildingishow=true;
this.buildingname=uni.getStorageSync('buildingID').name;
this.buildingID=uni.getStorageSync('buildingID').id;
this.userInfo.zkProperties.forEach(item=>{
item.label=item.propertyName;
item.value=item.id
})
this.lpanlist=this.userInfo.zkProperties
}
},
methods: {
//选择楼盘弹框
piskbuilding(){
this.Showhiddenunits=true;
},
// 楼盘选择确认
confirm(e) {
this.buildingname=e[0].label;
this.buildingID=e[0].value;
let lopan={
id:e[0].value,
name:e[0].label
}
uni.setStorageSync("buildingID", lopan); //楼盘id写入缓存
},
// 楼盘选择取消
cancel(){
this.Showhiddenunits=false;
},
//销讲数据
Piabodata(){
uni.navigateTo({
url: '/pages/center/Piabodata/index'
});
}
},
};
</script>

<style lang="scss" scoped>
.cented-box{
padding: 30rpx;
background: #F8F8F8;
width: 100%;
height: 100%;
}
.Switchingbox{
width: 100%;
height: 44rpx;
display: flex;
align-items: center;
.Switching1{
width: 44rpx;
height: 44rpx;
.Switching1-img{
width: 44rpx;
height: 44rpx;
}
}
.Switching2{
margin-left: 12rpx;
font-size: 32rpx;
color: #303030;
font-weight: 500;
}
.Switching3{
width: calc(100% - 280rpx);
font-size: 32rpx;
color: #303030;
font-weight: 500;
}
.Switching4{
width: 112rpx;
font-size: 28rpx;
color: #303030;
font-weight: 400;
text-align: right;
text-decoration:underline
}
}
.Workcard{
width: 100%;
background: #FFFFFF;
height: 154rpx;
box-shadow: 0px 0px 12px 0px rgba(224, 224, 224, 0.3);
border-radius: 12rpx;
display: flex;
.Workcard-box{
flex: 1;
height: 100%;
.Workcardimg{
width: 100%;
text-align: center;
margin-top: 42rpx;
.Workcardimg1{
width: 46rpx;
height: 28rpx;
}
.Workcardimg3{
width: 28rpx;
height: 32rpx;
}
}
.Workcardtext{
width: 100%;
text-align: center;
font-size: 24rpx;
font-weight: 400;
color: #666666;
margin-top: 20rpx;
}
}
}
.title{
width: 100%;
height: 30rpx;
font-size: 30rpx;
font-weight: 600;
color: #333333;
margin-top: 40rpx;
margin-bottom: 24rpx;
}
.shebenbox{
width: 100%;
height: 156rpx;
background: #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(224, 224, 224, 0.3);
border-radius: 12rpx;
display: flex;
.shebenche{
width: 25%;
height: 100%;
.shebenchenum{
width: 100%;
font-size: 36rpx;
font-weight: 600;
color: #333333;
text-align: center;
margin-top: 36rpx;
}
.shebenchetext{
width: 100%;
font-size: 24rpx;
font-weight: 400;
color: #666666;
text-align: center;
margin-top: 24rpx;
}
}
}
.real-timebox{
width: 100%;
background: #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(224, 224, 224, 0.3);
border-radius: 12rpx;
padding-bottom: 36rpx;
.timebox{
width: 100%;
display: flex;
.real{
flex: 1;
height: 100%;
.realnum{
width: 100%;
font-size: 36rpx;
font-weight: 600;
color: #333333;
text-align: center;
margin-top: 36rpx;
}
.realtext{
width: 100%;
font-size: 24rpx;
font-weight: 400;
color: #666666;
text-align: center;
margin-top: 24rpx;
}
}
}

}
.commonly-box{
width: 100%;
background: #FFFFFF;
box-shadow: 0px 0px 12px 0px rgba(224, 224, 224, 0.3);
border-radius: 12rpx;
display: flex;
flex-wrap: wrap;
padding-bottom: 36rpx;
.commonly{
width: 25%;
margin-top: 36rpx;
.commonly-img{
width: 100%;
height: 68rpx;
text-align: center;
.commonly-img1{
width: 68rpx;
height: 68rpx;
border-radius: 50%;
}
}
.commonly-text{
width: 100%;
text-align: center;
font-size: 24rpx;
font-weight: 400;
color: #333333;
margin-top: 16rpx;
}
}
}
</style>

+ 190
- 3
pages/index/learning.vue View File

@@ -1,6 +1,64 @@
<template>
<view>
学习
<view class="cented-box">
<view class="search-box">
<view class="search">
<view class="search-img">
<image class="search-img1" src="../../static/images/search.png" mode=""></image>
</view>
<view class="search-text">输入话术关键字</view>
</view>
</view>
<view class="caseid-box">
<view class="caseid">
<image class="caseid-img1" src="../../static/images/good.png" mode=""></image>
<view class="caseid-text">优秀案例</view>
</view>
<view class="caseid">
<image class="caseid-img1" src="../../static/images/problem.png" mode=""></image>
<view class="caseid-text">问题库</view>
</view>
<view class="caseid">
<image class="caseid-img1" src="../../static/images/reverse.png" mode=""></image>
<view class="caseid-text">反面案例</view>
</view>
</view>
<view class="Pinspeak">销讲话术</view>
<view class="chented">
<view class="title">
<view class="title1"></view>
<view class="titletext">逼单话术</view>
<view class="titleimg">
<image class="titleimg1" src="../../static/images/arrow.png" mode=""></image>
</view>
</view>
</view>
<view class="chented">
<view class="title" style="border: none;">
<view class="title1"></view>
<view class="titletext">品牌介绍</view>
</view>
<view class="chented-for">
<view class="chented-che">2021销售额</view>
<view class="chented-che">2021销售额</view>
<view class="chented-che">2021销售额</view>
<view class="chented-che">2021销售额</view>
</view>
</view>
<view class="chented">
<view class="title" style="border: none;">
<view class="title1"></view>
<view class="titletext">品牌介绍</view>
</view>
<view class="chented-for">
<view class="chented-che">2021销售额</view>
<view class="chented-che">2021销售额</view>
<view class="chented-che">2021销售额</view>
<view class="chented-che">2021销售额</view>
</view>
</view>
</view>
</template>

@@ -20,5 +78,134 @@
</script>

<style lang="scss" scoped>

.cented-box{
background: #F8F8F8;
width: 100%;
height: 100%;
}
.search-box{
width: 100%;
height: 102rpx;
background: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;
.search{
width: 690rpx;
height: 70rpx;
display: flex;
align-items: center;
background: #F8F8F8;
border-radius: 33rpx;
.search-img{
width: 26rpx;
height: 30rpx;
margin-left: 20rpx;
.search-img1{
width: 100%;
height: 100%;
margin-top: 2rpx;
}
}
.search-text{
font-size: 28rpx;
font-weight: 400;
color: #999999;
margin-left:10rpx;
}
}
}
.caseid-box{
width: 100%;
height: 204rpx;
margin-top: 10rpx;
background: #FFFFFF;
display: flex;
.caseid{
flex: 1;
height: 100%;
text-align: center;
margin-top: 13rpx;
.caseid-img1{
width: 134rpx;
height: 134rpx;
}
.caseid-text{
width: 100%;
text-align: center;
font-size: 24rpx;
font-weight: 400;
color: #333333;
}
}
}
.Pinspeak{
width: 100%;
height: 92rpx;
border-bottom: 1rpx solid #E0E0E0;
font-size: 32rpx;
font-weight: 600;
color: #333333;
text-indent: 30rpx;
line-height: 92rpx;
background: #FFFFFF;
margin-top: 20rpx;
}
.chented{
width: 100%;
padding-left: 30rpx;
padding-right: 30rpx;
background-color: #FFFFFF;
.title{
width: 100%;
height: 90rpx;
border-bottom: 1rpx solid #E0E0E0;
display: flex;
align-items: center;
.title1{
width: 6rpx;
height: 30rpx;
background: #2671E2;
}
.titletext{
width: 90%;
height: 30rpx;
font-size: 30rpx;
font-weight: 600;
color: #333333;
line-height: 30rpx;
text-indent: 10rpx;
}
.titleimg{
width: 8%;
text-align: right;
.titleimg1{
width: 14rpx;
height: 30rpx;
}
}
}
.chented-for{
width: 100%;
display: flex;
flex-wrap: wrap;
margin-top: -20rpx;
border-bottom: 1rpx solid #E0E0E0;
padding-bottom: 30rpx;
.chented-che{
width: 210rpx;
height: 60rpx;
background: #FFFFFF;
border-radius: 4rpx;
border: 1px solid #C9C9C9;
text-align: center;
line-height: 60rpx;
font-size: 30rpx;
font-weight: 400;
color: #333333;
margin-right: 20rpx;
margin-top: 20rpx;
}
}
}
</style>

+ 187
- 142
pages/index/personal.vue View File

@@ -1,152 +1,197 @@
<template>
<view class="main">
<view class="backTop"></view>
<!-- 头部开始 -->
<view class="header box">
<u-avatar :src="photo?photo:'https://qufang.oss-cn-beijing.aliyuncs.com/upload/icon/xcx/jjycrm/my/headPicture.png'"
size="174"></u-avatar>
<view class="userName">{{name}}</view>
<view class="mobile">{{mobile}}</view>
</view>
<view class="settingGroup box">
<view class="line">
<view class="title">
<image src="/static/images/password.png" style="width: 40rpx;height: 40rpx;" mode=""></image>
修改密码
</view>
<view class="right">
<image src="/static/images/arrow.png" style="width: 30rpx;height: 30rpx;" mode=""></image>
</view>
</view>
<navigator class="line" url="/pages/my/set/index">
<view class="title">
<image src="/static/images/setting.png" style="width: 44rpx;height: 42rpx;" mode=""></image>
我的设置
</view>
<view class="right">
<image src="/static/images/arrow.png" style="width: 30rpx;height: 30rpx;" mode=""></image>
</view>
</navigator>
<view class="line" @click="phone">
<view class="title">
<image src="/static/images/Customer.png" style="width: 48rpx;height: 46rpx;" mode=""></image>
客服电话
</view>
<view class="right">
<image src="/static/images/arrow.png" style="width: 30rpx;height: 30rpx;" mode=""></image>
</view>
</view>
<view class="line" @click="logout" style="border: none;">
<view class="title">
<image src="/static/images/exit.png" style="width: 46rpx;height: 46rpx;" mode=""></image>
退出登录
</view>
</view>
</view>
</view>
<view class="main">

<view class="backTop"></view>
<!-- 头部开始 -->
<view class="header box">
<view class="header-zuo">
<u-avatar
:src="photo?photo:'https://qufang.oss-cn-beijing.aliyuncs.com/upload/icon/xcx/jjycrm/my/headPicture.png'"
size="148"></u-avatar>
</view>
<view class="header-you">
<view class="userName">{{name}}</view>
<view class="mobile">{{mobile}}</view>
</view>
</view>
<view class="settingGroup box">
<navigator class="line" url="/pages/mine/Myprofile">
<view class="title">
<image src="/static/images/setting.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>
<view class="line" @click="phone">
<view class="title">
<image src="/static/images/Customer.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>
</view>
<view class="line" @click="Changehepassword">
<view class="title">
<image src="/static/images/password.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>
</view>
<view class="line" @click="logout" style="border: none;">
<view class="title">
<image src="/static/images/exit.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>
</view>

</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../utils/util.js");
var config = require("../../config");
var app = getApp();
var util = require("../../utils/util.js");
var config = require("../../config");

export default {
data() {
return {
name: "",
photo: "",
mobile: "",
};
},
onShow: function() {
var userInfos = uni.getStorageSync('weapp_session_userInfo_data');
this.name = userInfos.name,
this.photo = userInfos.picUrl,
this.mobile = userInfos.loginName
},
methods: {
//拨打电话
phone() {
wx.makePhoneCall({
phoneNumber: '4008191707,8888' //仅为示例,并非真实的电话号码
})
},
//修改密码
Changehepassword() {
uni.navigateTo({
url: '/pages/mine/Changehepassword'
});
},
//退出
logout() {
uni.showModal({
title: '提示',
content: '确定要退出?',
cancelColor: "#999999",
showCancel: true,
success(res) {
if (res.confirm) {
uni.clearStorageSync(); //清除缓存
uni.showToast({
icon: "none",
title: "退出成功"
})
uni.reLaunch({
url: '/pages/login/index'
});
}
}
});
}

export default {
data() {
return {
name: "",
photo: "",
mobile: "",
ishowAS:true,
};
},
onShow: function() {
},
methods: {
//拨打电话
phone() {
wx.makePhoneCall({
phoneNumber: '4008191707,8888' //仅为示例,并非真实的电话号码
})
},
logout() {
}
}
};
}
};
</script>
<style lang="scss" scoped>
.main {
padding: 0 30rpx;
background: #F8F8F8;
display: flex;
flex-direction: column;
min-height: 100vh;
padding-bottom: 40rpx;
.backTop {
background: #2671E2;
position: absolute;
left: 0;
top: 0;
width: 750rpx;
height: 352rpx;
}
.main {
padding: 0 30rpx;
background: #F8F8F8;
display: flex;
flex-direction: column;
min-height: 100vh;
padding-bottom: 40rpx;

.backTop {
background: #2671E2;
position: absolute;
left: 0;
top: 0;
width: 750rpx;
height: 171rpx;
}

.box {
background: #ffffff;
}
}

.header {
z-index: 2;
width: 100%;
height: 212rpx;
border-radius: 25rpx;
margin-top: 42rpx;
display: flex;

.header-zuo {
width: 148rpx;
height: 148rpx;
margin-top: 32rpx;
margin-left: 30rpx;
}

.header-you {
margin-left: 20rpx;

.userName {
font-size: 36rpx;
font-weight: 500;
color: #303030;
margin-top: 56rpx;
}

.mobile {
font-size: 30rpx;
color: #BDBDBD;
margin-top: 20rpx;
}
}
}

.settingGroup {
box-shadow: 0px 0px 12px 0px rgba(224, 224, 224, 0.3);
border-radius: 12rpx;
margin-top: 30rpx;
color: #333333;
font-size: 30rpx;
display: flex;
flex-direction: column;

.box {
background: #ffffff;
}
}
.line {
height: 118rpx;
border-bottom: 1rpx solid #EEEEEE;
margin: 0 38rpx 0 30rpx;
display: flex;
align-items: center;
justify-content: space-between;

.header {
z-index: 2;
border-radius: 25upx;
margin-top: 120upx;
display: flex;
flex-direction: column;
align-items: center;
padding: 30upx 0;
.userName{
font-size: 36upx;
font-weight: 500;
color: #303030;
margin-top: 20upx;
line-height: 50upx;
}
.mobile{
font-size: 30upx;
line-height: 42upx;
color: #BDBDBD;
margin-top: 6upx;
}
}
.settingGroup{
margin-top: 30upx;
color: #303030;
font-size: 30upx;
display: flex;
flex-direction: column;
.line{
height: 118upx;
border-bottom: 1upx solid #EEEEEE;
margin: 0 38upx 0 30upx;
display: flex;
align-items: center;
justify-content: space-between;
.title{
display: flex;
align-items: center;
width: 190upx;
justify-content: space-between;
}
}
}
.title {
display: flex;
align-items: center;
width: 190rpx;
justify-content: space-between;
}
}
}
</style>

+ 24
- 2
pages/login/Setthepassword.vue View File

@@ -18,6 +18,7 @@
var util = require("../../utils/util.js");
var config = require("../../config");
var app = getApp();
var WXB_SESSION_LOGIN_DATA = 'weapp_session_login_data';
export default {
data() {
return {
@@ -34,9 +35,30 @@
util.showNone("密码小于6位,请重试");
return false;
} else {
uni.reLaunch({
url: '/pages/login/index',
var loginParams = {
name: this.phone, //手机号
newPassword: this.username, //密码
}
uni.request({
url: config.service.forgotPassword,
header: {
'content-type': 'application/json'
},
data: loginParams,
method: "POST",
success: function(result) {
if (result.data.code == 10000) {
uni.reLaunch({
url: '/pages/login/index',
})
} else {
util.showNone(result.data.message);
return false;
}
}
})
}
}
}


+ 30
- 13
pages/login/Verification.vue View File

@@ -51,19 +51,36 @@
this.username='';
return false;
} else {
if(this.role==1){
uni.navigateTo({
url: '/pages/login/yinzhongmalogin?username=' + this.username +
'&role=' + this.role,
})
}else{
console.log(this.role)
uni.navigateTo({
url: '/pages/login/Verifythelogin?username=' + this.username +
'&role=' + this.role,
})
}
uni.request({
url: config.service.sendCode + "?mobile=" + this.username,
method: "GET",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
console.log(data)
// 成功地响应会话信息
if (data.data.code == 10000) {
util.showSuccess('发送成功');
if(this.role==1){
uni.navigateTo({
url: '/pages/login/yinzhongmalogin?username=' + this.username +
'&role=' + this.role,
})
}else{
uni.navigateTo({
url: '/pages/login/Verifythelogin?username=' + this.username +
'&role=' + this.role,
})
}
// 没有正确响应会话信息
} else {
util.showNone(data.data.message);
return false;
}
},
})
}
},
}


+ 65
- 8
pages/login/index.vue View File

@@ -40,12 +40,13 @@
var util = require("../../utils/util.js");
var config = require("../../config");
var app = getApp();
var WXB_SESSION_LOGIN_DATA = 'weapp_session_login_data';
export default {
data() {
return {
username: '18655732363',
username: '',
//获取到的用户名的值
password: '123456',
password: '',
//获取到的密码栏中的值
passwordType: true,
agreeChecked: true
@@ -53,9 +54,6 @@
},
onLoad: function(options) {
uni.hideToast();
},
onShow: function() {
},
methods: {
//验证码登录
@@ -77,6 +75,7 @@
//登录
bindWxBLogin: function(e) {
util.showBusy('正在登录...');
var that = this;
if (this.username == '') {
util.showNone("请输入账号名");
return false;
@@ -85,11 +84,69 @@
util.showNone("请输入密码");
return false;
}
uni.switchTab({
url: '/pages/index/index'
var loginParams = {
loginName: this.username,
password: this.password
};
// 请求服务器登录地址,获得会话信息
uni.request({
url: config.service.login,
header: {
'content-type': 'application/json'
},
method: "POST",
data: loginParams,
success: function(result) {
var data = result.data; //console.log("登陆信息", data);
if (data && data.code == 10000) {
var res = data.data;
if (res) {
var data = {
'token': res
};
uni.setStorageSync(WXB_SESSION_LOGIN_DATA, data); //写入缓存
that.getUser();
util.showSuccess('登录成功');
} else {
util.showNone("账号名或密码错误,请重试");
return false;
}
// 没有正确响应会话信息
} else {
util.showNone(data.message);
return false;
}
},
// 响应错误
fail: function(loginResponseError) {
util.showNone("网络异常,请重试");
return false;
}
});
},
getUser(){
util.getRequestPromise(config.service.getUser, {}, false, "GET").then(data => {
if (data.zkProperties) {
} else {
data.zkProperties = [{
id: "",
propertyName: ''
}]
}
let lopan = {
id: data.zkProperties[0].id,
name: data.zkProperties[0].propertyName
}
uni.setStorageSync("weapp_session_userInfo_data", data); //写入缓存
uni.setStorageSync("buildingID", lopan); //楼盘id写入缓存
uni.switchTab({
url: '/pages/index/index'
});
});
}
}
};
</script>


+ 76
- 14
pages/login/yinzhongmalogin.vue View File

@@ -25,6 +25,7 @@
var util = require("../../utils/util.js");
var config = require("../../config");
var app = getApp();
var WXB_SESSION_LOGIN_DATA = 'weapp_session_login_data';
export default {
data() {
return {
@@ -61,15 +62,33 @@
},
//获取验证码
getAuthCode() {
this.sendAuthCode = false;
this.auth_time = 60;
var auth_timetimer = setInterval(() => {
this.auth_time--;
if (this.auth_time <= 0) {
this.sendAuthCode = true;
clearInterval(auth_timetimer);
}
}, 1000);
uni.request({
url: config.service.sendCode + "?mobile=" + this.phonecet,
method: "GET",
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
console.log(data)
// 成功地响应会话信息
if (data.data.code == 10000) {
util.showSuccess('发送成功');
this.sendAuthCode = false;
this.auth_time = 60;
var auth_timetimer = setInterval(() => {
this.auth_time--;
if (this.auth_time <= 0) {
this.sendAuthCode = true;
clearInterval(auth_timetimer);
}
}, 1000);
} else {
util.showNone(data.data.message);
return false;
}
},
})
},
//登录
denglu() {
@@ -81,18 +100,61 @@
return
}
if (this.msg.length == 4) {
uni.switchTab({
url: '/pages/index/index'
});
let porme = {
loginName: this.phonecet,
password: this.msg
}
uni.request({
url: config.service.plogin,
method: "POST",
data: porme,
header: {
'content-type': 'application/json',
'Access-Token': uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
// 成功地响应会话信息
if (data.data.code == 10000) {
util.showSuccess('登录成功');
var token = {
'token': data.data.data
};
uni.setStorageSync(WXB_SESSION_LOGIN_DATA, token); //写入缓存
this.getUser()
} else {
util.showNone(data.data.message);
return false;
}
},
})
} else {
uni.showToast({
title: '验证码位数不正确',
icon: 'none'
});
}

},
getUser(){
util.getRequestPromise(config.service.getUser, {}, false, "GET").then(data => {
if (data.zkProperties) {
} else {
data.zkProperties = [{
id: "",
propertyName: ''
}]
}
let lopan = {
id: data.zkProperties[0].id,
name: data.zkProperties[0].propertyName
}
uni.setStorageSync("weapp_session_userInfo_data", data); //写入缓存
uni.setStorageSync("buildingID", lopan); //楼盘id写入缓存
uni.switchTab({
url: '/pages/index/index'
});
});
}
}
};
</script>


+ 142
- 0
pages/mine/Changehepassword.vue View File

@@ -0,0 +1,142 @@
<template>
<view style="background: #F8F8F8;width: 100%;height: 100vh;">
<view class="inpText" style="margin-top: 20rpx;">
<view class="inpTextBox">
<view class="inpTextLable">
<view class="inpTextName">原密码</view>
</view>
<input placeholder="请输入原密码" placeholder-class="inpTextBox" class="inpTextBox1" maxlength="12"
v-model="password" type="text"></input>
</view>
</view>
<view class="inpText">
<view class="inpTextBox">
<view class="inpTextLable">
<view class="inpTextName">新密码</view>
</view>
<input placeholder="请输入6-12位新密码" placeholder-class="inpTextBox" class="inpTextBox1" maxlength="12"
v-model="newPassword" type="password"></input>
</view>
</view>
<view class="inpText" >
<view class="inpTextBox" style="border: none;">
<view class="inpTextLable">
<view class="inpTextName">确认密码</view>
</view>
<input placeholder="请确认密码" placeholder-class="inpTextBox" class="inpTextBox1" maxlength="12"
v-model="queryPassword" type="password"></input>
</view>
</view>
<button class="save" @tap="savePassword">保存</button>
</view>
</template>

<script>
var app = getApp();
var util = require("../../utils/util.js");
var config = require("../../config");

export default {
data() {
return {
password: "",
newPassword: "",
queryPassword: ""
};
},
methods: {
// 修改密码
savePassword() {
if (this.newPassword == "" || this.queryPassword == "" || this.password == "") {
uni.showModal({
cancelColor: "#999999",
title: '提示',
content: '输入框不能为空',
showCancel: false
});
} else if (this.newPassword.length < 6) {
uni.showModal({
cancelColor: "#999999",
title: '提示',
content: '新密码不能小于6位',
showCancel: false
});

} else if (this.newPassword == this.queryPassword) {
var params = {
oldPassword: this.password,
newPassword: this.newPassword,
qPassword: this.queryPassword
};
util.getRequestPromise(config.service.updatePassword, params).then(data => {
uni.clearStorage();
uni.navigateTo({
url: '/pages/login/index'
});
});
} else {
uni.showModal({
title: '提示',
cancelColor: "#999999",
content: '两次密码不一致',
showCancel: false
});
}
}

}
};
</script>
<style>
.inpText {
width: 100%;
box-sizing: border-box;
padding: 0 20rpx;
background-color: #FFFFFF;
}

.inpTextBox {
color: #BBBFC8;
text-align: left;
border-bottom: 1px solid #EAF1FF;
display: -webkit-box;
display: -webkit-flex;
display: flex;
-webkit-box-align: center;
-webkit-align-items: center;
align-items: center;
height: 109rpx;
}

.inpTextLable {
width: 155rpx;
display: flex;
align-items: center;
}

.inpTextName {
color: #020F28;
font-size: 32rpx;
font-weight: bold;
}

.inpTextBox1 {
width: 410rpx;
font-size: 32rpx;
padding: 0 20rpx;
box-sizing: border-box;
color: #333;
}

.save {
width: 640rpx;
height: 87rpx;
text-align: center;
line-height: 87rpx;
color: #fff;
font-size: 32rpx;
background: #0A6EE9;
margin: 0 auto;
margin-top: 120rpx;
}
</style>

+ 169
- 0
pages/mine/Myprofile.vue View File

@@ -0,0 +1,169 @@
<template>
<view>
<view class="setBox">
<view class="setList" @tap="setHead" style="height: 140rpx;line-height: 120rpx;">
<text style="font-size: 30rpx;color: #333333;">头像</text>
<image src="/static/images/arrow.png" class="more">
</image>
<image
:src="picUrl||'https://qufang.oss-cn-beijing.aliyuncs.com/upload/icon/xcx/jjycrm/my/headPicture.png'"
class="headPicture"></image>
</view>
<view>
<navigator class="setList" :url="'/pages/mine/nickname?userName=' + name + '&imgSrc=' + imgSrc">
<text style="font-size: 30rpx;color: #333333;">昵称</text>
<image src="/static/images/arrow.png" class="more"></image>
<text class="userName">{{name||"暂无昵称"}}</text>
</navigator>
<navigator class="setList" url="/pages/mine/signature">
<text style="font-size: 30rpx;color: #333333;">签名</text>
<image src="/static/images/arrow.png" class="more"></image>
<text class="userName">{{personalProfile||"暂无签名"}}</text>
</navigator>
</view>
</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../utils/util.js");
var config = require("../../config");

export default {
data() {
return {
userInfo: {},
picUrl: "",
name: "",
personalProfile: ""
};
},
onShow: function() {
const userInfo = uni.getStorageSync("weapp_session_userInfo_data");
this.userInfo = userInfo;
this.picUrl = userInfo.picUrl;
this.name = userInfo.name;
this.personalProfile = userInfo.personalProfile;
},
methods: {
// 图片上传
setHead: function() {
var _this = this;

uni.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
// original 原图,compressed 压缩图,默认二者都有
sourceType: ['album', 'camera'],
// album 从相册选图,camera 使用相机,默认二者都有
success: function(res) {
// success
_this.imgSrc = res.tempFilePaths; //图片路径


_this.uploadimg();
},
fail: function() { // fail
},
complete: function() { // complete
}
});
},
//上传图片至服务器
uploadimg: function() {
var that = this; //获取本地用户信息
const tempFilePaths = that.imgSrc;
if (tempFilePaths.length < 1) {
util.showNone("请上传图片");
return false;
}
console.log(tempFilePaths);
uni.uploadFile({
url: config.service.uploadHeadImg,
header: {
"Access-Token": uni.getStorageSync('weapp_session_login_data').token
},
filePath: tempFilePaths[0],
name: 'file',
success(res) {
console.log(res);
const result = JSON.parse(res.data);
if (result.code == 10000) {
console.log(result.data);
that.picUrl = result.data;
that.userInfo.picUrl = result.data;
uni.setStorageSync("weapp_session_userInfo_data", that.userInfo);
util.showSuccess('修改成功');
} else {
util.showNone(result.message != '' ? result.message : '操作失败,请重新尝试');
return false;
}
},
fail(err) {
console.log(err);
}
});;
}
}
};
</script>
<style>
page {
width: 100%;
height: 100%;
background: #fff;
}

.setBox {
padding-top: 20rpx;
padding-left: 30rpx;
padding-right: 30rpx;
}

.setList {
width: 100%;
height: 100rpx;
background: #fff;
box-sizing: border-box;
line-height: 100rpx;
border-bottom: 2rpx solid #E0E0E0;
}

.headPicture {
border-radius: 50%;
width: 100rpx;
height: 100rpx;
float: right;
object-fit: cover;
-o-object-fit: cover;
border: 1rpx solid #ccc;
}

.userName {
float: right;
}

.more {
width: 18rpx;
height: 32rpx;
float: right;
margin-top: 32rpx;
margin-left: 20rpx;
}

.save {
width: 100%;
height: 87rpx;
text-align: center;
line-height: 87rpx;
color: #fff;
font-size: 32rpx;
background: #0A6EE9;
margin: 32rpx auto 36rpx;

}
</style>

+ 104
- 0
pages/mine/nickname.vue View File

@@ -0,0 +1,104 @@
<template>
<view class="bocx">
<view class="box-che">
<input class="box-input" v-model="name" placeholder-class="inpTextBox" type="text" placeholder="请输入" maxlength="5" />
</view>
<view class="nic">请输入昵称 (不超过5个字)</view>
<view class="cev" @tap="saveName">保存</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../utils/util.js");
var config = require("../../config");

export default {
data() {
return {
name: "",
};
},
onLoad: function(options) {
var userInfos = uni.getStorageSync('weapp_session_userInfo_data');
this.name=userInfos.name;
},
methods: {
// 保存昵称
saveName() {
//获取本地用户信息
var userInfos = uni.getStorageSync('weapp_session_userInfo_data');
if (this.name == "") {
uni.showModal({
title: '提示',
content: '昵称不能为空',
showCancel: false
});
} else {
util.getRequestPromise(config.service.upload, {
name: this.name
}).then(data => {
userInfos.name = this.name;
uni.setStorageSync('weapp_session_userInfo_data', userInfos); //写入缓存
uni.navigateBack({
delta: 1
});
});
}
}
}
};
</script>
<style>
.bocx{
width: 100%;
height: 100vh;
background-color: #F8F8F8;
}
.box-che{
width: 100%;
height: 102rpx;
background: #FFFFFF;
margin-top: 20rpx;
}
.box-input{
width: 90%;
height: 100%;
line-height: 102rpx;
border: none;
margin-left: 30rpx;
font-size: 30rpx;
color: #303030;
}
.nic{
font-size: 24rpx;
font-weight: 400;
color: #999999;
line-height: 24rpx;
margin-left: 30rpx;
margin-top: 20rpx;
}
.inpTextBox {
width: 90%;
height: 100%;
line-height: 102rpx;
border: none;
font-size: 30rpx;
color: #303030;
}
.cev{
width: 690rpx;
height: 88rpx;
background: #2671E2;
border-radius: 8rpx;
text-align: center;
line-height: 88rpx;
color: #FFFFFF;
font-size: 30rpx;
margin: 0 auto;
margin-top: 220rpx;
}
</style>

+ 158
- 0
pages/mine/reception/addreception.vue View File

@@ -0,0 +1,158 @@
<template>
<view class="cented-box">
<view class="Pinspeak">客户信息</view>
<view class="chented">
<view class="title">
<view class="titletext">客户姓名</view>
<view class="titletext2">
<input class="titletext-input" placeholder-class="titletext-input" type="text" placeholder="请输入客户姓名(必填)" />
</view>
<view class="titleimg">
<!-- <image class="titleimg1" src="../../../static/images/arrow.png" mode=""></image> -->
</view>
</view>
<view class="title">
<view class="titletext">客户性别</view>
<view class="titletext2">
</view>
</view>
<view class="title">
<view class="titletext">联系电话</view>
<view class="titletext2">
<input class="titletext-input" placeholder-class="titletext-input" type="text" placeholder="请输入联系电话" />
</view>
</view>
<view class="title">
<view class="titletext">接待人数</view>
<view class="titletext2">
</view>
</view>
<view class="title" style="border: none;">
<view class="titletext">客户来源</view>
<view class="titletext2">
</view>
<view class="titleimg">
<image class="titleimg1" src="../../../static/images/arrow.png" mode=""></image>
</view>
</view>
</view>
<view class="Pinspeak">顾问</view>
<view class="chented">
<view class="title" style="border: none;">
<view class="titletext">接待顾问</view>
<view class="titletext2">
请选择接待顾问
</view>
<view class="titleimg">
<image class="titleimg1" src="../../../static/images/arrow.png" mode=""></image>
</view>
</view>
</view>
<view class="clive">确定</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../../utils/util.js");
var config = require("../../../config");

export default {
data() {
return {
};
},
onShow: function() {

},
methods: {

}
};
</script>
<style lang="scss" scoped>
.cented-box{
background: #F8F8F8;
width: 100%;
height: 100vh;
}
.Pinspeak{
width: 100%;
height: 92rpx;
border-bottom: 1rpx solid #E0E0E0;
font-size: 32rpx;
font-weight: 500;
color: #333333;
text-indent: 30rpx;
line-height: 92rpx;
background: #FFFFFF;
margin-top: 20rpx;
}
.chented{
width: 100%;
padding-left: 30rpx;
padding-right: 30rpx;
background-color: #FFFFFF;
.title{
width: 100%;
height: 90rpx;
border-bottom: 1rpx solid #E0E0E0;
display: flex;
align-items: center;
.titletext{
width: 21%;
height: 90rpx;
font-size: 30rpx;
font-weight: 400;
color: #333333;
line-height: 90rpx;
text-indent: 10rpx;
}
.titletext2{
width: 71%;
height: 90rpx;
}
.titletext-input{
width: 100%;
height: 90rpx;
font-size: 30rpx;
font-weight: 400;
color: #B2B2B2;
line-height: 90rpx;
text-indent: 10rpx;
}
.titleimg{
width: 8%;
text-align: right;
.titleimg1{
width: 16rpx;
height: 36rpx;
}
}
}
}
.clive{
width: 690rpx;
height: 88rpx;
background: #2671E2;
text-align: center;
line-height: 88rpx;
color: #FFFFFF;
border-radius: 8rpx;
margin: 0 auto;
margin-top: 300rpx;
font-size: 32rpx;
}
</style>

+ 102
- 0
pages/mine/signature.vue View File

@@ -0,0 +1,102 @@
<template>
<view class="bocx">
<view class="box-che">
<input v-model="name" class="box-input" placeholder-class="inpTextBox" type="text" placeholder="请输入" maxlength="15" />
</view>
<view class="nic">请输入签名 (不超过15个字)</view>
<view class="cev" @click="saveName()">保存</view>
</view>
</template>

<script>
var app = getApp();
var util = require("../../utils/util.js");
var config = require("../../config");

export default {
data() {
return {
name: "",
};
},
onLoad: function(options) {
var userInfos = uni.getStorageSync('weapp_session_userInfo_data');
this.name=userInfos.personalProfile;
},
methods: {
saveName() {
var userInfos = uni.getStorageSync('weapp_session_userInfo_data');
if (this.name == "") {
uni.showModal({
title: '提示',
content: '签名不能为空',
showCancel: false
});
} else {
util.getRequestPromise(config.service.upload, {
personalProfile: this.name
}).then(data => {
userInfos.personalProfile = this.name;
uni.setStorageSync('weapp_session_userInfo_data', userInfos); //写入缓存
uni.navigateBack({
delta: 1
});
});
}
}
}
};
</script>
<style>
.bocx{
width: 100%;
height: 100vh;
background-color: #F8F8F8;
}
.box-che{
width: 100%;
height: 102rpx;
background: #FFFFFF;
margin-top: 20rpx;
}
.box-input{
width: 90%;
height: 100%;
line-height: 102rpx;
border: none;
margin-left: 30rpx;
font-size: 30rpx;
color: #303030;
}
.nic{
font-size: 24rpx;
font-weight: 400;
color: #999999;
line-height: 24rpx;
margin-left: 30rpx;
margin-top: 20rpx;
}
.inpTextBox {
width: 90%;
height: 100%;
line-height: 102rpx;
border: none;
font-size: 30rpx;
color: #303030;
}
.cev{
width: 690rpx;
height: 88rpx;
background: #2671E2;
border-radius: 8rpx;
text-align: center;
line-height: 88rpx;
color: #FFFFFF;
font-size: 30rpx;
margin: 0 auto;
margin-top: 220rpx;
}
</style>

BIN
static/images/Thtapedrive1.png View File

Before After
Width: 56  |  Height: 64  |  Size: 2.8 KiB

BIN
static/images/Thtapedrive2.png View File

Before After
Width: 60  |  Height: 64  |  Size: 2.9 KiB

BIN
static/images/add.png View File

Before After
Width: 156  |  Height: 156  |  Size: 1.4 KiB

BIN
static/images/battery.png View File

Before After
Width: 88  |  Height: 52  |  Size: 913 B

BIN
static/images/building.png View File

Before After
Width: 88  |  Height: 88  |  Size: 2.3 KiB

BIN
static/images/good.png View File

Before After
Width: 268  |  Height: 268  |  Size: 38 KiB

BIN
static/images/jituan.png View File

Before After
Width: 268  |  Height: 268  |  Size: 30 KiB

BIN
static/images/problem.png View File

Before After
Width: 268  |  Height: 268  |  Size: 35 KiB

BIN
static/images/qushi.png View File

Before After
Width: 268  |  Height: 268  |  Size: 34 KiB

BIN
static/images/reverse.png View File

Before After
Width: 268  |  Height: 268  |  Size: 31 KiB

BIN
static/images/righttochoose.png View File

Before After
Width: 36  |  Height: 48  |  Size: 1.1 KiB

BIN
static/images/search.png View File

Before After
Width: 52  |  Height: 60  |  Size: 2.2 KiB

BIN
static/images/signal0.png View File

Before After
Width: 82  |  Height: 60  |  Size: 541 B

BIN
static/images/signal1.png View File

Before After
Width: 82  |  Height: 60  |  Size: 672 B

BIN
static/images/signal2.png View File

Before After
Width: 82  |  Height: 60  |  Size: 699 B

BIN
static/images/signal3.png View File

Before After
Width: 82  |  Height: 60  |  Size: 702 B

BIN
static/images/signal4.png View File

Before After
Width: 82  |  Height: 60  |  Size: 656 B

BIN
static/images/signal5.png View File

Before After
Width: 82  |  Height: 60  |  Size: 562 B

BIN
static/images/tabBar/customer.png View File

Before After
Width: 86  |  Height: 82  |  Size: 2.0 KiB Width: 92  |  Height: 92  |  Size: 2.7 KiB

BIN
static/images/tabBar/customerActive.png View File

Before After
Width: 84  |  Height: 82  |  Size: 1.4 KiB Width: 92  |  Height: 92  |  Size: 2.9 KiB

BIN
static/images/tabBar/home.png View File

Before After
Width: 88  |  Height: 88  |  Size: 1.8 KiB Width: 88  |  Height: 88  |  Size: 1.5 KiB

BIN
static/images/tabBar/homeActive.png View File

Before After
Width: 80  |  Height: 80  |  Size: 1.2 KiB Width: 88  |  Height: 88  |  Size: 1.6 KiB

BIN
static/images/tabBar/user.png View File

Before After
Width: 88  |  Height: 84  |  Size: 2.0 KiB Width: 88  |  Height: 88  |  Size: 2.3 KiB

BIN
static/images/tabBar/userActive.png View File

Before After
Width: 88  |  Height: 84  |  Size: 1.7 KiB Width: 88  |  Height: 88  |  Size: 2.4 KiB

BIN
static/images/tabBar/voice.png View File

Before After
Width: 50  |  Height: 50  |  Size: 878 B Width: 88  |  Height: 88  |  Size: 2.2 KiB

BIN
static/images/tabBar/voiceActive.png View File

Before After
Width: 50  |  Height: 50  |  Size: 839 B Width: 88  |  Height: 88  |  Size: 2.3 KiB

BIN
static/images/tuandui.png View File

Before After
Width: 268  |  Height: 268  |  Size: 31 KiB

BIN
static/images/yinghu.png View File

Before After
Width: 268  |  Height: 268  |  Size: 33 KiB

BIN
static/images/yuangong.png View File

Before After
Width: 268  |  Height: 268  |  Size: 34 KiB

+ 26
- 21
uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js View File

@@ -268,7 +268,7 @@ module.exports = {
"line":{
"type": "line",
"canvasId": "",
"canvasId": "",
"canvas2d": true,
"background": "none",
"animation": true,
@@ -287,9 +287,9 @@ module.exports = {
],
"padding": [
15,
10,
0,
0,
4
15
],
"rotate": false,
"errorReload": true,
@@ -301,6 +301,7 @@ module.exports = {
"dataLabel": true,
"dataPointShape": true,
"dataPointShapeType": "solid",
"tapLegend": true,
"xAxis": {
"disabled": false,
"axisLine": true,
@@ -308,8 +309,8 @@ module.exports = {
"calibration": false,
"fontColor": "#666666",
"fontSize": 13,
"rotateLabel": true,
"itemCount": 3,
"rotateLabel": false,
"itemCount": 7,
"boundaryGap": "center",
"disableGrid": true,
"gridColor": "#CCCCCC",
@@ -319,20 +320,23 @@ module.exports = {
"scrollShow": true,
"scrollAlign": "left",
"scrollColor": "#A6A6A6",
"scrollBackgroundColor": "#EFEBEF"
"scrollBackgroundColor": "#EFEBEF",
"min": 0,
"max": 100,
"format": ""
},
"yAxis": {
"disabled": false,
"disableGrid": false,
"splitNumber": 5,
"gridType": "dash",
"dashLength": 2,
"gridColor": "#CCCCCC",
"padding": 10,
"showTitle": false,
"min":0,
"max":100,
"data": []
"disabled": false,
"disableGrid": false,
"splitNumber": 5,
"gridType": "dash",
"dashLength": 2,
"gridColor": "#CCCCCC",
"padding": 10,
"showTitle": false,
"min":0,
"max":100,
"data": []
},
"legend": {
"show": true,
@@ -351,7 +355,7 @@ module.exports = {
},
"extra": {
"line": {
"type": "straight",
"type": "curve",
"width": 2
},
"tooltip": {
@@ -638,9 +642,10 @@ module.exports = {
"dataLabel": true,
"dataPointShape": true,
"dataPointShapeType": "solid",
"tapLegend": true,
"legend": {
"show": false,
"position": "right",
"show": true,
"position": "bottom",
"float": "center",
"padding": 5,
"margin": 5,
@@ -662,7 +667,7 @@ module.exports = {
"opacity": 0.2,
"border": false,
"borderWidth": 2,
"max": 100
"max": 200
},
"tooltip": {
"showBox": true,


+ 2
- 2
utils/http.js View File

@@ -1,8 +1,8 @@
// const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站
const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站
// const baseUrl = 'http://192.168.31.163:8080/autoSR/api'; // 长龙
// const baseUrl = 'http://192.168.31.130:8080/autoSR/api'; // 佳豪
// const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏
const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式
// const baseUrl = 'https://hfju.com/api'; // 数智正式

const install = (Vue, vm) => {


||||||
x
 
000:0
Loading…
Cancel
Save