<template> <view class="content arc-content" > <statusNav returnColor="#c2c2c2" navBarTitle="客户详情"></statusNav> <container-subgroup-two> <view slot="content" style="margin: 0 -30rpx;"> <view class="details-nav"> <view class="li" @click="essentialInformation('listOne')"> <image class="icon" src="../../static/iocn/ty.png" mode=""></image> <view class="text">基本信息</view> </view> <view class="li" @click="essentialInformation('listTwo')"> <image class="icon" src="../../static/iocn/kh.png" mode=""></image> <view class="text">联系人</view> </view> <view class="li" @click="essentialInformation('listThree ')"> <image class="icon" src="../../static/iocn/xs.png" mode=""></image> <view class="text">项目列表</view> </view> </view> <view class="details-content listOne"> <view class="title"> <image class="img" src="../../static/iocn/dn.png" mode=""></image> <text class="text">基本信息</text> </view> <view class="text-content"> <view class="li clips1" v-for="(item,index) in dataArr" :key="index"> {{item.name}}:<text class="cor">{{item.value}}</text> </view> </view> </view> <view class="details-content listTwo"> <view class="title"> <image class="img" src="../../static/iocn/lxr.png" mode=""></image> <text class="text">联系人</text> </view> <view class="text-content"> <view class="li clips1" v-for="(item,index) in contactArr" :key="index"> {{item.name}}:<text class="cor">{{item.value}}</text> </view> </view> </view> <view class="project-list listThree"> <view class="title-content"> <view class="title"> <image class="icon" src="../../static/iocn/xmlb.png" mode=""></image> <view class="text" style="font-size: 28rpx;">项目列表</view> </view> <picker :value="currentyear" :range="yearArr" @change="bindTimeChange"> <view class="date disac" :style="{color: chooseyear ? '#000000' : '#999999',border: chooseyear ? '2rpx solid #000000' : '2rpx solid #999999'}"> {{chooseyear ? chooseyear+'年' : '选择年份'}} <i class="icon icon-zsj" style="font-size: 18rpx;"></i> <!-- <image class="icon flexs" src="../../static/iocn/sjx.png" mode=""></image> --> </view> </picker> </view> <view class="project-list-box"> <view class="project-list-content" v-for="(item,index) in projectList" :key="index"> <view class="li"> <view class="text">{{item.project_name}}</view> <view class="date">{{item.create_time}}</view> </view> </view> <view v-if="!projectList.length" class="disjcac fc" style="height: 120rpx;"> <pitera textStr="查询无果"></pitera> </view> </view> </view> <view class="contact-way" @click="copyWxFun()"> <view class="title"> 客户微信 </view> <image class="icon" src="../../static/iocn/wx.png" mode=""></image> </view> <view class="contact-way" @click="telFun()"> <view class="title"> 客户电话 </view> <image class="icon1" src="../../static/iocn/dh.png" mode=""></image> </view> </view> </container-subgroup-two> </view> </template> <script> import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue'; import statusNav from '../../components/status-nav.vue'; import {queryDetail} from '@/jsFile/public-api.js'; import pitera from '@/components/nothing/pitera.vue'; export default { components: { statusNav, containerSubgroupTwo, pitera }, data() { return { dataArr:[], //基本信息 contactArr:[], //联系人 clientId:'',//客户id yearArr:[],//年份 currentyear: '',//当前年份 chooseyear:'',//选中的年份 projectList:[],//项目列表 phone:'', //客户电话 wechart:'', //客户微信 } }, onLoad(op){ if(op.id!=undefined) { this.clientId = op.id; console.log(this.clientId); // 调用查询客户详情信息事件 this.queryDetailEv(); } let date = new Date(); this.currentyear = date.getFullYear(); for (let i = this.currentyear-10; i <= this.currentyear; i++) { this.yearArr.push(i); } // 调用项目列表查询 this.getProjectList(this.currentyear); }, methods: { // 查询客户详情信息 queryDetailEv(){ queryDetail({type_id:1,member_id:this.clientId}).then(res=>{ console.log(res,'客户详情信息') if(res.code) { res.data.basic_information.forEach(item=>{ let obj={ name:item.name, value:item.value } this.dataArr.push(obj) }) res.data.principal.forEach(item=>{ let obj={ name:item.name, value:item.value } this.contactArr.push(obj) }) this.wechart = res.data.wechat; this.phone = res.data.phone; } else { this.$toolAll.tools.showToast(res.msg); } }) }, // 选择年份 bindTimeChange(data) { let index = data.detail.value; this.chooseyear = this.yearArr[index]; // 调用项目列表查询 this.getProjectList(this.chooseyear); }, // 项目列表查询 getProjectList(year) { this.$requst.post('/universal/api.search/project_year',{year}).then(res=>{ if(res.code) { this.projectList = res.data; } }) }, essentialInformation(classText){ uni.createSelectorQuery().select('.'+classText).boundingClientRect(data=>{//目标位置的节点:类或者id uni.createSelectorQuery().select(".arc-content").boundingClientRect(res=>{//最外层盒子的节点:类或者id uni.pageScrollTo({ duration: 100,//过渡时间 scrollTop:data.top - res.top -uni.getSystemInfoSync().statusBarHeight-50,//到达距离顶部的top值 }) }).exec() }).exec(); }, // 复制微信 copyWxFun(){ if(this.wechart !== ''){ uni.setClipboardData({ data: this.wechart, success: function () {} }); }else{ this.$toolAll.tools.showToast('客户微信号为空'); } }, // 拨打电话 telFun(){ if(this.phone !== ''){ uni.makePhoneCall({ phoneNumber: this.phone }); }else{ this.$toolAll.tools.showToast('客户电话号为空'); } } } } </script> <style> .project-list-box { min-height: 120rpx; max-height: 520rpx; overflow: hidden; overflow-y: scroll; } .project-list-box::-webkit-scrollbar{ display: none; } .content { padding-right: 27rpx; padding-left: 27rpx; } .details-nav { display: flex; justify-content: space-between; padding: 23rpx 63rpx; background-color: #FFFFFF; } .details-nav .li .icon { width: 79rpx; height: 79rpx; } .details-nav .li { text-align: center; } .details-nav .li .text { font-size: 24rpx; color: #333333; } .details-content { margin-top: 20rpx; background-color: #FFFFFF; padding: 20rpx 18rpx; border-bottom: 2rpx solid #DFDFDF; border-radius: 0rpx 0rpx 10rpx 10rpx; } .details-content .title { display: flex; align-items: center; padding-bottom: 15rpx; border-bottom: 2rpx solid #E5E5E5; } .details-content .title .img { width: 27rpx; height: 26rpx; margin-right: 9rpx; } .details-content .title .text { font-size: 28rpx; color: #999999; } .text-content { display: flex; flex-wrap: wrap; } .text-content .li { width: 50%; font-size: 24rpx; color: #999999; margin-top: 22rpx; } .cor { color: #333333; } .cor1 { color: #FF4C4C; } .project-list { background-color: #FFFFFF; padding: 22rpx 18rpx; margin-top: 20rpx; } .project-list .title-content { display: flex; justify-content: space-between; padding-bottom: 16rpx; font-size: 24rpx; border-bottom: 2rpx solid #E5E5E5; color: #999999; } .project-list .title-content .title { display: flex; align-items: center; } .project-list .title-content .title .icon { width: 23rpx; height: 25rpx; margin-right: 10rpx; } .project-list .title-content .date { height: 40rpx; padding: 2rpx 10rpx; display: flex; justify-content: center; align-items: center; border-radius: 10rpx; font-size: 24rpx; display: flex; align-items: center; } .project-list .title-content .date .icon { /* width: 12rpx; height: 12rpx; */ margin-left: 5rpx; } .project-list-content .li { display: flex; justify-content: space-between; border-bottom: 2rpx solid #E5E5E5; padding: 18rpx; } .project-list-content .li .text { font-weight: bold; color: #4ca5ff; font-size: 24rpx } .project-list-content .li .date { color: #888888; font-size: 24rpx } .contact-way { display: flex; align-items: center; padding: 40rpx 20rpx 34rpx; color: #696666; justify-content: space-between; font-size: 28rpx; border-bottom: 2rpx solid #E5E5E5; } .contact-way .icon { width: 41rpx; height: 32rpx; } .contact-way .icon1 { width: 35rpx; height: 39rpx; } </style>