Ver código fonte

方案接口对接,销售端修改

huangzhe 3 anos atrás
pai
commit
b10e57df66

BIN
src/components/.DS_Store


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

xqd xqd xqd
@@ -1,17 +1,17 @@
 <template>
 	<view class="app-navigation-bar safe-area-inset-bottom" :style="{backgroundColor: bottom_background_color}"
 		:class="{'app-tab-bar-shadow': shadow}">
-		<view v-for="(item, index) in tabBarNavs.navs" :key="index" class="app-tab-bar-item box-grow-1"
-			:style="{height: botNavHei + 'rpx',backgroundColor: bottom_background_color, width: `${100/tabBarNavs.navs.length}%`}">
-			<app-jump-button :backgroundColor="bottom_background_color" form class="app-button" :url="item.url"
-				:open_type="item.open_type" :params="item.params" arrangement="column">
-				<image class="app-icon" :src=" router === item.url ? item.active_icon : item.icon"></image>
-				<text class="app-nav-text"
-					v-bind:style="{'color': router === item.url ? item.active_color : item.color}">
-					{{item.text}}
-				</text>
-			</app-jump-button>
-		</view>
+			<view v-for="(item, index) in isEnterSales?setTabBarNavs.navs:tabBarNavs.navs" :key="index" class="app-tab-bar-item box-grow-1"
+				:style="{height: botNavHei + 'rpx',backgroundColor: bottom_background_color, width: `${100/isEnterSales?setTabBarNavs.navs.length:tabBarNavs.navs.length}%`}">
+				<app-jump-button :backgroundColor="bottom_background_color" form class="app-button" :url="item.url"
+					:open_type="item.open_type" :params="item.params" arrangement="column">
+					<image class="app-icon" :src=" router === item.url ? item.active_icon : item.icon"></image>
+					<text class="app-nav-text"
+						v-bind:style="{'color': router === item.url ? item.active_color : item.color}">
+						{{item.text}}
+					</text>
+				</app-jump-button>
+			</view>
 	</view>
 </template>
 
