Parcourir la source

提交缺失的dklist.vue

phperli il y a 3 ans
Parent
commit
b4bc1e91e8
1 fichiers modifiés avec 321 ajouts et 0 suppressions
  1. 321 0
      src/pages/sale/cusmter/dklist.vue

+ 321 - 0
src/pages/sale/cusmter/dklist.vue

xqd
@@ -0,0 +1,321 @@
+<template>
+	<app-layout :haveBackground="false">
+	<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" v-model="searchVal" @input="search" placeholder-class="search_plh_class" placeholder="客户名、楼盘名">
+		</view>
+		<view class="list" style="background: #F8F8F8;margin-top: 15rpx;border: 1px transparent solid;">
+			<view class="main-between cross-center item dklist" v-for="(item,index) in dataList" :key="index">
+				<view class="main-left" style="align-items: center;" @click="navCusmterInfo(item.id,item.name,item.mobile,item.user_id)">
+					<view>
+						<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">{{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>
+				</view>				
+				<!-- <image style="width: 13rpx;height: 21rpx;"
+					src="https://t17.9026.com/web/statics/image/sale/arrow_right.png" mode=""></image> -->
+				<view class="check-lp">
+					<view class="check-lp-text">选择楼盘下单</view>
+					<view class="off-open-sider off-open-sider-show" v-if="!item.show||item.show==false" style="display: flex;"  @click="off_show(index)">
+						展开
+						<image class="off-open-sider-img" style="transform: rotate(90deg);"
+						src="/static/image/icon/order-submit/dkorder.png" mode=""></image>
+					</view>
+					<view class="off-open-sider off-open-sider-hide"  v-else  style="display: flex;"  @click="off_show(index)">
+						收起
+						<image class="off-open-sider-img" style="transform: rotate(-90deg);"
+						src="/static/image/icon/order-submit/dkorder.png" mode=""></image>
+					</view>
+					
+				</view>
+				<view class="lp-list" v-if="item.show">
+					<view class="lp-list-item" v-for="(lpitem,lpindex) in item.user_estates" v-if="item.user_estates">
+						<view class="lp-item-title">{{lpitem.estate.name}}</view>
+						<view class="lp-item-do" @click="gotoOrder(lpitem.estate_id,item.sale_id)" style="color: #A18353;">去下单
+							<image class="off-open-sider-img" style="width: 13rpx;height: 21rpx;"
+							src="/static/image/icon/order-submit/dkorder.png" mode=""></image>
+						</view>						
+					</view>
+					
+				</view>
+				
+			</view>
+			<view class="no-more" v-if="noMore && dataList.length>0">没有更多了...</view>
+			<view style="height: 200rpx;"></view>
+			<app-no-goods v-if="dataList.length === 0" :title="'暂无数据'" background="#ffffff"></app-no-goods>
+		</view>
+	
+	</view>
+	
+	<template>
+		<view class="safe-area-inset-bottom">
+			<view :style="{height: '110rpx'}" class="nav-margin "
+				:class="haveBackground ? 'app-layout-background' : ''"></view>
+		</view>
+		<app-tab-bar :page-count="0"></app-tab-bar>
+	</template>
+	</app-layout>
+</template>
+
+<script>
+	import appNoGoods from '@/components/page-component/app-no-goods/app-no-goods.vue';
+	import AppTabBar from '@/components/basic-component/app-tab-bar/app-tab-bar.vue';
+	export default {
+		components:{
+			appNoGoods,
+			AppTabBar
+		},
+		data() {
+			return {
+				searchVal:"",
+				dataList: [],
+				page:1,
+				
+				noMore:false,
+				why:'',
+				dk:0,				
+			};
+		},
+		onLoad(option) {
+			this.why=option.why
+			this.dk = option.dk
+			console.log(this.dk)
+		},
+		onShow() {
+			this.getData()
+		},
+		onReachBottom() {
+			if(!this.noMore){
+				this.page++
+				this.getData()
+			}
+		},
+		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) {
+						for(var i=0;i<res.data.list.length;i++){
+							res.data.list[i].show = false
+						}						
+						if(this.page===1){
+							this.dataList = res.data.list
+						}else{
+							this.dataList=this.dataList.concat(res.data.list)
+						}
+						if(res.data.list.length<20){
+							this.noMore=true
+						}
+						
+					}
+					this.$hideLoading()
+				})
+			},
+			navCusmterInfo(id,name,mobile,user_id) {
+				if(this.why==='select_customer'){
+					if(user_id==0){
+						uni.showModal({
+						    title: '提示',
+						    content: '客户暂未绑定,请联系',
+						    success: (res)=> {
+						        if (res.confirm) {
+						            return
+						        } else if (res.cancel) {
+									return
+						        }
+						    }
+						});
+						return
+					}
+					let pages = getCurrentPages();
+					let prevPage = pages[pages.length - 2]; //上一个页面
+					prevPage.$vm.customerInfo={user_id:user_id,name:name,mobile:mobile}
+					uni.navigateBack()
+				}else{
+					uni.navigateTo({
+						url: `/pages/sale/cusmter/info?id=${id}`
+					})
+				}
+			}, 
+			off_show(index){				
+				if(this.dataList[index].show){					
+					this.dataList[index].show = false					
+				}else{
+					this.dataList[index].show = true			
+				}
+				
+			},	
+			
+			//去分类下单
+			gotoOrder(estate_id,sale_id){
+				console.log(estate_id)
+				try{
+					uni.setStorageSync('dk_estate_id', estate_id);
+					uni.setStorageSync('dk_sale_id', sale_id);
+				}catch(e){
+					console.log(e)				  
+				};
+				
+				// 同步方式获取数据, 阻塞形式,如果做完了的话代码才会向下进行
+				try{
+					const dk_estate_id = uni.getStorageSync('dk_estate_id');					
+					const dk_user_id = uni.getStorageSync('dk_sale_id');
+					console.log("const value = uni.getStorageSync('dk_estate_id,dk_sale_id') 同步获取 = " + dk_estate_id,dk_sale_id)
+				}catch(e){
+					console.log(e)
+					//TODO handle the exception
+				};				
+				uni.navigateTo({
+					url: `/pages/cats/cats`
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.page {
+		min-height: 100vh;
+		background-color: #fff;
+		padding-top: 20rpx;
+	}
+	
+	.dklist{
+		display: inherit;
+		padding: 30rpx;
+		height: inherit !important;
+		margin: 15rpx auto !important;
+		border-radius: 15rpx;
+	}
+	.check-lp{
+		font-size: 24rpx;
+		font-weight: 500;
+		color: #333;
+		margin-top: 37rpx;
+		display: flex;
+	}
+	.check-lp-text{
+		flex: 1;
+	}
+	.off-open-sider{
+		width: 80rpx;
+		align-items: center;
+		color: #A18353;
+	}
+	.off-open-sider-img{
+		width: 6px;
+		height: 10px;
+		margin-left: 10rpx;
+		position: relative;
+		
+	}
+	.lp-list{
+		font-size: 24rpx;
+		font-weight: 500;
+		color: #333;
+		margin-top: 20rpx;
+		background: #F8F8F8;
+		padding: 15rpx 20rpx;
+		border-radius: 15rpx;
+	}
+	.lp-list-item{
+		display: flex;
+		align-items: center;
+		margin: 25rpx 0;
+	}
+	.lp-item-title{
+		flex: 1;
+	}
+
+	.search {
+		width: 678rpx;
+		height: 77rpx;
+		background: #F8F8F8;
+		border-radius: 39rpx;
+		margin: auto;
+		padding: 0 43rpx;
+
+		input {
+			width: 100%;
+		}
+
+		image {
+			width: 24rpx;
+			height: 27rpx;
+		}
+	}
+
+	/deep/.search_plh_class {
+		font-size: 28rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #999999;
+	}
+
+	.list {margin-top: 20rpx;
+		.item {
+			background-color: #fff;
+			height: 145rpx;
+			width: 678rpx;
+			margin: 0 auto;
+			border-bottom: 1rpx solid #EEEEEE;
+
+			.name {
+				font-size: 32rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #222222;
+			}
+
+			.addr {
+				width: 490rpx;
+				font-size: 24rpx;
+				font-family: PingFang SC;
+				font-weight: 500;
+				color: #999999;
+			}
+		}
+	}
+
+	.addPro {
+		position: fixed;
+		bottom: 0;
+		width: 100%;
+		height: 100rpx;
+		background: #A18353;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #FFFFFF;
+	}
+	.no-more {
+		font-size: 24rpx;
+		font-weight: 500;
+		color: #666666;
+		margin-top: 37rpx;
+		text-align: center;
+	}
+</style>