1
0

4 کامیت‌ها c21e1809ae ... 79b2a712ff

نویسنده SHA1 پیام تاریخ
  huangzhe 79b2a712ff 用户端绑定楼盘接口完成,细节未完善,商品详情对接,销售端接口完善 3 سال پیش
  一懒众山小 eb9ff9e4b5 地址选择器修改,用户端绑定楼盘接口 3 سال پیش
  huangzhe 11969ea243 首页diy部分修改 3 سال پیش
  huangzhe f50dbe4589 首页diy部分修改 3 سال پیش

+ 1 - 1
src/components/basic-component/app-goods/app-goods.vue

xqd
@@ -46,7 +46,7 @@
 			<!-- 商品 -->
 			<view @click="toDetail" class="goods-info dir-top-nowrap main-between box-grow-1" :class="[textStyle == 2 ? 'main-center' :'',showTag && pluginTag ? '' : 'no-tag']" v-if="showGoodsName || isUnderLinePrice || showGoodsPrice">
 				<view class="goods-top">
-					<view v-if="showGoodsName" class="goods-name t-omit-two" :style="{textAlign: textStyle == 2 ? 'center' : 'left'}">
+					<view v-if="showGoodsName" class="goods-name t-omit" :style="{textAlign: textStyle == 2 ? 'center' : 'left'}">
 						<text v-if="showTag && pluginTag" :style="{'background-color': themeColor.background}" class="tag">{{pluginTag}}</text>
 						<text>{{goods.name || goods.goods_name}}</text>
 					</view>

+ 271 - 279
src/components/page-component/app-area-picker/app-area-picker.vue

xqd xqd xqd
@@ -1,24 +1,33 @@
 <template>
 	<view class="dir-left-nowrap cross-center">
 		<!-- #ifdef MP-WEIXIN || MP-BAIDU || H5 -->
-		<picker class="box-grow-1 area-picker-left" mode="multiSelector" @change="bindMultiPickerChange"
-			@columnchange="bindMultiPickerColumnChange" :value="multiIndex" range-key="name" :range="multiArray">
-			<slot>
-				<text v-if="place!==`请选择`" class="address-name-color">{{place}}</text>
-				<text v-else class="address-place-name-color">{{place}}</text>
-			</slot>
+		<picker
+			class="box-grow-1 area-picker-left"
+			mode="multiSelector"
+			@change="bindMultiPickerChange"
+			@cancel="bindMultiPickerCancel"
+			@columnchange="bindMultiPickerColumnChange"
+			:value="multiIndex"
+			range-key="name"
+			:range="multiArray"
+		>	
+			<template v-if="$slots.default">
+				<slot></slot>
+			</template>
+			<template v-else>
+				<text v-if="place !== `请选择`" class="address-name-color">{{ place }}</text>
+				<text v-else class="address-place-name-color">{{ place }}</text>
+			</template>
 		</picker>
 		<!-- #endif -->
 
 		<!-- #ifdef MP-ALIPAY || MP-TOUTIAO -->
 		<view class="area-picker-left" @click="showAreaPicker">
-			<text v-if="place!==`请选择`" class="address-name-color">{{place}}</text>
-			<text v-else class="address-place-name-color">{{place}}</text>
+			<text v-if="place !== `请选择`" class="address-name-color">{{ place }}</text>
+			<text v-else class="address-place-name-color">{{ place }}</text>
 		</view>
 		<view class="area-picker" :class="area_picker_show">
-			<view class="area-picker-bg" bindtap="hideAreaPicker">
-				<scroll-view></scroll-view>
-			</view>
+			<view class="area-picker-bg" bindtap="hideAreaPicker"><scroll-view></scroll-view></view>
 			<view class="area-picker-body">
 				<scroll-view>
 					<view class="area-picker-top">
@@ -26,21 +35,26 @@
 						<text class="area-picker-confirm" @click="areaPickerConfirm">确认</text>
 					</view>
 					<view class="area-picker-row">
-						<picker-view v-if="multiIndex && multiIndex.length" indicator-style="height: 50px"
-							style="width: 100%; height: 250px;" :value="multiIndex" @change="areaPickerChange">
+						<picker-view
+							v-if="multiIndex && multiIndex.length"
+							indicator-style="height: 50px"
+							style="width: 100%; height: 250px;"
+							:value="multiIndex"
+							@change="areaPickerChange"
+						>
 							<picker-view-column>
-								<view v-if="multiArray[0]" v-for="(item,index) in multiArray[0]" :key="index"
-									style="line-height: 50px;height: 50px;text-align: center">{{item.name}}
+								<view v-if="multiArray[0]" v-for="(item, index) in multiArray[0]" :key="index" style="line-height: 50px;height: 50px;text-align: center">
+									{{ item.name }}
 								</view>
 							</picker-view-column>
 							<picker-view-column>
-								<view v-if="multiArray[1]" v-for="(item,index) in multiArray[1]" :key="index"
-									style="line-height: 50px;height: 50px;text-align: center">{{item.name}}
+								<view v-if="multiArray[1]" v-for="(item, index) in multiArray[1]" :key="index" style="line-height: 50px;height: 50px;text-align: center">
+									{{ item.name }}
 								</view>
 							</picker-view-column>
 							<picker-view-column>
-								<view v-if="multiArray[2]" v-for="(item,index) in multiArray[2]" :key="index"
-									style="line-height: 50px;height: 50px;text-align: center">{{item.name}}
+								<view v-if="multiArray[2]" v-for="(item, index) in multiArray[2]" :key="index" style="line-height: 50px;height: 50px;text-align: center">
+									{{ item.name }}
 								</view>
 							</picker-view-column>
 						</picker-view>
@@ -49,308 +63,286 @@
 			</view>
 		</view>
 		<!-- #endif -->
-		<slot>
-			<image class="box-grow-0 arrow-image"
-				src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-		</slot>
+		<image v-if="!$slots.default" class="box-grow-0 arrow-image" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
 	</view>
 </template>
 
 <script>
