flying-monkey/pagesA/dataQuery/details.vue

367 lines
9.7 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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>