Browse Source

销售端添加客户

huangzhe 3 years ago
parent
commit
db41d79366

+ 3 - 0
src/components/page-component/app-area-picker/app-area-picker.vue

xqd
@@ -107,6 +107,9 @@ export default {
 			},
 			deep: true,
 			immediate: true
+		},
+		place(newData,old){
+			console.log('地址变化',newData)
 		}
 	},
 

+ 10 - 6
src/components/page-component/goods/app-goods-banner.vue

xqd xqd xqd xqd xqd
@@ -20,21 +20,21 @@
         >
             <!-- #ifndef MP-BAIDU || H5 -->
                 <swiper-item v-if="videoUrl && getVideo == 1 && sign !== 'lottery' && sign !== 'bargain' && sign !== 'community' && sign !== 'wholesale'">
-                    <view class="swiper-img" @click="routeJumpT" v-bind:style="{backgroundImage: 'url(' + picList[0].pic_url + ')'}">
+                    <view class="swiper-img" @click="routeJumpT" v-bind:style="{backgroundImage: 'url(' + rangeKey!='false'?picList[0][rangeKey]:picList[0] + ')'}">
                         <image class="video-play" src="https://shop.9026.com/web/statics/img/mall/static/video-play.png"></image>
                     </view>
                 </swiper-item>
             <!-- #endif-->
 
             <swiper-item v-for="(item, index) in picList" v-bind:key="index">
-                <view class="swiper-img" v-bind:style="{backgroundImage: 'url(' + item.pic_url + ')'}"
+                <view class="swiper-img" v-bind:style="{backgroundImage: `url(${rangeKey!='false'?item[rangeKey]:item})`}"
                       @click="clickImage(index)">
 
                     <!-- #ifndef MP-BAIDU || H5 -->
                     <app-video
                         v-if="index === 0 && videoUrl && getVideo == 0"
                         height="750rpx"
-                        v-bind:pic-url="item.pic_url"
+                        v-bind:pic-url="rangeKey!='false'?item[rangeKey]:item"
                         v-bind:url="videoUrl"
                         v-on:video-start="videoStart"
                         v-on:tap.native.stop="preventD"
@@ -42,7 +42,7 @@
                     <app-video
                         v-if="index === 0 && videoUrl && getVideo == 1 && (sign === 'lottery' || sign === 'bargain' || sign === 'community' || sign === 'wholesale')"
                         height="750rpx"
-                        v-bind:pic-url="item.pic_url"
+                        v-bind:pic-url="rangeKey!='false'?item[rangeKey]:item"
                         v-bind:url="videoUrl"
                         v-on:video-start="videoStart"
                         v-on:tap.native.stop="preventD"
@@ -53,7 +53,7 @@
                     <app-video
                         v-if="index === 0 && videoUrl"
                         height="750rpx"
-                        v-bind:pic-url="item.pic_url"
+                        v-bind:pic-url="rangeKey!='false'?item[rangeKey]:item"
                         v-bind:url="videoUrl"
                         v-on:video-start="videoStart"
                         v-on:tap.native.stop="preventD"
@@ -103,6 +103,10 @@
                     return []
                 }
             },
+			rangeKey:{  //传空字符串竟然为true,所以传false字符串替代''
+				type:String,
+				default:'pic_url'
+			},
             share: {
                 type: Number
             },
