1
0

4 Commitit b26b47464a ... 1f1fb47b0e

Tekijä SHA1 Viesti Päivämäärä
  huangzhe 1f1fb47b0e 预约活动模块、代客下单优惠券使用及其他问题修改 3 vuotta sitten
  一懒众山小 9c72a69297 预约相关页面接口 3 vuotta sitten
  huangzhe a618fdecad 代客下单、销售端我的订单列表 3 vuotta sitten
  huangzhe 09ab01ebba 修改bug 3 vuotta sitten
44 muutettua tiedostoa jossa 1122 lisäystä ja 446 poistoa
  1. 11 1
      src/components/basic-component/app-tab-bar/app-tab-bar.vue
  2. 17 1
      src/components/basic-component/u-tabs-swiper/u-tabs-swiper.vue
  3. 3 3
      src/components/page-component/app-user-center-top/app-user-center-top.vue
  4. 2 2
      src/components/page-component/goods/app-goods-banner.vue
  5. 9 2
      src/components/page-component/index/app-nav-bar.vue
  6. 8 2
      src/core/apiUrl.js
  7. 9 4
      src/core/request.js
  8. 28 24
      src/pages.json
  9. 1 1
      src/pages/cart/components/app-shop-product/app-shop-product.vue
  10. 14 24
      src/pages/case/appointment/appointment-form.vue
  11. 192 0
      src/pages/case/appointment/appointment-list.vue
  12. 167 150
      src/pages/case/appointment/appointment.vue
  13. 4 3
      src/pages/case/components/hxj-bd-info.vue
  14. 20 12
      src/pages/case/hot_sale_project.vue
  15. 1 1
      src/pages/comments/app-comments.vue
  16. 15 9
      src/pages/coupon/index/index.vue
  17. 18 6
      src/pages/goods/goods.vue
  18. 61 35
      src/pages/index/binding/binding.vue
  19. 148 35
      src/pages/index/hxj_index_component.vue
  20. 3 3
      src/pages/index/index.vue
  21. 17 4
      src/pages/order-submit/address-pick.vue
  22. 9 1
      src/pages/order-submit/app-coupon-pick.vue
  23. 67 32
      src/pages/order-submit/invoice/invoice.vue
  24. 7 5
      src/pages/order-submit/invoice/invoiceAddr.vue
  25. 105 14
      src/pages/order-submit/order-submit.vue
  26. 2 2
      src/pages/sale/components/app-my-income.vue
  27. 2 2
      src/pages/sale/cusmter/addCustomer.vue
  28. 1 1
      src/pages/sale/cusmter/info.vue
  29. 39 10
      src/pages/sale/cusmter/list.vue
  30. 70 32
      src/pages/sale/mySaleOrder.vue
  31. 1 1
      src/pages/sale/properties/addProperties.vue
  32. 8 2
      src/pages/sale/sale-user-center.vue
  33. 12 8
      src/pages/sale/salePersonInfo.vue
  34. 10 5
      src/pages/sale/sale_login/sale_login.vue
  35. 1 1
      src/pages/topic/list.vue
  36. 2 2
      src/pages/topic/topic.vue
  37. 6 2
      src/pages/user-center/evaluate/list.vue
  38. 1 1
      src/plugins/composition/components/app-bd-info/app-bd-info.vue
  39. 3 0
      src/plugins/pt/order/order.vue
  40. 5 0
      src/static/css/hxj.scss
  41. BIN
      src/static/image.zip
  42. BIN
      src/static/image/index/appointment_top.png
  43. BIN
      src/static/image/index/img-coupon-bg-0.png
  44. 23 3
      src/store/modules/user.js

+ 11 - 1
src/components/basic-component/app-tab-bar/app-tab-bar.vue

xqd
@@ -67,12 +67,22 @@
 							"text": "订单",
 							"url": "/pages/sale/mySaleOrder"
 						},
+						{
+							"active_color": "#A18353",
+							"active_icon": "https://t17.9026.com/web/statics/image/sale/sale_order_select.png",
+							"color": "#989898",
+							"icon": "https://t17.9026.com/web/statics/image/sale/sale_order.png",
+							"id": 3,
+							"open_type": "redirect",
+							"text": "购物车",
+							"url": "/pages/cart/cart"
+						},
 						{
 							"active_color": "#A18353",
 							"active_icon": "https://t17.9026.com/web/statics/image/sale/sale_my_select.png",
 							"color": "#989898",
 							"icon": "https://t17.9026.com/web/statics/image/sale/sale_my.png",
-							"id": 3,
+							"id": 4,
 							"key": "",
 							// "link": {
 							// 	"icon": "https://t1.9026.com/web/statics/img/mall/pick-link/icon-user-center.png",

+ 17 - 1
src/components/basic-component/u-tabs-swiper/u-tabs-swiper.vue

xqd xqd xqd
@@ -25,6 +25,8 @@
                         @tap="emit(index)"
                 >
                     {{ item[name] || item['name']}}
+					
+					<view class="line" v-if="line && getTabs.length>1 && index!=getTabs.length-1"></view>
                 </view>
                 <view
                         class="u-scroll-bar"
@@ -135,7 +137,11 @@
             bold: {
                 type: Boolean,
                 default: true
-            }
+            },
+			line:{
+				type:Boolean,
+				default:false
+			}
         },
         data() {
             return {
@@ -379,6 +385,16 @@
         text-align: center;
         transition-property: background-color, color, font-weight;
     }
+	
+	.line{
+		position: absolute;
+		right: 0;
+		top: 50%;
+		transform: translateY(-50%);
+		height: 40%;
+		width: 1px;
+		background-color: #aaa;
+	}
 
     .content {
         overflow: hidden;

+ 3 - 3
src/components/page-component/app-user-center-top/app-user-center-top.vue

xqd xqd
@@ -232,9 +232,9 @@
 					</app-form-id>
 				</template>
 			</view>
-			<view class="box-grow-0 address-container">
+			<!-- <view class="box-grow-0 address-container">
 				<image style="width: 32rpx;height: 34rpx;" src="https://t17.9026.com/web/statics/image/index/arrow_right.png" mode=""></image>
-			</view>
+			</view> -->
 		</view>
 		<!-- style 4 end -->
 		
@@ -701,7 +701,7 @@
 		.u-icon {
 			width: 21upx;
 			height: 21upx;
-			background-image: url('../../../static/image/index/refresh.png');
+			background-image: url('https://t17.9026.com/web/statics/image/index/refresh.png');
 			background-size: 100% 100%;
 			background-repeat: no-repeat;
 			margin-right: 5upx;

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

xqd
@@ -233,11 +233,11 @@
     }
 
     .swiper {
-        height: #{1000rpx};
+        height: #{750rpx};
 
         .swiper-img {
             width: 100%;
-            height: #{1000rpx};
+            height: #{750rpx};
             background-size: cover;
             background-repeat: no-repeat;
             background-position: center;

+ 9 - 2
src/components/page-component/index/app-nav-bar.vue

xqd
@@ -341,10 +341,17 @@ $app-bg-color: #FFFFFF;
 
             .icon-back {
                 background-image: url("https://shop.9026.com/web/statics/image/mall/static/icon/h5-back-2.png");
+				// background-image: url("https://t17.9026.com/web/statics/image/index/back.png");
                 background-repeat: no-repeat;
                 background-size: 100% 100%;
-                height: #{27rpx};
-                width: #{16rpx};
+				height: #{30rpx};
+				width: #{20rpx};
+				
+                // height: #{27rpx};
+                // width: #{16rpx};
+				
+				// height: #{33rpx};
+				// width: #{33rpx};
                 display: block;
             }
         }

+ 8 - 2
src/core/apiUrl.js

xqd xqd
@@ -8,7 +8,8 @@ const apiUrl = {
 		customer_detail:'plugin/sale/api/customer/detail',
 		customer_save:'plugin/sale/api/customer/save',
 		
-		estate_list:'plugin/sale/api/estate/list'
+		estate_list:'plugin/sale/api/estate/list',
+		get_token:'plugin/sale/api/customer/get-token'
 	},
 	example:{
 		style_list:'plugin/example/api/index/style-list',
@@ -81,7 +82,12 @@ const apiUrl = {
 		evaluate_list:'api/order-comments/list',
 		del_evaluate:'api/order-comments/del',
 		suggestion:'api/user/submit-suggestion',
-		visit_house:'api/user/visit-house'
+		// visit_house:'api/user/visit-house'
+		
+		//预约
+		visit_list:'api/visit/list',
+		visit_detail:'api/visit/detail',
+		visit_appoint:'api/visit/appoint',
     },
     article: {
         list: 'api/default/article-list',

+ 9 - 4
src/core/request.js

xqd
@@ -17,10 +17,15 @@ const request = async function (args) {
         // #endif
     };
 
-    await Vue.prototype.$store.dispatch('user/loadAccessTokenFormCache');
-    if (Vue.prototype.$store.state.user && Vue.prototype.$store.state.user.accessToken) {
-        header['X-Access-Token'] = Vue.prototype.$store.state.user.accessToken;
-    }
+	if(Vue.prototype.$store.state.user && Vue.prototype.$store.state.user.isEnterSales && Vue.prototype.$store.state.user.customerAccessToken && Vue.prototype.$store.state.user.isOrderBehalfBustomers){
+		header['X-Access-Token'] = Vue.prototype.$store.state.user.customerAccessToken;
+	}else{
+		await Vue.prototype.$store.dispatch('user/loadAccessTokenFormCache');
+		if (Vue.prototype.$store.state.user && Vue.prototype.$store.state.user.accessToken) {
+		    header['X-Access-Token'] = Vue.prototype.$store.state.user.accessToken;
+		}
+	}
+	
     if (Vue.prototype.$store.state.user && Vue.prototype.$store.state.user.tempParentId !== 0) {
         header['X-User-Id'] = Vue.prototype.$store.state.user.tempParentId + '';
     }

+ 28 - 24
src/pages.json

xqd xqd xqd xqd
@@ -95,14 +95,14 @@
 			}, {
 				"path": "appointment/appointment",
 				"style": {
-					"navigationBarTitleText": "预约",
+					"navigationBarTitleText": "预约详情",
 					"enablePullDownRefresh": false
 				}
 
 			}, {
 				"path": "appointment/appointment-form",
 				"style": {
-					"navigationBarTitleText": "预约",
+					"navigationBarTitleText": "预约表单",
 					"enablePullDownRefresh": false,
 					"navigationStyle": "custom"
 				}
@@ -114,16 +114,22 @@
 					"enablePullDownRefresh": false
 				}
 
-			}    ,{
-                    "path" : "caseList",
-                    "style" :                                                                                    
-                {
-                    "navigationBarTitleText": "",
-                    "enablePullDownRefresh": false
-                }
-                
-                }
-            ]
+			}, {
+				"path": "caseList",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false
+				}
+
+			}, {
+				"path": "appointment/appointment-list",
+				"style": {
+					"navigationBarTitleText": "",
+					"enablePullDownRefresh": false,
+					"navigationBarBackgroundColor": "#ffffff"
+				}
+
+			}]
 		},
 		{
 			"root": "pages/sale",
@@ -152,7 +158,7 @@
 				}, {
 					"path": "cusmter/list",
 					"style": {
-						"navigationBarTitleText": "已认证客户",
+						"navigationBarTitleText": "我的客户",
 						"enablePullDownRefresh": false,
 						"navigationBarBackgroundColor": "#fff"
 					}
@@ -194,18 +200,16 @@
 						"enablePullDownRefresh": false
 					}
 
+				}, {
+					"path": "salePersonInfo",
+					"style": {
+						"navigationBarTitleText": "个人信息",
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor": "#fff"
+					}
+
 				}
-			    ,{
-                    "path" : "salePersonInfo",
-                    "style" :                                                                                    
-                {
-                    "navigationBarTitleText": "个人信息",
-                    "enablePullDownRefresh": false,
-					"navigationBarBackgroundColor": "#fff"
-                }
-                
-                }
-            ]
+			]
 		},
 		// {
 		// 	"root": "plugins/fission",

+ 1 - 1
src/pages/cart/components/app-shop-product/app-shop-product.vue

xqd
@@ -40,7 +40,7 @@
                             <view>起批量 {{good.plugin_data.up_num}}{{good.goods.goodsWarehouse.unit}}</view>
                         </view>
                     </view>
-                    <text class="app-title" v-else :class="{'app-failed-title': good.new_status !== 0 && !(good.new_status == 6 && good.sell_time > 0)}">
+                    <text class="app-title" v-else :class="{'app-failed-title': good.new_status !== 0 && !(good.new_status == 6 && good.sell_time > 0)}" @click="jump(good)">
                         {{good.goods.name}}
                     </text>
                     <view class="app-specification-style" v-if="good.sign !== 'wholesale'">