-	export default {
-		name: "app-area-picker",
-		props: {
-			ids: {
-				type: Array,
-				default: function() {
-					return []
-				}
+export default {
+	name: 'app-area-picker',
+	props: {
+		ids: {
+			type: Array,
+			default: function() {
+				return [];
 			}
-		},
-		data() {
-			return {
-				tempIds: this.ids,
-				area_picker_show: '',
-				list: [],
-				multiIndex: [],
-				multiArray: [],
-				place: '',
+		}
+	},
+	data() {
+		return {
+			tempIds: this.ids,
+			area_picker_show: '',
+			list: [],
+			multiIndex: [],
+			multiArray: [],
+			place: ''
+		};
+	},
+	created: function() {
+		this.tempIds = this.tempIds.concat();
+	},
+	watch: {
+		ids: {
+			handler: function(newData, oldData) {
+				this.tempIds = this.ids;
 			}
 		},
-		created: function() {
-			this.tempIds = this.tempIds.concat();
-		},
-		watch: {
-			ids: {
-				handler: function(newData, oldData) {
-					this.tempIds = this.ids;
-				},
-			},
-			tempIds: {
-				handler: function(newData, oldData) {
-					const self = this;
-					self.before((data) => {
-						self.init(data);
-					})
-					this.$emit('ids', this.tempIds);
-				},
-				deep: true,
-				immediate: true,
-			},
-		},
-
-		methods: {
-			//#ifdef MP-ALIPAY || MP-TOUTIAO
-			showAreaPicker: function() {
-				this.area_picker_show = 'active';
+		tempIds: {
+			handler: function(newData, oldData) {
+				const self = this;
+				self.before(data => {
+					self.init(data);
+				});
+				this.$emit('ids', this.tempIds);
 			},
+			deep: true,
+			immediate: true
+		}
+	},
 
-			hideAreaPicker: function() {
-				this.area_picker_show = '';
-			},
+	methods: {
+		//#ifdef MP-ALIPAY || MP-TOUTIAO
+		showAreaPicker: function() {
+			this.area_picker_show = 'active';
+		},
 
-			areaPickerConfirm: function(e) {
-				this.bindMultiPickerChange({
-					detail: {
-						value: this.multiIndex
-					}
-				});
-				this.hideAreaPicker();
-			},
+		hideAreaPicker: function() {
+			this.area_picker_show = '';
+		},
 
-			areaPickerChange: function(e) {
-				const self = this;
-				if (self.area_picker_show == '') return;
-				let detail = {
-					column: '',
-					value: '',
-				};
-				for (let i = 0; i < 3; i++) {
-					if (e.detail.value[i] !== self.multiIndex[i]) {
-						detail.column = i;
-						detail.value = e.detail.value[i];
-						break;
-					}
+		areaPickerConfirm: function(e) {
+			this.bindMultiPickerChange({
+				detail: {
+					value: this.multiIndex
 				}
-				self.multiIndex = e.detail.value;
-				self.bindMultiPickerColumnChange({
-					detail: detail
-				});
-			},
-			//#endif
+			});
+			this.hideAreaPicker();
+		},
 
-			before(cb) {
-				const self = this;
-				const district = this.$storage.getStorageSync("_DISTRICT");
-				if (district) {
-					cb(district);
-				} else {
-					this.$request({
-						url: self.$api.default.district,
-					}).then(info => {
-						if (info.code === 0) {
-							this.$storage.setStorageSync("_DISTRICT", info.data.list);
-							cb(info.data.list);
-						}
-					})
+		areaPickerChange: function(e) {
+			const self = this;
+			if (self.area_picker_show == '') return;
+			let detail = {
+				column: '',
+				value: ''
+			};
+			for (let i = 0; i < 3; i++) {
+				if (e.detail.value[i] !== self.multiIndex[i]) {
+					detail.column = i;
+					detail.value = e.detail.value[i];
+					break;
 				}
-			},
+			}
+			self.multiIndex = e.detail.value;
+			self.bindMultiPickerColumnChange({
+				detail: detail
+			});
+		},
+		//#endif
 
-			init: function(list) {
-				const null_status = this.tempIds.length === 3 && this.tempIds[0] != 0;
-				const ids = null_status ? this.tempIds : [2, 3, 4];
-				const multiIndex = this.getIndex(list, ids);
-				const multiArray = [
-					list,
-					list[multiIndex[0]].list,
-					list[multiIndex[0]].list[multiIndex[1]].list
-				];
-				let place = multiArray[0][multiIndex[0]].name +
-					',' +
-					multiArray[1][multiIndex[1]].name +
-					',' +
-					multiArray[2][multiIndex[2]].name;
+		before(cb) {
+			const self = this;
+			const district = this.$storage.getStorageSync('_DISTRICT');
+			if (district) {
+				cb(district);
+			} else {
+				this.$request({
+					url: self.$api.default.district
+				}).then(info => {
+					if (info.code === 0) {
+						this.$storage.setStorageSync('_DISTRICT', info.data.list);
+						cb(info.data.list);
+					}
+				});
+			}
+		},
 
-				/////初始化
-				let eve = [
-					multiArray[0][multiIndex[0]],
-					multiArray[1][multiIndex[1]],
-					multiArray[2][multiIndex[2]],
-				];
-				////
-				this.setEvent(eve, null_status);
-				[this.list, this.multiArray, this.multiIndex, this.place] = [list, multiArray, multiIndex,
-					null_status ? place : '请选择'
-				]
-			},
+		init: function(list) {
+			const null_status = this.tempIds.length === 3 && this.tempIds[0] != 0;
+			const ids = null_status ? this.tempIds : [2, 3, 4];
+			const multiIndex = this.getIndex(list, ids);
+			const multiArray = [list, list[multiIndex[0]].list, list[multiIndex[0]].list[multiIndex[1]].list];
+			let place = multiArray[0][multiIndex[0]].name + ',' + multiArray[1][multiIndex[1]].name + ',' + multiArray[2][multiIndex[2]].name;
 
-			getIndex: function(list, data) {
-				let arr = [];
-				list.map((item, index) => {
-					if (data[0] == item.id) arr.push(index)
-				});
+			/////初始化
+			let eve = [multiArray[0][multiIndex[0]], multiArray[1][multiIndex[1]], multiArray[2][multiIndex[2]]];
+			////
+			this.setEvent(eve, null_status);
+			[this.list, this.multiArray, this.multiIndex, this.place] = [list, multiArray, multiIndex, null_status ? place : '请选择'];
+		},
 
-				list[arr[0]].list.map((item, index) => {
-					if (data[1] == item.id) arr.push(index)
-				});
+		getIndex: function(list, data) {
+			let arr = [];
+			list.map((item, index) => {
+				if (data[0] == item.id) arr.push(index);
+			});
 
-				list[arr[0]].list[arr[1]].list.map((item, index) => {
-					if (data[2] == item.id) arr.push(index);
-				});
-				return arr;
-			},
+			list[arr[0]].list.map((item, index) => {
+				if (data[1] == item.id) arr.push(index);
+			});
 
-			bindMultiPickerChange: function(e) {
-				let list = [
-					this.multiArray[0][e.detail.value[0]],
-					this.multiArray[1][e.detail.value[1]],
-					this.multiArray[2][e.detail.value[2]],
-				];
+			list[arr[0]].list[arr[1]].list.map((item, index) => {
+				if (data[2] == item.id) arr.push(index);
+			});
+			return arr;
+		},
 
-				let place = list[0].name +
-					',' +
-					list[1].name +
-					',' +
-					list[2].name;
-				[this.multiIndex, this.place] = [e.detail.value, place];
-				this.setEvent(list);
-			},
+		bindMultiPickerChange: function(e) {
+			let list = [this.multiArray[0][e.detail.value[0]], this.multiArray[1][e.detail.value[1]], this.multiArray[2][e.detail.value[2]]];
 
-			setEvent: function(list, status = true) {
-				let data = {
-					province: {
-						id: list[0].id,
-						name: list[0].name
-					},
-					city: {
-						id: list[1].id,
-						name: list[1].name
-					},
-					district: {
-						id: list[2].id,
-						name: list[2].name
-					},
-				};
-				this.$emit('customevent', status ? data : null);
-			},
+			let place = list[0].name + ',' + list[1].name + ',' + list[2].name;
+			[this.multiIndex, this.place] = [e.detail.value, place];
+			this.setEvent(list);
+		},
+		bindMultiPickerCancel(){
+			this.$emit('cancel');
+		},
 
-			bindMultiPickerColumnChange: function(e) {
-				let data = {
-					multiArray: this.multiArray,
-					multiIndex: this.multiIndex
-				};
-				data.multiIndex[e.detail.column] = e.detail.value;
-				switch (e.detail.column) {
-					case 0:
-						data.multiIndex.splice(1, 1, 0);
-						data.multiIndex.splice(2, 1, 0);
-						data.multiArray.splice(1, 1, this.list[data.multiIndex[0]].list);
-						data.multiArray.splice(2, 1, this.list[data.multiIndex[0]].list[data.multiIndex[1]].list);
-						break;
-					case 1:
-						data.multiIndex.splice(2, 1, 0);
-						data.multiArray.splice(2, 1, this.list[data.multiIndex[0]].list[data.multiIndex[1]].list);
-						break;
+		setEvent: function(list, status = true) {
+			let data = {
+				province: {
+					id: list[0].id,
+					name: list[0].name
+				},
+				city: {
+					id: list[1].id,
+					name: list[1].name
+				},
+				district: {
+					id: list[2].id,
+					name: list[2].name
 				}
-				[this.multiArray, this.multiIndex] = [data.multiArray, data.multiIndex]
-			},
+			};
+			this.$emit('customevent', status ? data : null);
 		},
+
+		bindMultiPickerColumnChange: function(e) {
+			let data = {
+				multiArray: this.multiArray,
+				multiIndex: this.multiIndex
+			};
+			data.multiIndex[e.detail.column] = e.detail.value;
+			switch (e.detail.column) {
+				case 0:
+					data.multiIndex.splice(1, 1, 0);
+					data.multiIndex.splice(2, 1, 0);
+					data.multiArray.splice(1, 1, this.list[data.multiIndex[0]].list);
+					data.multiArray.splice(2, 1, this.list[data.multiIndex[0]].list[data.multiIndex[1]].list);
+					break;
+				case 1:
+					data.multiIndex.splice(2, 1, 0);
+					data.multiArray.splice(2, 1, this.list[data.multiIndex[0]].list[data.multiIndex[1]].list);
+					break;
+			}
+			[this.multiArray, this.multiIndex] = [data.multiArray, data.multiIndex];
+		}
 	}
+};
 </script>
 
 <style scoped lang="scss">
-	.area-picker-left {
-		min-width: #{115rpx};
-		font-size: #{28rpx};
-		padding-right: #{24rpx};
-		line-height: 1.5;
-		margin-left: auto;
-
-		.address-name-color {
-			color: #353535;
-		}
+.area-picker-left {
+	min-width: #{115rpx};
+	font-size: #{28rpx};
+	padding-right: #{24rpx};
+	line-height: 1.5;
+	margin-left: auto;
 
-		.address-place-name-color {
-			color: #999999;
-		}
+	.address-name-color {
+		color: #353535;
 	}
 
-	.arrow-image {
-		width: #{12rpx};
-		height: #{24rpx};
+	.address-place-name-color {
+		color: #999999;
 	}
+}
 
-	/* #ifdef MP-ALIPAY || MP-TOUTIAO  */
-	.area-picker {
-		position: fixed;
-		z-index: 1600;
-		left: 0;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		display: flex;
-		flex-direction: column;
-		transform: translateY(100%);
-		transition: 250ms opacity;
-		opacity: 0;
-		background: rgba(0, 0, 0, .3);
-	}
+.arrow-image {
+	width: #{12rpx};
+	height: #{24rpx};
+}
 
-	.area-picker.active {
-		transform: translateY(0);
-		opacity: 1;
-	}
+/* #ifdef MP-ALIPAY || MP-TOUTIAO  */
+.area-picker {
+	position: fixed;
+	z-index: 1600;
+	left: 0;
+	top: 0;
+	width: 100%;
+	height: 100%;
+	display: flex;
+	flex-direction: column;
+	transform: translateY(100%);
+	transition: 250ms opacity;
+	opacity: 0;
+	background: rgba(0, 0, 0, 0.3);
+}
 
-	.area-picker .area-picker-bg {
-		flex-grow: 1;
-		position: relative;
-	}
+.area-picker.active {
+	transform: translateY(0);
+	opacity: 1;
+}
 
-	.area-picker .area-picker-bg>scroll-view {
-		left: 0;
-		top: 0;
-		height: 100%;
-		width: 100%;
-		position: absolute;
-	}
+.area-picker .area-picker-bg {
+	flex-grow: 1;
+	position: relative;
+}
 
-	.area-picker .area-picker-body {
-		flex-grow: 0;
-		height: #{600rpx};
-		background: #fff;
-		transform: translateY(100%);
-		transition: 250ms transform;
-		position: relative;
-	}
+.area-picker .area-picker-bg > scroll-view {
+	left: 0;
+	top: 0;
+	height: 100%;
+	width: 100%;
+	position: absolute;
+}
 
-	.area-picker.active .area-picker-body {
-		transform: translateY(0);
-	}
+.area-picker .area-picker-body {
+	flex-grow: 0;
+	height: #{600rpx};
+	background: #fff;
+	transform: translateY(100%);
+	transition: 250ms transform;
+	position: relative;
+}
 
-	.area-picker .area-picker-body>scroll-view {
-		left: 0;
-		top: 0;
-		height: 100%;
-		width: 100%;
-		position: absolute;
-	}
+.area-picker.active .area-picker-body {
+	transform: translateY(0);
+}
 
-	.area-picker .area-picker-cancel,
-	.area-picker .area-picker-confirm {
-		display: inline-block;
-		padding: #{24rpx};
-		color: #888;
-	}
+.area-picker .area-picker-body > scroll-view {
+	left: 0;
+	top: 0;
+	height: 100%;
+	width: 100%;
+	position: absolute;
+}
 
-	.area-picker .area-picker-confirm {
-		float: right;
-		color: #00aa00;
-	}
+.area-picker .area-picker-cancel,
+.area-picker .area-picker-confirm {
+	display: inline-block;
+	padding: #{24rpx};
+	color: #888;
+}
 
-	.area-picker .area-picker-row {
-		width: 100%;
-		height: #{500rpx};
-	}
+.area-picker .area-picker-confirm {
+	float: right;
+	color: #00aa00;
+}
+
+.area-picker .area-picker-row {
+	width: 100%;
+	height: #{500rpx};
+}
 
-	/* #endif */
+/* #endif */
 </style>

+ 94 - 2
src/components/page-component/app-associated-link/app-associated-link.vue

xqd xqd
@@ -23,14 +23,22 @@
                     	<view :style="{backgroundColor: styleColor}" class="bottom-icon"></view>
                     </view>
                 </view>
-                <view v-else-if="styleNum == '4'" class="app-link-title box-grow-1 dir-left-nowrap cross-center">
+                <!-- <view v-else-if="styleNum == '4'" class="app-link-title box-grow-1 dir-left-nowrap cross-center">
                     <image :style="{backgroundColor: styleColor}" class="app-title-line div" :src="styleImg.div"></image>
                     <view :style="{color: color}">{{title}}</view>
-                </view>
+                </view> -->
                 <view v-else-if="styleNum == '5'" class="app-link-title box-grow-1 dir-left-nowrap cross-center">
                     <view :style="[{'border-color':`${styleColor}`,'background-color':`${background}`}]" class="app-title-line radius"></view>
                     <view :style="{color: color}">{{title}}</view>
                 </view>
+				<view v-else-if="styleNum=='4'" class="hxj-link-diy">
+					<view>
+						<view class="title">{{title}}<image class="hxjImg"
+								src="https://t17.9026.com/web/statics/image/index/HUIXIANGJIA.png" mode=""></image>
+						</view>
+					</view>
+				
+				</view>
                 <view v-if="arrowsSwitch" class="app-more-text">更多</view>
 				<icon class="app-icon" v-if="arrowsSwitch" type></icon>
 			</view>
@@ -236,5 +244,89 @@
 		        vertical-align: top;
 		    }
     	}
+		
+		
+		.hxj-link-diy {
+			padding: 30rpx 40rpx;
+			position: relative;
+			font-family: PingFangSC-Semibold, PingFang SC;
+			.hxj {
+				font-size: 40rpx;
+				font-weight: 600;
+				color: #e7dac1;
+				background: angular-gradient(180deg, #e1cfaf 0%, #fefffe 100%);
+				-webkit-background-clip: text;
+				// -webkit-text-fill-color: transparent;
+			}
+		
+			.title {
+				font-weight: 500;
+				color: #121212;
+				font-size: 32rpx;
+				position: relative;
+				z-index: 2;
+				.hxjImg {
+					width: 249rpx;
+					height: 31rpx;
+					position: absolute;
+					top: -9rpx;
+					left: 1rpx;
+					z-index: -1;
+				}
+			}
+			.title1 {
+				font-weight: 500;
+				font-size: 26rpx;
+				position: relative;
+				color: #121212;
+				z-index: 2;
+			}
+			.tyx {
+				width: 37rpx;
+				height: 37rpx;
+				position: absolute;
+				top: 26rpx;
+				left: 24rpx;
+				z-index: 1;
+			}
+			.d6 {
+				width: 32rpx;
+				height: 17rpx;
+				position: absolute;
+				top: 40rpx;
+				left: 234rpx;
+				z-index: 1;
+			}
+			.subtitle {
+				height: 34rpx;
+				font-size: 24rpx;
+				font-weight: 400;
+				color: #a7a7a7;
+				line-height: 34rpx;
+			}
+			.coupon_1 {
+				width: 15rpx;
+				height: 15rpx;
+				margin-left: 25rpx;
+			}
+			.coupon_sub {
+				font-size: 20rpx;
+				font-weight: 400;
+				color: #999999;
+				line-height: 28rpx;
+				letter-spacing: 3rpx;
+				margin-left: 25rpx;
+			}
+			.link-more{
+				font-size: 25rpx;
+				font-weight: 500;
+				color: #989898;
+				image{
+					width: 12rpx;
+					height: 19rpx;
+					margin-left: 6rpx;
+				}
+			}
+		}
 	}
 </style>

+ 402 - 320
src/components/page-component/app-exclusive-coupon/app-exclusive-coupon-two.vue

xqd xqd
@@ -1,14 +1,11 @@
 <template>
-    <view class="app-exclusive-coupon-two" :style="{'background-color': `${noneColor ? '' : background}`}">
-        <view class="app-bottom" v-if="coupon_list.length > 0">
-            <scroll-view scroll-x class="app-scroll dir-left-nowrap">
-                <view v-for="(item, index) in coupon_list"
-                      :key="index"
-                      class="app-item"
-                      :style="[couponBoxStyle(item,index)]"
-                >
-                    <app-form-id @click="receive(index)">
-                        <view class="coupon-bg">
+	<view class="app-exclusive-coupon-two" :style="{'background-color': `${noneColor ? '' : background}`}">
+		<view class="app-bottom" v-if="coupon_list.length > 0">
+			<scroll-view scroll-x class="app-scroll dir-left-nowrap">
+				<view v-for="(item, index) in coupon_list" :key="index" class="app-item"
+					:style="[couponBoxStyle(item,index)]">
+					<app-form-id @click="receive(index)">
+						<!-- <view class="coupon-bg">
                             <img style="height: 100%;width: 100%" :src="couponBgImg" alt="">
                         </view>
                         <view v-if="coupon_list.length === 1" class="dir-left-nowrap" style="height: 100%"
@@ -42,339 +39,424 @@
                                     {{item.is_receive == 0 ? receiveTip : item.is_receive > 0 ? '已领取' : ''}}
                                 </text>
                             </view>
-                        </view>
-                    </app-form-id>
-                </view>
-            </scroll-view>
-        </view>
-    </view>
+                        </view> -->
+
+						<view class="coupon main-left">
+							<view class="item main-left">
+								<view class="Wb">
+									<view>
+										<view class="title_2">{{item.name}} <text
+												class="hjx-tc-B19D60 hjx-ts-21 hxj-ml-10">立即领取</text></view>
+										<view class="desc_2">新用户礼遇</view>
+									</view>
+									<view>
+										<view class="price"><text>¥</text>{{item.sub_price}}</view>
+										<view class="yxq">有效期至2021-12-31</view>
+									</view>
+								</view>
+							</view>
+						</view>
+
+					</app-form-id>
+				</view>
+			</scroll-view>
+		</view>
+	</view>
 </template>
 
 <script>
-    export default {
-        name: 'app-exclusive-coupon-two',
-        props: {
-            receiveBg: {
-                type: String,
-                default: function() {
-                    return '';
-                }
-            },
-            list: {
-                type: Array,
-                default: function() {
-                    return [];
-                }
-            },
-            textColor: {
-                type: String,
-                default: function() {
-                    return  "#ffffff";
-                }
-            },
-            unclaimedBg: {
-                type: String,
-                default: function() {
-                    return ''
-                }
-            },
-            index: {
-                type: Number,
-            },
-            sign: {
-                type: String,
-            },
-            noneColor: {
-                type: Boolean,
-                default() {
-                    return false;
-                }
-            },
-            background: String,
-            page_id: Number,
-            template_id: Number,
-            is_required: Boolean,
-            coupon_req: Boolean,
-            couponBg: {
-                type: String,
-                default: '#D9BC8B',
-            },
-            //diy手动添加优惠券标识
-            addType: String,
-            couponBgType: {
-                type: String,
-                default() {
-                    return '#pure';
-                }
-            },
-            dIndex: {
-                type: Array,
-                default() {
-                    return [0, 0];
-                }
-            },
-            mIndex: {
-                type: Array,
-                default() {
-                    return [0, 0];
-                }
-            },
-            dType: String,
-        },
-        data() {
-            return {
-                coupon_list: []
-            };
-        },
-        computed: {
-            receiveTip() {
-                let receiveTip = '立即领取';
-                if (this.sign === 'integral-mall') {
-                    receiveTip = '立即兑换';
-                }
-                return receiveTip;
-            },
-            couponBgImg() {
-                //wechat ../../../
-                switch (this.coupon_list.length) {
-                    case 1:
-                        return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_1.png';
-                    case 2:
-                        return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_2.png';
-                    case 3:
-                        return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_3.png';
-                    default:
-                        return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_4.png';
-                }
-            },
+	export default {
+		name: 'app-exclusive-coupon-two',
+		props: {
+			receiveBg: {
+				type: String,
+				default: function() {
+					return '';
+				}
+			},
+			list: {
+				type: Array,
+				default: function() {
+					return [];
+				}
+			},
+			textColor: {
+				type: String,
+				default: function() {
+					return "#ffffff";
+				}
+			},
+			unclaimedBg: {
+				type: String,
+				default: function() {
+					return ''
+				}
+			},
+			index: {
+				type: Number,
+			},
+			sign: {
+				type: String,
+			},
+			noneColor: {
+				type: Boolean,
+				default () {
+					return false;
+				}
+			},
+			background: String,
+			page_id: Number,
+			template_id: Number,
+			is_required: Boolean,
+			coupon_req: Boolean,
+			couponBg: {
+				type: String,
+				default: '#D9BC8B',
+			},
+			//diy手动添加优惠券标识
+			addType: String,
+			couponBgType: {
+				type: String,
+				default () {
+					return '#pure';
+				}
+			},
+			dIndex: {
+				type: Array,
+				default () {
+					return [0, 0];
+				}
+			},
+			mIndex: {
+				type: Array,
+				default () {
+					return [0, 0];
+				}
+			},
+			dType: String,
+		},
+		data() {
+			return {
+				coupon_list: []
+			};
+		},
+		computed: {
+			receiveTip() {
+				let receiveTip = '立即领取';
+				if (this.sign === 'integral-mall') {
+					receiveTip = '立即兑换';
+				}
+				return receiveTip;
+			},
+			couponBgImg() {
+				//wechat ../../../
+				switch (this.coupon_list.length) {
+					case 1:
+						return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_1.png';
+					case 2:
+						return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_2.png';
+					case 3:
+						return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_3.png';
+					default:
+						return 'https://shop.9026.com/web/statics/img/mall/diy/bg_coupon_index_4.png';
+				}
+			},
 
-            couponBoxStyle() {
-                return (data, index) => {
-                    let couponList = this.coupon_list;
-                    let width, background;
+			couponBoxStyle() {
+				return (data, index) => {
+					let couponList = this.coupon_list;
+					let width, background;
 
-                    let screenWidth = uni.getSystemInfoSync().windowWidth;
-                    let p = 750 / screenWidth;
-                    switch (couponList.length) {
-                        case 1:
-                            width = `${parseInt(702 / p)}px`;
-                            break;
-                        case 2:
-                            width = `${parseInt(341 / p)}px`;
-                            break;
-                        case 3:
-                            width = `${parseInt(220 / p)}px`;
-                            break;
-                        default:
-                            width = `${parseInt(274 / p)}px`;
-                            break;
-                    }
-                    let extra = {'margin-left': `${20 / p}px`};
-                    if (index === 0) extra = Object.assign(extra, {'margin-left': `${24 / p}px`});
-                    if (index === this.coupon_list.length - 1) extra = Object.assign(extra, {'margin-right': `${24 / p}px`});
-                    if (data.is_receive > 0) {
-                        background = '#B4B4B4';
-                    } else if (this.couponBgType === 'gradient') {
-                        background = 'linear-gradient(to left, ' + this.couponBg + ',' + this.$utils.colorRgba(this.couponBg, 0.5) + ')';
-                    } else {
-                        background = this.couponBg;
-                    }
-                    return Object.assign(extra, {
-                        background,
-                        'width': width,
-                        'min-width': couponList.length > 3 ? width : 'auto'
-                    });
-                }
-            }
-        },
-        methods: {
-            flushCache(coupon_list) {
-                if (this.page_id == 0) {
-                    let storage = this.$storage.getStorageSync('INDEX_MALL');
-                    let dIndex = this.dIndex;
-                    let mIndex = this.mIndex;
+					let screenWidth = uni.getSystemInfoSync().windowWidth;
+					let p = 750 / screenWidth;
+					switch (couponList.length) {
+						case 1:
+							width = `${parseInt(702 / p)}px`;
+							break;
+						case 2:
+							width = `${parseInt(341 / p)}px`;
+							break;
+						case 3:
+							width = `${parseInt(220 / p)}px`;
+							break;
+						default:
+							width = `${parseInt(274 / p)}px`;
+							break;
+					}
+					let extra = {
+						'margin-left': `${20 / p}px`
+					};
+					if (index === 0) extra = Object.assign(extra, {
+						'margin-left': `${24 / p}px`
+					});
+					if (index === this.coupon_list.length - 1) extra = Object.assign(extra, {
+						'margin-right': `${24 / p}px`
+					});
+					if (data.is_receive > 0) {
+						background = '#B4B4B4';
+					} else if (this.couponBgType === 'gradient') {
+						background = 'linear-gradient(to left, ' + this.couponBg + ',' + this.$utils.colorRgba(this
+							.couponBg, 0.5) + ')';
+					} else {
+						// background = this.couponBg;
+					}
+					return Object.assign(extra, {
+						background,
+						'width': width,
+						'min-width': couponList.length > 3 ? width : 'auto'
+					});
+				}
+			}
+		},
+		methods: {
+			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);
-                }
-            },
-            receive(index) {
-                let list = this.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: '领取中'
-                });
+					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);
+				}
+			},
+			receive(index) {
+				let list = this.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.coupon_list[index].is_receive = '1';
-                        }
-                        let tempList = this.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();
-                });
-            },
+				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.coupon_list[index].is_receive = '1';
+						}
+						let tempList = this.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();
+				});
+			},
 
-            loadData() {
-                this.$request({
-                    url: this.$api.index.extra,
-                    data: {
-                        type: 'mall',
-                        key: 'coupon',
-                        page_id: this.page_id,
-                        index: this.index
-                    }
-                }).then(e => {
-                    this.coupon_list = e.data;
-                    if (this.page_id === 0) {
-                        let storage = this.$storage.getStorageSync('INDEX_MALL');
-                        storage.home_pages[this.index].list = this.coupon_list;
-                        this.$storage.setStorageSync('INDEX_MALL', storage);
-                    }
-                })
-            }
-        },
-        mounted() {
-            if (!this.coupon_req) {
-                if (this.is_required) {
-                    this.loadData();
-                } else {
-                    let storage = this.$storage.getStorageSync('INDEX_MALL');
-                    this.coupon_list = storage.home_pages[this.index].list;
-                }
-            } else {
-                this.coupon_list = this.list;
-            }
-        },
-    }
+			loadData() {
+				this.$request({
+					url: this.$api.index.extra,
+					data: {
+						type: 'mall',
+						key: 'coupon',
+						page_id: this.page_id,
+						index: this.index
+					}
+				}).then(e => {
+					this.coupon_list = e.data;
+					if (this.page_id === 0) {
+						let storage = this.$storage.getStorageSync('INDEX_MALL');
+						storage.home_pages[this.index].list = this.coupon_list;
+						this.$storage.setStorageSync('INDEX_MALL', storage);
+					}
+				})
+			}
+		},
+		mounted() {
+			if (!this.coupon_req) {
+				if (this.is_required) {
+					this.loadData();
+				} else {
+					let storage = this.$storage.getStorageSync('INDEX_MALL');
+					this.coupon_list = storage.home_pages[this.index].list;
+				}
+			} else {
+				this.coupon_list = this.list;
+			}
+		},
+	}
 </script>
 
 <style scoped lang="scss">