@@ -145,7 +149,7 @@
             clickImage(index) {
                 let urls = [];
                 this.picList.forEach(item => {
-                    urls.push(item.pic_url);
+                    urls.push(this.rangeKey!='false'?item[this.rangeKey]:item);
                 });
                 uni.previewImage({
                     current: index,

+ 2 - 1
src/pages.json

xqd
@@ -144,7 +144,8 @@
 					"path": "cusmter/list",
 					"style": {
 						"navigationBarTitleText": "已认证客户",
-						"enablePullDownRefresh": false
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff"
 					}
 
 				}, {

+ 9 - 3
src/pages/case/components/hxj-bd-info.vue

xqd xqd xqd
@@ -8,14 +8,14 @@
 					<view class="hxj-ynum">已售{{sales}}+</view>
 				</view>
 				<view class="main-left cross-center hjx-tc-999 hjx-ts-22">
-					<view style="margin-right: 31rpx;">A1 200m²</view>
+					<view style="margin-right: 31rpx;">{{house_layout}} {{measure}}</view>
 					<view class="hjx-text-decoration-line-through">{{originalPrice}}元</view>
 				</view>
 				<view class="hjx-tc-AE8445 hjx-ts-22 hjx-tw-500" style="margin:26rpx 0 22rpx ;">券后价</view>
 				<view class="hxj-price"><text class="rmb">¥</text>{{price}}<text class="dw">元</text></view>
 			</view>
 			<view class="main-between-y">
-				<view class="lq" @click="receive">领券</view>
+				<view class="main-center cross-center lq" @click="receive">领券<image src="../../../static/image/index/arrow-right-facet-white.png" mode=""></image></view>
 				<view class="cross-center se" v-if="isShowShare" @click="shareClick">
 					<image src="https://t17.9026.com/web/statics/image/index/share_y.png" mode=""></image>分享
 				</view>
@@ -61,6 +61,8 @@
 			},
 			goodsId: Number,
 			goods: Object,
+			house_layout:String,
+			measure:String,
 			isShowShare: {
 				type: Boolean,
 				default () {
@@ -208,9 +210,13 @@
 			font-size: 20rpx;
 			font-weight: 500;
 			color: #FFFFFF;
-			text-align: center;
 			line-height: 38rpx;
 			margin-top: 10rpx;
+			image{
+				width: 22rpx;
+				height: 22rpx;
+				margin-left: 7rpx;
+			}
 		}
 
 		.se {

+ 4 - 4
src/pages/case/projectInfo.vue

xqd xqd xqd
@@ -6,8 +6,8 @@
 				:hasHeight="false"></app-nav-bar>
 
 			<!--商品轮播图-->
-			<app-goods-banner :pic-list="goods.pic_url" :share="goods.share"
-				:video-url="goods.video_url" :goods_id="goodsId" :isCart="true"></app-goods-banner>
+			<app-goods-banner :pic-list="compositionList.banner_imgs" range-key="false"
+				 :goods_id="compositionList.id" :isCart="false"></app-goods-banner>
 			<!-- 套装内商品 -->
 			<view style="background-color: #fff;">
 				<view class="link ">
@@ -20,7 +20,7 @@
 				</view>
 				<hxj-scroll-list :itemWidth="'168rpx'" :itemHeight="'168rpx'" :list="list"></hxj-scroll-list>
 				<hxj-bd-info :theme="getTheme" :name="compositionList.name" :price="compositionList.price" :original-price="compositionList.price"
-					:sales="compositionList.sale_num+compositionList.virtual_sale_num" :goods-id="goodsId" :extra-quick-share="extra_quick_share"
+					:sales="Number(compositionList.sale_num)+Number(compositionList.virtual_sale_num)" :measure="compositionList.measure" :house_layout="compositionList.house_layout" :goods-id="goodsId" :extra-quick-share="extra_quick_share"
 					:app-share-pic="app_share_pic ? app_share_pic : goods.pic_url[0].pic_url"
 					:app-share-title="app_share_title ? app_share_title : name"
 					:poster-config="poster_config + `&goods_id=` + goodsId"
@@ -59,7 +59,7 @@
 
 			<!-- <bd-comments :goods-id="goodsId"></bd-comments> -->
 			<!--商品详情-->
-			<bd-detail :detail="detail"></bd-detail>
+			<bd-detail :detail="compositionList.details"></bd-detail>
 			<!--相关推荐-->
 			<!-- <app-goods-recommend :sureCart="true" :theme="getTheme" :goods-list="recommend_list"></app-goods-recommend> -->
 			<!--空格区域-->

+ 5 - 3
src/pages/index/binding/binding.vue

xqd xqd xqd
@@ -21,7 +21,7 @@
 		</view> -->
 		<view class="form-box">
 			<view class="title">楼盘信息</view>
-			<AppAreaPicker @customevent="areaEvent" :multiIndex="multiIndex" @cancel="areaCancel">
+			<AppAreaPicker @customevent="areaEvent" :ids="multiIndex" @cancel="areaCancel">
 				<view class="main-between cross-center item" style="padding-right: 8rpx;">
 					<view class="title_1">区域信息</view>
 					<view class="main-right cross-center">
@@ -83,7 +83,7 @@
 				name: '',
 				region: '',
 				regionId:{},
-				multiIndex:[2,3,5],
+				multiIndex:[],
 				nature: '',
 				sale: '',
 				
@@ -141,7 +141,9 @@
 					this.regionId.district_id = data.district.id;
 					this.region = [data.province.name, data.city.name, data.district.name].join('')
 					
-					this.selectBuild()
+					if(this.name===''){
+						this.selectBuild()
+					}
 				}
 			},
 			areaCancel(){

+ 2 - 4
src/pages/sale/components/app-my-income.vue

xqd xqd
@@ -3,8 +3,7 @@
 		<view class="item" @click="goPage('/pages/share/order/order')">
 			<view class="title">订单总额(万)</view>
 			<view class="main-between cross-center">
-				<!-- <view class="num">{{userInfo.salesperson_info.order_total_amount}}</view> -->
-				<view class="num">210</view>
+				<view class="num">{{userInfo.salesperson_info.order_total_amount}}</view>
 				<image style="width: 12rpx;height: 21rpx;" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png"
 					mode=""></image>
 			</view>
@@ -13,8 +12,7 @@
 		<view class="item">
 			<view class="title">我的提成(万)</view>
 			<view class="main-between cross-center">
-				<!-- <view class="num">{{userInfo.salesperson_info.order_total_commission}}</view> -->
-				<view class="num">45.3</view>
+				<view class="num">{{userInfo.salesperson_info.order_total_commission}}</view>
 				<image style="width: 12rpx;height: 21rpx;" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png"
 					mode=""></image>
 			</view>

+ 184 - 40
src/pages/sale/cusmter/addCustomer.vue

xqd xqd xqd xqd xqd
@@ -9,83 +9,149 @@
 				<view class="top">基本信息</view>
 				<view class="head" @click="uploadHead">
 					<image class="bg"
-						:src="avatar===''?'https://t17.9026.com/web/statics/image/index/headbg.png':avatar" mode="">
+						:src="form.avatar===''?'https://t17.9026.com/web/statics/image/index/headbg.png':form.avatar" mode="">
 					</image>
 					<image class="camera" src="https://t17.9026.com/web/statics/image/index/camera.png" mode=""></image>
 				</view>
 				<view class="main-left cross-center linp border_bottom">
 					<view class="field">姓名</view>
-					<input type="text" v-model="name" placeholder="请输入姓名" placeholder-style="font-size:28rpx" />
+					<input type="text" v-model="form.name" placeholder="请输入姓名" placeholder-style="font-size:28rpx" />
 				</view>
 				<view class="main-left cross-center linp border_bottom">
 					<view class="field">手机号</view>
-					<input type="text" v-model="mobile" placeholder="请输入手机号" placeholder-style="font-size:28rpx" />
+					<input type="text" v-model="form.mobile" placeholder="请输入手机号" placeholder-style="font-size:28rpx" />
 				</view>
 			</view>
 		</view>
-		<view class="oinfo">
-			<view class="main-between cross-center linp border_bottom">
-				<view class="field" style="font-weight: bold;">楼盘信息</view>
-				<view class="main-between" style="width: 210rpx;height: 100%;">
-					<view class="cross-center curd-btn">
+		<view class="oinfo" v-for="(item,index) in form.estates" :key="index">
+			<view class="main-between cross-center linp border_bottom" >
+				<view class="field" style="font-weight: bold;" >{{index===0?'楼盘信息':''}}</view>
+				<view class="main-right" style="width: 210rpx;height: 100%;">
+					<view class="cross-center curd-btn" @click="addOrDel()" v-if="index==form.estates.length-1">
 						<image src="../../../static/image/sale/tianjia.png" mode=""></image>添加
 					</view>
-					<view class="cross-center curd-btn">
+					<view class="cross-center curd-btn" @click="addOrDel(index)" style="margin-left: 30rpx;" v-if="form.estates.length>1">
 						<image src="../../../static/image/sale/shanchu.png" mode=""></image>删除
 					</view>
 				</view>
 			</view>
-			<picker mode="region" @change="bindPickerRegion">
+			<AppAreaPicker @customevent="areaEvent($event,index)" :ids="item.multiIndex" @cancel="areaCancel">
 				<view class="main-left cross-center linp border_bottom">
 					<view class="field">区域信息</view>
-					<input type="text" v-model="region" placeholder="请选择区域" placeholder-style="font-size:28rpx" />
+					<input type="text" :value="item.region" disabled placeholder="请选择区域" placeholder-style="font-size:28rpx" />
 				</view>
-			</picker>
-			<view class="main-left cross-center linp border_bottom" @click="selectEstate">
+			</AppAreaPicker>
+			<view class="main-left cross-center linp border_bottom" @click="selectEstate(index)">
 				<view class="field">楼盘名称</view>
-				<input type="text" value="" placeholder="请选择楼盘" placeholder-style="font-size:28rpx" />
+				<input type="text" :value="item.estate_name" disabled placeholder="请选择楼盘" placeholder-style="font-size:28rpx" />
 			</view>
-			<!-- 			<view class="main-left cross-center linp border_bottom">
+			<!-- <view class="main-left cross-center linp border_bottom">
 				<view class="field">楼盘性质</view>
 				<input type="text" value="" placeholder="请选择楼盘性质" placeholder-style="font-size:28rpx"/>
 			</view> -->
 			<view class="main-left cross-center linp border_bottom">
 				<view class="field">楼盘户号</view>
-				<input type="text" value="" placeholder="请输入楼盘户号" placeholder-style="font-size:28rpx" />
+				<view class="main-left cross-center in_in">
+					<input type="text" :value="item.estate_no" @input="estate_noInput($event,index)" placeholder="几栋" style="max-width: 120rpx;" placeholder-style="font-size:28rpx" />
+					<view class="line_c"></view>
+					<input type="text" :value="item.room_no" @input="room_noInput($event,index)" placeholder="几单元几楼几号" style="width: 250rpx;" placeholder-style="font-size:28rpx" />
+				</view>
 			</view>
-			<button type="default" class="complete">完成</button>
 		</view>
-		<button type="default" class="addlp">添加楼盘</button>
+		<button type="default" class="complete" @click="submit">完成</button>
 		<view style="height: 200rpx;"></view>
 	</view>
 </template>
 
 <script>
+	import AppAreaPicker from "@/components/page-component/app-area-picker/app-area-picker.vue"
 	import uploadFile from '@/core/upload.js';
 	export default {
+		components: {
+			AppAreaPicker
+		},
 		data() {
 			return {
-				avatar: '',
-				name: '',
-				mobile: '',
-
-				estateInfoList: [{
-					estate_id: '',
-					estate_no: '',
-					room_no: '',
-				}],
-
-				region: '',
+				formIndex:'',
+				form: {
+					sale_customer_id: '',
+					avatar: '',
+					mobile: '',
+					name: '',
+					estates: [{
+						estate_id: '',
+						estate_no: '',
+						room_no: '',
+						
+						regionId:{},
+						region:'',
+						multiIndex:[],
+						estate_name: '',
+					}]
+				}
 			};
 		},
+		onLoad(option) {
+			this.form.sale_customer_id=option.id
+			this.$request({
+				url:this.$api.sale.customer_detail,
+				data:{
+					sale_customer_id:option.id
+				},
+				method:'post'
+			}).then(res=>{
+				if(res.code===0){
+					this.info=res.data
+				}
+			})
+			wx.enableAlertBeforeUnload({
+				message:'还未保存',
+				success:()=>{
+					console.log('qqqqqqqqqqqqqq')
+				}
+			})
+		},
 		onShow() {
 			var pages = getCurrentPages();
 			var currPage = pages[pages.length - 1]; //当前页面
-			console.log(currPage.$vm.estateInfo)
+			'estateInfo' in currPage.$vm ? this.form.estates[this.formIndex].estate_name = currPage.$vm.estateInfo.name : ''
+			'estateInfo' in currPage.$vm ? this.form.estates[this.formIndex].estate_id = currPage.$vm.estateInfo.id : ''
+			'estateInfo' in currPage.$vm ? this.form.estates[this.formIndex].multiIndex = currPage.$vm.estateInfo.multiIndex : ''
 		},
 		methods: {
-			bindPickerRegion(e) {
-				this.region = e.target.value.join('')
+			addOrDel(i){
+				if(i===undefined){
+					this.form.estates.push({estate_id: '',estate_no: '',room_no: ''})
+				}else{
+					if(this.form.estates.length===1)return;
+					uni.showModal({
+					    title: '提示',
+					    content: '确定要删除吗',
+					    success: (res)=> {
+					        if (res.confirm) {
+					            this.form.estates.splice(i,1)
+					        } 
+					    }
+					});
+				}
+			},
+			areaEvent(data,index=this.formIndex) {
+				if (data) {
+					this.form.estates[index].regionId.province_id = data.province.id;
+					this.form.estates[index].regionId.city_id = data.city.id;
+					this.form.estates[index].regionId.district_id = data.district.id;
+					this.form.estates[index].region = [data.province.name, data.city.name, data.district.name].join('')
+				}
+			},
+			areaCancel(){
+				this.region=''
+				this.regionId={}
+			},
+			estate_noInput(e,index){
+				this.form.estates[index].estate_no=e.target.value
+			},
+			room_noInput(e,index){
+				this.form.estates[index].room_no=e.target.value
 			},
 			uploadHead() {
 				uni.chooseImage({
@@ -103,15 +169,81 @@
 						}).then(res1 => {
 							console.log(JSON.parse(res1.data))
 							if (JSON.parse(res1.data).code === 0) {
-								this.avatar = JSON.parse(res1.data).data.url
+								this.form.avatar = JSON.parse(res1.data).data.url
 							}
 						})
 					}
 				});
 			},
-			selectEstate() {
+			selectEstate(index) {
+				this.formIndex=index
 				uni.navigateTo({
-					url: '/pages/sale/properties/addProperties?type=addCustomer'
+					url: '/pages/sale/properties/addProperties'
+				})
+			},
+			submit(){
+				if(this.form.avatar===''){
+					uni.showToast({
+						title:'请上传头像',
+						icon:'none'
+					})
+					return
+				}
+				if(this.form.name===''){
+					uni.showToast({
+						title:'请输入客户姓名',
+						icon:'none'
+					})
+					return
+				}
+				if(this.form.mobile===''){
+					uni.showToast({
+						title:'请输入手机号',
+						icon:'none'
+					})
+					return
+				}
+				if(!(/0?(1)[0-9]{10}/.test(this.form.mobile))){
+					uni.showToast({
+						title:'请输入正确的手机号',
+						icon:'none'
+					})
+					return
+				}
+				for (let index = 0; index < this.form.estates.length; index++) {
+					let item=this.form.estates[index]
+					if(!item.estate_id || !item.estate_no || !item.room_no){
+						uni.showToast({
+							title:'请填写完整的楼盘信息',
+							icon:'none'
+						})
+						return
+					}
+				}
+				let data={
+					avatar:this.form.avatar,
+					mobile:this.form.mobile,
+					name:this.form.name,
+				}
+				for(let i in this.form.estates){
+					for (let j in this.form.estates[i]) {
+						if(j==='estate_id' || j==='estate_no' || j==='room_no'){
+							let key=`estates[${i}][${j}]`
+							data[key]=this.form.estates[i][j]
+						}
+					}
+					
+				}
+				this.$request({
+					url:this.$api.sale.customer_save,
+					data:data,
+					method:'post'
+				}).then(res=>{
+					if(res.code===0){
+						uni.showToast({
+							title:'添加成功',
+						})
+					}
 				})
 			}
 		}
@@ -146,14 +278,16 @@
 		height: auto;
 		background: #FEFEFE;
 		border-radius: 10rpx;
-		margin: 20rpx auto 39rpx;
+		margin: 20rpx auto 0;
 		padding-bottom: 20rpx;
-		.curd-btn{
-			image{
+
+		.curd-btn {
+			image {
 				width: 26rpx;
 				height: 26rpx;
 				margin-right: 6rpx;
 			}
+
 			font-size: 26rpx;
 			font-weight: 500;
 			color: #A18353;
@@ -163,7 +297,6 @@
 	.linp {
 		height: 104rpx;
 		padding: 0 35rpx;
-
 		.field {
 			width: 120rpx;
 			font-size: 28rpx;
@@ -171,8 +304,19 @@
 			color: #222222;
 			margin-right: 30rpx;
 		}
-
+		input{
+			font-size: 28rpx;
+		}
 		.val {}
+		.in_in{
+			.line_c{
+				width: 21rpx;
+				height: 3rpx;
+				font-weight: bold;
+				background-color: #494848;
+				margin-right: 10rpx;
+			}
+		}
 	}
 
 	.border_bottom {

+ 61 - 21
src/pages/sale/cusmter/info.vue

xqd xqd xqd xqd xqd xqd
@@ -1,32 +1,40 @@
 <template>
 	<view class="">
-		<view class="main-left info_card">
-			<image style="width: 91rpx;height: 91rpx;border-radius: 50%;margin-right: 25rpx;" src="https://t17.9026.com/web/statics/image/sale/1.png" mode=""></image>
-			<view class="main-between-y">
-				<view class="main-left name cross-center">周佳佳<image style="width: 21rpx;height: 29rpx;margin: 0 28rpx 0 7rpx;" src="https://t17.9026.com/web/statics/image/sale/sex0.png" mode=""></image>
-				<!-- <image style="width: 21rpx;height: 29rpx;margin: 0 28rpx 0 7rpx;" src="https://t17.9026.com/web/statics/image/sale/sex1.png" mode=""></image> -->
-					<image style="width: 96rpx;height: 31rpx;" src="https://t17.9026.com/web/statics/image/index/ysm.png" mode=""></image>
+		<view class="main-between info_card">
+			<view class="main-left">
+				<image style="width: 91rpx;height: 91rpx;border-radius: 50%;margin-right: 25rpx;" :src="info.avatar" mode=""></image>
+				<view class="main-between-y">
+					<view class="main-left name cross-center t-omit">{{info.name}}
+					<image style="width: 21rpx;height: 29rpx;margin: 0 28rpx 0 7rpx;" src="https://t17.9026.com/web/statics/image/sale/sex0.png" mode=""></image>
+					<!-- <image style="width: 21rpx;height: 29rpx;margin: 0 28rpx 0 7rpx;" src="https://t17.9026.com/web/statics/image/sale/sex1.png" mode=""></image> -->
+						<image style="width: 96rpx;height: 31rpx;" :src="info.is_verify==1?'https://t17.9026.com/web/statics/image/index/ysm.png':''" mode=""></image>
+					</view>
+					<view>{{info.mobile}}</view>
 				</view>
-				<view>15999999999</view>
 			</view>
+			<navigator :url="`/pages/sale/cusmter/addCustomer?id=${info.id}`" hover-class="none">
+			<view class="cross-center edit">
+				<image style="width: 27rpx;height: 26rpx;" src="../../../static/image/sale/edit.png" mode=""></image>编辑
+			</view>
+			</navigator>
 		</view>
 		<view class="lp_info">
 			<view class="title">楼盘信息</view>
 			<view class="main-between item">
-				<view class="left">区域信息</view>
-				<view class="right">成都市xx区</view>
+				<view class="left t-omit">区域信息</view>
+				<view class="right t-omit-two" >{{info.userEstate.estate.address}}</view>
 			</view>
 			<view class="main-between item">
-				<view class="left">楼盘名称</view>
-				<view  class="right">某楼盘</view>
+				<view class="left t-omit">楼盘名称</view>
+				<view  class="right t-omit-two">{{info.userEstate.estate.name}}</view>
 			</view>
 			<view class="main-between item">
-				<view class="left">楼盘性质</view>
-				<view  class="right">住宅用房</view>
+				<view class="left t-omit">楼盘性质</view>
+				<view  class="right t-omit">{{info.userEstate.estate.property==1?'住宅用房':'非住宅用房'}}</view>
 			</view>
 			<view class="main-between item">
-				<view class="left">户号</view>
-				<view class="right">22号楼-2201</view>
+				<view class="left t-omit">户号</view>
+				<view class="right t-omit-two">{{info.userEstate.estate_no}}{{info.userEstate.room_no}}</view>
 			</view>
 		</view>
 		<u-popup v-model="show" mode="center" border-radius="14" @close="show = false">
@@ -40,7 +48,7 @@
 			</view>
 		</u-popup>
 		<!-- <navigator url="" hover-class="navigator-hover"> -->
-			<button class="addPro" type="default" @click="show=true">客户楼盘信息认证</button>
+			<button class="addPro" v-if="info.is_verify!=1" type="default" @click="show=true">客户楼盘信息认证</button>
 		<!-- </navigator> -->
 	</view>
 </template>
@@ -53,9 +61,26 @@
 		},
 		data() {
 			return {
-				show:true
+				show:false,
+				
+				info:''
 			};
-		}
+		},
+		onLoad(option) {
+			this.$showLoading()
+			this.$request({
+				url:this.$api.sale.customer_detail,
+				data:{
+					sale_customer_id:option.id
+				},
+				method:'post'
+			}).then(res=>{
+				if(res.code===0){
+					this.info=res.data
+				}
+				this.$hideLoading()
+			})
+		},
 	}
 </script>
 
@@ -114,9 +139,10 @@
 		height: 167rpx;
 		background: #FFFFFF;
 		border-radius: 10rpx;
-		padding: 41rpx 38rpx;
+		padding: 33rpx 38rpx;
 		margin: 24rpx auto;
 		.name{
+			width: 360rpx;
 			font-size: 40rpx;
 			font-family: PingFang SC;
 			font-weight: bold;
@@ -128,6 +154,17 @@
 			font-weight: 500;
 			color: #222222;
 		}
+		.edit{
+			image{
+				width: 27rpx;
+				height: 26rpx;
+				margin-right: 13rpx;
+			}
+			font-size: 26rpx;
+			font-weight: 500;
+			color: #838584;
+			line-height: 70rpx;
+		}
 	}
 	.lp_info{
 		width: 678rpx;
@@ -143,15 +180,18 @@
 			color: #222222;
 		}
 		.item{
-			height: 90rpx;
-			line-height: 90rpx;
+			min-height: 45rpx;
+			line-height: 45rpx;
+			padding: 23rpx 0;
 			.left{
+				width: 170rpx;
 				font-size: 28rpx;
 				font-family: PingFang SC;
 				font-weight: 500;
 				color: #666666;
 			}
 			.right{
+				width: 460rpx;
 				font-size: 28rpx;
 				font-family: PingFang SC;
 				font-weight: 500;

+ 72 - 30
src/pages/sale/cusmter/list.vue

xqd xqd xqd xqd
@@ -1,21 +1,31 @@
 <template>
 	<view class="page">
 		<view class="search main-left cross-center">
-			<image style="margin-right: 15rpx;" src="https://t17.9026.com/web/statics/image/sale/search_icon.png" mode=""></image><input type="text" placeholder-class="search_plh_class" placeholder="客户名、楼盘名">
+			<image style="margin-right: 15rpx;" src="https://t17.9026.com/web/statics/image/sale/search_icon.png"
+				mode=""></image><input type="text" v-model="searchVal" @input="search" placeholder-class="search_plh_class" placeholder="客户名、楼盘名">
 		</view>
 		<view class="list">
-			<view class="main-between cross-center item" v-for="(item,index) in 5" @click="navCusmterInfo">
+			<view class="main-between cross-center item" v-for="(item,index) in dataList" :key="index"
+				@click="navCusmterInfo(item.id)">
 				<view class="main-left">
 					<view>
-						<image style="width: 94rpx;height: 94rpx;border-radius: 50%;margin-right: 26rpx;" src="https://t17.9026.com/web/statics/image/sale/1.png" mode=""></image>
+						<image style="width: 94rpx;height: 94rpx;border-radius: 50%;margin-right: 26rpx;"
+							:src="item.avatar" mode=""></image>
 					</view>
 					<view class="main-between-y ">
-						<view class="name cross-center">周先生<image style="width: 96rpx; height: 32rpx;margin-left: 10rpx;" src="https://t17.9026.com/web/statics/image/index/ysm.png" mode=""></image></view>
-						<view class="addr">世龙广场 2号楼-2202</view>
+						<view class="name cross-center">{{item.name}}
+							<image style="width: 96rpx; height: 32rpx;margin-left: 10rpx;"
+								:src="item.is_verify==1?'https://t17.9026.com/web/statics/image/index/ysm.png':''"
+								mode=""></image>
+						</view>
+						<view class="addr t-omit">{{item.estate.name}} {{item.estate.estate_no}}{{item.estate.room_no}}
+						</view>
 					</view>
 				</view>
-				<image style="width: 13rpx;height: 21rpx;" src="https://t17.9026.com/web/statics/image/sale/arrow_right.png" mode=""></image>
+				<image style="width: 13rpx;height: 21rpx;"
+					src="https://t17.9026.com/web/statics/image/sale/arrow_right.png" mode=""></image>
 			</view>
+			<app-no-goods v-if="dataList.length === 0" :title="'暂无数据'" background="#f7f7f7"></app-no-goods>
 		</view>
 		<navigator url="/pages/sale/cusmter/addCustomer" hover-class="navigator-hover">
 			<button class="addPro" type="default">添加客户</button>
@@ -24,29 +34,51 @@
 </template>
 
 <script>
+	import appNoGoods from '@/components/page-component/app-no-goods/app-no-goods.vue';
 	export default {
+		components:{
+			appNoGoods
+		},
 		data() {
 			return {
-				
+				searchVal:"",
+				dataList: [],
+				page:1,
 			};
 		},
 		onLoad() {
-			this.$request({
-				url: this.$api.sale.customer_list,
-				data: {
-					page: 1,
-					keyword: '1',
-					is_verify: '',
-				},
-				method: 'post'
-			}).then(res=>{
-				console.log(res)
-			})
+			this.getData()
+		},
+		onReachBottom() {
+			this.page++
+			this.getData()
 		},
-		methods:{
-			navCusmterInfo(){
+		methods: {
+			search(){
+				this.$utils.debounce(()=>{
+					this.page=1
+					this.getData()
+				},800)
+			},
+			getData(){
+				this.$showLoading()
+				this.$request({
+					url: this.$api.sale.customer_list,
+					data: {
+						page: this.page,
+						keyword: this.searchVal,
+					},
+					method: 'post'
+				}).then(res => {
+					if (res.code === 0) {
+						this.dataList = res.data.list
+					}
+					this.$hideLoading()
+				})
+			},
+			navCusmterInfo(id) {
 				uni.navigateTo({
-					url:'/pages/sale/cusmter/info'
+					url: `/pages/sale/cusmter/info?id=${id}`
 				})
 			}
 		}
@@ -54,45 +86,54 @@
 </script>
 
 <style lang="scss" scoped>
-	.page{
+	.page {
 		min-height: 100vh;
 		background-color: #fff;
+		padding-top: 20rpx;
 	}
-	.search{
+
+	.search {
 		width: 678rpx;
 		height: 77rpx;
 		background: #F8F8F8;
 		border-radius: 39rpx;
 		margin: auto;
 		padding: 0 43rpx;
-		input{
+
+		input {
 			width: 100%;
 		}
-		image{
+
+		image {
 			width: 24rpx;
 			height: 27rpx;
 		}
 	}
-	/deep/.search_plh_class{
+
+	/deep/.search_plh_class {
 		font-size: 28rpx;
 		font-family: PingFang SC;
 		font-weight: 500;
 		color: #999999;
 	}
-	.list{
-		.item{
+
+	.list {margin-top: 20rpx;
+		.item {
 			background-color: #fff;
 			height: 145rpx;
 			width: 678rpx;
 			margin: 0 auto;
 			border-bottom: 1rpx solid #EEEEEE;
-			.name{
+
+			.name {
 				font-size: 32rpx;
 				font-family: PingFang SC;
 				font-weight: bold;
 				color: #222222;
 			}
-			.addr{
+
+			.addr {
+				width: 490rpx;
 				font-size: 24rpx;
 				font-family: PingFang SC;
 				font-weight: 500;
@@ -100,6 +141,7 @@
 			}
 		}
 	}
+
 	.addPro {
 		position: fixed;
 		bottom: 0;

+ 6 - 6
src/pages/sale/properties/addProperties.vue

xqd xqd xqd xqd xqd
@@ -1,5 +1,5 @@
 <template>
-	<view>
+	<view style="padding-top: 20rpx;">
 		<view class="main-left cross-center search">
 			<image src="https://t17.9026.com/web/statics/image/index/search.png" mode=""></image>
 			<input style="width: 560rpx;" type="text" v-model="name" placeholder="搜索楼盘"
@@ -65,7 +65,7 @@
 		onLoad(option) {
 			'regionId' in option?this.regionId=JSON.parse(option.regionId):''
 			'type' in option?this.type=option.type:''
-			this.getDate(1)
+			this.getData(1)
 		},
 		methods:{
 			selectEstate(index,name,id,item){
@@ -73,7 +73,7 @@
 					let pages = getCurrentPages();
 					let currPage = pages[pages.length - 1]; //当前页面
 					let prevPage = pages[pages.length - 2]; //上一个页面
-					let multiIndex=[item.province_id,item.city_id,item.area_id]
+					let multiIndex=[item.province_id,item.city_id,item.district_id]
 					prevPage.$vm.estateInfo={id:id,name:name,multiIndex:multiIndex}
 					// uni.navigateBack()
 					// return
@@ -105,10 +105,10 @@
 			},
 			search(e){
 				this.$utils.debounce(()=>{
-					this.getDate(1)
+					this.getData(1)
 				},800)
 			},
-			getDate(page){
+			getData(page){
 				this.$request({
 					url: this.$api.sale.estate_list,
 					data: {
@@ -127,7 +127,7 @@
 		},
 		onReachBottom() {
 			this.page++
-			this.getDate(this.page)
+			this.getData(this.page)
 		}
 	}
 </script>

+ 7 - 2
src/plugins/composition/components/app-bd-info/app-bd-info.vue

xqd xqd
@@ -23,8 +23,8 @@
 				</view>
 			</view>
 			<view class="cross-bottom">
-				<view class="receive" @click="receive">
-					领券
+				<view class="main-center cross-center receive" @click="receive">
+					领券<image src="../../../../static/image/index/arrow-right-facet-white.png" mode=""></image>
 				</view>
 			</view>
 		</view>
@@ -57,6 +57,11 @@
 		color: #FFFFFF;
 		line-height: 38rpx;
 		text-align: center;
+		image{
+			width: 22rpx;
+			height: 22rpx;
+			margin-left: 7rpx;
+		}
 	}
 	.info-box{
 		width: 100%;

+ 21 - 21
src/plugins/composition/detail/detail.vue

xqd
@@ -71,27 +71,27 @@ import bdCoupon from '@/components/page-component/goods/bd-coupon.vue';
 				
 				isCouponShow: false,
 				goods_coupon_center:[
-					{
-						appoint_type: "3",
-						begin_time: "0000-00-00 00:00:00",
-						can_receive_count: "-1",
-						cat: [],
-						desc: "",
-						discount: 10,
-						discount_limit: 0,
-						end_time: "0000-00-00 00:00:00",
-						expire_day: "99",
-						expire_type: "1",
-						goods: [],
-						id: "2",
-						is_receive: "0",
-						min_price: 100,
-						name: "优惠券1",
-						rule: "",
-						share_type: 4,
-						sub_price: 10,
-						type: "2",
-					}
+					// {
+					// 	appoint_type: "3",
+					// 	begin_time: "0000-00-00 00:00:00",
+					// 	can_receive_count: "-1",
+					// 	cat: [],
+					// 	desc: "",
+					// 	discount: 10,
+					// 	discount_limit: 0,
+					// 	end_time: "0000-00-00 00:00:00",
+					// 	expire_day: "99",
+					// 	expire_type: "1",
+					// 	goods: [],
+					// 	id: "2",
+					// 	is_receive: "0",
+					// 	min_price: 100,
+					// 	name: "优惠券1",
+					// 	rule: "",
+					// 	share_type: 4,
+					// 	sub_price: 10,
+					// 	type: "2",
+					// }
 				]
             }
         },

BIN
src/static/image/index/arrow-right-facet-white.png


BIN
src/static/image/sale/edit.png