+ 14 - 24
src/pages/case/appointment/appointment-form.vue

xqd xqd xqd
@@ -1,24 +1,26 @@
 <template>
 	<view>
-		<app-nav-bar v-if="true" :fixed="true" :title="'预约'" color="#000" background-color="#eae2dd"></app-nav-bar>
+		<!-- <image src="https://t17.9026.com/web/statics/image/index/appointment_top.png" mode=""></image> -->
+		<app-nav-bar v-if="true" :fixed="true" :xStyle="1" :hasMallSetting="2" :title="'预约'" color="#fff" :background-color="'#e2c47b'"></app-nav-bar>
+		<!-- <app-nav-bar v-if="true" :fixed="true" :background-color="''" :xStyle="1" :hasMallSetting="2" -->
 		<view class="main-between-y builInfo">
-			<view class="main-between cross-center" style="height: 72rpx;" @click="$jump({open_type:'navigate',url:'/pages/sale/properties/addProperties'})">
+			<view class="main-between cross-center" style="height: 72rpx;" >
 				<view class="hjx-ts-30 hjx-tw-600 hjx-tc-222">楼盘名称</view>
 				<view class="hjx-ts-30 hjx-tc-222">
 					<view class="cross-center hjx-ts-28 t-omit" style="width: 510rpx;text-align: right;"
 						:class="{'hjx-tc-999':estate_name==''?true:false,'hjx-tc-000':estate_name!=''?true:false}">{{estate_name===''?'请选择':estate_name}}
-						<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
-							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+						<!-- <image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image> -->
 					</view>
 				</view>
 			</view>
-			<view class="main-between cross-center" style="height: 72rpx;" @click="$jump({open_type:'navigate',url:'/pages/sale/properties/addProperties'})">
+			<view class="main-between cross-center" style="height: 72rpx;" >
 				<view class="hjx-ts-30 hjx-tw-600 hjx-tc-222">楼盘地址</view>
 				<view class="hjx-ts-30 hjx-tc-222">
 					<view class="cross-center hjx-ts-28 t-omit" style="width: 510rpx;text-align: right;"
 						:class="{'hjx-tc-999':estate_address==''?true:false,'hjx-tc-000':estate_address!=''?true:false}">{{estate_address===''?'请选择':estate_address}}
-						<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
-							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+						<!-- <image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image> -->
 					</view>
 				</view>
 			</view>
@@ -103,20 +105,8 @@
 				date: '请选择'
 			};
 		},