@@ -25,6 +25,76 @@
 		data() {
 			return {
 				router: '',
+				setTabBarNavs:{
+					"bottom_background_color": "#FFFFFF",
+					"navs": [
+						{
+							"active_color": "#A18353",
+							"active_icon": "https://t17.9026.com/web/statics/image/sale/sale_home_select.png",
+							"color": "#989898",
+							"icon": "https://t17.9026.com/web/statics/image/sale/sale_home.png",
+							"id": 1,
+							"key": "",
+							// "link": {
+							// 	"icon": "https://t1.9026.com/web/statics/img/mall/pick-link/icon-cats.png",
+							// 	"id": "22",
+							// 	"name": "分类",
+							// 	"new_link_url": "/pages/cats/cats?cat_id=",
+							// 	"open_type": "navigate",
+							// 	"params": [{
+							// 		"data_type": "number",
+							// 		"desc": "请选择分类",
+							// 		"is_required": "false",
+							// 		"key": "cat_id",
+							// 		"page_url": "mall/cat/index",
+							// 		"page_url_text": "商品管理->分类",
+							// 		"value": ""
+							// 	}],
+							// 	"type": "base",
+							// 	"value": "/pages/cats/cats"
+							// },
+							"open_type": "redirect",
+							"text": "代客下单",
+							"url": "/pages/cats/cats"
+						},
+						{
+							"active_color": "#A18353",
+							"active_icon": "https://t17.9026.com/web/statics/image/sale/sale_order_select.png",
+							"color": "#989898",
+							"icon": "https://t17.9026.com/web/statics/image/sale/sale_order.png",
+							"id": 2,
+							"open_type": "redirect",
+							"text": "订单",
+							"url": "/pages/sale/mySaleOrder"
+						},
+						{
+							"active_color": "#A18353",
+							"active_icon": "https://t17.9026.com/web/statics/image/sale/sale_my_select.png",
+							"color": "#989898",
+							"icon": "https://t17.9026.com/web/statics/image/sale/sale_my.png",
+							"id": 3,
+							"key": "",
+							// "link": {
+							// 	"icon": "https://t1.9026.com/web/statics/img/mall/pick-link/icon-user-center.png",
+							// 	"id": "24",
+							// 	"ignore": [
+							// 		"title"
+							// 	],
+							// 	"name": "用户中心",
+							// 	"new_link_url": "/pages/user-center/user-center",
+							// 	"open_type": "navigate",
+							// 	"type": "base",
+							// 	"value": "/pages/user-center/user-center"
+							// },
+							"open_type": "redirect",
+							"text": "我的",
+							"url": "/pages/sale/sale-user-center"
+						}
+					],
+					"shadow": true,
+					"top_background_color": "#FFFFFF",
+					"top_text_color": "#000000"
+				},
 			}
 		},
 		props: {
@@ -34,6 +104,9 @@
 			...mapGetters('mallConfig', {
 				tabBarNavs: 'getNavBar'
 			}),
+			...mapGetters('user', {
+				isEnterSales: 'getIsEnterSales'
+			}),
 			...mapGetters('iPhoneX', {
 				botNavHei: 'getNavHei',
 			}),

+ 445 - 0
src/components/fui-dropdown-menu/fui-dropdown-menu.vue

xqd
@@ -0,0 +1,445 @@
+<template>
+	<view class="fui-dropdown__menu">
+		<slot></slot>
+		<view class="fui-dropdown__menu-list"
+			:class="{'fui-ddm__down':direction!=='up','fui-ddm__up':direction==='up','fui-ddm__down-show':isShow && direction!=='up','fui-ddm__up-show':isShow && direction==='up'}"
+			:style="getStyles">
+			<scroll-view class="fui-ddm__scroll" scroll-y :style="{maxHeight:maxHeight+'rpx',minWidth:minWidth+'rpx'}">
+				<view class="fui-dropdown__menu-item" :style="{background:background,padding:padding}"
+					:class="{'fui-ddm__reverse':isReverse,'fui-ddm__item-line':splitLine && itemList.length-1!==index}"
+					v-for="(model,index) in itemList" :key="index" @tap.stop="itemClick(index)">
+					<view class="fui-ddm__checkbox"
+						:class="{'fui-is__checkmark':isCheckMark,'fui-ddm__checkbox-color':(!checkboxColor || checkboxColor=='true') && model.checked && !isCheckMark}"
+						:style="{background:model.checked && !isCheckMark ?checkboxColor:'transparent',borderColor:model.checked && !isCheckMark ?checkboxColor:borderColor}"
+						v-if="isCheckbox">
+						<view class="fui-ddm__checkmark"
+							:style="{borderBottomColor:checkmarkColor,borderRightColor:checkmarkColor}"
+							v-if="model.checked"></view>
+					</view>
+					<view class="fui-ddm__flex">
+						<view class="fui-ddm__icon-box"
+							:class="{'fui-ddm__icon-ml':!isReverse && isCheckbox,'fui-ddm__icon-mr':isReverse}"
+							:style="{width:iconWidth+'rpx',height:iconWidth+'rpx'}" v-if="model.src">
+							<image src="/static/images/common/logo.png"
+								:style="{width:iconWidth+'rpx',height:iconWidth+'rpx'}"></image>
+						</view>
+						<text class="fui-ddm__item-text"
+							:class="{'fui-ddm__text-pl':!isReverse && (isCheckbox || model.src),'fui-ddm__text-pr':isReverse && (isCheckbox || model.src)}"
+							:style="{fontSize:size+'rpx',color:selectedColor && model.checked?selectedColor:color}">{{model.text}}</text>
+					</view>
+				</view>
+			</scroll-view>
+		</view>
+		<view class="fui-ddm__mask" :style="{backgrround:maskBackground}" v-if="isShow && isMask" @tap="close(1)">
+		</view>
+	</view>
+</template>
+
+<script>
+	/*!
+	 * 下拉菜单
+	 * 由于weex android上overflow仅支持hidden,所以该组件不支持Nvue端
+	 * Nvue端使用组件fui-dropdown-list或fui-select组件替代该组件
+	 */
+	export default {
+		name: "fui-dropdown-menu",
+		emits: ['click', 'close'],
+		props: {
+			options: {
+				type: Array,
+				default () {
+					return []
+				}
+			},
+			maxHeight: {
+				type: [Number, String],
+				default: 400
+			},
+			minWidth: {
+				type: [Number, String],
+				default: 0
+			},
+			left: {
+				type: [Number, String],
+				default: 0
+			},
+			//right大于等于0时生效,left失效
+			right: {
+				type: [Number, String],
+				default: -1
+			},
+			background: {
+				type: String,
+				default: '#fff'
+			},
+			radius: {
+				type: [Number, String],
+				default: 0
+			},
+			padding: {
+				type: String,
+				default: '32rpx'
+			},
+			isCheckbox: {
+				type: Boolean,
+				default: true
+			},
+			//选择框选中后颜色
+			checkboxColor: {
+				type: String,
+				// #ifdef APP-NVUE
+				default: '#465CFF'
+				// #endif
+				// #ifndef APP-NVUE
+				default: ''
+				// #endif
+			},
+			//选择框未选中时边框颜色
+			borderColor: {
+				type: String,
+				default: '#ccc'
+			},
+			//是否只展示对号,无边框背景
+			isCheckMark: {
+				type: Boolean,
+				default: false
+			},
+			//对号颜色
+			checkmarkColor: {
+				type: String,
+				default: '#fff'
+			},
+			//选择框与内容是否颠倒排列
+			isReverse: {
+				type: Boolean,
+				default: false
+			},
+			//是否需要分割线条
+			splitLine: {
+				type: Boolean,
+				default: false
+			},
+			iconWidth: {
+				type: [Number, String],
+				default: 48
+			},
+			size: {
+				type: [Number, String],
+				default: 32
+			},
+			color: {
+				type: String,
+				default: '#181818'
+			},
+			selectedColor: {
+				type: String,
+				default: ''
+			},
+			isMask: {
+				type: Boolean,
+				default: true
+			},
+			maskBackground: {
+				type: String,
+				default: 'transparent'
+			},
+			//down/up
+			direction: {
+				type: String,
+				default: 'down'
+			}
+		},
+		watch: {
+			options(newVal) {
+				this.initData(newVal)
+			}
+		},
+		data() {
+			return {
+				itemList: [],
+				isShow: false
+			};
+		},
+		computed: {
+			getStyles() {
+				let styles = `border-radius:${this.radius}rpx;background:${this.background};`
+				let right = Number(this.right || 0)
+				if (right >= 0) {
+					styles += 'right:0;'
+				} else {
+					styles += 'left:0;'
+				}
+				return styles
+			}
+		},
+		created() {
+			this.initData(this.options)
+		},
+		methods: {
+			initData(vals) {
+				if (vals && vals.length > 0) {
+					if (typeof vals[0] !== 'object') {
+						vals = vals.map(item => {
+							return {
+								text: item,
+								checked: false
+							}
+						})
+					} else {
+						vals.map(item => {
+							item.checked = item.checked || false
+						})
+					}
+					this.itemList = vals;
+				}
+			},
+			itemClick(index) {
+				let item = this.itemList[index]
+				let vals = [...this.itemList]
+				vals.forEach((item, idx) => {
+					if (index === idx) {
+						item.checked = true
+					} else {
+						item.checked = false
+					}
+				})
+				this.itemList = vals;
+				this.$emit('click', {
+					index: index,
+					...item
+				})
+				this.close(2)
+			},
+			close(type) {
+				this.isShow = false;
+				if (type === 1) {
+					this.$emit('close', {})
+				}
+			},
+			show() {
+				this.isShow = true;
+			}
+		}
+	}
+</script>
+
+<style scoped>
+	.fui-dropdown__menu {
+		flex: 1;
+		position: relative;
+	}
+
+	.fui-ddm__scroll {
+		/* #ifndef APP-NVUE */
+		width: auto;
+		/* #endif */
+	}
+
+	.fui-dropdown__menu-list {
+		position: absolute;
+		box-shadow: 0 0 10rpx rgba(2, 4, 38, 0.05);
+		overflow: hidden;
+		z-index: 992;
+		opacity: 0;
+		/* #ifndef APP-NVUE */
+		visibility: hidden;
+		transition: all 0.3s ease-in-out;
+		/* #endif */
+	}
+
+	.fui-ddm__down {
+		transform-origin: 0 0;
+		bottom: 0;
+		/* #ifndef APP-NVUE */
+		transform: translate3d(0, 100%, 0) scaleY(0);
+		/* #endif */
+	}
+
+	.fui-ddm__down-show {
+		/* #ifndef APP-NVUE */
+		transform: translate3d(0, 100%, 0) scaleY(1);
+		visibility: visible;
+		/* #endif */
+		opacity: 1;
+	}
+
+	.fui-ddm__up {
+		transform-origin: 0 100%;
+		top: 0;
+		/* #ifndef APP-NVUE */
+		transform: translate3d(0, -100%, 0) scaleY(0);
+		/* #endif */
+	}
+
+	.fui-ddm__up-show {
+		/* #ifndef APP-NVUE */
+		transform: translate3d(0, -100%, 0) scaleY(1);
+		visibility: visible;
+		/* #endif */
+		opacity: 1;
+	}
+
+	.fui-ddm__mask {
+		position: fixed;
+		top: 0;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		z-index: 990;
+	}
+
+	.fui-dropdown__menu-item {
+		/* #ifndef APP-NVUE */
+		width: 100%;
+		display: flex;
+		box-sizing: border-box;
+		transform: scale(1) translateZ(0);
+		/* #endif */
+		flex: 1;
+		flex-direction: row;
+		align-items: center;
+		background-color: #FFFFFF;
+		position: relative;
+		/* #ifdef H5 */
+		cursor: pointer;
+		/* #endif */
+
+	}
+
+	.fui-ddm__flex {
+		/* #ifndef APP-NVUE */
+		width: 100%;
+		display: flex;
+		box-sizing: border-box;
+		/* #endif */
+		flex: 1;
+		flex-direction: row;
+		align-items: center;
+	}
+
+	/* #ifndef APP-NVUE */
+	.fui-ddm__item-line {
+		position: relative;
+	}
+
+	.fui-ddm__item-line::after {
+		content: '';
+		position: absolute;
+		border-bottom: 1px solid var(--fui-color-border, #EEEEEE);
+		/* #ifdef H5 */
+		transform: scaleY(0.5);
+		/* #endif */
+
+		/* #ifndef H5 */
+		transform: scaleY(0.5) translateZ(0);
+		/* #endif */
+		transform-origin: 0 100%;
+		bottom: 0;
+		right: 0;
+		left: 32rpx;
+		pointer-events: none;
+	}
+
+	/* #endif */
+
+	.fui-dropdown__menu-item:active {
+		/* #ifdef APP-NVUE */
+		background-color: rgba(0, 0, 0, .2) !important;
+		/* #endif */
+		/* #ifndef APP-NVUE */
+		background-color: var(--fui-bg-color-hover, rgba(0, 0, 0, .2)) !important;
+		/* #endif */
+	}
+
+	.fui-ddm__reverse {
+		justify-content: space-between;
+		flex-direction: row-reverse;
+	}
+
+	.fui-ddm__checkbox {
+		font-size: 0;
+		color: rgba(0, 0, 0, 0);
+		width: 40rpx;
+		height: 40rpx;
+		border-width: 1px;
+		border-style: solid;
+		/* #ifdef APP-NVUE */
+		border-radius: 40rpx;
+		/* #endif */
+		/* #ifndef APP-NVUE */
+		display: inline-flex;
+		box-sizing: border-box;
+		border-radius: 50%;
+		vertical-align: top;
+		flex-shrink: 0;
+		/* #endif */
+		flex-direction: row;
+		align-items: center;
+		justify-content: center;
+		overflow: hidden;
+		position: relative;
+	}
+
+	/* #ifndef APP-NVUE */
+	.fui-ddm__checkbox-color {
+		background: var(--fui-color-primary, #465CFF) !important;
+		border-color: var(--fui-color-primary, #465CFF) !important;
+	}
+
+	/* #endif */
+
+	.fui-is__checkmark {
+		border-width: 0 !important;
+		background: transparent !important;
+	}
+
+	.fui-ddm__checkmark {
+		width: 20rpx;
+		height: 40rpx;
+		border-bottom-style: solid;
+		border-bottom-width: 3px;
+		border-bottom-color: #FFFFFF;
+		border-right-style: solid;
+		border-right-width: 3px;
+		border-right-color: #FFFFFF;
+		/* #ifndef APP-NVUE */
+		box-sizing: border-box;
+		transform: rotate(45deg) scale(0.5) translateZ(0);
+		/* #endif */
+		/* #ifdef APP-NVUE */
+		transform: rotate(45deg) scale(0.5);
+		/* #endif */
+		transform-origin: 54% 48%;
+	}
+
+	.fui-ddm__item-text {
+		/* #ifndef APP-NVUE */
+		word-break: break-all;
+		/* #endif */
+		font-weight: normal;
+	}
+
+	.fui-ddm__text-pl {
+		padding-left: 24rpx;
+	}
+
+	.fui-ddm__text-pr {
+		padding-right: 24rpx;
+	}
+
+	.fui-ddm__icon-box {
+		overflow: hidden;
+		background-color: #F1F4FA;
+		/* #ifndef APP-NVUE */
+		flex-shrink: 0;
+		/* #endif */
+	}
+
+	.fui-ddm__icon-ml {
+		margin-left: 24rpx;
+	}
+
+	.fui-ddm__icon-mr {
+		margin-right: 24rpx;
+	}
+</style>

+ 1 - 0
src/core/apiUrl.js

xqd
@@ -658,6 +658,7 @@ const apiUrl = {
 		// hxj新增
 		cat_list:'plugin/composition/api/index/cat-list',
 		list:'plugin/composition/api/index/list',
+		info:'plugin/composition/api/index/info',
 		//
     },
     favorite: {

+ 2 - 1
src/pages.json

xqd
@@ -171,7 +171,8 @@
 					"path": "mySaleOrder",
 					"style": {
 						"navigationBarTitleText": "我的订单",
-						"enablePullDownRefresh": false
+						"enablePullDownRefresh": false,
+						"navigationBarBackgroundColor":"#fff"
 					}
 
 				}, {

+ 183 - 184
src/pages/case/components/hxj-bd-info.vue

xqd xqd xqd xqd xqd xqd xqd
@@ -1,5 +1,5 @@
 <template>
-    <view class="bd-info">
+	<view class="bd-info">
 		<view class="main-between hxj-goods-name">
 			<view class="main-between-y">
 				<view class="main-left cross-center">
@@ -22,175 +22,165 @@
 			</view>
 		</view>
 
-            <template v-if="!isShowShare && $slots.share">
-                <view class="bd-share">
-                    <slot name="share"></slot>
-                </view>
-            </template>
-            <template v-if="isShowShare">
-                <bd-quick-share
-                    v-model="quickShareShow"
-                    @quickShare="quickShare"
-                    :goods-id="goodsId"
-                    :is-video-number="goods.is_video_number"
-                    :extra-quick-share="extraQuickShare"
-                    :app-share-pic="appSharePic"
-                    :app-share-title="appShareTitle"
-                ></bd-quick-share>
-                <app-share-qr-code
-                    @share="testShare"
-                    v-model="shareShow"
-                    :url="newShareUrl"
-                    :goods="goods"
-                    :poster-config="posterConfig"
-                    :poster-generate="posterGenerate"
-                    :has-poster-nav="hasPosterNav"
-                    :app-share-pic="appSharePic"
-                    :app-share-title="appShareTitle"
-                ></app-share-qr-code>
-            </template>
-        </view>
-    </view>
+		<template v-if="!isShowShare && $slots.share">
+			<view class="bd-share">
+				<slot name="share"></slot>
+			</view>
+		</template>
+		<template v-if="isShowShare">
+			<bd-quick-share v-model="quickShareShow" @quickShare="quickShare" :goods-id="goodsId"
+				:is-video-number="goods.is_video_number" :extra-quick-share="extraQuickShare"
+				:app-share-pic="appSharePic" :app-share-title="appShareTitle"></bd-quick-share>
+			<app-share-qr-code @share="testShare" v-model="shareShow" :url="newShareUrl" :goods="goods"
+				:poster-config="posterConfig" :poster-generate="posterGenerate" :has-poster-nav="hasPosterNav"
+				:app-share-pic="appSharePic" :app-share-title="appShareTitle"></app-share-qr-code>
+		</template>
+	</view>
 </template>
 
 <script>
-import {mapState} from "vuex";
-import bdQuickShare from '@/components/page-component/goods/bd-quick-share.vue';
-import appShareQrCode from '@/components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
+	import {
+		mapState
+	} from "vuex";
+	import bdQuickShare from '@/components/page-component/goods/bd-quick-share.vue';
+	import appShareQrCode from '@/components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
 
-export default {
-    name: "u-info",
-    props: {
-        name: String,
-        subtitle: String,
-        isNegotiable: Number,
-        theme: Object,
-        flashSale: Object,
-        levelShow: Number,
-		price: {
-			type: [Number, String]
-		},
-		originalPrice: {
-			type: [Number, String]
-		},
-		priceMax: Number,
-		priceMin: Number,
-		priceMemberMax: Number,
-		priceMemberMin: Number,
-		isShowMember: {
-			type: Boolean,
-			default() {
-				return true;
+	export default {
+		name: "u-info",
+		props: {
+			name: String,
+			subtitle: String,
+			isNegotiable: Number,
+			theme: Object,
+			flashSale: Object,
+			levelShow: Number,
+			price: {
+				type: [Number, String]
+			},
+			originalPrice: {
+				type: [Number, String]
+			},
+			priceMax: Number,
+			priceMin: Number,
+			priceMemberMax: Number,
+			priceMemberMin: Number,
+			isShowMember: {
+				type: Boolean,
+				default () {
+					return true;
+				}
+			},
+			discount: {
+				type: [Number, String]
+			},
+			isVipCardUser: {
+				type: Number,
+				default () {
+					return 0;
+				}
+			},
+			sales: {
+				type: [Number, String]
+			},
+			unit: String,
+			isSales: Number,
+			goodsId: Number,
+			goods: Object,
+			isVip: Boolean,
+			isShowShare: {
+				type: Boolean,
+				default () {
+					return true;
+				}
+			},
+			isProcess: {
+				type: Boolean,
+				default () {
+					return false;
+				}
+			},
+			posterConfig: String,
+			posterGenerate: String,
+			hasPosterNav: {
+				type: Boolean,
+				default () {
+					return false
+				},
+			},
+			shareUrl: String,
+			appShareTitle: String,
+			appSharePic: String,
+			extraQuickShare: Object,
+			minNumber: Number,
+			limitBuy: Object,
+			hasUnderlinePrice: {
+				type: [Boolean, String],
+				default: true
 			}
 		},
-		discount: {
-			type: [Number, String]
-		},
-		isVipCardUser: {
-			type: Number,
-			default() {
-				return 0;
+		data() {
+			return {
+				shareShow: false,
+				quickShareShow: false
 			}
 		},
-		sales: {
-			type: [Number, String]
-		},
-		unit: String,
-		isSales: Number,
-		goodsId: Number,
-		goods: Object,
-		isVip: Boolean,
-		isShowShare: {
-			type: Boolean,
-			default() {
-				return true;
-			}
+		components: {
+			bdQuickShare,
+			appShareQrCode,
 		},
-		isProcess: {
-			type: Boolean,
-			default() {
-				return false;
+		computed: {
+			isUnderlinePrice() {
+				return Number(this.is_underline_price) && this.hasUnderlinePrice
+			},
+			...mapState({
+				is_underline_price: state => state.mallConfig.mall.setting.is_underline_price
+			}),
+			newShareUrl() {
+				if (this.shareUrl) {
+					return this.shareUrl;
+				} else {
+					if (this.goodsId) {
+						return this.$api.poster.goods + '&goods_id=' + this.goodsId;
+					} else {
+						return ``;
+					}
+				}
 			}
 		},
-		posterConfig: String,
-		posterGenerate: String,
-		hasPosterNav: {
-			type: Boolean,
-			default() {
-				return false
+		methods: {
+			receive(){
+				this.$emit('receive')
 			},
-		},
-		shareUrl: String,
-		appShareTitle: String,
-		appSharePic: String,
-		extraQuickShare: Object,
-		minNumber: Number,
-		limitBuy: Object,
-		hasUnderlinePrice: {
-			type: [Boolean, String],
-			default:true
+			testShare(s) {
+				this.$emit('share', s);
+			},
+			quickShare(e) {
+				this.$emit('quickShare', e);
+			},
+			shareClick() {
+				// 判断登入
+				if (!this.$user.isLogin()) {
+					this.$user.getInfo().then(() => {});
+				} else {
+					if (this.extraQuickShare) {
+						this.quickShareShow = true;
+					} else {
+						this.shareShow = true;
+					}
+				}
+			}
 		}
-    },
-        data() {
-            return {
-                shareShow: false,
-                quickShareShow: false
-            }
-        },
-        components: {
-            bdQuickShare,
-            appShareQrCode,
-        },
-        computed: {
-            isUnderlinePrice() {
-                return Number(this.is_underline_price) && this.hasUnderlinePrice
-            },
-            ...mapState({
-                is_underline_price: state => state.mallConfig.mall.setting.is_underline_price
-            }),
-            newShareUrl() {
-                if (this.shareUrl) {
-                    return this.shareUrl;
-                } else {
-                    if (this.goodsId) {
-                        return this.$api.poster.goods + '&goods_id=' + this.goodsId;
-                    } else {
-                        return ``;
-                    }
-                }
-            }
-        },
-        methods: {
-            testShare(s){
-                this.$emit('share', s);
-            },
-            quickShare(e) {
-                this.$emit('quickShare', e);
-            },
-            shareClick() {
-                // 判断登入
-                if (!this.$user.isLogin()) {
-                    this.$user.getInfo().then(() => {
-                    });
-                } else {
-                    if (this.extraQuickShare) {
-                        this.quickShareShow = true;
-                    } else {
-                        this.shareShow = true;
-                    }
-                }
-            }
-        }
-    }
+	}
 </script>
 
 <style lang="scss" scoped>
-	.hxj-goods-name{
+	.hxj-goods-name {
 		width: 750rpx;
 		height: auto;
 		background: #F6F6F6;
 		padding: 43rpx 30rpx 28rpx 46rpx;
-		.hxj-name{
+
+		.hxj-name {
 			width: 360rpx;
 			font-size: 28rpx;
 			font-weight: 500;
@@ -198,7 +188,8 @@ export default {
 			line-height: 56rpx;
 			margin-right: 14rpx;
 		}
-		.hxj-tags{
+
+		.hxj-tags {
 			width: 56rpx;
 			height: 30rpx;
 			background: #040404;
@@ -208,7 +199,8 @@ export default {
 			margin-right: 13rpx;
 			text-align: center;
 		}
-		.hxj-ynum{
+
+		.hxj-ynum {
 			width: auto;
 			height: 30rpx;
 			border: 1rpx solid #AE8445;
@@ -221,24 +213,28 @@ export default {
 			line-height: 30rpx;
 			text-align: center;
 		}
-		.hxj-price{
+
+		.hxj-price {
 			font-size: 46rpx;
 			font-weight: bold;
 			color: #A6814F;
-			.rmb{
+
+			.rmb {
 				font-size: 18rpx;
 				font-weight: 500;
 				color: #A6814F;
 				margin-right: 9rpx;
 			}
-			.dw{
+
+			.dw {
 				font-size: 20rpx;
 				font-weight: 500;
 				color: #A6814F;
 				margin-left: 13rpx;
 			}
 		}
-		.lq{
+
+		.lq {
 			width: 92rpx;
 			height: 38rpx;
 			background: #FF0000;
@@ -250,12 +246,14 @@ export default {
 			line-height: 38rpx;
 			margin-top: 10rpx;
 		}
-		.se{
-			image{
+
+		.se {
+			image {
 				width: 25rpx;
 				height: 25rpx;
 				margin-right: 6rpx;
 			}
+
 			font-size: 24rpx;
 			font-weight: 500;
 			color: #AE8445;
@@ -263,33 +261,34 @@ export default {
 	}
 
 
-    .bd-share {
-        margin-top: 15upx;
-        margin-right: -20upx;
-    }
+	.bd-share {
+		margin-top: 15upx;
+		margin-right: -20upx;
+	}
 
-    .bd-share .bd-share-box {
-        height: 48upx;
-        border-radius: 40upx 0 0 40upx;
-        padding: 0 14upx;
-        width: 103upx;
-    }
+	.bd-share .bd-share-box {
+		height: 48upx;
+		border-radius: 40upx 0 0 40upx;
+		padding: 0 14upx;
+		width: 103upx;
+	}
 
-    .bd-share .bd-icon {
-        width: 22upx;
-        height: 22upx;
-    }
-    .bd-share .bd-text {
-        color: #ffffff;
-        font-size: 22upx;
-        line-height: 30upx;
-        margin-left: 10upx;
-    }
-	.process{
-		background-color: rgb(221, 183, 102);
-		    background-size: 100% 100%;
-		    width: 20.66rem;
-		    height: 2.78rem;
+	.bd-share .bd-icon {
+		width: 22upx;
+		height: 22upx;
 	}
 
-</style>
+	.bd-share .bd-text {
+		color: #ffffff;
+		font-size: 22upx;
+		line-height: 30upx;
+		margin-left: 10upx;
+	}
+
+	.process {
+		background-color: rgb(221, 183, 102);
+		background-size: 100% 100%;
+		width: 20.66rem;
+		height: 2.78rem;
+	}
+</style>

+ 34 - 13
src/pages/case/hot_sale_project.vue

xqd xqd xqd
@@ -12,25 +12,25 @@
 		<view class="w" :style="{'height':navbarHeight}"></view>
 		<view class="center">
 			<view class="main-left tagf">
-				<view class="tag" :class="{'active':activeIndex===index?true:false}" v-for="(item,index) in ['全部','硬包装','软包装','热门商品站位']" :key="index" @click="selectTag(index)">
-					{{item}}
+				<view class="tag" :class="{'active':activeIndex===index?true:false}" v-for="(item,index) in classList" :key="index" @click="selectTag(index)">
+					{{item.name}}
 				</view>
 			</view>
-			<view class="item" v-for="(item,index) in 6" :key="index">
+			<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://t17.9026.com/web/statics/image/index/2.png" mode=""></image>
+						<image style="width: 419rpx;height: 281rpx;" src="https://img0.baidu.com/it/u=2763244517,2282347331&fm=26&fmt=auto" mode=""></image>
 					</view>
 					<view style="width: 206rpx;">
-						<image style="width: 206rpx;height: 136rpx;" src="https://t17.9026.com/web/statics/image/index/2.png" mode=""></image>
-						<image style="width: 206rpx;height: 136rpx;" src="https://t17.9026.com/web/statics/image/index/2.png" mode=""></image>
+						<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>
 					</view>
 				</view>
-				<view class="main-between pl" @click="goPage">
+				<view class="main-between pl" >
 					<view class="main-between-y">
-						<view class="title t-omit">兴城人居ins软陶简洁大气套餐软陶简洁大气套餐软陶简洁大气套餐软陶简洁大气套餐软陶简洁大气套餐软陶简洁大气套餐</view>
-						<view class="desc">已售:110套 | 266人收藏</view>
-						<view class="price"><text>¥</text>299.00</view>
+						<view class="title t-omit">{{item.name}}</view>
+						<view class="desc">已售:{{item.sale_num}}套 | {{item.collect_num}}人收藏</view>
+						<view class="price"><text>¥</text>{{item.price}}</view>
 					</view>
 					<view class="cross-bottom arrow-right">
 						<image src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
@@ -51,21 +51,26 @@
 			return {
 				activeIndex:0,
 				navbarHeight:'',
+				
+				classList:[],
+				CompositionList:[],
 			};
 		},
 		onLoad() {
 			this.getCompositionClass()
+			this.getCompositionList()
 		},
 		methods:{
 			selectTag(index){
 				this.activeIndex=index
+				this.getCompositionList(this.classList[index].cat_id)
 			},
 			headHeight(e){
 				this.navbarHeight=e+'px'
 			},
-			goPage(){
+			goPage(id){
 				uni.navigateTo({
-					url:'/pages/case/projectInfo?id=9'
+					url:'/pages/case/projectInfo?id='+id
 				})
 			},
 			getCompositionClass(){
@@ -73,7 +78,23 @@
 					url: this.$api.composition.cat_list,
 					method:'post'
 				}).then(res=>{
-					console.log(res)
+					if(res.code===0){
+						this.classList=res.data
+						this.classList.splice(0,0,{id:'',name:'全部'})
+					}
+				})
+			},
+			getCompositionList(cat_id=''){
+				this.$request({
+					url:this.$api.composition.list,
+					methods:'post',
+					data:{
+						cat_id:cat_id
+					}
+				}).then(res=>{
+					if(res.code===0){
+						this.CompositionList=res.data.list
+					}
 				})
 			}
 		}

+ 18 - 9
src/pages/case/projectInfo.vue

xqd xqd xqd xqd xqd xqd
@@ -30,7 +30,7 @@
 					:poster-config="poster_config + `&goods_id=` + goodsId"
 					:poster-generate="poster_generate + `&goods_id=` + goodsId" :has-poster-nav="true"
 					v-bind:goods="goods" @share="hShareAppMessage" @quickShare="quickShare" :limit-buy="limit_buy"
-					:min-number="min_number"></hxj-bd-info>
+					:min-number="min_number" @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>
@@ -56,11 +56,7 @@
 			</view>
 
 			<!--商品优惠券-->
-			<bd-coupon @change="setCoupon" @on-show-change="
-					val => {
-						isCouponShow = val;
-					}
-				" :isCustomEntry="true" :myShow="isCouponShow" :theme="getTheme" :coupons="goods_coupon_center"></bd-coupon>
+			<bd-coupon @change="setCoupon" @on-show-change="val => {isCouponShow = val}" :isCustomEntry="true" :myShow="isCouponShow" :theme="getTheme" :coupons="goods_coupon_center"></bd-coupon>
 			<!--商品规格-->
 			<!-- <bd-xbc
                 :coAttr="is_open == 1 && exchangeStatus ==null ? 1 : 0"
@@ -145,13 +141,13 @@
 								v-if="goods_num === 0 || is_finish_sell">
 								{{ is_finish_sell ? '商品已下架' : '已售罄' }}
 							</view>
-							<view class="box-grow-1 dir-left-nowrap" v-else>
-								<view v-if="goods.type === 'goods'" @click="clickAttr(0)" :style="{
+							<view class="box-grow-1 dir-right-nowrap" v-else>
+								<!-- <view v-if="goods.type === 'goods'" @click="clickAttr(0)" :style="{
 										background: !goods || goods.buy_goods_auth ? getTheme.background_s_gradient_btn : '#999999',
 										color: !goods || goods.buy_goods_auth ? getTheme.secondary_text : '#ffffff'
 									}" :class="['bd-btn', leftTip]">
 									加入购物车
-								</view>
+								</view> -->
 								<view :class="[goods.type === 'goods' ? 'bd-btn-right bd-btn-half' : 'box-grow-1']"
 									v-if="!(isTip == 0 && sell_time > 0)">
 									<app-jump-button form>
@@ -519,6 +515,9 @@
 		},
 		// #endif
 		methods: {
+			receive(){
+				this.isCouponShow=true
+			},
 			onCouponShow(val) {
 				console.log(val);
 			},
@@ -585,6 +584,15 @@
 				});
 			},
 			loadData(id, options) {
+				this.$request({
+					url:this.$api.composition.info,
+					data:{
+						composition_id:id
+					},
+					method:'post'
+				}).then(res=>{
+					 
+				})
 				return new Promise((resolve, reject) => {
 					this.$showLoading();
 					this.$request({
@@ -709,6 +717,7 @@
 							this.$hideLoading();
 						});
 				});
+				
 			},
 			onAttr(data) {
 				this.selectAttr = data;

+ 7 - 4
src/pages/index/hxj_index_component.vue

xqd xqd xqd xqd xqd
@@ -14,7 +14,7 @@
 		</view>
 		<view class="link">
 			<view>
-				<view class="title">兴城 · 荟享家<image class="hxjImg" src="https://t17.9026.com/web/statics/image/index/HUIXIANGJIA.png"
+				<view class="title">人居 · 荟享家<image class="hxjImg" src="https://t17.9026.com/web/statics/image/index/HUIXIANGJIA.png"
 						mode=""></image>
 				</view>
 			</view>
@@ -57,7 +57,7 @@
 			<view class="item main-left" v-for="(item,index) in 2" :key="index">
 				<view class="Wb">
 					<view>
-						<view class="title_2">定制优享礼券</view>
+						<view class="title_2">定制优享礼券 <text class="hjx-tc-B19D60 hjx-ts-21 hxj-ml-10">立即领取</text></view>
 						<view class="desc_2">新用户礼遇</view>
 					</view>
 					<view>
@@ -161,7 +161,7 @@
 				</view>
 			</view>
 			<view class="dir-left-wrap bottom">
-				<view class="item" v-for="(item,index) in 4" :key="index">
+				<view class="item" v-for="(item,index) in 4" :key="index" @click="goPage(`/pages/goods/goods?id=${18+index}`)">
 					<view>
 						<image class="cover" :src="`https://t17.9026.com/web/statics/image/index/${index+10}.png`" mode=""></image>
 					</view>
@@ -171,7 +171,7 @@
 							class="dw">元</text></view>
 				</view>
 			</view>
-			<view class="more1">
+			<view class="more1" @click="goPage('/pages/cats/cats')">
 				<view class="viewmore1_color main-center cross-center">更多荟享<image class=""
 						src="https://t17.9026.com/web/statics/image/index/viewmore1.png" mode=""></image>
 				</view>
@@ -222,6 +222,9 @@
 				]
 			}
 		},
+		created() {
+			this.$store.dispatch('user/isEnterSales',false);
+		},
 		methods: {
 			swiperChange(e){
 				console.log(e.detail.current)

+ 1 - 1
src/pages/index/index.scss

xqd
@@ -242,7 +242,7 @@
 		margin-right: 25rpx;
 		position: relative;
 		background-image: url(https://t17.9026.com/web/statics/image/index/coupon_masking.png);
-		background-size: 320rpx 200rpx;
+		background-size: 310rpx 200rpx;
 		.Wb {
 			display: flex;
 			flex-flow: column;

+ 169 - 77
src/pages/sale/mySaleOrder.vue

xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd xqd
@@ -1,15 +1,31 @@
 <template>
-	<view>
-		<view class="main-around top-menu">
-			<view class="main-center-y cross-center item" :style="item.bgc" v-for="(item,index) in topMenuData" :key="index">
-				<view class="title">{{item.title}}</view>
-				<image :src="item.icon" mode=""></image>
+	<!-- <app-layout :haveBackground="false"> -->
+	<view class="page">
+		<view style="background-color: #fff;">
+			<view class="main-left cross-center search">
+				<image src="https://t17.9026.com/web/statics/image/index/search.png" mode=""></image>
+				<input style="width: 560rpx;" type="text" value="" placeholder="搜索客户、商品、时间、订单号"
+					placeholder-style="font-size:28rpx;color:#999;" />
 			</view>
 		</view>
-		<view class="main-left cross-center search">
-			<image src="https://t17.9026.com/web/statics/image/index/search.png" mode=""></image>
-			<input style="width: 560rpx;" type="text" value="" placeholder="搜索客户、商品、时间、订单号" placeholder-style="font-size:28rpx;color:#999;" />
-		</view>
+
+		<AppDropdownMenu :size="28" selectedColor="#465CFF" :options="options" @click="rangeItemClick"
+			@close="rangeClose" ref="ddmRange">
+			<view class="main-between">
+				<view class="fui-filter__item" @tap="filterTap">
+					<text>{{range}}</text>
+					<view class="fui-filter__icon" :class="{'fui-icon__ani':rangeShow}">
+						<fui-icon name="turningdown" :size="32"></fui-icon>
+					</view>
+				</view>
+				<view class="fui-filter__item" @tap="filterTap">
+					<text>{{range}}</text>
+					<view class="fui-filter__icon" :class="{'fui-icon__ani':rangeShow}">
+						<fui-icon name="turningdown" :size="32"></fui-icon>
+					</view>
+				</view>
+			</view>
+		</AppDropdownMenu>
 		<view class="list">
 			<view class="box" v-for="(item,index) in 2" :key="index">
 				<view class="main-between cross-center header">
@@ -23,7 +39,8 @@
 					</view> -->
 					<view class="main-between cross-center">
 						<view class="date">交易成功</view>
-						<image class="del" src="https://t17.9026.com/web/statics/image/user-center/del.png" mode=""></image>
+						<image class="del" src="https://t17.9026.com/web/statics/image/user-center/del.png" mode="">
+						</image>
 					</view>
 				</view>
 				<view class="center">
@@ -40,7 +57,8 @@
 					</view> -->
 					<view class="main-between goods">
 						<view class="main-left desc">
-							<image class="goods-img" src="https://t17.9026.com/web/statics/image/user-center/1.png" mode=""></image>
+							<image class="goods-img" src="https://t17.9026.com/web/statics/image/user-center/1.png"
+								mode=""></image>
 							<view>
 								<view class="title t-omit-two">兴城人居ins居家占位套餐居家占位套餐居家占位套餐居家占位套餐居家占位套餐</view>
 								<view class="main-between price">
@@ -54,12 +72,14 @@
 								</view>
 							</view>
 						</view>
-					<!-- 	<view class="isopen cross-center">
+						<!-- 	<view class="isopen cross-center">
 							收起
 							<image src="https://t17.9026.com/web/statics/image/user-center/arrow-top.png" mode=""></image>
 						</view> -->
 					</view>
-					<view class="main-right cross-bottom total_pay"><text>应付总</text><text>¥</text><text>2388.00</text></view>
+					<view class="main-right cross-bottom total_pay">
+						<text>应付总</text><text>¥</text><text>2388.00</text>
+					</view>
 				</view>
 				<view class="main-between footer cross-center border_top">
 					<template>
@@ -72,68 +92,121 @@
 					</template>
 					<template v-if="false">
 						<view class="left">查看详情</view>
-						<image style="width: 12rpx;height: 22rpx;" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png"
-							mode=""></image>
+						<image style="width: 12rpx;height: 22rpx;"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
 					</template>
 				</view>
 			</view>
 			<view class="no-more">没有更多了...</view>
 		</view>
+		<template>
+			<view class="safe-area-inset-bottom">
+				<view :style="{height: '110rpx'}" class="nav-margin "
+					:class="haveBackground ? 'app-layout-background' : ''"></view>
+			</view>
+			<app-tab-bar :page-count="0"></app-tab-bar>
+		</template>
 	</view>
+	<!-- </app-layout> -->
 </template>
 
 <script>
+	import AppTabBar from '@/components/basic-component/app-tab-bar/app-tab-bar.vue';
+	import AppDropdownMenu from '@/components/fui-dropdown-menu/fui-dropdown-menu.vue';
 	export default {
+		components: {
+			AppTabBar,
+			AppDropdownMenu
+		},
 		data() {
 			return {
-				topMenuData:[
-					{
-						title:'已认证客户',
-						icon:'https://t17.9026.com/web/statics/image/index/certified.png',
-						bgc:'background: linear-gradient(179deg, #266CF3, #5B91FB)'
-					},
-					{
-						title:'未认证客户',
-						icon:'https://t17.9026.com/web/statics/image/index/no_certified.png',
-						bgc:'background: linear-gradient(179deg, #34BAB3, #87E5E2)'
-					},
-					{
-						title:'我的发票',
-						icon:'https://t17.9026.com/web/statics/image/index/my_invoice.png',
-						bgc:'background: linear-gradient(179deg, #6994C9, #A2BBED)'
-					},
-					{
-						title:'我的合同',
-						icon:'https://t17.9026.com/web/statics/image/index/my_contract.png',
-						bgc:'background: linear-gradient(179deg, #8469C9, #C7A3F0)'
-					}
-				]
+				options: [{
+					text: '订单状态',
+					value: 1,
+					checked: true
+				}, {
+					text: '交易成功',
+					value: 2
+				}, {
+					text: '交易失败',
+					value: 3
+				}],
+				range: '订单状态',
+				rangeShow: false
 			};
+		},
+		methods:{
+			filterTap() {
+					//显示下拉框
+					this.$refs.ddmRange.show()
+					this.rangeShow = true;
+				},
+				rangeItemClick(e) {
+					console.log(e)
+					this.range = e.text
+					this.rangeClose()
+				},
+				rangeClose() {
+					this.rangeShow = false;
+				}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
-	.top-menu{
+	.page {
+		min-height: 100vh;
+	}
+
+	.fui-filter__item {
+		width: 375rpx;
+		height: 88rpx;
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		font-size: 30rpx;
+		/* #ifdef H5 */
+		cursor: pointer;
+		/* #endif */
+		background-color: #fff;
+	}
+
+	.fui-filter__icon {
+		transition: all .15s linear;
+	}
+
+	.fui-icon__ani {
+		transform: rotate(180deg);
+	}
+
+	.nav-margin {
+		width: #{750rpx};
+	}
+
+	.top-menu {
 		padding: 20rpx 30rpx;
-		.item{
+
+		.item {
 			width: 158rpx;
 			height: 130rpx;
 			background: linear-gradient(179deg, #8469C9, #C7A3F0);
 			border-radius: 8rpx;
-			.title{
+
+			.title {
 				font-size: 24rpx;
 				font-weight: bold;
 				color: #FFFFFF;
 				line-height: 34rpx;
 			}
-			image{
+
+			image {
 				width: 60rpx;
 				height: 60rpx;
 			}
 		}
 	}
-	.search{
+
+	.search {
 		width: 680rpx;
 		height: 82rpx;
 		// background: #FFFFFF;
@@ -141,15 +214,18 @@
 		border-radius: 4rpx;
 		margin: 0 auto;
 		padding-left: 22rpx;
-		image{
+
+		image {
 			width: 22rpx;
 			height: 22rpx;
 			margin-right: 18rpx;
 		}
 	}
-	.list{
+
+	.list {
 		margin-top: 20rpx;
 	}
+
 	.box {
 		width: 678rpx;
 		height: auto;
@@ -157,18 +233,18 @@
 		border-radius: 6rpx;
 		padding: 26rpx 31rpx;
 		margin: 0 auto 20rpx;
-	
+
 		.border_bottom {
 			border-bottom: 1px solid #eaeaea;
 		}
-	
+
 		.border_top {
 			border-top: 1px solid #eaeaea;
 		}
-	
+
 		.header {
 			padding-bottom: 21rpx;
-	
+
 			.head {
 				max-width: 500rpx;
 				height: 48rpx;
@@ -176,68 +252,70 @@
 				border-radius: 24rpx;
 				padding: 0 17rpx;
 				overflow: hidden;
+
 				image {
 					width: 32rpx;
 					height: 32rpx;
 					margin-right: 14rpx;
 					border-radius: 50%;
 				}
-	
+
 				font-size: 24rpx;
 				font-weight: 500;
 				color: #666666;
 			}
-	
+
 			.head1 {
 				max-width: 500rpx;
 				height: 48rpx;
-	overflow: hidden;
+				overflow: hidden;
+
 				image {
 					width: 45rpx;
 					height: 45rpx;
 					margin-right: 14rpx;
 					border-radius: 50%;
 				}
-	
+
 				font-size: 30rpx;
 				font-weight: bold;
 				color: #222222;
 			}
-	
+
 			.date {
 				font-size: 22rpx;
 				font-weight: 500;
 				color: #222222;
 				margin-right: 30rpx;
 			}
-	
+
 			.del {
 				width: 36rpx;
 				height: 36rpx;
 			}
 		}
-	
+
 		.center {
 			padding: 0 0 10rpx;
-	
+
 			.title {
 				font-size: 30rpx;
 				font-weight: bold;
 				color: #222222;
 			}
-	
+
 			.isopen {
 				font-size: 24rpx;
 				font-weight: bold;
 				color: #a18353;
-	
+
 				image {
 					width: 19rpx;
 					height: 12rpx;
 					margin-left: 8rpx;
 				}
 			}
-	
+
 			.center-text {
 				margin-top: 20rpx;
 				font-size: 24rpx;
@@ -245,10 +323,10 @@
 				color: #999999;
 				line-height: 34rpx;
 			}
-	
+
 			.center-img {
 				margin-top: 28rpx;
-	
+
 				image {
 					width: 146rpx;
 					height: 96rpx;
@@ -256,25 +334,25 @@
 					margin-right: 15rpx;
 				}
 			}
-	
+
 			.goods {
 				// padding-top: 42rpx;
 				// border-top: 1rpx solid #EAEAEA;
-	
+
 				.desc {
 					width: 100%;
 					height: 141rpx;
 					// background: #F8F8F8;
 					border-radius: 6rpx;
 					padding: 18rpx 0 18rpx 24rpx;
-	
+
 					.goods-img {
 						width: 101rpx;
 						height: 99rpx;
 						border-radius: 8rpx;
 						margin-right: 21rpx;
 					}
-	
+
 					.title {
 						width: 438rpx;
 						font-size: 26rpx;
@@ -282,44 +360,58 @@
 						color: #222222;
 						line-height: 34rpx;
 					}
-	
+
 					.price {
 						width: 470rpx;
 						font-size: 24rpx;
 						font-weight: 500;
 						color: #222222;
 						line-height: 36rpx;
-	
+
 						.company {}
 					}
 				}
-	
+
 			}
-			.total_pay{
+
+			.total_pay {
 				font-size: 24rpx;
 				color: #222222;
 				line-height: 34px;
-				&>text:nth-child(1) { font-weight: 500;margin-right: 8rpx;} 
-				&>text:nth-child(2) { font-weight: 500;font-size: 20rpx;}
-				&>text:nth-child(3) { font-weight: 600;} 
+
+				&>text:nth-child(1) {
+					font-weight: 500;
+					margin-right: 8rpx;
+				}
+
+				&>text:nth-child(2) {
+					font-weight: 500;
+					font-size: 20rpx;
+				}
+
+				&>text:nth-child(3) {
+					font-weight: 600;
+				}
 			}
 		}
-	
+
 		.footer {
 			padding: 28rpx 0 0;
-	
+
 			.left {
 				font-size: 28rpx;
 				font-weight: 500;
 				color: #666666;
 			}
-			.date{
+
+			.date {
 				font-size: 22rpx;
 				font-weight: 500;
 				color: #838584;
 				line-height: 34rpx;
 			}
-			.kbtn{
+
+			.kbtn {
 				width: 138rpx;
 				height: 52rpx;
 				border: 1rpx solid #999999;
@@ -333,7 +425,7 @@
 			}
 		}
 	}
-	
+
 	.no-more {
 		font-size: 24rpx;
 		font-weight: 500;

+ 370 - 339
src/pages/sale/sale-user-center.vue

xqd xqd xqd
@@ -1,115 +1,113 @@
 <template>
-    <app-layout :haveBackground="false">
-		<image style="height: 396rpx;width: 100%;position: absolute;top: 0;left: 0;z-index: -1;" src="https://t17.9026.com/web/statics/image/index/sale_top_bg.png" mode=""></image>
-		<app-nav-bar v-if="true" :fixed="true" :title="mall.name" color="#000" :hasMallSetting="2"
-			background-color=""></app-nav-bar>
-        <app-user-center-top
-            :top-style="5"
-            :member-pic-url="userCenter.member_pic_url"
-            :is_icon_super_vip="is_icon_super_vip"
-            user-name-color="#ffffff"
-			:isRealname="false"
-        ></app-user-center-top>
-		
+	<app-layout :haveBackground="false">
+		<image style="height: 396rpx;width: 100%;position: absolute;top: 0;left: 0;z-index: -1;"
+			src="https://t17.9026.com/web/statics/image/index/sale_top_bg.png" mode=""></image>
+		<app-nav-bar v-if="true" :fixed="true" :title="mall.name" color="#000" :hasMallSetting="2" background-color="">
+		</app-nav-bar>
+		<app-user-center-top :top-style="5" :member-pic-url="userCenter.member_pic_url"
+			:is_icon_super_vip="is_icon_super_vip" user-name-color="#ffffff" :isRealname="false"></app-user-center-top>
+
 		<app-my-income></app-my-income>
 
-        <view class="app-my-service" v-if="userCenter.is_menu_status == 1 || true">
-            <!-- <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 temporaryMenu" :key="index" >
-				    <app-jump-button form
-				                     :url="item.link_url"
-				                     :open_type="item.open_type"
-				                     :item="item"
-				                     :arrangement="'row'">
-				        <view style="width: 100%"
-				              class="item-container dir-left-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" >
-				                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png" class="arrow"></image>
+		<view class="app-my-service" v-if="userCenter.is_menu_status == 1 || true">
+			<!-- <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 temporaryMenu" :key="index">
+					<app-jump-button form :url="item.link_url" :open_type="item.open_type" :item="item"
+						:arrangement="'row'">
+						<view style="width: 100%" class="item-container dir-left-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">
+								<image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"
+									class="arrow"></image>
 								<!-- <image src="https://t17.9026.com/web/statics/image/index/arrow-right-bgwrite.png" class="arrow"></image> -->
-				            </view>
-				        </view>
-				    </app-jump-button>
+							</view>
+						</view>
+					</app-jump-button>
 				</view>
-                <!--  #endif -->
-                <!--  #ifdef H5 -->
-                <block v-for="(item, index) in temporaryMenu" :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="[
+				<!--  #endif -->
+				<!--  #ifdef H5 -->
+				<block v-for="(item, index) in temporaryMenu" :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>
+								<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>
+
+		<template>
+			<view class="safe-area-inset-bottom">
+				<view :style="{height: '110rpx'}" class="nav-margin "
+					:class="haveBackground ? 'app-layout-background' : ''"></view>
+			</view>
+			<app-tab-bar :page-count="0" ></app-tab-bar>
+		</template>
+	</app-layout>
 </template>
 
 <script>
-    import {mapGetters, mapState} from 'vuex';
-    import AppUserCenterTop from '../../components/page-component/app-user-center-top/app-user-center-top.vue';
-    import AppCopyright from '../../components/page-component/app-copyright/app-copyright.vue';
+	import {
+		mapGetters,
+		mapState,
+	} from 'vuex';
+	import AppUserCenterTop from '../../components/page-component/app-user-center-top/app-user-center-top.vue';
+	import AppCopyright from '../../components/page-component/app-copyright/app-copyright.vue';
 	import AppNavBar from '@/components/page-component/index/app-nav-bar.vue';
-	
+	import AppTabBar from '@/components/basic-component/app-tab-bar/app-tab-bar.vue';
 	import AppMyIncome from '../sale/components/app-my-income.vue';
-	
 
-    export default {
-        name: 'user-center',
-        components: {
-            AppCopyright,
-            AppUserCenterTop,
+
+	export default {
+		name: 'user-center',
+		components: {
+			AppCopyright,
+			AppUserCenterTop,
 			AppNavBar,
 			AppMyIncome,
-        },
-		data(){ 
+
+			AppTabBar
+		},
+		data() {
 			return {
-				temporaryMenu:[
-					{
+				temporaryMenu: [{
 						icon_url: "https://t17.9026.com/web/statics/image/index/order-icon.png",
 						key: "pintuan",
 						link_url: "/pages/sale/mySaleOrder",
@@ -150,43 +148,53 @@
 						link_url: "",
 						name: "联系客服",
 						open_type: "navigate",
-					}
+					},
+					// {
+					// 	icon_url: "https://t17.9026.com/web/statics/image/sale/sale_home.png",
+					// 	key: "",
+					// 	link_url: "/pages/user-center/user-center",
+					// 	name: "用户端",
+					// 	open_type: "navigate",
+					// }
 				]
 			}
 		},
-        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) {
-					let val=this.$utils.deepClone(state.userCenter.data.foot_bar)
-					if(val){
-						val.splice(1, 0, {icon_url:'',name:'我的优惠券'})
+		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) {
+					let val = this.$utils.deepClone(state.userCenter.data.foot_bar)
+					if (val) {
+						val.splice(1, 0, {
+							icon_url: '',
+							name: '我的优惠券'
+						})
 						return val;
-					}else{
+					} else {
 						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 = `
+				},
+				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%;
@@ -260,223 +268,246 @@
                                   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 (true) {
-                                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>
+							let classStr = '';
+							let font = '';
+							let padding = '';
+							let arrow = require(
+								"https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"
+								);
+							if (true) {
+								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 (true) {
-                                let width = uni.upx2px(12);
-                                let height = uni.upx2px(22);
-                                str+= ` <div class="box-grow-0">
+							if (true) {
+								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 (true) {
-                                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 (true) {
-                                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 'row';
-            },
-            // #ifdef H5
-            isShowSetting: function () {
-                return this.$storage.getStorageSync('platform') !== 'wechat';
-            }
-            // #endif
-        },
-        onLoad() { 
+							}
+							let div = ``;
+							let div1 = '';
+							if (true) {
+								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 (true) {
+								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 'row';
+			},
+			// #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: {
-            
-            // #ifdef H5
-            routerGo() {
-                uni.navigateTo({
-                    url: '/pages/registered/setting'
-                });
-            },
-            // #endif
-
-        },
-    }
+			// #ifdef H5
+			this.$jwx.config();
+			// #endif
+		},
+		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');
+				this.$store.dispatch('user/isEnterSales',true);
+			});
+		},
+		methods: {
+			// #ifdef H5
+			routerGo() {
+				uni.navigateTo({
+					url: '/pages/registered/setting'
+				});
+			},
+			// #endif
+
+		},
+	}
 </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>
+	.nav-margin {
+		width: #{750rpx};
+	}
+
+	.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>

+ 16 - 2
src/pages/sale/sale_login/sale_login.vue

xqd xqd
@@ -16,7 +16,7 @@
 				<input class="input" v-model="password" type="password" placeholder-class="plh_class" placeholder="请输入请输入密码" />
 				<view class="b_line"></view>
 			</view>
-			<view class="forget">忘记密码</view>
+			<view class="forget" @click="forgetPwd">忘记密码</view>
 			<button class="submit" type="default" @tap="login">登录</button>
 		</view>
 	</view>
@@ -41,12 +41,26 @@
 				    method:'post'
 				}).then(res=>{
 					if(res.code===0){
-						uni.redirectTo({
+						uni.reLaunch({
 							url:'/pages/sale/sale-user-center'
 						})
 					}
 				})
 				
+			},
+			forgetPwd(){
+				uni.showModal({
+				    title: '提示',
+				    content: '请联系客服人员',
+					confirmText:'去联系',
+				    success: function (res) {
+				        if (res.confirm) {
+				            uni.makePhoneCall({
+				                phoneNumber: '114' 
+				            });
+				        } 
+				    }
+				})
 			}
 		}
 	}

+ 1 - 1
src/plugins/composition/components/app-add-subtract/app-add-subtract.vue

xqd
@@ -148,7 +148,7 @@
 		height: 32rpx;
 		border-radius: 4rpx;
 		text-align: center;
-		line-height: 32rpx;
+		line-height: 40rpx;
 	}
 	.app-not{
 		background: #F8F8F8;

+ 25 - 21
src/plugins/composition/components/app-list/app-list.vue

xqd xqd xqd
@@ -14,27 +14,29 @@
                    <!-- <view class="check-icon">
                         <image :style="{'background-color': theme.background,'opacity': `${goods.opacity}`}" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-checkbox-checked.png"></image>
                     </view> -->
-                    <image @click="toDetail(goods.goods_id)" class="goods-img" :src="goods.cover_pic"></image>
-                    <view v-if="goods.stock == 0 || item.stock == 0" class="out-dialog">
-                        <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-                    </view>
-                    <view class="dir-top-nowrap goods-info">
-                        <view class="item-good-name">{{goods.name}}</view>
-                        <!-- <view class="item-good-num">x1</view> -->
-                        <view class="item-good-attr" v-if="!goods.choose_attr" @click="chooseAttr(goods,index)">
-                            <view class="item-good-attr-text t-omit-two">未选择</view>
-                            <image class="item-good-attr-arrow" src="https://t17.9026.com/web/statics/image/index/arrow-right-yellow.png"></image>
-                        </view>
-                        <view class="item-good-attr" v-else @click="chooseAttr(goods,index)">
-                            <view class="item-good-attr-text t-omit-two">
-								<!-- {{attr.attr_group_name}}: -->
-                                <text v-for="attr in goods.choose_attr.attr_list" :key="attr.attr_id">{{attr.attr_name}}</text>
-                            </view>
-                            <image class="item-good-attr-arrow" src="https://t17.9026.com/web/statics/image/index/arrow-right-yellow.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>
+                    <view class="main-left">
+						<image @click="toDetail(goods.goods_id)" class="goods-img" :src="goods.cover_pic"></image>
+						<view v-if="goods.stock == 0 || item.stock == 0" class="out-dialog">
+						    <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
+						</view>
+						<view class="dir-top-nowrap goods-info">
+						    <view class="item-good-name">{{goods.name}}</view>
+						    <!-- <view class="item-good-num">x1</view> -->
+						    <view class="item-good-attr" v-if="!goods.choose_attr" @click="chooseAttr(goods,index)">
+						        <view class="item-good-attr-text t-omit-two">未选择</view>
+						        <image class="item-good-attr-arrow" src="https://t17.9026.com/web/statics/image/index/arrow-right-yellow.png"></image>
+						    </view>
+						    <view class="item-good-attr" v-else @click="chooseAttr(goods,index)">
+						        <view class="item-good-attr-text t-omit-two">
+									<!-- {{attr.attr_group_name}}: -->
+						            <text v-for="attr in goods.choose_attr.attr_list" :key="attr.attr_id">{{attr.attr_name}}</text>
+						        </view>
+						        <image class="item-good-attr-arrow" src="https://t17.9026.com/web/statics/image/index/arrow-right-yellow.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>
+					</view>
 					<app-add-subtract :xStyle="2" :stock="100"></app-add-subtract>
                 </view>                    
                 <view class="item-goods main-between" v-for="(goods,idx) in item.goods_list" :key="goods.id">
@@ -42,6 +44,7 @@
                         <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-uncheck.png" v-if="!goods.choose_goods"></image>
                         <image :style="{'background-color': theme.background}" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-checkbox-checked.png" v-else></image>
                     </view> -->
+					<view class="main-left">
                     <image @click="toDetail(goods.goods_id)" class="goods-img" :src="goods.cover_pic"></image>
                     <view v-if="goods.stock == 0 || item.stock == 0" class="out-dialog">
                         <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
@@ -65,6 +68,7 @@
                         <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>
+					</view>
 					<app-add-subtract :xStyle="2" :stock="100"></app-add-subtract>
                 </view>
                 <view class="app-price">

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

xqd xqd
@@ -22,6 +22,9 @@
 	color: #AE8445;
 }
 
+.hjx-ts-21{
+	font-size: 21rpx;
+}
 .hjx-ts-22{
 	font-size: 22rpx;
 }
@@ -51,6 +54,9 @@
 	font-weight: 800;
 }
 
+.hxj-ml-10{
+	margin-left: 10rpx;
+}
 .hxj-mb-10{
 	margin-bottom: 10rpx;
 }

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


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


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


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


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


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


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


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

xqd xqd xqd
@@ -13,8 +13,10 @@ const state = {
         sms_captcha: '',
         validate_code_id: -1
     },
-    isSign: false
-
+    isSign: false,
+	
+	
+	isEnterSales:false,//是否进入销售端
 };
 
 const getters = {
@@ -44,7 +46,10 @@ const getters = {
     },
     isSign(state) {
         return state.isSign;
-    }
+    },
+	getIsEnterSales(state) {
+	    return state.isEnterSales;
+	}
 };
 
 const mutations = {
@@ -72,9 +77,20 @@ const mutations = {
     isSign(state, data) {
         state.isSign = data;
     },
+	isEnterSales(state,data) {
+		if(data){
+			console.log('进入销售端',data)
+		}else{
+			console.log('退出销售端',data)
+		}
+	    state.isEnterSales = data;
+	}
 };
 
 const actions = {
+	isEnterSales(context, data) {
+	    context.commit('isEnterSales', data);
+	},
     sign(context, data) {
         context.commit('sign', data);
     },