-    .app-exclusive-coupon-two {
-        width: #{750rpx};
+	.app-exclusive-coupon-two {
+		width: #{750rpx};
+
+		.coupon-bg {
+			position: absolute;
+			top: 0;
+			left: 0;
+			width: 100%;
+			height: 100%;
+		}
+
+		.app-bottom {
+			padding: #{16rpx} 0;
+			// height: #{130+16+16rpx};
+			width: #{750rpx};
+
+			.app-scroll {
+				// height: #{130+16+16rpx};
+				// height: 100%;
+				del-width: #{750-24rpx};
+				white-space: nowrap;
+			}
+
+			.app-item {
+				width: #{256rpx};
+				position: relative;
+				// height: #{130rpx};
+				display: inline-block;
+				margin-left: #{20rpx};
+				background-repeat: no-repeat;
+				background-size: 100% 100%;
+
+				.app-number.app-symbol:before {
+					content: '¥';
+					font-size: #{20rpx};
+				}
+
+				app-number {
+					font-size: #{40rpx};
+				}
+
+				.discount:after {
+					content: '折';
+					font-size: 75%;
+				}
+
+				.app-text-left {
+					width: 75%;
+					height: #{130rpx};
 
-        .coupon-bg {
-            position: absolute;
-            top: 0;
-            left: 0;
-            width: 100%;
-            height: 100%;
-        }
+					.app-text-top {
+						height: 50%;
+						padding-top: #{1rpx};
+						overflow: hidden;
+						text-align: center;
 
-        .app-bottom {
-            padding: #{16rpx} 0;
-            height: #{130+16+16rpx};
-            width: #{750rpx};
+						.app-symbol {
+							display: inline-block;
+							height: #{78rpx};
+							font-size: #{20rpx};
+						}
 
-            .app-scroll {
-                height: #{130+16+16rpx};
-                height: 100%;
-                del-width: #{750-24rpx};
-                white-space: nowrap;
-            }
+						.app-number {
+							display: inline-block;
+							height: 100%;
+						}
+					}
 
-            .app-item {
-                width: #{256rpx};
-                position: relative;
-                height: #{130rpx};
-                display: inline-block;
-                margin-left: #{20rpx};
-                background-repeat: no-repeat;
-                background-size: 100% 100%;
+					.app-text-bottom {
+						height: 50%;
+						text-align: center;
+						font-size: #{20rpx};
+						display: block;
+					}
+				}
 
-                .app-number.app-symbol:before {
-                    content: '¥';
-                    font-size: #{20rpx};
-                }
+				.app-text-right {
+					width: 25%;
+					height: #{130rpx};
 
-                app-number {
-                    font-size: #{40rpx};
-                }
+					text {
+						height: #{130rpx};
+						display: inline-block;
+						text-align: center;
+						line-height: #{50rpx};
+						font-size: #{24rpx};
+						writing-mode: vertical-rl;
+						letter-spacing: #{5rpx};
+					}
+				}
+			}
+		}
 
-                .discount:after {
-                    content: '折';
-                    font-size: 75%;
-                }
+		.coupon {
 
-                .app-text-left {
-                    width: 75%;
-                    height: #{130rpx};
+			// padding: 0 45rpx 0 40rpx;
+			.item {
+				width: 320rpx;
+				height: 200rpx;
+				overflow: hidden;
+				border-radius: 20rpx;
+				margin-right: 25rpx;
+				position: relative;
+				background-image: url(https://t17.9026.com/web/statics/image/index/coupon_masking.png);
+				background-size: 316rpx 200rpx;
 
-                    .app-text-top {
-                        height: 50%;
-                        padding-top: #{1rpx};
-                        overflow: hidden;
-                        text-align: center;
+				.Wb {
+					display: flex;
+					flex-flow: column;
+					justify-content: space-around;
+					padding: 17rpx 0 17rpx 37rpx;
 
-                        .app-symbol {
-                            display: inline-block;
-                            height: #{78rpx};
-                            font-size: #{20rpx};
-                        }
+					.price {
+						font-size: 40rpx;
+						font-family: PingFangSC-Medium, PingFang SC;
+						font-weight: 500;
+						color: #b19d60;
 
-                        .app-number {
-                            display: inline-block;
-                            height: 100%;
-                        }
-                    }
+						text {
+							font-size: 24rpx;
+						}
+					}
 
-                    .app-text-bottom {
-                        height: 50%;
-                        text-align: center;
-                        font-size: #{20rpx};
-                        display: block;
-                    }
-                }
+					.yxq {
+						font-size: 18rpx;
+						font-family: PingFangSC-Regular, PingFang SC;
+						font-weight: 400;
+						color: #c1c2c1;
+					}
+				}
+			}
+		}
 
-                .app-text-right {
-                    width: 25%;
-                    height: #{130rpx};
+		.title_2 {
+			font-weight: 600;
+			font-family: PingFangSC-Regular, PingFang SC;
+			color: #000;
+			font-size: 24rpx;
+			font-weight: 500;
+			color: #0e0e0e;
+		}
 
-                    text {
-                        height: #{130rpx};
-                        display: inline-block;
-                        text-align: center;
-                        line-height: #{50rpx};
-                        font-size: #{24rpx};
-                        writing-mode: vertical-rl;
-                        letter-spacing: #{5rpx};
-                    }
-                }
-            }
-        }
-    }
+		.desc_2 {
+			color: #5a5a5a;
+			font-size: 24rpx;
+			font-family: PingFangSC-Regular, PingFang SC;
+			font-weight: 400;
+			color: #a7a7a7;
+		}
+	}
 </style>

+ 61 - 4
src/components/page-component/app-navigation-icon/app-navigation-two-icon.vue

xqd xqd
@@ -42,20 +42,29 @@
             <scroll-view scroll-x class="dir-left-nowrap" :style="{'height': modeType === 'img'? '192rpx': '100rpx'}">
                 <!-- #endif -->
                 <!-- #ifndef MP-BAIDU -->
-                <scroll-view scroll-x class="dir-left-nowrap" :style="{'max-height': modeType === 'img'? '192rpx': '100rpx'}">
+                <scroll-view scroll-x class="dir-left-nowrap" :style="{'max-height': modeType === 'img'? 'auto': '100rpx'}">
                     <!-- #endif -->
-                    <view v-for="(nav, index) in aloneNav" :key="index" :style="[formatB(index)]" class="box-list">
+                    <view v-for="(nav, index) in aloneNav" :key="index" :style="[formatB(index)]" class="box-list" style="margin-right: 15rpx;">
                         <!-- #ifdef MP -->
                         <app-jump-button style="height: 100%" form :url="nav.link_url" :open_type="nav.open_type"
                                          arrangement="column"
                                          class="cross-top">
-                            <image v-if="modeType === 'img'" :src="nav.icon_url"
+                          <!--  <image v-if="modeType === 'img'" :src="nav.icon_url"
                                    :style="{height:'88rpx',width: '88rpx','margin-bottom': 'auto'}"
                                    lazy-load></image>
                             <view v-if="nav.name" class="t-omit nav-name" :style="{color: color}"
                                   :class="{'nav-name-alone': modeType === 'text'}">
                                 {{ nav.name.substring(0, aloneNum > 5 ? 4 : 5) }}
-                            </view>
+                            </view> -->
+							<view class="hxj-nav-diy" >
+								<view class="box" style="width: 206rpx;height: 250rpx;">
+									<image class="image-bg" :src="nav.icon_url"></image>
+									<view class="text t-omit" :style="{color: color}">{{ nav.name.substring(0, aloneNum > 5 ? 4 : 5) }}</view>
+								</view>
+								<view class="tag_list">
+									<span class="tag">{{ nav.name.substring(0, aloneNum > 5 ? 4 : 5).slice(0,2)}}</span>
+								</view>
+							</view>
                         </app-jump-button>
                         <!--  #endif -->
                         <!--  #ifdef H5 -->
@@ -495,5 +504,53 @@ export default {
             border-radius: 50%;
         }
     }