-		onShow() {
-			var pages = getCurrentPages();
-			var currPage = pages[pages.length - 1]; //当前页面
-		
-			'estateInfo' in currPage.$vm ? this.estate_name = currPage.$vm.estateInfo.name : ''
-			'estateInfo' in currPage.$vm ? this.estate_id = currPage.$vm.estateInfo.id : ''
-			// 'estateInfo' in currPage.$vm ? this.multiIndex = currPage.$vm.estateInfo.multiIndex : ''
-			if('estateInfo' in currPage.$vm){
-				let address=currPage.$vm.estateInfo.address.split(' ').filter((s)=>{
-					return s && s.trim()
-				})
-				this.estate_address=address[2]+address[3]
-			}''
-			
+		onLoad(option) {
+			this.visit_id=option.id
 			
 		},
 		methods: {
@@ -143,11 +133,11 @@
 			},
 			goAppointment() {
 				this.$request({
-					url: this.$api.user.visit_house,
+					url: this.$api.user.visit_appoint,
 					data: {
-						estate_id: this.estate_id,
+						visit_id: this.visit_id,
 						username: this.username,
-						phone: this.mobile,
+						mobile: this.mobile,
 						visit_date: this.date + ' ' + this.time,
 					},
 					method: 'post'

+ 192 - 0
src/pages/case/appointment/appointment-list.vue

xqd
@@ -0,0 +1,192 @@
+<template>
+	<app-layout>
+	<view class="page">
+		<view class="center">
+			<view class="item" v-for="(item,index) in VisitList" :key="index" @click="goPage(item.id)">
+					<view style="width: 100%;height: 396rpx;">
+						<image style="width: 100%;height: 396rpx;" :src="item.cover_img" mode=""></image>
+					</view>
+				<view class="main-between pl" >
+					<view class="main-between-y">
+						<view class="title t-omit">{{item.name}}</view>
+						<view class="desc t-omit">活动时间:{{`${item.begin_time}-${item.end_time}`}}</view>
+					</view>
+					<view class="right-bt">
+						<view class="t-omit">{{item.num}}</view>
+						<view class="ee">名额仅剩</view>
+					</view>
+				</view>
+				<view class="line"></view>
+				<view class="addr">
+					<view class="t-omit">活动地点:{{item.address}}</view>
+				</view>
+			</view>
+			<appNoData v-if="VisitList.length===0" :title="'暂无预约'"></appNoData>
+			<view class="no-more" v-if="noMore">没有更多了...</view>
+		</view>
+	</view>
+	</app-layout>
+</template>
+
+<script>
+	import appNoData from '@/components/page-component/app-no-goods/app-no-goods.vue'
+	export default {
+		components:{
+			appNoData
+		},
+		data() {
+			return {
+				page:1,
+				is_myself:0,
+				VisitList:[],
+				noMore:false
+			};
+		},
+		onLoad(option) {
+			'is_myself' in option?this.is_myself=option.is_myself:''
+			this.getVisitList()
+		},
+		onReachBottom() {
+			if(!this.noMore){
+			this.page++
+			this.getVisitList()
+			}
+		},
+		methods:{
+			goPage(id){
+				uni.navigateTo({
+					url:`/pages/case/appointment/appointment?id=${id}&is_myself=${this.is_myself}`
+				})
+			},
+			getVisitList(){
+				this.$showLoading()
+				this.$request({
+					url:this.$api.user.visit_list,
+					methods:'post',
+					data:{
+						page:this.page,
+						is_myself:this.is_myself
+					}
+				}).then(res=>{
+					if(res.code===0){
+						if(this.page==1){
+							this.VisitList=res.data.list
+						}else{
+							this.VisitList=this.VisitList.concat(res.data.list) 
+						}
+						if(res.data.list.length<20){
+							this.noMore=true
+						}
+					}
+					this.$hideLoading()
+				})
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.no-more {
+		font-size: 24rpx;
+		font-weight: 500;
+		color: #666666;
+		margin-top: 37rpx;
+		text-align: center;
+	}
+	.page{
+		position: relative;
+		min-height: 100vh;
+	}
+	.tpbg{
+		width: 750rpx;
+		height: 368rpx;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: -1;
+	}
+	.w{
+		width: 750rpx;
+	}
+	.center{
+		width: 750rpx;
+		height: auto;
+		background: #F8F8F8;
+		border-radius: 20rpx;
+		overflow: hidden;
+		padding: 36rpx;
+		.tagf{
+			padding-bottom: 26rpx;
+		}
+		.tag{
+			min-width: 131rpx;
+			height: 51rpx;
+			background: #EFEFEF;
+			border-radius: 10rpx;
+			font-size: 24rpx;
+			font-weight: 500;
+			color: #999999;
+			text-align: center;
+			line-height: 51rpx;
+			padding: 0 15rpx;
+			margin-right: 20rpx;
+		}
+		.active{
+			background: #A18353;
+			color: #FFFFFF;
+		}
+		.item{
+			width: 678rpx;
+			height: auto;
+			background: #FFFFFF;
+			border-radius: 14rpx;
+			margin:0 auto 24rpx;
+			overflow: hidden;
+
+			.pl{
+				padding: 28rpx 22rpx;
+				margin-top: 25rpx;
+				.title{
+					width: 480rpx;
+					font-size: 32rpx;
+					font-weight: bold;
+					color: #222222;
+				}
+				.desc{
+					width: 480rpx;
+					font-size: 22rpx;
+					font-weight: 500;
+					color: #999999;
+				}
+				.right-bt{
+					width: 118rpx;
+					height: 82rpx;
+					background: #FFFFFF;
+					border: 2rpx solid #A18353;
+					
+
+					font-size: 30rpx;
+					font-weight: 500;
+					color: #A18353;
+					text-align: center;
+					.ee{
+						font-size: 18rpx;
+					}
+				}
+			}
+			.line{
+				padding: 0 28rpx;
+				background-color: #D8D8D8;
+				width: 100%;
+				height: 1px;
+			}
+			.addr{
+				padding: 24rpx 28rpx 32rpx;
+				font-size: 22rpx;
+				font-weight: 500;
+				color: #999999;
+				line-height: 22rpx;
+			}
+		}
+	}
+</style>

+ 167 - 150
src/pages/case/appointment/appointment.vue

xqd xqd xqd xqd
@@ -3,11 +3,10 @@
 		<!-- <app-nav-bar v-if="true" :fixed="true" :background-color="''" :xStyle="1" :hasMallSetting="2"
 			:hasHeight="false"></app-nav-bar> -->
 		<view class="swiper_cent tpbg">
-			<swiper style="height: 534rpx;" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="1000"
-				@change="swiperChange">
-				<swiper-item v-for="(item,index) in 3" :key="index" @click="gopage">
+			<swiper style="height: 534rpx;" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="1000" @change="swiperChange">
+				<swiper-item v-for="(item, index) in 1" :key="index" @click="gopage">
 					<view style="width: 100%;height: 534rpx;position: relative;">
-						<image src="https://t17.9026.com/web/statics/image/index/14.png" style="width: 100%;height: 534rpx;position: absolute;top: 0;left: 0;" mode=""></image>
+						<image :src="dataDetail.cover_img" style="width: 100%;height: 534rpx;position: absolute;top: 0;left: 0;" mode=""></image>
 					</view>
 				</swiper-item>
 			</swiper>
@@ -50,11 +49,14 @@
 				</view>
 			</view> -->
 			<view class="details">
-				<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600 hxj-mb-20">龙湖·揽镜</view>
+				<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600 hxj-mb-20">{{dataDetail.name}}</view>
 				<view class="content hjx-tc-666 hjx-ts-26">
-					<view>地址:<text class="hjx-tc-B19D60">成都市双流区天府大道南段2716号</text></view>
-					<view class="content-text">
-						简介:四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。
+					<view>
+						地址:
+						<text class="hjx-tc-B19D60">{{dataDetail.address}}</text>
+					</view>
+					<view class="content-text" v-html="dataDetail.details">
+						<!-- 简介:四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。 -->
 					</view>
 					<!-- <view class="content-image">
 						<image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image>
@@ -77,16 +79,17 @@
 					</view> -->
 				</view>
 			</view>
-			<view class="details">
+			<view class="details" v-if="false">
 				<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600 hxj-mb-20">基本信息</view>
 				<view class="content hjx-tc-666 hjx-ts-26">
-					<view v-for="(item,index) in 7" :key="index" class="hxj-mb-10">物业类型:<text class="hjx-tw-600 hjx-tc-222">住宅</text></view>
+					<view v-for="(item, index) in 7" :key="index" class="hxj-mb-10">
+						物业类型:
+						<text class="hjx-tw-600 hjx-tc-222">住宅</text>
+					</view>
 					<!-- <view class="content-text">
 						简介:四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。
 					</view> -->
-					<view class="content-image">
-						<image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image>
-					</view>
+					<view class="content-image"><image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image></view>
 					<!-- <view class="main-between content-goods">
 						<view class="main-left desc">
 							<image class="goods-img" src="https://t17.9026.com/web/statics/image/user-center/1.png" mode=""></image>
@@ -106,183 +109,197 @@
 				</view>
 			</view>
 		</view>
-		<view class="noMake cross-center">
-			<button type="default" @tap="goAppointment">立即预约</button>
-		</view>
+		<view class="noMake cross-center" v-if="!is_myself"><button type="default" @tap="goAppointment">立即预约</button></view>
 	</view>
 </template>
 
 <script>
-	import appNavBar from '@/components/page-component/index/app-nav-bar.vue';
-	export default {
-		components: {
-			appNavBar
-		},
-		data() {
-			return {
-swiperKey:0
-			};
-		},
-		methods: {
-			swiperChange(e){
-				console.log(e.detail.current)
-				this.swiperKey = e.detail.current
+import appNavBar from '@/components/page-component/index/app-nav-bar.vue';
+export default {
+	components: {
+		appNavBar
+	},
+	data() {
+		return {
+			swiperKey: 0,
+			dataDetail:{},
+			
+			is_myself:0
+		};
+	},
+	onLoad(option) {
+		this.is_myself=option.is_myself
+		this.$request({
+			url: this.$api.user.visit_detail,
+			data: {
+				visit_id: option.id
 			},
-			goAppointment(){
-				uni.navigateTo({
-					url:'/pages/case/appointment/appointment-form'
-				})
+			method: 'post'
+		}).then(res => {
+			if (res.code === 0) {
+				this.dataDetail=res.data
 			}
+		});
+	},
+	methods: {
+		swiperChange(e) {
+			console.log(e.detail.current);
+			this.swiperKey = e.detail.current;
+		},
+		goAppointment() {
+			uni.navigateTo({
+				url: '/pages/case/appointment/appointment-form?id='+this.dataDetail.id
+			});
 		}
 	}
+};
 </script>
 
 <style lang="scss" scoped>
-	.noMake{
-		position: fixed;
-		bottom: 0;
-		width: 100%;
-		height: 156rpx;
-		background: #FFFFFF;
-		box-shadow: 0px 7rpx 45rpx 1rpx rgba(85, 82, 82, 0.64);
-		button{
-			width: 678rpx;
-			height: 84rpx;
-			background: #A18353;
-			border-radius: 6rpx;
-			margin: 0 auto;
-			font-size: 30rpx;
-			font-weight: bold;
-			color: #FFFFFF;
-		}
-	}
-	.page {
-		position: relative;
-		min-height: 100vh;
+.noMake {
+	position: fixed;
+	bottom: 0;
+	width: 100%;
+	height: 156rpx;
+	background: #ffffff;
+	box-shadow: 0px 7rpx 45rpx 1rpx rgba(85, 82, 82, 0.64);
+	button {
+		width: 678rpx;
+		height: 84rpx;
+		background: #a18353;
+		border-radius: 6rpx;
+		margin: 0 auto;
+		font-size: 30rpx;
+		font-weight: bold;
+		color: #ffffff;
 	}
+}
+.page {
+	position: relative;
+	min-height: 100vh;
+}
 
-	.tpbg {
-		width: 750rpx;
-		height: 534rpx;
-	}
+.tpbg {
+	width: 750rpx;
+	height: 534rpx;
+}
 
-	.w {
-		width: 750rpx;
-	}
+.w {
+	width: 750rpx;
+}
 
-	.center {
-		width: 750rpx;
-		height: auto;
-		background: #F8F8F8;
-		border-radius: 20rpx;
-		overflow: hidden;
-		padding: 36rpx;
-		margin-top: -20rpx;
-		.summary {
-			padding-bottom: 30rpx;
-			background-color: #F8F8F8;
+.center {
+	width: 750rpx;
+	height: auto;
+	background: #f8f8f8;
+	border-radius: 20rpx;
+	overflow: hidden;
+	padding: 36rpx;
+	margin-top: -20rpx;
+	.summary {
+		padding-bottom: 30rpx;
+		background-color: #f8f8f8;
 
-			.title {
-				padding-bottom: 20rpx;
+		.title {
+			padding-bottom: 20rpx;
 
-				.text {
-					width: 579rpx;
-				}
+			.text {
+				width: 579rpx;
 			}
+		}
 
-			.gg {
-				padding: 20rpx 0;
+		.gg {
+			padding: 20rpx 0;
 
-				image {
-					width: 28rpx;
-					height: 28rpx;
-				}
+			image {
+				width: 28rpx;
+				height: 28rpx;
+			}
 
-				.item {
-					width: 25%;
-					height: 73rpx;
-				}
+			.item {
+				width: 25%;
+				height: 73rpx;
 			}
 		}
+	}
 
-		.details {
-			// padding-top: 38rpx;
+	.details {
+		// padding-top: 38rpx;
 
-			.content {
-				.content-text {
-					font-size: 30rpx;
-					font-weight: 500;
-					line-height: 46rpx;
-					padding: 15rpx 0;
-				}
+		.content {
+			.content-text {
+				font-size: 30rpx;
+				font-weight: 500;
+				line-height: 46rpx;
+				padding: 15rpx 0;
+			}
 
-				.content-image {
-					width: 100%;
-					max-height: 738rpx;
+			.content-image {
+				width: 100%;
+				max-height: 738rpx;
 
-					image {
-						width: 100%;
-					}
+				image {
+					width: 100%;
 				}
+			}
 
-				.content-goods {
-					margin-top: 12rpx;
-					background: #F2F2F2;
-
-					.desc {
-						width: 511rpx;
-						height: 141rpx;
-						border-radius: 6rpx;
-						padding: 18rpx 24rpx;
+			.content-goods {
+				margin-top: 12rpx;
+				background: #f2f2f2;
 
-						.goods-img {
-							width: 101rpx;
-							height: 99rpx;
-							border-radius: 8rpx;
-							margin-right: 21rpx;
-						}
+				.desc {
+					width: 511rpx;
+					height: 141rpx;
+					border-radius: 6rpx;
+					padding: 18rpx 24rpx;
 
-						.title {
-							font-size: 26rpx;
-							font-weight: 500;
-							color: #222222;
-							line-height: 46rpx;
-						}
+					.goods-img {
+						width: 101rpx;
+						height: 99rpx;
+						border-radius: 8rpx;
+						margin-right: 21rpx;
+					}
 
-						.col {
-							font-size: 24rpx;
-							font-weight: 500;
-							color: #666666;
-							line-height: 46rpx;
-						}
+					.title {
+						font-size: 26rpx;
+						font-weight: 500;
+						color: #222222;
+						line-height: 46rpx;
 					}
 
-					.priceBox {
-						padding: 18rpx 24rpx;
+					.col {
+						font-size: 24rpx;
+						font-weight: 500;
+						color: #666666;
+						line-height: 46rpx;
 					}
+				}
 
+				.priceBox {
+					padding: 18rpx 24rpx;
 				}
 			}
 		}
 	}
-	.swiper_cent {
-		position: relative;
-		.swiper_zhishi {
-			display: flex;
-			align-items: center;
-			width: 100%;
-			justify-content: center;
-			position: absolute;
-			bottom: 39rpx;
-	
-			view {
-				width: 81rpx;
-				height: 4rpx;
-				background: #c8c8c8;
-			}
-			.view_active {
-				background: #f4f4f4;
-			}
+}
+.swiper_cent {
+	position: relative;
+	.swiper_zhishi {
+		display: flex;
+		align-items: center;
+		width: 100%;
+		justify-content: center;
+		position: absolute;
+		bottom: 39rpx;
+
+		view {
+			width: 81rpx;
+			height: 4rpx;
+			background: #c8c8c8;
+		}
+		.view_active {
+			background: #f4f4f4;
 		}
 	}
+}
 </style>

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

xqd xqd xqd xqd
@@ -4,7 +4,7 @@
 			<view class="main-between-y">
 				<view class="main-left cross-center">
 					<view class="hxj-name t-omit">{{name}}</view>
-					<view class="hxj-tags">{{tag}}</view>
+					<view class="hxj-tags t-omit">{{tag}}</view>
 					<view class="hxj-ynum">已售{{sales}}+</view>
 				</view>
 				<view class="main-left cross-center hjx-tc-999 hjx-ts-22">
@@ -16,7 +16,7 @@
 			</view>
 			<view class="main-between-y">
 				<view>
-					<view v-if="coupons.length>0" class="main-center cross-center lq" @click="receive">领券<image src="../../../static/image/index/arrow-right-facet-white.png" mode=""></image></view>
+					<view v-if="coupons.length>0" class="main-center cross-center lq" @click="receive">领券<image src="https://t17.9026.com/web/statics/image/index/arrow-right-facet-white.png" mode=""></image></view>
 				</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>分享
@@ -162,7 +162,7 @@
 		}
 
 		.hxj-tags {
-			max-width: 56rpx;
+			max-width: 110rpx;
 			height: 30rpx;
 			background: #040404;
 			font-size: 20rpx;
@@ -170,6 +170,7 @@
 			color: #FFFFFF;
 			margin-right: 13rpx;
 			text-align: center;
+			padding: 0 10rpx;
 		}
 
 		.hxj-ynum {

+ 20 - 12
src/pages/case/hot_sale_project.vue

xqd xqd xqd xqd xqd xqd
@@ -19,11 +19,11 @@
 			<view class="item" v-for="(item,index) in CompositionList" :key="index" @click="goPage(item.id)">
 				<view class="main-between img">
 					<view style="width: 419rpx;height: 281rpx;">
-						<image style="width: 419rpx;height: 281rpx;" :src="item.cover_img" mode=""></image>
+						<image style="width: 420rpx;height: 420rpx;" :src="item.cover_img" mode=""></image>
 					</view>
 					<view style="width: 206rpx;">
-						<image style="width: 206rpx;height: 136rpx;" :src="item.banner_imgs[0].banner_imgs" mode=""></image>
-						<image style="width: 206rpx;height: 136rpx;" :src="item.banner_imgs[1].banner_imgs" mode=""></image>
+						<image style="width: 206rpx;height: 206rpx;" :src="item.banner_imgs[0].banner_imgs" mode=""></image>
+						<image style="width: 206rpx;height: 206rpx;" :src="item.banner_imgs[1].banner_imgs" mode=""></image>
 					</view>
 				</view>
 				<view class="main-between pl" >
@@ -37,15 +37,18 @@
 					</view>
 				</view>
 			</view>
+			<appNoData v-if="CompositionList.length==0" :title="'该分类暂无套餐'"></appNoData>
 		</view>
 	</view>
 </template>
 
 <script>
 	import appNavBar from '@/components/page-component/index/app-nav-bar.vue';
+	import appNoData from '@/components/page-component/app-no-goods/app-no-goods.vue';
 	export default {
 		components:{
-			appNavBar
+			appNavBar,
+			appNoData
 		},
 		data() {
 			return {
@@ -56,14 +59,14 @@
 				CompositionList:[],
 			};
 		},
-		onLoad() {
-			this.getCompositionClass()
-			this.getCompositionList()
+		onLoad(option) {
+			this.getCompositionClass(option.cat_id)
+			this.getCompositionList(option.cat_id)
 		},
 		methods:{
 			selectTag(index){
 				this.activeIndex=index
-				this.getCompositionList(this.classList[index].cat_id)
+				this.getCompositionList(this.classList[index].id)
 			},
 			headHeight(e){
 				this.navbarHeight=e+'px'
@@ -73,7 +76,7 @@
 					url:'/pages/case/projectInfo?id='+id
 				})
 			},
-			getCompositionClass(){
+			getCompositionClass(cat_id){
 				this.$request({
 					url: this.$api.composition.cat_list,
 					method:'post'
@@ -82,12 +85,17 @@
 						this.classList=res.data
 						this.classList.splice(0,0,{id:'',name:'全部'})
 					}
+					for (let i = 0; i < this.classList.length; i++) {
+						if(this.classList[i].id==cat_id){
+							this.activeIndex=i
+						}
+					}
 				})
 			},
 			getCompositionList(cat_id=''){
 				this.$request({
 					url:this.$api.composition.list,
-					methods:'post',
+					method:'post',
 					data:{
 						cat_id:cat_id
 					}
@@ -146,13 +154,13 @@
 		}
 		.item{
 			width: 678rpx;
-			height: 477rpx;
+			height: auto;
 			background: #FFFFFF;
 			border-radius: 8rpx;
 			margin:0 auto 24rpx;
 			padding: 27rpx 22rpx;
 			.img{
-				height: 281rpx;
+				height: 420rpx;
 				border-radius: 10rpx;
 				overflow: hidden;
 			}

+ 1 - 1
src/pages/comments/app-comments.vue

xqd
@@ -5,7 +5,7 @@
                 <view class="box box-grow-1 main-center cross-center" @click="clickStatus(item.index)"
                       v-for="(item, index) in commentCount"
                       :key="index"
-                      :style="{'background-color': status === item.index ? theme.background : ''}"
+                      :style="{'background-color': status === item.index ? getTheme.background : ''}"
                       :class="status === item.index ? 'u-text ' : 'background'">
                     {{item.name}}({{item.count}})
                 </view>

+ 15 - 9
src/pages/coupon/index/index.vue

xqd xqd xqd
@@ -5,10 +5,15 @@
         <view v-else class="list">
 	        <view @click="toDetail(item.id)" v-for="item in list" :key="item.id">
 	            <view class="list-item">
-					<image src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-bg-0.png" v-if="activeTab == 1"></image>
+					<!-- <image src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-bg-0.png" v-if="activeTab == 1"></image>
 					<image src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-bg-1.png" v-else></image>
 	                <image class="status" src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-status-icon-1.png" v-if="activeTab == 2"></image>
-	                <image class="status" src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-status-icon-2.png" v-if="activeTab == 3"></image>
+	                <image class="status" src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-status-icon-2.png" v-if="activeTab == 3"></image> -->
+					
+					<image src="https://t17.9026.com/web/statics/image/index/img-coupon-bg-0.png" v-if="activeTab == 1"></image>
+					<image src="https://t17.9026.com/web/statics/image/index/img-coupon-bg-0.png" v-else></image>
+					<image class="status" src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-status-icon-1.png" v-if="activeTab == 2"></image>
+					<image class="status" src="https://shop.9026.com/web/statics/img/mall/coupon/img-coupon-status-icon-2.png" v-if="activeTab == 3"></image>
 	                <view class="item-left dir-top-nowrap main-center">
 	                    <view class="coupon-price t-omit" v-if="item.coupon.type == 2">¥{{item.coupon.sub_price | reservedNum}}</view>
 	                    <view class="coupon-price t-omit" v-else>{{item.coupon.discount | reservedNum}}折</view>
@@ -17,12 +22,12 @@
 	                    <view style="font-size: 10px" v-if="item.discount_limit">优惠上限:¥{{item.discount_limit | reservedNum}}</view>
 	                </view>
 	                <view class="item-right">
-	                    <view class="item-name t-omit t-large t-large-color">{{item.coupon.name}}</view>
-	                    <view class="t-small-color time-area">{{item.start_time}} - {{item.end_time}}</view>
-	                    <view v-if="item.coupon.appoint_type == 3">全场通用</view>
-                        <view v-else-if="item.coupon.appoint_type == 4">仅限当面付活动使用</view>
-	                    <view v-else-if="item.coupon.appoint_type == 5">仅限礼品卡使用</view>
-	                    <view v-else>限品类</view>
+	                    <view class="item-name t-omit t-large t-large-color hjx-tc-222 hjx-tw-600">{{item.coupon.name}}</view>
+						<view v-if="item.coupon.appoint_type == 3">全场通用</view>
+						<view v-else-if="item.coupon.appoint_type == 4">仅限当面付活动使用</view>
+						<view v-else-if="item.coupon.appoint_type == 5">仅限礼品卡使用</view>
+						<view v-else>限品类</view>
+	                    <view class="t-small-color time-area hjx-tc-B19D60">{{item.start_time}} - {{item.end_time}}</view>
 	                </view>
 	            </view>
 	        </view>
@@ -209,13 +214,14 @@
 	    width: #{190rpx};
 	    text-align: center;
 	    font-size: #{24rpx};
-	    color: #fff;
+	    color: #B19D60;
 	    padding-top: #{8rpx};
 	}
 
 	.coupon-price {
 	    font-size: #{36rpx};
 	    padding-bottom: #{16rpx};
+		font-weight: 600;
 	}
 
 	.item-right {

+ 18 - 6
src/pages/goods/goods.vue

xqd xqd xqd xqd xqd xqd
@@ -1,7 +1,7 @@
 <template>
     <app-layout>
         <view v-if="!goods" class="u-goods-detail"></view>
-        <template v-if="goods">
+        <view v-if="goods" style="background-color: #fff;">
 			
 			<app-nav-bar  :fixed="true" :background-color="''" :xStyle="1" :hasMallSetting="2"
 				:hasHeight="false"></app-nav-bar>
@@ -94,9 +94,16 @@
                 </view>
 				</navigator>
             </view>
-            <bd-comments :goods-id="goodsId"></bd-comments>
+			<view class="hxj-line"></view>			
+			<uTabsSwiper :list="[{tab:'商品评价'},{tab:'商品详情'}]" :current="tabsCurrent" name="tab" :activeColor="getTheme.color" :barHeight="0" :isScroll="false" @change="tabsChange" line></uTabsSwiper>
+			<!-- 评价 -->
+			<view v-show="tabsCurrent===0">
+				<bd-comments :goods-id="goodsId" ></bd-comments>
+			</view>
             <!--商品详情-->
-            <bd-detail :detail="detail"></bd-detail>
+			<view v-show="tabsCurrent===1">
+				<bd-detail :detail="detail" ></bd-detail>
+			</view>
             <!--相关推荐-->
             <app-goods-recommend :sureCart="true" :theme="getTheme" :goods-list="recommend_list"></app-goods-recommend>
             <!--空格区域-->
@@ -206,7 +213,7 @@
                 @check="check"
                 @update="updateCartNumber"
             ></u-attr>
-        </template>
+        </view>
         <app-close v-if="showClose" :modal="false" @update="getMall"></app-close>
     </app-layout>
 </template>
@@ -234,7 +241,7 @@
 	import goodsMixin from '@/core/goods-mixin.js';
 	
 	import appNavBar from '@/components/page-component/index/app-nav-bar.vue';
-
+	import uTabsSwiper from '@/components/basic-component/u-tabs-swiper/u-tabs-swiper.vue';
     export default {
         name: "goods",
 		mixins: [goodsMixin],
@@ -257,10 +264,12 @@
             bdService,
             bdFlashSale,
 			appSellTip,
-			appNavBar
+			appNavBar,
+			uTabsSwiper,
         },
         data() {
             return {
+				tabsCurrent:1,
                 showClose: false,
                 is_open: 0,
                 goods: null,
@@ -521,6 +530,9 @@
                     this.current = e.detail.current;
                 }
             },
+			tabsChange(e){
+				this.tabsCurrent=e
+			},
             quickShare(info) {
                 this.shareData = info;
                 //#ifdef H5

+ 61 - 35
src/pages/index/binding/binding.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -12,6 +12,7 @@
 				</view>
 				<image class="bg" src="https://t17.9026.com/web/statics/image/sale/properties_gradual.png" mode="">
 				</image>
+				<view class="is-mainbuilding" v-if="item.is_master_estate">主楼盘</view>
 			</view>
 			<AppNoData v-if="dataList.length===0" title="您还未绑定任何楼盘"></AppNoData>
 		</view>
@@ -42,18 +43,18 @@
 				</view>
 			</view>
 			
-			<!-- <view class="line"></view>
-			<picker mode="selector" @change="bindPickerNature" :range="natureList">
-				<view class="main-between cross-center item">
+			<view class="line" v-show="name!=''"></view>
+			<!-- <picker mode="selector" @change="bindPickerProperty" :range="propertyList" v-show="name!=''" disabled> -->
+				<view class="main-between cross-center item" v-show="name!=''">
 					<view class="title_1">楼盘性质</view>
 					<view class="main-right cross-center">
-						<text :class="{'val':nature!=='','pla':nature===''}">{{nature?nature:'请选择'}}</text>
+						<text :class="{'val':property!=='','pla':property===''}">{{property?property:'请选择'}}</text>
 						<image class="arrow-right"
-							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode="">
+							src="" mode="">
 						</image>
 					</view>
 				</view>
-			</picker> -->
+			<!-- </picker> -->
 			<view class="line" v-show="name!=''"></view>
 			<view class="main-between cross-center item" @click="selectSale" v-show="name!=''">
 				<view class="title_1">绑定销售</view>
@@ -70,7 +71,7 @@
 </template>
 
 <script>
-	import {mapMutations} from 'vuex'
+	import {mapActions} from 'vuex'
 	import AppNoData from '@/components/page-component/app-no-goods/app-no-goods.vue'
 	import AppAreaPicker from "@/components/page-component/app-area-picker/app-area-picker.vue"
 	export default {
@@ -84,28 +85,36 @@
 				region: '',
 				regionId:{},
 				multiIndex:[],
-				nature: '',
+				property: '',
 				sale: '',
 				
 				estate_id:'',
 				sale_id:'',
 
-				natureList: ['住宅用房', '非住宅用房'],
+				propertyList: ['住宅用房', '非住宅用房'],
 
-				dataList: []
+				dataList: [{}],
+				
+				isSwitchMainBuilding:0
 			};
 		},
 		onShow() {
 			var pages = getCurrentPages();
 			var currPage = pages[pages.length - 1]; //当前页面
-
-			'estateInfo' in currPage.$vm ? this.name = currPage.$vm.estateInfo.name : ''
-			'estateInfo' in currPage.$vm ? this.estate_id = currPage.$vm.estateInfo.id : ''
-			'estateInfo' in currPage.$vm ? this.multiIndex = currPage.$vm.estateInfo.multiIndex : ''
-			'saleInfo' in currPage.$vm ? this.sale = currPage.$vm.saleInfo.name : ''
-			'saleInfo' in currPage.$vm ? this.sale_id = currPage.$vm.saleInfo.id : ''
+			
+			if('estateInfo' in currPage.$vm){
+				this.name = currPage.$vm.estateInfo.name
+				this.estate_id = currPage.$vm.estateInfo.id
+				this.multiIndex = currPage.$vm.estateInfo.multiIndex
+				this.property = currPage.$vm.estateInfo.property=='1'?'住宅用房':'非住宅用房'
+			}
+			if('saleInfo' in currPage.$vm){
+				this.sale = currPage.$vm.saleInfo.name
+				this.sale_id = currPage.$vm.saleInfo.id
+			}
 		},
-		onLoad() {
+		onLoad(option) {
+			this.isSwitchMainBuilding=option.isSwitchMainBuilding
 			this.getDate(1,'')
 		},
 		methods: {
@@ -151,6 +160,7 @@
 				this.regionId={}
 			},
 			getDate(page, name) {
+				this.$showLoading()
 				this.$request({
 					url: this.$api.sale.estate_list,
 					data: {
@@ -162,28 +172,31 @@
 					if (res.code === 0) {
 						this.dataList = res.data.list
 					}
+					this.$hideLoading()
 				})
 			},
-			...mapMutations('user',{
+			...mapActions('user',{
 				'selectedProperties':'selectedProperties'
 			}),
 			selectMasterEstate(index,estate_id){
-				this.$request({
-					url:this.$api.index.select_master_estate,
-					data:{
-						estate_id:estate_id
-					},
-					method:'post'
-				}).then(res=>{
-					uni.showToast({
-						icon:res.code===0?'success':'none',
-						title:res.msg
+				if(this.isSwitchMainBuilding){
+					this.$request({
+						url:this.$api.index.select_master_estate,
+						data:{
+							estate_id:estate_id
+						},
+						method:'post'
+					}).then(res=>{
+						uni.showToast({
+							icon:res.code===0?'success':'none',
+							title:res.msg
+						})
+						if(res.code===0){
+							this.selectedProperties(this.dataList[index])
+							uni.navigateBack()
+						}
 					})
-					if(res.code===0){
-						this.selectedProperties(this.dataList[index])
-						uni.navigateBack()
-					}
-				})
+				}
 			},
 			selectBuild() {
 				uni.navigateTo({
@@ -195,8 +208,8 @@
 					url: `/pages/index/binding/bindingSale?estate_id=${this.estate_id}&name=${this.name}`
 				})
 			},
-			bindPickerNature(e) {
-				this.nature = this.natureList[e.target.value]
+			bindPickerProperty(e) {
+				this.property = this.propertyList[e.target.value]
 			}
 		}
 	}
@@ -315,6 +328,7 @@
 			// background-image: url(https://t17.9026.com/web/statics/image/sale/properties_gradual.png);
 			padding: 25rpx;
 			position: relative;
+			overflow: hidden;
 
 			.bg {
 				position: absolute;
@@ -357,6 +371,18 @@
 					line-height: 34rpx;
 				}
 			}
+			.is-mainbuilding{
+				position: absolute;top: 0;right: 0;
+				width: 100rpx;
+				height: 36rpx;
+				background: #EEEBDF;
+				border-radius: 0px 10rpx 0px 0px;
+				font-size: 20rpx;
+				font-weight: 500;
+				color: #A6824F;
+				line-height: 36rpx;
+				text-align: center;
+			}
 		}
 
 		.addPro {

+ 148 - 35
src/pages/index/hxj_index_component.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -26,14 +26,14 @@
 			<view class="subtitle">臻选整装 · 安全无甲醛 · 7天入住</view>
 		</view>
 		<view class="lg_list">
-			<view class="item" v-for="(item,index) in homePages[5].data.list" :key="index"
+			<view class="item" v-for="(item,index) in compositionList" :key="index"
 				@click="goPage(item.type=='goods'?`/pages/goods/goods?id=${item.id}`:`/pages/case/projectInfo?id=${item.id}`)">
-				<image class="imgBox" :src="item.cover_pic">
+				<image class="imgBox" :src="item.cover_img">
 				</image>
 				<view class="b_card main-between">
 					<view class="left">
 						<view class="title t-omit" style="width: 420rpx;">{{item.name}}</view>
-						<view class="desc t-omit" style="width: 420rpx;">{{item.subtitle}}</view>
+						<view class="desc t-omit" style="width: 420rpx;">{{item.tag}}</view>
 					</view>
 					<view class="right">
 						<view class="price"><text class="rmb">¥</text><text>{{item.price}}</text><text
@@ -55,7 +55,7 @@
 
 		</view>
 		<view class="coupon main-left">
-			<view class="item main-left" v-for="(item,index) in homePages[6].data.coupon_list" :key="index" @click="goPage(`/pages/coupon/list/list`)">
+			<view class="item main-left" v-for="(item,index) in homePages[6].data.coupon_list" :key="index" @click="receive(index)">
 				<view class="Wb">
 					<view>
 						<view class="title_2">定制优享礼券 <text class="hjx-tc-B19D60 hjx-ts-21 hxj-ml-10">立即领取</text></view>
@@ -76,31 +76,31 @@
 		</view>
 		<view class="hxdz">
 			<view class="main-left q">
-				<view class="l">
+				<view class="l" @click="goPage(homePages[7].data.list[0].link.new_link_url)">
 					<view class="title_2">明星套装</view>
 					<view class="desc_2">自然高端好家居</view>
-					<image src="https://t17.9026.com/web/statics/image/index/4.png" mode=""></image>
+					<image :src="homePages[7].data.list[0].pic_url" mode=""></image>
 				</view>
 				<view class="main-between-y">
-					<view class="r1" @click="goPage('/pages/case/selectedCases')">
+					<view class="r1" @click="goPage(homePages[7].data.list[1].link.new_link_url)">
 						<view class="title_2">优选</view>
 						<view class="desc_2">优选家居</view>
-						<image src="https://t17.9026.com/web/statics/image/index/5.png" mode=""></image>
+						<image :src="homePages[7].data.list[1].pic_url" mode=""></image>
 					</view>
-					<view class="r2">
+					<view class="r2" @click="goPage(homePages[7].data.list[2].link.new_link_url)">
 						<view class="title_2">专属</view>
 						<view class="desc_2">定制精品</view>
-						<image src="https://t17.9026.com/web/statics/image/index/6.png" mode=""></image>
+						<image :src="homePages[7].data.list[2].pic_url" mode=""></image>
 					</view>
 				</view>
 			</view>
 			<scroll-view scroll-x="true">
 				<view class="main-left w">
-					<view class="item" v-for="(item,index) in qwe" :key="index">
+					<view class="item" v-for="(item,index) in homePages[8].data.navs" :key="index">
 						<image class="borradu_20"
-							:src="`https://t17.9026.com/web/statics/image/index/temporary/${item.cover_image}.png`"
+							:src="item.icon_url"
 							mode=""></image>
-						<view class="title_2">{{item.title}}</view>
+						<view class="title_2">{{item.name}}</view>
 						<view class="desc_2">独到品味的代表备份</view>
 					</view>
 				</view>
@@ -128,11 +128,11 @@
 		<view class="group_list">
 			<swiper style="height: 606rpx;" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="1000"
 				previous-margin="75rpx" next-margin="75rpx">
-				<swiper-item class="" v-for="(item,index) in 3" :key="index"
-					@click="goPage('/plugins/pt/goods/goods?goods_id=29')">
+				<swiper-item class="" v-for="(item,index) in homePages[9].data.list" :key="index"
+					@click="goPage(item.page_url)">
 					<view class="item">
 						<view class="imgBox">
-							<image class="img" src="https://t17.9026.com/web/statics/image/index/3.png"></image>
+							<image class="img" :src="item.cover_pic"></image>
 						</view>
 						<view class="b_card main-between">
 							<view class="main-left cross-center left">
@@ -143,7 +143,7 @@
 								<view class="i">45</view>
 							</view>
 							<view class="right">
-								<view class="price"><text class="rmb">¥</text><text>56800</text><text
+								<view class="price"><text class="rmb">¥</text><text>{{item.pintuan_price}}</text><text
 										class="dw">元</text></view>
 							</view>
 						</view>
@@ -169,7 +169,7 @@
 						<view class="text">decoration荟享自营</view>
 						<view class="text">心至所向·渐入家境</view>
 					</view>
-					<view class="category">2930人已收藏</view>
+					<!-- <view class="category">2930人已收藏</view> -->
 				</view>
 			</view>
 			<view class="dir-left-wrap bottom">
@@ -200,6 +200,7 @@
 </template>
 
 <script>
+	import {mapState} from 'vuex'
 	import appScrollList from './components/scroll-list.vue'
 	export default {
 		components: {
@@ -214,6 +215,33 @@
 					};
 				},
 			},
+			page_id:{
+				type:Number,
+				default:0
+			},
+			dIndex: {
+				type: Array,
+				default () {
+					return [0, 0];
+				}
+			},
+			mIndex: {
+				type: Array,
+				default () {
+					return [0, 0];
+				}
+			},
+			dType:String
+		},
+		computed:{
+			...mapState({
+				selectedProperties:state=>state.user.selectedProperties
+			})
+		},
+		watch:{
+			selectedProperties(){
+				this.getComposition()
+			},
 		},
 		data() {
 			return {
@@ -232,18 +260,20 @@
 						image: 'https://t17.9026.com/web/statics/image/index/temporary/jhk-1634284372084.png',
 						title: '主题专区',
 						tag: '主题',
-						link: '/pages/case/themeArea'
+						// link: '/pages/case/themeArea'
+						link:'/pages/topic/list'
 					},
 					{
 						image: 'https://t17.9026.com/web/statics/image/index/temporary/jhk-1634283667210.png',
 						title: '定制产品',
 						tag: '预约',
-						link: '/pages/case/appointment/appointment-form'
+						link: '/pages/case/appointment/appointment-list'
 					},
 					{
 						image: 'https://t17.9026.com/web/statics/image/index/2.png',
 						title: '明星套装',
-						tag: '套装'
+						tag: '套装',
+						link: '/pages/case/appointment/appointment-list'
 					}
 				],
 				// jdlg: [{
@@ -265,21 +295,24 @@
 				// 		cover_image: 'temporary/jhk-1634284367308'
 				// 	}
 				// ],
-				qwe: [
-					{
-						'title': '兴城人居',
-						'cover_image': 'jhk-1634283667210'
-					}, {
-						'title': '世龙广场',
-						'cover_image': 'jhk-1634284372084'
-					}, {
-						'title': '新中式',
-						'cover_image': 'jhk-1634283687206'
-					}, 
-				]
-
+				// qwe: [
+				// 	{
+				// 		'title': '兴城人居',
+				// 		'cover_image': 'jhk-1634283667210'
+				// 	}, {
+				// 		'title': '世龙广场',
+				// 		'cover_image': 'jhk-1634284372084'
+				// 	}, {
+				// 		'title': '新中式',
+				// 		'cover_image': 'jhk-1634283687206'
+				// 	}, 
+				// ],
+				compositionList:[],//本期家点灵感
 			}
 		},
+		created() {
+			this.getComposition()
+		},
 		methods: {
 			selectCat(index){
 				this.bottom_goods_index=index
@@ -292,7 +325,87 @@
 				uni.navigateTo({
 					url: url
 				})
-			}
+			},
+			//获取推荐套餐
+			getComposition(){
+				this.$request({
+					url:this.$api.composition.list,
+					data:{
+						is_recommend:1,
+						limit:3
+					},
+					method:'post'
+				}).then(res=>{
+					if(res.code===0){
+						this.compositionList=res.data.list
+					}
+				})
+			},
+			//领取优惠券
+			receive(index) {
+				let list = this.homePages[6].data.coupon_list
+				if (this.sign == 'integral-mall') {
+					this.$jump({
+						url: list[index].page_url,
+						open_type: 'navigate'
+					});
+					return;
+				}
+				if (list[index].is_receive == 1) {
+					uni.showToast({
+						mask: true,
+						title: '已领取',
+						icon: 'none'
+					});
+					return true;
+				}
+				uni.showLoading({
+					mask: true,
+					title: '领取中'
+				});
+			
+				this.$request({
+					url: this.$api.coupon.receive,
+					data: {
+						coupon_id: list[index].id
+					}
+				}).then(e => {
+					uni.hideLoading();
+					if (e.code === 0) {
+						if (e.data.rest == 0) {
+							this.homePages[6].data.coupon_list[index].is_receive = '1';
+						}
+						let tempList = this.homePages[6].data.coupon_list;
+						this.flushCache(tempList);
+						this.$store.dispatch('page/actionSetCoupon', {
+							list: [Object.assign(tempList[index], e.data)],
+							type: 'receive'
+						});
+					} else {
+						uni.showToast({
+							title: e.msg,
+							icon: 'none'
+						});
+					}
+				}).catch(() => {
+					uni.hideLoading();
+				});
+			},
+			flushCache(coupon_list) {
+				if (this.page_id == 0) {
+					let storage = this.$storage.getStorageSync('INDEX_MALL');
+					let dIndex = this.dIndex;
+					let mIndex = this.mIndex;
+			
+					if (this.dType === 'module') {
+						storage.home_pages.navs[mIndex[0]].template.data[mIndex[1]].data.list[dIndex[0]].data[dIndex[1]]
+							.data.coupon_list = coupon_list;
+					} else {
+						storage.home_pages.navs[dIndex[0]].template.data[dIndex[1]].data.coupon_list = coupon_list;
+					}
+					this.$storage.setStorageSync('INDEX_MALL', storage);
+				}
+			},
 		}
 	}
 </script>

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

xqd xqd xqd
@@ -122,7 +122,6 @@
 				updateManager.onCheckForUpdate(function(res) {
 					// 请求完新版本信息的回调
 				})
-
 				updateManager.onUpdateReady(function() {
 					wx.showModal({
 						title: '更新提示',
@@ -148,7 +147,7 @@
 		methods: {
 			navProperties(){
 				uni.navigateTo({
-					url:'/pages/index/binding/binding'
+					url:'/pages/index/binding/binding?isSwitchMainBuilding=1'
 					// url:'/pages/sale/properties/addProperties'
 				})
 			},
@@ -435,7 +434,8 @@
 				userInfo: 'user/info',
 			}),
 			...mapState({
-				systemInfo: state => state.gConfig.systemInfo
+				systemInfo: state => state.gConfig.systemInfo,
+				selectedProperties: state => state.user.selectedProperties
 			}),
 			...mapState('mallConfig', {
 				config: state => state.mall.setting,

+ 17 - 4
src/pages/order-submit/address-pick.vue

xqd xqd xqd xqd
@@ -19,7 +19,7 @@
                 <view v-else class="main-center dir-top-nowrap list">
                     <view v-for="(item,index) in list"
                           :key="index"
-                          @click="setData(item.id)">
+                          @click="setData(item.id,item.address)">
                         <app-shipping-address @handleAddress="address"
                                               :item="item"
                                               :theme="getTheme"
@@ -117,6 +117,9 @@
             ...mapGetters('mallConfig', {
                 getTheme: 'getTheme',
             }),
+			...mapGetters('user', {
+				getIsEnterSales: 'getIsEnterSales'
+			}),
             list() {
                 const allList = this.allList;
                 const newVal = this.keyword;
@@ -131,6 +134,9 @@
             this.sign = options.sign;
         },
         onShow() {
+			if(this.getIsEnterSales){
+				this.$store.commit('user/isOrderBehalfBustomers', true)
+			}
             this.page = 1;
             // #ifdef MP-BAIDU
             setTimeout(() => {
@@ -192,13 +198,20 @@
                     uni.hideLoading();
                 });
             },
-            setData(data) {
+            setData(data,address) {
                 if (this.sign === 'gift') {
                     let formData = this.$store.state.gift.address_id;
                     formData = data;
-
                     this.$store.commit('gift/addressId', formData);
-                } else {
+                }else if(this.sign === 'invoice'){//选择发票地址
+					let invoice_info={}
+					if(this.$storage.getStorageSync('invoice_info')){
+						invoice_info=this.$storage.getStorageSync('invoice_info')
+					}
+					invoice_info.user_address_id=data
+					invoice_info.delivery_address=address
+					this.$storage.setStorageSync('invoice_info', invoice_info);
+				} else {
                     const formData = this.$store.state.orderSubmit.formData;
                     if (this.type === 1) {
                         formData.list[0].address_id = data;

+ 9 - 1
src/pages/order-submit/app-coupon-pick.vue

xqd
@@ -151,9 +151,17 @@
         },
         computed: {
             ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img
+                appImg: state => state.mallConfig.__wxapp_img,
+				customerAccessToken:state=>state.user.customerAccessToken  //代客下单判断是否选择客户,来获取客户优惠券
             }),
         },
+		watch:{
+			customerAccessToken(){
+				this.$store.commit('orderSubmit/mutSetMchNoCouponStatusList', []);
+				this.loadData();
+				this.loadData(true);
+			}
+		},
         created() {
             this.$store.commit('orderSubmit/mutSetMchNoCouponStatusList', []);
             this.is_gift = typeof(this.theme) == 'string' && this.theme.indexOf('gift') >= 0 ? true : false;

+ 67 - 32
src/pages/order-submit/invoice/invoice.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -1,12 +1,13 @@
 <template>
 	<view>
 		<view class="form-box">
-			<picker mode="region" @change="bindPickerRegion">
+			<picker mode="selector" @change="bindPickerBillType" :range="billType">
 				<view class="main-between cross-center item">
 					<view class="title_1">票据类型<text>*</text></view>
 					<view class="main-right cross-center">
-						<text :class="{'val':region!=='请选择','pla':region==='请选择'}">{{region}}</text>
-						<image class="arrow-right" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode="">
+						<text :class="{'val':invoice_info.bill_type!=='','pla':invoice_info.bill_type===''}">{{invoice_info.bill_type!==''?invoice_info.bill_type:'请选择'}}</text>
+						<image class="arrow-right"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode="">
 						</image>
 					</view>
 				</view>
@@ -14,12 +15,13 @@
 		</view>
 		<view class="form-box">
 			<!-- <view class="title">楼盘信息</view> -->
-			<picker mode="region" @change="bindPickerRegion">
+			<picker mode="selector" @change="bindPickerHeaderType" :range="headerType">
 				<view class="main-between cross-center item">
 					<view class="title_1">抬头类型<text>*</text></view>
 					<view class="main-right cross-center">
-						<text :class="{'val':region!=='请选择','pla':region==='请选择'}">{{region}}</text>
-						<image class="arrow-right" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode="">
+						<text :class="{'val':invoice_info.header_type!=='','pla':invoice_info.header_type===''}">{{invoice_info.header_type!==''?invoice_info.header_type:'请选择'}}</text>
+						<image class="arrow-right"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode="">
 						</image>
 					</view>
 				</view>
@@ -28,7 +30,7 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">发票抬头<text>*</text></view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="企业名称" style="text-align: right;"
+					<input type="text" v-model="invoice_info.header_name" placeholder="企业名称" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
@@ -36,7 +38,7 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">税号</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="抬头为企业单位时填写" style="text-align: right;"
+					<input type="text" v-model="invoice_info.duty_number" placeholder="抬头为企业单位时填写" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
@@ -44,17 +46,17 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">单位地址</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="text" v-model="invoice_info.company_address" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
-			
+
 		</view>
 		<view class="form-box">
 			<view class="main-between cross-center item">
 				<view class="title_1">电话号码</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="text" v-model="invoice_info.phone" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
@@ -62,7 +64,7 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">开户银行</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="text" v-model="invoice_info.bank_name" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
@@ -70,7 +72,7 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">银行账户</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="text" v-model="invoice_info.bank_account" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
@@ -78,13 +80,13 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">开票金额<text>*</text></view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="digit" v-model="invoice_info.amount" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
-			
+
 		</view>
-		<button type="default" :class="{'add':true, 'allow-add':true, 'not-add':false}" :disabled="fasle">提交</button>
+		<button type="default" :class="{'add':true, 'allow-add':isAllowSub, 'not-add':!isAllowSub}"  @click="submit">提交</button>
 	</view>
 </template>
 
@@ -92,28 +94,61 @@
 	export default {
 		data() {
 			return {
-				region: '请选择',
-				nature: '请选择',
+				billType:['发票(普通)'],
+				headerType:['个人/非企事业单位'],
 
-				natureList: ['住宅用房', '非住宅用房']
+				invoice_info: {
+					bill_type: "",
+					header_type: "",
+					header_name: "",
+					duty_number: "",
+					company_address: "",
+					phone: "",
+					bank_name: "",
+					bank_account: "",
+					amount: '',
+					delivery_address: "",
+					user_address_id: ''
+				},
+				isAllowSub:false
 			};
 		},
+		watch:{
+			invoice_info:{
+				handler:function(nVal,oVal){
+					if(nVal.bill_type && nVal.header_type && nVal.header_name &&nVal.amount){
+						this.isAllowSub=true
+					}else{
+						this.isAllowSub=false
+					}
+				},
+				deep:true
+			}
+		},
+		onLoad() {
+			let storageInvoiceInfo=this.$storage.getStorageSync('invoice_info')
+			if(storageInvoiceInfo){
+				this.invoice_info.delivery_address=storageInvoiceInfo.delivery_address
+				this.invoice_info.user_address_id=storageInvoiceInfo.user_address_id
+			}
+		},
 		methods: {
-			selectBuild() {
-				uni.navigateTo({
-					url: '/pages/sale/properties/addProperties'
-				})
-			},
-			selectSale() {
-				uni.navigateTo({
-					url: '/pages/index/binding/bindingSale'
-				})
+			submit(){
+				if(this.isAllowSub){
+					this.$storage.setStorageSync('invoice_info', this.invoice_info);
+					uni.navigateBack()
+				}else{
+					uni.showToast({
+						title:'请填写完整信息',
+						icon:'none'
+					})
+				}	
 			},
-			bindPickerRegion(e) {
-				this.region = e.target.value.join('')
+			bindPickerBillType(e) {
+				this.invoice_info.bill_type = this.billType[e.target.value]
 			},
-			bindPickerNature(e) {
-				this.nature = this.natureList[e.target.value]
+			bindPickerHeaderType(e) {
+				this.invoice_info.header_type = this.headerType[e.target.value]
 			}
 		}
 	}

+ 7 - 5
src/pages/order-submit/invoice/invoiceAddr.vue

xqd xqd xqd xqd
@@ -4,7 +4,7 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">姓名</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="text" v-model="name" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
@@ -12,7 +12,7 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">电话</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="text" v-model="phone" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
@@ -20,12 +20,12 @@
 			<view class="main-between cross-center item">
 				<view class="title_1">地址</view>
 				<view class="main-right cross-center">
-					<input type="text" value="" placeholder="请输入" style="text-align: right;"
+					<input type="text" v-model="addr" placeholder="请输入" style="text-align: right;font-size: 28rpx;"
 						placeholder-style="font-size: 28rpx;font-weight: 500;color: #999999;" />
 				</view>
 			</view>
 		</view>
-		<button type="default" :class="{'add':true, 'allow-add':true, 'not-add':false}" :disabled="fasle">提交</button>
+		<button type="default" :class="{'add':true, 'allow-add':true, 'not-add':false}" @click="submit">提交</button>
 	</view>
 </template>
 
@@ -37,7 +37,9 @@
 			};
 		},
 		methods: {
-			
+			submit(){
+				
+			}
 		}
 	}
 </script>

+ 105 - 14
src/pages/order-submit/order-submit.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -3,9 +3,14 @@
 		<view class="safe-area-inset-bottom">
 			<!-- 地址、商户、配送、商品、优惠、费用信息 -->
 			<view class="page" v-if="previewData">
-				<view v-if="getIsEnterSales" @click="navCustomer" class="select-customer" >
-					请选择客户
-				</view>
+				<template v-if="getIsEnterSales">
+					<view v-if="!customerInfo" @click="navCustomer" class="select-customer" >
+						请选择客户
+					</view>
+					<view v-else @click="navCustomer" class="select-customer" >
+						客户:{{customerInfo.name}} 手机号:{{customerInfo.mobile}}
+					</view>
+				</template>
 				<view v-if="!previewData.hasCity && previewData.show_address !== false && previewData.hasRecipient"
 					class="group">
 					<app-address-bar :address="previewData.address" :has-ziti="previewData.has_ziti"
@@ -158,11 +163,7 @@
 						<app-submit-goods :theme="theme" v-on:updateList="updateList" :index="mchIndex" :plugin="plugin"
 							:list="mch"></app-submit-goods>
 						<view class="line"></view>
-						<template v-if="(mch.coupon && mch.coupon.enabled) ||
-                                (mch.member_discount > 0 || mch.member_discount < 0) ||
-                                (mch.integral && mch.integral.can_use) || mch.temp_vip_discount ||
-                                (mch.insert_rows && mch.insert_rows.length) ||
-                                (mch.full_reduce_discount > 0 || mch.full_reduce_discount < 0)">
+						<template v-if="(mch.coupon && mch.coupon.enabled)">
 							<view style="padding: 20rpx 32rpx;">
 								<template v-if="mch.coupon && mch.coupon.enabled">
 									<view @click="showCouponPicker(mchIndex)" style="padding: 16rpx 0;">
@@ -339,7 +340,7 @@
 							</view>
 							<view v-show="isNeedInvoice"
 								style="font-size: 24rpx;font-weight: 500;color: #AE8445;line-height: 46rpx;text-align: right;padding: 0 32rpx;"
-								@click="navigateInvoiceAddr">填写收货地址</view>
+								@click="navigateInvoiceAddr">选择收货地址</view>
 
 						</template><!-- 申请发票end -->
 						<template>
@@ -503,13 +504,13 @@
 					<view @click="subscribe" class="submit-btn u-submit-bar-height box-grow-0 main-center cross-center"
 						:class="[ submitLock? ' lock' : '', themeBgClass]"
 						:style="{'background-color': !is_gift ? theme.background : ''}">
-						<view style="background-color: transparent;color:#ffffff; text-align: center;">去支付</view>
+						<view style="background-color: transparent;color:#ffffff; text-align: center;">{{getIsEnterSales?'去下单':'去支付'}}</view>
 					</view>
 				</template>
 				<template v-else>
 					<view class="submit-btn u-submit-bar-height box-grow-0 main-center cross-center disabled"
 						:class="[themeTextClass]" :style="{'color': !is_gift ? theme.color : ''}">
-						<view style="background-color: transparent;color: #ffffff; text-align: center;">去支付</view>
+						<view style="background-color: transparent;color: #ffffff; text-align: center;">{{getIsEnterSales?'去下单':'去支付'}}</view>
 					</view>
 				</template>
 			</view>
@@ -571,11 +572,15 @@
 				is_open: false,
 				mchList: '',
 				p_pay_id: '', //重新提交处理
+				
+				customerInfo:null,
+				
 			};
 		},
 		computed: {
 			...mapState({
 				appImg: state => state.mallConfig.__wxapp_img,
+				info:state=> state.user.info
 			}),
 			theme() {
 				return this.userTheme ? this.userTheme : this.getTheme;
@@ -654,8 +659,15 @@
 				document.getElementsByClassName('uni-page-head__title')[0].innerHTML = '确认订单';
 				// #endif
 			});
+			var pages = getCurrentPages();
+			var currPage = pages[pages.length - 1]; //当前页面
+			'customerInfo' in currPage.$vm ? this.customerInfo = currPage.$vm.customerInfo : ''
+		},
+		onHide(){
+			this.$store.commit('user/isOrderBehalfBustomers', false);
 		},
 		onUnload() {
+			this.$store.commit('user/isOrderBehalfBustomers', false);
 			if (this.getPayDataTimer) {
 				clearTimeout(this.getPayDataTimer);
 			}
@@ -671,11 +683,35 @@
 					this.changeZitiAddress();
 				},
 			},
+			customerInfo(nVal,oVal){ //获取客户token代客下单用
+				this.$request({
+					url:this.$api.sale.get_token,
+					data:{
+						user_id:this.customerInfo.user_id
+					},
+					method:'post'
+				}).then(res=>{
+					if(res.code===0){
+						this.$store.commit('user/customerAccessToken', res.data.access_token);
+						this.$store.commit('user/isOrderBehalfBustomers', true);
+						
+						delete this.previewData.address
+						const formData = this.$store.state.orderSubmit.formData;
+						formData.list[0].user_coupon_id = 0;
+						this.$store.commit('orderSubmit/mutSetFormData', formData);
+					}else{
+						uni.showToast({
+							title:res.msg,
+							icon:'none'
+						})
+					}
+				})
+			}
 		},
 		methods: {
 			navCustomer(){
 				uni.navigateTo({
-					url:'/pages/sale/cusmter/list'
+					url:'/pages/sale/cusmter/list?why=select_customer'
 				})
 			},
 			getMall(e) {
@@ -820,6 +856,7 @@
 				}
 			},
 			loadPreviewData() {
+				console.log(2222222222222223333333333333)
 				this.loadingPreviewData = true;
 				uni.showLoading({
 					mask: true,
@@ -886,7 +923,8 @@
 			},
 			navigateInvoiceAddr() {
 				uni.navigateTo({
-					url: '/pages/order-submit/invoice/invoiceAddr'
+					// url: '/pages/order-submit/invoice/invoiceAddr'
+					url:'/pages/order-submit/address-pick?sign=invoice'
 				})
 			},
 			navigateCoupon(mchIndex) {
@@ -1114,7 +1152,20 @@
 							}, 1000);
 						} else {
 							uni.hideLoading();
-							this.pay(response.data);
+							if(this.getIsEnterSales){
+								uni.showModal({
+									title: '',
+									content: '代客下单成功',
+									showCancel: false,
+									success: function (res) {
+									        if (res.confirm) {
+									           uni.navigateBack()
+									        } 
+									    }
+								});
+							}else{
+								this.pay(response.data)
+							}
 						}
 					} else {
 						this.submitLock = false;
@@ -1257,6 +1308,45 @@
 						this.bookStorage('save', this.$store.state.orderSubmit.formData.list[i].store_id);
 					}
 				}
+				const formData = this.$store.state.orderSubmit.formData;
+				if(this.getIsEnterSales){
+					if(!this.customerInfo || !this.$store.state.user.customerAccessToken){
+						uni.showModal({
+							title: '提示',
+							content: '请选择客户',
+							showCancel: false,
+						});
+						return
+					}
+					formData.place_sale_id=this.info.salesperson_id
+				}
+				if(this.isNeedInvoice){ //判断是否选择发票,并设置发票信息
+					let invoice_info=this.$storage.getStorageSync('invoice_info')
+					if(invoice_info){
+						if(!invoice_info.amount){
+							uni.showToast({
+								title:'请填写发票资料',
+								icon:'none'
+							})
+							return
+						}
+						if(!invoice_info.user_address_id){
+							uni.showToast({
+								title:'请选择发票收货地址',
+								icon:'none'
+							})
+							return
+						}
+					}else{
+						uni.showToast({
+							title:'请填写发票资料',
+							icon:'none'
+						})
+						return
+					}
+					formData.invoice_info=invoice_info
+				}
+				this.$store.commit('orderSubmit/mutSetFormData', formData);
 				if (this.submitLock) return;
 				this.submitLock = true;
 				this.$subscribe(this.previewData.template_message_list).then(res => {
@@ -1308,6 +1398,7 @@
 				}
 			},
 			handleAddressInput(e) {
+				this.previewData.address={}
 				if (typeof e.name !== 'undefined') this.previewData.address.name = e.name;
 				if (typeof e.mobile !== 'undefined') this.previewData.address.mobile = e.mobile;
 			},

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

xqd
@@ -1,6 +1,6 @@
 <template>
-	<view class="main-between income">
-		<view class="item" @click="goPage('/pages/share/order/order')">
+	<view class="main-between income" style="margin-top: 29rpx;">
+		<view class="item" @click="goPage('/pages/sale/mySaleOrder')">
 			<view class="title">订单总额(万)</view>
 			<view class="main-between cross-center">
 				<view class="num">{{userInfo.salesperson_info.order_total_amount}}</view>

+ 2 - 2
src/pages/sale/cusmter/addCustomer.vue

xqd
@@ -28,10 +28,10 @@
 				<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>添加
+						<image src="https://t17.9026.com/web/statics/image/sale/tianjia.png" mode=""></image>添加
 					</view>
 					<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>删除
+						<image src="https://t17.9026.com/web/statics/image/sale/shanchu.png" mode=""></image>删除
 					</view>
 				</view>
 			</view>

+ 1 - 1
src/pages/sale/cusmter/info.vue

xqd
@@ -14,7 +14,7 @@
 			</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>编辑
+				<image style="width: 27rpx;height: 26rpx;" src="https://t17.9026.com/web/statics/image/sale/edit.png" mode=""></image>编辑
 			</view>
 			</navigator>
 		</view>

+ 39 - 10
src/pages/sale/cusmter/list.vue

xqd xqd xqd xqd xqd
@@ -7,7 +7,7 @@
 		</view>
 		<view class="list">
 			<view class="main-between cross-center item" v-for="(item,index) in dataList" :key="index"
-				@click="navCusmterInfo(item.id)">
+				@click="navCusmterInfo(item.id,item.name,item.mobile,item.user_id)">
 				<view class="main-left">
 					<view>
 						<image style="width: 94rpx;height: 94rpx;border-radius: 50%;margin-right: 26rpx;"
@@ -26,9 +26,11 @@
 				<image style="width: 13rpx;height: 21rpx;"
 					src="https://t17.9026.com/web/statics/image/sale/arrow_right.png" mode=""></image>
 			</view>
+			<view class="no-more" v-if="noMore">没有更多了...</view>
+			<view style="height: 200rpx;"></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">
+		<navigator url="/pages/sale/cusmter/addCustomer" hover-class="navigator-hover" v-if="!why==='select_customer'">
 			<button class="addPro" type="default">添加客户</button>
 		</navigator>
 	</view>
@@ -46,14 +48,20 @@
 				searchVal:"",
 				dataList: [],
 				page:1,
+				
+				noMore:false,
+				why:'',
 			};
 		},
-		onLoad() {
+		onLoad(option) {
+			this.why=option.why
 			this.getData()
 		},
 		onReachBottom() {
-			this.page++
-			this.getData()
+			if(!this.noMore){
+				this.page++
+				this.getData()
+			}
 		},
 		methods: {
 			search(){
@@ -73,15 +81,29 @@
 					method: 'post'
 				}).then(res => {
 					if (res.code === 0) {
-						this.dataList = res.data.list
+						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) {
-				uni.navigateTo({
-					url: `/pages/sale/cusmter/info?id=${id}`
-				})
+			navCusmterInfo(id,name,mobile,user_id) {
+				if(this.why==='select_customer'){
+					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}`
+					})
+				}
 			}
 		}
 	}
@@ -155,4 +177,11 @@
 		font-weight: bold;
 		color: #FFFFFF;
 	}
+	.no-more {
+		font-size: 24rpx;
+		font-weight: 500;
+		color: #666666;
+		margin-top: 37rpx;
+		text-align: center;
+	}
 </style>

+ 70 - 32
src/pages/sale/mySaleOrder.vue

xqd xqd xqd xqd xqd xqd xqd
@@ -1,10 +1,11 @@
 <template>
 	<!-- <app-layout :haveBackground="false"> -->
+	<app-layout >
 	<view class="page">
 		<!-- <view style="background-color: #fff;position: fixed;top: 0;width: 100%;"> -->
 		<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" value="" placeholder="搜索客户、商品、时间、订单号"
+			<input style="width: 560rpx;" type="text" value="" placeholder="搜索客户、商品、时间、订单号" v-model="keyword"
 				placeholder-style="font-size:28rpx;color:#999;" />
 		</view>
 		<view style="background-color: #fff;position: sticky;top: 0;width: 100%;">
@@ -34,11 +35,11 @@
 		<!-- </view> -->
 
 		<view class="list">
-			<view class="box" v-for="(item,index) in 5" :key="index">
+			<view class="box" v-for="(item,index) in dataList" :key="index">
 				<view class="main-between cross-center header">
 					<view class="cross-center head" :class="{'border_bottom':true}">
-						<image src="https://t17.9026.com/web/statics/image/sale/1.png" mode=""></image>
-						周先生-世龙广场22号楼2202
+						<image :src="item.user.avatar" mode=""></image>
+						{{item.user.nickname}}{{item.user.estate_name?`-${item.user.estate_name}`:''}}
 					</view>
 					<!-- <view class="cross-center head1">
 						<image src="https://t17.9026.com/web/statics/image/sale/1.png" mode=""></image>
@@ -51,30 +52,19 @@
 					</view>
 				</view>
 				<view class="center">
-					<!-- <view class="main-between cross-center">
-						<view class="title">整体评价</view>
-						<view class="isopen cross-center">
-							展开
-							<image src="https://t17.9026.com/web/statics/image/user-center/arrow-bottom.png" mode=""></image>
-						</view>
-					</view> -->
-					<!-- <view class="center-text">客户xxxx向您发起了楼盘xxxx的认证通知,请前往我的-我的客户查看并处理</view> -->
-					<!-- <view class="center-img">
-						<image v-for="(item, index) in 5" :key="index" src="https://t17.9026.com/web/statics/image/user-center/1.png" mode=""></image>
-					</view> -->
-					<view class="main-between goods">
+					<view class="main-between goods" v-for="(goods,index1) in item.detail" :key="index1" @click="$jump({open_type:'navigate',url:'/pages/goods/goods?id='+goods.id})">
 						<view class="main-left desc">
-							<image class="goods-img" src="https://t17.9026.com/web/statics/image/user-center/1.png"
+							<image class="goods-img" :src="goods.goods_info.pic_url"
 								mode=""></image>
 							<view>
-								<view class="title t-omit-two">兴城人居ins居家占位套餐居家占位套餐居家占位套餐居家占位套餐居家占位套餐</view>
+								<view class="title t-omit-two">{{goods.goods_info.name}}</view>
 								<view class="main-between price">
 									<view>
 										<text class="company">¥</text>
-										<text>2466.00</text>
+										<text>{{goods.unit_price}}</text>
 									</view>
 									<view>
-										x1
+										x{{goods.num}}
 									</view>
 								</view>
 							</view>
@@ -85,27 +75,29 @@
 						</view> -->
 					</view>
 					<view class="main-between cross-bottom total_pay">
-						<view class="order_number">订单号:968606069111121</view>
-						<view><text>应付总</text><text>¥</text><text>2388.00</text></view>
+						<view class="order_number">订单号:{{item.order_no}}</view>
+						<view><text>应付总</text><text>¥</text><text>{{item.total_price}}</text></view>
 					</view>
 				</view>
 				<view class="main-between footer cross-center border_top">
 					<template>
-						<view class="date">2021-12-11</view>
+						<view class="date">{{item.updated_at.split(' ')[0]}}</view>
 						<view class="main-around">
 							<!-- <view class="kbtn">上传发票</view> -->
 							<view class="kbtn">再次购买</view>
-							<view class="kbtn">查看物流</view>
+							
+							<view class="kbtn" @click="$jump({open_type:'navigate',url:'/pages/order/express-detail/express-detail'})">查看物流</view>
 						</view>
 					</template>
-					<template v-if="false">
+					<!-- <template v-if="false">
 						<view class="left">查看详情</view>
 						<image style="width: 12rpx;height: 22rpx;"
 							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
-					</template>
+					</template> -->
 				</view>
 			</view>
-			<view class="no-more">没有更多了...</view>
+			<view class="no-more" v-if="isNoMore">没有更多了...</view>
+			<app-no-goods v-if="dataList.length===0" :title="'暂无数据'" background="#f7f7f7"></app-no-goods>
 		</view>
 		<template>
 			<view class="safe-area-inset-bottom">
@@ -115,22 +107,26 @@
 			<app-tab-bar :page-count="0"></app-tab-bar>
 		</template>
 	</view>
-	<!-- </app-layout> -->
+	</app-layout>
 </template>
 
 <script>
 	import {
-		mapGetters
+		mapGetters,
+		mapState
 	} from 'vuex'
 	import AppTabBar from '@/components/basic-component/app-tab-bar/app-tab-bar.vue';
 	import AppDropdownMenu from '@/components/fui-dropdown-menu/fui-dropdown-menu.vue';
+	import appNoGoods from '@/components/page-component/app-no-goods/app-no-goods.vue';
 	export default {
 		components: {
 			AppTabBar,
-			AppDropdownMenu
+			AppDropdownMenu,
+			appNoGoods,
 		},
 		data() {
 			return {
+				dataList:[{}],
 				options: [
 					[{
 						text: '订单状态',
@@ -159,18 +155,60 @@
 				range1: '全部客户',
 				selectIndex: 0,
 				rangeShow: false,
-				rangeShow1: false
+				rangeShow1: false,
+				
+				
+				keyword:'',
+				page:1,
+				isNoMore:false,
 			};
 		},
 		computed: {
 			...mapGetters('mallConfig', {
 				getTheme: 'getTheme'
+			}),
+			...mapState({
+				info:state=>state.user.info
 			})
 		},
 		onShow() {
 			uni.hideHomeButton()
+			this.getDataList()
+		},
+		onReachBottom() {
+			if(!this.isNoMore){
+				this.page++
+				this.getDataList()
+			}
 		},
 		methods: {
+			getDataList(){
+				this.$showLoading()
+				this.$request({
+					url:this.$api.order.list,
+					data:{
+						status: 0,
+						keyword: this.keyword,
+						dateArr: [],
+						page: this.page,
+						sale_id:this.info.salesperson_id
+					},
+					method:'get'
+				}).then(res=>{
+					this.$hideLoading()
+					if(res.code===0){
+						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.isNoMore=true
+						}
+					}
+				})
+			},
+			
 			filterTap(i) {
 				this.selectIndex = i
 				//显示下拉框
@@ -449,7 +487,7 @@
 		font-size: 24rpx;
 		font-weight: 500;
 		color: #666666;
-		margin-top: 37rpx;
 		text-align: center;
+		line-height: 80rpx;
 	}
 </style>

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

xqd
@@ -75,7 +75,7 @@
 					let currPage = pages[pages.length - 1]; //当前页面
 					let prevPage = pages[pages.length - 2]; //上一个页面
 					let multiIndex=[item.province_id,item.city_id,item.district_id]
-					prevPage.$vm.estateInfo={id:id,name:name,multiIndex:multiIndex,address:item.address}
+					prevPage.$vm.estateInfo={id:id,name:name,multiIndex:multiIndex,address:item.address,property:item.property}
 				this.selectIndex=index
 				this.show=true
 			},

+ 8 - 2
src/pages/sale/sale-user-center.vue

xqd xqd xqd
@@ -1,11 +1,11 @@
 <template>
 	<app-layout :haveBackground="false">
 		<image style="height: 396rpx;width: 100%;position: absolute;top: 0;left: 0;z-index: -1;"
-			src="https://t17.9026.com/web/statics/image/index/sale_top_bg.png" mode=""></image>
+			src="https://swdzshopv4.oss-cn-chengdu.aliyuncs.com/uploads/mall10000/20211209/0adfeb029f95892255541fd43cb70358.png" mode=""></image>
 		<app-nav-bar v-if="true" :fixed="true" :title="mall.name" color="#000" :hasMallSetting="2" background-color="">
 		</app-nav-bar>
 		<app-user-center-top :top-style="5" :member-pic-url="userCenter.member_pic_url"
-			:is_icon_super_vip="is_icon_super_vip" user-name-color="#ffffff" :isRealname="false"></app-user-center-top>
+			:is_icon_super_vip="is_icon_super_vip" user-name-color="#222" :isRealname="false"></app-user-center-top>
 
 		<app-my-income></app-my-income>
 
@@ -181,6 +181,7 @@
 				account_bar_status: function() {
 					return this.userCenter.account_bar ? this.userCenter.account_bar.status : 0;
 				},
+				info:state => state.user.info
 				// #ifdef H5
 				isWechat: function() {
 					return this.$jwx.isWechat();
@@ -359,6 +360,11 @@
 			// #ifdef H5
 			this.$jwx.config();
 			// #endif
+			if(!this.info.salesperson_info){
+				uni.navigateTo({
+					url:'/pages/sale/sale_login/sale_login'
+				})
+			}
 		},
 		onShow() {
 			this.$event.on(this.$const.EVENT_USER_LOGIN).then(() => {

+ 12 - 8
src/pages/sale/salePersonInfo.vue

xqd xqd xqd xqd
@@ -3,15 +3,15 @@
 		<view class="main-between cross-center list-item">
 			<view class="title">头像</view>
 			<view class="main-right cross-center">
-				<image class="head" src="../../static/image/index/head_port.png" mode=""></image>
-				<image class="arrow-right" src="../../static/image/index/arrow-right-gray.png" mode=""></image>
+				<image class="head" :src="info.salesperson_info?info.avatar:'https://t17.9026.com/web/statics/image/index/head_port.png'" mode=""></image>
+				<image class="arrow-right" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
 			</view>
 		</view>
 		<view class="line"></view>
 		<view class="main-between cross-center list-item">
 			<view class="title">姓名</view>
 			<view class="main-right cross-center">
-				<input class="input" type="text" v-model="name" />
+				<input class="input" type="text" v-model="info.salesperson_info.name" disabled />
 				<image class="arrow-right" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
 			</view>
 		</view>
@@ -19,7 +19,7 @@
 		<view class="main-between cross-center list-item">
 			<view class="title">电话号</view>
 			<view class="main-right cross-center">
-				<input class="input" type="text" v-model="mobile" />
+				<input class="input" type="text" v-model="info.salesperson_info.mobile" disabled />
 				<image class="arrow-right" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
 			</view>
 		</view>
@@ -27,7 +27,7 @@
 		<view class="main-between cross-center list-item">
 			<view class="title">性别</view>
 			<view class="main-right cross-center">
-				<input class="input" type="text" v-model="sex" />
+				<input class="input" type="text" :value="info.salesperson_info.sex=='1'?'男':'女'" disabled />
 				<image class="arrow-right" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
 			</view>
 		</view>
@@ -35,13 +35,17 @@
 </template>
 
 <script>
+	import {mapState} from "vuex"
 	export default {
 		data() {
 			return {
-				name:'万老三',
-				mobile:'13350561213',
-				sex:'男'
+				
 			};
+		},
+		computed:{
+			...mapState({
+				info:state=>state.user.info
+			})
 		}
 	}
 </script>

+ 10 - 5
src/pages/sale/sale_login/sale_login.vue

xqd xqd xqd
@@ -1,5 +1,5 @@
 <template>
-	<view>
+	<app-layout>
 		<view class="main-center autoCenter">
 			<image style="width: 229rpx; height: 58rpx;" src="https://t17.9026.com/web/statics/image/sale/xcrj_login.png" mode="">
 			</image>
@@ -17,17 +17,17 @@
 				<view class="b_line"></view>
 			</view>
 			<view class="forget" @click="forgetPwd">忘记密码</view>
-			<button class="submit" type="default" @tap="login">登录</button>
+			<button class="submit" type="default" @click="login">登录</button>
 		</view>
-	</view>
+	</app-layout>
 </template>
 
 <script>
 	export default {
 		data() {
 			return {
-				account:'wangwu',
-				password:'qweqweqwe',
+				account:'',
+				password:'',
 			};
 		},
 		methods:{
@@ -44,6 +44,11 @@
 						uni.reLaunch({
 							url:'/pages/sale/sale-user-center'
 						})
+					}else{
+						uni.showToast({
+							title:res.msg,
+							icon:'none'
+						})
 					}
 				})
 				

+ 1 - 1
src/pages/topic/list.vue

xqd
@@ -1,7 +1,7 @@
 <template>
     <app-layout>
         <view class="list">
-            <app-nav-bar v-if="navbarStatus" :fixed="true" :has-height="true"  @headHeight="headHeight" title="专题列表" color="block" background-color="white"></app-nav-bar>
+            <app-nav-bar v-if="navbarStatus" :fixed="true" :has-height="true"  @headHeight="headHeight" title="主题专区" color="block" background-color="white"></app-nav-bar>
             <view class="w-fixed" :style="{top: startHeight + 'px'}">
                 <view class="w-search dir-left-nowrap cross-center">
                     <view class="box-grow-1 w-input">

+ 2 - 2
src/pages/topic/topic.vue

xqd xqd
@@ -57,7 +57,7 @@
             </view>
             <view style="height: 111rpx"></view>
             <view class="detail-navbar dir-left-nowrap cross-center">
-                <view v-if="detail.is_favorite == 1" class="box-grow-1 dir-left-nowrap cross-center main-center"
+               <!-- <view v-if="detail.is_favorite == 1" class="box-grow-1 dir-left-nowrap cross-center main-center"
                       @click="handleLove('no_love',detail)">
                     <view>
                         <image :style="{'background-color': getTheme.background}" src="./image/weitao-love-a.png"></image>
@@ -70,7 +70,7 @@
                     <image src="./image/weitao-love.png"></image>
                     <view>收藏</view>
                 </view>
-                <view class="box-grow-0 line"></view>
+                <view class="box-grow-0 line"></view> -->
                 <view class="box-grow-1 dir-left-nowrap cross-center main-center" @click="isShare = true">
                     <image src="./image/weitao-detail-share.png"></image>
                     <view>分享</view>

+ 6 - 2
src/pages/user-center/evaluate/list.vue

xqd xqd xqd
@@ -39,7 +39,7 @@
 							<image v-for="(item1, index1) in item.pic_url" :key="index1" :src="item1" mode=""></image>
 						</view>
 						<view class="main-between goods">
-							<view class="main-left desc">
+							<view class="main-left desc" @click="$jump({open_type:'navigate',url:`/pages/goods/goods?id=${item.goods_id}`})">
 								<image class="goods-img" :src="item.cover_img" mode=""></image>
 								<view>
 									<view class="title t-omit">{{item.goods_name}}</view>
@@ -58,7 +58,7 @@
 					</template>
 				</view>
 			</view>
-
+			<appNoData v-if="evaluateList.length==0" :title="'暂无评价'"></appNoData>
 			<view class="no-more" v-if="noMore">没有更多了...</view>
 		</view>
 	</app-layout>
@@ -68,7 +68,11 @@
 	import {
 		mapState
 	} from "vuex"
+	import appNoData from '@/components/page-component/app-no-goods/app-no-goods.vue';
 	export default {
+		components:{
+			appNoData
+		},
 		data() {
 			return {
 				page: 1,

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

xqd
@@ -24,7 +24,7 @@
 			</view>
 			<view class="cross-bottom">
 				<view class="main-center cross-center receive" @click="receive" v-if="coupons.length>0">
-					领券<image src="../../../../static/image/index/arrow-right-facet-white.png" mode=""></image>
+					领券<image src="https://t17.9026.com/web/statics/image/index/arrow-right-facet-white.png" mode=""></image>
 				</view>
 			</view>
 		</view>

+ 3 - 0
src/plugins/pt/order/order.vue

xqd xqd xqd
@@ -6,6 +6,7 @@
 		    </view>
 	        <view class="order-list">
 		        <app-order-list :theme="getTheme" @click="deleteItem" :list="list"></app-order-list>
+				<AppNoData v-if="list.length===0" title="暂无订单"></AppNoData>
 	        </view>
 	    </view>
     </app-layout>
@@ -14,6 +15,7 @@
 <script>
 	import appNav from '../components/app-nav.vue';
 	import appOrderList from '../components/app-order-list.vue';
+	import AppNoData from '@/components/page-component/app-no-goods/app-no-goods.vue'
 	import {mapGetters} from "vuex";
 	
     export default {
@@ -85,6 +87,7 @@
 	    components: {
             'app-nav': appNav,
 		    'app-order-list': appOrderList,
+			AppNoData,
 	    }
     }
 </script>

+ 5 - 0
src/static/css/hxj.scss

xqd
@@ -83,3 +83,8 @@
 	}
 }
 
+.hxj-line{
+	width: 100%;
+	height: 1px;
+	background-color:#CACACA;
+}

BIN
src/static/image.zip


BIN
src/static/image/index/appointment_top.png


BIN
src/static/image/index/img-coupon-bg-0.png


+ 23 - 3
src/store/modules/user.js

xqd xqd xqd xqd xqd xqd xqd
@@ -1,7 +1,9 @@
+import Vue from 'vue';
 import user from '../../core/user.js';
 
 const state = {
 	accessToken: null,
+	customerAccessToken: null,
 	info: null,
 	showLoginModal: false,
 	tempParentId: 0,
@@ -16,17 +18,19 @@ const state = {
 	},
 	isSign: false,
 
-	selectedProperties: {
-		name: '绑定楼盘'
-	},
+	selectedProperties: uni.getStorageSync('selectedProperties')?uni.getStorageSync('selectedProperties'):{name: '绑定楼盘'},
 
 	isEnterSales: false, //是否进入销售端
+	isOrderBehalfBustomers: false, //是否代客下单
 };
 
 const getters = {
 	accessToken(state) {
 		return state.accessToken;
 	},
+	customerAccessToken(state) {
+		return state.customerAccessToken;
+	},
 	info(state) {
 		return state.info;
 	},
@@ -56,6 +60,9 @@ const getters = {
 	},
 	getIsEnterSales(state) {
 		return state.isEnterSales;
+	},
+	getIsOrderBehalfBustomers(state) {
+		return state.isOrderBehalfBustomers;
 	}
 };
 
@@ -63,6 +70,9 @@ const mutations = {
 	accessToken(state, data) {
 		state.accessToken = data;
 	},
+	customerAccessToken(state, data) {
+		state.customerAccessToken = data;
+	},
 	info(state, data) {
 		state.info = data;
 	},
@@ -95,6 +105,9 @@ const mutations = {
 		}
 		state.isEnterSales = data;
 	},
+	isOrderBehalfBustomers(state,data){
+		state.isOrderBehalfBustomers = data;
+	},
 	selectedProperties(state, data) {
 		state.selectedProperties = data
 	}
@@ -129,6 +142,9 @@ const actions = {
 			context.commit('accessToken', accessToken);
 			user.getInfo(options).then(data => {
 				context.commit('info', data);
+				if(context.state.selectedProperties.id==undefined){
+					context.dispatch('selectedProperties', data.estate);
+				}
 			});
 		}).catch((err) => {
 			context.commit('showLoginModal', true);
@@ -171,6 +187,10 @@ const actions = {
 	},
 	showAttentionTwo(context, data) {
 		context.commit('showAttentionTwo', data);
+	},
+	selectedProperties(context, data){
+		context.commit('selectedProperties', data);
+		uni.setStorageSync('selectedProperties',data)
 	}
 };