+	
+	
+	.hxj-nav-diy{
+		.box {
+			border-radius: 20rpx;
+			overflow: hidden;
+			position: relative;
+			z-index: 2;
+			margin-right: 20rpx;
+		
+			.image-bg {
+				position: absolute;
+				z-index: -1;
+				left: 0;
+				right: 0;
+				bottom: 0;
+				right: 0;
+				width: 100%;
+				height: 100%;
+			}
+		
+			.text {
+				width: 115rpx;
+				font-size: 28rpx;
+				font-weight: 600;
+				color: #FEFFFE;
+				text-shadow: 0px 0px 8px rgba(0, 0, 0, 0.17);
+				position: absolute;
+				top: 30rpx;
+				left: 50%;
+				transform: translateX(-50%);
+				z-index: 1;
+			}
+		}
+		
+		.tag_list {
+			margin-top: 20rpx;
+		
+			.tag {
+				width: auto;
+				background-color: rgba(238, 235, 222, 1);
+				color: rgb(167, 133, 79);
+				border-radius: 0 50% 50% 50%;
+				font-size: 24rpx;
+				padding: 10rpx 20rpx;
+			}
+		}
+	}
 }
 </style>

+ 4 - 2
src/components/page-component/app-swiper/app-swiper.vue

xqd
@@ -308,8 +308,10 @@
     }
 
     .u-indicator-item-rect {
-        width: 26rpx;
-        height: 8rpx;
+        // width: 26rpx;
+        // height: 8rpx;
+		width: 40rpx;
+		height: 4rpx;
         margin: 0 6rpx;
         transition: all 0.5s;
         background-color: rgba(0, 0, 0, 0.3);

+ 16 - 11
src/components/page-component/index/app-diy-page.vue

xqd xqd xqd xqd
@@ -141,17 +141,11 @@
               >
                 <template v-if="temp.data.catPosition === 'top'">
                   <!--分类-->
-                  <template
-                    v-if="
-                      temp.data.showCat &&
-                      temp.data.catList &&
-                      temp.data.catList.length > 1
-                    "
-                  >
+                  <template v-if="  temp.data.showCat && temp.data.catList && temp.data.catList.length > 1">
                     <scroll-view
                       scroll-x
                       :style="{ backgroundColor: temp.data.catBgColor }"
-                      style="margin-bottom: 12rpx"
+                      style="margin-bottom: 12rpx;padding-left: 20rpx;"
                       scroll-with-animation
                       :scroll-left="temp.data.scrollLeft"
                       v-bind:class="[theme, 'u-scroll-view', 'dir-left-nowrap']"
@@ -197,8 +191,18 @@
                         v-on:click="changeTopNav(catIndex, temp.data)"
                       >
                         {{ catItem.menuName }}
+						<image class="tyx" src="https://t17.9026.com/web/statics/image/index/tyx.png" mode=""></image>
                       </text>
                     </scroll-view>
+					
+					<!-- <scroll-view class="link main-left">
+						<view class="title1" style="margin-right: 61rpx;">荟享自营</view>
+						<view class="title1" style="margin-right: 61rpx;color: #A7A7A7;">精选类别</view>
+						<view class="title1" style="margin-right: 61rpx;color: #A7A7A7;">精选类别</view>
+						<view class="title1" style="margin-right: 61rpx;color: #A7A7A7;">精选类别</view>
+						<image class="tyx" src="https://t17.9026.com/web/statics/image/index/tyx.png" mode=""></image>
+					</scroll-view> -->
+					
                   </template>
                   <app-diy-list
                     :list="temp.data.list"
@@ -488,7 +492,8 @@
                 v-bind:c-padding-bottom="temp.data.c_padding_bottom"
               ></app-video>
             </template>
-
+			
+			<!-- 标题栏 -->
             <template v-else-if="temp.id === 'link'">
               <app-associated-link
                 v-bind:arrows-switch="temp.data.arrowsSwitch"
@@ -1368,10 +1373,10 @@ export default {
   display: inline-block;
   padding-top: 22upx;
   padding-bottom: 7upx;
-  font-size: 32upx;
+  font-size: 26upx;
   margin-right: 52upx;
   white-space: nowrap;
-  border-bottom: 4upx solid transparent;
+  // border-bottom: 4upx solid transparent;
 }
 .u-active-current-round {
   color: white;

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

xqd xqd xqd
@@ -14,7 +14,7 @@
                         <view v-if="showLeftIcon">
 							<template v-if="xStyle==5">
 								<view class="main-left cross-center hxj-area" @click="leftClick">
-									九林语<image src="https://t17.9026.com/web/statics/image/index/arrow-down.png" mode=""></image>
+									<view class="tt t-omit">{{selectedProperties.name}}</view><image src="https://t17.9026.com/web/statics/image/index/arrow-down.png" mode=""></image>
 								</view>
 							</template>
 							<template v-else>
@@ -130,7 +130,8 @@ export default {
             statusBarHeight: state => state.gConfig.systemInfo.statusBarHeight,
             mBarHeight: state => state.gConfig.mBarHeight,
             appImg: state => state.mallConfig.__wxapp_img.mall,
-            mallNavbar: state => state.mallConfig.navbar
+            mallNavbar: state => state.mallConfig.navbar,
+			selectedProperties: state => state.user.selectedProperties
         }),
         maxWidth() {
             return () => {
@@ -278,9 +279,13 @@ export default {
 
 <style lang="scss" scoped>
 	.hxj-area{
+		width: 260rpx;
 		font-size: 28rpx;
 		font-weight: 500;
 		color: #FFFFFF;
+		.tt{
+			max-width: 240rpx;
+		}
 		image{
 			width: 24rpx;
 			height: 20rpx;

+ 6 - 0
src/core/apiUrl.js

xqd xqd
@@ -21,6 +21,11 @@ const apiUrl = {
         status: 'api/index/shop-status',
         //test: 'api/test/index',
         indexWechat: 'api/index/index-wechat',
+		
+		// hxj新增
+		binding_estate:'api/estate/binding-estate-sale',
+		sale_list:'api/estate/sale-list',
+		select_master_estate:'api/estate/select-master-estate'
     },
     finance: {
         cash: 'api/finance/cash',
@@ -659,6 +664,7 @@ const apiUrl = {
 		cat_list:'plugin/composition/api/index/cat-list',
 		list:'plugin/composition/api/index/list',
 		info:'plugin/composition/api/index/info',
+		collect:'plugin/composition/api/index/collect',
 		//
     },
     favorite: {

+ 1 - 1
src/pages.json

xqd
@@ -13,7 +13,7 @@
 		, {
 			"path": "pages/index/binding/binding",
 			"style": {
-				"navigationBarTitleText": "绑定楼盘",
+				"navigationBarTitleText": "我的楼盘",
 				"enablePullDownRefresh": false
 			}
 

+ 6 - 3
src/pages/case/hot_sale_project.vue

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="https://img0.baidu.com/it/u=2763244517,2282347331&fm=26&fmt=auto" mode=""></image>
+						<image style="width: 419rpx;height: 281rpx;" :src="'https://img0.baidu.com/it/u=2817072178,3148297616&fm=26&fmt=auto'" mode=""></image>
 					</view>
 					<view style="width: 206rpx;">
-						<image style="width: 206rpx;height: 136rpx;" src="https://img0.baidu.com/it/u=3232043632,3119790085&fm=26&fmt=auto" mode=""></image>
-						<image style="width: 206rpx;height: 136rpx;" src="https://img0.baidu.com/it/u=2817072178,3148297616&fm=26&fmt=auto" mode=""></image>
+						<image style="width: 206rpx;height: 136rpx;" :src="item.banner_imgs[1]?item.banner_imgs[1]:'https://img0.baidu.com/it/u=3232043632,3119790085&fm=26&fmt=auto'" mode=""></image>
+						<image style="width: 206rpx;height: 136rpx;" :src="item.banner_imgs[1]?item.banner_imgs[1]:'https://img0.baidu.com/it/u=2817072178,3148297616&fm=26&fmt=auto'" mode=""></image>
 					</view>
 				</view>
 				<view class="main-between pl" >
@@ -94,6 +94,9 @@
 				}).then(res=>{
 					if(res.code===0){
 						this.CompositionList=res.data.list
+						this.CompositionList[0].id=18
+						this.CompositionList[0].price=688.00
+						this.CompositionList[1].id=20
 					}
 				})
 			}

+ 35 - 60
src/pages/case/projectInfo.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -6,8 +6,8 @@
 				:hasHeight="false"></app-nav-bar>
 
 			<!--商品轮播图-->
-			<app-goods-banner v-bind:pic-list="goods.pic_url" v-bind:share="goods.share"
-				v-bind:video-url="goods.video_url" v-bind:goods_id="goodsId" :isCart="true"></app-goods-banner>
+			<app-goods-banner :pic-list="goods.pic_url" :share="goods.share"
+				:video-url="goods.video_url" :goods_id="goodsId" :isCart="true"></app-goods-banner>
 			<!-- 套装内商品 -->
 			<view style="background-color: #fff;">
 				<view class="link ">
@@ -19,31 +19,32 @@
 					</view>
 				</view>
 				<hxj-scroll-list :itemWidth="'168rpx'" :itemHeight="'168rpx'" :list="list"></hxj-scroll-list>
-				<hxj-bd-info :theme="getTheme" :name="name" :price="price" :original-price="original_price"
-					:sales="sales" :goods-id="goodsId" :extra-quick-share="extra_quick_share"
+				<hxj-bd-info :theme="getTheme" :name="compositionList.name" :price="compositionList.price" :original-price="compositionList.price"
+					:sales="compositionList.sale_num+compositionList.virtual_sale_num" :goods-id="goodsId" :extra-quick-share="extra_quick_share"
 					:app-share-pic="app_share_pic ? app_share_pic : goods.pic_url[0].pic_url"
 					:app-share-title="app_share_title ? app_share_title : name"
 					:poster-config="poster_config + `&goods_id=` + goodsId"
 					:poster-generate="poster_generate + `&goods_id=` + goodsId" :has-poster-nav="true" :goods="goods"
-					@share="hShareAppMessage" @quickShare="quickShare" @receive="receive"></hxj-bd-info>
+					@share="hShareAppMessage" @quickShare="quickShare" @receive="receive">
+				</hxj-bd-info>
 				<view class="hxj-goods-list" :style="{ height: isOpen ? 'auto' : '270rpx' }">
 					<view class="main-between" style="width: 560rpx;">
 						<view class="title">套装内商品</view>
 						<view class="title">数量</view>
 					</view>
 					<view class="main-between item"
-						v-for="(item, index) in ['ins风高档皮质沙发','歌尚雅新款单人沙发布艺小户型客厅','梵瑟 北欧全实木沙发组合新中式现代简约','梵瑟 北欧全实木沙发组合新中式现代简约','客厅家用茶几桌轻奢现代小户型']"
+						v-for="(item, index) in list"
 						:key="index">
 						<view class="main-between" style="width: 560rpx;">
-							<view class="name t-omit">{{item}}</view>
-							<view class="num">x1</view>
+							<view class="name t-omit">{{item.name}}</view>
+							<view class="num">x{{item.goods_num}}</view>
 						</view>
-						<view class="zk cropss-center" v-if="index === 1 && isOpen === false" @click="isOpen = true">
+						<view class="zk cropss-center" v-if="index === 1 &&list.length>2 && isOpen === false" @click="isOpen = true">
 							展开
 							<image src="https://t17.9026.com/web/statics/image/user-center/arrow-bottom.png" mode="">
 							</image>
 						</view>
-						<view class="zk cropss-center" v-if="index === 4 && isOpen === true" @click="isOpen = false">
+						<view class="zk cropss-center" v-if="index===list.length-1 && isOpen === true" @click="isOpen = false">
 							收起
 							<image src="https://t17.9026.com/web/statics/image/user-center/arrow-top.png" mode="">
 							</image>
@@ -85,9 +86,9 @@
 							<!-- 客服组件 -->
 							<bd-service :name="name" :url="sendPath"></bd-service>
 						</template>
-						<view class="bd-back dir-top-nowrap main-center cross-center box-grow-0" @click="setFavorite">
+						<view class="bd-back dir-top-nowrap main-center cross-center box-grow-0" @click="setCollect">
 							<image class="bd-icon" :src="
-									favorite
+									compositionList.is_collect
 										? 'https://shop.9026.com/web/statics/image/mall/static/icon/icon-favorite-active.png'
 										: 'https://shop.9026.com/web/statics/image/mall/static/icon/icon-favorite.png'
 								"></image>
@@ -162,10 +163,6 @@
 					</template>
 				</view>
 			</view>
-			<!--快捷导航-->
-			<!-- <app-quick-navigation></app-quick-navigation> -->
-			<u-attr v-if="is_negotiable === 0 && exchangeStatus == null && goods && goods.type" v-model="attrShow"
-				:goods="goods" :theme="getTheme" :checked="checked" @check="check" @update="updateCartNumber"></u-attr>
 		</template>
 		<app-close v-if="showClose" :modal="false" @update="getMall"></app-close>
 	</app-layout>
@@ -228,31 +225,9 @@
 		data() {
 			return {
 				isCouponShow: false,
-				list: [{
-						image: 'https://t17.9026.com/web/statics/image/index/temporary/jhk-1634283687206.png',
-						title: '',
-						tag: '',
-						link: ''
-					},
-					{
-						image: 'https://t17.9026.com/web/statics/image/index/temporary/jhk-1634284372084.png',
-						title: '',
-						tag: '',
-						link: ''
-					},
-					{
-						image: 'https://t17.9026.com/web/statics/image/index/temporary/jhk-1634283667210.png',
-						title: '',
-						tag: '',
-						link: ''
-					},
-					{
-						image: 'https://t17.9026.com/web/statics/image/index/2.png',
-						title: '',
-						tag: ''
-					}
-				],
+				list: [],
 				isOpen: false, //hxj套装内商品是否展开
+				compositionList:[], //套餐详情
 
 				showClose: false,
 				is_open: 0,
@@ -544,11 +519,20 @@
 				this.$request({
 					url: this.$api.composition.info,
 					data: {
-						composition_id: id
+						composition_id: 3
 					},
 					method: 'post'
 				}).then(res => {
-
+					if(res.code===0){
+						this.compositionList=res.data
+						for (let i = 0; i < this.compositionList.compositionGoods.length; i++) {
+							let image=this.compositionList.compositionGoods[i].goods.cover_pic
+							let id=this.compositionList.compositionGoods[i].goods.id
+							let name=this.compositionList.compositionGoods[i].goods.name
+							let goods_num=this.compositionList.compositionGoods[i].goods_num
+							this.list.push({image,link:`/pages/goods/goods?id=${id}`,name,goods_num})
+						}
+					}
 				})
 				return new Promise((resolve, reject) => {
 					this.$showLoading();
@@ -604,11 +588,6 @@
 									template_message_list,
 									is_finish_sell
 								} = response.data.goods;
-								uni.setNavigationBarTitle({
-									title: name
-								});
-
-								this.name = name;
 								this.app_share_pic = app_share_pic;
 								this.app_share_title = app_share_title;
 								this.goods = response.data.goods;
@@ -697,21 +676,17 @@
 					url: '/pages/index/index'
 				});
 			},
-			setFavorite() {
-				let url = this.$api.user.favorite_add;
-				let favorite = true;
-				if (this.favorite) {
-					url = this.$api.user.favorite_remove;
-					favorite = false;
-				}
-				this.favorite = favorite;
+			setCollect() {
 				this.$request({
-					url: url,
+					url: this.$api.composition.collect,
 					data: {
-						goods_id: this.goodsId
-					}
+						composition_id: this.compositionList.id
+					},
+					method:'post'
 				}).then(response => {
-					if (response.code === 0) {} else {
+					if (response.code === 0) {
+						this.compositionList.is_collect==0?this.compositionList.is_collect=1:this.compositionList.is_collect=0
+					} else {
 						uni.showModal({
 							title: '提示',
 							content: response.msg,
@@ -741,7 +716,7 @@
 					return;
 				}
 				uni.navigateTo({
-					url: '/plugins/composition/detail/detail?composition_id=3'
+					url: `/plugins/composition/detail/detail?composition_id=${this.compositionList.id}`
 				});
 				// this.attrShow = true;
 				console.log('结束');

+ 80 - 67
src/pages/index/binding/binding.vue

xqd xqd xqd xqd xqd xqd xqd xqd
@@ -1,7 +1,7 @@
 <template>
 	<view>
 		<view class="properties_list">
-			<view class="item main-left" v-for="(item,index) in dataList">
+			<view class="item main-left" v-for="(item,index) in dataList" :key="index" @click="selectMasterEstate(index,item.id)">
 				<view class="left">
 					<image :src="item.cover_img" mode=""></image>
 				</view>
@@ -13,6 +13,7 @@
 				<image class="bg" src="https://t17.9026.com/web/statics/image/sale/properties_gradual.png" mode="">
 				</image>
 			</view>
+			<AppNoData v-if="dataList.length===0" title="您还未绑定任何楼盘"></AppNoData>
 		</view>
 		<!-- <view class="main-between cross-center lp">
 			<view class="name">世龙广场</view>
@@ -20,16 +21,7 @@
 		</view> -->
 		<view class="form-box">
 			<view class="title">楼盘信息</view>
-			<view class="main-between cross-center item" @click="selectBuild">
-				<view class="title_1">楼盘名称</view>
-				<view class="main-right cross-center">
-					<text :class="{'val':name!=='','pla':name===''}">{{name===''?'请选择':name}}</text>
-					<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>
-			<AppAreaPicker @customevent="areaEvent">
+			<AppAreaPicker @customevent="areaEvent" :multiIndex="multiIndex" @cancel="areaCancel">
 				<view class="main-between cross-center item" style="padding-right: 8rpx;">
 					<view class="title_1">区域信息</view>
 					<view class="main-right cross-center">
@@ -41,6 +33,16 @@
 				</view>
 			</AppAreaPicker>
 			<view class="line"></view>
+			<view class="main-between cross-center item" @click="selectBuild">
+				<view class="title_1">楼盘名称</view>
+				<view class="main-right cross-center">
+					<text :class="{'val':name!=='','pla':name===''}">{{name===''?'请选择':name}}</text>
+					<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>
 			<picker mode="selector" @change="bindPickerNature" :range="natureList">
 				<view class="main-between cross-center item">
 					<view class="title_1">楼盘性质</view>
@@ -51,9 +53,9 @@
 						</image>
 					</view>
 				</view>
-			</picker>
-			<view class="line"></view>
-			<view class="main-between cross-center item" @click="selectSale">
+			</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>
 				<view class="main-right cross-center">
 					<text :class="{'val':sale!=='','pla':sale===''}">{{sale?sale:'请选择'}}</text>
@@ -68,40 +70,29 @@
 </template>
 
 <script>
+	import {mapMutations} 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 {
 		components: {
-			AppAreaPicker
+			AppAreaPicker,
+			AppNoData,
 		},
 		data() {
 			return {
 				name: '',
 				region: '',
+				regionId:{},
+				multiIndex:[2,3,5],
 				nature: '',
 				sale: '',
+				
+				estate_id:'',
+				sale_id:'',
 
 				natureList: ['住宅用房', '非住宅用房'],
 
-				dataList: [{
-					address: "中国四川省成都市金牛区蜀跃路",
-					area_id: "1050",
-					city_id: "0",
-					cover_img: "https://swdzshopv4.oss-cn-chengdu.aliyuncs.com/uploads/mall10000/20210811/bf85fea4246c07b25c2e6e2c79c3602b.jpg",
-					created_at: "2021-12-07 11:31:07",
-					deleted_at: "0000-00-00 00:00:00",
-					details: "<p>万达广场详细描述万达广场详细描述万达广场详细描述万达广场详细描述万达广场详细描述万达广场详细描述万达广场详细描述</p>",
-					district_id: "0",
-					id: "1",
-					is_delete: "0",
-					latitude: "30.709999",
-					longitude: "104.013252",
-					mall_id: "10000",
-					name: "金牛区万科金域西岭",
-					property: "1",
-					province_id: "0",
-					status: "1",
-					updated_at: "2021-12-16 17:56:22",
-				}]
+				dataList: []
 			};
 		},
 		onShow() {
@@ -109,59 +100,60 @@
 			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 : ''
-
-			console.log(currPage.$vm)
+			'saleInfo' in currPage.$vm ? this.sale_id = currPage.$vm.saleInfo.id : ''
 		},
 		onLoad() {
-
+			this.getDate(1,'')
 		},
 		methods: {
 			addmyEstate() {
-				if(this.name==='' || this.region==='' || this.nature==='' || this.sale===''){
+				if(this.name===''  || this.sale===''){
 					uni.showToast({
 						title:'请完整填写信息',
 						icon:'none'
 					})
 					return
 				}
-				let qwe = {
-					address: "中国四川省成都市武侯区成汉南路86号",
-					area_id: "0",
-					city_id: "0",
-					cover_img: "https://swdzshopv4.oss-cn-chengdu.aliyuncs.com/uploads/mall10000/20211213/0faa8082fbe997a00dbff8ef482f98be.jpg",
-					created_at: "2021-12-13 21:17:29",
-					deleted_at: "2021-12-16 17:56:22",
-					details: "<p>测试测试测试</p>",
-					district_id: "0",
-					id: "2",
-					is_delete: "0",
-					latitude: "30.586587",
-					longitude: "104.054303",
-					mall_id: "10000",
-					name: "测试测试测试测试",
-					property: "2",
-					province_id: "0",
-					status: "1",
-					updated_at: "2021-12-16 17:56:22",
-				}
-				this.dataList.push(qwe)
+				this.$request({
+					url:this.$api.index.binding_estate,
+					data:{
+						estate_id:this.estate_id,
+						sale_id:this.sale_id,
+					},
+					method:'post'
+				}).then(res=>{
+					if(res.code===0){
+						this.getDate(1,'')
+					}
+					uni.showToast({
+						title:res.msg,
+						icon:'none',
+					})
+				})
 			},
 			areaEvent(data) {
 				if (data) {
-					// this.form.province_id = data.province.id;
-			 	// this.form.city_id = data.city.id;
-					// this.form.district_id = data.district.id;
+					this.regionId.province_id = data.province.id;
+					this.regionId.city_id = data.city.id;
+					this.regionId.district_id = data.district.id;
 					this.region = [data.province.name, data.city.name, data.district.name].join('')
+					
+					this.selectBuild()
 				}
 			},
+			areaCancel(){
+				this.region=''
+				this.regionId={}
+			},
 			getDate(page, name) {
 				this.$request({
 					url: this.$api.sale.estate_list,
 					data: {
 						page: page,
-						is_myself: 1,
-						name: name,
+						is_user_myself: 1,
 					},
 					method: 'post'
 				}).then(res => {
@@ -170,14 +162,35 @@
 					}
 				})
 			},
+			...mapMutations('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(res.code===0){
+						this.selectedProperties(this.dataList[index])
+						uni.navigateBack()
+					}
+				})
+			},
 			selectBuild() {
 				uni.navigateTo({
-					url: '/pages/sale/properties/addProperties'
+					url: `/pages/sale/properties/addProperties?regionId=${JSON.stringify(this.regionId)}`
 				})
 			},
 			selectSale() {
 				uni.navigateTo({
-					url: '/pages/index/binding/bindingSale'
+					url: `/pages/index/binding/bindingSale?estate_id=${this.estate_id}&name=${this.name}`
 				})
 			},
 			bindPickerNature(e) {

+ 31 - 7
src/pages/index/binding/bindingSale.vue

xqd xqd
@@ -8,38 +8,61 @@
 		
 		<view class="main">
 			<view class="main-between cross-center" style="height: 100rpx;">
-				<view class="title">世龙广场销售人员</view>
+				<view class="title t-omit">{{estateName}}销售人员</view>
 				<view class="main-right cross-center"><text class="pla">更多</text><image class="arrow-right" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image></view>
 			</view>
-			<view class="main-between cross-center item" v-for="(item,index) in 4" :key="index" @click="selectSale(index)">
+			<view class="main-between cross-center item" v-for="(item,index) in dataList" :key="index" @click="selectSale(index,item.id,item.salesperson.name)">
 				<view class="main-left">
-					<image style="width: 79rpx;height: 79rpx;border-radius: 50%;margin-right: 24rpx;" src="https://img2.baidu.com/it/u=304846655,1860504905&fm=26&fmt=auto" mode=""></image>
+					<image style="width: 79rpx;height: 79rpx;border-radius: 50%;margin-right: 24rpx;" :src="item.salesperson.pic_url" mode=""></image>
 					<view>
-						<view class="name">王晓晓</view>
-						<view class="phone">15888888888</view>
+						<view class="name">{{item.salesperson.name}}</view>
+						<view class="phone">{{item.salesperson.mobile}}</view>
 					</view>
 				</view>
 				<image v-show="selectSaleIndex===index" style="width: 36rpx;height: 36rpx;" src="https://t17.9026.com/web/statics/image/index/select_sale.png" mode=""></image>
 			</view>
+			<AppNoData v-if="dataList.length===0" title="暂无销售人员"></AppNoData>
 		</view>
+		<view style="height: 150rpx;"></view>
 		<button type="default" @click="bindingSale" :class="{'add':true, 'allow-add':selectSaleIndex!==-1, 'not-add':selectSaleIndex===-1}" :disabled="fasle">确认绑定</button>
 	</view>
 </template>
 
 <script>
+	import AppNoData from '@/components/page-component/app-no-goods/app-no-goods.vue'
 	export default {
+		components:{
+			AppNoData
+		},
 		data() {
 			return {
 				selectSaleIndex:-1,
+				
+				dataList:[],
+				estateName:'',
 			};
 		},
+		onLoad(option) {
+			this.estateName=option.name
+			this.$request({
+				url:this.$api.index.sale_list,
+				data:{
+					estate_id:option.estate_id
+				},
+				method:'post'
+			}).then(res=>{
+				if(res.code===0){
+					this.dataList=res.data
+				}
+			})
+		},
 		methods:{
-			selectSale(index){
+			selectSale(index,id,name){
 				this.selectSaleIndex=index
 				var pages = getCurrentPages();
 				var currPage = pages[pages.length - 1]; //当前页面
 				var prevPage = pages[pages.length - 2]; //上一个页面
-				prevPage.$vm.saleInfo={id:1,name:'王晓晓'}
+				prevPage.$vm.saleInfo={id:id,name:name}
 			},
 			bindingSale(){
 				if(this.selectSaleIndex===-1){
@@ -115,6 +138,7 @@
 		padding: 20rpx 42rpx 0 30rpx;
 	}
 	.title{
+		width: 500rpx;
 		font-size: 34rpx;
 		font-weight: bold;
 		color: #222222;

+ 10 - 0
src/pages/index/hxj_index_component.vue

xqd
@@ -208,6 +208,16 @@
 		components: {
 			appScrollList
 		},
+		props:{
+			homePages: {
+			  type: Object,
+			  default() {
+			    return {
+			      navs: [],
+			    };
+			  },
+			},
+		},
 		data() {
 			return {
 				swiperKey: 0, //轮播位置

+ 2 - 6
src/pages/index/index.vue

xqd xqd
@@ -30,7 +30,7 @@
                           :is_storage="is_storage" :theme="getTheme" :page_id="page_id" :is_required="is_required"
                           :coupon_req="coupon_req"></app-diy-page> -->
 
-			<hxj-index></hxj-index>
+			<hxj-index :home-pages="homePages"></hxj-index>
 		</template>
 		<!-- <app-buy-prompt :isShowAttention="isShowAttention" v-if="config.is_purchase_frame === 1"></app-buy-prompt> -->
 		<app-attr :goods="attrGoods.goods" :attrGroupList="attrGoods.goods.attr_groups" :theme="getTheme"
@@ -159,11 +159,7 @@
 					},
 					method: 'get'
 				});
-
-				let {
-					code,
-					data
-				} = e;
+				let {code,data} = e;
 				this.$hideLoading();
 				if (code === 0) {
 					this.is_storage = false;

+ 28 - 6
src/pages/order-submit/order-submit.vue

xqd xqd xqd xqd xqd xqd
@@ -3,20 +3,23 @@
 		<view class="safe-area-inset-bottom">
 			<!-- 地址、商户、配送、商品、优惠、费用信息 -->
 			<view class="page" v-if="previewData">
+				<view v-if="getIsEnterSales" @click="navCustomer" class="select-customer" >
+					请选择客户
+				</view>
 				<view v-if="!previewData.hasCity && previewData.show_address !== false && previewData.hasRecipient"
 					class="group">
 					<app-address-bar :address="previewData.address" :has-ziti="previewData.has_ziti"
 						:all-ziti="previewData.allZiti" @address-input="handleAddressInput"></app-address-bar>
 				</view>
 				<template v-for="(mch, mchIndex) in previewData.mch_list">
-					<view v-if="previewData.hasCity && mchIndex === 0" class="group xz">
+					<!-- <view v-if="previewData.hasCity && mchIndex === 0" class="group xz">
 						<app-address-bar :address="mch.city.error ? null : mch.address" :has-city="true"
 							:city="mch.city"></app-address-bar>
 					</view>
 					<view v-if="previewData.hasCity && mchIndex === 1" class="group cv">
 						<app-address-bar :address="previewData.address" :has-ziti="previewData.has_ziti"
 							:all-ziti="previewData.allZiti" :city="mch.city"></app-address-bar>
-					</view>
+					</view> -->
 					<view :key="mchIndex" class="group">
 						<!-- 循环商户列表start -->
 						<view style="padding: 26rpx 32rpx;">
@@ -54,7 +57,7 @@
 														class="title-icon mr-12"></image>
 												</view>
 												<view class="font-bold ellipsis-1 mr-12">
-													{{mch.store.name}}
+													{{mch.store.name}}1
 												</view>
 												<view class="mr-12">
 													<image
@@ -102,7 +105,8 @@
 										</view>
 									</view>
 								</template>
-							</template><!-- 自提门店信息end -->
+							</template>
+							<!-- 自提门店信息end -->
 						</view>
 						<view class="line"></view>
 						<!-- 选择配送方式start -->
@@ -578,7 +582,10 @@
 				return this.userTheme ? this.userTheme : this.getTheme;
 			},
 			...mapGetters('mallConfig', {
-				getTheme: 'getTheme',
+				getTheme: 'getTheme'
+			}),
+			...mapGetters('user', {
+				getIsEnterSales: 'getIsEnterSales'
 			}),
 			themeBgClass() {
 				if (this.userTheme && this.userTheme.indexOf('gift') >= 0) {
@@ -667,6 +674,11 @@
 			},
 		},
 		methods: {
+			navCustomer(){
+				uni.navigateTo({
+					url:'/pages/sale/cusmter/list'
+				})
+			},
 			getMall(e) {
 				console.log(e)
 				if (e != undefined) {
@@ -1337,7 +1349,17 @@
 	$borderColor: $uni-weak-color-one;
 	$xWidth: #{24rpx};
 	$yWidth: #{24rpx};
-
+	
+	.select-customer{
+		margin: 20rpx 26rpx;
+		background: #fff;
+		border-radius: 16rpx;
+		overflow: hidden;
+		-webkit-box-shadow: 0 0 5rpx rgba(0,0,0,0.025);
+		box-shadow: 0 0 5rpx rgba(0,0,0,0.025);
+		padding: 25rpx 32rpx;
+	}
+	
 	.page {
 		padding-bottom: $submitBarHeight;
 		font-size: #{28rpx};

+ 88 - 58
src/pages/sale/cusmter/addCustomer.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -8,7 +8,9 @@
 			<view class="customerInfo">
 				<view class="top">基本信息</view>
 				<view class="head" @click="uploadHead">
-					<image class="bg" :src="avatar===''?'https://t17.9026.com/web/statics/image/index/headbg.png':avatar" mode=""></image>
+					<image class="bg"
+						:src="avatar===''?'https://t17.9026.com/web/statics/image/index/headbg.png':avatar" mode="">
+					</image>
 					<image class="camera" src="https://t17.9026.com/web/statics/image/index/camera.png" mode=""></image>
 				</view>
 				<view class="main-left cross-center linp border_bottom">
@@ -22,26 +24,34 @@
 			</view>
 		</view>
 		<view class="oinfo">
-			<view class="main-left cross-center linp border_bottom">
+			<view class="main-between cross-center linp border_bottom">
 				<view class="field" style="font-weight: bold;">楼盘信息</view>
+				<view class="main-between" style="width: 210rpx;height: 100%;">
+					<view class="cross-center curd-btn">
+						<image src="../../../static/image/sale/tianjia.png" mode=""></image>添加
+					</view>
+					<view class="cross-center curd-btn">
+						<image src="../../../static/image/sale/shanchu.png" mode=""></image>删除
+					</view>
+				</view>
 			</view>
 			<picker mode="region" @change="bindPickerRegion">
-			<view class="main-left cross-center linp border_bottom">
-				<view class="field">区域信息</view>
-				<input type="text" v-model="region" placeholder="请选择区域" placeholder-style="font-size:28rpx" />
-			</view>
+				<view class="main-left cross-center linp border_bottom">
+					<view class="field">区域信息</view>
+					<input type="text" v-model="region" placeholder="请选择区域" placeholder-style="font-size:28rpx" />
+				</view>
 			</picker>
 			<view class="main-left cross-center linp border_bottom" @click="selectEstate">
 				<view class="field">楼盘名称</view>
-				<input type="text" value="" placeholder="请选择楼盘" placeholder-style="font-size:28rpx"/>
+				<input type="text" value="" placeholder="请选择楼盘" placeholder-style="font-size:28rpx" />
 			</view>
-			<view class="main-left cross-center linp border_bottom">
+			<!-- 			<view class="main-left cross-center linp border_bottom">
 				<view class="field">楼盘性质</view>
 				<input type="text" value="" placeholder="请选择楼盘性质" placeholder-style="font-size:28rpx"/>
-			</view>
+			</view> -->
 			<view class="main-left cross-center linp border_bottom">
 				<view class="field">楼盘户号</view>
-				<input type="text" value="" placeholder="请输入楼盘户号" placeholder-style="font-size:28rpx"/>
+				<input type="text" value="" placeholder="请输入楼盘户号" placeholder-style="font-size:28rpx" />
 			</view>
 			<button type="default" class="complete">完成</button>
 		</view>
@@ -55,19 +65,17 @@
 	export default {
 		data() {
 			return {
-				avatar:'',
-				name:'',
-				mobile:'',
-				
-				estateInfoList:[
-					{
-						estate_id:'',
-						estate_no:'',
-						room_no:'',
-					}
-				],
-				
-				region:'',
+				avatar: '',
+				name: '',
+				mobile: '',
+
+				estateInfoList: [{
+					estate_id: '',
+					estate_no: '',
+					room_no: '',
+				}],
+
+				region: '',
 			};
 		},
 		onShow() {
@@ -75,35 +83,35 @@
 			var currPage = pages[pages.length - 1]; //当前页面
 			console.log(currPage.$vm.estateInfo)
 		},
-		methods:{
+		methods: {
 			bindPickerRegion(e) {
 				this.region = e.target.value.join('')
 			},
-			uploadHead(){
+			uploadHead() {
 				uni.chooseImage({
-				    count: 1, 
-				    sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
-				    sourceType: ['album','camera'], //从相册选择
-				    success:  (res)=> {
+					count: 1,
+					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
+					sourceType: ['album', 'camera'], //从相册选择
+					success: (res) => {
 						console.log(res);
-				        console.log(JSON.stringify(res.tempFilePaths));
+						console.log(JSON.stringify(res.tempFilePaths));
 						uploadFile({
-						    url: this.$api.upload.file,
-						    filePath: res.tempFilePaths[0],
-						    fileType: 'image',
-						    fileName: ''
+							url: this.$api.upload.file,
+							filePath: res.tempFilePaths[0],
+							fileType: 'image',
+							fileName: ''
 						}).then(res1 => {
 							console.log(JSON.parse(res1.data))
-						    if(JSON.parse(res1.data).code===0){
-								this.avatar=JSON.parse(res1.data).data.url
+							if (JSON.parse(res1.data).code === 0) {
+								this.avatar = JSON.parse(res1.data).data.url
 							}
 						})
-				    }
+					}
 				});
 			},
-			selectEstate(){
+			selectEstate() {
 				uni.navigateTo({
-					url:'/pages/sale/properties/addProperties?type=addCustomer'
+					url: '/pages/sale/properties/addProperties?type=addCustomer'
 				})
 			}
 		}
@@ -111,7 +119,7 @@
 </script>
 
 <style lang="scss" scoped>
-	.addlp{
+	.addlp {
 		width: 606rpx;
 		height: 90rpx;
 		border: 1rpx solid #A18353;
@@ -121,7 +129,8 @@
 		color: #A18353;
 		margin-top: 39rpx;
 	}
-	.complete{
+
+	.complete {
 		width: 606rpx;
 		height: 90rpx;
 		background: #A18353;
@@ -131,38 +140,53 @@
 		color: #FFFFFF;
 		margin-top: 36rpx;
 	}
-	.oinfo{
+
+	.oinfo {
 		width: 678rpx;
 		height: auto;
 		background: #FEFEFE;
 		border-radius: 10rpx;
 		margin: 20rpx auto 39rpx;
 		padding-bottom: 20rpx;
+		.curd-btn{
+			image{
+				width: 26rpx;
+				height: 26rpx;
+				margin-right: 6rpx;
+			}
+			font-size: 26rpx;
+			font-weight: 500;
+			color: #A18353;
+		}
 	}
-	.linp{
+
+	.linp {
 		height: 104rpx;
 		padding: 0 35rpx;
-		.field{
+
+		.field {
 			width: 120rpx;
 			font-size: 28rpx;
 			font-weight: 500;
 			color: #222222;
 			margin-right: 30rpx;
 		}
-		.val{
-			
-		}
+
+		.val {}
 	}
-	.border_bottom{
-		
-border-bottom: 1px solid #EAEAEA;
+
+	.border_bottom {
+
+		border-bottom: 1px solid #EAEAEA;
 	}
-	.tbg{
+
+	.tbg {
 		width: 100%;
 		height: 660rpx;
 		position: relative;
 		padding-top: 176rpx;
-		.ti{
+
+		.ti {
 			font-size: 36rpx;
 			font-weight: bold;
 			color: #FFFFFF;
@@ -170,7 +194,8 @@ border-bottom: 1px solid #EAEAEA;
 			top: 75rpx;
 			left: 36rpx;
 		}
-		.bg{
+
+		.bg {
 			width: 100%;
 			height: 400rpx;
 			position: absolute;
@@ -178,14 +203,16 @@ border-bottom: 1px solid #EAEAEA;
 			left: 0;
 			z-index: -1;
 		}
-		.customerInfo{
+
+		.customerInfo {
 			width: 678rpx;
 			height: auto;
 			background: #fff;
 			border-radius: 10rpx;
 			overflow: hidden;
 			margin: 0 auto 20rpx;
-			.top{
+
+			.top {
 				height: 98rpx;
 				background: #FCF7EA;
 				font-size: 28rpx;
@@ -193,19 +220,22 @@ border-bottom: 1px solid #EAEAEA;
 				color: #D0C9C1;
 				padding: 36rpx 30rpx;
 			}
-			.head{
+
+			.head {
 				width: 127rpx;
 				height: 127rpx;
 				position: relative;
 				margin: 32rpx auto;
 				background-color: #fefefe;
 				z-index: 2;
-				.bg{
+
+				.bg {
 					width: 127rpx;
 					height: 127rpx;
 					border-radius: 50%;
 				}
-				.camera{
+
+				.camera {
 					width: 41rpx;
 					height: 32rpx;
 					position: absolute;

+ 32 - 21
src/pages/sale/properties/addProperties.vue

xqd xqd xqd xqd
@@ -6,7 +6,7 @@
 				placeholder-style="font-size:28rpx;color:#999;" @input="search" />
 		</view>
 		<view class="properties_list">
-			<view class="item main-left" v-for="(item,index) in dataList" :key="index" @click="selectEstate(index,item.name,item.id)">
+			<view class="item main-left" v-for="(item,index) in dataList" :key="index" @click="selectEstate(index,item.name,item.id,item)">
 				<view class="left">
 					<image :src="item.cover_img" mode=""></image>
 				</view>
@@ -59,19 +59,22 @@
 				
 				dataList:[],
 				selectIndex:-1,
+				regionId:{},
 			};
 		},
 		onLoad(option) {
-			this.type=option.type
+			'regionId' in option?this.regionId=JSON.parse(option.regionId):''
+			'type' in option?this.type=option.type:''
 			this.getDate(1)
 		},
 		methods:{
-			selectEstate(index,name,id){
+			selectEstate(index,name,id,item){
 				// if(this.type==='addCustomer'){
-					var pages = getCurrentPages();
-					var currPage = pages[pages.length - 1]; //当前页面
-					var prevPage = pages[pages.length - 2]; //上一个页面
-					prevPage.$vm.estateInfo={id:id,name:name}
+					let pages = getCurrentPages();
+					let currPage = pages[pages.length - 1]; //当前页面
+					let prevPage = pages[pages.length - 2]; //上一个页面
+					let multiIndex=[item.province_id,item.city_id,item.area_id]
+					prevPage.$vm.estateInfo={id:id,name:name,multiIndex:multiIndex}
 					// uni.navigateBack()
 					// return
 				// }
@@ -79,23 +82,30 @@
 				this.show=true
 			},
 			bindingEstate(){
-				uni.navigateBack()
-				// this.$request({
-				// 	url: this.$api.sale.binding_estate,
-				// 	data: {
-				// 		estate_id:this.dataList[this.selectIndex].id
-				// 	},
-				// 	method: 'post'
-				// }).then(res=>{
-				// 	uni.showToast({
-				// 		icon:'none',
-				// 		title:res.msg
-				// 	})
-				// })
+				let pages = getCurrentPages();
+				let prevPage = pages[pages.length - 2]; //上一个页面
+				if(prevPage.route==='pages/sale/properties/properties'){
+					this.$request({
+						url: this.$api.sale.binding_estate,
+						data: {
+							estate_id:this.dataList[this.selectIndex].id
+						},
+						method: 'post'
+					}).then(res=>{
+						uni.showToast({
+							icon:res.code===0?'success':'none',
+							title:res.msg
+						})
+						this.show=false
+					})
+				}else{
+					uni.navigateBack()
+				}
+				
 			},
 			search(e){
 				this.$utils.debounce(()=>{
-					this.getDate(1,this.name)
+					this.getDate(1)
 				},800)
 			},
 			getDate(page){
@@ -105,6 +115,7 @@
 						page: page,
 						is_myself: 0,
 						name: this.name,
+						...this.regionId
 					},
 					method: 'post'
 				}).then(res=>{

+ 43 - 2
src/pages/sale/properties/properties.vue

xqd xqd xqd xqd xqd
@@ -1,5 +1,9 @@
 <template>
 	<view class="properties_list">
+		<view class="main-around tabs">
+			<view class="tab" :class="{'select':audit_state===2}" @click="audit_state=2">已通过<view class="under_line"></view></view>
+			<view class="tab" :class="{'select':audit_state===1}" @click="audit_state=1">待通过<view class="under_line"></view></view>
+		</view>
 		<view class="item main-left" v-for="(item,index) in dataList">
 			<view class="left">
 				<image :src="item.cover_img" mode=""></image>
@@ -22,11 +26,20 @@
 	export default {
 		data() {
 			return {
+				audit_state:2,
 				dataList:[]
 			};
 		},
-		onLoad() {
+		watch:{
+			audit_state(val){
+				this.getDate(1,'')
+			},
+		},
+		onShow() {
 			this.getDate(1,'')
+		},
+		onLoad() {
+			
 		},
 		methods:{
 			getDate(page,name){
@@ -34,8 +47,9 @@
 					url: this.$api.sale.estate_list,
 					data: {
 						page: page,
-						is_myself: 1,
+						is_sale_myself: 1,
 						name: name,
+						audit_state:this.audit_state
 					},
 					method: 'post'
 				}).then(res=>{
@@ -51,6 +65,32 @@
 <style lang="scss" scoped>
 	.properties_list {
 		background-color: #F8F8F8;
+		
+		.tabs{
+			height: 90rpx;
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #838584;
+			.tab{
+				width: 50%;
+				line-height: 90rpx;
+				text-align: center;
+			}
+			.select{
+				color: #A18353;
+				position: relative;
+				.under_line{
+					position: absolute;
+					left: 50%;
+					bottom: 10rpx;
+					transform: translateX(-50%);
+					width: 44rpx;
+					height: 3rpx;
+					background: #A18353;
+					border-radius: 2rpx;
+				}
+			}
+		}
 
 		.item {
 			font-family: PingFang SC;
@@ -118,4 +158,5 @@
 			color: #FFFFFF;
 		}
 	}
+
 </style>

+ 0 - 474
src/pages/user-center/user-center - 副本.vue

xqd
@@ -1,474 +0,0 @@
-<template>
-    <app-layout>
-        <app-user-center-top
-            :top-style="userCenter.top_style"
-            :top-pic-url="userCenter.top_pic_url"
-            :member-pic-url="userCenter.member_pic_url"
-            :is_icon_super_vip="is_icon_super_vip"
-            :user-name-color="userCenter.user_name_color"
-        ></app-user-center-top>
-
-        <view class="u-foot-box main-center" v-if="userCenter.is_foot_bar_status == 1">
-            <view @click="router(item.name)" class="u-foot-item main-center" v-for="(item, key) in foot_bar" :key="key">
-                <image class="u-icon" :src="item.icon_url"></image>
-                <view class="u-foot-info">
-                    <view class="u-foot-num">{{item.name | showNum(userInfo)}}</view>
-                    <view>{{item.name}}</view>
-                </view>
-            </view>
-            <view class="u-line"></view>
-        </view>
-
-        <view style="padding: 0 24rpx">
-            <app-vip-card></app-vip-card>
-        </view>
-
-        <app-account-balance
-            v-if="account_bar_status == 1"
-            :margin="true"
-            :round="true"
-            :input-user-center="userCenter"
-        ></app-account-balance>
-
-        <app-my-order
-            v-if="userCenter.is_order_bar_status == 1"
-            :margin="true"
-            :round="true"
-            :theme="getTheme"
-            :order_bar="userCenter.order_bar"
-        ></app-my-order>
-
-        <view class="app-my-service" v-if="userCenter.is_menu_status == 1">
-            <view class="title" v-if="userCenter.menu_title">{{userCenter.menu_title}}</view>
-            <view class="list" :class="[listStyle]">
-                <!--  #ifdef MP -->
-                <view class="item" v-for="(item, index) in userCenter.menus" :key="index" >
-                    <app-jump-button form
-                                     :url="item.link_url"
-                                     :open_type="item.open_type"
-                                     :item="item"
-                                     :arrangement="`${userCenter.menu_style === '1' ? 'row' : userCenter.menu_style === '2' ? 'column' : ''}`">
-                        <view style="width: 100%"
-                              class="item-container"
-                              :class="[
-                                  userCenter.menu_style=='1'?'dir-left-nowrap cross-center':'',
-                                  userCenter.menu_style=='2'?'dir-top-nowrap cross-center':'',
-                              ]">
-                            <view class="box-grow-0">
-                                <image :src="item.icon_url" class="icon"></image>
-                            </view>
-                            <view class="box-grow-1" style="max-width: 100%">
-                                <view class="name">{{item.name}}</view>
-                            </view>
-                            <view class="box-grow-0" v-if="userCenter.menu_style=='1'">
-                                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png" class="arrow"></image>
-                            </view>
-                        </view>
-                    </app-jump-button>
-                </view>
-                <!--  #endif -->
-                <!--  #ifdef H5 -->
-                <block v-for="(item, index) in menus" :key="index">
-                    <view class="item" v-if="item.open_type !== 'app'">
-                        <app-jump-button form
-                                         :url="item.link_url"
-                                         :open_type="item.open_type"
-                                         :item="item"
-                                         :arrangement="`${userCenter.menu_style === '1' ? 'row' : userCenter.menu_style === '2' ? 'column' : ''}`">
-                            <view style="width: 100%"
-                                  class="item-container"
-                                  :class="[
-                                  userCenter.menu_style=='1'?'dir-left-nowrap cross-center':'',
-                                  userCenter.menu_style=='2'?'dir-top-nowrap cross-center':'',
-                              ]">
-                                <view class="box-grow-0">
-                                    <image :src="item.icon_url" class="icon"></image>
-                                </view>
-                                <view class="box-grow-1" style="max-width: 100%">
-                                    <view class="name">{{item.name}}</view>
-                                </view>
-                                <view class="box-grow-0" v-if="userCenter.menu_style=='1'">
-                                    <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png" class="arrow"></image>
-                                </view>
-                            </view>
-                        </app-jump-button>
-                    </view>
-                    <view  v-else :id="item.id" class="item"></view>
-                </block>
-
-                <!--  #endif -->
-            </view>
-        </view>
-        <!-- #ifdef H5 -->
-        <view v-if="userInfo && isShowSetting" class="bd-setting dir-left-nowrap main-between cross-center" @click="routerGo">
-            <view>设置</view>
-            <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png" class="bd-arrow"></image>
-        </view>
-        <!-- #endif -->
-
-        <app-copyright
-            v-if="copyright && copyright.status == '1'"
-            background-color="transparent"
-            :link="copyrightLink"
-            :pic-url="copyright.pic_url"
-            :text="copyright.description"
-        ></app-copyright>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import AppUserCenterTop from '../../components/page-component/app-user-center-top/app-user-center-top.vue';
-    import AppAccountBalance from '../../components/page-component/app-account-balance/app-account-balance.vue';
-    import AppMyOrder from '../../components/page-component/app-my-order/app-my-order.vue';
-    import AppCopyright from '../../components/page-component/app-copyright/app-copyright.vue';
-    import AppVipCard from '../../components/page-component/app-vip-card/app-vip-card.vue';
-
-    export default {
-        name: 'user-center',
-        components: {
-            AppCopyright,
-            AppUserCenterTop,
-            AppAccountBalance,
-            AppMyOrder,
-            AppVipCard,
-        },
-        computed: {
-            ...mapState({
-                copyright: state => state.mallConfig.copyright,
-                userInfo: state => state.user.info,
-                is_icon_super_vip: function (state) {
-                    return state.mallConfig.mall.setting.is_icon_super_vip;
-                },
-                foot_bar: function(state) {
-                    return state.userCenter.data.foot_bar;
-                },
-                account_bar_status: function() {
-                    return this.userCenter.account_bar ? this.userCenter.account_bar.status : 0;
-                },
-                // #ifdef H5
-                isWechat: function() {
-                    return this.$jwx.isWechat();
-                },
-                menus: function() {
-                    let menus = this.userCenter.menus;
-                    menus.forEach(item => {
-                        if(item.open_type === 'app') {
-                            item.id = this.$utils.guid('user-center');
-                            let username = this.$utils.getUrlParamApp(item.link_url, 'username');
-                            let path = this.$utils.getUrlParamApp(item.link_url, 'path');
-                            let strImg = ``;
-                            let size = uni.upx2px(50) + 'px';
-                            let style = `
-                                <style>
-                                .app-button-row {
-                                    height: 100%;
-                                    width: 100%;
-                                    display: flex;
-                                    flex-direction: row;
-                                    justify-content: center;
-                                    align-items: center;
-                                }
-
-                                .app-button-column {
-                                    height: 100%;
-                                    width: 100%;
-                                    display: flex;
-                                    flex-direction: column;
-                                    justify-content: center;
-                                    align-items: center;
-                                }
-                                .box-grow-0 {
-                                  min-width: 0;
-                                  -webkit-box-flex: 0;
-                                  -webkit-flex-grow: 0;
-                                  -ms-flex-positive: 0;
-                                  flex-grow: 0;
-                                  -webkit-flex-shrink: 0;
-                                  -ms-flex-negative: 0;
-                                  flex-shrink: 0;
-                                }
-
-                                .box-grow-1 {
-                                  min-width: 0;
-                                  -webkit-box-flex: 1;
-                                  -webkit-flex-grow: 1;
-                                  -ms-flex-positive: 1;
-                                  flex-grow: 1;
-                                  -webkit-flex-shrink: 1;
-                                  -ms-flex-negative: 1;
-                                  flex-shrink: 1;
-                                }
-
-                                    .name {
-                                        color: #666666;
-                                        white-space: nowrap;
-                                        overflow: hidden;
-                                        text-overflow: ellipsis;
-                                    }
-                                    .dir-left-nowrap {
-                                      display: -webkit-box;
-                                      display: -webkit-flex;
-                                      display: flex;
-                                      -webkit-flex-direction: row;
-                                      flex-direction: row;
-                                      flex-wrap: nowrap;
-                                    }
-
-                                .dir-top-nowrap {
-                                  display: -webkit-box;
-                                  display: -webkit-flex;
-                                  display: flex;
-                                  -webkit-box-orient: vertical;
-                                  -webkit-flex-direction: column;
-                                  flex-direction: column;
-                                  flex-wrap: nowrap;
-                                }
-
-                                .cross-center {
-                                  display: -webkit-box;
-                                  display: -webkit-flex;
-                                  display: flex;
-                                  -webkit-align-items: center;
-                                  align-items: center;
-                                }
-</style>
-                            `;
-                            let classStr = '';
-                            let font = '';
-                            let padding = '';
-                            let arrow = require("https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png");
-                            if (this.userCenter.menu_style == 1) {
-                                let margin = uni.upx2px(16);
-                                strImg = `<img src="${item.icon_url}" width="${size}" height="${size}" style="margin-right: ${margin}px"/>`;
-                                font = '17px';
-                                padding = 0;
-                            } else if (this.userCenter.menu_style == 2) {
-                                let margin = uni.upx2px(28);
-                                strImg = `<img src="${item.icon_url}" width="${size}" height="${size}" style="margin-bottom: ${margin}px"/>`;
-                                classStr = 'name';
-                                font = uni.upx2px(24) + 'px';
-                                padding = `0px` + ' ' +uni.upx2px(12) +'px';
-                            }
-
-                            let str = `<div class="box-grow-0">${strImg}</div>
-                                        <div class="box-grow-1" style="max-width: 100%;"><div style="padding:${padding};font-size: ${font}" class="${classStr}">${item.name}</div></div>`;
-                            if (this.userCenter.menu_style == 1) {
-                                let width = uni.upx2px(12);
-                                let height = uni.upx2px(22);
-                                str+= ` <div class="box-grow-0">
-                                    <img src="${arrow}" width="${width}px" height="${height}px"/>
-                                </div>`
-                            }
-                            let div = ``;
-                            let div1 = '';
-                            if (this.userCenter.menu_style == 1) {
-                                let padding1 = uni.upx2px(20) + 'px';
-                                let padding2 = uni.upx2px(32) + 'px';
-                                div1 = `<div style="width: 100%;padding: ${padding1} ${padding2}" class="dir-left-nowrap cross-center">${str}</div>`
-                            } else {
-                                let padding = uni.upx2px(24) + 'px';
-                                div1 = `<div style="width: 100%;padding: ${padding} 0" class="dir-top-nowrap cross-center">${str}</div>`
-                            }
-                            if (this.userCenter.menu_style == 1) {
-                                div = `<div class="app-button-row">${div1}</div>`
-                            } else {
-                                div = `<div class="app-button-column">${div1}</div>`
-                            }
-                            style += div;
-                            this.$utils.createWxOpenLaunchWeapp(item.id, username, path, style);
-                        }
-                    });
-                    return menus;
-                }
-                // #endif
-            }),
-            copyrightLink() {
-                if (!this.copyright) return {};
-                let { open_type, new_link_url, params } = this.copyright.link;
-                return {
-                    openType: open_type,
-                    url: new_link_url,
-                    params: params ? params : []
-                };
-            },
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme'
-            }),
-            ...mapGetters('userCenter',{
-                userCenter: 'userCenter'
-            }),
-            listStyle() {
-                if (this.userCenter.menu_style == 1) return 'row';
-                if (this.userCenter.menu_style == 2) return 'grid dir-left-wrap';
-                return '';
-            },
-            // #ifdef H5
-            isShowSetting: function () {
-                return this.$storage.getStorageSync('platform') !== 'wechat';
-            }
-            // #endif
-        },
-        onLoad() { this.$commonLoad.onload();
-            // #ifdef H5
-            this.$jwx.config();
-            // #endif
-			console.log('查看',this)
-        },
-        onShow() {
-            this.$event.on(this.$const.EVENT_USER_LOGIN).then(() => {
-                uni.redirectTo({
-                    url: `/pages/user-center/user-center`
-                });
-            });
-            if (this.$user.isLogin()) {
-                this.$store.dispatch('user/refresh');
-            }
-            this.$nextTick().then(() => {
-                this.$store.dispatch('userCenter/data');
-            });
-        },
-        methods: {
-            router(name) {
-                let url = '';
-                if (name === '我的收藏') {
-                    url = `/pages/favorite/favorite`;
-                } else {
-                    url = `/pages/foot/index/index`;
-                }
-                uni.navigateTo({
-                    url: url
-                });
-            },
-            // #ifdef H5
-            routerGo() {
-                uni.navigateTo({
-                    url: '/pages/registered/setting'
-                });
-            },
-            // #endif
-
-        },
-        filters: {
-            showNum(name, userInfo) {
-                if (name === '我的收藏') {
-                    return userInfo && userInfo.favorite ? userInfo.favorite : 0;
-                } else {
-                    return userInfo && userInfo.footprint ? userInfo.footprint : 0;
-                }
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-.app-my-service {
-    width: #{702rpx};
-    border-radius: #{16rpx};
-    margin: #{24rpx} auto;
-    box-shadow: 0 0 #{8rpx} rgba(0, 0, 0, .05);
-    background: #fff;
-
-    .title {
-        padding: #{32rpx} #{32rpx} #{16rpx};
-    }
-
-    .list {
-        .item {
-            .icon {
-                width: #{50rpx};
-                height: #{50rpx};
-                display: block;
-            }
-
-            .arrow {
-                width: #{12rpx};
-                height: #{22rpx};
-            }
-        }
-    }
-
-    .list.row {
-        .item-container {
-            padding: #{20rpx} #{32rpx};
-        }
-
-        .icon {
-            margin-right: #{16rpx};
-        }
-    }
-
-    .list.grid {
-        .item {
-            width: 25%;
-
-            .icon {
-                margin-bottom: #{28rpx};
-            }
-
-            .name {
-                padding: 0 #{12rpx};
-                font-size: $uni-font-size-weak-one;
-                color: $uni-general-color-one;
-                white-space: nowrap;
-                overflow: hidden;
-                text-overflow: ellipsis;
-            }
-        }
-
-        .item-container {
-            padding: #{24rpx} 0;
-        }
-    }
-}
-.u-foot-box {
-    position: relative;
-    height: 104upx;
-}
-.u-icon {
-    margin-top: 44upx;
-    width: 40upx;
-    height: 40upx;
-    margin-right: 17upx;
-}
-.u-foot-item {
-    font-size: #{26rpx};
-    color: #666666;
-    padding-top: #{14rpx};
-    width: 50%;
-}
-.u-foot-info {
-    text-align: center;
-}
-.u-foot-num {
-    font-size: 32upx;
-    margin-bottom: 10upx;
-}
-.u-line {
-    height: 40upx;
-    width: 2upx;
-    background-color: #666666;
-    position: absolute;
-    top: 45upx;
-    left: 50%;
-    margin-left: -2upx;
-}
-// #ifdef H5
-.bd-setting {
-    width: 702upx;
-    height: 100upx;
-    line-height: 100upx;
-    border-radius: 16upx;
-    padding: 0 33upx;
-    background: #ffffff;
-    margin: 24upx auto;
-    box-shadow: 0 0 #{8rpx} rgba(0, 0, 0, .05);
-    font-size:32upx;
-    color: #353535;
-}
-.bd-arrow {
-    width: #{12rpx};
-    height: #{22rpx};
-}
-// #endif
-</style>

+ 4 - 4
src/plugins/composition/components/app-list/app-list.vue

xqd xqd
@@ -33,8 +33,8 @@
 						        </view>
 						        <image class="item-good-attr-arrow" src="https://t17.9026.com/web/statics/image/index/arrow-right-A18353.png"></image>
 						    </view>
-						    <view v-if="item.type == 2 && goods.choose_attr" :style="{'color': theme.color}" class="choose_price">¥{{goods.total_price}}</view>
-							<view class="price"><text class="ought_price">¥3400.00</text><text class="paid_price">实付:¥<text>3000</text>.00</text></view>
+						    <!-- <view v-if="item.type == 2 && goods.choose_attr" :style="{'color': theme.color}" class="choose_price">¥{{goods.total_price}}</view> -->
+							<view class="price"><text class="ought_price">¥3400.00</text><text class="paid_price">实付:¥<text>{{goods.total_price}}</text></text></view>
 						</view>
 					</view>
 					<app-add-subtract :xStyle="2" :stock="100"></app-add-subtract>
@@ -65,8 +65,8 @@
                             </view>
                             <image class="item-good-attr-arrow" src="https://t17.9026.com/web/statics/image/index/arrow-right-A18353.png"></image>
                         </view>
-                        <view v-if="item.type == 2 && goods.choose_attr"  :style="{'color': theme.color}" class="choose_price">¥{{goods.total_price}}</view>
-						<view class="price"><text class="ought_price">¥3400.00</text><text class="paid_price">实付:¥<text>3000</text>.00</text></view>
+                        <!-- <view v-if="item.type == 2 && goods.choose_attr"  :style="{'color': theme.color}" class="choose_price">¥{{goods.total_price}}</view> -->
+						<view class="price"><text class="ought_price">¥3400.00</text><text class="paid_price">实付:¥<text>{{goods.total_price}}</text></text></view>
                     </view>
 					</view>
 					<app-add-subtract :xStyle="2" :stock="100"></app-add-subtract>

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


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


+ 6 - 0
src/store/modules/user.js

xqd xqd
@@ -15,6 +15,9 @@ const state = {
     },
     isSign: false,
 	
+	selectedProperties:{
+		name:'绑定楼盘'
+	},
 	
 	isEnterSales:false,//是否进入销售端
 };
@@ -84,6 +87,9 @@ const mutations = {
 			console.log('退出销售端',data)
 		}
 	    state.isEnterSales = data;
+	},
+	selectedProperties(state,data){
+		state.selectedProperties=data
 	}
 };