Browse Source

commit -m 版本封存档

zhengjinyi 1 year ago
parent
commit
adf2c67ae6
43 changed files with 4609 additions and 5879 deletions
  1. 16 4
      common/css/iconfont.scss
  2. 121 118
      components/cm-custom/cm-drag.vue
  3. 8 34
      components/cm-module/cm-cart-temp/cm-unit-popup.vue
  4. 24 2
      pages.json
  5. 0 19
      pages/goods/components/cm-unit-popup.vue
  6. 2 2
      pages/goods/product.vue
  7. 204 227
      pages/login/login-code.vue
  8. 42 0
      pages/login/login.vue
  9. 1 1
      pages/login/register.vue
  10. 15 44
      pages/seller/cart/components/cm-unit-popup.vue
  11. 65 128
      pages/seller/cart/components/index.vue
  12. 55 1814
      pages/seller/cart/index.vue
  13. 5 89
      pages/seller/cart/mixins/apisMixins.js
  14. 7 8
      pages/seller/cart/mixins/cartMixins.js
  15. 121 297
      pages/seller/club/club-list.vue
  16. 383 0
      pages/seller/goods/components/cm-unit-popup.vue
  17. 644 0
      pages/seller/goods/list.vue
  18. 11 8
      pages/seller/index/components/home.vue
  19. 81 184
      pages/seller/index/components/user.vue
  20. 2 7
      pages/seller/index/index.js
  21. 22 20
      pages/seller/index/index.vue
  22. 28 137
      pages/seller/login/login.vue
  23. 0 165
      pages/seller/order/components/sellerClubVisible.vue
  24. 0 466
      pages/seller/order/components/sellerCoupon.vue
  25. 0 2
      pages/seller/order/components/sellerDetaileButton.vue
  26. 0 0
      pages/seller/order/components/sellerFreightAlert.vue
  27. 2 48
      pages/seller/order/components/sellerGoodsList.vue
  28. 0 1
      pages/seller/order/components/sellerOrderButton.vue
  29. 0 440
      pages/seller/order/components/sellerRegulations.vue
  30. 695 961
      pages/seller/order/order-confirm.vue
  31. 16 291
      pages/seller/order/order-list.vue
  32. 944 0
      pages/seller/order/order-search.vue
  33. 5 1
      pages/tabBar/home/index.js
  34. 57 14
      pages/tabBar/user/user.vue
  35. 144 123
      pages/user/operator/form.vue
  36. 203 161
      pages/user/operator/list.vue
  37. 140 0
      pages/user/order/components/freightAlert.vue
  38. 1 1
      pages/user/order/create-order.vue
  39. 3 4
      pages/user/order/order-list.vue
  40. 132 58
      pages/user/setting/phone.vue
  41. 3 0
      services/index.js
  42. 397 0
      services/sellse.service.js
  43. 10 0
      services/user.service.js

+ 16 - 4
common/css/iconfont.scss

@@ -1,9 +1,9 @@
 @font-face {
   font-family: "iconfont"; /* Project id 4053045 */
-  src: url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.woff2?t=1685000375643') format('woff2'),
-       url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.woff?t=1685000375643') format('woff'),
-       url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.ttf?t=1685000375643') format('truetype'),
-       url('//at.alicdn.com/t/c/font_4053045_089c7b5c4rrl.svg?t=1685000375643#iconfont') format('svg');
+  src: url('//at.alicdn.com/t/c/font_4053045_l7crg3mtuk.woff2?t=1685427677878') format('woff2'),
+       url('//at.alicdn.com/t/c/font_4053045_l7crg3mtuk.woff?t=1685427677878') format('woff'),
+       url('//at.alicdn.com/t/c/font_4053045_l7crg3mtuk.ttf?t=1685427677878') format('truetype'),
+       url('//at.alicdn.com/t/c/font_4053045_l7crg3mtuk.svg?t=1685427677878#iconfont') format('svg');
 }
 
 .iconfont {
@@ -14,6 +14,18 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-shanchu2:before {
+  content: "\e6b6";
+}
+
+.icon-iconfonticonfontsousuo1:before {
+  content: "\e62f";
+}
+
+.icon-shezhi1:before {
+  content: "\e767";
+}
+
 .icon-web_xiangxiazhankai:before {
   content: "\e650";
 }

+ 121 - 118
components/cm-custom/cm-drag.vue

@@ -8,141 +8,144 @@
 			@touchmove.stop.prevent="touchmove"
 			@touchend="touchend"
 			@click.stop.prevent="click"
-			:class="{transition: isDock && !isMove }"
+			:class="{ transition: isDock && !isMove }"
 		>
 			<text v-if="cartNum > 0" class="uni-badge uni-badge-error uni-small uni-badge--small icon-num">
-				{{cartNum >= 100 ? '99+' : cartNum}}
+				{{ cartNum >= 100 ? '99+' : cartNum }}
 			</text>
-			<image src='https://static.caimei365.com/app/img/icon/icon-cart-active@3x.png' mode="widthFix"></image>
+			<image :src="staticUrl + 'icon-cart-active@3x.png'" mode=""></image>
 		</view>
 	</view>
 </template>
 
 <script>
-	export default {
-		name: 'drag-button',
-		props: {
-			cartNum:{
-				type: Number,
-				default: 0
-			},
-			isDock:{
-				type: Boolean,
-				default: false
-			},
-			existTabBar:{
-				type: Boolean,
-				default: false
-			}
+export default {
+	name: 'drag-button',
+	props: {
+		cartNum: {
+			type: Number,
+			default: 0
 		},
-		data() {
-			return {
-				top:300,
-				left:150,
-				width: 0,
-				height: 0,
-				offsetWidth: 0,
-				offsetHeight: 0,
-				windowWidth: 0,
-				windowHeight: 0,
-				isMove: true,
-				edge: 10,
-			}
+		isDock: {
+			type: Boolean,
+			default: false
+		},
+		existTabBar: {
+			type: Boolean,
+			default: false
+		}
+	},
+	data() {
+		return {
+			staticUrl: this.global.staticUrl,
+			top: 300,
+			left: 150,
+			width: 0,
+			height: 0,
+			offsetWidth: 0,
+			offsetHeight: 0,
+			windowWidth: 0,
+			windowHeight: 0,
+			isMove: true,
+			edge: 10
+		}
+	},
+	mounted() {
+		const sys = uni.getSystemInfoSync()
+		this.windowWidth = sys.windowWidth
+		this.windowHeight = sys.windowHeight
+		// #ifdef APP-PLUS
+		this.existTabBar && (this.windowHeight -= 50)
+		// #endif
+		if (sys.windowTop) {
+			this.windowHeight += sys.windowTop
+		}
+		// console.log(sys)
+		const query = uni.createSelectorQuery().in(this)
+		query
+			.select('#_drag_button')
+			.boundingClientRect(data => {
+				this.width = data.width
+				this.height = data.height
+				this.offsetWidth = data.width / 2
+				this.offsetHeight = data.height / 2
+				this.left = this.windowWidth - this.width - this.edge - 5
+				this.top = this.windowHeight - this.height - this.edge - 150
+			})
+			.exec()
+	},
+	methods: {
+		click() {
+			this.$emit('btnClick')
+		},
+		touchstart(e) {
+			this.$emit('btnTouchstart')
 		},
-		mounted() {
-			const sys = uni.getSystemInfoSync();
-			this.windowWidth = sys.windowWidth;
-			this.windowHeight = sys.windowHeight;
-			// #ifdef APP-PLUS
-				this.existTabBar && (this.windowHeight -= 50);
+		touchmove(e) {
+			// 单指触摸
+			if (e.touches.length !== 1) {
+				return false
+			}
+			this.isMove = true
+			this.left = e.touches[0].clientX - this.offsetWidth
+			let clientY = e.touches[0].clientY - this.offsetHeight
+			// #ifdef H5
+			clientY += this.height
 			// #endif
-			if (sys.windowTop) {
-				this.windowHeight += sys.windowTop;
+			let edgeBottom = this.windowHeight - this.height - this.edge
+			// 上下触及边界
+			if (clientY < this.edge) {
+				this.top = this.edge
+			} else if (clientY > edgeBottom) {
+				this.top = edgeBottom
+			} else {
+				this.top = clientY
 			}
-			// console.log(sys)
-			const query = uni.createSelectorQuery().in(this);
-			query.select('#_drag_button').boundingClientRect(data => {
-				this.width = data.width;
-				this.height = data.height;
-				this.offsetWidth = data.width / 2;
-				this.offsetHeight = data.height / 2;
-				this.left = this.windowWidth - this.width - this.edge-5;
-				this.top = this.windowHeight - this.height - this.edge-150;
-			}).exec();
 		},
-		methods: {
-			click() {
-				this.$emit('btnClick');
-			},
-			touchstart(e) {
-				this.$emit('btnTouchstart');
-			},
-			touchmove(e) {
-				// 单指触摸
-				if (e.touches.length !== 1) {
-					return false;
-				}
-				this.isMove = true;
-				this.left = e.touches[0].clientX - this.offsetWidth;
-				let clientY = e.touches[0].clientY - this.offsetHeight;
-				// #ifdef H5
-					clientY += this.height;
-				// #endif
-				let edgeBottom = this.windowHeight - this.height - this.edge;
-				// 上下触及边界
-				if (clientY < this.edge) {
-					this.top = this.edge;
-				} else if (clientY > edgeBottom) {
-					this.top = edgeBottom;
+		touchend(e) {
+			if (this.isDock) {
+				let edgeRigth = this.windowWidth - this.width - this.edge
+
+				if (this.left < this.windowWidth / 2 - this.offsetWidth) {
+					this.left = this.edge
 				} else {
-					this.top = clientY
+					this.left = edgeRigth
 				}
-			},
-			touchend(e) {
-				if (this.isDock) {
-					let edgeRigth = this.windowWidth - this.width - this.edge;
-					
-					if (this.left < this.windowWidth / 2 - this.offsetWidth) {
-						this.left = this.edge;
-					} else {
-						this.left = edgeRigth;
-					}
-					
-				}
-				
-				this.isMove = false;
-				this.$emit('btnTouchend');
-			},
-		}}
+			}
+
+			this.isMove = false
+			this.$emit('btnTouchend')
+		}
+	}
+}
 </script>
 
 <style lang="scss">
-	.cart-icon {
-		width: 92rpx;
-		height: 92rpx;
-		border-radius: 50%;
-		background: $btn-confirm;
-		position: fixed;
-		right: 24rpx;
-		bottom: 28%;
-		display: flex;
-		align-items: center;
-		justify-content: center;
-		cursor: pointer;
-		z-index: 20;
-		image {
-			width: 58rpx;
-			height: 58rpx;
-		}
-		text {
-			font-size: 28rpx;
-			position: absolute;
-			top: -10rpx;
-			right: 0;
-		}
-		&.transition {
-			transition: left .3s ease,top .3s ease;
-		}
+.cart-icon {
+	width: 92rpx;
+	height: 92rpx;
+	border-radius: 50%;
+	background: rgba(0,0,0,0.3);
+	position: fixed;
+	right: 24rpx;
+	bottom: 28%;
+	display: flex;
+	align-items: center;
+	justify-content: center;
+	cursor: pointer;
+	z-index: 20;
+	image {
+		width: 58rpx;
+		height: 58rpx;
+	}
+	text {
+		font-size: 28rpx;
+		position: absolute;
+		top: -10rpx;
+		right: 0;
+	}
+	&.transition {
+		transition: left 0.3s ease, top 0.3s ease;
 	}
-	
+}
 </style>

+ 8 - 34
components/cm-module/cm-cart-temp/cm-unit-popup.vue

@@ -93,7 +93,6 @@ export default {
 			ladderPriceList: [],
 			isQuantity: false,
 			skuList: [],
-			handleStock:0,// 规格库存
 			handleMinNumber:1, // 规格起订量
 			addParams:{
 				oldSkuId:0,
@@ -117,9 +116,7 @@ export default {
 		this.addParams.oldSkuId = this.skuProduct.skuId
 		this.addParams.count = this.skuList[0].minBuyNumber
 		this.handleMinNumber = this.skuList[0].minBuyNumber
-		this.handleStock = this.skuList[0].stock
 		this.skuProduct.price = this.skuList[0].price;
-		this.isBtnDisable = this.skuList[0].stock === 0;
 		this.initData()
 	},
 	computed: {
@@ -131,29 +128,6 @@ export default {
 			this.addParams.userId = userInfo.userId ? userInfo.userId : 0
 			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
 		},
-		PromotionsFormat(promo) {
-			//促销活动类型数据处理
-			if (promo != null) {
-				if (promo.type == 1 && promo.mode == 1) {
-					return true
-				} else {
-					return false
-				}
-			}
-			return false
-		},
-		isShowVipFlag(pros) {
-			// 未登录 || 非会员
-			if (!this.hasLogin || !this.vipFlag === 1) return false
-			// 商品所有机构可见
-			if (pros.priceFlag === 0) return true
-			// 商品价格仅资质机构可见
-			if (pros.priceFlag === 2 && this.userIdentity === 2) return true
-			// 商品价格仅医美机构可见
-			if (pros.priceFlag === 3 && this.userIdentity === 2 && this.firstClubType == 1) return true
-			// 其它
-			return false
-		}, 
 		skuChangNumberSub() {// 减数
 			if ( this.addParams.count <= this.handleMinNumber) {
 				this.addParams.count = this.handleMinNumber
@@ -162,14 +136,16 @@ export default {
 			}
 		},
 		skuChangNumberAdd() {// 加数
-			if(this.addParams.count === this.handleStock){ return }
 			this.addParams.count++;
 		},
-		skuChangNumberChange() {// 修改
-			if (this.addParams.count < this.handleMinNumber || this.addParams.count % this.handleMinNumber != 0) {
-				this.addParams.count = this.handleMinNumber;
-			}else if(this.addParams.count > this.handleStock) {
-				this.addParams.count = this.handleStock;
+		skuChangNumberChange(e) {// 修改.
+			let _value = e.detail.value
+			if (!this.$api.isNumber(_value)) {
+				this.addParams.count = this.handleMinNumber
+			} else if (_value < this.handleMinNumber) {
+				this.addParams.count = this.handleMinNumber
+			} else {
+				this.addParams.count = _value
 			}
 		},
 		handleConfirm() {
@@ -182,11 +158,9 @@ export default {
 			this.skuIndex = index
 			this.addParams.newSkuId = sku.skuId;
 			this.addParams.count = sku.minBuyNumber;
-			this.handleStock = sku.stock;
 			this.handleMinNumber = sku.minBuyNumber;
 			this.skuProduct.price = sku.price;
 			this.skuProduct.originalPrice = sku.originalPrice;
-			this.isBtnDisable = sku.stock === 0;
 		},
 		hidePopup() {
 			this.$parent.popupShow2 = false

+ 24 - 2
pages.json

@@ -377,7 +377,14 @@
 		{
 			"root": "pages/seller/", //搜索分包模块
 			"pages": [
-				{
+			{
+				"path": "index/index",
+				"style": {
+					"navigationBarTitleText": "个人中心",
+					"navigationStyle": "custom"
+				}
+			}, 
+			{
 				"path": "login/login",
 				"style": {
 					"navigationBarTitleText": "采购员登录"
@@ -390,6 +397,13 @@
 					"enablePullDownRefresh": false
 				}
 			},
+			{
+				"path": "goods/list",
+				"style": {
+					"navigationBarTitleText": "立即下单",
+					"enablePullDownRefresh": false
+				}
+			},
 			{
 				"path": "cart/index",
 				"style": {
@@ -408,7 +422,8 @@
 				"path": "order/order-list",
 				"style": {
 					"navigationBarTitleText": "我的订单",
-					"enablePullDownRefresh": false
+					"enablePullDownRefresh": false,
+					"navigationStyle": "custom"
 				}
 			},
 			{
@@ -418,6 +433,13 @@
 					"enablePullDownRefresh": false
 				}
 			},
+			{
+				"path": "order/order-search",
+				"style": {
+					"navigationBarTitleText": "搜索订单",
+					"enablePullDownRefresh": false
+				}
+			},
 			{
 				"path": "order/order-details",
 				"style": {

+ 0 - 19
pages/goods/components/cm-unit-popup.vue

@@ -44,7 +44,6 @@
 									/>
 									<view
 										class="iconfont icon-jiahao"
-										:class="[isStock == true ? 'disabled' : '']"
 										@click="changeCountAdd"
 									></view>
 								</view>
@@ -121,13 +120,10 @@ export default {
 		return {
 			skuIndex: 0,
 			productCount: 0,
-			ladderPriceList: [],
 			isStock: false, //
 			isQuantity: false,
 			skuList: [],
-			handleStock: 0, // 规格库存
 			handleMinNumber: 1, // 规格起订量
-			isShowLadder: false,
 			laddePopupShow: false,
 			isBtnDisable: false,
 			isIphoneX:this.$store.state.isIphoneX,
@@ -144,14 +140,9 @@ export default {
 			this.skuList = this.skuProduct.organizeSkus
 			this.productCount = this.skuList[0].minBuyNumber
 			this.handleMinNumber = this.skuList[0].minBuyNumber
-			this.handleStock = this.skuList[0].stock
 		},
 		//popup弹窗数量增加按钮
 		changeCountAdd() {
-			if (this.productCount === this.handleStock) {
-				this.isStock = true
-				return
-			}
 			this.productCount++
 		},
 		//popup弹窗数量减按钮
@@ -171,8 +162,6 @@ export default {
 				this.productCount = this.handleMinNumber
 			} else if (_value < this.handleMinNumber) {
 				this.productCount = this.handleMinNumber
-			} else if (_value > this.handleStock) {
-				this.productCount = this.handleStock
 			} else {
 				this.productCount = e.detail.value
 			}
@@ -207,16 +196,8 @@ export default {
 			// 选择SKU
 			this.skuIndex = index
 			this.productCount = this.handleMinNumber = sku.minBuyNumber
-			this.handleStock = sku.stock
-			this.isBtnDisable = sku.stock === 0
-			this.ladderPriceList = sku.ladderPriceList
-			this.isShowLadder = sku.ladderPriceList ? true : false
 			this.$emit('skuClick', sku) 
 		},
-		showLaddePopup() {
-			// 点击显示阶梯价
-			this.laddePopupShow = true
-		},
 		hidePopup() {
 			//隐藏
 			this.$parent.popupShow3 = false

+ 2 - 2
pages/goods/product.vue

@@ -117,7 +117,7 @@
 					</view>
 				</view>
 				<!-- 底部按钮 -->
-				<view class="menu">
+				<view class="menu" v-if="userIdentity!==1">
 					<view class="bottom-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
 						<view class="bottom-le">
 							<view class="item-bt" @click="this.$api.switchTabTo('/pages/tabBar/home/index')">
@@ -308,7 +308,7 @@ export default {
 			// 初始化
 			const userInfo = await this.$api.getStorage()
 			this.userId = this.addParams.userId = userInfo.userId ? userInfo.userId : 0
-			// this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
+			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
 			if (isPreviewImg) {
 				isPreviewImg = false
 				return

+ 204 - 227
pages/login/login-code.vue

@@ -1,9 +1,6 @@
-
 <template>
 	<view class="container login">
-		<view class="login-main">
-			<image class="logo" src="https://static.caimei365.com/app/img/icon/logo@2x.png" mode=""></image>
-		</view>
+		<view class="login-main"> <image class="logo" :src="staticUrl + 'logo@2x.png'" mode=""></image> </view>
 		<view class="login-input">
 			<keyInput
 				borderValueColor="#E1E1E1"
@@ -15,261 +12,241 @@
 			>
 			</keyInput>
 		</view>
-		<button class="login-btn"  @click.stop="goLogin" :class="isDisabled ? 'disabled' : ''" :disabled="isDisabled">邀请码登录</button>
+		<button class="login-btn" @click.stop="goLogin" :class="isDisabled ? 'disabled' : ''" :disabled="isDisabled">
+			邀请码登录
+		</button>
 		<view class="login-tips">
-			邀请码是为了方便机构内成员互相邀请并快速注册【丽格集采联盟】小程序而推出的一项邀请机制。
-			机构已注册了账号的成员,可在其个人中心添加其他机构成员,系统会自动为添加的每一个成员生成邀请码。其他成员使用邀请码可直接登录【丽格集采联盟】小程序。
+			<text class="h1">注意事项:</text>
+			<text class="p"
+				>邀请码是为了方便机构内成员互相邀请并快速注册【丽格集采联盟】小程序而推出的一项邀请机制。</text
+			>
+			<text class="p"
+				>机构已注册了账号的成员,可在其个人中心添加其他机构成员,系统会自动为添加的每一个成员生成邀请码。其他成员使用邀请码可直接登录【丽格集采联盟】小程序。</text
+			>
 		</view>
 	</view>
 </template>
 
 <script>
-	import authorize from '@/common/config/authorize.js'
-	import wxLogin from "@/common/config/wxLogin.js"
-	import {mapState,mapMutations } from 'vuex';
-	import keyInput from '@/components/uni-keyinput/uni-keyinput'
-	
-	export default{
-		components: { 
-			keyInput 
+import authorize from '@/common/config/authorize.js'
+import wxLogin from '@/common/config/wxLogin.js'
+import { mapState, mapMutations } from 'vuex'
+import keyInput from '@/components/uni-keyinput/uni-keyinput'
+
+export default {
+	components: {
+		keyInput
+	},
+	data() {
+		return {
+			staticUrl: this.global.staticUrl,
+			params: {
+				invitationCode: '', //获取用户登录的邀请码
+				unionId: 0,
+				nickName: '',
+				avatarUrl: '',
+				organizeId: 4
+			}
+		}
+	},
+	onLoad(option) {},
+	computed: {
+		...mapState(['isWxAuthorize', 'isLoginType', 'isLoginProductId', 'isLoginOrderId']),
+		isDisabled() {
+			// 邀请码长度是否符合要求
+			return this.params.invitationCode.trim().length < 6
+		}
+	},
+	methods: {
+		...mapMutations(['login', 'wxLogin']),
+		goLogin() {
+			if (this.params.invitationCode == '') {
+				this.$util.msg('请输入邀请码', 2000)
+				return
+			}
+			this.params.unionId = uni.getStorageSync('unionId')
+			this.bindingWechat(this.params)
 		},
-		data() {
-			return{
-				params:{
-					invitationCode:'',//获取用户登录的邀请码
-					unionId:0,
-					nickName:'',
-					avatarUrl:'',
-				},
+		async bindingWechat(params) {
+			//邀请码登录并绑定微信
+			try{
+				const res = await this.UserService.usrInvitationLogin(params)
+				const data = res.data
+				uni.setStorageSync('token', data.token)
+				this.$store.commit('updateStatus', data)
+				this.login(data)
+				// 登录成功处理
+				const url = uni.getStorageSync('LOGIN_REDIRECT_URL')
+				if (url) {
+				    if (url.indexOf('tabBar') > -1) {
+				        uni.switchTabTo(url)
+				    } else {
+						this.$api.redirectTo(url)
+				    }
+				} else {
+				   this.$api.switchTabTo('/pages/tabBar/user/user')
+				}
+				uni.removeStorageSync('LOGIN_REDIRECT_URL')
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
 			}
 		},
-		onLoad(option) {
-
+		keyInput(val) {
+			// 输入框输入介绍
+			// this.params.invitationCode = val
+			console.log(val)
 		},
-		computed: {
-			...mapState(['isWxAuthorize','isLoginType','isLoginProductId','isLoginOrderId']),
-			isDisabled() {// 邀请码长度是否符合要求
-				return this.params.invitationCode.trim().length < 6
-			},
+		keyInputChangeHandle(val) {
+			// 输入框输入事件
+			this.params.invitationCode = val
+			// console.log(val)
 		},
-		methods:{
-			...mapMutations(['login','wxLogin']),
-			goLogin(){
-				if( this.params.invitationCode == ''){
-					this.$util.msg('请输入邀请码',2000)
-					return
-				}
-				this.isUserInfo = false
-				this.params.unionId = uni.getStorageSync('unionId')
-				// 友盟埋点邀请码确认登录点击事件
-				if(process.env.NODE_ENV != 'development'){
-					this.$uma.trackEvent('Um_Event_InvitationCode', {
-						Um_Key_PageName: '邀请码登录',
-						Um_Key_SourcePage: '邀请码页面',
-					})
-				}
-				this.GetUserProfile()
-			},
-			navigatorRegirst(url){
-				// 友盟埋点注册入口点击事件
-				if(process.env.NODE_ENV != 'development'){
-					this.$uma.trackEvent('Um_Event_zhuce', {
-						Um_Key_PageName: '立即注册',
-						Um_Key_SourcePage: '个人中心',
-					})
-				}
-				this.$api.navigateTo(url)
-			},
-			GetUserProfile(){//获取用户微信个人信息
-				const self = this
-				wx.getUserProfile({
-					desc: '采美采购商城小程序获取您的信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
-					success(res) {
-						console.log('微信获取用户信息新API',res)	
-						self.wxLogin(res.userInfo)	
-						self.params.nickName = res.userInfo.nickName
-						self.params.avatarUrl = res.userInfo.avatarUrl
-						self.BindingWechat(self.params)
-					},
-					fail() {
-						self.$util.msg('授权失败', 2000)
-					}
-				})
-			},
-			BindingWechat(params){//邀请码登录并绑定微信
-				this.UserService.InvitationCodeLogin(params)
-				.then(response =>{
-					wxLogin.wxLoginAuthorize()
-					if(response.data.userIdentity === 3){
-						setTimeout(()=>{
-							this.$api.navigateTo('/pages/supplier/index/index')
-						},1500)
-					}else{
-						setTimeout(()=>{
-							switch(this.isLoginType){
-								case 9:
-									this.$api.navigateTo(`/pages/h5/activity/activity_mid`)
-									break;
-								case 8:
-									this.$api.navigateTo(`/pages/goods/product?id=${this.isLoginProductId}`)
-									break;
-								case 7:
-									this.$api.navigateTo(`/pages/user/order/order-details?type=share&orderID=${this.isLoginOrderId}`)
-									break;
-								default:
-									this.$api.switchTabTo('/pages/tabBar/user/user')
-							}
-						},1500)
-					}
-				})
-				.catch(error =>{
-					this.$util.msg(error.msg,2000)
-					this.isUserInfo = false
-				})
-			},
-			keyInput(val) {// 输入框输入介绍
-				// this.params.invitationCode = val
-				console.log(val)
-			},
-			keyInputChangeHandle(val) {// 输入框输入事件
-				this.params.invitationCode = val
-				// console.log(val)
-			},
-			setFocus() {// 控制组件获取焦点
-				this.$refs.VcodeInput.setFocus()
-			},
-			
-			setBlur() {// 控制组件失去焦点
-				this.$refs.VcodeInput.setBlur()
-			},
-			clearValue() {// 清除已输入
-				this.$refs.VcodeInput.clearValue()
-			},
-			InitAuthorize(){ //是否已授权 0:为取消授权 1:为已授权 2:为未操作
-				wxLogin.wxLoginQuick()
-			}
+		setFocus() {
+			// 控制组件获取焦点
+			this.$refs.VcodeInput.setFocus()
+		},
+		setBlur() {
+			// 控制组件失去焦点
+			this.$refs.VcodeInput.setBlur()
 		},
-		onShow() {
-			this.$api.getStorage().then((resolve) =>{
-				this.params.unionId = resolve.unionId ? resolve.unionId : 0
-			})
-			this.InitAuthorize()
+		clearValue() {
+			// 清除已输入
+			this.$refs.VcodeInput.clearValue()
+		},
+		InitAuthorize() {
+			//是否已授权 0:为取消授权 1:为已授权 2:为未操作
+			wxLogin.wxLoginQuick()
 		}
+	},
+	onShow() {
+		
+		this.InitAuthorize()
 	}
+}
 </script>
 
 <style lang="scss">
-	.login{
+.login {
+	width: 100%;
+	height: auto;
+	.model-warp.none {
+		display: none;
+	}
+	.model-warp.show {
+		display: block;
+	}
+	.login-main {
 		width: 100%;
-		height: auto;
-		.model-warp.none{
-			display: none;			
-		}
-		.model-warp.show{
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		height: 206rpx;
+		padding: 60rpx 0 40rpx 0;
+		margin: 70rpx 0;
+		.logo {
+			width: 358rpx;
+			height: 206rpx;
 			display: block;
 		}
-		.login-main{
-			width: 100%;
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			height: 284rpx;
-			padding:60rpx 0 40rpx 0;
-			margin-bottom: 70rpx;
-			.logo{
-				width:611rpx;
-				height: 284rpx;
-				display: block;
-			}
-		}
-		.login-input{
-			width: 600rpx;
-			height: 88rpx;
-			padding: 24rpx 0;
-			margin: 30rpx auto;
-			margin-bottom: 30rpx;
-			background: #FFFFFF;
-			position: relative;
-		}
-		.login-row{
-			padding: 0 75rpx;
-			font-size: $font-size-28;
-			line-height: 40rpx;
-			color: #FF5B00;
-			margin-bottom: 48rpx;
-			text-align: right;
-		}
-		.login-btn{
-			width: 600rpx;
-			height: 88rpx;
-			border-radius: 44rpx;
-			font-size: $font-size-28;
-			line-height: 88rpx;
-			color: #FFFFFF;
-			margin: 0 auto;
-			text-align: center;
-			background:$btn-confirm;
-			&.disabled{
-				background: #E1E1E1;
-			}
+	}
+	.login-input {
+		width: 600rpx;
+		height: 88rpx;
+		padding: 24rpx 0;
+		margin: 30rpx auto;
+		margin-bottom: 30rpx;
+		background: #ffffff;
+		position: relative;
+	}
+	.login-row {
+		padding: 0 75rpx;
+		font-size: $font-size-28;
+		line-height: 40rpx;
+		color: #ff5b00;
+		margin-bottom: 48rpx;
+		text-align: right;
+	}
+	.login-btn {
+		width: 600rpx;
+		height: 88rpx;
+		border-radius: 44rpx;
+		font-size: $font-size-28;
+		line-height: 88rpx;
+		color: #ffffff;
+		margin: 0 auto;
+		text-align: center;
+		background: $btn-confirm;
+		&.disabled {
+			background: #e1e1e1;
 		}
-		.login-btn-last{
-			width: 600rpx;
-			height: 86rpx;
-			border-radius: 44rpx;
-			font-size: $font-size-28;
-			line-height: 88rpx;
-			color: $color-system;
-			margin: 0 auto;
-			text-align: center;
-			border: 1px solid $color-system;
-			margin-top: 20rpx;
+	}
+	.login-btn-last {
+		width: 600rpx;
+		height: 86rpx;
+		border-radius: 44rpx;
+		font-size: $font-size-28;
+		line-height: 88rpx;
+		color: $color-system;
+		margin: 0 auto;
+		text-align: center;
+		border: 1px solid $color-system;
+		margin-top: 20rpx;
+	}
+	.login-tips {
+		width: 100%;
+		height: auto;
+		margin-top: 80rpx;
+		box-sizing: border-box;
+		padding: 0 75rpx;
+		.h1 {
+			line-height: 44rpx;
+			font-size: $font-size-24;
+			color: #666666;
+			text-align: justify;
+			display: inline-block;
 		}
-		.login-tips{
-			width: 100%;
-			height: auto;
-			margin-top: 80rpx;
-			box-sizing: border-box;
-			padding: 0 75rpx;
+		.p {
 			line-height: 44rpx;
-			font-size: $font-size-20;
-			color: #fea785;
+			font-size: $font-size-24;
+			color: #999999;
 			text-align: justify;
-			text-indent: 40rpx;
+			margin-bottom: 20rpx;
+			display: inline-block;
 		}
-		.model-authorization{
-			width: 100%;
-			height: 100%;
-			position: fixed;
-			top: 0;
+	}
+	.model-authorization {
+		width: 100%;
+		height: 100%;
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 999;
+		.authorization {
+			width: 518rpx;
+			height: 320rpx;
+			position: absolute;
+			background: rgba(255, 255, 255, 0.7);
 			left: 0;
-			z-index: 999;
-			.authorization{
-				width: 518rpx;
-				height: 320rpx;
+			right: 0;
+			bottom: 0;
+			top: 0;
+			margin: auto;
+			.to-btn {
 				position: absolute;
-				background: rgba(255,255,255,.7);
+				top: 0;
 				left: 0;
 				right: 0;
 				bottom: 0;
-				top: 0;
 				margin: auto;
-				.to-btn{
-					position: absolute;
-					top: 0;
-					left: 0;
-					right: 0;
-					bottom: 0;
-					margin: auto;
-					width: 70%;
-					height: 88rpx;
-					font-size: $font-size-28;
-					line-height: 88rpx;
-					color: #FFFFFF;
-					text-align: center;
-					border-radius: 44rpx;
-				}
+				width: 70%;
+				height: 88rpx;
+				font-size: $font-size-28;
+				line-height: 88rpx;
+				color: #ffffff;
+				text-align: center;
+				border-radius: 44rpx;
 			}
 		}
 	}
+}
 </style>

+ 42 - 0
pages/login/login.vue

@@ -75,6 +75,16 @@
 			<view class="login-text" v-if="loginType === 1" @click.stop="this.$api.navigateTo('/pages/login/password')"
 				>忘记密码?</view
 			>
+			<view class="login-other">
+				<view class="login-other-item" @click="navigatorRegirst('/pages/seller/login/login')">
+					<view class="item-icon"><text class="iconfont icon-jituancaigouyuandenglu"></text></view>
+					<view class="item-text">集团采购员登录</view>
+				</view>
+				<view class="login-other-item" @click="navigatorRegirst('/pages/login/login-code')">
+					<view class="item-icon"><text class="iconfont icon-yaoqingmakuaijiedenglu"></text></view>
+					<view class="item-text">邀请码快捷登录</view>
+				</view>
+			</view>
 		</template>
 		<!-- 弹窗提示 -->
 		<tui-modal
@@ -463,5 +473,37 @@ export default {
 			}
 		}
 	}
+	.login-other{
+		width: 100%;
+		box-sizing: border-box;
+		margin-top: 200rpx;
+		padding: 0 80rpx;
+		float: left;
+		.login-other-item{
+			width: 170rpx;
+			height: auto;
+			float: left;
+			margin: 0 62rpx;
+			.item-icon{
+				width: 80rpx;
+				height: 80rpx;
+				margin: 0 auto;
+				text-align: center;
+				background-color: #FFF4E6;
+				border-radius: 50%;
+				line-height: 80rpx;
+				.iconfont{
+					font-size: 38rpx;
+					color: #F3B574;
+				}
+			}
+			.item-text{
+				line-height: 62rpx;
+				text-align: center;
+				font-size: $font-size-24;
+				color: #B2B2B2;
+			}
+		}
+	}
 }
 </style>

+ 1 - 1
pages/login/register.vue

@@ -376,7 +376,7 @@ export default {
 			//获取用户微信个人信息
 			const self = this
 			wx.getUserProfile({
-				desc: '采美采购商城小程序获取您的信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
+				desc: '联合丽格集采商城小程序获取您的信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
 				success(res) {
 					console.log('微信获取用户信息新API', res)
 					self.wxLogin(res.userInfo)

+ 15 - 44
pages/seller/cart/components/cm-unit-popup.vue

@@ -8,7 +8,7 @@
 					<view class="tui-sku-price">
 						<view class="sku-price-viw">
 							<view class="sku-price-text">
-								¥{{ skuProduct.price }}
+								¥{{ skuProductPrice | NumFormat }}
 							</view>
 						</view>
 					</view>
@@ -55,7 +55,7 @@
 			<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
 				<view class="tui-modal-flex">
 					<view class="tui-modal-button cancel" @click="hidePopup">取消</view>
-					<view class="tui-modal-button confirm" :class="isBtnDisable ? 'disabled' :''" @click="handleConfirm">确定</view>
+					<view class="tui-modal-button confirm" @click="handleConfirm">确定</view>
 				</view>
 			</view>
 		</view>
@@ -85,14 +85,12 @@ export default {
 	},
 	data() {
 		return {
-			isBtnDisable:false,
 			vipFlag: 0, // 是否是超级会员 0否 1是
 			skuIndex: 0,
 			number: 0,
 			ladderPriceList: [],
 			isQuantity: false,
 			skuList: [],
-			handleStock:0,// 规格库存
 			handleMinNumber:1, // 规格起订量
 			addParams:{
 				oldSkuId:0,
@@ -116,9 +114,7 @@ export default {
 		this.addParams.oldSkuId = this.skuProduct.skuId
 		this.addParams.count = this.skuList[0].minBuyNumber
 		this.handleMinNumber = this.skuList[0].minBuyNumber
-		this.handleStock = this.skuList[0].stock
-		this.skuProduct.price = this.skuList[0].price;
-		this.isBtnDisable = this.skuList[0].stock === 0;
+		this.skuProductPrice =this.skuList[0].price
 		this.initData()
 	},
 	computed: {
@@ -130,29 +126,6 @@ export default {
 			this.addParams.userId = userInfo.userId ? userInfo.userId : 0
 			this.userIdentity = userInfo.userIdentity ? userInfo.userIdentity : 0
 		},
-		PromotionsFormat(promo) {
-			//促销活动类型数据处理
-			if (promo != null) {
-				if (promo.type == 1 && promo.mode == 1) {
-					return true
-				} else {
-					return false
-				}
-			}
-			return false
-		},
-		isShowVipFlag(pros) {
-			// 未登录 || 非会员
-			if (!this.hasLogin || !this.vipFlag === 1) return false
-			// 商品所有机构可见
-			if (pros.priceFlag === 0) return true
-			// 商品价格仅资质机构可见
-			if (pros.priceFlag === 2 && this.userIdentity === 2) return true
-			// 商品价格仅医美机构可见
-			if (pros.priceFlag === 3 && this.userIdentity === 2 && this.firstClubType == 1) return true
-			// 其它
-			return false
-		}, 
 		skuChangNumberSub() {// 减数
 			if ( this.addParams.count <= this.handleMinNumber) {
 				this.addParams.count = this.handleMinNumber
@@ -161,31 +134,29 @@ export default {
 			}
 		},
 		skuChangNumberAdd() {// 加数
-			if(this.addParams.count === this.handleStock){ return }
 			this.addParams.count++;
 		},
-		skuChangNumberChange() {// 修改
-			if (this.addParams.count < this.handleMinNumber || this.addParams.count % this.handleMinNumber != 0) {
-				this.addParams.count = this.handleMinNumber;
-			}else if(this.addParams.count > this.handleStock) {
-				this.addParams.count = this.handleStock;
+		skuChangNumberChange(e) {// 修改
+			let _value = e.detail.value
+			if (!this.$api.isNumber(_value)) {
+				this.addParams.count = this.handleMinNumber
+			} else if (_value < this.handleMinNumber) {
+				this.addParams.count = this.handleMinNumber
+			} else {
+				this.addParams.count = e.detail.value
 			}
 		},
 		handleConfirm() {
-			if(this.isBtnDisable){ return }
 			this.$emit('skuBtnConfirm', this.addParams)
 			this.$parent.popupShow2 = false
 		},
 		handleChoisSku(sku, index) {
 			// 选择SKU
 			this.skuIndex = index
-			this.addParams.newSkuId = sku.skuId;
-			this.addParams.count = sku.minBuyNumber;
-			this.handleStock = sku.stock;
-			this.handleMinNumber = sku.minBuyNumber;
-			this.skuProduct.price = sku.price;
-			this.skuProduct.originalPrice = sku.originalPrice;
-			this.isBtnDisable = sku.stock === 0;
+			this.addParams.newSkuId = sku.skuId
+			this.addParams.count = sku.minBuyNumber
+			this.handleMinNumber = sku.minBuyNumber
+			this.skuProductPrice = sku.price
 		},
 		hidePopup() {
 			this.$parent.popupShow2 = false

+ 65 - 128
pages/seller/cart/components/index.vue

@@ -8,28 +8,13 @@
 			:loadingType="5"
 		></tui-skeleton>
 		<view v-else class="container-cart-main tui-skeleton" :style="{ paddingTop: isshowDelbtn ? '0rpx' : '80rpx' }">
-			<template v-if="pathType == 0">
-				<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length > 0">
-					<view class="foot-text"
-						>共<text>{{ kindCount }}</text
-						>件商品</view
-					>
-					<view class="delBtn" @tap.stop="showDelManager">删除</view>
-				</view>
-			</template>
-			<template v-else>
-				<view
-					class="foot-check-delbtn"
-					v-if="!isshowDelbtn && goodsList.length > 0"
-					:style="{ top: CustomBar + 'px' }"
+			<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length > 0">
+				<view class="foot-text"
+					>共<text>{{ kindCount }}</text
+					>件商品</view
 				>
-					<view class="foot-text"
-						>共<text>{{ kindCount }}</text
-						>件商品</view
-					>
-					<view class="delBtn" @tap.stop="showDelManager">删除</view>
-				</view>
-			</template>
+				<view class="delBtn" @tap.stop="showDelManager">删除</view>
+			</view>
 			<view v-if="!isEmpty" class="container-cart">
 				<view class="cart-content" :style="{ paddingBottom: isIphoneX ? '130rpx' : '100rpx' }">
 					<view class="goods-list">
@@ -159,59 +144,30 @@
 						</view>
 					</view>
 				</view>
-				<!-- 脚部菜单 -->
-				<template v-if="pathType == 0">
-					<view class="footer">
-						<view class="footer-le">
-							<view class="foot-check checkbox-box" @tap.stop="handleCheckAll">
-								<button
-									class="checkbox iconfont"
-									:class="[isCheckAll ? 'icon-yixuanze' : 'icon-weixuanze']"
-								></button>
-								<view class="text">全选</view>
-							</view>
-							<view class="sum">
-								<view class="sum-price none">
-									总价:<text class="money-sign">¥</text
-									><text class="money">{{ allPrice | NumFormat }}</text>
-								</view>
-							</view>
-						</view>
-						<view v-if="!isshowDelbtn" class="footer-ri">
-							<view class="btn hanld-btn" @tap="hanldlerToConfirm">去结算({{ allCount }})</view>
-						</view>
-						<view v-else class="footer-del">
-							<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>
-							<view class="btn btn-confirm" @tap.stop="handleDeleteCart">删除</view>
+				<view class="footer">
+					<view class="footer-le">
+						<view class="foot-check checkbox-box" @tap.stop="handleCheckAll">
+							<button
+								class="checkbox iconfont"
+								:class="[isCheckAll ? 'icon-yixuanze' : 'icon-weixuanze']"
+							></button>
+							<view class="text">全选</view>
 						</view>
-					</view>
-				</template>
-				<template v-else>
-					<view class="footer" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
-						<view class="footer-le">
-							<view class="foot-check checkbox-box" @tap.stop="handleCheckAll">
-								<button
-									class="checkbox iconfont"
-									:class="[isCheckAll ? 'icon-yixuanze' : 'icon-weixuanze']"
-								></button>
-								<view class="text">全选</view>
-							</view>
-							<view class="sum">
-								<view class="sum-price none">
-									总价:<text class="money-sign">¥</text
-									><text class="money">{{ allPrice | NumFormat }}</text>
-								</view>
+						<view class="sum">
+							<view class="sum-price none">
+								总价:<text class="money-sign">¥</text
+								><text class="money">{{ allPrice | NumFormat }}</text>
 							</view>
 						</view>
-						<view v-if="!isshowDelbtn" class="footer-ri">
-							<view class="btn hanld-btn" @tap="hanldlerToConfirm">去结算({{ allCount }})</view>
-						</view>
-						<view v-else class="footer-del">
-							<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>
-							<view class="btn btn-confirm" @tap.stop="handleDeleteCart">删除</view>
-						</view>
 					</view>
-				</template>
+					<view v-if="!isshowDelbtn" class="footer-ri">
+						<view class="btn hanld-btn" @tap="hanldlerToConfirm">去结算({{ allCount }})</view>
+					</view>
+					<view v-else class="footer-del">
+						<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>
+						<view class="btn btn-confirm" @tap.stop="handleDeleteCart">删除</view>
+					</view>
+				</view>
 			</view>
 			<view v-else class="cart-content empty">
 				<view class="empty-container">
@@ -220,8 +176,8 @@
 						:src="staticUrl + 'icon_cart_empty@2x.png'"
 						mode="aspectFit"
 					></image>
-					<text class="error-text">购物车空空如也,快去商城逛逛吧~</text>
-					<view class="login-btn" @click="goIndex">去商城</view>
+					<text class="error-text">购物车空空如也,快去采购吧~</text>
+					<view class="login-btn" @click="goIndex">去采购</view>
 				</view>
 			</view>
 		</view>
@@ -251,13 +207,12 @@
 <script>
 import authorize from '@/common/config/authorize.js'
 import cmUnitPopup from './cm-unit-popup.vue'
-import payMixins from '@/mixins/payMixins.js'
-import cartMixins from './mixins/cartMixins.js'
-import apisMixins from './mixins/apisMixins.js'
+import cartMixins from '../mixins/cartMixins.js'
+import apisMixins from '../mixins/apisMixins.js'
 import { mapState, mapMutations } from 'vuex'
 export default {
 	name: 'cm-cart-temp',
-	mixins: [payMixins, apisMixins, cartMixins],
+	mixins: [apisMixins, cartMixins],
 	props: {
 		pathType: {
 			type: Number
@@ -274,13 +229,9 @@ export default {
 			userId: 0,
 			userIdentity: 0,
 			alertType: '',
-			isStock: '',
 			handlerPros: {}, // 监听单挑促销商品
 			failureList: [], // 失效商品列表
 			goodsList: [], // 购物车的商品
-			// promotionsList: [], // 促销列表
-			// totalCouponList: [], // 优惠券算列表
-			// eligibleCoupons: [], // 最终需要用到优惠券
 			setGoodData: '', // 确认订单的商品
 			isCheckAll: false, // 是否全选
 			kindCount: 0, // 购物车宝贝数量
@@ -293,27 +244,21 @@ export default {
 			isNoConfim: false,
 			isEmpty: false, // 显示空购物车
 			scrollHeight: 'auto',
+			listQuery:{
+				serviceProviderId:0,
+				clubId:0,
+				pageNum:1,
+				pageSize:100
+			},
 			nomoreText: '上拉显示更多',
 			hasNextPage: false,
 			loadding: false,
 			pullUpOn: true,
 			pullFlag: true,
-			pageSize: 10,
-			pageNum: 1,
 			submitIds: [],
 			checkenProsList: [],
 			popupShow: false,
 			popupShow2: false,
-			currentTab: 1,
-			couponParam: {
-				// 获取弹窗优惠券领取参数
-				userId: 0,
-				shopId: 0,
-				status: 1,
-				source: 2
-			},
-			productCouponList: [], // 优惠券弹窗列表
-			isCouponEmpty: false,
 			contentModalText: '', //操作文字提示语句
 			modal: false,
 			modalButton: [
@@ -369,30 +314,44 @@ export default {
 	},
 	methods: {
 		async initData() {
-			const userInfo = await this.$api.getStorage()
 			this.skeletonShow = true //预加载圆圈
 			this.isCheckAll = false //是否全选
 			this.submitIds = []
 			this.checkenProsList = []
-			this.userId = userInfo.userId ? userInfo.userId : 0
-			this.initGetCartGoodsList()
+			const clubInfo = await this.$api.getComStorage('orderUserInfo')
+			const userInfo = await this.$api.getStorage()
+			this.listQuery.clubId = clubInfo.clubId
+			this.listQuery.serviceProviderId = userInfo.serviceProviderId
+			this.sellerOrganizeList()
+			this.getClubProductNum()
 		},
-		async initGetCartGoodsList() {
+		async sellerOrganizeList() {
 			//初始化购物车 index:1
-			const res = await this.ProductService.QueryShoppingCartList({ userId: this.userId, source: 2 })
-			let data = res.data
-			console.log('data', data)
-			this.kindCount = data.kindCount
-			this.$store.commit('updateAllNum', data.kindCount)
-			if (data.list.length === 0 && data.invalid.length === 0) {
+			const res = await this.SellerService.sellerOrganizeList(this.listQuery)
+			const data = res.data
+			const invalid = data.invalidProductList
+			const list = data.pageDate.list
+			if (list.length === 0 && invalid.length === 0) {
 				this.isEmpty = true
 			}else{
 				this.isEmpty = false
 			}
-			this.infoCartData(data.list)
-			this.infoInvalidData(data.invalid)
+			this.infoCartData(list)
+			this.infoInvalidData(invalid)
 			this.skeletonShow = false
 		},
+		async getClubProductNum() {
+			// 获取协销下机构购物车数量
+			try {
+				const res = await this.SellerService.clubCartCount({
+					clubId: this.listQuery.clubId,
+					serviceProviderId: this.listQuery.serviceProviderId
+				})
+				this.kindCount = res.data
+			} catch (error) {
+				console.log('获取机构购物车数量失败')
+			}
+		},
 		infoCartData(data) {
 			//初始化有效商品
 			this.goodsList = data.map((supplier, index) => {
@@ -624,12 +583,8 @@ export default {
 			if (pros.step === 2) {
 				pros.isStep = false
 				pros.number += pros.min
-				this.processActivityPrice(pros)
-				this.isStock = false
 			} else {
 				pros.number++
-				this.processActivityPrice(pros)
-				this.isStock = false
 			}
 			this.updateShoppogNum(pros)
 			this.totalShopPeice()
@@ -647,7 +602,6 @@ export default {
 				} else {
 					pros.number--
 				}
-				this.processActivityPrice(pros)
 			}
 			this.updateShoppogNum(pros)
 			this.totalShopPeice()
@@ -670,24 +624,10 @@ export default {
 			} else {
 				pros.isStep = false
 				pros.number = e.detail.value
-				this.processActivityPrice(pros)
 			}
 			this.updateShoppogNum(pros)
 			this.totalShopPeice()
 		},
-		processActivityPrice(pros) {
-			//单独处理活动价格和阶梯价格
-			let ladderPriceList = pros.ladderPrices
-			if (pros.ladderFlag == 0 || pros.actStatus == 1) {
-				pros.price = pros.price
-			} else {
-				ladderPriceList.forEach((item, index) => {
-					if (pros.number >= item.buyNum) {
-						pros.price = item.buyPrice
-					}
-				})
-			}
-		},
 		setCartisDisable() {
 			// 删除取消设置不能选的商品
 			this.goodsList = this.goodsList.map(suppler => {
@@ -760,9 +700,7 @@ export default {
 		},
 
 		goIndex() {
-			uni.switchTab({
-				url: '/pages/tabBar/home/index'
-			})
+			uni.navigateBack()
 		},
 		goSuppile(shop) {
 			//跳转店铺
@@ -793,7 +731,7 @@ export default {
 		handleClick(e) {
 			//个人机构跳转升级页面
 			if (e.index == 1) {
-				this.shoppingCartDelete({ userId: this.userId, skuIds: this.delSkuIds })
+				this.sellerDeleteCart({ cartIds: this.delCartIds , serviceProviderId: this.listQuery.serviceProviderId})
 			}
 			this.modal = false
 		},
@@ -907,7 +845,6 @@ page {
 	.checkbox {
 		display: flex;
 		margin: 0;
-		padding: 5rpx;
 		display: flex;
 		flex-direction: column;
 		align-items: center;

+ 55 - 1814
pages/seller/cart/index.vue

@@ -1,1825 +1,66 @@
 <template>
 	<view class="container cart clearfix">
-		<tui-skeleton
-			v-if="skeletonShow"
-			backgroundColor="#fafafa"
-			borderRadius="10rpx"
-			:isLoading="true"
-			:loadingType="5"
-		></tui-skeleton>
-		<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length > 0" :style="{ top: CustomBar + 'px' }">
-			<view class="foot-text"
-				>共<text>{{ kindCount }}</text
-				>件商品</view
-			>
-			<view class="delBtn" @tap.stop="showDelManager">删除</view>
-		</view>
-		<view class="container-cart-main tui-skeleton" :style="{ paddingTop: isshowDelbtn ? '0rpx' : '80rpx' }">
-			<view v-if="!isEmpty" class="container-cart">
-				<scroll-view class="cart-content" scroll-y @scrolltolower="toLower">
-					<view class="goods-list">
-						<view v-for="(item, index) in goodsList" :key="index" class="goods-item">
-							<view class="shoptitle">
-								<!--选择商店的全部商品 :disabled="isNnder"-->
-								<view class="checkbox-box" @click.stop="handleCheckShop(item)">
-									<view
-										class="checkbox iconfont"
-										:class="[item.isChecked ? 'icon-yixuanze' : 'icon-weixuanze']"
-									></view>
-								</view>
-								<view v-if="item.promotions" class="floor-item-act">
-									<view class="floor-tags" @click.stop="clickPopupShow(item, 2)">{{
-										item.promotions.name
-									}}</view>
-								</view>
-								<view class="text">{{ item.shopName }}</view>
-							</view>
-							<view class="productlist">
-								<view class="goods-pros" v-for="(pros, idx) in item.cartList" :key="idx">
-									<view class="goods-pros-t">
-										<!--选择商品-->
-										<view class="checkbox-box" @click.stop="handlsCkecdPros(item, pros, idx)">
-											<view
-												class="checkbox iconfont"
-												:class="[pros.isChecked ? 'icon-yixuanze' : 'icon-weixuanze']"
-											></view>
-										</view>
-										<view class="pros-img" @click.stop="navToListPage(pros.productId)">
-											<image :src="pros.image ? pros.image : ''" alt="" />
-											<view class="pros-type" v-if="pros.productType == 2">医疗器械</view>
-										</view>
-										<view class="pros-product">
-											<view class="producttitle" @click.stop="navToListPage(pros.productId)">
-												{{ pros.name }}
-											</view>
-											<view class="productspec">规格:{{ pros.unit ? pros.unit : '' }}</view>
-											<view
-												class="productspec"
-												v-if="pros.productCode != '' && pros.productCode != null"
-											>
-												<view bgcolor="#666666">商品编码:{{ pros.productCode }}</view>
-											</view>
-											<template v-if="pros.number > pros.stock || pros.stock === 0">
-												<view class="cart-sku-temp" @click.stop="handleShouUnitPopup(pros)">
-													<view class="cart-sku-text">重新选择商品规格</view>
-													<view class="cart-sku-btn">重选</view>
-												</view>
-											</template>
-											<template v-else>
-												<view class="productprice">
-													<!--使用过滤器对总价改变-->
-													<view
-														class="price"
-														:class="
-															PromotionsFormat(pros.promotions) ||
-															(pros.svipProductFlag == 1 && vipFlag == 1)
-																? 'disabled'
-																: ''
-														"
-													>
-														<text>¥</text>
-														{{
-															(PromotionsFormat(pros.promotions) ||
-															pros.svipProductFlag == 1
-																? pros.originalPrice
-																: pros.price) | NumFormat
-														}}
-													</view>
-													<view class="count" :class="[isshowDelbtn ? 'none' : 'show']">
-														<text class="count-tips" v-if="pros.number < pros.min"
-															>起订量:{{ pros.min }}</text
-														>
-														<text class="count-tips step" v-if="pros.isStep"
-															>购买量必须为起订量的整数倍</text
-														>
-														<view class="number-box">
-															<view
-																class="iconfont icon-jianhao"
-																@click="changeCountSub(item, pros)"
-															></view>
-															<input
-																class="btn-input"
-																type="number"
-																maxlength="6"
-																v-model="pros.number"
-																@blur="changeNnmber($event, item, pros)"
-															/>
-															<view
-																class="iconfont icon-jiahao"
-																@click="changeCountAdd(item, pros)"
-															></view>
-														</view>
-													</view>
-												</view>
-												<view class="floor-item-act">
-													<template v-if="pros.actStatus == 1 && pros.promotions">
-														<view
-															v-if="PromotionsFormat(pros.promotions)"
-															class="floor-tags"
-															@click.stop="clickPopupShow(pros, 1)"
-														>
-															{{ pros.promotions.name }}
-															<text
-																v-if="
-																	pros.promotions != null && pros.promotions.type != 3
-																"
-															>
-																:¥{{
-																	pros.promotions == null
-																		? '0.00'
-																		: pros.promotions.touchPrice | NumFormat
-																}}
-															</text>
-														</view>
-														<view
-															v-else-if="pros.promotions.type != 3"
-															class="floor-tags"
-															@click.stop="clickPopupShow(pros, 2)"
-														>
-															{{ pros.promotions.name }}
-														</view>
-													</template>
-													<template v-if="pros.actStatus == null && pros.ladderFlag == 1">
-														<view class="floor-tags" @click.stop="clickPopupShow(pros, 2)"
-															>阶梯价格</view
-														>
-													</template>
-													<template v-if="pros.svipProductFlag == 1">
-														<view class="svip-tags">
-															<view class="tags" :class="{ none: vipFlag != 1 }"
-																>SVIP</view
-															>
-															<view class="price" v-if="isShowVipFlag(pros)">{{
-																pros.svipPriceTag
-															}}</view>
-														</view>
-													</template>
-												</view>
-											</template>
-										</view>
-									</view>
-								</view>
-							</view>
-							<view class="goods-pros-b clearfix" :class="[isshowDelbtn ? 'none' : 'show']">
-								<view class="sum-none" v-if="item.reducedPrice > 0">
-									<text class="money-sign">¥</text>
-									<text class="money">{{ item.totalOriginalPrice | NumFormat }}</text>
-									<text class="money-reduced"
-										>减<text>¥{{ item.reducedPrice | NumFormat }}</text></text
-									>
-								</view>
-								<view class="sum"
-									>合计:<text class="money"
-										><text class="money-sign">¥</text>{{ item.totalPrice | NumFormat }}</text
-									></view
-								>
-							</view>
-						</view>
-					</view>
-					<view class="failure-list" v-if="failureList.length > 0">
-						<view class="failure-title">
-							<view class="title-txt"
-								>失效商品<text>{{ failureList.length }}件</text></view
-							>
-							<view class="title-btn" @click.stop="handleDeletefailures"
-								><text class="butto">清空失效商品</text></view
-							>
-						</view>
-						<view class="productlist">
-							<view class="goods-pros" v-for="(failure, failureIdx) in failureList" :key="failureIdx">
-								<view class="goods-pros-t" @click.stop="failureToProduct(failure)">
-									<!--选择商品-->
-									<view
-										class="checkbox-box"
-										@click.stop="handleCheckFailure(failure)"
-										v-if="isshowDelbtn"
-									>
-										<button
-											class="checkbox iconfont"
-											:class="[failure.isChecked ? 'icon-yixuanze' : 'icon-weixuanze']"
-										></button>
-									</view>
-									<text class="img-tip">失效</text>
-									<view class="pros-img">
-										<image :src="failure.mainImage ? failure.mainImage : ''" alt="" />
-										<view class="pros-type" v-if="failure.productType == 2">医疗器械</view>
-									</view>
-									<view class="pros-product">
-										<view class="producttitle">{{ failure.name }}</view>
-										<view class="productspec">规格:{{ failure.unit ? failure.unit : '' }}</view>
-										<view class="productstate">{{ failureStateText(failure.validFlag) }}</view>
-									</view>
-									<view class="pros-marks" v-if="failure.isFailureLayer"></view>
-									<!--</view>-->
-								</view>
-							</view>
-						</view>
-					</view>
-
-					<!--加载loadding-->
-					<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
-					<tui-nomore :visible="!pullUpOn" :backgroundColor="'#ffffff'" :text="nomoreText"></tui-nomore>
-					<!--加载loadding-->
-				</scroll-view>
-				<!-- 脚部菜单 -->
-				<view class="footer" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
-					<view class="footer-le">
-						<view class="foot-check checkbox-box" @tap.stop="handleCheckAll">
-							<button
-								class="checkbox iconfont"
-								:class="[isCheckAll ? 'icon-yixuanze' : 'icon-weixuanze']"
-							></button>
-							<view class="text">全选</view>
-						</view>
-						<view class="sum">
-							<view class="sum-none" v-if="reducedPrice > 0">
-								<text class="money-sign">¥</text>
-								<text class="money">{{ totalOriginalPrice | NumFormat }}</text>
-								<text class="money-reduced"
-									>减<text>¥{{ reducedPrice | NumFormat }}</text></text
-								>
-							</view>
-							<view class="sum-price" :class="reducedPrice == 0 ? 'none' : ''">
-								总价:<text class="money-sign">¥</text
-								><text class="money">{{ allPrice | NumFormat }}</text>
-							</view>
-						</view>
-					</view>
-					<view v-if="!isshowDelbtn" class="footer-ri">
-						<view class="btn hanld-btn" @tap="hanldlerToConfirm">去结算({{ allCount }})</view>
-					</view>
-					<view v-else class="footer-del">
-						<view class="btn btn-cancel" @tap.stop="hideDelManage">取消</view>
-						<view class="btn btn-confirm" @tap.stop="handleDeleteCart">删除</view>
-					</view>
-				</view>
-			</view>
-			<view v-if="isEmpty" class="cart-content empty">
-				<view class="empty-container">
-					<image
-						class="empty-container-image"
-						src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AWdWzAAGlgAP0das422.png"
-						mode="aspectFit"
-					></image>
-					<text class="error-text">购物车空空如也~</text>
-				</view>
-			</view>
-		</view>
-		<!-- 选择规格弹窗 -->
-		<cm-unit-popup
-			v-if="popupShow"
-			:popupShow="popupShow"
-			:skuProduct="handlePros"
-			@skuBtnConfirm="handleBtnConfirm"
-			@handleFuction="handleFuctionData"
-		></cm-unit-popup>
-		<!-- 促销活动弹窗 -->
-		<activi-popup :product="handlerPros" :popupShow="popupShow1"></activi-popup>
-		<!-- 透明模态层 -->
-		<modal-layer v-if="modallayer"></modal-layer>
+		<cart ref="cart" :pathType='pathType'></cart>
 	</view>
 </template>
 <script>
-import modalLayer from '@/components/modal-layer'
-import cmUnitPopup from './components/cm-unit-popup'
-import cartMixins from './mixins/cartMixins.js'
-import apisMixins from './mixins/apisMixins.js'
-import { mapState, mapMutations } from 'vuex'
-const defaultListQuery = {
-	clubId: 0, // 机构Id
-	serviceProviderId: 0, //协销Id
-	againBuyProductIds: '', // 再次购买商品ids
-	pageNum: 1, // 页码
-	pageSize: 10 // 条数
-}
-export default {
-	mixins: [apisMixins, cartMixins],
-	components: {
-		cmUnitPopup,
-		modalLayer
-	},
-	data() {
-		return {
-			kindCount: 0,
-			isStock: '',
-			popupShow: false,
-			popupShow1: false,
-			handlePros: {},
-			listQuery: Object.assign({}, defaultListQuery), // 购物车立即结算确认订单参数
-			handlerPros: {}, //监听单挑促销商品
-			promotionsList: [], //促销活动列表
-			failureList: [], //失效商品列表
-			goodsList: [], //购物车的商品
-			delGoodsList: '', //要删除的商品
-			setGoodData: '', //确认订单的商品
-			isCheckAll: false, //是否全选
-			totalOriginalPrice: 0, //所有原价价
-			reducedPrice: 0, //满减
-			allPrice: 0, //所有价格
-			allCount: 0, //被选中的产品数量
-			isModallayer: false,
-			skeletonShow: true,
-			isshowDelbtn: false,
-			isDisabled: false, // 供应商/店铺全选是否禁用状态
-			isEmpty: false, //显示空购物车
-			scrollHeight: 'auto',
-			nomoreText: '上拉显示更多',
-			hasNextPage: false,
-			loadding: false,
-			pullUpOn: true,
-			pullFlag: true,
-			submitIds: [],
-			checkenProsList: [],
-			depositIds: [6060, 6061, 6062, 6063, 6064], //定金商品ID
-			rechargeIds: [6065, 6066, 6067, 6068, 6069], //充值余额商品ID
-			isIphoneX: this.$store.state.isIphoneX,
-			vipFlag: 0,
-			userIdentity: 0,
-			isCheckedProductStatus: false
-		}
-	},
-	onLoad() {
-		this.setScrollHeight()
-	},
-	computed: {
-		...mapState(['hasLogin', 'userInfo'])
-	},
-	watch: {
-		//深度监听所有数据,每次改变重新计算总价和总数
-		goodsList: {
-			deep: true,
-			handler(val, oldval) {
-				this.totalPeice()
-				this.totalCount()
-			}
-		}
-	},
-	filters: {
-		NumFormat(value) {
-			//处理金额
-			return Number(value).toFixed(2)
-		},
-		totalprice(val, count) {
-			//单件商品的价格 × 数量
-			return (val * count).toFixed(2)
-		}
-	},
-	methods: {
-		async initGetStotage() {
-			const clubInfo = await this.$api.getComStorage('orderUserInfo')
-			const userInfo = await this.$api.getStorage()
-			this.isModallayer = false //遮罩层 防止多次点击
-			this.skeletonShow = true //预加载圆圈
-			this.isCheckAll = false //是否全选
-			this.submitIds = []
-			this.vipFlag = clubInfo.vipFlag ? clubInfo.vipFlag : 0
-			this.userIdentity = clubInfo.userIdentity ? clubInfo.userIdentity : 0
-			console.log('userIdentity', this.userIdentity)
-			console.log('vipFlag', this.vipFlag)
-			this.listQuery.clubId = clubInfo.clubId ? clubInfo.clubId : 0
-			this.listQuery.againBuyProductIds = clubInfo.againBuyProductIds ? clubInfo.againBuyProductIds : ''
-			this.listQuery.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-			this.initGetCartGoodsList()
-			this.getClubProductNum()
-		},
-		initLogin() {
-			this.$api.redirectTo('/pages/login/login?type=4')
-		},
-		clickPopupShow(pros, type) {
-			//显示活动弹窗
-			this.popupShow1 = true
-			this.handlerPros = pros
-		},
-		failureToProduct(failure) {
-			if (failure.status == 1) {
-				this.$util.msg('商品已丢失,不能查看', 2000)
-				return
-			} else if (failure.status == 2) {
-				this.$util.msg('商品已停售,不能查看', 2000)
-				return
-			} else {
-				this.isModallayer = true
-				this.$api.navigateTo(`/pages/goods/product?id=${failure.productId}`)
-			}
-		},
-		failureStateText(state) {
-			let stateText = '',
-				stateTextObject = {
-					0: '商品已停售',
-					10: '商品已丢失'
-				}
-			Object.keys(stateTextObject).forEach(key => {
-				if (key == state) {
-					stateText = stateTextObject[key]
-				}
-			})
-			return stateText
-		},
-		setScrollHeight() {
-			// 窗口高度-footer高度
-			const { windowHeight, pixelRatio } = uni.getSystemInfoSync()
-			setTimeout(() => {
-				const query = uni.createSelectorQuery().in(this)
-				query.selectAll('.footer').boundingClientRect()
-				query.exec(res => {
-					this.windowHeight = windowHeight
-					if (res[0][0]) {
-						this.scrollHeight = windowHeight - res[0][0].height
-					}
-				})
-			}, 500)
-		},
-		initGetCartGoodsList() {
-			//初始化购物车 index:1
-			this.SellerService.GetSellerShoppingInfo(this.listQuery)
-				.then(response => {
-					this.skeletonShow = false
-					let data = response.data
-					let dataPage = data.pageDate
-					this.promotionsList = data.promotionsList
-					if (dataPage.list.length > 0 || data.invalidProductList.length > 0) {
-						this.isEmpty = false
-					} else {
-						this.isEmpty = true
-					}
-					if (dataPage.list && dataPage.list.length > 0) {
-						this.hasNextPage = dataPage.hasNextPage
-						this.goodsList = dataPage.list
-						this.goodsList.forEach((supplier, index) => {
-							let cartListLength = supplier.cartList.length,
-								invalidLength = 0
-							supplier.cartList.forEach(pros => {
-								pros.shopId = supplier.shopId
-								pros.isStep = false
-								if (pros.stock === 0 || pros.number > pros.stock) {
-									supplier.isDisable = true
-									pros.isDisable = true
-								} else {
-									pros.isDisable = false
-								}
-								if (pros.step === 2) {
-									if (pros.number % pros.min != 0) {
-										pros.number = pros.min
-										this.totalShopPeice()
-										this.updateShoppogNum(pros)
-									}
-								}
-							})
-						})
-						this.totalShopPeice()
-						this.pullFlag = false
-						setTimeout(() => {
-							this.pullFlag = true
-						}, 500)
-						if (this.hasNextPage) {
-							this.pullUpOn = false
-							this.nomoreText = '上拉显示更多'
-						} else {
-							if (this.goodsList.length < 4) {
-								this.pullUpOn = true
-							} else {
-								this.pullUpOn = false
-								this.nomoreText = '已至底部'
-							}
-						}
-					} else {
-						this.goodsList = []
-					}
-					if (response.data.invalidProductList && response.data.invalidProductList.length > 0) {
-						let newFailureList = [],
-							isFailureLayer
-						response.data.invalidProductList.forEach((failure, index) => {
-							if (failure.validFlag == 0 || failure.validFlag == 10) {
-								isFailureLayer = true
-							} else {
-								isFailureLayer = false
-							}
-							newFailureList.push(Object.assign({}, failure, { isFailureLayer: isFailureLayer }))
-						})
-						this.failureList = newFailureList
-						console.log(this.failureList)
-					} else {
-						this.failureList = []
-					}
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
-		},
-		getOnReachBottomData() {
-			//上拉加载
-			this.listQuery.pageNum += 1
-			this.SellerService.GetSellerShoppingInfo(this.listQuery)
-				.then(response => {
-					let resultsData = response.data.pageDate
-					this.promotionsList = response.data.promotionsList
-					this.hasNextPage = resultsData.hasNextPage
-					this.goodsList = this.goodsList.concat(resultsData.results)
-					this.goodsList.forEach((supplier, index) => {
-						let productsListLength = supplier.cartList.length,
-							invalidLength = 0
-						supplier.cartList.forEach(pros => {
-							pros.shopId = supplier.shopId
-							pros.isStep = false
-							if (pros.stock === 0 || pros.number > pros.stock) {
-								supplier.isDisable = true
-								pros.isDisable = true
-							} else {
-								pros.isDisable = false
-							}
-							if (pros.step === 2) {
-								if (pros.number % pros.min != 0) {
-									pros.number = pros.min
-									this.totalShopPeice()
-									this.updateShoppogNum(pros)
-								}
-							}
-						})
-					})
-					this.totalShopPeice()
-					this.pullFlag = false // 防上拉暴滑
-					setTimeout(() => {
-						this.pullFlag = true
-					}, 500)
-					if (this.hasNextPage) {
-						this.pullUpOn = false
-						this.nomoreText = '上拉显示更多'
-					} else {
-						this.loadding = false
-						this.pullUpOn = false
-						this.nomoreText = '已至底部'
-					}
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
-		},
-		getClubProductNum() {
-			// 获取协销下机构购物车数量
-			this.SellerService.GetSellerProductNum({
-				clubId: this.listQuery.clubId,
-				serviceProviderId: this.listQuery.serviceProviderId
-			}).then(response => {
-				this.kindCount = response.data
-			})
-		},
-		handleCheckFailure(failure) {
-			//  选择失效商品
-			failure.isChecked = !failure.isChecked
-			this.updateCheckAllBtn()
-		},
-		handlsCkecdPros(item, pro) {
-			//为未选中的时候改变为true,反之为true
-			if (!this.isshowDelbtn) {
-				if (pro.isDisable) { return }
-			}
-			pro.isChecked = !pro.isChecked
-			if (pro.isChecked) {
-				if (!this.submitIds.includes(pro.skuId * 1)) {
-					this.submitIds.push(pro.skuId)
-					this.checkenProsList.push(pro)
-				}
-				this.isCheckedProductStatus = true
-			} else {
-				var lent = this.submitIds.indexOf(pro.skuId * 1)
-				if (lent >= 0) {
-					this.submitIds.splice(lent, 1)
-					this.checkenProsList.splice(lent, 1)
-				}
-			}
-			this.updateProductCheckedAllBtn(item)
-			this.updateCheckAllBtn()
-		},
-		updateProductCheckedAllBtn(item) {
-			// 单独每个供应商的勾选判断
-			let productsList = item.cartList,
-				productsCheckedLength = 0,
-				disabledLength = 0
-			if (this.isshowDelbtn) {
-				productsList.forEach(pros => {
-					if (pros.isChecked) {
-						productsCheckedLength++
-					}
-				})
-			} else {
-				productsList.forEach(pros => {
-					if (pros.isChecked) {
-						productsCheckedLength++
-					}
-				})
-			}
-			item.isChecked = productsCheckedLength === productsList.length - disabledLength
-		},
-		updateCheckAllBtn() {
-			// 全选勾选判断
-			let goodsCheckedLength = 0,
-				disabledListLength = 0,
-				goodsList = this.goodsList
-			goodsList.forEach(item => {
-				if (item.isChecked) {
-					goodsCheckedLength++
-				}
-			})
-			this.isCheckAll = goodsCheckedLength === goodsList.length - disabledListLength
-		},
-		handleCheckShop(supplier) {
-			//与单选商品类似
-			if (!this.isshowDelbtn) {
-				if (supplier.isDisable) {
-					return
-				}
-			}
-			supplier.isChecked = !supplier.isChecked
-			this.setProductChecked(supplier)
-			this.updateCheckAllBtn()
-		},
-		setProductChecked(supplier) {
-			supplier.cartList.forEach(pros => {
-				if (this.isshowDelbtn) {
-					if (supplier.isChecked) {
-						pros.isChecked = true
-						if (!this.submitIds.includes(pros.skuId * 1)) {
-							this.submitIds.push(pros.skuId)
-							this.checkenProsList.push(pros)
-						}
-					} else {
-						pros.isChecked = false
-						let lent = this.submitIds.indexOf(pros.skuId * 1)
-						if (lent >= 0) {
-							this.submitIds.splice(lent, 1)
-							this.checkenProsList.splice(lent, 1)
-						}
-					}
-				} else {
-					if (supplier.isChecked && (pros.stock !== 0 || pros.number < pros.stock)) {
-						pros.isChecked = true
-						if (!this.submitIds.includes(pros.skuId * 1)) {
-							this.submitIds.push(pros.skuId)
-							this.checkenProsList.push(pros)
-						}
-					} else {
-						pros.isChecked = false
-						let lent = this.submitIds.indexOf(pros.skuId * 1)
-						if (lent >= 0) {
-							this.submitIds.splice(lent, 1)
-							this.checkenProsList.splice(lent, 1)
-						}
-					}
-				}
-			})
-		},
-		updateBothCheckBtn() {
-			if (this.isshowDelbtn) {
-				// 当管理删除按钮出现时,失效的商品可被选择
-				this.goodsList.forEach(supplier => {
-					supplier.isChecked = this.isCheckAll
-					this.setProductChecked(supplier)
-				})
-				//删除按钮 全选包括失效商品勾选
-				this.failureList.forEach(failureItem => {
-					failureItem.isChecked = this.isCheckAll
-				})
-			} else {
-				this.goodsList.forEach(supplier => {
-					if(supplier.isDisable){
-						supplier.isChecked = false
-					}else{
-						supplier.isChecked = this.isCheckAll && !supplier.isDisabled
-					}
-					this.setProductChecked(supplier)
-				})
-			}
-		},
-		handleCheckAll() {
-			//全选方法内调用方法
-			this.isCheckAll = !this.isCheckAll
-			this.updateBothCheckBtn()
-		},
-		totalShopPeice() {
-			//每次所属会所下的商品增减重新计算合计价格&减去含有下架的商品
-			let touchPrice = 0
-			let reducedPrice = 0 //商铺合计满减价
-			this.goodsList.map((item, index) => {
-				//计算店铺满减后店铺合计
-				if (item.promotions && item.promotions.mode == 2) {
-					let prosPrice = 0 // 店铺价格合计
-					let prosDiscountNum = 0 // 店铺促销叠加次数
-					let totalOriginalPrice = 0 //店铺原价合计
-					item.cartList.forEach(pros => {
-						prosPrice += pros.price * pros.number
-						totalOriginalPrice += pros.price * pros.number
-					})
-					if (item.promotions.discount == 1) {
-						// 支持促销叠加条件的店铺满减 执行
-						prosDiscountNum = parseInt(prosPrice / item.promotions.touchPrice) // 店铺满减促销叠加次数 = 店铺合计价格/满减促销价格
-						console.log('店铺满减促销叠加通道叠加次数', `${prosDiscountNum}次`)
-						if (prosPrice >= item.promotions.touchPrice) {
-							// 满足店铺满减条件下执行
-							item.totalPrice = prosPrice - item.promotions.reducedPrice * prosDiscountNum
-							item.reducedPrice = item.promotions.reducedPrice * prosDiscountNum
-							item.totalOriginalPrice = totalOriginalPrice
-						} else {
-							item.reducedPrice = 0 //统计合计价格
-							item.totalPrice = prosPrice
-						}
-					} else {
-						console.log('店铺满减非促销叠加通道')
-						if (prosPrice >= item.promotions.touchPrice) {
-							// 满足店铺满减条件下执行
-							item.totalPrice = prosPrice - item.promotions.reducedPrice
-							item.reducedPrice = item.promotions.reducedPrice
-							item.totalOriginalPrice = totalOriginalPrice
-						} else {
-							item.reducedPrice = 0 //统计合计价格
-							item.totalPrice = prosPrice
-						}
-					}
-				} else {
-					//以下为计算除店铺满减以外的单品满减以及正常商品合计
-					let _totalPrice = 0
-					let _reducedPrice = 0
-					let discountNum = 0
-					let _totalOriginalPrice = 0
-					item.cartList.forEach(pros => {
-						let _price = pros.price * pros.number
-						_totalOriginalPrice += pros.price * pros.number
-						if (pros.promotions && pros.promotions.type != 2 && pros.promotions.mode == 2) {
-							if (pros.promotions.discount == 1) {
-								discountNum = parseInt(_price / pros.promotions.touchPrice)
-								console.log('单品满减促销叠加通道叠加次数', `${discountNum}次`)
-								if (_price >= pros.promotions.touchPrice) {
-									_price = _price - pros.promotions.reducedPrice * discountNum
-									_reducedPrice += pros.promotions.reducedPrice * discountNum
-								}
-								_totalPrice += _price
-							} else {
-								console.log('单品满减非促销叠加通道')
-								if (_price >= pros.promotions.touchPrice) {
-									_price = _price - pros.promotions.reducedPrice
-									_reducedPrice += pros.promotions.reducedPrice
-								}
-								_totalPrice += _price
-							}
-						} else {
-							_reducedPrice = 0
-							_totalPrice += pros.price * pros.number
-						}
-					})
-					item.reducedPrice = _reducedPrice
-					item.totalOriginalPrice = _totalOriginalPrice
-					item.totalPrice = _totalPrice
-				}
-			})
-		},
-		totalPeice() {
-			//计算总价格,每次调用此方法,将初始值为0,遍历价格并累加
-			let totalPrice = 0
-			let reducedPrice = 0
-			let originalPrice = 0
-			this.goodsList.forEach((item, index) => {
-				let supplierPrice = 0
-				let supplierReducedPrice = 0
-				item.totalprice = 0
-				item.reducedprice = 0
-				item.originalprice = 0
-				item.cartList.forEach(pros => {
-					if (pros.isChecked) {
-						this.isCheckedProductStatus = true
-						supplierPrice += pros.price * pros.number
-						// 单品满减
-						if (pros.promotions && pros.promotions.type * 1 === 1 && pros.promotions.mode * 1 === 2) {
-							// 单品满减-重新计算供应商总价/满减金额
-							let _price = pros.price * pros.number
-							if (pros.promotions.discount == 1) {
-								let discountNum = parseInt(_price / pros.promotions.touchPrice)
-								console.log('单品满减促销叠加通道叠加次数', `${discountNum}次`)
-								// 单品满减-重新计算供应商总价/满减金额
-								if (_price >= pros.promotions.touchPrice) {
-									supplierPrice -= pros.promotions.reducedPrice * discountNum
-									supplierReducedPrice += pros.promotions.reducedPrice * discountNum
-								}
-							} else {
-								console.log('非促销叠加通道')
-								// 单品满减-重新计算供应商总价/满减金额
-								if (_price >= pros.promotions.touchPrice) {
-									supplierPrice -= pros.promotions.reducedPrice
-									supplierReducedPrice += pros.promotions.reducedPrice
-								}
-							}
-						}
-					}
-				})
-				// 店铺满减
-				if (item.promotions && item.promotions.mode * 1 === 2) {
-					// 店铺满减-计算供应商总价/满减金额
-					if (item.promotions.discount == 1) {
-						// 支持促销叠加条件的店铺满减 执行
-						let prosDiscountNum = parseInt(supplierPrice / item.promotions.touchPrice) // 店铺满减促销叠加次数 = 店铺合计价格/满减促销价格
-						console.log('店铺满减促销叠加通道叠加次数', `${prosDiscountNum}次`)
-						if (supplierPrice >= item.promotions.touchPrice) {
-							supplierPrice -= item.promotions.reducedPrice * prosDiscountNum
-							supplierReducedPrice += item.promotions.reducedPrice * prosDiscountNum
-						}
-					} else {
-						console.log('店铺满减非促销叠加通道')
-						// 店铺满减-计算供应商总价/满减金额
-						if (supplierPrice >= item.promotions.touchPrice) {
-							supplierPrice -= item.promotions.reducedPrice
-							supplierReducedPrice += item.promotions.reducedPrice
-						}
-					}
-				}
-				item.totalprice = supplierPrice
-				item.reducedprice = supplierReducedPrice
-				item.originalprice = supplierPrice + supplierReducedPrice
-				totalPrice += item.totalprice
-				reducedPrice += item.reducedprice
-				originalPrice += item.originalprice
-				console.log('totalPrice', totalPrice)
-				console.log('originalPrice', originalPrice)
-			})
-			if (this.isCheckedProductStatus) {
-				// 总促销计算
-				this.promotionsList.forEach(promotions => {
-					// 凑单满减
-					if (promotions.mode === 2 && promotions.type === 2) {
-						let collecTotal = 0
-						let collecDiscountNum = 0
-						promotions.productList.forEach(pros => {
-							collecTotal += this.collecTotalPrice(pros)
-						})
-						if (promotions.discount == 1) {
-							// 支持凑单满减促销叠加条件的执行
-							collecDiscountNum += parseInt(collecTotal / promotions.touchPrice) // 凑单满减促销叠加次数 = 凑单商品合计价格/凑单满减促销价格
-							console.log('凑单促销满减叠加通道叠加次数', `${collecDiscountNum}次`)
-							if (collecTotal >= promotions.touchPrice) {
-								totalPrice -= promotions.reducedPrice * collecDiscountNum
-								reducedPrice += promotions.reducedPrice * collecDiscountNum
-							}
-						} else {
-							console.log('凑单促销满减非叠加通道')
-							if (collecTotal >= promotions.touchPrice) {
-								totalPrice -= promotions.reducedPrice
-								reducedPrice += promotions.reducedPrice
-							}
-						}
-					}
-				})
-				//最后统计商品原价
-				this.totalOriginalPrice = originalPrice
-				//最后满减金额 = 店铺减去金额 + 单品减去金额 + 凑单减去金额
-				this.reducedPrice = reducedPrice
-				//最终合计价格 = 	店铺满减合计 + 单品满减  + 正常合计 + 凑单满减
-				this.allPrice = totalPrice
-			}
-		},
-		collecTotalPrice(pros) {
-			// 凑单满减计算勾选的凑单商品总价
-			let price
-			this.checkenProsList.find(el => {
-				if (pros.productId == el.productId) {
-					price = el.number * el.price
-				}
-			})
-			return price
-		},
-		totalCount() {
-			//计算总数量
-			this.allCount = 0
-			let prosAllCount = 0
-			let validCount = 0
-			let validList = []
-			let productsList = []
-			this.goodsList.forEach(item => {
-				productsList = item.cartList
-				productsList.forEach(pros => {
-					if (pros.isChecked) {
-						prosAllCount += parseInt(pros.number)
-						this.allCount = prosAllCount
-					}
-				})
-			})
-		},
-		changeCountAdd(item, pros) {
-			//商品数量加加
-			if (pros.step === 2) {
-				pros.isStep = false
-				pros.number += pros.min
-				this.processActivityPrice(pros)
-				this.isStock = false
-			} else {
-				pros.number++
-				this.processActivityPrice(pros)
-				this.isStock = false
-			}
-			this.updateShoppogNum(pros)
-			this.totalShopPeice()
-		},
-		changeCountSub(item, pros) {
-			//商品数量减减
-			if (pros.number <= pros.min) {
-				pros.number = pros.min
-				this.$util.msg(`该商品最小起订量为${pros.min}`, 2000)
-				return
-			} else {
-				if (pros.step === 2) {
-					pros.isStep = false
-					pros.number -= pros.min
-				} else {
-					pros.number--
-				}
-				this.processActivityPrice(pros)
-			}
-			this.updateShoppogNum(pros)
-			this.totalShopPeice()
-		},
-		changeNnmber(e, item, pros) {
-			//输入商品数量更新
-			let _value = e.detail.value
-			if (!this.$api.isNumber(_value)) {
-				pros.number = pros.min
-			} else if (_value < pros.min) {
-				this.$util.msg(`该商品最小起订量为${pros.min}`, 2000)
-				pros.number = pros.min
-			} else if (_value % pros.min != 0) {
-				pros.isStep = true
-				pros.number = pros.min
-			} else {
-				pros.isStep = false
-				pros.number = e.detail.value
-				this.processActivityPrice(pros)
-			}
-			this.updateShoppogNum(pros)
-			this.totalShopPeice()
-		},
-		processActivityPrice(pros) {
-			//单独处理活动价格和阶梯价格
-			let ladderPriceList = pros.ladderPrices
-			if (pros.ladderFlag == 0 || pros.actStatus == 1) {
-				pros.price = pros.price
-			} else {
-				ladderPriceList.forEach((item, index) => {
-					if (pros.number >= item.buyNum) {
-						pros.price = item.buyPrice
-					}
-				})
-			}
-		},
-		setCartisDisable(){// 删除取消设置不能选的商品
-			this.goodsList = this.goodsList.map(suppler=>{
-				suppler.isDisable = false
-				suppler.cartList.forEach(pros => {
-					pros.isDisable = false
-				})
-				return suppler
-			})
-		},
-		clearCartisDisable(){// 取消删除设置不能选的商品
-			this.goodsList = this.goodsList.map((supplier) => {
-				supplier.cartList.forEach(pros => {
-					if(pros.stock === 0 || pros.number > pros.stock ){
-					    supplier.isDisable = true
-					    pros.isDisable = true
-					}else{
-					    pros.isDisable = false
-					}
-				})
-				return supplier
-			})
-		},
-		showDelManager() {
-			//显示删除商品管理
-			this.isshowDelbtn = true
-			this.setCartisDisable()
-			if (this.isCheckAll) {
-				this.updateBothCheckBtn()
-			} else {
-				this.updateCheckAllBtn()
+	import { mapState,mapMutations } from 'vuex';
+	import cart from './components/index.vue'
+	export default{
+		components:{
+			cart
+		},
+		data(){
+			return{
+				nvabarData: {//顶部自定义导航
+					showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
+					showSearch: 0,
+					title: '购物车', // 导航栏 中间的标题
+				},
+				headerBtnPosi:this.setHeaderBtnPosi(),//获取设备顶部胶囊高度
+				systeminfo:this.setSysteminfo(),		 //获取设备信息
+				CustomBar:this.CustomBar,// 顶部导航栏高度
+				isIphoneX:this.$store.state.isIphoneX,
+				isShowComponents:false,
+				pathType:1
+			}
+		},
+		onLoad(){
+			this.isShowComponents = true;
+		},
+		computed: {
+			...mapState(['hasLogin','userInfo','isWxAuthorize'])
+		},
+		methods:{
+			setHeaderBtnPosi(){
+				// 获得胶囊按钮位置信息
+				let headerBtnPosi = uni.getMenuButtonBoundingClientRect();
+				return headerBtnPosi
+			},
+			setSysteminfo(){
+				let systeminfo;
+				uni.getSystemInfo({ // 获取设备信息
+					success: (res) => {
+						systeminfo = res
+					},
+				})
+				return systeminfo
+			}
+		},
+		onPullDownRefresh() {//下拉刷新
+			this.$refs.cart.initData()
+			uni.stopPullDownRefresh()
+		},
+		onShow(){
+			if(this.hasLogin){
+				this.$refs.cart.initData()
+			}else{
+				this.$api.redirectTo('/pages/login/login')
 			}
 		},
-		hideDelManage() {
-			//隐藏删除商品管理
-			this.isshowDelbtn = false
-			this.isCheckAll = false
-			this.clearCartisDisable()
-			this.goodsList = this.goodsList.map(suppler=>{
-				suppler.isChecked = false
-				suppler.cartList.forEach(pros => {
-						pros.isChecked = false
-				})
-				return suppler
-			})
-		},
-		goNavto(url) {
-			uni.navigateTo({
-				url
-			})
-		},
-		PromotionsFormat(promo) {
-			//促销活动类型数据处理
-			if (promo != null) {
-				if (promo.type == 1 && promo.mode == 1) {
-					return true
-				} else {
-					return false
-				}
-			}
-			return false
-		},
-		navToListPage(id) {
-			this.isModallayer = true
-			this.$api.navigateTo(`/pages/goods/product?id=${id}`)
-		},
-		isShowVipFlag(pros) {
-			if (pros.priceFlag != 1) {
-				if (this.userIdentity == 4 && this.vipFlag == 1) {
-					return true
-				} else if (this.userIdentity == 2) {
-					return true
-				}
-			}
-		},
-		handleShouUnitPopup(pros) {
-			// 规格弹窗
-			this.popupShow = true
-			this.handlePros = pros
-		}
-	},
-	onReachBottom() {
-		if (this.hasNextPage) {
-			this.loadding = true
-			this.pullUpOn = true
-			this.getOnReachBottomData()
-		}
-	},
-	onPullDownRefresh() {
-		//下拉刷新
-		this.initGetCartGoodsList()
-		uni.stopPullDownRefresh()
-	},
-	onShow() {
-		this.initGetStotage()
 	}
-}
 </script>
 
 <style lang="scss">
-page {
-	background: #f7f7f7;
-}
-.cart-content {
-	position: relative;
-	padding-bottom: 100rpx;
-}
-.container-cart-main.none {
-	display: none;
-}
-.container-cart-main.show {
-	display: block;
-}
-.cart-content.empty.none {
-	display: none;
-}
-.cart-content.empty.show {
-	display: block;
-}
-.container-cart.show {
-	display: block;
-}
-.container-cart.none {
-	display: none;
-}
-.empty-container.none {
-	display: none;
-}
-.empty-container.show {
-	display: flex;
-}
-.foot-check-delbtn {
-	width: 100%;
-	height: 80rpx;
-	position: fixed;
-	top: 0;
-	left: 0;
-	box-sizing: border-box;
-	padding: 15rpx 24rpx;
-	background-color: #f7f7f7;
-	z-index: 990;
-	.foot-text {
-		font-size: $font-size-26;
-		height: 50rpx;
-		line-height: 50rpx;
-		color: #666666;
-		float: left;
-		padding-left: 10rpx;
-		text {
-			// color: $color-system;
-			margin: 0 6rpx;
-		}
-	}
-	.delBtn {
-		width: 100rpx;
-		display: inline-block;
-		padding: 0 15rpx;
-		font-size: $font-size-26;
-		height: 50rpx;
-		line-height: 50rpx;
-		border-radius: 30rpx;
-		background: #ffffff;
-		border: 1px solid #FF5B00;
-		color: $color-system;
-		float: right;
-		text-align: center;
-		&.none {
-			display: none;
-		}
-	}
-}
-.checkbox-box {
-	display: flex;
-	align-items: center;
-	.checkbox {
-		display: flex;
-		margin: 0;
-		padding: 0;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		box-sizing: border-box;
-		text-align: center;
-		text-decoration: none;
-		border-radius: 0;
-		-webkit-tap-highlight-color: transparent;
-		overflow: hidden;
-		background-color: #ffffff;
-		font-size: 36rpx;
-		color: $color-system;
-		padding: 5rpx;
-		&.icon-weixuanze {
-			color: #b2b2b2;
-		}
-	}
-	&.disabled {
-		.checkbox {
-			color: #999999;
-		}
-	}
-	.text {
-		font-size: $font-size-24;
-		margin-left: 10rpx;
-	}
-}
-.goods-list {
-	width: 100%;
-	height: auto;
-	border-top: 1px solid #ebebeb;
-	background-color: #f7f7f7;
-	.goods-item {
-		width: 702rpx;
-		padding: 0 24rpx;
-		background: #ffffff;
-		margin-bottom: 24rpx;
-	}
-	.shoptitle {
-		display: flex;
-		align-items: center;
-		height: 80rpx;
-		line-height: 80rpx;
-		.checkbox-box {
-			padding: 10rpx;
-		}
-		.text {
-			width: 450rpx;
-			display: block;
-			overflow: hidden;
-			text-overflow: ellipsis;
-			white-space: nowrap;
-			margin-left: 20rpx;
-			font-size: $font-size-28;
-			color: $text-color;
-			text-align: left;
-			font-weight: bold;
-		}
-		.floor-item-act {
-			height: 56rpx;
-			text-align: center;
-			box-sizing: border-box;
-			float: left;
-			padding: 10rpx 0;
-			margin-left: 20rpx;
-			.floor-tags {
-				height: 28rpx;
-				border-radius: 6rpx;
-				background-color: #ffffff;
-				line-height: 28rpx;
-				color: $color-system;
-				text-align: center;
-				display: inline-block;
-				padding: 0 6rpx;
-				font-size: $font-size-20;
-				border: 1px solid #FF5B00;
-				float: right;
-			}
-		}
-	}
-	.goods-pros {
-		width: 100%;
-		height: auto;
-	}
-	.goods-pros-t {
-		display: flex;
-		align-items: center;
-		width: 100%;
-		height: auto;
-		padding: 0 0 20rpx 0;
-		.checkbox-box {
-			padding: 10rpx;
-		}
-		.pros-img {
-			width: 210rpx;
-			height: 210rpx;
-			border-radius: 10rpx;
-			margin: 0 20rpx;
-			border: 1px solid #f3f3f3;
-			position: relative;
-			image {
-				width: 210rpx;
-				height: 210rpx;
-				border-radius: 10rpx;
-			}
-			.pros-type {
-				width: 64rpx;
-				height: 64rpx;
-				text-align: justify;
-				box-sizing: border-box;
-				padding: 10rpx;
-				border-radius: 0 0 8rpx 8rpx;
-				background-color: #33ccbf;
-				font-size: $font-size-22;
-				color: #ffffff;
-				line-height: 25rpx;
-				position: absolute;
-				top: 0;
-				right: 10rpx;
-			}
-		}
-	}
-	.goods-pros-b {
-		width: 100%;
-		height: auto;
-		padding: 0 0 24rpx 0;
-		box-sizing: border-box;
-		&.show {
-			display: block;
-		}
-		&.none {
-			display: none;
-		}
-		.sum-none {
-			width: 100%;
-			height: 48rpx;
-			line-height: 48rpx;
-			color: $text-color;
-			float: left;
-			text-align: right;
-			.money {
-				font-size: $font-size-26;
-				color: #999999;
-				text-decoration: line-through;
-			}
-			.money-sign {
-				font-size: $font-size-26;
-				color: #999999;
-				text-decoration: line-through;
-			}
-			.money-reduced {
-				margin-left: 10rpx;
-				font-size: $font-size-26;
-				color: $color-system;
-				.iconfont {
-					font-size: $font-size-34;
-				}
-			}
-		}
-		.sum {
-			width: 100%;
-			height: 40rpx;
-			font-size: $font-size-28;
-			line-height: 40rpx;
-			color: $text-color;
-			float: left;
-			display: flex;
-			justify-content: flex-end;
-			.money {
-				color: #ff2a2a;
-				font-size: $font-size-28;
-			}
-			.money-sign {
-				font-size: $font-size-24;
-				color: #ff2a2a;
-			}
-		}
-	}
-	.pros-product {
-		width: 386rpx;
-		height: 100%;
-		line-height: 36rpx;
-		font-size: $font-size-26;
-		position: relative;
-		.producttitle {
-			width: 100%;
-			display: inline-block;
-			height: auto;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			word-break: break-all;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 2;
-			overflow: hidden;
-			margin-bottom: 8rpx;
-			.no-text {
-				display: inline-block;
-				height: 36rpx;
-				padding: 0 12rpx;
-				line-height: 36rpx;
-				background: linear-gradient(315deg, rgba(231, 0, 0, 1) 0%, rgba(255, 104, 1, 1) 100%);
-				border-radius: 18rpx;
-				text-align: center;
-				color: #ffffff;
-				font-size: $font-size-24;
-				margin-right: 24rpx;
-			}
-		}
-		.productspec {
-			height: 36rpx;
-			color: #999999;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			word-break: break-all;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 2;
-			overflow: hidden;
-			margin-top: 10rpx;
-		}
-		.productCode {
-			color: #666666;
-		}
-		.cart-sku-temp {
-			width: 100%;
-			height: 48rpx;
-			margin: 30rpx 0 0 0;
-			.cart-sku-text {
-				font-size: 28rpx;
-				line-height: 48rpx;
-				color: #666666;
-				float: left;
-			}
-			.cart-sku-btn {
-				padding: 0 16rpx;
-				text-align: center;
-				line-height: 40rpx;
-				font-size: 24rpx;
-				box-sizing: border-box;
-				border: 1px solid #FF5B00;
-				color: #FF5B00;
-				float: left;
-				border-radius: 20rpx;
-				margin-left: 16rpx;
-			}
-		}
-		.productprice {
-			width: 100%;
-			height: 48rpx;
-			margin: 10rpx 0 0 0;
-			.price {
-				line-height: 48rpx;
-				font-size: $font-size-28;
-				width: 48%;
-				color: #ff2a2a;
-				float: left;
-				&.disabled {
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-sign {
-					font-size: $font-size-24;
-					color: #ff2a2a;
-				}
-			}
-			.count {
-				height: 100%;
-				float: right;
-				position: relative;
-				&.show {
-					display: block;
-				}
-				&.none {
-					display: none;
-				}
-				.count-tips {
-					width: auto;
-					display: inline-block;
-					padding: 0 15rpx;
-					line-height: 44rpx;
-					height: 44rpx;
-					border-radius: 22rpx;
-					background: $btn-confirm;
-					font-size: $font-size-24;
-					text-align: center;
-					color: #ffffff;
-					position: absolute;
-					top: -60rpx;
-					left: -5rpx;
-					z-index: 5;
-					&.step {
-						left: -217rpx;
-					}
-					&::before {
-						content: '';
-						position: absolute;
-						bottom: -30rpx;
-						right: 15rpx;
-						z-index: 1;
-						width: 0;
-						height: 0;
-						border-width: 18rpx;
-						border-style: solid;
-						border-color: $color-system transparent transparent transparent;
-					}
-				}
-				.number-box {
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					border: 2rpx solid #ffe6dc;
-					border-radius: 30rpx;
-					height: 48rpx;
-					.iconfont {
-						font-size: $font-size-24;
-						padding: 0 18rpx;
-						color: #999999;
-						text-align: center;
-						line-height: 48rpx;
-						font-weight: bold;
-						background: #fef6f3;
-						&.icon-jianhao {
-							border-radius: 30rpx 0 0 30rpx;
-						}
-						&.icon-jiahao {
-							border-radius: 0 30rpx 30rpx 0;
-						}
-					}
-					.btn-input {
-						width: 62rpx;
-						height: 44rpx;
-						line-height: 44rpx;
-						border-radius: 4rpx;
-						text-align: center;
-						font-size: $font-size-24;
-						border-bottom: 2rpx solid #ffe6dc;
-						border-top: 2rpx solid #ffe6dc;
-					}
-				}
-				.uni-numbox {
-					position: absolute;
-					left: 45rpx;
-					bottom: 0;
-					.uni-numbox-minus,
-					.uni-numbox-plus {
-						width: 50rpx;
-						line-height: 40rpx;
-					}
-					.uni-numbox-value {
-						font-size: $font-size-28;
-						width: 60rpx;
-					}
-				}
-			}
-		}
-		.floor-item-act {
-			width: 100%;
-			height: 56rpx;
-			text-align: center;
-			box-sizing: border-box;
-			float: left;
-			padding: 0 0 10rpx 0;
-			margin-left: 10rpx;
-		}
-	}
-}
-.footer {
-	width: 100%;
-	background-color: #ffffff;
-	height: 110rpx;
-	position: fixed;
-	bottom: 0rpx;
-	z-index: 100;
-	.footer-le {
-		width: 510rpx;
-		height: 100%;
-		padding: 0 24rpx;
-		float: left;
-		.foot-check {
-			width: 100rpx;
-			float: left;
-			line-height: 110rpx;
-			font-size: $font-size-24;
-			.checkbox {
-				width: 40rpx;
-				text-align: center;
-			}
-			.text {
-				width: 60rpx;
-				float: right;
-			}
-		}
-		.sum {
-			width: 380rpx;
-			height: 110rpx;
-			float: right;
-			box-sizing: border-box;
-			padding: 10rpx;
-			.sum-none {
-				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
-				color: $text-color;
-				float: left;
-				text-align: right;
-				.money {
-					font-size: $font-size-24;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-sign {
-					font-size: $font-size-24;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-reduced {
-					margin-left: 10rpx;
-					font-size: $font-size-24;
-					color: $color-system;
-				}
-			}
-			.sum-price {
-				text-align: right;
-				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
-				font-size: $font-size-30;
-				color: $text-color;
-				float: left;
-				font-weight: normal;
-				&.none {
-					height: 90rpx;
-					line-height: 90rpx;
-				}
-				.money {
-					color: #ff2a2a;
-				}
-				.money-sign {
-					font-size: $font-size-24;
-					color: #ff2a2a;
-				}
-			}
-		}
-	}
-	.footer-ri {
-		width: 180rpx;
-		height: 84rpx;
-		background: linear-gradient(135deg, rgba(242, 143, 49, 1) 0%, rgba(225, 86, 22, 1) 100%);
-		float: right;
-		display: flex;
-		justify-content: space-between;
-		align-items: center;
-		z-index: 999;
-		border-radius: 49rpx;
-		margin-top: 15rpx;
-		margin-right: 10rpx;
-		&.none {
-			display: none;
-		}
-		.btn {
-			width: 200rpx;
-			height: 100%;
-			font-size: $font-size-28;
-			line-height: 110rpx;
-			color: #ffffff;
-			display: flex;
-			justify-content: center;
-			align-items: center;
-		}
-	}
-	.footer-del {
-		width: 400rpx;
-		height: 110rpx;
-		position: absolute;
-		padding-left: 200rpx;
-		background: #ffffff;
-		right: 0;
-		top: 0;
-		z-index: 1000;
-		&.show {
-			animation: showDelbtn 0s linear both;
-		}
-		&.none {
-			animation: hideDelbtn 0s linear both;
-		}
-		.btn {
-			width: 50%;
-			height: 100%;
-			line-height: 110rpx;
-			font-size: $font-size-28;
-			color: #ffffff;
-			text-align: center;
-			float: left;
-		}
-		.btn.btn-cancel {
-			background: #eec1ab;
-		}
-		.btn.btn-confirm {
-			background: #ff2a2a;
-		}
-		@keyframes showDelbtn {
-			0% {
-				transform: translateX(0);
-			}
-			100% {
-				transform: translateX(-100%);
-			}
-		}
-		@keyframes hideDelbtn {
-			0% {
-				transform: translateX(-100%);
-			}
-			100% {
-				transform: translateX(0);
-			}
-		}
-	}
-}
-.failure-list {
-	width: 702rpx;
-	height: auto;
-	padding: 0 24rpx;
-	margin-top: 20rpx;
-	background: #ffffff;
-	.failure-title {
-		width: 100%;
-		height: 82rpx;
-		line-height: 82rpx;
-		font-size: $font-size-28;
-		.title-txt {
-			float: left;
-			color: #666666;
-			text-align: left;
-		}
-		.title-btn {
-			float: right;
-			color: $color-system;
-			text-align: right;
-			line-height: 80rpx;
-			.butto {
-				display: inline-block;
-				padding: 0 15rpx;
-				font-size: $font-size-26;
-				height: 50rpx;
-				line-height: 50rpx;
-				border-radius: 30rpx;
-				background: #ffffff;
-				// border: 1px solid #C9C9C9;
-				// color: #999999;
-				margin-top: 15rpx;
-			}
-		}
-	}
-	.productlist {
-		padding-top: 10rpx;
-		.goods-pros {
-			width: 100%;
-			height: auto;
-			padding: 20rpx 0;
-		}
-		.goods-pros-t {
-			display: flex;
-			align-items: center;
-			width: 100%;
-			height: 210rpx;
-			position: relative;
-			.img-tip {
-				display: block;
-				width: 72rpx;
-				height: 36rpx;
-				line-height: 36rpx;
-				font-size: $font-size-24;
-				text-align: center;
-				color: #ffffff;
-				border-radius: 24rpx;
-				background: rgba(51, 51, 51, 0.3);
-				// position: absolute;
-				// left: 0;
-				// top: 0;
-			}
-			.checkbox-box {
-				padding: 10rpx;
-			}
-			.pros-img {
-				width: 180rpx;
-				height: 100%;
-				border-radius: 10rpx;
-				margin: 0 20rpx;
-				border: 1px solid #f3f3f3;
-				position: relative;
-				image {
-					width: 100%;
-					height: 100%;
-					border-radius: 10rpx;
-				}
-			}
-			.pros-marks {
-				width: 750rpx;
-				height: 250rpx;
-				z-index: 90;
-				background: rgba(0, 0, 0, 0.05);
-				position: absolute;
-				left: -20rpx;
-				top: -20rpx;
-			}
-		}
-		.goods-pros-b {
-			width: 622rpx;
-			margin-left: 84rpx;
-			height: 40rpx;
-			padding: 0 0 26rpx 0;
-			// border-top: 1px solid #EBEBEB;
-			&.show {
-				display: block;
-			}
-			&.none {
-				display: none;
-			}
-			.sum {
-				font-size: $font-size-28;
-				line-height: 40rpx;
-				color: $text-color;
-				display: flex;
-				justify-content: flex-end;
-				.money {
-					color: #ff2a2a;
-					font-size: $font-size-28;
-				}
-				.money-sign {
-					font-size: $font-size-24;
-					color: #ff2a2a;
-				}
-			}
-		}
-		.pros-product {
-			width: 402rpx;
-			height: 100%;
-			line-height: 36rpx;
-			font-size: $font-size-28;
-			position: relative;
-			.producttitle {
-				width: 100%;
-				display: inline-block;
-				height: auto;
-				text-overflow: ellipsis;
-				display: -webkit-box;
-				word-break: break-all;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 2;
-				overflow: hidden;
-				margin-bottom: 8rpx;
-				.no-text {
-					display: inline-block;
-					height: 36rpx;
-					padding: 0 12rpx;
-					line-height: 36rpx;
-					background: linear-gradient(315deg, rgba(231, 0, 0, 1) 0%, rgba(255, 104, 1, 1) 100%);
-					border-radius: 18rpx;
-					text-align: center;
-					color: #ffffff;
-					font-size: $font-size-28;
-					margin-right: 24rpx;
-				}
-			}
-			.productspec {
-				height: 36rpx;
-				color: #999999;
-				font-size: $font-size-26;
-				margin-top: 20rpx;
-			}
-			.productstate {
-				font-size: $font-size-28;
-				height: 44rpx;
-				color: #ff2a2a;
-				position: absolute;
-				bottom: 0;
-				left: 0;
-			}
-		}
-	}
-}
-</style>
+
+</style>

+ 5 - 89
pages/seller/cart/mixins/apisMixins.js

@@ -6,113 +6,29 @@ const apisMixins = {
             try {
                 await this.ProductService.ShoppingCheckSku(params)
                 setTimeout(() => {
-                    this.initGetCartGoodsList()
+                    this.sellerOrganizeList()
                 }, 1500)
             } catch (error) {
                 console.log('error', error)
             }
         },
-        //调用购买优惠券
-        async apiWeChatCouponRecord(params, coupon) {
-            try {
-                const res = await this.PayService.WeChatCouponRecord(params)
-                this.MiniWxPayFor(coupon, res.data.couponRecordId)
-                setTimeout(() => {
-                    this.initGetCartGoodsList()
-                }, 1500)
-            } catch (error) {
-                if (error.code == -1) {
-                    //个人机构不能购买
-                    this.contentModalText = '该优惠券仅限医美机构购买,请升级为医美机构后再次购买。'
-                    this.modal = true
-                } else if (error.code == -2) {
-                    //会员机构不是医美机构不能购买
-                    this.$util.msg('该优惠券仅限医美机构购买', 2000)
-                }
-            }
-        },
-        async MiniWxPayFor(coupon, couponRecordId) {
-            // 微信支付
-            const wechatcode = await authorize.getCode('weixin')
-            const params = {
-                userId: this.userId,
-                couponId: coupon.couponId,
-                couponRecordId: couponRecordId,
-                payType: 'XCX',
-                code: wechatcode,
-                source: 1 //支付来源 1 小程序 2 WWW
-            }
-            this.weChatMiniCouponWxPay(
-                params,
-                'Um_Event_cartCouponPay',
-                '机构购物车',
-                '线上支付优惠券',
-                coupon.couponId,
-                this.userId
-            )
-        },
-        //调用采美豆抵扣优惠券
-        async apiWeChatPayCouponBeans(params) {
-            try {
-                await this.PayService.WeChatPayCouponBeans(params)
-                this.$util.msg('抵扣成功', 1500)
-                setTimeout(() => {
-                    this.currentTab = 1
-                    this.couponParam.status = 2
-                    this.queryPopupCoupons()
-                }, 1500)
-            } catch (error) {
-                this.$util.msg(error.msg, 2000)
-            }
-        },
-        //领取优惠券
-        async apiReceiveCoupon(params) {
-            try {
-                await this.ProductService.ReceiveCoupon(params)
-                this.$util.msg('领取成功', 1500, true, 'success')
-                setTimeout(() => {
-                    this.currentTab = 1
-                    this.couponParam.status = 2
-                    this.queryPopupCoupons()
-                }, 1500)
-            } catch (error) {
-                this.$util.msg(error.msg, 2000)
-            }
-        },
-        // 获取弹窗优惠券列表
-        async apiShoppingCartGetCoupon(params) {
-            try {
-                const res = await this.ProductService.ShoppingCartGetCoupon(params)
-                let data = res.data
-                this.navbar[0].num = data.notCouponNum
-                this.navbar[1].num = data.couponNum
-                if (data.couponList && data.couponList.length > 0) {
-                    this.productCouponList = data.couponList
-                    this.isCouponEmpty = false
-                } else {
-                    this.isCouponEmpty = true
-                }
-            } catch (error) {
-                
-            }
-        },
         //更新购物车商品
         async apiShoppingCartUpdate(params) {
             try{
-                await this.ProductService.ShoppingCartUpdate(params)
+                await  this.SellerService.SellerAddProductNum(params)
                 this.isshowDelbtn = false
             }catch(error){
 			   console.log('更新购物车商品数量失败')
             }
         },
 		 // 删除购物车商品
-        async shoppingCartDelete(params) {
+        async sellerDeleteCart(params) {
             try{
-            	await this.ProductService.ShoppingCartDelete(params)
+            	await this.SellerService.sellerDeleteCart(params)
                 this.$util.msg('删除成功', 2000)
                 setTimeout(() => {
 				    this.isshowDelbtn = false
-				    this.initGetCartGoodsList()
+				    this.sellerOrganizeList()
                 }, 2000)
             }catch(error){
             	console.log('购物车删除失败')

+ 7 - 8
pages/seller/cart/mixins/cartMixins.js

@@ -4,7 +4,7 @@ import Vue from 'vue'
 const cartMixins = {
     data() {
         return {
-            delSkuIds:''
+            delCartIds:''
         }
     },
     methods: {
@@ -53,10 +53,9 @@ const cartMixins = {
         },
         updateShoppogNum(pros) {
             const params = {
-                userId: this.userId,
-                skuId: pros.skuId,
+                id: pros.id,
                 productCount: pros.number,
-                source: 2
+                serviceProviderId: this.listQuery.serviceProviderId
             }
             // 更新购物车调用 apisMixins -> apiQueryShoppingCartList
             this.apiShoppingCartUpdate(params)
@@ -65,16 +64,16 @@ const cartMixins = {
             this.goodsList.forEach(delitem => {
                 delitem.cartList.forEach(pros => {
                     if (pros.isChecked) {
-                        this.delSkuIds += pros.skuId + ','
+                        this.delCartIds += pros.id + ','
                     }
                 })
             })
             this.failureList.forEach(failure => {
                 if (failure.isChecked) {
-                    this.delSkuIds += failure.skuId + ','
+                    this.delCartIds += failure.id + ','
                 }
             })
-            if (this.delSkuIds.length === 0) {
+            if (this.delCartIds.length === 0) {
                 this.$util.msg('请选择要删除的商品~', 2000)
                 return
             }
@@ -83,7 +82,7 @@ const cartMixins = {
         },
         handleDeletefailures() { // 一键清楚所有失效商品
             this.failureList.forEach(failure => {
-                this.delSkuIds += failure.skuId + ','
+                this.delCartIds += failure.id + ','
             })
             this.modal = true
             this.contentModalText = '确定清空全部失效商品吗?'

+ 121 - 297
pages/seller/club/club-list.vue

@@ -13,7 +13,7 @@
 					placeholder="机构名称/联系人"
 					maxlength="12"
 				/>
-				<text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
+				<text class="iconfont icon-shanchu2" v-if="isShowClose" @click="delInputText()"></text>
 			</view>
 			<view class="search-btn">
 				<button class="search-btn" type="default" @click.stop="searchClubList">搜索</button>
@@ -29,76 +29,32 @@
 				<view class="txt">暂无机构数据</view>
 			</view>
 			<view v-else class="club-list">
-				<scroll-view scroll-y="true">
-					<view class="list" v-for="(club, index) in clubList" :key="index">
-						<view class="club-list-top">
-							<view class="list-left">
-								<view class="list-head"
-									><image
-										:src="
-											club.headpic
-												? club.headpic
-												: 'https://static.caimei365.com/app/img/icon/icon-club@3x.png'
-										"
-										mode=""
-									></image
-								></view>
-							</view>
-							<view class="list-item">
-								<view class="list-title">
-									<text class="list-name"> {{ club.name }} </text>
-									<text class="tags" v-if="club.vipFlag == 0 && club.userIdentity === 2">VIP</text>
-									<text class="tags sv" v-if="club.vipFlag == 1">SVIP</text>
-									<text class="list-hist" @click.stop="handleClickOper(5, club)"
-										><text class="iconfont icon-dingdanliebiao"></text>订单列表</text
-									>
-								</view>
-								<view class="list-opea">
-									<text
-										class="tags sm"
-										@click.stop="
-											this.$api.navigateTo('/pages/service/service?id=1041&title=标签说明')
-										"
-										>{{ club.activeState }} <text class="iconfont icon-xiayibu"></text
-									></text>
-									<text
-										class="tags sm"
-										@click.stop="
-											this.$api.navigateTo('/pages/service/service?id=1041&title=标签说明')
-										"
-										>{{ club.customerValue }} <text class="iconfont icon-xiayibu"></text
-									></text>
-								</view>
+				<view class="list" v-for="(club, index) in clubList" :key="index">
+					<view class="club-list-top">
+						<view class="list-left">
+							<view class="list-head">
+								<image :src="staticUrl + 'icon_default_club@3x.png'" mode=""></image>
 							</view>
 						</view>
-						<view class="club-list-bot">
-							<view class="btn" @click.stop="handleClickOper(1, club)">
-								<text class="iconfont icon-lijixiadan"></text> 立即下单</view
-							>
-							<view class="btn" @click.stop="handleClickOper(2, club)">
-								<text class="iconfont icon-ershouxiadan"></text> 二手下单</view
-							>
-							<view class="btn" @click.stop="handleClickOper(4, club)">
-								<text class="iconfont icon-chongzhixiadingjin"></text> 充值/下订金</view
-							>
-							<view class="btn" @click.stop="handleShowBubble(club, index)">
-								<text class="iconfont icon-gengduo2"></text>
-								<view class="btn-bubble" v-if="currentIndex === index && club.bubble">
-									<view class="btn-view border" @click.stop="handleClickOper(3, club)">
-										<text class="iconfont icon-zaicigoumai1"></text> 再次购买
-									</view>
-									<view class="btn-view" @click.stop="handleClickOper(6, club)">
-										<text class="iconfont icon-youhuiquan"></text> 购买优惠券
-									</view>
-								</view>
+						<view class="list-item">
+							<view class="list-title">
+								<text class="list-name"> {{ club.name }} </text>
+							</view>
+							<view class="list-ntel">
+								<text class="list-link">{{ club.linkMan ? club.linkMan : '' }}</text>
+								<text class="list-texl">{{ club.contractMobile ? club.contractMobile : '' }}</text>
 							</view>
 						</view>
 					</view>
-					<!--加载loadding-->
-					<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
-					<tui-nomore :visible="!pullUpOn" :backgroundColor="'#ffffff'" :text="nomoreText"></tui-nomore>
-					<!--加载loadding-->
-				</scroll-view>
+					<view class="club-list-bot">
+						<view class="btn btn1" @click.stop="handleClickOper(2, club)">查看历史订单</view>
+						<view class="btn btn2" @click.stop="handleClickOper(1, club)">立即下单</view>
+					</view>
+				</view>
+				<!--加载loadding-->
+				<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
+				<tui-nomore :visible="!pullUpOn" :backgroundColor="'#ffffff'" :text="nomoreText"></tui-nomore>
+				<!--加载loadding-->
 			</view>
 		</view>
 	</view>
@@ -118,6 +74,7 @@ const defaultListQuery = {
 export default {
 	data() {
 		return {
+			staticUrl: this.global.staticUrl,
 			isShowClose: false,
 			isEmpty: false,
 			nomoreText: '上拉显示更多',
@@ -130,82 +87,73 @@ export default {
 			prevPage: '', //上一个页面
 			clubList: [],
 			listQuery: Object.assign({}, defaultListQuery),
-			currentIndex: 0
 		}
 	},
 	onLoad() {},
 	methods: {
 		async initGetStotage() {
 			// 初始化
-			const userInfo = await this.$api.getStorage()
-			this.listQuery.spId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
+			const user = await this.$api.getStorage()
+			this.listQuery.spId = user.serviceProviderId
 			this.GetSellerClubList()
 		},
 		searchClubList() {
 			// 搜索
 			this.GetSellerClubList()
 		},
-		GetSellerClubList() {
-			this.listQuery.pageNum = 1
-			this.SellerService.GetSellerClubList(this.listQuery)
-				.then(response => {
-					let data = response.data
-					if (data.list && data.list.length > 0) {
-						this.isEmpty = false
-						this.hasNextPage = response.data.hasNextPage
-						this.clubList = data.list.map((el, index) => {
-							el.bubble = false
-							return el
-						})
-						this.pullFlag = false
-						setTimeout(() => {
-							this.pullFlag = true
-						}, 500)
-						if (this.hasNextPage) {
-							this.pullUpOn = false
-							this.nomoreText = '上拉显示更多'
-						} else {
-							this.pullUpOn = true
-							this.loadding = false
-							this.nomoreText = '已至底部'
-						}
+		async GetSellerClubList() {
+			try{
+				this.listQuery.pageNum = 1
+				const res  = await this.SellerService.sellerClubList(this.listQuery)
+				const data = res.data
+				if (data.list && data.list.length > 0) {
+					this.isEmpty = false
+					this.hasNextPage = data.hasNextPage
+					this.clubList = data.list
+					this.pullFlag = false
+					setTimeout(() => {
+						this.pullFlag = true
+					}, 500)
+					if (this.hasNextPage) {
+						this.pullUpOn = false
+						this.nomoreText = '上拉显示更多'
 					} else {
-						this.isEmpty = true
+						this.pullUpOn = true
+						this.loadding = false
+						this.nomoreText = '已至底部'
 					}
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+				} else {
+					this.isEmpty = true
+				}
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
+				
 		},
-		getOnReachBottomData() {
-			this.listQuery.pageNum += 1
-			this.SellerService.GetSellerClubList(this.listQuery)
-				.then(response => {
-					let data = response.data
-					if (data.list && data.list.length > 0) {
-						this.hasNextPage = response.data.hasNextPage
-						this.clubList = this.clubList.concat(data.list)
-						this.clubList = this.clubList.map((el, index) => {
-							el.bubble = false
-							return el
-						})
-						this.pullFlag = false // 防上拉暴滑
-						setTimeout(() => {
-							this.pullFlag = true
-						}, 500)
-						if (this.hasNextPage) {
-							this.pullUpOn = false
-							this.nomoreText = '上拉显示更多'
-						} else {
-							this.pullUpOn = false
-							this.loadding = false
-							this.nomoreText = '已至底部'
-						}
+		async getOnReachBottomData() {
+			try{
+				this.listQuery.pageNum += 1
+				const res = await this.SellerService.sellerClubList(this.listQuery)
+				const data = res.data
+				if (data.list && data.list.length > 0) {
+					this.hasNextPage = data.hasNextPage
+					this.clubList = this.clubList.concat(data.list)
+					this.pullFlag = false // 防上拉暴滑
+					setTimeout(() => {
+						this.pullFlag = true
+					}, 500)
+					if (this.hasNextPage) {
+						this.pullUpOn = false
+						this.nomoreText = '上拉显示更多'
+					} else {
+						this.pullUpOn = false
+						this.loadding = false
+						this.nomoreText = '已至底部'
 					}
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
+				}
+			}catch(error){
+				console.log(error)
+			}
 		},
 		onShowClose() {
 			//输入框失去焦点时触发
@@ -222,20 +170,16 @@ export default {
 		},
 		handleClickOper(type, club) {
 			const pathMap = {
-				1: '/pages/seller/cart/immediately',
-				2: '/pages/seller/cart/second',
+				1: '/pages/seller/goods/list',
+				2: '/pages/seller/order/order-club-list?listType=0',
 				3: '/pages/seller/cart/buyagain',
 				4: '/pages/seller/order/create-recharge-order',
-				5: '/pages/seller/order/order-historylist?listType=0',
+				5: '/pages/seller/order/order-club-list?listType=0',
 				6: '/pages/seller/cart/coupon'
 			}
 			this.$api.setStorage('orderUserInfo', club)
 			this.$api.navigateTo(pathMap[type])
 		},
-		handleShowBubble(club, index) {
-			this.currentIndex = index
-			club.bubble = !club.bubble
-		}
 	},
 	onReachBottom() {
 		if (this.hasNextPage) {
@@ -290,7 +234,7 @@ page,
 			float: left;
 			color: #999999;
 		}
-		.icon-shanchu1 {
+		.icon-shanchu2 {
 			font-size: $font-size-32;
 			color: #999999;
 			position: absolute;
@@ -323,21 +267,30 @@ page,
 }
 .club-main {
 	padding-top: 122rpx;
+	.club-list{
+		width: 100%;
+		height: auto;
+		box-sizing: border-box;
+		padding: 0 24rpx;
+	}
 	.list {
 		align-items: center;
-		width: 702rpx;
+		width: 100%;
 		height: auto;
 		padding: 24rpx;
 		background: #ffffff;
 		position: relative;
-		border-bottom: 1px solid #ebebeb;
+		box-sizing: border-box;
+		margin: 12rpx 0;
 		float: left;
+		border-radius: 16rpx;
 		.club-list-top {
 			width: 100%;
 			height: 140rpx;
 			float: left;
 			display: flex;
 			align-items: center;
+			margin-bottom: 24rpx;
 			.list-left {
 				height: 140rpx;
 				flex: 2;
@@ -345,11 +298,11 @@ page,
 				.list-head {
 					width: 140rpx;
 					height: 140rpx;
-					border-radius: 14rpx;
+					border-radius: 8rpx;
 					image {
 						width: 140rpx;
 						height: 140rpx;
-						border-radius: 14rpx;
+						border-radius: 8rpx;
 					}
 				}
 			}
@@ -358,13 +311,14 @@ page,
 				flex: 8;
 				display: flex;
 				flex-direction: column;
+				box-sizing: border-box;
+				padding-left: 24rpx;
 				.list-title {
 					flex: 2;
 					line-height: 80rpx;
 					width: 100%;
-					font-size: $font-size-28;
+					font-size: $font-size-30;
 					color: $text-color;
-					padding-left: 11rpx;
 					flex-direction: row;
 					justify-content: flex-start;
 					.list-name {
@@ -379,179 +333,49 @@ page,
 						-webkit-box-orient: vertical;
 						-webkit-line-clamp: 1;
 						overflow: hidden;
-					}
-					.tags {
-						display: inline-block;
-						height: 36rpx;
-						padding: 0 15rpx;
-						border-radius: 8rpx;
-						background: #f0cb72;
-						font-size: $font-size-22;
-						color: #4e4539;
-						text-align: center;
-						line-height: 36rpx;
-						margin-left: 10rpx;
-						margin-right: 10rpx;
-						&.sv {
-							background: #333333;
-							color: #f0cb72;
-						}
-					}
-					.list-hist {
-						display: block;
-						float: right;
-						color: #1890f9;
-						font-size: $font-size-24;
-						text-align: right;
-						padding-right: 30rpx;
-						.icon-dingdanxuanzhong {
-							font-size: $font-size-34;
-							color: #1890f9;
-						}
+						font-weight: bold;
 					}
 				}
-				.list-opea {
+				.list-ntel {
 					width: 100%;
-					display: flex;
-					flex: 4;
-					color: #166ce1;
-					flex-direction: row;
-					align-items: center;
-					.tags {
+					height: 50rpx;
+					float: left;
+					line-height: 50rpx;
+					text-align: left;
+					font-size: $font-size-26;
+					color: #666666;
+					.list-link {
 						display: inline-block;
-						height: 36rpx;
-						padding: 0 15rpx;
-						border-radius: 8rpx;
-						background: #f0cb72;
-						font-size: $font-size-22;
-						color: #4e4539;
-						text-align: center;
-						line-height: 36rpx;
-						margin-left: 10rpx;
-						margin-right: 10rpx;
-						&.sv {
-							background: #333333;
-							color: #f0cb72;
-						}
-						&.sm {
-							display: inline-block;
-							height: 36rpx;
-							box-sizing: border-box;
-							padding: 0 8rpx 0 15rpx;
-							border-radius: 8rpx;
-							background: #faede5;
-							font-size: $font-size-22;
-							color: $color-system;
-							text-align: center;
-							line-height: 36rpx;
-							margin-right: 10rpx;
-							.icon-xiayibu {
-								font-size: 20rpx;
-								margin-left: 10rpx;
-							}
-						}
+						float: left;
+						margin-right: 40rpx;
+					}
+					.list-texl {
+						display: inline-block;
+						float: left;
 					}
 				}
 			}
 		}
 		.club-list-bot {
 			width: 100%;
-			height: 80rpx;
+			height: auto;
+			border-top: 1px solid #e1e1e1;
+			padding-top: 24rpx;
 			float: left;
-			background-color: #f7f7f7;
-			border-radius: 8rpx;
-			margin-top: 20rpx;
 			.btn {
-				height: 80rpx;
+				width: 50%;
+				line-height: 48rpx;
 				box-sizing: border-box;
-				line-height: 80rpx;
-				padding: 0 28rpx;
-				font-size: $font-size-24;
-				color: #333333;
 				text-align: center;
+				font-size: $font-size-28;
 				float: left;
-				position: relative;
-				&:nth-child(1) {
-					&:before {
-						content: '';
-						width: 1px;
-						height: 20rpx;
-						background-color: #b2b2b2;
-						position: absolute;
-						right: 0;
-						top: 30rpx;
-					}
-				}
-				&:nth-child(2) {
-					&:before {
-						content: '';
-						width: 1px;
-						height: 20rpx;
-						background-color: #b2b2b2;
-						position: absolute;
-						right: 0;
-						top: 30rpx;
-					}
-				}
-				&:nth-child(3) {
-					&:before {
-						content: '';
-						width: 1px;
-						height: 20rpx;
-						background-color: #b2b2b2;
-						position: absolute;
-						right: 0;
-						top: 30rpx;
-					}
-				}
-				&:last-child {
-					padding: 0 36rpx;
-					.iconfont {
-						font-weight: bold;
-					}
-					.btn-bubble {
-						width: 200rpx;
-						height: 160rpx;
-						background: rgba(51, 51, 51, 0.8);
-						position: absolute;
-						top: -154rpx;
-						right: 0;
-						border-radius: 8rpx;
-						&:before {
-							content: '';
-							width: 0;
-							height: 0;
-							border: 15rpx solid transparent;
-							border-top: 15rpx solid rgba(51, 51, 51, 0.8);
-							position: absolute;
-							bottom: -28rpx;
-							right: 42rpx;
-						}
-						.btn-view {
-							width: 100%;
-							height: 80rpx;
-							box-sizing: border-box;
-							line-height: 80rpx;
-							font-size: $font-size-24;
-							color: #ffffff;
-							text-align: center;
-							float: left;
-							.iconfont {
-								font-size: 28rpx;
-								color: #ffffff;
-								margin-right: 5rpx;
-								font-weight: normal;
-							}
-							&.border {
-								border-bottom: 1px solid rgba(255, 255, 255, 0.3);
-							}
-						}
-					}
+				font-weight: bold;
+				&.btn1 {
+					color: #666666;
+					border-right: 1px solid #e1e1e1;
 				}
-				.iconfont {
-					font-size: 30rpx;
-					color: #333333;
-					margin-right: 5rpx;
+				&.btn2 {
+					color: #F3B574;
 				}
 			}
 		}

+ 383 - 0
pages/seller/goods/components/cm-unit-popup.vue

@@ -0,0 +1,383 @@
+<template name="cm-parameter">
+	<!-- 相关规格 -->
+	<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup">
+		<view class="tui-popup-box clearfix">
+			<view class="tui-shopping-main" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+				<view class="tui-sku-title">
+					<view class="tui-sku-image"> <image :src="skuProduct.mainImage" mode=""></image> </view>
+					<view class="tui-sku-price">
+						<view class="sku-price-viw">
+							<view
+								class="sku-price-text">
+								¥{{skuProductPrice | NumFormat}}
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="tui-sku-unit">
+					<view class="sku-unit-h1">规格:</view>
+					<view class="sku-unit-li">
+						<view
+							class="unit-li"
+							v-for="(sku, index) in skuList"
+							@click="handleChoisSku(sku, index)"
+							:key="index"
+							:class="skuIndex === index ? 'active' : ''"
+						>
+							{{ sku.unit }} 
+						</view>
+					</view>
+				</view>
+				<view class="sku-unit-nunbox">
+					<view class="sku-unit-nunbox-t">
+						<view class="sku-unit-nunbox-text">购买数量:</view>
+						<view class="sku-unit-nunbox-num">
+							<view class="number-box">
+								<view
+									class="iconfont icon-jianhao"
+									@click="changeCountSub"
+									:class="[isQuantity ? 'disabled' : '']"
+								></view>
+								<input
+									class="btn-input"
+									type="number"
+									v-model="productCount"
+									maxlength="4"
+									@blur="changeNumber($event)"
+									cursor-spacing="40"
+								/>
+								<view
+									class="iconfont icon-jiahao"
+									@click="changeCountAdd"
+									:class="[isStock == true ? 'disabled' : '']"
+								></view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</view>
+			<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
+				<view class="tui-modal-flex">
+					<button
+						class="tui-modal-button confirm"
+						@click="handleBuyConfirm"
+						:disabled="isBtnDisabled"
+						:class="[isBtnDisabled ? 'disabled' : '']"
+					>
+						加入购物车
+					</button>
+				</view>
+			</view>
+		</view>
+	</tui-bottom-popup>
+</template>
+
+<script>
+import { mapState, mapMutations } from 'vuex'
+export default {
+	name: 'cm-unit-popup',
+	props: {
+		skuProduct: {
+			type: Object
+		},
+		popupShow: {
+			type: Boolean,
+			default: false
+		},
+		type: {
+			type: Number,
+			default: 1
+		}
+	},
+	data() {
+		return {
+			skuIndex: 0,
+			isStock: false, //
+			isQuantity: false, 
+			handleMinNumber: 1, // 规格起订量
+			productCount: 0,
+			skuList: [],
+			unitParams: {
+				skuId: 0,
+				productCount: 1
+			},
+			isBtnDisabled: false,
+			skuProductPrice:''
+		}
+	},
+	filters: {
+		NumFormat(value) {
+			//处理金额
+			return Number(value).toFixed(2)
+		}
+	},
+	created() {
+		this.initData()
+	},
+	computed: {
+		...mapState(['hasLogin'])
+	},
+	methods: {
+		async initData() {
+			this.skuList = this.skuProduct.sku
+			this.productCount = this.skuList[0].minBuyNumber
+			this.skuProductPrice =this.skuList[0].price
+			this.unitParams.skuId = this.skuList[0].skuId
+			this.handleMinNumber = this.skuList[0].minBuyNumber
+		},
+		//popup弹窗数量增加按钮
+		changeCountAdd() {
+			this.productCount++
+		},
+		//popup弹窗数量减按钮
+		changeCountSub() {
+			if (this.productCount <= this.handleMinNumber) {
+				this.productCount = this.handleMinNumber
+				this.isQuantity = true
+				return
+			} else {
+				this.productCount--
+				this.isQuantity = false
+			}
+		},
+		changeNumber(e) {
+			let _value = e.detail.value
+			if (!this.$api.isNumber(_value)) {
+				this.productCount = this.handleMinNumber
+			} else if (_value < this.handleMinNumber) {
+				this.productCount = this.handleMinNumber
+			} else {
+				this.productCount = e.detail.value
+			}
+		},
+		handleBuyConfirm() {
+			// 监听确定选择规格
+			this.unitParams.productCount = this.productCount
+			this.$emit('addCart', this.unitParams)
+			this.hidePopup()
+		},
+		handleChoisSku(sku, index) {
+			// 选择SKU
+			this.skuIndex = index
+			this.unitParams.productCount = this.handleMinNumber = sku.minBuyNumber
+			this.unitParams.skuId = sku.skuId
+			this.skuProductPrice = sku.price
+			this.$emit('skuClick', sku)
+		},
+		hidePopup() {
+			this.$parent.popupShow1 = false
+		}
+	}
+}
+</script>
+
+<style lang="scss">
+.tui-popup-box {
+	padding: 40rpx 24rpx 0 24rpx;
+}
+.tui-shopping-main {
+	width: 100%;
+	.tui-sku-title {
+		width: 100%;
+		height: 136rpx;
+		float: left;
+		margin-bottom: 30rpx;
+		.tui-sku-image {
+			width: 138rpx;
+			height: 138rpx;
+			float: left;
+			border-radius: 8rpx;
+			margin-right: 30rpx;
+			box-sizing: border-box;
+			border: 1px dashed #e1e1e1;
+			image {
+				width: 134rpx;
+				height: 134rpx;
+				border-radius: 10rpx;
+			}
+		}
+		.tui-sku-price {
+			height: 136rpx;
+			float: left;
+			.sku-price-viw {
+				width: 100%;
+				height: 40rpx;
+				margin-bottom: 24rpx;
+				.sku-price-text {
+					font-size: 28rpx;
+					line-height: 40rpx;
+					color: #f94b4b;
+					font-weight: bold;
+					.sku-price-l {
+						float: left;
+						font-weight: normal;
+					}
+					&.none {
+						text-decoration: line-through;
+						color: #999999;
+						font-weight: normal;
+					}
+				}
+			}
+			.sku-price-vip {
+				width: 100%;
+				height: 40rpx;
+			}
+		}
+	}
+	.tui-sku-unit {
+		width: 100%;
+		height: auto;
+		float: left;
+		.sku-unit-h1 {
+			font-size: 28rpx;
+			line-height: 40rpx;
+			color: #333333;
+			font-weight: bold;
+		}
+		.sku-unit-li {
+			width: 100%;
+			height: auto;
+			.unit-li {
+				padding: 0 24rpx;
+				line-height: 48rpx;
+				text-align: center;
+				font-size: 24rpx;
+				color: #666666;
+				background: #f5f5f5;
+				float: left;
+				margin-right: 16rpx;
+				margin-top: 12rpx;
+				margin-bottom: 12rpx;
+				border-radius: 24rpx;
+				position: relative;
+				box-sizing: border-box;
+				border: 1px solid #f5f5f5;
+				&.active {
+					border-color: $color-system;
+					background: #fff1eb;
+					color: $color-system;
+					.tips {
+						background: #F3B574;
+					}
+				}
+				.tips {
+					padding: 0 10rpx;
+					line-height: 32rpx;
+					text-align: center;
+					font-size: 22rpx;
+					color: #ffffff;
+					background: #cccccc;
+					float: left;
+					border-radius: 16rpx;
+					position: absolute;
+					right: -12rpx;
+					top: -15rpx;
+				}
+			}
+		}
+	}
+	.sku-unit-nunbox {
+		justify-content: space-between;
+		align-items: center;
+		width: 100%;
+		height: auto;
+		float: left;
+		margin-top: 30rpx;
+		.sku-unit-nunbox-t {
+			width: 100%;
+			height: 44rpx;
+			position: relative;
+			margin-bottom: 20rpx;
+			.text {
+				font-size: $font-size-24;
+				line-height: 48rpx;
+				color: #999999;
+			}
+			.sku-unit-nunbox-text {
+				line-height: 44rpx;
+				font-size: $font-size-28;
+				float: left;
+				font-weight: bold;
+			}
+			.sku-unit-nunbox-num {
+				float: right;
+				.number-box {
+					display: flex;
+					justify-content: center;
+					align-items: center;
+					border: 2rpx solid #D5D5D5;
+					border-radius: 30rpx;
+					height: 48rpx;
+					margin-left: 20rpx;
+					.iconfont {
+						font-size: $font-size-24;
+						padding: 0 18rpx;
+						color: #333333;
+						text-align: center;
+						line-height: 48rpx;
+						font-weight: bold;
+						background: #F7F7F7;
+						&.icon-jianhao {
+							border-radius: 30rpx 0 0 30rpx;
+							&.disabled {
+								background: #f5f5f5;
+							}
+						}
+						&.icon-jiahao {
+							border-radius: 0 30rpx 30rpx 0;
+							&.disabled {
+								background: #f5f5f5;
+							}
+						}
+					}
+					.btn-input {
+						width: 62rpx;
+						height: 48rpx;
+						line-height: 48rpx;
+						background: #ffffff;
+						border-radius: 4rpx;
+						text-align: center;
+						font-size: $font-size-28;
+					}
+				}
+			}
+		}
+	}
+}
+.tui-popup-btn {
+	width: 100%;
+	float: left;
+	.tui-modal-flex {
+		width: 100%;
+		height: 84rpx;
+		margin-top: 40rpx;
+		display: flex;
+		.tui-modal-button {
+			flex: 1;
+			line-height: 84rpx;
+			font-size: $font-size-28;
+			text-align: center;
+			border-radius: 42rpx;
+			padding: 0;
+			margin: 0 15rpx;
+			box-sizing: border-box;
+			&.cancel {
+				background: #FFF4E6;
+				color: #F3B574;
+				&.disabled {
+					background-color: #e1e1e1;
+					color: #ffffff;
+				}
+			}
+			&.confirm {
+				background: $btn-confirm;
+				color: #ffffff;
+				&.disabled {
+					background: rgba(243,181,116,0.5);
+				}
+			}
+		}
+	}
+}
+</style>

+ 644 - 0
pages/seller/goods/list.vue

@@ -0,0 +1,644 @@
+<template>
+	<view class="container product clearfix">
+		<view class="club-search clearfix">
+			<view class="search-from name">
+				<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+				<input
+					class="input"
+					type="text"
+					confirm-type="search"
+					v-model="listQuery.productName"
+					@confirm="getMallProduct"
+					placeholder="搜索商品"
+					maxlength="12"
+				/>
+			</view>
+		</view>
+		<view class="product-content">
+			<view :class="{ 'tui-order-list': scrollTop >= 0 }" class="clearfix">
+				<!-- 空白页 -->
+				<view class="empty-container" v-if="isEmpty">
+					<image class="empty-container-image" :src="staticUrl + 'icon_like_empty@2x.png'"></image>
+					<text class="error-text">暂无相关商品~</text>
+				</view>
+				<!-- 列表 -->
+				<view class="tui-cart-cell  tui-mtop" v-for="(pros, index) in productList" :key="index">
+					<view class="tui-goods-item" @click.stop="navToDetailPage(pros.productId)">
+						<view class="tui-goods-main">
+							<view class="tui-goods-image"> <image :src="pros.mainImage" class="tui-goods-img" /> </view>
+							<view class="tui-goods-info">
+								<text class="list-details-title">{{ pros.name }}</text>
+								<view class="list-details-price">
+									<view class="list-price">
+										<text class="price-larger"> ¥{{ pros.price | NumFormat }} </text>
+									</view>
+									<view class="add-cart-btn" @click.stop="showPopup(pros)">数量</view>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+				<!--加载loadding-->
+				<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
+				<tui-nomore :visible="!pullUpOn" :backgroundColor="'#ffffff'" :text="nomoreText"></tui-nomore>
+				<!--加载loadding-->
+			</view>
+		</view>
+		<!-- 选择规格弹窗 -->
+		<cm-unit-popup
+			v-if="popupShow1"
+			:popupShow="popupShow1"
+			:skuProduct="handleData"
+			@skuClick="handleSkuClick"
+			@addCart="handleAddClubCart"
+		/>
+		<!-- 弹窗提示 -->
+		<tui-modal
+			:show="modal"
+			@click="handleClick"
+			@cancel="hideMobel"
+			:content="contentModalText"
+			:button="modalButton"
+			color="#333"
+			:size="32"
+			shape="circle"
+			:maskClosable="false"
+		>
+		</tui-modal>
+		<!-- 可拖动悬浮按钮 -->
+		<cm-drag
+			:cartNum="cartQuantity"
+			:isDock="true"
+			:existTabBar="true"
+			@btnClick="btnClick"
+			@btnTouchstart="btnTouchstart"
+			@btnTouchend="btnTouchend"
+		/>
+	</view>
+</template>
+<script>
+import cmDrag from '@/components/cm-custom/cm-drag.vue'
+import cmUnitPopup from './components/cm-unit-popup.vue'
+
+import { mapState, mapMutations } from 'vuex'
+const defaultListQuery = {
+	productName: '',
+	pageNum: 1,
+	pageSize: 10
+}
+export default {
+	components: {
+		cmDrag,
+		cmUnitPopup
+	},
+	data() {
+		return {
+			staticUrl: this.global.staticUrl,
+			isIphoneX: this.$store.state.isIphoneX,
+			modalButton: [
+				{
+					text: '取消',
+					type: 'gray',
+					plain: true //是否空心
+				},
+				{
+					text: '确认',
+					customStyle: {
+						color: '#fff',
+						bgColor: 'linear-gradient(90deg, #F28F31 0%, #F3B574 100%)'
+					},
+					plain: false
+				}
+			],
+			cartQuantity: 0,
+			popupShow1: false,
+			listQuery: Object.assign({}, defaultListQuery),
+			productList: [],
+			handleData: {},
+			scrollTop: 0,
+			isEmpty: false,
+			loadding: false,
+			pullUpOn: true,
+			pullFlag: true,
+			hasNextPage: false,
+			navbarHeight: '',
+			nomoreText: '上拉显示更多',
+			contentModalText: '', //操作文字提示语句
+			modal: false,
+			addParams: {
+				serviceProviderId: 0, //协销Id
+				skuId: 0,
+				clubId: 0,
+				productCount: 1,
+				type: 1
+			}
+		}
+	},
+	onLoad() {
+		this.initGetStotage()
+	},
+	filters: {
+		NumFormat: function(value) {
+			//处理金额
+			if (!value) return '0.00'
+			let number = Number(value).toFixed(2)
+			return number
+		}
+	},
+	computed: {
+		...mapState(['hasLogin', 'userInfo'])
+	},
+	methods: {
+		...mapMutations(['login', 'logout']),
+		async initGetStotage() {
+			const clubInfo = await this.$api.getComStorage('orderUserInfo')
+			const userInfo = await this.$api.getStorage()
+			this.addParams.clubId = clubInfo.clubId ? clubInfo.clubId : 0
+			this.addParams.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
+			this.getMallProduct()
+			this.getClubProductNum()
+		},
+		async getMallProduct() {
+			try {
+				this.productList = []
+				this.listQuery.pageNum = 1
+				const res = await this.SellerService.mallProduct(this.listQuery)
+				const data = res.data
+				if (data.results && data.results.length > 0) {
+					this.isEmpty = false
+					this.hasNextPage = data.hasNextPage
+					this.productList = data.results
+					this.pullFlag = false
+					setTimeout(() => {
+						this.pullFlag = true
+					}, 500)
+					if (this.hasNextPage) {
+						this.pullUpOn = false
+						this.nomoreText = '上拉显示更多'
+					} else {
+						if (this.productList.length < 8) {
+							this.pullUpOn = true
+						} else {
+							this.pullUpOn = false
+							this.loadding = false
+							this.nomoreText = '已至底部'
+						}
+					}
+				} else {
+					this.isEmpty = true
+				}
+			} catch (error) {
+				this.$util.msg(error.msg, 2000)
+			}
+		},
+		async onReachBottomData(index) {
+			//上拉加载
+			try {
+				this.listQuery.pageNum += 1
+				const res = await this.SellerService.mallProduct(this.listQuery)
+				const data = res.data
+				if (data.results && data.results.length > 0) {
+					this.hasNextPage = data.hasNextPage
+					this.productList = this.productList.concat(data.results)
+					this.pullFlag = false // 防上拉暴滑
+					setTimeout(() => {
+						this.pullFlag = true
+					}, 500)
+					if (this.hasNextPage) {
+						this.pullUpOn = false
+						this.nomoreText = '上拉显示更多'
+					} else {
+						this.pullUpOn = false
+						this.loadding = false
+						this.nomoreText = '已至底部'
+					}
+				}
+			} catch (error) {
+				this.$util.msg(error.msg, 2000)
+			}
+		},
+		handleAddClubCart(data) {
+			//增加购物车成功和toast弹窗提示成功
+			this.addParams = { ...this.addParams, ...data }
+			this.shoppingAddCart(this.addParams)
+		},
+		async shoppingAddCart(params) {
+			try {
+				await this.SellerService.sellerAddCart(params)
+				this.$util.msg('加入购物车成功', 1500, true, 'success')
+				this.getClubProductNum()
+			} catch (error) {
+				console.log('error', error.msg)
+			}
+		},
+		handleSkuClick(sku) {
+			// this.handleData.price = sku.price
+		},
+		async getClubProductNum() {
+			// 获取协销下机构购物车数量
+			try {
+				const res = await this.SellerService.clubCartCount({
+					clubId: this.addParams.clubId,
+					serviceProviderId: this.addParams.serviceProviderId
+				})
+				this.cartQuantity = res.data
+			} catch (error) {
+				console.log('获取机构购物车数量失败')
+			}
+		},
+		handleClick(e) {
+			//取消收藏
+			if (e.index == 1) {
+				this.handleDeleteUserLike()
+			}
+			this.modal = false
+		},
+		handleDeleteUserLike() {
+			//操作取消收藏
+			this.ProductService.getDeleteUserLike({
+				productIds: this.productIds,
+				userId: this.listQuery.userId
+			})
+				.then(response => {
+					this.$util.msg('取消收藏成功', 2000, true, 'success')
+					setTimeout(() => {
+						this.getMallProduct()
+					}, 2000)
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		hideMobel() {
+			this.modal = false
+		},
+		showPopup(pros) {
+			// 弹窗显示
+			this.popupShow1 = true
+			this.handleData = pros
+		},
+		navToDetailPage(id) {
+			this.isModallayer = true
+			this.$api.navigateTo(`/pages/goods/product?id=${id}`)
+			this.isModallayer = false
+		},
+		btnClick() {
+			this.$api.navigateTo('/pages/seller/cart/index')
+		},
+		btnTouchstart() {
+			// console.log('btnTouchstart');
+		},
+		btnTouchend() {
+			// console.log('btnTouchend');
+		}
+	},
+	onPageScroll(e) {
+		//实时获取到滚动的值
+	},
+	onReachBottom() {
+		if (this.hasNextPage) {
+			this.loadding = true
+			this.pullUpOn = true
+			this.onReachBottomData()
+		}
+	},
+	onPullDownRefresh() {
+		setTimeout(() => {
+			this.listQuery.pageNum = 1
+			uni.stopPullDownRefresh()
+		}, 200)
+	},
+	onShow() {}
+}
+</script>
+
+<style lang="scss">
+@import '@/uni.scss';
+page {
+	background: #fff;
+}
+.empty-container {
+	z-index: 9999;
+}
+.club-search {
+	height: 114rpx;
+	width: 100%;
+	padding: 24rpx;
+	box-sizing: border-box;
+	background: #ffffff;
+	display: flex;
+	align-items: center;
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 99999;
+	.search-from {
+		width: 100%;
+		height: 66rpx;
+		background: #f7f7f7;
+		border-radius: 34rpx;
+		float: left;
+		position: relative;
+		box-sizing: border-box;
+		padding: 0 24rpx 0 80rpx;
+		.icon-iconfonticonfontsousuo1 {
+			width: 80rpx;
+			height: 66rpx;
+			line-height: 66rpx;
+			text-align: center;
+			display: block;
+			font-size: $font-size-38;
+			color: #999999;
+			position: absolute;
+			left: 0;
+			top: 0;
+		}
+		.input {
+			width: 100%;
+			height: 66rpx;
+			float: left;
+			line-height: 66rpx;
+			color: $text-color;
+			font-size: $font-size-24;
+		}
+	}
+}
+.mine {
+	width: 100%;
+	height: 100%;
+	position: relative;
+}
+.product-content {
+	width: 100%;
+	height: auto;
+	position: relative;
+	padding: 0;
+	padding-top: 114rpx;
+	box-sizing: border-box;
+	.empty-container-image {
+		width: 386rpx;
+		height: 286rpx;
+		margin-top: -300rpx;
+	}
+}
+.tui-goods-item {
+	padding: 30rpx 20rpx 0 20rpx;
+	box-sizing: border-box;
+	position: relative;
+	.tui-goods-main {
+		display: flex;
+		width: 100%;
+		height: 100%;
+		border-bottom: 1px solid #f0f0f0;
+		padding-bottom: 24rpx;
+	}
+}
+.tui-goods-image {
+	width: 180rpx;
+	height: 180rpx !important;
+	border: 2rpx solid #f3f3f3;
+	border-radius: 12rpx;
+	position: relative;
+	border: 2rpx solid #f3f3f3;
+	.tui-goods-img {
+		width: 180rpx;
+		height: 180rpx !important;
+		border-radius: 12rpx;
+		flex-shrink: 0;
+		display: block;
+	}
+}
+.tui-goods-info {
+	padding-left: 20rpx;
+	box-sizing: border-box;
+	position: relative;
+	width: 540rpx;
+	.list-details-title {
+		line-height: 38rpx;
+		text-overflow: ellipsis;
+		overflow: hidden;
+		display: -webkit-box;
+		-webkit-line-clamp: 2;
+		line-clamp: 2;
+		-webkit-box-orient: vertical;
+		font-size: 26rpx;
+		color: #333333;
+	}
+	.list-details-price {
+		width: 100%;
+		line-height: 54rpx;
+		float: left;
+		margin-top: 98rpx;
+		.list-price {
+			color: #ff2a2a;
+			float: left;
+			line-height: 54rpx;
+			align-items: center;
+			justify-content: center;
+			.price-larger {
+				font-size: $font-size-30;
+				display: inline-block;
+				&.none {
+					text-decoration: line-through;
+					color: #999999;
+				}
+			}
+		}
+		.add-cart-btn {
+			float: right;
+			width: 160rpx;
+			height: 56rpx;
+			line-height: 56rpx;
+			border-radius: 30rpx;
+			color: #fff;
+			font-size: 24rpx;
+			margin-right: 0;
+			background: #f3b574;
+			color: #ffffff;
+			text-align: center;
+		}
+	}
+}
+.tui-popup-box {
+	position: relative;
+	box-sizing: border-box;
+	min-height: 168rpx;
+	padding: 6rpx 24rpx;
+	.tui-popup-content {
+		padding-top: 30rpx;
+	}
+}
+.layer-smimg {
+	width: 114rpx;
+	height: 114rpx;
+	float: left;
+	border-radius: 10rpx;
+	margin-right: 24rpx;
+	image {
+		width: 114rpx;
+		height: 114rpx;
+		border-radius: 10rpx;
+	}
+}
+.layer-nunbox {
+	justify-content: space-between;
+	align-items: center;
+	width: 536rpx;
+	height: 88rpx;
+	padding: 13rpx 0 0 0;
+	float: left;
+	.layer-nunbox-t {
+		width: 100%;
+		height: 44rpx;
+		position: relative;
+		display: flex;
+		.layer-nunbox-text {
+			line-height: 44rpx;
+			font-size: $font-size-28;
+		}
+		.number-box {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			border: 2rpx solid #ffe6dc;
+			border-radius: 30rpx;
+			height: 48rpx;
+			margin-left: 20rpx;
+			.iconfont {
+				font-size: $font-size-24;
+				padding: 0 18rpx;
+				color: #333333;
+				text-align: center;
+				line-height: 48rpx;
+				font-weight: bold;
+				background: #fef6f3;
+				&.icon-jianhao {
+					border-radius: 30rpx 0 0 30rpx;
+				}
+				&.icon-jiahao {
+					border-radius: 0 30rpx 30rpx 0;
+				}
+			}
+			.btn-input {
+				width: 62rpx;
+				height: 48rpx;
+				line-height: 48rpx;
+				background: #ffffff;
+				border-radius: 4rpx;
+				text-align: center;
+				font-size: $font-size-28;
+			}
+		}
+		.product-step {
+			position: absolute;
+			left: 45rpx;
+			bottom: 0;
+			height: 44rpx;
+			background: #ffffff;
+		}
+	}
+	.layer-nunbox-b {
+		width: 100%;
+		height: 44rpx;
+		margin-top: 13rpx;
+	}
+	.text {
+		line-height: 44rpx;
+		font-size: $font-size-28;
+		.p {
+			color: #ff2a2a;
+		}
+		.p:first-child {
+			margin-left: 30rpx;
+		}
+		.p.sm {
+			font-size: $font-size-24;
+		}
+	}
+}
+.tui-popup-btn {
+	width: 100%;
+	height: auto;
+	float: left;
+	box-sizing: border-box;
+	margin-top: 30rpx;
+	.superv-header-checked {
+		float: left;
+		font-size: $font-size-30;
+		.oltext {
+			width: 120rpx;
+			float: left;
+			color: #666666;
+			display: flex;
+			margin-left: 10rpx;
+			.checkbox {
+				display: flex;
+				margin: 0;
+				padding: 0;
+				display: flex;
+				flex-direction: column;
+				align-items: center;
+				box-sizing: border-box;
+				text-align: center;
+				text-decoration: none;
+				border-radius: 0;
+				-webkit-tap-highlight-color: transparent;
+				overflow: hidden;
+				font-size: 34rpx;
+				color: $color-system;
+				line-height: 80rpx;
+			}
+			.text {
+				float: left;
+				line-height: 80rpx;
+				margin-left: 15rpx;
+			}
+		}
+		.ortext {
+			width: 120rpx;
+			float: right;
+			color: $color-system;
+			text-align: right;
+		}
+	}
+	.tui-button {
+		width: 210rpx;
+		height: 88rpx;
+		float: right;
+		background: #e1e1e1;
+		line-height: 88rpx;
+		text-align: center;
+		color: #ffffff;
+		font-size: $font-size-28;
+		border-radius: 44rpx;
+		&.active {
+			background: $btn-confirm;
+		}
+	}
+	.tui-flex-btn {
+		width: 100%;
+		height: 88rpx;
+		display: flex;
+		box-sizing: border-box;
+		padding: 0 34rpx;
+		.button {
+			width: 280rpx;
+			height: 88rpx;
+			color: #fff;
+			display: flex;
+			align-items: center;
+			justify-content: center;
+			font-size: $font-size-28;
+			border-radius: 44rpx;
+			&.buy {
+				background: $btn-confirm;
+				margin-left: 78rpx;
+			}
+			&.add {
+				background: #ffe6dc;
+				color: #f3b574;
+			}
+		}
+	}
+}
+</style>

+ 11 - 8
pages/seller/index/components/home.vue

@@ -1,5 +1,6 @@
 <template>
 	<view class="container home clearfix">
+		<cu-custom :navbar-data='nvabarData'></cu-custom>
 		<!-- 主页内容 -->
 		<tui-skeleton
 			v-if="!skeletonShow"
@@ -8,7 +9,7 @@
 			:isLoading="true"
 			:loadingType="5"
 		></tui-skeleton>
-		<view class="container-home tui-skeleton">
+		<view class="container-home tui-skeleton" :style="{paddingTop: CustomBar + 'px',paddingBottom: isIphoneX ? '140rpx' : '98rpx'}">
 			<!-- 轮播 -->
 			<banner :list="bannerList" v-if="skeletonShow"></banner>
 			<!-- 金刚区菜单 -->
@@ -25,11 +26,11 @@
 
 <script>
 import { mapState, mapMutations } from 'vuex'
-import banner from './components/banner.vue'
-import navbars from './components/navbars.vue'
-import hotmode from './components/hotmode.vue'
-import floors from './components/floors.vue'
-import homeMiXins from './index.js'
+import banner from './banner.vue'
+import navbars from './navbars.vue'
+import hotmode from './hotmode.vue'
+import floors from './floors.vue'
+import homeMiXins from '../index.js'
 export default {
 	mixins: [ homeMiXins ], 
 	components: {
@@ -38,7 +39,9 @@ export default {
 		hotmode,
 		floors
 	},
-	onLoad() {},
+	created() {
+		this.mallOrganizeHome()
+	},
 	onPageScroll(e) {
 		//实时获取到滚动的值
 		if (e.scrollTop > 400) {
@@ -64,7 +67,7 @@ export default {
 		}
 	},
 	onShow() {
-		this.authApplets()
+		
 	},
 	onHide() {
 	}

+ 81 - 184
pages/seller/index/components/user.vue

@@ -12,21 +12,20 @@
 				}"
 			>
 				<view class="header-main" v-if="hasLogin">
+					<view class="header-icon" @click="TestZHIboFn()">
+						<image :src="staticUrl + 'icon_default_seller@2x.png'" mode=""></image>
+					</view>
 					<view class="header-text">
-						<view class="user-item">
-							<text class="u-h1">{{ name }}</text>
-						</view>
-						<view class="user-item"> <text class="u-tips">协销人员</text> </view>
+						<view class="user-item"
+							><text class="user-item-none">{{ name | nameFilters }}</text></view
+						>
 					</view>
-					<view class="header-icon" @click="TestZHIboFn()"
-						><image src="https://static.caimei365.com/app/img/icon/icon-seller@3x.png" mode=""></image
-					></view>
 				</view>
 				<!-- 订单 -->
 				<view class="user-order">
 					<view class="tab-title" @click="navigator('/pages/seller/order/order-list?listType=0')">
 						<text class="cell-tit">我的订单</text> <text class="cell-more">全部订单</text>
-						<text class="iconfont icon-xiayibu"></text>
+						<text class="iconfont icon-xiangyou"></text>
 					</view>
 					<view class="order-section">
 						<view
@@ -36,7 +35,7 @@
 							:hover-stay-time="50"
 						>
 							<view class="order-icon">
-								<image src="https://static.caimei365.com/app/img/icon/order5@3x.png" mode=""></image>
+								<image :src="staticUrl + 'icon_order_1@2x.png'" mode=""></image>
 								<text
 									v-if="beforeConfirmCount > 0"
 									class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
@@ -54,7 +53,7 @@
 							:hover-stay-time="50"
 						>
 							<view class="order-icon">
-								<image src="https://static.caimei365.com/app/img/icon/order1@3x.png" mode=""></image>
+								<image :src="staticUrl + 'icon_order_2@2x.png'" mode=""></image>
 								<text
 									v-if="beforePayCount > 0"
 									class="uni-badge uni-badge-error uni-small uni-badge--small icon-num "
@@ -72,13 +71,13 @@
 							:hover-stay-time="50"
 						>
 							<view class="order-icon">
-								<image src="https://static.caimei365.com/app/img/icon/order2@3x.png" mode=""></image>
+								<image :src="staticUrl + 'icon_order_3@2x.png'" mode=""></image>
 								<text
 									v-if="beforeShipCount > 0"
 									class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
 									:class="[beforeShipCount < 10 ? 'goleft' : '']"
-							>
-										{{ beforeShipCount >= 99 ? '99+' : beforeShipCount }}
+								>
+									{{ beforeShipCount >= 99 ? '99+' : beforeShipCount }}
 								</text>
 							</view>
 							<text class="order-t">待发货</text>
@@ -90,7 +89,7 @@
 							:hover-stay-time="50"
 						>
 							<view class="order-icon">
-								<image src="https://static.caimei365.com/app/img/icon/order3@3x.png" mode=""></image>
+								<image :src="staticUrl + 'icon_order_4@2x.png'" mode=""></image>
 								<text
 									v-if="shippedCount > 0"
 									class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
@@ -108,7 +107,7 @@
 							:hover-stay-time="50"
 						>
 							<view class="order-icon">
-								<image src="https://static.caimei365.com/app/img/icon/order4@3x.png" mode=""></image>
+								<image :src="staticUrl + 'icon_order_5@2x.png'" mode=""></image>
 								<text
 									v-if="refundsCount > 0"
 									class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
@@ -124,52 +123,37 @@
 			</view>
 			<!-- 底部跳转 -->
 			<view class="foot-list">
-				<!-- <view class="list-cell-image" @click="navigator('/pages/user/coupon/coupon-activity')">
-					<view class="text">
-						<view class="h1">美博会</view>
-						<view class="p">大额好券等你来领~</view>
-					</view>
-				</view> -->
 				<view class="list-cell-item">
 					<view
 						class="list-cell"
-						v-for="(item, index) in firstList"
+						v-for="(item, index) in twoList"
 						:key="index"
 						@click="navigator(item.path)"
 						hover-class="cell-hover"
 						:hover-stay-time="50"
 					>
 						<view class="cell-icon">
-							<image class="cell-icon-image" :src="item.icon" mode=""></image>
+							<image class="cell-icon-image" :src="staticUrl + item.icon" mode=""></image>
 						</view>
 						<text class="cell-tit">{{ item.name }}</text>
-						<text
-							v-if="index == 1 && orderNum > 0"
-							class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
-						>
-							{{ orderNum == 99 ? '99+' : orderNum }}
-						</text>
-						<text class="cell-more iconfont icon-xiayibu"></text>
+						<text class="cell-more iconfont icon-xiangyou"></text>
 					</view>
-				</view>
-				<view class="list-cell-item">
-					<view
-						class="list-cell"
-						v-for="(item, index) in twoList"
-						:key="index"
-						@click="navigator(item.path)"
-						hover-class="cell-hover"
-						:hover-stay-time="50"
-					>
+					<!-- #ifdef MP-WEIXIN -->
+					<button class="list-cell" open-type="contact" @bindcontact="handleContact">
 						<view class="cell-icon">
-							<image class="cell-icon-image" :src="item.icon" mode=""></image>
+							<image class="cell-icon-image" :src="staticUrl + 'icon_club_5@2x.png'" mode=""></image>
 						</view>
-						<text class="cell-tit">{{ item.name }}</text>
-						<text class="cell-more iconfont icon-xiayibu"></text>
-					</view>
+						<text class="cell-tit"> 官方客服 </text> <text class="cell-more iconfont icon-xiangyou"></text>
+					</button>
+					<!-- #endif -->
 				</view>
 			</view>
 		</view>
+		<!-- 技术支持 -->
+		<view class="copyright">
+			<image class="image" :src="staticUrl + 'icon_caimei@2x.png'"></image>
+			<view class="text">由采美365网提供技术服务</view>
+		</view>
 	</view>
 </template>
 <script>
@@ -189,14 +173,12 @@ export default {
 				textColor: '#FFFFFF',
 				bgColor: ''
 			},
+			staticUrl: this.global.staticUrl,
 			CustomBar: this.CustomBar, // 顶部导航栏高度
 			StatusBar: this.StatusBar,
-			bgImgUrl: 'https://static.caimei365.com/app/img/bg/home_cumres@2x.png',
+			bgImgUrl: 'https://static.caimei365.com/app/mini-mcare/icon/icon_header@2x.png',
 			name: '',
-			headpic: '',
 			userId: '',
-			serviceProviderId: '',
-			skeletonShow: true,
 			orderNum: 0, //未查看订单数量
 			beforeConfirmCount: 0, //待确认角标
 			beforePayCount: 0, //待付款角标
@@ -204,47 +186,24 @@ export default {
 			shippedCount: 0, //已发货角标
 			refundsCount: '', //退货/款角标
 			institutionsCont: 120,
-			firstList: [
-				{
-					name: '待注册机构',
-					path: '/pages/seller/club/stayClub-list',
-					icon: 'https://static.caimei365.com/app/img/icon/icon_seller_1@2x.png'
-				},
-				{
-					name: '机构列表',
-					path: '/pages/seller/club/list',
-					icon: 'https://static.caimei365.com/app/img/icon/icon_seller_2@2x.png'
-				},
-				{
-					name: '拉机构上线',
-					path: '/pages/seller/login/register-select',
-					icon: 'https://static.caimei365.com/app/img/icon/icon_seller_3@2x.png'
-				},
-				{
-					name: '邀请运营人员',
-					path: '/pages/seller/club/allClub-list',
-					icon: 'https://static.caimei365.com/app/img/icon/icon_seller_4@2x.png'
-				}
-			],
 			twoList: [
 				{
-					name: '帮机构下单',
+					name: '帮机构采购',
 					path: '/pages/seller/club/club-list',
-					icon: 'https://static.caimei365.com/app/img/icon/icon_seller_5@2x.png'
-				},
-				{
-					name: '发布二手商品',
-					path: '/pages/second/form/form-select',
-					icon: 'https://static.caimei365.com/app/img/icon/icon_seller_6@2x.png'
-				},
-				{
-					name: '客户咨询记录',
-					path: '/pages/seller/remarks/list',
-					icon: 'https://static.caimei365.com/app/img/icon/icon_seller_7@2x.png'
+					icon: 'icon_club_7@2x.png'
 				}
 			]
 		}
 	},
+	filters: {
+		nameFilters(value) {
+			if(value && value.length>15){
+				return value.substring(0,15)+"..." 
+			}else{
+				return value
+			}
+		}
+	},
 	created() {
 		this.initData()
 	},
@@ -254,71 +213,33 @@ export default {
 	methods: {
 		...mapMutations(['login', 'logout']),
 		async initData() {
-			const wechatCode = await authorize.getCode('weixin') // 根据微信的code获取用户登录状态:1已登录过 -1未登录过
-			const getUserInfo = await authorize.getUserInfo('weixin')
-			const params = { code: wechatCode, encryptedData: getUserInfo.encryptedData, iv: getUserInfo.iv }
-			this.UserService.UserLoginAuthApplets(params).then(response => {
-				if (response.code == 0 || response.code == 4) {
-					this.isLogin = true
-					this.userID = response.data.userId
-					this.userIdentity = response.data.userIdentity
-					this.clubStatus = response.data.clubStatus
-					this.serviceProviderId = response.data.serviceProviderId
-					this.$store.commit('updateStatus', response.data)
-					this.login(response.data)
-					uni.setStorageSync('token', response.data.token)
-					uni.setStorageSync('unionId', response.data.unionId)
-					this.getUserSellerHome()
-					this.getOrderCount()
-				} else {
-					this.isLogin = false
-					this.logout()
-					uni.setStorageSync('unionId', response.data.unionId)
-					this.$store.commit('updateStatus', response.data)
-					this.$api.navigateTo('/pages/seller/login/login')
-				}
-			})
+			const user = await this.$api.getStorage()
+			this.userId = user.userId
+			this.name = user.userName //协销名称
+			this.getUserSellerHome()
 		},
-		getUserSellerHome() {
-			this.$api.getStorage().then(resolve => {
-				this.userId = resolve.userId ? resolve.userId : 0
-				this.SellerService.GetSellerHome({ userId: this.userId })
-					.then(response => {
-						let sellerData = response.data
-						this.name = sellerData.linkMan ? sellerData.linkMan : '' //协销名称
-						this.headpic = sellerData.logo //会所头像
-						this.skeletonShow = false
-					})
-					.catch(error => {
-						this.$util.msg(error.msg, 2000)
-					})
-			})
+		async getUserSellerHome() {
+			try{
+				const res = await this.SellerService.GetSellerHome({ userId: this.userId })
+				const data = res.data
+				this.getOrderCount(data.serviceProviderId)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
 		},
-		getOrderCount() {
-			this.SellerService.GetOrderCount({ serviceProviderId: this.serviceProviderId }).then(response => {
-				let data = response.data
+		async getOrderCount(serviceProviderId) {
+			try{
+				const res = await this.SellerService.GetOrderCount({ serviceProviderId: serviceProviderId })
+				const data = res.data
 				this.beforeConfirmCount = this.showBadge(data.confirmedCount) //待确认
 				this.beforePayCount = this.showBadge(data.paymentCount) //待付款
 				this.beforeShipCount = this.showBadge(data.waitShipmentsCount) //待发货
 				this.shippedCount = this.showBadge(data.shipmentsCount) //已发货
 				this.refundsCount = this.showBadge(data.salesReturnCount) //退货/款
 				this.orderNum = this.showBadge(data.uncheckedOrderCount) //未查看订单数量
-			})
-		},
-		TestZHIboFn() {
-			//测试跳转直播小程序
-			// uni.navigateToMiniProgram({
-			// 	appId: 'wx92d650b253f8f2e3',
-			// 	path: '/pages/index/index',
-			// 	extraData: {
-			// 		'data1': 'test'
-			// 	},
-			// 	envVersion: 'develop',
-			// 	success(res) {
-			// 		// 打开成功
-			// 		console.log(res)
-			// 	}
-			// })
+			}catch(error){
+				console.log(error)
+			}
 		},
 		navigator(url) {
 			this.$api.navigateTo(url)
@@ -370,53 +291,12 @@ page {
 			flex: 1;
 			height: 64rpx;
 			line-height: 64rpx;
-			.u-tips {
-				display: inline-block;
-				float: left;
-				width: 98rpx;
-				height: 30rpx;
-				border: 1px solid #ffffff;
-				background: linear-gradient(128deg, rgba(242, 143, 49, 1) 0%, rgba(225, 86, 22, 1) 100%);
-				border-radius: 16rpx;
-				line-height: 30rpx;
-				font-size: $font-size-20;
-				text-align: center;
-				color: #ffffff;
-				margin-left: 10rpx;
-			}
-			.u-viptips {
-				display: inline-block;
-				float: left;
-				width: 98rpx;
-				height: 30rpx;
-				border: 1px solid #ffe600;
-				background: linear-gradient(128deg, rgba(242, 143, 49, 1) 0%, rgba(225, 86, 22, 1) 100%);
-				border-radius: 16rpx;
-				line-height: 30rpx;
-				font-size: $font-size-20;
-				text-align: center;
-				color: #ffe600;
-				margin-left: 10rpx;
-				margin-top: 17rpx;
-			}
-			.u-h1 {
-				float: left;
-				font-size: $font-size-36;
-				color: #ffffff;
-				text-align: left;
-				-o-text-overflow: ellipsis;
-				text-overflow: ellipsis;
-				display: -webkit-box;
-				word-break: break-all;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 1;
-				overflow: hidden;
-			}
-			.u-p {
-				font-size: $font-size-24;
-				line-height: 64rpx;
+			.user-item-none{
+				font-size: $font-size-32;
+				line-height: 120rpx;
 				color: #ffffff;
 				text-align: left;
+				display: inline-block;
 			}
 		}
 	}
@@ -666,6 +546,7 @@ page {
 		font-size: $font-size-28;
 		color: #666666;
 		margin-right: 10rpx;
+		text-align: left;
 	}
 	.cell-tip {
 		font-size: $font-size-28;
@@ -699,4 +580,20 @@ page {
 	color: #fff;
 	background-color: #dd524d;
 }
+.copyright {
+	width: 100%;
+	position: absolute;
+	bottom: 40rpx;
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	image {
+		width: 180rpx;
+		height: 60rpx;
+	}
+	.text {
+		font-size: 20rpx;
+		color: #cccccc;
+	}
+}
 </style>

+ 2 - 7
pages/seller/index/index.js

@@ -7,12 +7,11 @@ const homeMiXins = {
         return {
             nvabarData: {
                 // 顶部自定义导航
-                showCapsule: 1, // 是否显示左上角图标  1表示显示  0表示不显示,
+                showCapsule: 0, // 是否显示左上角图标  1表示显示  0表示不显示,
                 showSearch: 0,
                 title: '联合丽格集采商城', // 导航栏 中间的标题
                 haveBack: false,
                 textLeft: this.$store.state.isIphone,
-                textColor: '#FFFFFF'
             },
             CustomBar: this.CustomBar, // 顶部导航栏高度
             staticUrl: this.global.staticUrl,
@@ -47,9 +46,6 @@ const homeMiXins = {
                 this.mainmenu = data.mainmenu
                 this.floorList = data.floorList
                 this.mallTheme = data.mallTheme
-                if (this.hasLogin) {
-                    this.updateCartCount()
-                }
                 this.skeletonShow = true
             } catch (error) {
                 //TODO handle the exception
@@ -76,8 +72,7 @@ const homeMiXins = {
                 this.logout()
                 uni.setStorageSync('unionId', error.data.unionId)
                 this.$store.commit('updateStatus', error.data)
-                this.$api.redirectTo('/pages/login/login')
-                // this.mallOrganizeHome()
+                this.mallOrganizeHome()
             }
         },
         async updateCartCount() {

+ 22 - 20
pages/seller/index/index.vue

@@ -1,20 +1,19 @@
 <template>
 	<view class="content" :style="{ paddingBottom: isIphoneX ? '140rpx' : '98rpx' }">
 		<!-- 采美采购商城 -->
-		<view :style="{ display: show_index == 0 ? 'block' : 'none' }">
+		<template v-if="show_index == 0">
 			<seller-home ref="home" v-if="isHomeData"></seller-home>
-		</view>
-		<!-- 账户中心 -->
-		<view :style="{ display: show_index == 1 ? 'flex' : 'none' }">
+		</template>
+		<template v-if="show_index == 1">
 			<seller-user ref="user" v-if="isUserData"></seller-user>
-		</view>
+		</template>
 		<!-- isIphoneX判断是否为刘海屏在main.js里,好像uniapp有一个css变量获取刘海屏的安全区域 -->
 		<view class="tabBar" :style="{ height: isIphoneX ? '140rpx' : '98rpx' }">
 			<!-- 导航的中间圆圈 -->
 			<view class="tabBar_list" :style="{ paddingBottom: isIphoneX ? '40rpx' : '' }">
 				<view v-for="item in tab_nav_list" :key="item.id" class="tabBar_item" @tap="cut_index(item.id)">
-					<image v-if="show_index == item.id" :src="item.iconAc"></image>
-					<image v-else :src="item.icon"></image>
+					<image v-if="show_index == item.id" :src="staticUrl + item.iconAc" mode=""></image>
+					<image v-else :src="staticUrl + item.icon" mode=""></image>
 					<view :class="{ tabBar_name: true, nav_active: show_index == item.id }">{{ item.name }}</view>
 				</view>
 			</view>
@@ -28,29 +27,29 @@ import sellerUser from './components/user.vue'
 export default {
 	components: {
 		sellerHome, //采美采购商城 0
-		sellerUser, //账户中心     1
-		sellerCategory //商品分类 2
+		sellerUser //账户中心     1
 	},
 	data() {
 		return {
-			show_index: 2, //控制显示那个组件
+			show_index: 1, //控制显示那个组件
 			isUserData: false,
 			isCategory: false,
 			isHomeData: false,
 			isIphoneX: this.$store.state.isIphone,
+			staticUrl: this.global.staticUrl,
 			tab_nav_list: [
 				//菜单列表
 				{
 					id: 0,
 					name: '首页',
-					icon: 'https://static.caimei365.com/app/img/icon/icon-home@3x.png',
-					iconAc: 'https://static.caimei365.com/app/img/icon/icon-home-active@3x.png'
+					icon: 'icon-home@3x.png',
+					iconAc: 'icon-home-active@3x.png'
 				},
 				{
 					id: 1,
 					name: '我的',
-					icon: 'https://static.caimei365.com/app/img/icon/icon-user@3x.png',
-					iconAc: 'https://static.caimei365.com/app/img/icon/icon-user-active@3x.png'
+					icon: 'icon-user@3x.png',
+					iconAc: 'icon-user-active@3x.png'
 				}
 			],
 			nvabarData: {
@@ -81,10 +80,6 @@ export default {
 				this.isUserData = false
 				this.isCategory = false
 			} else if (this.show_index == 1) {
-				this.isHomeData = false
-				this.isUserData = false
-				this.isCategory = true
-			} else if (this.show_index == 2) {
 				this.isHomeData = false
 				this.isUserData = true
 				this.isCategory = false
@@ -92,8 +87,8 @@ export default {
 		},
 		onPullDownRefresh() {
 			if (this.show_index == 0) {
-				this.$refs.home.getHomeInformation()
-			} else if (this.show_index == 2) {
+				this.$refs.home.mallOrganizeHome()
+			} else if (this.show_index == 1) {
 				this.$refs.user.initData()
 			}
 			uni.stopPullDownRefresh()
@@ -114,6 +109,11 @@ export default {
 </script>
 
 <style lang="scss">
+.content {
+	width: 100%;
+	height: 100%;
+	box-sizing: border-box;
+}
 .tabBar {
 	width: 100%;
 	height: 98rpx;
@@ -127,6 +127,8 @@ export default {
 	align-items: center;
 	justify-content: center;
 	z-index: 999;
+	box-sizing: border-box;
+	padding: 0 100rpx;
 	.tabBar_list {
 		width: 86%;
 		display: flex;

+ 28 - 137
pages/seller/login/login.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="container login">
 		<view class="login-main">
-			<image class="logo" :src="staticUrl + 'logo@2x.png'" mode=""></image>
+			<image class="logo" :src="staticUrl + 'icon_seller_logo@2x.png'" mode=""></image>
 		</view>
 		<tui-skeleton
 			v-if="skeletonShow"
@@ -11,7 +11,7 @@
 			:loadingType="5"
 		></tui-skeleton>
 		<template else>
-			<view class="login-form" v-if="loginType === 0">
+			<view class="login-form">
 				<view class="login-input">
 					<text class="iconfont icon-shoujihao"></text>
 					<input
@@ -19,7 +19,7 @@
 						v-model="codeParams.mobile"
 						maxlength="11"
 						class="input"
-						placeholder="请输入已注册的手机号"
+						placeholder="请输入采购员手机号"
 						@input="handleMobile"
 					/>
 				</view>
@@ -35,46 +35,10 @@
 					/>
 					<view class="code-btn" :class="isMobileDisabled ? 'disabled':''" @click.stop="handleMobileCode"> {{ mobileCodeText }} </view>
 				</view>
-				<view class="login-input link">
-					<view class="login-reg" v-if="!isUnderLogin" @click.stop="navigatorRegirst('/pages/login/register')">免费注册</view>
-					<view class="login-pwd" @click.stop="handeleLogin(1)">密码登录</view>
-				</view>
-			</view>
-			<view class="login-form" v-if="loginType === 1">
-				<view class="login-input">
-					<text class="iconfont icon-shoujihao"></text>
-					<input
-						type="text"
-						v-model="accountParams.mobileOrEmail"
-						maxlength="11"
-						class="input"
-						placeholder="请输入已注册的手机号"
-						@input="handleMobileOrEmail"
-					/>
-				</view>
-				<view class="login-input">
-					<text class="iconfont icon-mima"></text>
-					<input
-						type="password"
-						v-model="accountParams.password"
-						maxlength="18"
-						class="input"
-						placeholder="请输入密码"
-						autocomplete="new-password"
-						@input="handlePassword"
-					/>
-				</view>
-				<view class="login-input link">
-					<view class="login-reg" v-if="!isUnderLogin" @click.stop="navigatorRegirst('/pages/login/register')">免费注册</view>
-					<view class="login-pwd" @click.stop="handeleLogin(0)">验证码登录</view>
-				</view>
 			</view>
 			<button class="login-btn" :disabled="isDisabled" :class="isDisabled ? 'disabled' : ''" @click="handleSubLogin">
 				登录
 			</button>
-			<view class="login-text" v-if="loginType === 1" @click.stop="this.$api.navigateTo('/pages/login/password')"
-				>忘记密码?</view
-			>
 		</template>
 		<!-- 弹窗提示 -->
 		<tui-modal
@@ -102,11 +66,6 @@ export default {
 			staticUrl:this.global.staticUrl,
 			skeletonShow:true,
 			getOption: '', //页面传递参数
-			accountParams: {
-				mobileOrEmail: '', //用户登录账号
-				password: '', //用户登录密码
-				unionId: ''
-			},
 			codeParams: {
 				mobile: '', //用户登录手机号
 				code: '',
@@ -117,15 +76,13 @@ export default {
 				imgCode:'',
 				platformType:0,
 				isCheckCaptcha:1,
-				activateCodeType:9
+				activateCodeType:13
 			},
-			loginType: 0,
 			isMobileDisabled: false, //手机验证码按钮控制
 			mobilCount: '', //倒计时
 			mobileCodeText: '获取验证码',
 			mobilTime: null,
 			isDisabled: true,
-			isUnderLogin:false,
 			modal:false,
 			modalButton: [
 				{
@@ -145,31 +102,16 @@ export default {
 			modalContent:''
 		}
 	},
-	onLoad(option) {
-		this.getOption = JSON.stringify(option)
+	onLoad() {
+		setTimeout(()=>{
+			this.skeletonShow = false
+		},1000)
 	},
 	computed: {
 		...mapState(['hasLogin', 'isWxAuthorize', 'isLoginType'])
 	},
 	methods: {
 		...mapMutations(['login']),
-		async infoClucbUser(){
-			const user = await this.$api.getStorage()
-			if(user.clubStatus === 1 || user.clubStatus === 99){
-				this.isUnderLogin = true
-			}
-			this.skeletonShow = false
-		},
-		handleMobileOrEmail(e) {
-			//账号输入
-			this.accountParams.mobileOrEmail = e.detail.value
-			this.handldeCheckInput()
-		},
-		handlePassword(e) {
-			//密码输入
-			this.accountParams.password = e.detail.value
-			this.handldeCheckInput()
-		},
 		handleMobile(e) {
 			//短信验证手机号输入
 			this.codeParams.mobile = this.smsCodeParams.mobile = e.detail.value
@@ -182,11 +124,7 @@ export default {
 		},
 		handldeCheckInput() {
 			// 控制按钮按钮高亮
-			if (this.loginType === 0) {
-				this.isDisabled = !(this.codeParams.mobile !== '' && this.codeParams.code !== '')
-			} else {
-				this.isDisabled = !(this.accountParams.mobileOrEmail !== '' && this.accountParams.password !== '')
-			}
+			this.isDisabled = !(this.codeParams.mobile !== '' && this.codeParams.code !== '')
 		},
 		handleMobileCode() {
 			// 获取短信验证码
@@ -204,9 +142,9 @@ export default {
 		},
 		async userLoginCode(params) {
 			// 获取登录短息验证码
-			try{
+			try{			
 				const res = await this.UserService.userLoginCode(params)
-				this.$util.msg('获取验证码成功', 2000)
+				this.$util.msg(res.data, 2000)
 				const TIME_COUNT = 60
 				if (!this.mobilTime) {
 					this.mobilCount = TIME_COUNT
@@ -224,7 +162,6 @@ export default {
 					}, 1000)
 				}
 			}catch(error){
-				//TODO handle the exception
 				this.$util.msg(error.msg, 2000)
 				this.isMobileDisabled = false
 			}
@@ -232,76 +169,30 @@ export default {
 		async handleSubLogin() {
 			// 点击登录
 			const stor = await this.$api.getStorage()
-			this.accountParams.unionId = this.codeParams.unionId = stor.unionId ? stor.unionId : ''
-			if (this.loginType === 0) {
-				this.userCodeLogin()
-			} else {
-				this.userPasswordLogin()
-			}
+			this.codeParams.unionId = stor.unionId ? stor.unionId : ''
+			this.userCodeLogin()
 		},
 		async userCodeLogin() {
 			// 短信验证码登录
 			try{
-				const res =await this.UserService.userCodeLogin(this.codeParams)
-				this.updataeStatus(res)
-			}catch(error){
-				this.$util.msg(error.msg, 2000)
-			}
-		},
-		async userPasswordLogin() {
-			// 账号密码登录
-			try{
-				const res =await this.UserService.AorganizationLogin(this.accountParams)
-				this.updataeStatus(res)
+				const res =await this.SellerService.organizeSeller(this.codeParams)
+				const data = res.data
+				uni.setStorageSync('token', data.token)
+				this.$store.commit('updateStatus', data)
+				this.login(data)
+				// 登录成功处理
+				this.$api.redirectTo('/pages/seller/index/index')
 			}catch(error){
 				this.$util.msg(error.msg, 2000)
 			}
 		},
-		updataeStatus(data) {
-			// 处理返回数据
-			if (data.code === 0) {
-				uni.setStorageSync('token', data.data.token)
-				this.$store.commit('updateStatus', data.data)
-				this.login(data.data)
-				// 登录成功处理
-				const url = uni.getStorageSync('LOGIN_REDIRECT_URL')
-				if (url) {
-				    if (url.indexOf('tabBar') > -1) {
-				        uni.switchTabTo(url)
-				    } else {
-						this.$api.redirectTo(url)
-				    }
-				} else {
-				   this.$api.switchTabTo('/pages/tabBar/user/user')
-				}
-				uni.removeStorageSync('LOGIN_REDIRECT_URL')
-			} else if(data.code === -3) {
-				this.modal = true
-				this.modalContent = data.msg
-			}else{
-				this.$util.msg(data.msg, 2000)
-			}
-		},
-		handleClick(e) {
-			//确认删除
-			if (e.index == 1) {
-				this.$api.navigateTo('/pages/login/register-unid')
-			}
-			this.modal = false
-		},
-		navigatorRegirst(url) {
-			this.$api.navigateTo(url)
-		},
-		handeleLogin(type) {
-			this.loginType = type
-		},
 		async checkedAuthorize() {
 			//是否已授权 0:为取消授权 1:为已授权 2:为未操作
 			wxLogin.wxLoginQuick()
 		}
 	},
 	onShow() {
-		this.infoClucbUser()
+		this.checkedAuthorize()
 	}
 }
 </script>
@@ -321,12 +212,11 @@ export default {
 		display: flex;
 		flex-direction: column;
 		align-items: center;
-		height: 206rpx;
+		height: 300rpx;
 		padding: 60rpx 0 40rpx 0;
-		margin-bottom: 70rpx;
 		.logo {
-			width: 358rpx;
-			height: 206rpx;
+			width: 500rpx;
+			height: 300rpx;
 			display: block;
 		}
 	}
@@ -399,14 +289,15 @@ export default {
 	}
 	.login-btn {
 		width: 600rpx;
-		height: 88rpx;
-		border-radius: 44rpx;
+		height: 90rpx;
+		border-radius: 45rpx;
 		font-size: $font-size-28;
-		line-height: 88rpx;
+		line-height: 90rpx;
 		color: #ffffff;
 		margin: 0 auto;
 		text-align: center;
 		background: $btn-confirm;
+		margin-top: 200rpx;
 		&.disabled {
 			background: #e2e2e2;
 		}

+ 0 - 165
pages/seller/order/components/sellerClubVisible.vue

@@ -1,165 +0,0 @@
-<template name="Visible">
-	<view class="orderVisible-template">
-		<!-- 订单对机构是否可见 -->
-		<view class="visible-title" @tap.stop="showPopup">
-			<text class="orderVisible">订单对机构是否可见</text>
-			<view class="visible-right">
-				<text class="text-l">{{ orderVisibleText }}</text> <text class="iconfont icon-xiayibu"></text>
-			</view>
-		</view>
-		<!-- 优惠券 -->
-		<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup">
-			<view class="tui-popup-box clearfix" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
-				<view class="tui-popup-content">
-					<radio-group @change="radioChange">
-						<label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
-							<view class="uni-list-text">{{ item.name }}</view>
-							<view class="uni-list-radio">
-								<radio
-									:value="item.value"
-									:checked="index === current"
-									color="#FF5B00"
-									style="transform:scale(0.7)"
-								/>
-							</view>
-						</label>
-					</radio-group>
-				</view>
-				<view class="tui-right-flex tui-popup-btn">
-					<view class="tui-flex-1"> <view class="tui-button" @click="hidePopup">确定</view> </view>
-				</view>
-			</view>
-		</tui-bottom-popup>
-	</view>
-</template>
-
-<script>
-export default {
-	name: 'Visible',
-	props: {},
-	data() {
-		return {
-			StaticUrl: this.$Static, //静态图片路径
-			isIphoneX: this.$store.state.isIphoneX,
-			popupShow: false,
-			orderVisibleText: '可见',
-			orderVisibleValue: '1',
-			items: [
-				{
-					value: '1',
-					name: '可见',
-				},
-				{
-					value: '2',
-					name: '不可见'
-				}
-			],
-			current: 0
-		}
-	},
-	created() {},
-	methods: {
-		showPopup() {
-			this.popupShow = true
-		},
-		radioChange(evt) {
-			console.log('radioChange',evt)
-			for (let i = 0; i < this.items.length; i++) {
-				if (this.items[i].value === evt.detail.value) {
-					this.current = i
-					this.orderVisibleText = this.items[i].name
-					this.orderVisibleValue = Number(this.items[i].value)
-					console.log('orderVisibleText',this.orderVisibleText)
-				}
-			}
-		},
-		hidePopup() {
-			this.popupShow = false
-			this.$emit('handleClubVisible', this.orderVisibleValue)
-		}
-	}
-}
-</script>
-
-<style lang="scss">
-.orderVisible-template {
-	width: 100%;
-	height: auto;
-	background: #ffffff;
-	float: left;
-	.visible-title {
-		width: 702rpx;
-		padding: 0 24rpx;
-		height: 88rpx;
-		line-height: 88rpx;
-		position: relative;
-		font-size: $font-size-28;
-		font-weight: bold;
-		border-bottom: 1px solid #ebebeb;
-		.orderVisible {
-			font-size: $font-size-28;
-			color: $text-color;
-			font-weight: bold;
-		}
-		.visible-right {
-			float: right;
-			color: #2a81ff;
-			.text-l {
-				margin-right: 40rpx;
-			}
-			.iconfont {
-				width: 50rpx;
-				height: 88rpx;
-				line-height: 88rpx;
-				color: #999999;
-				display: block;
-				position: absolute;
-				right: 0;
-				top: 0;
-			}
-		}
-	}
-}
-.tui-popup-box {
-	position: relative;
-	box-sizing: border-box;
-	min-height: 220rpx;
-	padding: 24rpx 24rpx 0 24rpx;
-	.tui-popup-content {
-		width: 100%;
-		height: 168rpx;
-		.uni-list-cell {
-			width: 100%;
-			height: 66rpx;
-			line-height: 66rpx;
-			display: block;
-			.uni-list-radio {
-				float: right;
-				height: 66rpx;
-			}
-			.uni-list-text {
-				float: left;
-				height: 66rpx;
-				font-size: $font-size-28;
-				color: #333;
-			}
-		}
-	}
-	.tui-popup-btn {
-		width: 100%;
-		height: auto;
-		float: left;
-		margin-top: 24rpx;
-		.tui-button {
-			width: 100%;
-			height: 88rpx;
-			background: $btn-confirm;
-			line-height: 88rpx;
-			text-align: center;
-			color: #ffffff;
-			font-size: $font-size-28;
-			border-radius: 44rpx;
-		}
-	}
-}
-</style>

+ 0 - 466
pages/seller/order/components/sellerCoupon.vue

@@ -1,466 +0,0 @@
-<template name="coupon">
-	<view class="coupon-template">
-		<view class="coupon-title" @tap.stop="showPopup">
-			<text class="text">优惠券:</text> <text class="text-coupon">-¥{{ coupon.couponAmount | NumFormat }}</text>
-			<text class="iconfont icon-xiayibu"></text>
-		</view>
-		<!-- 优惠券 -->
-		<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup">
-			<view class="tui-popup-box clearfix">
-				<view class="title">
-					<view class="title-l">优惠券</view>
-					<view class="title-r" @click="showExchangePopup">兑换优惠券</view>
-				</view>
-				<div class="tui-popup-main coupon">
-					<scroll-view class="tui-popup-scroll" scroll-y="true">
-						<view class="coupon-empty" v-if="isCouponEmpty">
-							<image
-								class="empty-container-image"
-								:src="StaticUrl + '/icon/icon-coupon-empty@2x.png'"
-							></image>
-							<text class="error-text">暂无可用优惠券~</text>
-						</view>
-						<template>
-							<view
-								v-for="(coupon, index) in dataList"
-								:key="index"
-								class="coupon-list"
-								@click.stop="checkedCoupon(index)"
-								v-if="dataList.length > 0"
-							>
-								<view class="list-cell-le">
-									<view class="coupon-maxMoney">
-										<text class="small">¥</text> {{ coupon.couponAmount }}
-									</view>
-									<view class="coupon-minMoney"> 满{{ coupon.touchPrice }}可用 </view>
-								</view>
-								<view class="list-cell-ri">
-									<view class="list-cell-top">
-										<view class="list-cell-type">
-											<view class="list-cell-tags">
-												<template v-if="coupon.moneyCouponFlag == 1">
-													<text class="tags" v-if="coupon.moneyCouponType == 1"
-														>意向{{ coupon.couponType | TypeFormat }}</text
-													>
-													<text class="tags" v-else
-														>定向{{ coupon.couponType | TypeFormat }}</text
-													>
-												</template>
-												<template v-else>
-													<text class="tags">{{ coupon.couponType | TypeFormat }}</text>
-												</template>
-											</view>
-											<view class="list-cell-texts">
-												<text v-if="coupon.couponType == 0">
-													{{
-														coupon.productType && coupon.productType == 1
-															? '全商城商品通用'
-															: '仅可购买指定商品'
-													}}
-												</text>
-												<text v-if="coupon.couponType == 1">
-													{{
-														coupon.categoryType == 1
-															? '仅限购买产品类商品'
-															: '仅限购买仪器类商品'
-													}}
-												</text>
-												<text v-if="coupon.couponType == 3"
-													>仅限购买店铺【{{ coupon.shopName }}】的商品</text
-												>
-												<text v-if="coupon.couponType == 4 || coupon.couponType == 2"
-													>全商城商品通用</text
-												>
-											</view>
-										</view>
-										<view class="list-cell-btn">
-											<view class="list-cell-checkbox">
-												<view
-													class="checkbox iconfont"
-													:class="[coupon.ischecked ? 'icon-yixuanze' : 'icon-weixuanze']"
-												>
-												</view>
-											</view>
-										</view>
-									</view>
-									<view class="list-cell-time">{{ coupon.startDate }} - {{ coupon.endDate }}</view>
-								</view>
-							</view>
-						</template>
-					</scroll-view>
-				</div>
-				<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '34rpx' }">
-					<view class="tui-flex-1"> <view class="tui-button" @click="hidePopup">确定</view> </view>
-				</view>
-			</view>
-		</tui-bottom-popup>
-	</view>
-</template>
-
-<script>
-export default {
-	name: 'coupon',
-	props: {
-		couponList: {
-			type: Array
-		}
-	},
-	data() {
-		return {
-			StaticUrl: this.$Static, //静态图片路径
-			isIphoneX: this.$store.state.isIphoneX,
-			popupShow: false,
-			isCouponEmpty: false,
-			checkedIndex: null,
-			dataList: [],
-			coupon: {
-				couponAmount: 0,
-				clubCouponId: 0
-			}
-		}
-	},
-	filters: {
-		NumFormat(value) {
-			//处理金额
-			return Number(value).toFixed(2)
-		},
-		TypeFormat(value) {
-			switch (value) {
-				case 0:
-					return '活动券'
-					break
-				case 1:
-					return '品类券'
-					break
-				case 2:
-					return '用户专享券'
-					break
-				case 3:
-					return '店铺券'
-					break
-				case 4:
-					return '新用户券'
-					break
-			}
-		}
-	},
-	created() {
-		this.initData(this.couponList)
-	},
-	watch: {
-		couponList: {
-			handler: function(el) {
-				//监听对象的变换使用 function,箭头函数容易出现this指向不正确
-				console.log(el)
-				this.couponList = el
-			},
-			deep: true
-		}
-	},
-	methods: {
-		initData(data) {
-			if (data.length > 0) {
-				data.forEach((el, index) => {
-					this.dataList.push(Object.assign({}, el, { ischecked: false }))
-				})
-				this.coupon.couponAmount = data[0].couponAmount
-				this.dataList[0].ischecked = true
-				this.isCouponEmpty = false
-			} else {
-				this.isCouponEmpty = true
-			}
-		},
-		checkedCoupon(idx) {
-			// 选择优惠券
-			this.checkedIndex = idx
-			this.dataList.forEach((el, index) => {
-				if (this.checkedIndex == index) {
-					el.ischecked = !el.ischecked
-				} else {
-					el.ischecked = false
-				}
-			})
-		},
-		showExchangePopup() {
-			this.popupShow = false
-			this.$parent.isExchangePopup = true
-		},
-		showPopup() {
-			if (this.$parent.rebatecheck) {
-				this.$util.msg('返佣订单不能使用优惠券', 2000)
-			} else {
-				this.popupShow = true
-			}
-		},
-		hidePopup() {
-			this.popupShow = false
-			let coupon = {
-				couponAmount: 0,
-				clubCouponId: 0
-			}
-			this.dataList.forEach((el, index) => {
-				if (el.ischecked) {
-					coupon.couponAmount = el.couponAmount
-					coupon.clubCouponId = el.clubCouponId
-				}
-			})
-			this.coupon = coupon
-			this.$emit('handleChoiceaCoupon', this.coupon)
-		}
-	}
-}
-</script>
-
-<style lang="scss">
-.coupon-template {
-	width: 100%;
-	height: auto;
-	background: #ffffff;
-	float: left;
-	margin-top: 24rpx;
-	.coupon-title {
-		width: 702rpx;
-		padding: 0 24rpx;
-		height: 88rpx;
-		line-height: 88rpx;
-		position: relative;
-		.text {
-			font-size: $font-size-28;
-			color: $text-color;
-			font-weight: bold;
-		}
-		.text-coupon {
-			display: inline-block;
-			float: right;
-			padding-right: 30rpx;
-			line-height: 88rpx;
-			font-size: 28rpx;
-			color: #f94b4b;
-		}
-		.iconfont {
-			width: 50rpx;
-			height: 88rpx;
-			line-height: 88rpx;
-			color: #999999;
-			display: block;
-			position: absolute;
-			right: 0;
-			top: 0;
-		}
-	}
-}
-.tui-popup-box {
-	position: relative;
-	box-sizing: border-box;
-	min-height: 220rpx;
-	padding: 24rpx 24rpx 0 24rpx;
-	.title {
-		font-size: $font-size-34;
-		color: $text-color;
-		line-height: 88rpx;
-		text-align: center;
-		float: left;
-		width: 100%;
-		height: 88rpx;
-		display: flex;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		.title-l {
-			flex: 1;
-			text-align: left;
-		}
-		.title-r {
-			flex: 1;
-			text-align: right;
-			color: #f94b4b;
-		}
-	}
-	.tui-popup-main {
-		width: 100%;
-		float: left;
-		padding-top: 10rpx;
-		.tui-popup-scroll {
-			width: 100%;
-			height: 600rpx;
-			.coupon-empty {
-				width: 100%;
-				height: 600rpx;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				flex-direction: column;
-				position: fixed;
-				background: $bg-color;
-				.empty-container-image {
-					width: 150rpx;
-					height: 150rpx;
-					margin-bottom: 0;
-					margin-top: 0;
-				}
-				.error-text {
-					font-size: $font-size-28;
-					color: #999999;
-					line-height: 88rpx;
-				}
-			}
-			.coupon-list {
-				width: 100%;
-				height: 200rpx;
-				margin-bottom: 24rpx;
-				box-sizing: border-box;
-				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-uesb@2x.png);
-				background-size: cover;
-				.list-cell-le {
-					width: 224rpx;
-					height: 100%;
-					box-sizing: border-box;
-					padding: 37rpx 0;
-					float: left;
-					.coupon-maxMoney {
-						width: 100%;
-						height: 78rpx;
-						line-height: 78rpx;
-						font-size: 56rpx;
-						color: #ffffff;
-						text-align: center;
-						.small {
-							font-size: $font-size-24;
-						}
-					}
-					.coupon-minMoney {
-						width: 100%;
-						height: 33rpx;
-						line-height: 33rpx;
-						font-size: $font-size-24;
-						color: #ffffff;
-						text-align: center;
-					}
-				}
-				.list-cell-ri {
-					width: 478rpx;
-					height: 100%;
-					box-sizing: border-box;
-					padding: 20rpx 24rpx 0 24rpx;
-					float: right;
-					.list-cell-top {
-						width: 100%;
-						height: 121rpx;
-						float: left;
-						border-bottom: 1px solid #e1e1e1;
-						.list-cell-type {
-							width: 286rpx;
-							height: 100%;
-							float: left;
-							.list-cell-tags {
-								width: 100%;
-								height: 32rpx;
-								margin-bottom: 7rpx;
-								.tags {
-									display: inline-block;
-									padding: 0 10rpx;
-									height: 32rpx;
-									line-height: 32rpx;
-									background-color: #ffdcce;
-									color: #f94b4b;
-									font-size: $font-size-20;
-									border-radius: 8rpx;
-									text-align: center;
-									float: left;
-								}
-							}
-							.list-cell-texts {
-								width: 100%;
-								height: auto;
-								line-height: 35rpx;
-								text-overflow: ellipsis;
-								display: -webkit-box;
-								word-break: break-all;
-								-webkit-box-orient: vertical;
-								-webkit-line-clamp: 2;
-								overflow: hidden;
-								font-size: 26rpx;
-								color: #333333;
-							}
-						}
-						.list-cell-btn {
-							width: 128rpx;
-							height: 100%;
-							float: right;
-							.list-cell-checkbox {
-								width: 100%;
-								height: 50%;
-								.checkbox {
-									width: 40rpx;
-									line-height: 60rpx;
-									float: right;
-									box-sizing: border-box;
-									text-align: center;
-									text-decoration: none;
-									-webkit-tap-highlight-color: transparent;
-									overflow: hidden;
-									color: #f94b4b;
-								}
-							}
-						}
-					}
-					.list-cell-time {
-						width: 100%;
-						height: 58rpx;
-						line-height: 58rpx;
-						text-align: left;
-						font-size: $font-size-20;
-						color: #999999;
-					}
-				}
-			}
-		}
-		.tui-popup-coupon {
-			width: 100%;
-			height: 500rpx;
-			box-sizing: border-box;
-			padding: 30rpx 20rpx;
-			.tui-popup-h1 {
-				width: 100%;
-				height: 66rpx;
-				display: flex;
-				align-items: center;
-				.tui-popup-text {
-					flex: 1;
-					height: 66rpx;
-					line-height: 66rpx;
-					font-size: $font-size-30;
-					color: #333333;
-					&.red {
-						color: #f94b4b;
-					}
-					&.bold {
-						font-weight: bold;
-					}
-					&.left {
-						text-align: left;
-					}
-					&.right {
-						text-align: right;
-					}
-				}
-			}
-		}
-	}
-	.tui-popup-btn {
-		width: 100%;
-		height: auto;
-		float: left;
-		margin-top: 24rpx;
-		.tui-button {
-			width: 100%;
-			height: 88rpx;
-			background: $btn-confirm;
-			line-height: 88rpx;
-			text-align: center;
-			color: #ffffff;
-			font-size: $font-size-28;
-			border-radius: 44rpx;
-		}
-	}
-}
-</style>

+ 0 - 2
pages/seller/order/components/sellerDetaileButton.vue

@@ -2,7 +2,6 @@
 	<view class="button-template" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
 		<!-- 底部按钮 -->
 		<view class="button-content">
-			<view class="btn btn-cancel"  v-if="secondHandOrderFlag!=1 && !rechargeGoods"  @click.stop="btnConfirm('again',order)">再来一单</view>
 			<view class="btn btn-cancel" v-if="btnState.isCancel"  @click.stop="btnConfirm('cancel',order)">取消订单</view>
 			<!-- <view class="btn btn-cancel" v-if="btnState.isDelete"  @click.stop="btnConfirm('delete',order)">删除订单</view> -->
 			<template>
@@ -17,7 +16,6 @@
 			</template>
 			<view class="btn btn-color" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">确认订单</view>
 			<view class="btn btn-query" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
-			<view class="btn btn-color" v-if="btnState.isPay && ableUserMoney > 0 && !rechargeGoods" @click.stop="btnConfirm('balance',order)">余额抵扣</view>
 		</view>
 	</view>
 </template>

+ 0 - 0
components/cm-module/modelAlert/freightAlert.vue → pages/seller/order/components/sellerFreightAlert.vue


+ 2 - 48
pages/seller/order/components/sellerGoodsList.vue

@@ -4,9 +4,6 @@
 		<view class="goods-list">
 			<view v-for="(item, index) in goodsData" :key="index" class="goods-item">
 				<view class="shoptitle">
-					<view v-if="item.promotions" class="floor-item-act">
-						<view class="floor-tags">{{ item.promotions.name }}</view>
-					</view>
 					<view class="title-text">{{ item.shopName }}</view>
 				</view>
 				<view class="productlist" v-for="(pros, idx) in item.cartList" :key="idx">
@@ -27,29 +24,6 @@
 								>
 								<view class="count"><text class="small">x</text>{{ pros.number }}</view>
 							</view>
-							<view class="floor-item-act">
-								<template v-if="pros.actStatus == 1 && pros.promotions">
-									<view v-if="PromotionsFormat(pros.promotions)" class="floor-tags">
-										{{ pros.promotions.name }}
-										<text v-if="pros.promotions != null">
-											:¥{{
-												pros.promotions == null
-													? '0.00'
-													: pros.promotions.touchPrice | NumFormat
-											}}
-										</text>
-									</view>
-									<view v-else-if="pros.promotions.type != 3" class="floor-tags">{{
-										pros.promotions.name
-									}}</view>
-								</template>
-								<template v-if="pros.svipProductFlag == 1">
-									<view class="svip-tags">
-										<view class="tags">SVIP</view>
-										<view class="price">{{ pros.svipPriceTag }}</view>
-									</view>
-								</template>
-							</view>
 						</view>
 					</view>
 				</view>
@@ -62,7 +36,7 @@
 							@change="changeHandle(index)"
 							placeholder-class="placeholder"
 							maxlength="50"
-						 placeholder="选填,最多不超过50个汉字"
+							placeholder="选填,最多不超过50个汉字"
 						/>
 					</view>
 				</view>
@@ -74,7 +48,7 @@
 							>减<text>¥{{ item.reducedPrice | NumFormat }}</text></text
 						>
 					</view>
-					<view class="sum" v-if="secondflag"
+					<view class="sum"
 						>合计:<text class="money"
 							>¥{{ (item.originalPrice - item.reducedPrice) | NumFormat }}</text
 						></view
@@ -91,10 +65,6 @@ export default {
 	props: {
 		goodsData: {
 			type: Array
-		},
-		secondflag: {
-			type: Boolean,
-			default: true
 		}
 	},
 	data() {
@@ -177,14 +147,6 @@ export default {
 				line-height: 56rpx;
 				font-weight: bold;
 			}
-			.floor-item-act {
-				height: 56rpx;
-				text-align: center;
-				box-sizing: border-box;
-				float: left;
-				padding: 12rpx 0;
-				margin-right: 12rpx;
-			}
 		}
 		.productlist {
 			width: 100%;
@@ -274,14 +236,6 @@ export default {
 					}
 				}
 			}
-			.floor-item-act {
-				width: 100%;
-				height: 56rpx;
-				text-align: center;
-				box-sizing: border-box;
-				float: left;
-				padding: 0 0 10rpx 0;
-			}
 		}
 		.goods-pros-m {
 			height: 76rpx;

+ 0 - 1
pages/seller/order/components/sellerOrderButton.vue

@@ -2,7 +2,6 @@
 	<view class="button-template">
 		<!-- 底部按钮 -->
 		<view class="button-content"> 
-			<view class="btn btn-cancel" v-if="secondHandOrderFlag!=1 && !rechargeGoods"  @click.stop="btnConfirm('again',orderId)">再来一单</view>
 			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',orderId)">取消订单</view>
 			<!-- <view class="btn btn-cancel" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',orderId)">删除订单</view> -->
 			<template>

+ 0 - 440
pages/seller/order/components/sellerRegulations.vue

@@ -1,440 +0,0 @@
-<template name="regulations">
-	<view class="regulations-template">
-		<view class="regulations-title" @tap.stop="hanldOperationConfim">
-			<text class="text">售后条款</text>
-			<view class="freight-right">
-				<text class="text-l">{{regulaText}}</text>
-				<text class="iconfont icon-xiayibu"></text>
-			</view>
-		</view>
-		<!--底部选择模态层弹窗组件 -->
-		<view class="popup spec" :class="specClass"  @touchmove.stop.prevent="discard" >
-			<!-- 遮罩层 -->
-			<view class="mask"></view>
-			<view class="layer">
-				<view class="content">
-					<view class="freight-ltitle">售后条款</view>
-					<text class="iconfont icon-iconfontguanbi" @click="freightConfim"></text>
-					<view class="freight-radio">
-						<radio-group class="row-group" @change="radioChange">
-							<label class="row-input" v-for="(item, index) in regulaDatas" :key="index">
-								<view class="row-text" @click.stop="gotoConten(item)">{{item.name.length>10?item.name.substring(0,10)+'...':item.name}}</view>
-								<radio class="row-radio" :value="item.id" color="#FF5B00"/>
-							</label>
-						</radio-group>
-					</view>
-				</view>
-				<view class="btn">
-					<view class="button add" @click="freightConfim">确定</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-	export default{
-		name:'regulations',
-		props:{
-			regulaDatas:{
-				type:Array
-			}
-		},
-		data(){
-			return{
-				regulaText:'无条款',
-				freightMoney:0,
-				specClass: '',//规格弹窗css类,控制开关动画
-				clauseId:0
-			}
-		},
-		created() {
-		},
-		methods:{
-			gotoConten(item){
-				if(item.name!='无条款'){
-					this.$api.navigateTo(`/pages/service/sellconten?clauseId=${item.id}`)
-				}
-			},
-			radioChange(e){
-				this.clauseId = e.target.value;
-				this.regulaDatas.forEach((item,index)=>{
-					if(item.id==this.clauseId){
-						if(item.name.length>10){
-							this.regulaText = item.name.substr(0,10)+'...'
-						}else{
-							this.regulaText = item.name;
-						}
-					}
-				})
-			},
-			freightConfim(){//提交完成选择
-			this.$emit('handleData',this.clauseId)
-			this.hideSpec()
-			},
-			hideSpec() {//关闭弹窗
-				this.specClass = 'hide';
-				setTimeout(() => {
-					this.specClass = 'none';
-				}, 200);
-			},
-			hanldOperationConfim(data){//显示弹窗
-				this.specClass = 'show';
-				this.freightMoney = this.hanldFreight
-			},
-			showTip(){//显示弹窗
-				this.$emit('@showregulaAlert');
-			},
-		}
-	}
-</script>
-
-<style lang="scss">
-	.regulations-template{
-		width: 100%;
-		height: auto;
-		background: #FFFFFF;
-		float: left;
-		margin-top: 24rpx;
-		.regulations-title{
-			width: 702rpx;
-			padding: 0 24rpx;
-			height: 88rpx;
-			line-height: 88rpx;
-			font-size: $font-size-28;
-			color: $text-color;
-			background: #FFFFFF;
-			float: left;
-			font-weight: bold;
-			border-bottom: 1rpx solid #EBEBEB;
-			.freight-left{
-				float: left;
-				.icon-yunfeishuoming{
-					height: 100%;
-					padding:15rpx;
-					color: $color-system;
-					font-weight: normal;
-				}
-			}
-			.Tk{
-				float: right;
-				margin-right: 38rpx;
-				font-size: $font-size-28;
-				color: #666666;
-			}
-			.freight-right{
-				float: right;
-				color: #2A81FF;
-				.text-l{
-					margin-right: 20rpx;
-				}
-				.text{
-					line-height: 88rpx;
-					color: #ff0000;
-					margin:0 20rpx;
-					font-weight: normal;
-				}
-				.icon-xiayibu{
-					line-height: 88rpx;
-					color: #999999;
-					font-weight: normal;
-				}
-			}
-		}
-	}
-	.freight-ltitle{
-		width: 100%;
-		line-height: 60rpx;
-		height: 60rpx;
-		font-size: $font-size-34;
-		color: #333333;
-		text-align:center;
-	}
-	.icon-iconfontguanbi{
-		position: absolute;
-		top: 0;
-		right: 0;
-		font-size: 34rpx;
-		color: #b2b2b2
-	}
-	.freight-radio{
-		height: 66rpx;
-		line-height: 66rpx;
-		padding: 0 20rpx;
-		.row-group{
-			width: 100%;
-			max-height: 460rpx;
-			overflow: auto;
-
-		}
-		.row-input{
-			height: 66rpx;
-			line-height: 66rpx;
-			width: 100%;
-			display: block;
-			// .row-text:nth-child(1){
-			// 	color: #666666;
-			// 	pointer-events: none;
-			// }
-		}
-		.row-radio{
-			float: right;
-			transform: scale(0.9);
-			color: #b2b2b2;
-		}
-		.row-text{
-			font-size: $font-size-28;
-			color: #1890f9;
-			float: left;
-		}
-	}
-	.freight-group{
-		width: 100%;
-		height: 88rpx;
-		display: flex;
-		border-bottom: 1px solid #FFFFFF;
-		flex-direction: row;
-		.text{
-			display: block;
-			flex: 1;
-			line-height: 88rpx;
-			font-size: $font-size-24;
-			color: #999999;
-			text-align: left;
-			padding-left: 10rpx;
-		}
-		.group-from{
-			flex: 1;
-			height: 40rpx;
-			padding: 20rpx;
-			line-height: 40rpx;
-			align-items: flex-start;
-			font-size: $font-size-24;
-			color: $text-color;
-			background: #F7F7F7;
-			border-radius: 14rpx;
-			margin-bottom: 20rpx;
-			margin-top: 10rpx;
-			.form-input{
-				height: 40rpx;
-				line-height: 40rpx;
-				flex-grow: 1;
-			}
-		}
-	}	
-	/* 加入购物模态层*/
-	@keyframes showPopup {
-		0% {
-			opacity: 0;
-		}
-		100% {
-			opacity: 1;
-		}
-	}
-	@keyframes hidePopup {
-		0% {
-			opacity: 1;
-		}
-		100% {
-			opacity: 0;
-		}
-	}
-	@keyframes showLayer {
-		0% {
-			transform: translateY(0);
-		}
-		100% {
-			transform: translateY(-100%);
-		}
-	}
-	@keyframes hideLayer {
-		0% {
-			transform: translateY(-100%);
-		}
-		100% {
-			transform: translateY(0);
-		}
-	}
-	@keyframes showAmnation {
-		0% {
-			top: -12rpx;
-			opacity: 0;
-		}
-		50% {
-			top: -60rpx;
-			opacity: 1;
-		}
-		100% {
-			top: -100rpx;
-			opacity: 0;
-		}
-	}
-	@keyframes hideAmnation {
-		0% {
-			top: -100rpx;
-			opacity: 0;
-		}
-		100% {
-			top: -12rpx;
-			opacity: 0;
-		}
-	}
-	.popup {
-		position: fixed;
-		top: 0;
-		width: 100%;
-		height: 100%;
-		z-index: 999;
-		display: none;
-		.mask{
-			position: fixed;
-			top: 0;
-			width: 100%;
-			height: 100%;
-			z-index: 21;
-			background-color: rgba(0, 0, 0, 0.6);
-		}
-		.layer {
-			position: fixed;
-			z-index: 22;
-			bottom: -710rpx;
-			width: 702rpx;
-			padding: 24rpx 24rpx 36rpx 24rpx;
-			height: 670rpx;
-			border-radius: 20rpx 20rpx 0 0;
-			background-color: #fff;
-			display: flex;
-			flex-wrap: wrap;
-			align-content: space-between;
-			.content {
-				width: 100%;
-				position: relative;
-			}
-			.btn {
-				width: 100%;
-				height: 88rpx;
-				display: flex;
-				.button {
-					width: 702rpx;
-					height: 88rpx;
-					color: #fff;
-					display: flex;
-					align-items: center;
-					justify-content: center;
-					font-size: $font-size-28;
-					border-radius: 44rpx;
-					background: $btn-confirm;
-				}
-			}
-		}
-		
-		&.show {
-			display: block;
-			.mask{
-				animation: showPopup 0.2s linear both;
-			}
-			.layer {
-				animation: showLayer 0.2s linear both;
-			}
-		}
-		&.hide {
-			display: block;
-			.mask{
-				animation: hidePopup 0.2s linear both;
-			}
-			
-			.layer {
-				animation: hideLayer 0.2s linear both;
-			}
-		}
-		&.none {
-			display: none;
-		}
-		&.service {
-			.row {
-				margin: 30upx 0;
-				.title {
-					font-size: 30upx;
-					margin: 10upx 0;
-				}
-				.description {
-					font-size: 28upx;
-					color: #999;
-				}
-			}
-		}
-		.layer-smimg{
-			width: 114rpx;
-			height: 114rpx;
-			float: left;
-			border-radius: 10rpx;
-			margin-right: 24rpx;
-			image{
-				width: 114rpx;
-				height: 114rpx;	
-				border-radius: 10rpx;
-			}
-		}
-		.layer-nunbox{
-			justify-content: space-between;
-			align-items: center;
-			width: 536rpx;
-			height: 88rpx;
-			padding: 13rpx 0 0 0;
-			float: left;
-			.layer-nunbox-t{
-				width: 100%;
-				height:44rpx;
-				position:relative;
-				display: flex;
-				.layer-nunbox-text{
-					line-height: 44rpx;
-					font-size: $font-size-28;
-				}
-				.number-box{
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					.iconfont{
-						font-size: $font-size-32;
-						padding:0 18rpx;
-						font-size: $text-color;
-					}
-					.btn-input{
-						width: 62rpx;
-						height: 48rpx;
-						line-height: 48rpx;
-						background: #F8F8F8;
-						border-radius: 4rpx;
-						text-align: center;
-						font-size: $font-size-28;
-					}
-				}
-				.product-step{
-					position: absolute;
-					left: 45rpx;
-					bottom: 0;
-					height: 44rpx;
-					background: #FFFFFF;
-				}
-			}
-			.layer-nunbox-b{
-				width: 100%;
-				height:44rpx;
-				margin-top: 13rpx;
-			}
-			.text{
-				line-height: 44rpx;
-				font-size: $font-size-28;
-				.p{
-					color: #FF2A2A;
-				}
-				.p:first-child{
-					margin-left: 30rpx;
-				}
-				.p.sm{
-					font-size: $font-size-24;
-				}
-			}
-		}
-	}	
-</style>

+ 695 - 961
pages/seller/order/order-confirm.vue

@@ -1,97 +1,45 @@
 <template>
-	<view class="container order clearfix" :style="{paddingBottom :isIphoneX ? '190rpx' : '134rpx'}">
+	<view class="container order clearfix" :style="{ paddingBottom: isIphoneX ? '190rpx' : '134rpx' }">
 		<!-- 地址选择 -->
-		<choice-address ref="choiceAddress" v-if="isAddress" :addressData="addressData"></choice-address>
+		<choice-address ref="choiceAddress" v-if="isAddress" :addressData="addressData" />
 		<!-- 商品 -->
-		<seller-goodsList ref='goods' v-if="isRequest" :secondflag="secondflag" :goodsData="goodsData" @handleGoodList="handChangeInputGoodsList"></seller-goodsList>
-		<!-- 返佣订单 -->
-		<view class="order-return" v-if="goodsData.length==1 && secondflag">
-			<view class="order-return-main" @click="handleRebateFlag">
-				<view class="label">是否返佣</view>
-				<view class="label-right">
-					<text class="text-l">{{ rebateFeeText }}</text>
-					<text class="iconfont icon-xiayibu"></text>
-				</view>
-			</view>
-			<view class="order-return-input" v-if="confirmParam.payInfo.rebateFlag === 2">
-				<input class="input" v-model="rebateFee" type="number" placeholder="请输入返佣服务费" maxlength="20">
-			</view>
-		</view>
-		<!-- 返佣订单 -->
-		<view class="Rebate" @click="handleSecondFlag" v-if="!secondflag">
-			<text class="rebate-title">二手返佣订单</text>
-			<text class="iconfont" :class="rebatecheck?'icon-yixuanze':'icon-weixuanze'" ></text>
-		</view>
+		<seller-goodsList
+			ref="goods"
+			v-if="isRequest"
+			:goodsData="goodsData"
+			@handleGoodList="handChangeInputGoodsList"
+		/>
 		<!-- 发票信息 -->
-		<seller-invoice ref="invoice" 
-						v-if="isRequest" 
-						:invoiceDatas="invoiceData" 
-						@handleChoiceaInvoice="handleChoiceaInvoiceData">
-		</seller-invoice>
-		<!-- 优惠券选择弹窗 -->
-		<sellerCoupon ref="coupon" 
-				v-if="isCouponShow"
-				:couponList="couponList" 
-				@handleChoiceaCoupon="handleChoiceaCouponData">
-		</sellerCoupon>
-		<!-- 兑换优惠券弹窗 -->
-		<sellerExchangeCoupon v-if="isExchangePopup"></sellerExchangeCoupon>
+		<seller-invoice
+			ref="invoice"
+			v-if="isRequest"
+			:invoiceDatas="invoiceData"
+			@handleChoiceaInvoice="handleChoiceaInvoiceData"
+		/>
 		<!-- 运费 -->
-		<seller-freight ref="freight" 
-						v-if="isFreight" 
-						:freightDatas="freightData" 
-						@handleChoiceaFreight="handleChoiceaFreightData" 
-						@showFreightAlert="handFreightAlertShow">
-		</seller-freight>
-		<freight-alert v-if="isfreightTip" ref="csPhone"></freight-alert>
-		<!-- 余额抵扣 -->
-		<view class="invoice-balance" v-if="!rechargeGoods">
-			<view class="balabce-t">
-				<view class="balabce-t-le">余额抵扣</view>
-				<view class="balabce-t-ri">
-					<view class="money">
-						<text>可用余额:</text>
-						<text>¥{{ userMoney | NumFormat }}</text>
-					</view>
-					<view class="checkbox-box">
-						<button class="checkbox iconfont" 
-								hover-class="btn-hover"
-								v-if="userMoney!=0"
-								@click.stop="checkedBalabce"
-								:class="[ischecked ?'icon-yixuanze':'icon-weixuanze']"
-						>
-						</button>
-					</view>
-				</view>
-			</view>
-			<view class="balabce-b" :class="{'balabce-b--hide':!ischecked}">	
-				<view class="balabce-b-text animation" 
-					  :style="{'transform':ischecked?'translateY(0)':'translateY(-50%)','-webkit-transform':ischecked?'translateY(0)':'translateY(-50%)'}">
-					<text>当前使用:¥{{deductMoney | NumFormat}},剩余:¥{{ surplusMoney | NumFormat }}</text>
-				</view>
-			</view>
-		</view>
-		<!-- 选择对机构是否可见 -->
-		<sellerClubVisible ref="clubVisible"  v-if="isRequest" @handleClubVisible="handleClubVisibleData"></sellerClubVisible>
-		<!-- 售后条例 -->
-		<seller-regulations  ref="regulations"
-							 v-if="isRequest && seconDepositFlg" 
-							:regulaDatas="clauseList" 
-							@handleData="handleClauseData">
-		</seller-regulations>
-		<regula-alert v-if="isregulaTip" ref="csPhone"></regula-alert>
+		<seller-freight
+			ref="freight"
+			v-if="isFreight"
+			:freightDatas="freightData"
+			@handleChoiceaFreight="handleChoiceaFreightData"
+			@showFreightAlert="handFreightAlertShow"
+		/>
+		<!-- 邮费弹窗 -->
+		<freight-alert v-if="isfreightTip" ref="csPhone" />
 		<!-- 底部 -->
-		<view class="footer" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
+		<view class="footer" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
 			<view class="footer-le">
 				<view class="footer-count">
 					<text>共{{ totalCount }}件商品</text>
 				</view>
 				<view class="footer-price">
 					<view class="sum" :class="totalDiscountAmount == 0 ? 'none' : ''">
-						总价:<text class="price">¥{{orderShouldPayFee | NumFormat}}</text>
+						总价:<text class="price">¥{{ orderShouldPayFee | NumFormat }}</text>
 					</view>
 					<view class="sum-none" v-if="totalDiscountAmount > 0">
-						<text class="money-reduced">共减<text>¥{{ totalDiscountAmount  | NumFormat}}</text></text>
+						<text class="money-reduced"
+							>共减<text>¥{{ totalDiscountAmount | NumFormat }}</text></text
+						>
 					</view>
 				</view>
 			</view>
@@ -99,39 +47,6 @@
 				<view class="btn" :class="isSubLoading ? 'disabled' : ''">提交订单</view>
 			</view>
 		</view>
-		<!-- 优惠券 -->
-		<view class="coupon-content-model" v-if="isCouponModel">
-			<view class="coupon-alert-content">
-				<view class="coupon">
-					<view class="coupon-list">
-						<view class="list-cell-tags">{{ ExchangeCouponData.couponType | TypeFormat }}</text></view>
-						<view class="list-cell-le">
-							<view class="coupon-maxMoney">
-								<text class="small">¥</text>
-								{{ ExchangeCouponData.couponAmount }}
-							</view>
-							<view class="coupon-minMoney">
-								<text class="txt">满{{ ExchangeCouponData.touchPrice }}可用</text>
-							</view>
-						</view>
-						<view class="list-cell-ri">
-							<view class="list-cell-top">
-								<text v-if="ExchangeCouponData.couponType == 0">
-									{{ ExchangeCouponData.productType && ExchangeCouponData.productType == 1 ? '全商城商品通用' : '仅可购买指定商品'  }}
-								</text>
-								<text v-if="ExchangeCouponData.couponType == 1">
-									{{ ExchangeCouponData.categoryType == 1 ? '仅限购买产品类商品' : '仅限购买仪器类商品' }}
-								</text>
-								<text v-if="ExchangeCouponData.couponType == 3">仅限购买店铺【{{ ExchangeCouponData.shopName }}】的商品</text>
-								<text v-if="ExchangeCouponData.couponType == 4 || ExchangeCouponData.couponType == 2">全商城商品通用</text>
-							</view>
-							<view class="list-cell-time">{{ ExchangeCouponData.startDate  }} - {{ ExchangeCouponData.endDate }}</view>
-						</view>
-					</view>
-					<view class="coupon-btn" @click.stop="handleClickCancel">立即收下</view>
-				</view>
-			</view>
-		</view>
 		<!-- 弹窗提示 -->
 		<tui-modal
 			:show="modal"
@@ -149,946 +64,765 @@
 </template>
 
 <script>
-	import freightAlert from '@/components/cm-module/modelAlert/freightAlert.vue'
-	import choiceAddress from './components/sellerAddress'  
-	import sellerGoodsList from './components/sellerGoodsList'
-	import sellerInvoice from './components/sellerInvoice'
-	import sellerFreight from './components/sellerFreight'
-	import sellerCoupon from './components/sellerCoupon'
-	import sellerExchangeCoupon from './components/sellerExchangeCoupon'
-	import sellerClubVisible from './components/sellerClubVisible'
-	import sellerRegulations from './components/sellerRegulations.vue'
-	
-	export default {
-		components:{
-			choiceAddress,
-			sellerGoodsList,
-			sellerInvoice,
-			sellerFreight,
-			sellerCoupon,
-			sellerExchangeCoupon,
-			sellerClubVisible,
-			freightAlert,
-			sellerRegulations
-		},
-		data() {
-			return {
-				isSubLoading:false,
-				modalButton: [
-					{
-						text: '再想一想',
-						type: 'gray',
-						plain: true //是否空心
-					},
-					{
-						text: '继续提交',
-						customStyle: {
-							color: '#fff',
-							bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
-						},
-						plain: false
-					}
-				],
-				contentModalText: '', //操作文字提示语句
-				modal: false,
-				showModalstauts:1,
-				isIphoneX:this.$store.state.isIphoneX,
-				cartParam: {// 购物车立即结算确认订单参数
-					skuIds:0,		// 商品Id(逗号隔开)
-					serviceProviderId:0,// 协销Id
-					clubId:0			// 机构Id
-				}, 		
-				productParam: {// 商品立即购买确认订单参数
-					productCount:0, 	// 商品数量
-					productId:0,		// 商品Id
-					serviceProviderId:0,// 协销Id
-					clubId:0			// 机构Id
-				}, 	
-				postageParam: {// 邮费计算参数
-					skuIds:0,			// 商品Id(逗号隔开)
-					userId:0,			// 用户Id
-					townId:0			// 地区Id
-				},	
-				confirmParam: {// 提交订单参数
-					cartType:3, 		// 购买类型:(1自主下单, 3协销下单)
-					orderMiniType:0,    // 订单提交状态 0初始提交 1 继续提交
-					orderSource:6,		// 订单来源 1WWW 6小程序[采美,星范]
-					addressId:0,		// 收货地址Id
-					clubCouponId:0,		// 关联优惠券Id
-					clubId:0,			// 机构Id
-					orderInfo:[],		// 订单商品数据
-					orderInvoice:{type:0},	// 订单发票信息
-					orderSeen:1,		// 订单对机构可见度 1可见  2不可见
-					payInfo:{			// 订单金额数据
-						isColdChina:0, 		//是否勾选冷链费
-						orderShouldPayFee: 0,	// 订单最终支付金额
-						balancePayFlag: 0,		// 勾选余额的状态(1使用,0不使用)
-						clauseId:0,				// 条款Id
-						postage: 0,				// 运费金额
-						postageFlag: 0,			// 运费类型
-						userBeans: 0,			// 抵扣采美豆数量
-						rebateFee:0, 			// 返佣服务费
-						rebateFlag:0			// 是否返佣订单
+import freightAlert from './components/sellerFreightAlert'
+import choiceAddress from './components/sellerAddress'
+import sellerGoodsList from './components/sellerGoodsList'
+import sellerInvoice from './components/sellerInvoice'
+import sellerFreight from './components/sellerFreight'
+
+export default {
+	components: {
+		choiceAddress,
+		sellerGoodsList,
+		sellerInvoice,
+		sellerFreight,
+		freightAlert
+	},
+	data() {
+		return {
+			isSubLoading: false,
+			modalButton: [
+				{
+					text: '再想一想',
+					type: 'gray',
+					plain: true //是否空心
+				},
+				{
+					text: '继续提交',
+					customStyle: {
+						color: '#fff',
+						bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)'
 					},
-					unionId:uni.getStorageSync('unionId'),// 用户unionId
-				}, 	
-				rebateFee:'',
-				rebateFeeText:'否',
-				confirmType:1,			  
-				submitState:'',  		  // 提交状态
-				totalCount:0,			  // 订单提交总数量
-				reducedPrice:0,			  // 满减金额
-				couponAmount:0,	  		  // 优惠券金额
-				totalDiscountAmount:0,	  // 共减金额
-				orderShouldPayFee:0.00,	  // 订单提交总金额
-				allPrice:0.00,			  // 订单总金额
-				surplusMoney:0.00,		  // 显示勾选后的剩余抵扣
-				userMoney:0.00,			  // 显示可使用余额
-				deductMoney:0.00,		  // 显示已使用的余额
-				isRequest:false,		  // 是否加载完成渲染子组件
-				isFreight:false,		  // 是否加载完成渲染子组件
-				isAddress:false,		  // 是否加载完成地址
-				isExchangePopup:false, 	  // 控制兑换优惠券弹窗
-				isfreightTip:false,		  // 控制邮费弹窗
-				ischecked:false,	      // 是否勾选余额
-				addressData:{},			  // 初始化地址信息
-				goodsData:[],			  // 初始化商品信息
-				couponList:[],		  	  // 初始化优惠券信息
-				invoiceData:{type:0},	  // 初始化发票信息
-				freightData:{},			  // 邮费数据
-				handleFreightData:{},	  // 监听邮费数据
-				orderInfo:[],			  // 提交的商品信息
-				payInfo:{},				  // 订单信息
-				rechargeGoods:false,
-				clauseList:[],
-				seconDepositFlg:true,
-				rebatecheck:false,
-				isCouponShow:false,		  // 是否显示可选优惠券
-				secondflag:true,
-				isCouponModel:false,	  // 兑换优惠券成功提示
-				ExchangeCouponData:{},	  // 兑换优惠券信息
-			}
-		},
-		onLoad(option){//商品数据
-			this.initStorage(option)
-		},
-		filters:{
-			NumFormat(value) {//处理金额
-				return Number(value).toFixed(2)
+					plain: false
+				}
+			],
+			contentModalText: '', //操作文字提示语句
+			modal: false,
+			isIphoneX: this.$store.state.isIphoneX,
+			cartParam: {
+				// 购物车立即结算确认订单参数
+				skuIds: 0, // 商品Id(逗号隔开)
+				serviceProviderId: 0, // 协销Id
+				clubId: 0 // 机构Id
 			},
-		},
-		methods: {
-			async initStorage(option){
-					const data = JSON.parse(option.data)
-					const clubInfo = await this.$api.getComStorage('orderUserInfo')
-					const userInfo = await this.$api.getStorage()
-					this.productParam.clubId = this.cartParam.clubId = this.confirmParam.clubId = clubInfo.clubId ? clubInfo.clubId : 0
-					this.postageParam.userId = clubInfo.userId ? clubInfo.userId : 0
-					this.productParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-					this.cartParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-					this.confirmParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
-					if(option.type =='prodcut'){
-						this.confirmType = 1
-						this.productParam.productCount = data.data.productCount
-						this.productParam.productId = data.data.productIds
-						this.getInitProdcutCrearOrder()
-					}else{
-						this.confirmType = 2
-						this.cartParam.skuIds = data.data.skuIds
-						this.getInitCrearOrder()
-					}
+			postageParam: {
+				// 邮费计算参数
+				skuIds: 0, // 商品Id(逗号隔开)
+				userId: 0, // 用户Id
+				townId: 0 // 地区Id
 			},
-			getInitCrearOrder(){//协销购物车跳转确认订单初始化信息
-				this.SellerService.SellerSettlement(this.cartParam).then(response =>{
+			confirmParam: {
+				// 提交订单参数
+				cartType: 3, // 购买类型:(1自主下单, 3协销下单)
+				orderMiniType: 0, // 订单提交状态 0初始提交 1 继续提交
+				orderSource: 6, // 订单来源 1WWW 6小程序[采美,星范]
+				addressId: 0, // 收货地址Id
+				clubCouponId: 0, // 关联优惠券Id
+				clubId: 0, // 机构Id
+				orderInfo: [], // 订单商品数据
+				orderInvoice: { type: 0 }, // 订单发票信息
+				orderSeen: 1, // 订单对机构可见度 1可见  2不可见
+				payInfo: {
+					// 订单金额数据
+					isColdChina: 0, //是否勾选冷链费
+					orderShouldPayFee: 0, // 订单最终支付金额
+					balancePayFlag: 0, // 勾选余额的状态(1使用,0不使用)
+					clauseId: 0, // 条款Id
+					postage: 0, // 运费金额
+					postageFlag: 0, // 运费类型
+					userBeans: 0, // 抵扣采美豆数量
+					rebateFee: 0, // 返佣服务费
+					rebateFlag: 0 // 是否返佣订单
+				},
+				unionId: uni.getStorageSync('unionId') // 用户unionId
+			},
+			rebateFee: '',
+			rebateFeeText: '否',
+			confirmType: 1,
+			submitState: '', // 提交状态
+			totalCount: 0, // 订单提交总数量
+			reducedPrice: 0, // 满减金额
+			couponAmount: 0, // 优惠券金额
+			totalDiscountAmount: 0, // 共减金额
+			orderShouldPayFee: 0.0, // 订单提交总金额
+			allPrice: 0.0, // 订单总金额
+			isRequest: false, // 是否加载完成渲染子组件
+			isFreight: false, // 是否加载完成渲染子组件
+			isAddress: false, // 是否加载完成地址
+			isfreightTip: false, // 控制邮费弹窗
+			addressData: {}, // 初始化地址信息
+			goodsData: [], // 初始化商品信息
+			couponList: [], // 初始化优惠券信息
+			invoiceData: { type: 0 }, // 初始化发票信息
+			freightData: {}, // 邮费数据
+			handleFreightData: {}, // 监听邮费数据
+			orderInfo: [], // 提交的商品信息
+			payInfo: {}, // 订单信息
+			ExchangeCouponData: {} // 兑换优惠券信息
+		}
+	},
+	onLoad(option) {
+		//商品数据
+		this.initStorage(option)
+	},
+	filters: {
+		NumFormat(value) {
+			//处理金额
+			return Number(value).toFixed(2)
+		}
+	},
+	methods: {
+		async initStorage(option) {
+			const data = JSON.parse(option.data)
+			const clubInfo = await this.$api.getComStorage('orderUserInfo')
+			const userInfo = await this.$api.getStorage()
+			this.cartParam.clubId = this.confirmParam.clubId = clubInfo.clubId ? clubInfo.clubId : 0
+			this.postageParam.userId = clubInfo.userId ? clubInfo.userId : 0
+			this.cartParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
+			this.confirmParam.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
+			this.confirmType = 2
+			this.cartParam.skuIds = data.data.skuIds
+			this.getInitCrearOrder()
+		},
+		getInitCrearOrder() {
+			//协销购物车跳转确认订单初始化信息
+			this.SellerService.SellerSettlement(this.cartParam)
+				.then(response => {
 					let data = response.data
 					this.isRequest = true
 					this.goodsData = data.list
-					this.userMoney = data.userMoney
-					this.couponList = data.couponList
 					this.reducedPrice = data.reducedPrice
 					this.totalCount = data.totalCount
 					this.allPrice = data.totalPrice
-					this.rechargeGoods = data.includeRecharge
-					this.clauseList = data.clauseList
-					this.postageParam.skuIds  = this.getProductIds(data.list)
-					this.isCouponShow = true
-					if(this.couponList.length>0){
-						this.couponAmount = data.couponList[0].couponAmount
-						this.confirmParam.clubCouponId = data.couponList[0].clubCouponId 
-					}
-					this.orderShouldPayFee = this.allPrice - this.couponAmount
-					this.totalDiscountAmount = this.reducedPrice + this.couponAmount
-					this.getAddressData()
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
-				})
-			},
-			getInitProdcutCrearOrder(){//二手下单初始化查询
-				this.seconDepositFlg = false
-				this.SellerService.GetSettlementBySencondProduct(this.productParam).then(response =>{
-					const data = response.data
-					this.isRequest = true
-					this.goodsData = data.list
-					this.userMoney = data.userMoney
-					this.totalCount = data.totalCount
-					this.allPrice = data.totalPrice
+					this.postageParam.skuIds = this.getProductIds(data.list)
 					this.orderShouldPayFee = this.allPrice
-					this.isCouponShow = false
-					this.secondflag = false
+					this.totalDiscountAmount = this.reducedPrice
 					this.getAddressData()
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000)
 				})
-			},
-			getProductIds(list){// 获取订单商品id列表
-				let skuId = []
-				list.forEach(function(supplier){
-					supplier.cartList.forEach(function(product){
-						skuId.push(product.skuId)
-					})
-				})
-				return skuId.join(',')
-			},
-			getFreightData(){//获取邮费信息
-				this.OrderService.GetOrderPostage(this.postageParam).then(response =>{
-					let data = response.data
-					this.freightData  = data
-					this.handleFreightData = data
-					this.isFreight = true
-					if(data.postageFlag== 1){
-						this.orderShouldPayFee = this.allPrice + data.postage
-						this.attributePallPrice()
-					}else{
-						this.orderShouldPayFee = this.allPrice
-						this.attributePallPrice()
-					}
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
 				})
-			},
-			async getAddressData(){//获取地址信息
-				const clubInfo = await this.$api.getComStorage('orderUserInfo')
-				this.UserService.QueryAddressList(
-					{
-						pageNum:1,
-						pageSize:1,
-						userId:clubInfo.userId,
-					}
-				).then(response =>{
-					let data = response.data
-					this.isAddress = true
-					this.addressData = {}
-					if(response.data.results != ''){
-						this.confirmParam.addressId = data.list[0].addressId
-						this.postageParam.townId = data.list[0].townId
-						this.addressData = data.list[0]
-						this.getFreightData()
-					}else{
-						this.addressData = this.addressData
-					}
+		},
+		getProductIds(list) {
+			// 获取订单商品id列表
+			let skuId = []
+			list.forEach(function(supplier) {
+				supplier.cartList.forEach(function(product) {
+					skuId.push(product.skuId)
 				})
-			},
-			handChangeInputGoodsList(data){//对应供应商的留言信息
-				this.goodsData = data
-			},
-			handleChoiceaInvoiceData(data){//获取发票信息
-				this.confirmParam.orderInvoice = data
-			},
-			handleChoiceaFreightData(data){//获取运费信息
-				console.log('编辑运费信息',data)
-				if(data.postageFlag == 1){
-					this.handleFreightData = data
-					this.orderShouldPayFee = this.allPrice + parseInt(data.postage)
+			})
+			return skuId.join(',')
+		},
+		getFreightData() {
+			//获取邮费信息
+			this.OrderService.GetOrderPostage(this.postageParam).then(response => {
+				let data = response.data
+				this.freightData = data
+				this.handleFreightData = data
+				this.isFreight = true
+				if (data.postageFlag == 1) {
+					this.orderShouldPayFee = this.allPrice + data.postage
 					this.attributePallPrice()
-				}else{
-					this.handleFreightData = data
+				} else {
 					this.orderShouldPayFee = this.allPrice
 					this.attributePallPrice()
 				}
-			},
-			handleClauseData(clauseId){// 条款Id
-				this.confirmParam.payInfo.clauseId = parseInt(clauseId)
-			},
-			handleChoiceaCouponData(data){// 勾选使用优惠券
-				console.log('优惠券信息',data)
-				this.couponAmount = data.couponAmount
-				this.totalDiscountAmount = this.reducedPrice + this.couponAmount
-				this.confirmParam.clubCouponId = data.clubCouponId
-				this.attributePallPrice()
-			},
-			handleClubVisibleData(data){// 订单对机构是否可见
-				console.log('对机构是否可见',data)
-				this.confirmParam.orderSeen = Number(data) 
-			},
-			checkedBalabce(){//勾选使用余额
-				if(this.rebatecheck){
-					this.$util.msg('返佣订单不能使用余额抵扣',2000)
-				}else{
-					if(this.userMoney > 0){
-						this.ischecked = !this.ischecked
-						if(this.ischecked){
-							this.confirmParam.payInfo.balancePayFlag = 1
-							this.attributePallPrice()
-						}else{
-							this.confirmParam.payInfo.balancePayFlag = 0
-							if( this.handleFreightData.postageFlag == 1 ){
-								this.orderShouldPayFee = this.allPrice + parseInt(this.handleFreightData.postage) - this.couponAmount
-							}else{
-								this.orderShouldPayFee = this.allPrice - this.couponAmount
-							}
-						}
-						console.log('最终订单支付金额',this.orderShouldPayFee)
-						console.log('优惠券金额',this.couponAmount)
-					}else{
-						return
-					}
-				}
-			},	
-			attributePallPrice(){//计算价格
-				if( this.handleFreightData.postageFlag == 1){
-					this.attributeHashfreight(this.handleFreightData.postage)
-				}else{
-					this.attributeNofreight()
-				}
-			},
-			attributeNofreight(){//计算没有邮费的支付价格
-				if(this.ischecked){
-					let totalAmount = this.allPrice - this.couponAmount//计算不包邮的价格 总价等于商品价格+邮费
-					if(this.userMoney > totalAmount){
-						this.orderShouldPayFee = 0.00
-						this.deductMoney = this.allPrice - this.couponAmount		// 勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    // 勾选后的剩余抵扣
-					}else{
-						this.orderShouldPayFee = this.allPrice - this.userMoney -	this.couponAmount //勾选后的总价
-						this.deductMoney = this.userMoney				            // 勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    // 勾选后的剩余抵扣
-					}
-				}else{
-					this.orderShouldPayFee = this.allPrice  - this.couponAmount
-					this.deductMoney = 0.00
-					this.surplusMoney = this.userMoney
-				}
-				console.log('最终订单支付金额',this.orderShouldPayFee)
-				console.log('优惠券金额',this.couponAmount)
-			},
-			attributeHashfreight(postage){//计算需要邮费的支付价格
-				let totalAmount = this.allPrice + parseInt(postage) - this.couponAmount//计算不包邮的价格 总价等于商品价格+邮费
-				if(this.ischecked){
-					if(this.userMoney > totalAmount ){							//余额大于支付金额
-						this.orderShouldPayFee = 0.00
-						this.deductMoney = this.allPrice + parseInt(postage) - this.couponAmount			//勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    //勾选后的剩余抵扣
-					}else{
-						this.orderShouldPayFee = this.allPrice + parseInt(postage) - this.userMoney  - this.couponAmount       	//勾选后的总价
-						this.deductMoney = this.userMoney				            //勾选后使用抵余额
-						this.surplusMoney = this.userMoney - this.deductMoney	    //勾选后的剩余抵扣
-					}
-				}else{
-					this.orderShouldPayFee = this.allPrice + parseInt(postage) - this.couponAmount
-					this.deductMoney = 0.00
-					this.surplusMoney = this.userMoney
-				}
-				console.log('最终订单支付金额',this.orderShouldPayFee)
-				console.log('优惠券金额',this.couponAmount)
-			},
-			orderSubmitMit(){//提交订单
-				if(this.confirmParam.addressId == ''){
-					this.$util.msg('请先添加收货地址~',2000)
-					return
-				}
-				if(this.confirmParam.payInfo.rebateFlag ===2){
-					if(this.rebateFee == 0){
-						this.$util.msg('请输入返佣服务费',2000)
-						return
-					}
-					this.confirmParam.payInfo.rebateFee = Number(this.rebateFee).toFixed(2)
+			})
+		},
+		async getAddressData() {
+			//获取地址信息
+			const clubInfo = await this.$api.getComStorage('orderUserInfo')
+			this.UserService.QueryAddressList({
+				pageNum: 1,
+				pageSize: 1,
+				userId: clubInfo.userId
+			}).then(response => {
+				let data = response.data
+				this.isAddress = true
+				this.addressData = {}
+				if (response.data.results != '') {
+					this.confirmParam.addressId = data.list[0].addressId
+					this.postageParam.townId = data.list[0].townId
+					this.addressData = data.list[0]
+					this.getFreightData()
+				} else {
+					this.addressData = this.addressData
 				}
-				this.modal = true
-				this.contentModalText = '请仔细确认订单是否为返佣订单后再提交订单'
-			},
-			SellerCreateOrderSubmit(){
-				//提交订单
-				if(this.isSubLoading){ return }
-				this.confirmParam.orderInfo = this.goodsData.map(el => {
-					let productInfo = []
-					el.cartList.forEach(pros => {
-						productInfo.push({
-							skuId:pros.skuId,
-							productNum:pros.number,
-							presentNum:0,
-							productType:pros.giftType
-						})
+			})
+		},
+		handChangeInputGoodsList(data) {
+			//对应供应商的留言信息
+			this.goodsData = data
+		},
+		handleChoiceaInvoiceData(data) {
+			//获取发票信息
+			this.confirmParam.orderInvoice = data
+		},
+		handleChoiceaFreightData(data) {
+			//获取运费信息
+			console.log('编辑运费信息', data)
+			if (data.postageFlag == 1) {
+				this.handleFreightData = data
+				this.orderShouldPayFee = this.allPrice + parseInt(data.postage)
+				this.attributePallPrice()
+			} else {
+				this.handleFreightData = data
+				this.orderShouldPayFee = this.allPrice
+				this.attributePallPrice()
+			}
+		},
+		handleClauseData(clauseId) {
+			// 条款Id
+			this.confirmParam.payInfo.clauseId = parseInt(clauseId)
+		},
+		handleChoiceaCouponData(data) {
+			// 勾选使用优惠券
+			console.log('优惠券信息', data)
+			this.couponAmount = data.couponAmount
+			this.totalDiscountAmount = this.reducedPrice + this.couponAmount
+			this.confirmParam.clubCouponId = data.clubCouponId
+			this.attributePallPrice()
+		},
+		attributePallPrice() {
+			//计算价格
+			if (this.handleFreightData.postageFlag == 1) {
+				this.attributeHashfreight(this.handleFreightData.postage)
+			} else {
+				this.attributeNofreight()
+			}
+		},
+		attributeNofreight() {
+			//计算没有邮费的支付价格
+			this.orderShouldPayFee = this.allPrice
+			console.log('最终订单支付金额', this.orderShouldPayFee)
+		},
+		attributeHashfreight(postage) {
+			//计算需要邮费的支付价格
+			this.orderShouldPayFee = this.allPrice + parseInt(postage)
+			console.log('最终订单支付金额', this.orderShouldPayFee)
+		},
+		orderSubmitMit() {
+			//提交订单
+			if (this.confirmParam.addressId == '') {
+				this.$util.msg('请先添加收货地址~', 2000)
+				return
+			}
+			this.SellerCreateOrderSubmit()
+		},
+		SellerCreateOrderSubmit() {
+			//提交订单
+			if (this.isSubLoading) {
+				return
+			}
+			this.confirmParam.orderInfo = this.goodsData.map(el => {
+				let productInfo = []
+				el.cartList.forEach(pros => {
+					productInfo.push({
+						skuId: pros.skuId,
+						productNum: pros.number,
+						presentNum: 0,
+						productType: pros.giftType
 					})
-					return {splitCode:el.splitCode,shopId:el.shopId,note:el.note?el.note:'',productInfo:productInfo}
-				})
-				this.confirmParam.payInfo.postage = parseInt(this.handleFreightData.postage).toFixed(2)
-				this.confirmParam.payInfo.postageFlag = parseInt(this.handleFreightData.postageFlag)
-				this.confirmParam.payInfo.orderShouldPayFee = this.orderShouldPayFee.toFixed(2)
-				this.confirmParam.payInfo = JSON.stringify(this.confirmParam.payInfo)
-				this.confirmParam.orderInfo = JSON.stringify(this.confirmParam.orderInfo)
-				this.confirmParam.orderInvoice = JSON.stringify(this.confirmParam.orderInvoice)
-				this.isSubLoading = true	
-				this.hanldeOrderSubmit(this.confirmParam)
-			},
-			hanldeOrderSubmit(params){// 提交订单
-				this.SellerService.SellerCreateOrderSubmit(params).then(response =>{
-					const data = response.data
-					if(data.code === 1){
-						this.$util.msg('支付成功',2000,true,'success')
-						setTimeout(() =>{
-							this.isSubLoading = false
-							this.$api.redirectTo(`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${this.postageParam.userId}`)
-						},2000)
-					}else{
-						this.$util.msg('订单提交成功',2000,true,'success')
-						setTimeout(()=>{
-							this.isSubLoading = false
-							this.$api.redirectTo(`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${this.postageParam.userId}`)
-						},2000)
-					}
-				}).catch(error =>{
-					this.isSubLoading = false
-					this.handleError(error)
-				})
-			},
-			handleError(data){// 提交订单异常处理
-				this.formatConfirmParam()
-				const buttonMap = {
-						1:{
-							contentModalText :  '订单内存在械字号三类商品,需要拥有医疗执业许可证的医美机构才能购买。建议升级医美机构后再下单,否则会导致订单退款或影响发货。',
-							modalButton :  [
-								{ text: '取消',  type: 'gray', plain: true },
-								{ text: '继续提交', customStyle: { color: '#fff', bgColor: 'linear-gradient(90deg, #F28F31 0%, #FF5B00 100%)' },plain: false }
-							]
-						}
-				}
-				if(data.code === -6){// 非医美机构下三类商品订单
-					this.modal = true
-					this.showModalstauts = 2
-					this.contentModalText = buttonMap[1].contentModalText
-					this.modalButton= buttonMap[1].modalButton
-				}else{
-					this.$util.msg(error.msg,3000)
-				}
-			},
-			formatConfirmParam(){// 还原提交订单参数格式
-				this.confirmParam.payInfo = JSON.parse(this.confirmParam.payInfo)
-				this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo)
-				this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice)
-			},
-			handleRebateFlag(){// 普通订单返佣
-				let self = this
-				uni.showActionSheet({
-					itemList: ['返佣订单', '普通订单,存在返佣服务费','否'],
-					success: (e) => {
-						switch(e.tapIndex){
-							case 0:
-								self.confirmParam.payInfo.rebateFlag = 1
-								self.rebateFeeText = '返佣订单'
-								break
-							case 1:
-								self.confirmParam.payInfo.rebateFlag = 2
-								self.rebateFeeText = '普通订单,存在返佣服务费'
-								break
-							case 2:
-								self.confirmParam.payInfo.rebateFlag = 0
-								self.rebateFeeText = '否'
-								break
-						}
-					}
 				})
-				if(this.confirmParam.payInfo.rebateFlag ===1){
-					this.confirmParam.payInfo.balancePayFlag = 0
-					this.couponAmount = 0
-					this.confirmParam.clubCouponId = 0
-					this.confirmParam.orderSeen = 2
-					this.$refs.clubVisible.orderVisibleText = '不可见'
-					this.$refs.clubVisible.current = 1
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage) - this.couponAmount
-					this.totalDiscountAmount = this.reducedPrice + this.couponAmount
-					this.$refs.coupon.coupon.couponAmount = 0
-					this.$refs.freight.infoData(this.freightData)
-					this.$refs.freight.freightData  = this.freightData
-					this.handleFreightData = this.freightData
-				}else{
-					this.confirmParam.orderSeen = 1
-					this.$refs.clubVisible.orderVisibleText = '可见'
-					if(this.couponList.length>0){
-						this.confirmParam.clubCouponId = this.couponList[0].clubCouponId 
-						this.$refs.coupon.coupon.couponAmount = this.couponAmount = this.couponList[0].couponAmount
-					}
-					this.totalDiscountAmount = this.reducedPrice + this.couponAmount 
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage) - this.couponAmount
-				}
-			},
-			handleClick(e){
-				//确认提交
-				if (e.index == 1) {
-					if(this.showModalstauts == 2){
-						this.confirmParam.orderMiniType = 2
-						this.SellerCreateOrderSubmit()
-					}else{
-						this.SellerCreateOrderSubmit()
-					}
+				return {
+					splitCode: el.splitCode,
+					shopId: el.shopId,
+					note: el.note ? el.note : '',
+					productInfo: productInfo
 				}
-				this.confirmParam.orderMiniType = 0
-				this.modal = false
-			},
-			handleSecondFlag(){// 二手订单勾选返佣
-				this.rebatecheck = !this.rebatecheck
-				if(this.rebatecheck){
-					this.ischecked = false
-					this.confirmParam.payInfo.rebateFlag=1
-					this.confirmParam.payInfo.balancePayFlag = 0
-					this.confirmParam.clubCouponId = 0
-					this.confirmParam.orderSeen = 2
-					this.$refs.clubVisible.orderVisibleText = '不可见'
-					this.$refs.clubVisible.current = 1
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage)
-					this.$refs.freight.infoData(this.freightData)
-					this.$refs.freight.freightData  = this.freightData
-					this.handleFreightData = this.freightData
-				}else{
-					this.confirmParam.orderSeen = 1
-					this.$refs.clubVisible.orderVisibleText = '可见'
-					this.confirmParam.payInfo.rebateFlag=0
-					this.orderShouldPayFee = this.allPrice + parseInt(this.freightData.postage)
+			})
+			this.confirmParam.payInfo.postage = parseInt(this.handleFreightData.postage).toFixed(2)
+			this.confirmParam.payInfo.postageFlag = parseInt(this.handleFreightData.postageFlag)
+			this.confirmParam.payInfo.orderShouldPayFee = this.orderShouldPayFee.toFixed(2)
+			this.confirmParam.payInfo = JSON.stringify(this.confirmParam.payInfo)
+			this.confirmParam.orderInfo = JSON.stringify(this.confirmParam.orderInfo)
+			this.confirmParam.orderInvoice = JSON.stringify(this.confirmParam.orderInvoice)
+			this.isSubLoading = true
+			this.hanldeOrderSubmit(this.confirmParam)
+		},
+		async hanldeOrderSubmit(params) {
+			// 提交订单
+			try{
+				const res = await this.SellerService.SellerCreateOrderSubmit(params)
+				const data = res.data
+				if (data.code === 1) {
+					this.$util.msg('支付成功', 2000, true, 'success')
+					setTimeout(() => {
+						this.isSubLoading = false
+						this.$api.redirectTo(
+							`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${
+								this.postageParam.userId
+							}`
+						)
+					}, 2000)
+				} else {
+					this.$util.msg('订单提交成功', 2000, true, 'success')
+					setTimeout(() => {
+						this.isSubLoading = false
+						this.$api.redirectTo(
+							`/pages/seller/order/order-details?type=cash&orderId=${data.orderId}&userId=${
+								this.postageParam.userId
+							}`
+						)
+					}, 2000)
 				}
-			},
-			handFreightAlertShow(){//显示邮费弹窗
-				this.isfreightTip = true
-			},
-			handleClickCancel(){// 关闭优惠券弹窗
-				this.isCouponModel = false
-				this.getInitCrearOrder()
-			},
-			hideFreight(){//关闭邮费弹窗
-				this.isfreightTip = false
-			},
-			hideMobel() {
-				this.modal = false
-			},
+			}catch(error){
+				this.isSubLoading = false
+				this.$util.msg(error.msg, 3000)
+				this.formatConfirmParam()
+			}
 		},
-		onShow() {
-			let pages = getCurrentPages()
-			let currPage = pages[pages.length-1]
-			if(currPage.data.select =='select'){
-				this.isAddress = true
-				let SelectData = uni.getStorageSync('selectAddress')
-				this.confirmParam.addressId = SelectData.addressId
-				this.postageParam.townId = SelectData.townId 
-				this.addressData = SelectData
-				this.getFreightData()
-			}else{
-				this.getAddressData()
+		formatConfirmParam() {
+			// 还原提交订单参数格式
+			this.confirmParam.payInfo = JSON.parse(this.confirmParam.payInfo)
+			this.confirmParam.orderInfo = JSON.parse(this.confirmParam.orderInfo)
+			this.confirmParam.orderInvoice = JSON.parse(this.confirmParam.orderInvoice)
+		},
+		handleClick(e) {
+			//确认提交
+			if (e.index == 1) {
+				if (this.showModalstauts == 2) {
+					this.confirmParam.orderMiniType = 2
+					this.SellerCreateOrderSubmit()
+				} else {
+					this.SellerCreateOrderSubmit()
+				}
 			}
+			this.confirmParam.orderMiniType = 0
+			this.modal = false
+		},
+		handFreightAlertShow() {
+			//显示邮费弹窗
+			this.isfreightTip = true
+		},
+		hideFreight() {
+			//关闭邮费弹窗
+			this.isfreightTip = false
+		},
+		hideMobel() {
+			this.modal = false
+		}
+	},
+	onShow() {
+		let pages = getCurrentPages()
+		let currPage = pages[pages.length - 1]
+		if (currPage.data.select == 'select') {
+			this.isAddress = true
+			let SelectData = uni.getStorageSync('selectAddress')
+			this.confirmParam.addressId = SelectData.addressId
+			this.postageParam.townId = SelectData.townId
+			this.addressData = SelectData
+			this.getFreightData()
+		} else {
+			this.getAddressData()
 		}
 	}
+}
 </script>
 
 <style lang="scss">
-	page {
-		height: auto;
-		background:#F7F7F7;
-	}
-	.btn-hover{
-		background: #FFFFFF;
+page {
+	height: auto;
+	background: #f7f7f7;
+}
+.btn-hover {
+	background: #ffffff;
+}
+.animation {
+	/* transition: transform 0.3s ease;*/
+	transition-property: transform;
+	transition-duration: 0.3s;
+	transition-timing-function: ease;
+}
+.invoice-freight {
+	width: 702rpx;
+	padding: 0 24rpx;
+	height: 86rpx;
+	line-height: 86rpx;
+	font-size: $font-size-28;
+	color: $text-color;
+	background: #ffffff;
+	float: left;
+	font-weight: bold;
+	.freight-left {
+		float: left;
+		.icon-yunfeishuoming {
+			height: 100%;
+			padding: 0 15rpx;
+			color: $color-system;
+			font-weight: normal;
+		}
 	}
-	.animation{
-		/* transition: transform 0.3s ease;*/
-		transition-property: transform;
-		transition-duration: 0.3s;
-		transition-timing-function: ease;
+	.freight-right {
+		float: right;
+		color: #2a81ff;
 	}
-	.invoice-freight{
-		width: 702rpx;
-		padding: 0 24rpx;
+}
+.invoice-balance {
+	width: 702rpx;
+	height: auto;
+	padding: 0 24rpx;
+	background: #ffffff;
+	float: left;
+	margin-top: 24rpx;
+	margin-bottom: 24rpx;
+	.balabce-t {
+		width: 100%;
 		height: 86rpx;
 		line-height: 86rpx;
 		font-size: $font-size-28;
 		color: $text-color;
-		background: #FFFFFF;
 		float: left;
-		font-weight: bold;
-		.freight-left{
+		.balabce-t-le {
 			float: left;
-			.icon-yunfeishuoming{
-				height: 100%;
-				padding: 0 15rpx;
-				color: $color-system;
-				font-weight: normal;
-			}
+			font-weight: bold;
 		}
-		.freight-right{
+		.balabce-t-ri {
 			float: right;
-			color: #2A81FF;
-		}
-	}
-	.invoice-balance{
-		width: 702rpx;
-		height: auto;
-		padding:0 24rpx;
-		background: #FFFFFF;
-		float: left;
-		margin-top: 24rpx;
-		margin-bottom: 24rpx;
-		.balabce-t{
-			width: 100%;
-			height: 86rpx;
-			line-height: 86rpx;
-			font-size: $font-size-28;
-			color: $text-color;
-			float: left;
-			.balabce-t-le{
+			display: flex;
+			align-items: center;
+			.money {
+				display: flex;
 				float: left;
-				font-weight: bold;
 			}
-			.balabce-t-ri{
-				float: right;
+			.checkbox-box {
 				display: flex;
-				align-items: center;
-				.money{
-					display: flex;
-					float: left;
-				}
-				.checkbox-box{
-					display: flex;
-					width: 60rpx;
-					float: left;
-					height: 100%;
-					font-size: $font-size-24;
-					.checkbox{
-						width: 40rpx;
-						text-align: right;
-						box-sizing: border-box;
-						text-align: center;
-						text-decoration: none;
-						border-radius: 0;
-						-webkit-tap-highlight-color: transparent;
-						overflow: hidden;
-						color: $color-system;
-						padding: 5rpx;
-					}
-				}	
-			}
-		}
-		.balabce-b{
-			width: 100%;	
-			float: left;
-			overflow: hidden;
-			.balabce-b-text{
-				width: 100%;
-				line-height: 58rpx;
+				width: 60rpx;
+				float: left;
+				height: 100%;
 				font-size: $font-size-24;
-				color: #FF2A2A;
-				text-align: right;
-				float: right;
+				.checkbox {
+					width: 40rpx;
+					text-align: right;
+					box-sizing: border-box;
+					text-align: center;
+					text-decoration: none;
+					border-radius: 0;
+					-webkit-tap-highlight-color: transparent;
+					overflow: hidden;
+					color: $color-system;
+					padding: 5rpx;
+				}
 			}
-			&.balabce-b--hide {
-				padding: 0 0;
-				height: 0px;
-				line-height: 0px;
-			}	
 		}
 	}
-	.footer{
-		position: fixed;
-		left: 0;
-		bottom: 0;
-		display: flex;
-		align-items: center;
+	.balabce-b {
 		width: 100%;
-		height: 110rpx;
-		line-height: 110rpx;
-		justify-content: space-between;
-		font-size: $font-size-28;
-		background-color: #FFFFFF;
-		z-index: 990;
-		color: $text-color;
-		.footer-le{
-			width:570rpx;
-			height:100%;
-			float: left;
+		float: left;
+		overflow: hidden;
+		.balabce-b-text {
+			width: 100%;
+			line-height: 58rpx;
+			font-size: $font-size-24;
+			color: #ff2a2a;
+			text-align: right;
+			float: right;
 		}
-		.footer-count{
-			float: left;
-			padding-left: 24rpx;
-			width:190rpx;
-			box-sizing: border-box;
-			font-size: $font-size-26;
+		&.balabce-b--hide {
+			padding: 0 0;
+			height: 0px;
+			line-height: 0px;
 		}
-		.footer-price{
-			width:370rpx;
-			float: right;
-			text-align: right;
+	}
+}
+.footer {
+	position: fixed;
+	left: 0;
+	bottom: 0;
+	display: flex;
+	align-items: center;
+	width: 100%;
+	height: 110rpx;
+	line-height: 110rpx;
+	justify-content: space-between;
+	font-size: $font-size-28;
+	background-color: #ffffff;
+	z-index: 990;
+	color: $text-color;
+	.footer-le {
+		width: 570rpx;
+		height: 100%;
+		float: left;
+	}
+	.footer-count {
+		float: left;
+		padding-left: 24rpx;
+		width: 190rpx;
+		box-sizing: border-box;
+		font-size: $font-size-26;
+	}
+	.footer-price {
+		width: 370rpx;
+		float: right;
+		text-align: right;
+		color: $text-color;
+		padding: 10rpx 20rpx 10rpx 0;
+		box-sizing: border-box;
+		.sum-none {
+			width: 100%;
+			height: 45rpx;
+			line-height: 45rpx;
 			color: $text-color;
-			padding: 10rpx 20rpx 10rpx 0;
-			box-sizing: border-box;
-			.sum-none{
-				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
-				color: $text-color;
-				float: left;
-				text-align: right;
-				.money{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-sign{
-					font-size: $font-size-26;
-					color: #999999;
-					text-decoration: line-through;
-				}
-				.money-reduced{
-					margin-left: 10rpx;
-					font-size: $font-size-26;
-					color:$color-system;
-				}
+			float: left;
+			text-align: right;
+			.money {
+				font-size: $font-size-26;
+				color: #999999;
+				text-decoration: line-through;
 			}
-			.sum{
-				width: 100%;
-				height: 45rpx;
-				line-height: 45rpx;
-				float: left;
-				&.none{
-					height: 90rpx;
-					line-height: 90rpx;
-				}
-				.price{
-					font-size: $font-size-32;
-					color: #FF2A2A;
-				}
+			.money-sign {
+				font-size: $font-size-26;
+				color: #999999;
+				text-decoration: line-through;
 			}
-			
-		}
-		.footer-submit{
-			display:flex;
-			align-items:center;
-			justify-content: center;
-			width: 180rpx;
-			height: 100%;
-			box-sizing: border-box;
-			padding: 15rpx 5rpx;
-			.btn{
-				width: 100%;
-				height: 100%;
-				color: #FFFFFF;
-				background:linear-gradient(90deg, #FF9300 0%, #FF5B00 100%);
+			.money-reduced {
+				margin-left: 10rpx;
 				font-size: $font-size-26;
-				text-align: center;
-				line-height: 80rpx;
-				border-radius: 40rpx;
-				&.disabled{
-					background: #e4e8eb;
-					color: #999999;
-				}
+				color: $color-system;
 			}
 		}
-	}
-	.order-return{
-		width: 100%;
-		height: auto;
-		box-sizing: border-box;
-		padding: 0 24rpx;
-		background: #FFFFFF;
-		float: left;
-		margin: 24rpx 0;
-		.order-return-main{
-			width:100%;
-			height: 86rpx;
-			line-height: 86rpx;
-			.label{
-				float: left;
-				font-weight: bold;
-				color: #333333;
-				font-size: $font-size-28;
+		.sum {
+			width: 100%;
+			height: 45rpx;
+			line-height: 45rpx;
+			float: left;
+			&.none {
+				height: 90rpx;
+				line-height: 90rpx;
 			}
-			.label-right{
-				float: right;
-				color: #2A81FF;
-				.text-l{
-					font-size: 28rpx;
-					font-weight: bold;
-					margin-right: 20rpx;
-				}
-				.icon-xiayibu{
-					line-height: 88rpx;
-					color: #999999;
-					font-weight: normal;
-				}
+			.price {
+				font-size: $font-size-32;
+				color: #ff2a2a;
 			}
-			
 		}
-		.order-return-input{
+	}
+	.footer-submit {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 180rpx;
+		height: 100%;
+		box-sizing: border-box;
+		padding: 15rpx 5rpx;
+		.btn {
 			width: 100%;
-			height: 86rpx;
-			padding-bottom: 20rpx;
-			box-sizing: border-box;
-			.input{
-				width: 100%;
-				height: 66rpx;
-				font-size: $font-size-26;
-				border: 1px solid #e1e1e1;
-				line-height: 66rpx;
-				color: #333333;
-				border-radius: 4rpx;
-				box-sizing: border-box;
-				padding: 0 20rpx;
+			height: 100%;
+			color: #ffffff;
+			background: linear-gradient(90deg, #ff9300 0%, #ff5b00 100%);
+			font-size: $font-size-26;
+			text-align: center;
+			line-height: 80rpx;
+			border-radius: 40rpx;
+			&.disabled {
+				background: #e4e8eb;
+				color: #999999;
 			}
 		}
 	}
-	.Rebate{
-		width: 702rpx;
-		height: auto;
-		padding: 0 24rpx;
-		background: #FFFFFF;
-		float: left;
-		margin-bottom: 24rpx;
-		margin-top: 24rpx;
+}
+.order-return {
+	width: 100%;
+	height: auto;
+	box-sizing: border-box;
+	padding: 0 24rpx;
+	background: #ffffff;
+	float: left;
+	margin: 24rpx 0;
+	.order-return-main {
+		width: 100%;
+		height: 86rpx;
 		line-height: 86rpx;
-		.rebate-title{
+		.label {
 			float: left;
 			font-weight: bold;
 			color: #333333;
 			font-size: $font-size-28;
 		}
-		.iconfont{
+		.label-right {
 			float: right;
-			color: #b2b2b2;
-			font-size: 40rpx;
-			&.icon-yixuanze{
-				color: $color-system;
+			color: #2a81ff;
+			.text-l {
+				font-size: 28rpx;
+				font-weight: bold;
+				margin-right: 20rpx;
+			}
+			.icon-xiayibu {
+				line-height: 88rpx;
+				color: #999999;
+				font-weight: normal;
 			}
 		}
 	}
-	.coupon-content-model{
+	.order-return-input {
 		width: 100%;
-		height: 100%;
-		background: rgba(0,0,0,.5);
-		position: fixed;
+		height: 86rpx;
+		padding-bottom: 20rpx;
+		box-sizing: border-box;
+		.input {
+			width: 100%;
+			height: 66rpx;
+			font-size: $font-size-26;
+			border: 1px solid #e1e1e1;
+			line-height: 66rpx;
+			color: #333333;
+			border-radius: 4rpx;
+			box-sizing: border-box;
+			padding: 0 20rpx;
+		}
+	}
+}
+.Rebate {
+	width: 702rpx;
+	height: auto;
+	padding: 0 24rpx;
+	background: #ffffff;
+	float: left;
+	margin-bottom: 24rpx;
+	margin-top: 24rpx;
+	line-height: 86rpx;
+	.rebate-title {
+		float: left;
+		font-weight: bold;
+		color: #333333;
+		font-size: $font-size-28;
+	}
+	.iconfont {
+		float: right;
+		color: #b2b2b2;
+		font-size: 40rpx;
+		&.icon-yixuanze {
+			color: $color-system;
+		}
+	}
+}
+.coupon-content-model {
+	width: 100%;
+	height: 100%;
+	background: rgba(0, 0, 0, 0.5);
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 8888;
+	transition: all 0.4s;
+	.coupon-alert-content {
+		width: 600rpx;
+		height: 612rpx;
+		position: absolute;
 		top: 0;
 		left: 0;
-		z-index: 8888;
-		transition: all 0.4s;
-		.coupon-alert-content{
+		bottom: 0;
+		right: 0;
+		margin: auto;
+		box-sizing: border-box;
+		padding-top: 92rpx;
+		.coupon {
 			width: 600rpx;
-			height: 612rpx;
-			position: absolute;
-			top: 0;
-			left: 0;
-			bottom: 0;
-			right: 0;
-			margin: auto;
+			height: 522rpx;
+			background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
+			background-size: cover;
 			box-sizing: border-box;
-			padding-top: 92rpx;
-			.coupon{
-				width: 600rpx;
-				height: 522rpx;
-				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
-				background-size: cover;
+			padding: 230rpx 40rpx 0 40rpx;
+			.coupon-list {
+				width: 100%;
+				height: 147rpx;
+				margin-bottom: 32rpx;
 				box-sizing: border-box;
-				padding: 230rpx 40rpx 0 40rpx;
-				.coupon-list{
-					width: 100%;
-					height: 147rpx;
-					margin-bottom: 32rpx;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
+				background-size: cover;
+				position: relative;
+				.list-cell-tags {
+					display: inline-block;
+					padding: 0 10rpx;
+					height: 32rpx;
+					line-height: 32rpx;
+					background-color: #f94b4b;
+					color: #ffffff;
+					font-size: 18rpx;
+					border-radius: 16rpx 0 16rpx 0;
+					text-align: center;
+					position: absolute;
+					top: 0;
+					left: 0;
+				}
+				.list-cell-le {
+					width: 154rpx;
+					height: 100%;
 					box-sizing: border-box;
-					background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
-					background-size: cover;
-					position: relative;
-					.list-cell-tags{
-						display: inline-block;
-						padding: 0 10rpx;
-						height: 32rpx;
-						line-height: 32rpx;
-						background-color: #f94b4b;
-						color: #FFFFFF;
-						font-size: 18rpx;
-						border-radius: 16rpx 0 16rpx 0;
+					padding: 30rpx 0;
+					float: left;
+					.coupon-maxMoney {
+						width: 100%;
+						height: 54rpx;
+						line-height: 54rpx;
+						font-size: 42rpx;
+						color: #f94b4b;
 						text-align: center;
-						position: absolute;
-						top: 0;
-						left: 0;
+						margin-top: 10rpx;
+						.small {
+							font-size: $font-size-20;
+						}
 					}
-					.list-cell-le{
-						width: 154rpx;
-						height: 100%;
-						box-sizing: border-box;
-						padding: 30rpx 0;
+					.coupon-minMoney {
+						width: 100%;
+						height: 28rpx;
 						float: left;
-						.coupon-maxMoney{
-							width: 100%;
-							height: 54rpx;
-							line-height: 54rpx;
-							font-size: 42rpx;
+						box-sizing: border-box;
+						padding-left: 24rpx;
+						.txt {
+							display: block;
+							height: 28rpx;
+							line-height: 28rpx;
+							font-size: 16rpx;
 							color: #f94b4b;
 							text-align: center;
-							margin-top: 10rpx;
-							.small{
-								font-size: $font-size-20;
-							}
-						}
-						.coupon-minMoney{
-							width: 100%;
-							height: 28rpx;
+							padding: 0 5rpx;
+							background-color: #fff1eb;
+							border-radius: 4rpx;
 							float: left;
-							box-sizing: border-box;
-							padding-left: 24rpx;
-							.txt{
-								display: block;
-								height: 28rpx;
-								line-height: 28rpx;
-								font-size: 16rpx;
-								color: #f94b4b;
-								text-align: center;
-								padding: 0 5rpx;
-								background-color: #fff1eb;
-								border-radius: 4rpx;
-								float: left;
-							}
 						}
 					}
-					.list-cell-ri{
-						width: 366rpx;
-						height: 100%;
-						box-sizing: border-box;
-						padding:30rpx 20rpx;
+				}
+				.list-cell-ri {
+					width: 366rpx;
+					height: 100%;
+					box-sizing: border-box;
+					padding: 30rpx 20rpx;
+					float: left;
+					.list-cell-top {
+						width: 100%;
+						height: 64rpx;
+						line-height: 64rpx;
+						font-size: $font-size-26;
+						color: #333333;
 						float: left;
-						.list-cell-top{
-							width: 100%;
-							height: 64rpx;
-							line-height: 64rpx;
-							font-size: $font-size-26;
-							color: #333333;
-							float: left;
-							text-overflow:ellipsis;
-							display: -webkit-box;
-							word-break: break-all;
-							-webkit-box-orient: vertical;
-							-webkit-line-clamp: 1;
-							overflow: hidden;
-						}
-						.list-cell-time{
-							width: 100%;
-							height: 28rpx;
-							line-height: 28rpx;
-							text-align: left;
-							font-size: $font-size-20;
-							color: #999999;
-						}
+						text-overflow: ellipsis;
+						display: -webkit-box;
+						word-break: break-all;
+						-webkit-box-orient: vertical;
+						-webkit-line-clamp: 1;
+						overflow: hidden;
+					}
+					.list-cell-time {
+						width: 100%;
+						height: 28rpx;
+						line-height: 28rpx;
+						text-align: left;
+						font-size: $font-size-20;
+						color: #999999;
 					}
 				}
-				.coupon-btn{
-					width: 100%;
-					height: 78rpx;
-					background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
-					background-size: cover;
-					line-height: 78rpx;
-					text-align: center;
-					color: #FFFFFF;
-					font-size: $font-size-36;
-				}
+			}
+			.coupon-btn {
+				width: 100%;
+				height: 78rpx;
+				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
+				background-size: cover;
+				line-height: 78rpx;
+				text-align: center;
+				color: #ffffff;
+				font-size: $font-size-36;
 			}
 		}
 	}
+}
 </style>

+ 16 - 291
pages/seller/order/order-list.vue

@@ -34,14 +34,6 @@
 					@tap.stop="onClickScreenTab(index)"
 					>{{ item.text }}</view
 				>
-				<view
-					class="tab-screen-item"
-					v-if="isManage"
-					:data-current="3"
-					:class="[screenTab == 3 ? 'active' : '']"
-					@tap.stop="onClickScreenTab(3)"
-					>组员订单</view
-				>
 			</scroll-view>
 		</view>
 		<swiper
@@ -83,19 +75,16 @@
 								<view class="order-title">
 									<view class="order-title-name">
 										<text>{{ order.clubName ? order.clubName : '' }}</text>
-										<text class="tags" v-if="order.svipUserFlag == 0 && order.userIdentity === 2"
-											>VIP</text
+										<view class="name" v-if="screenTab === 3"
+											>【 {{ order.serviceName ? order.serviceName : '' }} 】</view
 										>
-										<text class="tags sv" v-if="order.svipUserFlag == 1">SVIP</text>
-										<view class="name" v-if="screenTab === 3">【 {{ order.serviceName ? order.serviceName : '' }} 】</view>
 									</view>
 									<view class="order-title-t">
-										<view class="Rebate " v-if="order.rebateFlag == 1">返佣</view>
 										<text
 											class="bage-buss tui-skeleton-fillet"
 											v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4"
 										>
-											协销
+											采购员
 										</text>
 										<text
 											class="bage-auto tui-skeleton-fillet"
@@ -110,13 +99,6 @@
 										<text class="bage-text tui-skeleton-fillet">
 											订单编号:{{ order.orderNo }}({{ order.orderId }})
 										</text>
-										<image
-											class="bage-icon"
-											src="https://static.caimei365.com/app/img/icon/icon-type@3x.png"
-											mode="widthFix"
-											v-if="order.secondHandOrderFlag == 1"
-										>
-										</image>
 									</view>
 									<view class="order-title-b">
 										<view class="order-title-btxt tui-skeleton-fillet">
@@ -129,9 +111,6 @@
 								</view>
 								<block v-for="(shop, index) in order.shopOrderList" :key="index">
 									<view class="goods-title">
-										<view v-if="shop.shopPromotion" class="floor-item-act">
-											<view class="floor-tags">{{ shop.shopPromotion.name }}</view>
-										</view>
 										<view class="title-text tui-skeleton-fillet">{{ shop.shopName }}</view>
 									</view>
 									<view
@@ -142,9 +121,6 @@
 										<view class="goods-pros-t">
 											<view class="pros-img tui-skeleton-fillet">
 												<image :src="pros.image" alt="" />
-												<text class="tips" v-if="pros.productType == 2 || pros.productType == 1"
-													>赠品</text
-												>
 											</view>
 											<view class="pros-product clearfix">
 												<view class="producttitle tui-skeleton-fillet">{{ pros.name }}</view>
@@ -155,64 +131,18 @@
 													规格:{{ pros.productUnit ? pros.productUnit : '' }}
 												</view>
 												<view class="productprice">
-													<view
-														class="price tui-skeleton-fillet"
-														:class="
-															pros.svipPriceFlag == 1 ||
-															PromotionsFormat(pros.productPromotion)
-																? 'none'
-																: ''
-														"
-													>
+													<view class="price tui-skeleton-fillet">
 														<text>¥{{ pros.price | NumFormat }}</text>
 													</view>
 													<view class="count tui-skeleton-fillet">
 														<text class="small">x</text>{{ pros.num }}
 													</view>
 												</view>
-												<view class="floor-item-act">
-													<template v-if="pros.productPromotion">
-														<view
-															v-if="PromotionsFormat(pros.productPromotion)"
-															class="floor-tags"
-															@click.stop="clickPopupShow(pros.productPromotion)"
-														>
-															{{ pros.productPromotion.name }}
-															<text
-																v-if="
-																	pros.productPromotion != null &&
-																		pros.productPromotion.type != 3
-																"
-															>
-																:¥{{
-																	pros.productPromotion == null
-																		? '0.00'
-																		: pros.productPromotion.touchPrice | NumFormat
-																}}
-															</text>
-														</view>
-														<view
-															v-else-if="pros.productPromotion.type != 3"
-															class="floor-tags"
-															@click.stop="clickPopupShow(pros.productPromotion)"
-															>{{ pros.productPromotion.name }}</view
-														>
-													</template>
-													<template v-if="pros.svipPriceFlag == 1">
-														<view class="svip-tags">
-															<view class="tags">SVIP</view>
-															<view class="price">{{ pros.svipPriceTag }}</view>
-														</view>
-													</template>
-												</view>
 											</view>
 										</view>
 									</view>
 								</block>
 								<view class="order-footer">
-									<view class="order-footer-top" v-if="order.discountFee != 0"
-										>经理折扣:¥{{ order.discountFee | NumFormat }}</view
-									>
 									<view class="order-footer-bot">
 										<view class="count tui-skeleton-fillet">共{{ order.productCount }}件商品</view>
 										<view
@@ -267,21 +197,6 @@
 		</share-alert>
 		<!-- 透明模态层 -->
 		<modal-layer v-if="isModalLayer"></modal-layer>
-		<view class="aganBj" v-show="showAgan">
-			<view class="alertAgan">
-				<text class="title">{{ promptitle }}</text>
-				<view class="goods">
-					<view class="list" v-for="(item, index) in failList" :key="index">
-						<image class="image-left" :src="item.image"></image>
-						<view class="name-right">{{ item.name }}</view>
-					</view>
-				</view>
-				<view class="BtnAll">
-					<view class="closebtn btn" @click="closeBtn">取消</view>
-					<view class="cancel btn" @click="cancelBtn">确定</view>
-				</view>
-			</view>
-		</view>
 	</view>
 </template>
 
@@ -314,9 +229,9 @@ export default {
 				{ listType: 5, text: '退货/款', orderList: [] }
 			],
 			screenTabBar: [
-				{ type: 0, text: '全部订单(我的)' },
-				{ type: 1, text: '自主订单(我的)' },
-				{ type: 2, text: '协销订单(我的)' }
+				{ type: 0, text: '全部订单' },
+				{ type: 1, text: '自主订单' },
+				{ type: 2, text: '采购员订单' }
 			],
 			headerBtnPosi: this.setHeaderBtnPosi(), //获取设备顶部胶囊高度
 			systeminfo: this.setSysteminfo(), //获取设备信息
@@ -352,10 +267,6 @@ export default {
 			pullFlag: true,
 			navbarHeight: '',
 			nomoreText: '上拉显示更多',
-			showAgan: false,
-			failList: [], // 再来一单可购买商品
-			promptitle: '',
-			aganOrderId: 0, // 再来一单商品id
 			userId: 0,
 			manager: 0,
 			rightDrawer: false //控制筛选抽屉
@@ -470,7 +381,7 @@ export default {
 									return item
 								})
 								orderItem.orderList = []
-								orderList.forEach(item => { 
+								orderList.forEach(item => {
 									orderItem.orderList.push(item)
 								})
 								//loaded新字段用于表示数据加载完毕,如果为空可以显示空白页
@@ -487,7 +398,7 @@ export default {
 										this.nomoreText = '已至底部'
 									}
 								}
-							}else{
+							} else {
 								orderItem.orderList = []
 							}
 						})
@@ -539,13 +450,13 @@ export default {
 		detail(order) {
 			//订单详情跳转
 			this.isModalLayer = true
-			if(this.screenTab === 3){
+			if (this.screenTab === 3) {
 				this.$api.navigateTo(
-					`/pages/seller/order/order-club-details?listType=${this.currentTab}&orderId=${order.orderId}&userId=${
-						order.userId
-					}`
+					`/pages/seller/order/order-club-details?listType=${this.currentTab}&orderId=${
+						order.orderId
+					}&userId=${order.userId}`
 				)
-			}else{
+			} else {
 				this.$api.navigateTo(
 					`/pages/seller/order/order-details?listType=${this.currentTab}&orderId=${order.orderId}&userId=${
 						order.userId
@@ -575,57 +486,8 @@ export default {
 				case 'confirm':
 					this.handOrderConfirm(data.orderId)
 					break
-				case 'again':
-					this.handOrderAgain(data.orderId)
-					break
 			}
 		},
-		handOrderAgain(orderId) {
-			this.aganOrderId = orderId
-			this.SellerService.SellerCreateOrderAgain({
-				confirmFlag: 0,
-				orderId: this.aganOrderId,
-				serviceProviderId: this.serviceProviderId
-			})
-				.then(res => {
-					if (res.code == 0) {
-						this.$api.setStorage('orderUserInfo', {
-							clubId: res.data.clubId,
-							againBuyProductIds: res.data.productIds,
-							userId: res.data.userId
-						})
-						this.$api.navigateTo('/pages/seller/cart/cart')
-					}
-				})
-				.catch(error => {
-					if (error.code == -3) {
-						this.showAgan = true
-						this.promptitle = error.msg
-						this.failList = error.data
-					} else if (error.code == -2) {
-						this.$util.modal('', error.msg, '确定', '', false, () => {})
-					} else {
-						this.$util.msg(error.msg, 2000)
-					}
-				})
-		},
-		closeBtn() {
-			//
-			this.showAgan = false
-		},
-		cancelBtn() {
-			// 再来一单弹窗
-			this.SellerService.SellerCreateOrderAgain({
-				serviceProviderId: this.serviceProviderId,
-				orderId: this.aganOrderId,
-				confirmFlag: 1
-			}).then(res => {
-				if (res.code == 0) {
-					this.$api.navigateTo('/pages/seller/cart/cart')
-					this.showAgan = false
-				}
-			})
-		},
 		handOrderConfirm(orderId) {
 			//确认订单
 			this.$util.modal('提示', '确认此订单?', '确定', '取消', true, () => {
@@ -659,7 +521,7 @@ export default {
 		handCenceConfirm(orderId) {
 			//取消订单
 			this.$util.modal('提示', '确认取消该订单吗?', '确定', '取消', true, () => {
-				this.OrderService.CancelOrder({ orderId: orderId ,userIdentity : 1 })
+				this.OrderService.CancelOrder({ orderId: orderId, userIdentity: 1 })
 					.then(response => {
 						this.$util.msg(response.msg, 2000, true, 'success')
 						setTimeout(() => {
@@ -677,7 +539,7 @@ export default {
 			this.getOrderDatainit(this.currentTab)
 		},
 		handlSearchPath() {
-			this.$api.navigateTo('/pages/seller/order/search-order')
+			this.$api.navigateTo('/pages/seller/order/order-search')
 		},
 		onShareAppMessage(res) {
 			//分享转发
@@ -899,22 +761,6 @@ page {
 		text-align: left;
 		font-size: $font-size-28;
 		color: #333333;
-		.tags {
-			display: inline-block;
-			width: 60rpx;
-			height: 32rpx;
-			border-radius: 8rpx;
-			background: #f0cb72;
-			font-size: $font-size-22;
-			color: #4e4539;
-			text-align: center;
-			line-height: 32rpx;
-			margin-left: 10rpx;
-			&.sv {
-				background: #333333;
-				color: #f0cb72;
-			}
-		}
 		.name {
 			float: right;
 			font-size: 26rpx;
@@ -927,14 +773,6 @@ page {
 		float: left;
 		line-height: 68rpx;
 		position: relative;
-		.bage-icon {
-			width: 50rpx;
-			height: 50rpx;
-			display: block;
-			position: absolute;
-			right: 0;
-			top: 9rpx;
-		}
 		.bage-buss {
 			display: inline-block;
 			width: 72rpx;
@@ -957,19 +795,6 @@ page {
 			text-align: center;
 			color: #ffffff;
 		}
-		.Rebate {
-			display: inline-block;
-			width: 72rpx;
-			height: 32rpx;
-			background: #ff7a51;
-			border-radius: 6rpx;
-			line-height: 32rpx;
-			text-align: center;
-			color: #ffffff;
-			margin-top: 10rpx;
-			font-size: $font-size-22;
-			margin-right: 20rpx;
-		}
 		.bage-text {
 			display: inline-block;
 			font-size: $font-size-28;
@@ -1005,14 +830,6 @@ page {
 	height: 56rpx;
 	float: left;
 	margin-top: 10rpx;
-	.floor-item-act {
-		height: 56rpx;
-		text-align: center;
-		box-sizing: border-box;
-		float: left;
-		padding: 10rpx 0;
-		margin-right: 12rpx;
-	}
 	.title-text {
 		width: 400rpx;
 		overflow: hidden;
@@ -1117,27 +934,11 @@ page {
 			}
 		}
 	}
-	.floor-item-act {
-		width: 100%;
-		height: 56rpx;
-		text-align: center;
-		box-sizing: border-box;
-		float: left;
-		padding: 0 0 10rpx 0;
-	}
 }
 .order-footer {
 	width: 100%;
 	height: 78rpx;
 	float: left;
-	.order-footer-top {
-		width: 100%;
-		height: 34rpx;
-		line-height: 34rpx;
-		font-size: $font-size-24;
-		color: #999999;
-		text-align: right;
-	}
 	.order-footer-bot {
 		width: 100%;
 		float: left;
@@ -1158,80 +959,4 @@ page {
 		}
 	}
 }
-.aganBj {
-	position: fixed;
-	left: 0;
-	top: 0;
-	bottom: 0;
-	width: 100%;
-	height: 100%;
-	background-color: rgba(0, 0, 0, 0.5);
-	z-index: 999999;
-	.alertAgan {
-		position: absolute;
-		top: 50%;
-		left: 50%;
-		transform: translate(-50%, -50%);
-		width: 580rpx;
-		background-color: #fff;
-		border-radius: 16rpx;
-		.title {
-			font-size: 30rpx;
-			color: #333333;
-			line-height: 42rpx;
-			padding: 30rpx;
-			display: block;
-		}
-		.goods {
-			padding: 0 30rpx;
-			.list {
-				padding: 10px 0;
-				border-bottom: 1rpx solid #e1e1e1;
-				margin: 10rpx 0;
-				.image-left {
-					width: 86rpx;
-					height: 86rpx;
-					border: 2rpx solid #e1e1e1;
-					border-radius: 6rpx;
-					display: inline-block;
-					vertical-align: middle;
-				}
-				.name-right {
-					display: inline-block;
-					width: 416rpx;
-					margin-left: 15rpx;
-					font-size: 26rpx;
-					color: #666666;
-					vertical-align: middle;
-					word-break: break-all;
-					overflow: hidden;
-					text-overflow: ellipsis;
-					display: -webkit-inline-box;
-					-webkit-line-clamp: 2;
-					-webkit-box-orient: vertical;
-				}
-			}
-		}
-		.BtnAll {
-			margin-top: 30rpx;
-			.btn {
-				display: inline-block;
-				width: 290rpx;
-				height: 90rpx;
-				line-height: 90rpx;
-				text-align: center;
-				&.closebtn {
-					border-radius: 0px 0px 0px 10px;
-					color: #999999;
-					background: #efefef;
-				}
-				&.cancel {
-					border-radius: 0px 0px 8px 0px;
-					background: $btn-confirm;
-					color: #fff;
-				}
-			}
-		}
-	}
-}
 </style>

+ 944 - 0
pages/seller/order/order-search.vue

@@ -0,0 +1,944 @@
+<template>
+	<view class="search-container">
+		<!-- <or-search :theme="themeClass" @getSearchText="getSearchText"></or-search> -->
+		<view class="search-main">
+			<view class="search">
+				<view class="search-input">
+					<text class="iconfont icon-iconfonticonfontsousuo1"></text>
+					<input
+						maxlength="20"
+						focus
+						type="text"
+						value=""
+						confirm-type="search"
+						@focus="onFocus"
+						@input="onShowClose"
+						@confirm="subMitSearch()"
+						placeholder="请输入商品关键词"
+						v-model.trim="listQuery.searchWord"
+					/>
+					<text class="iconfont icon-shanchu2" v-if="isShowClose" @click="delInputText()"></text>
+				</view>
+				<view class="search-btn" @click="subMitSearch()">搜索</view>
+			</view>
+		</view>
+		<view class="search-container-history" v-if="!isShowWrapper">
+			<view :class="'s-' + themeClass" v-if="serachRecordList.length > 0">
+				<view class="header"> 搜索历史<text class="iconfont icon-shanchu" @click="confirmDetele"></text> </view>
+				<view class="list">
+					<view
+						v-for="(item, index) in serachRecordList"
+						:key="index"
+						@click="keywordsClick(item.searchWord)"
+						>{{ item.searchWord }}</view
+					>
+				</view>
+			</view>
+		</view>
+		<view
+			class=" order-container"
+			v-if="isShowWrapper"
+			:style="{ overflow: 'auto', height: showSkeleton ? windowHeight + 'px' : 'auto' }"
+		>
+			<scroll-view
+				class="tui-skeleton"
+				:style="{ height: scrollHeight + 'px' }"
+				@scrolltolower="scrolltolower"
+				scroll-y
+			>
+				<view :class="{ 'tui-order-list': scrollTop >= 0 }" class="tui-skeleton clearfix">
+					<!-- 空白页 -->
+					<empty v-if="isShowEmpty" :navbarHeight="navbarHeight"></empty>
+					<!-- 列表 -->
+					<view v-else class="tui-order-content">
+						<view
+							class="tui-order-item"
+							v-for="(order, orderIndex) in orderList"
+							:key="orderIndex"
+							@click.stop="detail(order)"
+						>
+							<view class="order-title">
+								<view class="order-title-name">
+									<text>{{ order.clubName ? order.clubName : '' }}</text>
+								</view>
+								<view class="order-title-t">
+									<text
+										class="bage-buss tui-skeleton-fillet"
+										v-if="order.orderSubmitType == 3 || order.orderSubmitType == 4"
+										>采购员</text
+									>
+									<text
+										class="bage-auto tui-skeleton-fillet"
+										v-if="
+											order.orderSubmitType == 0 ||
+												order.orderSubmitType == 1 ||
+												order.orderSubmitType == 2
+										"
+									>
+										自主
+									</text>
+									<text class="bage-text tui-skeleton-fillet">
+										订单号:{{ order.orderNo }}({{ order.orderId }})
+									</text>
+								</view>
+								<view class="order-title-b">
+									<view class="order-title-btxt tui-skeleton-fillet"
+										>下单时间:{{ order.orderTime }}</view
+									>
+									<view class="order-title-tip tui-skeleton-fillet">{{
+										StateExpFormat(order.status)
+									}}</view>
+								</view>
+							</view>
+							<block v-for="(shop, index) in order.shopOrderList" :key="index">
+								<view class="goods-title">
+									<view class="title-text tui-skeleton-fillet">{{ shop.shopName }}</view>
+								</view>
+								<view
+									class="goods-item"
+									v-for="(pros, prosIndex) in shop.orderProductList"
+									:key="prosIndex"
+								>
+									<view class="goods-pros-t">
+										<view class="pros-img tui-skeleton-fillet">
+											<image :src="pros.image" alt="" />
+										</view>
+										<view class="pros-product clearfix">
+											<view class="producttitle tui-skeleton-fillet">{{ pros.name }}</view>
+											<view
+												class="productspec tui-skeleton-fillet"
+												v-if="pros.productCategory != 2"
+												>规格:{{ pros.productUnit }}</view
+											>
+											<view class="productprice">
+												<view class="price tui-skeleton-fillet">
+													<text>¥{{ pros.price | NumFormat }}</text>
+												</view>
+												<view class="count tui-skeleton-fillet">
+													<text class="small">x</text>{{ pros.num }}
+												</view>
+											</view>
+										</view>
+									</view>
+								</view>
+							</block>
+							<view class="order-footer">
+								<view class="order-footer-bot">
+									<view class="count tui-skeleton-fillet">共{{ order.productCount }}件商品</view>
+									<view
+										class="money tui-skeleton-fillet"
+										v-if="order.status == 31 || order.status == 32 || order.status == 33"
+									>
+										已支付:<label style="color:#f94b4b ;"
+											>¥{{ order.receiptAmount | NumFormat }}</label
+										>
+									</view>
+									<view class="money tui-skeleton-fillet" v-else>
+										待付总额:<label style="color:#f94b4b ;"
+											>¥{{ order.pendingPayments | NumFormat }}</label
+										>
+									</view>
+								</view>
+							</view>
+							<!-- 底部button -->
+							<order-button
+								ref="orderButton"
+								:status="order.status"
+								:rechargeGoods="order.rechargeGoods"
+								:orderId="order.orderId"
+								:userId="order.userId"
+								:secondHandOrderFlag="order.secondHandOrderFlag"
+								@buttonConfirm="handButtonConfirm"
+							>
+							</order-button>
+						</view>
+						<!--加载loadding-->
+						<tui-loadmore :visible="loadding" :index="3" type="black"></tui-loadmore>
+						<tui-nomore :visible="!pullUpOn" :backgroundColor="'#ffffff'" :text="nomoreText"></tui-nomore>
+						<!--加载loadding-->
+					</view>
+				</view>
+			</scroll-view>
+		</view>
+		<!-- 分享弹窗 -->
+		<share-alert v-if="isShareModal" :orderId="btnoRderID" @shareConfirm="onShareAppMessage"> </share-alert>
+		<!-- 透明模态层 -->
+		<modal-layer v-if="isModalLayer"></modal-layer>
+	</view>
+</template>
+
+<script>
+import orderButton from './components/sellerOrderButton' //按钮
+import modalLayer from '@/components/modal-layer'
+import empty from './components/empty'
+import shareAlert from './components/sellerShareAlert.vue' //分享弹窗
+const defaultListQuery = {
+	pageNum: 1, // 页码
+	pageSize: 10, // 每页条数
+	serviceProviderId: 0, // 用户Id
+	searchWord: '' // 搜索关键词
+}
+export default {
+	components: {
+		orderButton,
+		empty,
+		shareAlert
+	},
+	data() {
+		return {
+			listQuery: Object.assign({}, defaultListQuery),
+			themeClass: 'block',
+			isShowClose: false, //是否显示清空输入框图标
+			isSearchHistory: false, //是都显示搜索历史
+			serachRecordList: [],
+			isShowWrapper: false,
+			isModallayer: false,
+			isShowEmpty: false,
+			windowHeight: '',
+			showSkeleton: true,
+			userId: 0,
+			orderList: [],
+			btnClubUserID: 0,
+			btnoRderID: 0, //点击按钮传入的的订单ID
+			scrollTop: 0,
+			deteleType: '',
+			skeletonShow: true,
+			isShareModal: false, //控制分享弹窗
+			isCenceModal: false, //控制取消订单弹窗
+			isShowDelModal: false, //控制删除订单弹窗
+			isModalLayer: false,
+			loadding: false,
+			pullUpOn: true,
+			hasNextPage: false,
+			pullFlag: true,
+			navbarHeight: '',
+			nomoreText: '上拉显示更多',
+			scrollHeight: '',
+			failList: [], // 再来一单可购买商品
+			promptitle: '',
+			aganOrderId: 0
+		}
+	},
+	onLoad() {
+		this.initGetSerachRecord()
+	},
+	filters: {
+		NumFormat(value) {
+			//处理金额
+			return Number(value).toFixed(2)
+		}
+	},
+	methods: {
+		subMitSearch() {
+			if (this.listQuery.searchWord == '') {
+				this.$util.msg('请输入订单编号', 2000)
+			} else {
+				this.commodityList = []
+				this.getOrderDatainit()
+			}
+		},
+		async initGetSerachRecord() {
+			const userInfo = await this.$api.getStorage()
+			this.listQuery.serviceProviderId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
+			this.userId = userInfo.userId ? userInfo.userId : 0
+			this.OrderService.SearchOrderHistory({ userId: this.userId })
+				.then(response => {
+					this.serachRecordList = response.data
+					if (this.serachRecordList.length > 0) {
+						this.isSearchHistory = true
+					} else {
+						this.isSearchHistory = false
+					}
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		onShowClose() {
+			//输入框失去焦点时触发
+			this.inputEmpty(this.listQuery.searchWord)
+		},
+		onFocus() {
+			//输入框获取焦点时触发
+			this.inputEmpty(this.listQuery.searchWord)
+			this.initGetSerachRecord()
+		},
+		delInputText() {
+			//清除输入框内容
+			this.listQuery.searchWord = ''
+			this.isShowClose = false
+			this.isShowWrapper = false
+			this.inputEmpty(this.listQuery.searchWord)
+			this.initGetSerachRecord()
+		},
+		keywordsClick(item) {
+			//关键词搜索与历史搜索
+			this.listQuery.searchWord = item
+			this.isShowClose = true
+			this.subMitSearch()
+		},
+		confirmDetele() {
+			//清空历史记录
+			this.$util.modal('提示', '确定删除历史记录?', '确定', '取消', true, () => {
+				this.OrderService.ClearOrderHistory({ userId: this.userId })
+					.then(response => {
+						this.$util.msg('删除记录成功', 2000, true, 'success')
+						this.serachRecordList = []
+					})
+					.catch(error => {
+						this.$util.msg(error.msg, 2000)
+					})
+			})
+		},
+		inputEmpty(val) {
+			this.isShowWrapper = false
+			if (val != '') {
+				this.isShowClose = true
+			} else {
+				this.isShowClose = false
+			}
+		},
+		getOrderDatainit(index, source) {
+			/**
+			 * @订单初始化加载  仅加载第一页码
+			 * @param:searchWord(关键词)
+			 * @param:serviceProviderId(用户ID)
+			 * @param:pageNum(页码数)
+			 * @param:listQuery.pageSize(每页条数)
+			 * @param:organizeID(全局变量组织ID)
+			 */
+
+			this.SellerService.getSellerOrderList(this.listQuery)
+				.then(response => {
+					this.isShowWrapper = true
+					this.showSkeleton = true
+					let data = response.data
+					if (data.list && data.list.length > 0) {
+						let filrerData = data.list.filter(item => {
+							//添加不同状态下订单的表现形式
+							item = Object.assign(item, this.StateExpFormat(item.state))
+							return item
+						})
+						this.orderList = []
+						filrerData.forEach(item => {
+							this.orderList.push(item)
+						})
+						this.hasNextPage = data.hasNextPage
+						if (this.hasNextPage) {
+							this.pullUpOn = false
+							this.nomoreText = '上拉显示更多'
+						} else {
+							if (this.orderList.length < 2) {
+								this.pullUpOn = true
+							} else {
+								this.pullUpOn = false
+								this.nomoreText = '已至底部'
+							}
+						}
+						this.isShowEmpty = false
+					} else {
+						this.isShowEmpty = true
+					}
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		getOnReachBottomData(index) {
+			//上拉加载
+			this.listQuery.pageNum += 1
+			this.SellerService.getSellerOrderList(this.listQuery)
+				.then(response => {
+					let data = response.data
+					this.hasNextPage = data.hasNextPage
+					this.orderList = this.orderList.concat(data.list)
+					this.pullFlag = false // 防上拉暴滑
+					setTimeout(() => {
+						this.pullFlag = true
+					}, 500)
+					if (this.hasNextPage) {
+						this.pullUpOn = false
+						this.nomoreText = '上拉显示更多'
+					} else {
+						this.loadding = false
+						this.pullUpOn = false
+						this.nomoreText = '已至底部'
+					}
+				})
+				.catch(error => {
+					this.$util.msg(error.msg, 2000)
+				})
+		},
+		scrolltolower() {
+			if (this.hasNextPage) {
+				this.loadding = true
+				this.pullUpOn = true
+				this.showSkeleton = false
+				this.getOnReachBottomData()
+			}
+		},
+		detail(order) {
+			//订单详情跳转
+			this.isModalLayer = true
+			this.$api.navigateTo(
+				`/pages/seller/order/order-details?type=seacrch&orderId=${order.orderId}&userId=${order.userId}`
+			)
+		},
+		handButtonConfirm(data) {
+			//获取点击
+			this.handShowAlert(data)
+			this.btnoRderID = data.orderId
+		},
+		handShowAlert(data) {
+			//执行
+			switch (data.type) {
+				case 'query':
+					this.isModalLayer = true
+					this.$api.navigateTo('/pages/user/order/order-logistics?orderID=' + data.orderId)
+					break
+				case 'delete':
+					this.handOrderDetele(data.orderId)
+					break
+				case 'cancel':
+					this.handCenceConfirm(data.orderId)
+					break
+				case 'confirm':
+					this.handOrderConfirm(data.orderId)
+					break
+			}
+		},
+		handOrderConfirm(orderId) {
+			//确认订单
+			this.$util.modal('提示', '确认此订单?', '确定', '取消', true, () => {
+				this.OrderService.AffirmOrder({ orderId: orderId })
+					.then(response => {
+						this.$util.msg(response.msg, 2000, true, 'success')
+						setTimeout(() => {
+							this.getOrderDatainit()
+						}, 2000)
+					})
+					.catch(error => {
+						this.$util.msg(error.msg, 2000)
+					})
+			})
+		},
+		handOrderDetele(orderId) {
+			//删除订单
+			this.$util.modal('提示', '确认删除该订单吗?', '确定', '取消', true, () => {
+				this.OrderService.DeleteOrder({ orderId: orderId })
+					.then(response => {
+						this.$util.msg(response.msg, 2000, true, 'success')
+						setTimeout(() => {
+							this.getOrderDatainit()
+						}, 2000)
+					})
+					.catch(error => {
+						this.$util.msg(error.msg, 2000)
+					})
+			})
+		},
+		handCenceConfirm(orderId) {
+			//取消订单
+			this.$util.modal('提示', '确认取消该订单吗?', '确定', '取消', true, () => {
+				this.OrderService.CancelOrder({ orderId: orderId, userIdentity: 1 })
+					.then(response => {
+						this.$util.msg(response.msg, 2000, true, 'success')
+						setTimeout(() => {
+							this.getOrderDatainit()
+						}, 2000)
+					})
+					.catch(error => {
+						this.$util.msg(error.msg, 2000)
+					})
+			})
+		},
+		onShareAppMessage(res) {
+			//分享转发
+			this.isShareModal = false
+			if (res.from === 'button') {
+				// 来自页面内转发按钮
+			}
+			return {
+				title: '您有新的分享订单,快来查看吧~',
+				path: `/pages/user/order/order-sharelogin?orderId=${this.btnoRderID}&userId=${
+					this.btnClubUserID
+				}&serviceProviderId=${this.serviceProviderId}`,
+				imageUrl: 'https://img.caimei365.com/group1/M00/03/95/Cmis216Sk_SABnOFABZCgCzFV_g063.png'
+			}
+		},
+		PromotionsFormat(promo) {
+			//促销活动类型数据处理
+			if (promo != null) {
+				if (promo.type == 1 && promo.mode == 1) {
+					return true
+				} else {
+					return false
+				}
+			}
+			return false
+		},
+		//订单状态文字和颜色
+		StateExpFormat(state) {
+			let stateText = '',
+				stateTextObject = {
+					4: '交易完成',
+					5: '订单完成',
+					6: '已关闭',
+					7: '交易全退',
+					77: '交易全退',
+					11: '待付款待发货',
+					12: '待付款部分发货',
+					13: '待付款已发货',
+					21: '部分付款待发货',
+					22: '部分付款部分发货',
+					23: '部分付款已发货',
+					31: '已付款待发货',
+					32: '已付款部分发货',
+					33: '已付款已发货',
+					111: '待付款待发货'
+				}
+			Object.keys(stateTextObject).forEach(key => {
+				if (key == state) {
+					stateText = stateTextObject[key]
+				}
+			})
+			return stateText
+		},
+		orderPriceToFixed(n) {
+			let price = ''
+			price = n.toFixed(2)
+			return price
+		},
+		setScrollHeight() {
+			const { windowHeight, pixelRatio } = wx.getSystemInfoSync()
+			this.windowHeight = windowHeight - 1
+			this.scrollHeight = windowHeight - 1
+		}
+	},
+	onPageScroll(e) {
+		this.scrollTop = e.scrollTop
+	},
+	onShow() {
+		this.setScrollHeight()
+		this.$api.getStorage().then(resolve => {
+			this.serviceProviderId = resolve.serviceProviderId
+		})
+	}
+}
+</script>
+
+<style lang="scss">
+@import '@/uni.scss';
+page {
+	background-color: #f7f7f7 !important;
+}
+.search {
+	width: 702rpx;
+	height: 70rpx;
+	padding: 12rpx 24rpx;
+	border-bottom: 1px solid #f0f0f0;
+	position: fixed;
+	top: 0;
+	left: 0;
+	background: #ffffff;
+	z-index: 1001;
+	.search-input {
+		width: 448rpx;
+		height: 70rpx;
+		padding: 0 68rpx;
+		line-height: 70rpx;
+		border-radius: 40rpx;
+		position: relative;
+		background: #f0f0f0;
+		float: left;
+		.icon-iconfonticonfontsousuo1 {
+			font-size: 36rpx;
+			color: #8a8a8a;
+			position: absolute;
+			left: 24rpx;
+			z-index: 10;
+		}
+		.icon-shanchu2 {
+			font-size: 36rpx;
+			color: #8a8a8a;
+			position: absolute;
+			right: 24rpx;
+			top: 0;
+			padding: 0 10rpx;
+			z-index: 10;
+		}
+		input {
+			width: 448rpx;
+			height: 70rpx;
+			background-color: #f0f0f0;
+			font-size: 26rpx;
+		}
+	}
+	.search-btn {
+		width: 118rpx;
+		height: 70rpx;
+		line-height: 70rpx;
+		color: $color-system;
+		font-size: 30rpx;
+		text-align: center;
+		float: left;
+	}
+	.voice-icon {
+		width: 36rpx;
+		height: 36rpx;
+		padding: 16rpx 20rpx 16rpx 0;
+		position: absolute;
+		left: 16rpx;
+		top: 4rpx;
+		z-index: 10;
+	}
+}
+.search-container {
+	padding-top: 106rpx;
+}
+.s-block {
+	background: #ffffff;
+	.header {
+		font-size: 32rpx;
+		padding: 40rpx 24rpx 22rpx 24rpx;
+		line-height: 42rpx;
+		font-size: 30rpx;
+		font-weight: bold;
+		position: relative;
+		.icon-shanchu {
+			font-size: 36rpx;
+			color: #333333;
+			float: right;
+			padding: 0 10rpx;
+			z-index: 10;
+			font-weight: normal;
+		}
+	}
+	.list {
+		display: flex;
+		flex-wrap: wrap;
+		padding-bottom: 40rpx;
+		view {
+			color: #8a8a8a;
+			font-size: 24rpx;
+			box-sizing: border-box;
+			text-align: center;
+			height: 48rpx;
+			line-height: 48rpx;
+			border-radius: 24rpx;
+			margin: 12rpx;
+			padding: 0 30rpx;
+			overflow: hidden;
+			white-space: nowrap;
+			text-overflow: ellipsis;
+			background-color: #f3f3f3;
+		}
+	}
+}
+.s-circle {
+	margin-top: 30rpx;
+	.header {
+		font-size: 32rpx;
+		padding: 30rpx;
+		border-bottom: 2rpx solid #f9f9f9;
+		position: relative;
+		image {
+			width: 36rpx;
+			height: 36rpx;
+			padding: 10rpx;
+			position: absolute;
+			right: 40rpx;
+			top: 24rpx;
+		}
+	}
+	.list {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 30rpx 20rpx;
+		view {
+			padding: 8rpx 30rpx;
+			margin: 20rpx 30rpx 0 0;
+			font-size: 28rpx;
+			color: #8a8a8a;
+			background-color: #f7f7f7;
+			box-sizing: border-box;
+			text-align: center;
+			border-radius: 20rpx;
+		}
+	}
+}
+.wanted-block {
+	margin-top: 30rpx;
+	.header {
+		font-size: 32rpx;
+		padding: 30rpx;
+	}
+	.list {
+		display: flex;
+		flex-wrap: wrap;
+		view {
+			width: 50%;
+			color: #8a8a8a;
+			font-size: 28rpx;
+			box-sizing: border-box;
+			text-align: center;
+			padding: 20rpx 0;
+			border-top: 2rpx solid #fff;
+			border-left: 2rpx solid #fff;
+			background-color: #f7f7f7;
+			overflow: hidden;
+			white-space: nowrap;
+			text-overflow: ellipsis;
+		}
+	}
+}
+.wanted-circle {
+	margin-top: 30rpx;
+	.header {
+		font-size: 32rpx;
+		padding: 30rpx;
+	}
+	.list {
+		display: flex;
+		flex-wrap: wrap;
+		padding: 0 30rpx 20rpx;
+		view {
+			padding: 8rpx 30rpx;
+			margin: 20rpx 30rpx 0 0;
+			font-size: 28rpx;
+			color: #8a8a8a;
+			background-color: #f7f7f7;
+			box-sizing: border-box;
+			text-align: center;
+			border-radius: 20rpx;
+		}
+	}
+}
+.order-container {
+	scroll-view {
+		height: 100%;
+		overflow: scroll;
+	}
+}
+.container {
+	padding-bottom: env(safe-area-inset-bottom);
+	height: auto;
+	position: relative;
+}
+.tui-order-content {
+	width: 100%;
+	height: auto;
+}
+.tui-order-list {
+	width: 100%;
+	position: relative;
+}
+.tui-order-item {
+	display: flex;
+	flex-direction: column;
+	width: 702rpx;
+	padding: 20rpx 24rpx 0 24rpx;
+	background: #fff;
+	border-bottom: 20rpx solid #f7f7f7;
+}
+.order-title {
+	width: 100%;
+	height: auto;
+	.order-title-name {
+		width: 100%;
+		height: 72rpx;
+		border-bottom: 1px solid #f7f7f7;
+		line-height: 72rpx;
+		text-align: left;
+		font-size: $font-size-28;
+		color: #333333;
+		.tags {
+			display: inline-block;
+			width: 60rpx;
+			height: 32rpx;
+			border-radius: 8rpx;
+			background: #f0cb72;
+			font-size: $font-size-22;
+			color: #4e4539;
+			text-align: center;
+			line-height: 32rpx;
+			margin-left: 10rpx;
+			&.sv {
+				background: #333333;
+				color: #f0cb72;
+			}
+		}
+	}
+	.order-title-t {
+		width: 100%;
+		height: 68rpx;
+		float: left;
+		line-height: 68rpx;
+		position: relative;
+		.bage-buss {
+			display: inline-block;
+			width: 72rpx;
+			height: 30rpx;
+			background: radial-gradient(circle, rgba(255, 39, 180, 1) 0%, rgba(193, 77, 245, 1) 100%);
+			border-radius: 4rpx;
+			line-height: 30rpx;
+			font-size: $font-size-22;
+			text-align: center;
+			color: #ffffff;
+		}
+		.bage-auto {
+			display: inline-block;
+			width: 72rpx;
+			height: 30rpx;
+			background: radial-gradient(circle, rgba(255, 180, 39, 1) 0%, rgba(245, 142, 77, 1) 100%);
+			border-radius: 4rpx;
+			line-height: 30rpx;
+			font-size: $font-size-22;
+			text-align: center;
+			color: #ffffff;
+		}
+		.bage-text {
+			display: inline-block;
+			font-size: $font-size-28;
+			line-height: 68rpx;
+			text-align: left;
+			color: $color-system;
+			margin-left: 10rpx;
+		}
+	}
+	.order-title-b {
+		width: 100%;
+		height: 40rpx;
+		float: left;
+		margin-top: 8rpx;
+		.order-title-btxt {
+			float: left;
+			font-size: $font-size-28;
+			line-height: 40rpx;
+			color: #999999;
+			text-align: lef;
+		}
+		.order-title-tip {
+			float: right;
+			font-size: $font-size-28;
+			line-height: 40rpx;
+			text-align: right;
+			color: #ff2a2a;
+		}
+	}
+}
+.goods-title {
+	width: 100%;
+	height: 56rpx;
+	float: left;
+	margin-top: 10rpx;
+	.title-text {
+		width: 400rpx;
+		overflow: hidden;
+		text-overflow: ellipsis;
+		white-space: nowrap;
+		float: left;
+		font-size: $font-size-28;
+		color: $text-color;
+		text-align: left;
+		line-height: 56rpx;
+		font-weight: bold;
+	}
+}
+.goods-item {
+	width: 100%;
+	height: auto;
+}
+.goods-pros-t {
+	display: flex;
+	align-items: center;
+	width: 100%;
+	height: 217rpx;
+	padding: 24rpx 0;
+	.pros-img {
+		width: 210rpx;
+		height: 100%;
+		border-radius: 10rpx;
+		margin: 0 26rpx 0 0;
+		border: 1px solid #f3f3f3;
+		image {
+			width: 100%;
+			height: 100%;
+			border-radius: 10rpx;
+		}
+	}
+}
+.pros-product {
+	width: 460rpx;
+	height: 100%;
+	line-height: 36rpx;
+	font-size: $font-size-26;
+	position: relative;
+	float: left;
+	.producttitle {
+		width: 100%;
+		display: inline-block;
+		height: auto;
+		text-overflow: ellipsis;
+		display: -webkit-box;
+		word-break: break-all;
+		-webkit-box-orient: vertical;
+		-webkit-line-clamp: 2;
+		overflow: hidden;
+		margin-bottom: 8rpx;
+	}
+	.productspec {
+		height: 36rpx;
+		color: #999999;
+	}
+	.productprice {
+		height: 48rpx;
+		width: 100%;
+		float: left;
+		.price {
+			line-height: 48rpx;
+			font-size: $font-size-28;
+			width: 48%;
+			color: #ff2a2a;
+			float: left;
+			font-weight: bold;
+			&.none {
+				text-decoration: line-through;
+				color: #999999;
+			}
+		}
+		.count {
+			height: 100%;
+			float: right;
+			position: relative;
+			.small {
+				color: #666666;
+			}
+		}
+	}
+}
+.order-footer {
+	width: 100%;
+	height: 78rpx;
+	float: left;
+	.order-footer-bot {
+		width: 100%;
+		float: left;
+		height: 48rpx;
+		line-height: 48rpx;
+		font-size: $font-size-28;
+		font-weight: bold;
+		color: $text-color;
+		.count {
+			width: 50%;
+			float: left;
+			text-align: left;
+		}
+		.money {
+			width: 50%;
+			float: right;
+			text-align: right;
+		}
+	}
+}
+</style>

+ 5 - 1
pages/tabBar/home/index.js

@@ -71,7 +71,11 @@ const homeMiXins = {
                 this.login(res.data)
                 uni.setStorageSync('token', res.data.token)
                 uni.setStorageSync('unionId', res.data.unionId)
-                this.mallOrganizeHome()
+                if (res.data.userIdentity == 1) {
+                    this.$api.redirectTo('/pages/seller/index/index')
+                }else{
+					 this.mallOrganizeHome()
+                }
             } catch (error) {
                 this.logout()
                 uni.setStorageSync('unionId', error.data.unionId)

+ 57 - 14
pages/tabBar/user/user.vue

@@ -14,7 +14,10 @@
 				<view class="header-main" v-if="hasLogin">
 					<view class="header-icon">
 						<view class="header-logo">
-							<image :src="underInfo.shopPhoto ? underInfo.shopPhoto : `${staticUrl}icon_default@3x.png`" mode=""></image>
+							<image
+								:src="underInfo.shopPhoto ? underInfo.shopPhoto : `${staticUrl}icon_default@3x.png`"
+								mode=""
+							></image>
 						</view>
 					</view>
 					<view class="header-text">
@@ -22,6 +25,9 @@
 							><text class="user-item-none">{{ underInfo.name | nameFilters }}</text></view
 						>
 					</view>
+					<view class="header-set" @click="navigator('/pages/user/setting/setting')">
+						<text class="iconfont icon-shezhi1"></text>
+					</view>
 				</view>
 				<view class="header-main" v-else-if="isUnderLogin">
 					<view class="header-icon">
@@ -45,6 +51,9 @@
 							</view>
 						</view>
 					</view>
+					<view class="header-set" @click="navigator('/pages/user/setting/setting')">
+						<text class="iconfont icon-shezhi1"></text>
+					</view>
 				</view>
 				<view class="header-main-none" v-else>
 					<view class="header-icon" @click="navigator('/pages/login/login')">
@@ -64,6 +73,24 @@
 							<text class="iconfont icon-xiangyou"></text>
 						</view>
 						<view class="order-section">
+							<view
+								class="order-item"
+								@click="navigator('/pages/user/order/order-list?state=1')"
+								hover-class="common-hover"
+								:hover-stay-time="50"
+							>
+								<view class="order-icon">
+									<image :src="staticUrl + 'icon_order_1@2x.png'" mode=""></image>
+									<text
+										v-if="confirmedCount > 0 && hasLogin"
+										class="uni-badge uni-badge-error uni-small uni-badge--small icon-num"
+										:class="[confirmedCount < 10 ? 'goleft' : '']"
+									>
+										{{ confirmedCount >= 99 ? '99+' : confirmedCount }}
+									</text>
+								</view>
+								<text class="order-t">待确认</text>
+							</view>
 							<view
 								class="order-item"
 								@click="navigator('/pages/user/order/order-list?state=2')"
@@ -156,6 +183,8 @@
 							<text class="cell-tit"> {{ item.name }} </text>
 							<text class="cell-more iconfont icon-xiangyou"></text>
 						</view>
+					</view>
+					<view class="list-cell-item">
 						<!-- #ifdef MP-WEIXIN -->
 						<button class="list-cell" open-type="contact" @bindcontact="handleContact">
 							<view class="cell-icon">
@@ -210,6 +239,11 @@ export default {
 					path: '/pages/user/collection/collection',
 					icon: 'icon_club_1@2x.png'
 				},
+				{
+					name: '运营人员管理',
+					path: '/pages/user/operator/list',
+					icon: 'icon_club_6@2x.png'
+				},
 				{
 					name: '收货地址管理',
 					path: '/pages/user/address/address',
@@ -219,11 +253,6 @@ export default {
 					name: '机构资料',
 					path: '/pages/login/information',
 					icon: 'icon_club_3@2x.png'
-				},
-				{
-					name: '账户设置',
-					path: '/pages/user/setting/setting',
-					icon: 'icon_club_4@2x.png'
 				}
 			],
 			underInfo: {},
@@ -232,16 +261,16 @@ export default {
 	},
 	filters: {
 		nameFilters(value) {
-			if(value && value.length>15){
-				return value.substring(0,15)+"..." 
-			}else{
+			if (value && value.length > 15) {
+				return value.substring(0, 15) + '...'
+			} else {
 				return value
 			}
 		}
 	},
 	onLoad(option) {},
 	computed: {
-		...mapState(['hasLogin', 'userInfo', 'isWxAuthorize']),
+		...mapState(['hasLogin', 'userInfo', 'isWxAuthorize'])
 	},
 	methods: {
 		...mapMutations(['updateNoticeNum']),
@@ -255,11 +284,11 @@ export default {
 		},
 		async getClubObtainCenter() {
 			// 获取个人中心数据
-			try{
+			try {
 				const res = await this.UserService.GetClubObtainCenter({ userId: this.userId })
 				let data = res.data
-				this.underInfo = { ...this.underInfo , ...data.club } 
-			}catch(e){
+				this.underInfo = { ...this.underInfo, ...data.club }
+			} catch (e) {
 				this.$util.msg(error.msg, 2000)
 			}
 		},
@@ -380,6 +409,7 @@ page {
 	height: 130rpx;
 	padding: 12rpx 24rpx;
 	display: flex;
+	position: relative;
 	.header-text {
 		flex: 8;
 		display: flex;
@@ -407,7 +437,7 @@ page {
 					background: #f85050;
 				}
 			}
-			.user-item-none{
+			.user-item-none {
 				font-size: $font-size-32;
 				line-height: 120rpx;
 				color: #ffffff;
@@ -462,6 +492,19 @@ page {
 			}
 		}
 	}
+	.header-set {
+		width: 60rpx;
+		height: 60rpx;
+		line-height: 60rpx;
+		text-align: center;
+		position: absolute;
+		right: 24rpx;
+		top: 0;
+		.iconfont {
+			font-size: 32rpx;
+			color: #fff;
+		}
+	}
 }
 .header-main-none {
 	width: 702rpx;

+ 144 - 123
pages/user/operator/form.vue

@@ -3,159 +3,180 @@
 		<view class="operator-content">
 			<view class="operator-from">
 				<view class="from-row">
-					<input class="input" type="text" v-model="params.linkName" placeholder="请输入运营人员姓名" maxlength="6"/>
+					<input
+						class="input"
+						type="text"
+						v-model="params.linkName"
+						placeholder="请输入运营人员姓名"
+						maxlength="6"
+					/>
 				</view>
 				<view class="from-row">
-					<input class="input" type="text" v-model="params.mobile" placeholder="请输入运营人员手机号" maxlength="11"/>
+					<input
+						class="input"
+						type="text"
+						v-model="params.mobile"
+						placeholder="请输入运营人员手机号"
+						maxlength="11"
+					/>
 				</view>
-				<button class="add-btn" @click="hanldConfirm">确定</button>
+				<button
+					class="add-btn"
+					:disabled="disabled"
+					:class="[disabled ? 'disabled' : '']"
+					@click="hanldConfirm"
+				>
+					确定
+				</button>
 			</view>
 			<view class="operator-text">
 				<view class="text-main">
-					<view>1. 添加运营人员后,运营人员会收到一条邀请码短信</view>
-					<view>2. 运营人员在微信搜索【采美采购商城】小程序,或者搜索关注【采美365】公众号,从底部菜单进入【采美采购商城】小程序</view>
-					<view>3. 使用邀请码进行登录并绑定微信</view>
-					<view>4. 绑定后,运营人员可通过微信直接登录采美365网</view>
+					<view class="h1">注意事项:</view> <view>1. 添加运营人员后,运营人员会收到一条邀请码短信</view>
+					<view>2.运营人员直接使用邀请码进行登录“丽格集采联盟”小程序,同时绑定微信。</view>
+					<view>3.绑定后,运营人员可通过微信直接登录“丽格集采联盟”小程序。</view>
 				</view>
 			</view>
 		</view>
 	</view>
 </template>
 
-<script>	
-	import authorize from '@/common/config/authorize.js'	
-	
-	export default {
-		data() {
-			return {
-				params:{
-					mobile:'',
-					linkName:'',
-					userId:0,
-					clubId:0,
-					configFlag:2
-				}
+<script>
+import authorize from '@/common/config/authorize.js'
+
+export default {
+	data() {
+		return {
+			params: {
+				mobile: '',
+				linkName: '',
+				userId: 0,
+				clubId: 0,
+				configFlag: 2
 			}
-		},
-		onLoad(option){
-			
-		},
-		methods: {			
-			//提交
-			hanldConfirm(){
-				let data = this.addressData;
-				if(this.params.linkName== ''){
-					this.$util.msg('请输入运营人员姓名');
-					return;
-				}
-				if(this.params.mobile == ''){
-					this.$util.msg('请输入运营人员手机号');
-					return;
-				}
-				if(!/(^1[0-9][0-9]{9}$)/.test(this.params.mobile)){
-					this.$util.msg('请输入正确的手机号码');
-					return;
-				}
-				this.UserService.PostAddOperator(this.params).then(response =>{
-					this.$util.msg('添加成功',2000,true,'success')
-					setTimeout(() =>{
-						uni.navigateBack();
-					},2000)
-				}).catch(error =>{
-					this.$util.msg(error.msg,2000);
-				})
+		}
+	},
+	onLoad(option) {},
+	computed: {
+		disabled() {
+			return !(this.params.mobile && this.params.linkName)
+		}
+	},
+	methods: {
+		//提交
+		async hanldConfirm() {
+			if (!/(^1[0-9][0-9]{9}$)/.test(this.params.mobile)) {
+				this.$util.msg('请输入正确的手机号码')
+				return
 			}
+			const use = await this.$api.getStorage()
+			this.params.userId = use.userId
+			this.params.clubId = use.clubId
+			this.addOperator(this.params)
 		},
-		onShow() {
-			this.$api.getStorage().then((resolve) =>{
-				this.params.userId = resolve.userId ? resolve.userId : 0
-				this.params.clubId = resolve.clubId ? resolve.clubId : 0
-			})
+		async addOperator(params){
+			try{
+				const res = await this.UserService.PostAddOperator(params)
+				this.$util.msg(res.msg, 2000, true, 'success')
+				setTimeout(() => {
+					uni.navigateBack()
+				}, 2000)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
+			}
 		}
+	},
+	onShow() {
+		
 	}
+}
 </script>
 
 <style lang="scss">
-	page{
-		height: auto;
-		background: $bg-color;
-		border-top: 1px solid #EBEBEB;
-	}
-	.operator{
-		padding-top: 160rpx;
-		.operator-content{
+page {
+	height: auto;
+	background: $bg-color;
+	border-top: 1px solid #ebebeb;
+}
+.operator {
+	padding-top: 160rpx;
+	.operator-content {
+		width: 100%;
+		padding: 0 75rpx;
+		box-sizing: border-box;
+		.operator-from {
 			width: 100%;
-			padding: 0 75rpx;
-			box-sizing: border-box;
-			.operator-from{
-				width: 100%;
-				height: auto;
-				.from-row{
-					height: 40rpx;
-					padding: 24rpx 0;
-					background: #FFFFFF;
-					margin-bottom: 40rpx;
-					font-size: $font-size-28;
-					color: $text-color;
-					border-bottom: 1px solid #E1E1E1;
-					.input{
-						width: 100%;
-						height: 100%;
-						text-align: left;
-					}
+			height: auto;
+			.from-row {
+				height: 40rpx;
+				padding: 24rpx 0;
+				background: #ffffff;
+				margin-bottom: 40rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				border-bottom: 1px solid #e1e1e1;
+				.input {
+					width: 100%;
+					height: 100%;
+					text-align: left;
 				}
 			}
-			.operator-text{
+		}
+		.operator-text {
+			width: 100%;
+			height: auto;
+			margin-top: 50rpx;
+			line-height: 40rpx;
+			.title {
+				margin-bottom: 50rpx;
+				.icon-gantanhao-yuankuang {
+					font-size: $font-size-32;
+					color: #166ce1;
+					margin-right: 10rpx;
+				}
+				.text-m {
+					font-size: $font-size-30;
+					color: #166ce1;
+				}
+				.text-s {
+					font-size: $font-size-24;
+					color: #999999;
+				}
+			}
+			.text-main {
 				width: 100%;
 				height: auto;
-				margin-top: 50rpx;
-				line-height: 40rpx;
-				.title{
-					margin-bottom: 50rpx;
-					.icon-gantanhao-yuankuang{
-						font-size: $font-size-32;
-						color: #166CE1;
-						margin-right: 10rpx;
-					}
-					.text-m{
-						font-size: $font-size-30;
-						color: #166CE1;
-					}
-					.text-s{
-						font-size: $font-size-24;
-						color: #999999;
-					}
-				}
-				.text-main{
-					width: 100%;
-					height: auto;
-					view{
-						line-height: 40rpx;
-						font-size: $font-size-28;
-						color: $text-color;
-						text-align: justify;
-						margin-bottom: 10rpx;
+				view {
+					line-height: 40rpx;
+					font-size: $font-size-24;
+					color: #999999;
+					text-align: justify;
+					margin-bottom: 10rpx;
+					&.h1 {
+						color: #666666;
 					}
 				}
 			}
-			
-		}
-		.add-btn{
-			width: 600rpx;
-			height: 88rpx;
-			font-size: $font-size-28;
-			line-height: 88rpx;
-			color: #FFFFFF;
-			margin: 0 auto;
-			text-align: center;
-			background: $btn-confirm;
-			border-radius: 44rpx;
-			margin-top: 80rpx;
 		}
-		.add-btn.disabled{
-			background: #F8F8F8;
+	}
+	.add-btn {
+		width: 600rpx;
+		height: 88rpx;
+		font-size: $font-size-28;
+		line-height: 88rpx;
+		color: #ffffff;
+		margin: 0 auto;
+		text-align: center;
+		background: $btn-confirm;
+		border-radius: 44rpx;
+		margin-top: 80rpx;
+		&.disabled {
+			background: #e1e1e1;
 			border-radius: 44rpx;
 		}
 	}
+	.add-btn.disabled {
+		background: #f8f8f8;
+		border-radius: 44rpx;
+	}
+}
 </style>
-

+ 203 - 161
pages/user/operator/list.vue

@@ -2,8 +2,8 @@
 	<view class="container operator clearfix">
 		<view class="operator-top clearfix">
 			<view class="operator-title">
-				<view class="head"><image :src="clubImage" mode=""></image></view>
-				<view class="title">{{ clubName }}</view>
+				<view class="head"><image :src="staticUrl + 'icon_default@3x.png'" mode=""></image></view>
+				<view class="title">{{ clubName | nameFilters }}</view>
 			</view>
 			<view class="operator-search">
 				<view class="search-wrap">
@@ -43,14 +43,7 @@
 					>
 						<view class="list-left">
 							<view class="list-head"
-								><image
-									:src="
-										item.avatarUrl
-											? item.avatarUrl
-											: 'https://static.caimei365.com/app/img/icon/icon-seller@3x.png'
-									"
-									mode=""
-								></image
+								><image :src="staticUrl + 'icon_default_opea@2x.png'" mode=""></image
 							></view>
 							<view class="list-tel">
 								<text class="txt">{{ item.linkName ? item.linkName : '' }}</text>
@@ -59,20 +52,23 @@
 						</view>
 						<view class="list-opea">
 							<view class="opea-type">
-								<view class="opea-type-cell" v-if="item.effectiveFlag != null">
-									<text
-										class="iconfont icon-iconfontweixin"
-										:style="{ color: iconStautsColor(item.status) }"
-									></text>
-									<text :style="{ color: rexpStautsColor(item.effectiveFlag) }">{{
-										rexpStautsText(item.effectiveFlag)
-									}}</text>
+								<view
+									class="opea-type-cell"
+									v-if="item.effectiveFlag"
+									:class="{
+										success: item.effectiveFlag == 1,
+										warning: item.effectiveFlag == 2,
+										warning: item.effectiveFlag == 3
+									}"
+								>
+									<text class="iconfont icon-weixin"></text>
+									<text>{{ item.effectiveFlag | rexpStautsFilters }} </text>
 								</view>
 								<view class="opea-type-cell none" v-else> <text>- -</text> </view>
 							</view>
 							<view class="opea-del">
-								<view class="opea-type-cell" @click.stop="deleteOperator(item.id)">
-									<text class="iconfont icon-shanchu"></text> <text>删除</text>
+								<view class="opea-type-cell" @click.stop="handleOperator(1, item)">
+									<text class="iconfont icon-shanchu1"></text> <text>删除</text>
 								</view>
 							</view>
 						</view>
@@ -85,32 +81,52 @@
 			</view>
 		</view>
 		<div class="operator-btn" :style="{ paddingBottom: isIphoneX ? '68rpx' : '0rpx' }">
-			<view class="add-btn" @click="this.$api.navigateTo('/pages/user/operator/addoperator')">添加运营人员</view>
+			<view class="add-btn" @click="this.$api.navigateTo('/pages/user/operator/form')">添加运营人员</view>
 		</div>
 		<view class="operator-model" v-if="isOperatorModel" @click.stop="closeModel">
 			<view class="operator-alert">
 				<text class="iconfont icon-iconfontguanbi" @click.stop="closeModel"></text>
 				<view class="content">
-					<view class="ciew-t">姓名:{{ modelData.linkName }}</view>
-					<view class="ciew-t">手机号:{{ modelData.mobile }}</view>
+					<view class="ciew-t"><text>姓名:</text>{{ modelData.linkName }}</view>
+					<view class="ciew-t"><text>手机号:</text>{{ modelData.mobile ? modelData.mobile : '--' }}</view>
 					<view class="ciew-t"
-						>邀请码:{{ modelData.invitationCode ? modelData.invitationCode : '无' }}
-						<text :style="{ color: rexpStautsColor(modelData.status) }">{{
-							modelStautsText(modelData.effectiveFlag)
-						}}</text>
+						><text>邀请码:</text>{{ modelData.invitationCode ? modelData.invitationCode : '--' }}
+						<text
+							:class="{
+								success: modelData.status == 1,
+								warning: modelData.status == 2,
+								warning: modelData.status == 3
+							}"
+							>{{ modelData.effectiveFlag | modelStautsFilters }}</text
+						>
 					</view>
 					<view class="ciew-t"
-						>邀请码有效期:{{ modelData.effectiveDays ? modelData.effectiveDays : '0' }}天</view
+						><text>邀请码有效期:</text
+						>{{ modelData.effectiveDays ? modelData.effectiveDays : '0' }}天</view
+					>
+					<view class="ciew-t"><text>状态:</text>{{ modelData.status === 2 ? '已绑定' : '未绑定' }}</view>
+					<view class="ciew-t"><text>添加时间:</text>{{ modelData.addTime }}</view>
+					<view class="ciew-t"
+						><text>绑定时间:</text>{{ modelData.bindTime ? modelData.bindTime : '--' }}</view
 					>
-					<view class="ciew-t">状态:{{ modelData.status == 2 ? '已绑定' : '未绑定' }}</view>
-					<view class="ciew-t">添加时间:{{ modelData.addTime }}</view>
-					<view class="ciew-t">绑定时间:{{ modelData.bindTime == null ? '无' : modelData.bindTime }}</view>
 				</view>
-				<view class="btn" v-if="modelData.status != 2" @click.stop="updateInvitationCode(modelData)"
-					>更新邀请码</view
-				>
+				<view class="alert-btn" v-if="modelData.status != 2" @click.stop="handleOperator(2, modelData)">
+					<view class="btn">更新邀请码</view>
+				</view>
 			</view>
 		</view>
+		<!-- 提示弹窗 -->
+		<tui-modal
+			:show="model"
+			@click="handleClick"
+			@cancel="hideMobel"
+			:content="contentModalText"
+			:button="modalButton"
+			color="#333"
+			:size="28"
+			shape="circle"
+			:maskClosable="false"
+		/>
 	</view>
 </template>
 
@@ -118,42 +134,85 @@
 export default {
 	data() {
 		return {
+			staticUrl: this.global.staticUrl,
 			clubName: '',
-			clubImage: '',
-			linkman: '',
-			clubMobile: '',
 			isEmpty: false,
 			nomoreText: '上拉显示更多',
-			userID: '',
-			pageNum: 1,
-			pageSize: 10,
 			hasNextPage: false,
 			loadding: false,
 			pullUpOn: true,
 			pullFlag: true,
-			allowDataStatus: true,
-			wrapperHeight: '100%',
 			scrollHeight: '',
-			deleteAddressId: '',
-			currPage: '', //当前页面
-			prevPage: '', //上一个页面
 			isOperatorModel: false,
 			operatorList: [],
 			isIphoneX: this.$store.state.isIphoneX,
-			modelData: '',
+			modelData: {},
 			listQuery: {
 				userId: '',
 				linkName: '',
 				mobile: '',
 				pageNum: 1,
 				pageSize: 10
+			},
+			model:false,
+			contentModalText:'确定更新邀请码并发送给运营人员?',
+			showModalType:0,
+			showModalBtn:'确定更新',
+			modalButton: [
+				{
+					text: '取消',
+					type: 'gray',
+					plain: true //是否空心
+				},
+				{
+					text: this.showModalBtn,
+					customStyle: {
+						color: '#fff',
+						bgColor: '#F28F31'
+					},
+					plain: false
+				}
+			],
+			handleOper:0
+		}
+	},
+	filters: {
+		nameFilters(value) {
+			if (value && value.length > 15) {
+				return value.substring(0, 15) + '...'
+			} else {
+				return value
 			}
+		},
+		rexpStautsFilters(value) {
+			const map = {
+				'': '--',
+				1: '邀请码有效',
+				2: '邀请码已使用',
+				3: '邀请码已过期'
+			}
+			return map[value]
+		},
+		modelStautsFilters(value) {
+			const map = {
+				1: '(有效)',
+				2: '(已使用)',
+				3: '(已过期)'
+			}
+			return map[value]
 		}
 	},
 	onLoad() {
 		this.setScrollHeight()
 	},
 	methods: {
+		async infoClucbUser() {
+			const user = await this.$api.getStorage()
+			this.clubName = user.name
+			this.listQuery.userId = user.userId
+			this.listQuery.pageNum = 1
+			this.InitOperatorList()
+		},
 		setScrollHeight() {
 			// 窗口高度 - 底部距离
 			setTimeout(() => {
@@ -234,93 +293,60 @@ export default {
 		closeModel() {
 			this.isOperatorModel = false
 		},
-		deleteOperator(id) {
-			//删除运营人员
-			this.$util.modal('', '确定删除运营人员吗?', '确定删除', '取消', true, () => {
-				this.UserService.PostDeleteOperator({ id: id })
-					.then(response => {
-						this.$util.msg('删除成功', 2000, true, 'success')
-						setTimeout(() => {
-							this.InitOperatorList()
-						}, 2000)
-					})
-					.catch(error => {
-						this.$util.msg(error.msg, 2000)
-					})
-			})
-		},
-		updateInvitationCode(item) {
-			//更新邀请码
-			this.$util.modal('', '确定更新邀请码并发送给运营人员?', '确定更新', '取消', true, () => {
-				this.UserService.PostUpdateOperatorCode({ id: item.id, status: item.status })
-					.then(response => {
-						this.isOperatorModel = false
-						this.$util.msg('更新邀请码成功', 2000)
-						setTimeout(() => {
-							this.InitOperatorList()
-						}, 2000)
-					})
-					.catch(error => {
-						this.$util.msg(error.msg, 2000)
-					})
-			})
-		},
-		rexpStautsText(n) {
-			let text = ''
-			switch (n) {
-				case '':
-					text = '--'
-					break
+		handleOperator(type,row){
+			this.showModalType = type
+			this.handleOper = row
+			switch(type){
 				case 1:
-					text = '邀请码有效'
-			 	break
-				case 2:
-					text = '邀请码已使用'
+					this.showModalBtn = '确定删除'
+					this.contentModalText = '确定删除运营人员吗?'
 					break
-				case 3:
-					text = '邀请码已过期'
+				case 2:
+					this.showModalBtn = '确定更新'
+					this.contentModalText = '确定更新邀请码并发送给运营人员?'
 					break
 			}
-			return text
+			this.model = true
 		},
-		modelStautsText(n) {
-			let text = ''
-			switch (n) {
-				case 1:
-			 	text = '(有效)'
-					break
-				case 2:
-					text = '(已使用)'
-					break
-				case 3:
-					text = '(已过期)'
-					break
+		// 删除运营人员
+		async deleteOperator(){
+			try{
+				const res = await this.UserService.PostDeleteOperator({ id: this.handleOper.id })
+				this.$util.msg(res.msg, 2000, true, 'success')
+				setTimeout(() => {
+					this.InitOperatorList()
+				}, 2000)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
 			}
-			return text
 		},
-		rexpStautsColor(status) {
-			let textColor = ''
-			switch (status) {
-				case 1:
-					textColor = '#55BB00'
-					break
-				case 2:
-					textColor = '#0056BB'
-					break
-				case 3:
-					textColor = '#BB0000'
-					break
+		// 更新邀请码
+		async updateInvitationCode(){
+			try{
+				const res = await this.UserService.PostUpdateOperatorCode({ id: this.handleOper.id, status: this.handleOper.status })
+				this.isOperatorModel = false
+				this.$util.msg(res.msg, 2000, true, 'success')
+				setTimeout(() => {
+					this.InitOperatorList()
+				}, 2000)
+			}catch(error){
+				this.$util.msg(error.msg, 2000)
 			}
-			return textColor
 		},
-		iconStautsColor(status) {
-			let textColor = ''
-			if (status == 2) {
-				textColor = '#09BB07'
-			} else {
-				textColor = '#DDDDDD'
+		handleClick(e){
+			if (e.index === 1) {
+				if (this.showModalType === 1) {
+					// 删除
+					this.deleteOperator()
+				}else{
+					// 更新
+					this.updateInvitationCode()
+				}
 			}
-			return textColor
+			this.model = false
+		},
+		hideMobel(){
+			this.model = false
 		}
 	},
 	onReachBottom() {
@@ -331,15 +357,7 @@ export default {
 		}
 	},
 	onShow() {
-		this.$api.getComStorage('clubInfo').then(resolve => {
-			this.clubName = resolve.name
-			this.clubImage = resolve.image
-				? resolve.image
-				: 'https://static.caimei365.com/app/img/icon/icon-club@3x.png'
-			this.listQuery.userId = resolve.userId
-			this.listQuery.pageNum = 1
-			this.InitOperatorList()
-		})
+		this.infoClucbUser()
 	}
 }
 </script>
@@ -371,20 +389,12 @@ page,
 		height: 92rpx;
 		padding: 34rpx 0;
 		.title {
-			width: 420rpx;
 			float: left;
-			font-size: $font-size-32;
-			color: $text-color;
+			font-size: $font-size-28;
+			color: #666666;
 			line-height: 92rpx;
 			text-align: left;
 			margin-left: 20rpx;
-			-o-text-overflow: ellipsis;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			word-break: break-all;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 1;
-			overflow: hidden;
 		}
 		.head {
 			width: 92rpx;
@@ -512,7 +522,21 @@ page,
 				border: 1px solid #dddddd;
 				line-height: 64rpx;
 				font-size: $font-size-24;
-				.icon-iconfontweixin {
+				&.success {
+					border-color: #16b75b;
+					color: #16b75b;
+					.icon-weixin {
+						color: #16b75b;
+					}
+				}
+				&.warning {
+					border-color: #b2b2b2;
+					color: #b2b2b2;
+					.icon-weixin {
+						color: #b2b2b2;
+					}
+				}
+				.icon-weixin {
 					margin-right: 8rpx;
 					font-size: $font-size-32;
 				}
@@ -530,11 +554,11 @@ page,
 				height: 64rpx;
 				padding: 0 24rpx;
 				border-radius: 32rpx;
-				border: 1px solid #dddddd;
+				border: 1px solid #ff0000;
 				line-height: 64rpx;
 				font-size: $font-size-24;
 				color: #ff0000;
-				.icon-shanchu {
+				.icon-shanchu1 {
 					font-size: $font-size-32;
 					margin-right: 6rpx;
 				}
@@ -545,7 +569,7 @@ page,
 .operator-model {
 	width: 100%;
 	height: 100%;
-	background: rgba(0, 0, 0, 0.1);
+	background: rgba(0, 0, 0, 0.7);
 	position: fixed;
 	top: 0;
 	left: 0;
@@ -554,11 +578,12 @@ page,
 	margin: auto;
 	z-index: 1000;
 	.operator-alert {
-		width: 435rpx;
-		height: 360rpx;
-		padding: 68rpx 32rpx;
+		width: 580rpx;
+		height: 670rpx;
+		padding: 68rpx 24rpx 24rpx 24rpx;
+		box-sizing: border-box;
 		background: #ffffff;
-		border-radius: 14rpx;
+		border-radius: 16rpx;
 		position: absolute;
 		top: 0;
 		left: 0;
@@ -578,23 +603,40 @@ page,
 			color: #999999;
 		}
 		.content {
+			width: 100%;
+			height: auto;
+			float: left;
 			.ciew-t {
 				font-size: $font-size-28;
 				color: $text-color;
-				line-height: 48rpx;
+				line-height: 66rpx;
+				text {
+					color: #999999;
+					&.success {
+						color: #16b75b;
+					}
+					&.warning {
+						color: #b2b2b2;
+					}
+				}
 			}
 		}
-		.btn {
+		.alert-btn {
 			width: 100%;
-			height: 68rpx;
-			border-top: 1px solid #f7f7f7;
-			line-height: 68rpx;
-			font-size: $font-size-26;
-			text-align: center;
-			color: $color-system;
-			position: absolute;
-			bottom: 0;
-			left: 0;
+			height: 84rpx;
+			float: left;
+			margin-top: 24rpx;
+			.btn {
+				width: 420rpx;
+				height: 84rpx;
+				margin: 0 auto;
+				line-height: 84rpx;
+				background: #f3b574;
+				color: #ffffff;
+				font-size: $font-size-28;
+				text-align: center;
+				border-radius: 42rpx;
+			}
 		}
 	}
 }

+ 140 - 0
pages/user/order/components/freightAlert.vue

@@ -0,0 +1,140 @@
+<template name="alert">
+	<view class="alert spec" :class="specClass">
+		<!-- 运费弹窗说明 -->
+		<view class="freight-alert"  @tap="hideFreight">
+			<view class="content">
+				<view class="title">
+					<text>运费规则</text>
+					<text class="iconfont icon-iconfontguanbi" @click.stop="hideFreight"></text>
+				</view>
+				<view class="text-content">
+					<view class="text-h1">一、除含有仪器类、家具类等指定商品的订单,运费规则如下:</view>
+					<view class="text">
+						<text>1、首单,全国包邮(注:如果首单中含有不包邮的指定商品,则首单只能"到付");</text>
+						<text>2、订单商品总额满1000元,全国包邮;</text>
+						<text>3、订单商品总额不足1000元,深圳市内运费10元,广东省内深圳市外运费15元,其它地方运费到付;</text>
+						<text>4、地推送货上门无需运费(注:下单可选择运费是否到付)。</text>
+					</view>
+					<view class="text-h1">二、含有仪器类、家具类等指定商品的订单,运费到付。</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default{
+		name:'alert',
+		props:{},
+		data() {
+			return{
+				
+			}
+		},
+		created() {
+			
+		},
+		onLoad(){
+			
+		},
+		methods:{
+			hideFreight(){
+				this.$parent.isfreightTip = false
+			},
+		},
+		onShow(){
+	
+		}
+	}
+</script>
+
+<style lang="scss">
+	/*弹窗*/
+	.model-warp.none{
+		display: none;
+	}
+	.model-warp.show{
+		display: block;
+	}
+	.freight-alert{
+		width: 100%;
+		height: 100%;
+		background: rgba(0,0,0,.5);
+		position: fixed;
+		top: 0;
+		left: 0;
+		z-index: 8888;
+		transition: all 0.4s;
+		&.none{
+			display: none;			
+		}
+		&.show{
+			display: block;
+		}
+		.content{
+			width: 530rpx;
+			height: 710rpx;
+			position: absolute;
+			background: $bg-color;
+			left: 0;
+			right: 0;
+			bottom: 0;
+			top: 0;
+			margin: auto;
+			padding: 20rpx 25rpx;
+			border-radius: 12rpx;
+			.title{
+				width: 100%;
+				height: 68rpx;
+				line-height: 68rpx;
+				font-size: $font-size-28;
+				color: $text-color;
+				text-align: center;
+				margin-bottom: 32rpx;
+				position: relative;
+				.icon-iconfontguanbi{
+					width: 68rpx;
+					height: 68rpx;
+					text-align: center;
+					line-height: 68rpx;
+					position: absolute;
+					right: 0;
+					top: 0;
+					font-size: $font-size-36;
+					color: #999999;
+				}
+			}
+			.text-content{
+				width: 100%;
+				height: auto;
+				.text{
+					padding: 40rpx 0;
+					line-height: 44rpx;
+					font-size: $font-size-26;
+					color:#666666;
+					text-align: justify;
+				}
+				.text-h1{
+					line-height: 44rpx;
+					font-size: $font-size-28;
+					color: $text-color;
+					text-align: justify;
+				}
+			}
+			.btn{
+				width: 100%;
+				height: 88rpx;
+				float: left;
+				background: $btn-confirm;
+				line-height: 88rpx;
+				font-size: $font-size-28;
+				text-align: center;
+				color: #FFFFFF;
+				border-radius: 0;
+				padding: 0;
+				margin-top: 2rpx;
+			}
+		}
+	}
+	
+</style>

+ 1 - 1
pages/user/order/create-order.vue

@@ -52,7 +52,7 @@ import choiceAddress from './components/choiceAddress'
 import goodsList from './components/goodsList'
 import cmInvicePopup from './components/cm-invice-popup'
 import freight from './components/freight'
-import freightAlert from '@/components/cm-module/modelAlert/freightAlert'
+import freightAlert from './components/freightAlert'
 export default {
 	components: {
 		choiceAddress,

+ 3 - 4
pages/user/order/order-list.vue

@@ -203,6 +203,7 @@ export default {
 			},
 			orderTabBar: [
 				{ state: 0, text: '全部订单', orderList: [] },
+				{ state: 1, text: '待确认', orderList: [] },
 				{ state: 2, text: '待付款', orderList: [] },
 				{ state: 3, text: '待发货', orderList: [] },
 				{ state: 4, text: '已发货', orderList: [] },
@@ -257,9 +258,7 @@ export default {
 		if (e.type === 'detele') {
 			this.isDelete = true
 		}
-		const evStateMap = { 0:0,2:1, 3:2, 4:3, 5:4 }
-		this.currentTab = evStateMap[e.state]
-		console.log('currentTab',this.currentTab)
+		this.currentTab = e.state
 		this.isOnloadFlag = true
 		this.getHeaderTopHeight() //设置自定义导航高度
 		this.initStorage()
@@ -326,7 +325,7 @@ export default {
 				return
 			}
 			try{
-				this.listQuery.orderState = this.orderTabBar[index].state
+				this.listQuery.orderState = index
 				const res = await this.OrderService.QueryOrderList(this.listQuery)
 				const data = res.data
 				const orderList = data.list.filter(item => {

+ 132 - 58
pages/user/setting/phone.vue

@@ -1,9 +1,40 @@
 <template>
 	<view class="container register">
 		<view class="register-main first clearfix">
-			<view class="register-row none clearfix">
+			<view class="register-row clearfix">
 				<view class="register-from">
-					<view class="label">当前手机号:</view> <view class="row-input">{{ params.mobile }}</view>
+					<input
+						class="row-input"
+						type="number"
+						v-model="params.mobile"
+						placeholder="请输入原手机号"
+						@input="handleInput"
+						placeholder-class="place-holder"
+						maxlength="11"
+						disabled="true"
+					/>
+				</view>
+			</view>
+			<view class="register-row clearfix">
+				<view class="register-from code">
+					<input
+						class="row-input"
+						type="number"
+						v-model="params.smsCode"
+						placeholder="请输入原手机号验证码"
+						placeholder-class="place-holder"
+						maxlength="6"
+					/>
+				</view>
+				<view class="register-from btn" :class="{ disabled: disabled1, disabled: isMobileDisabled }">
+					<button
+						class="row-input"
+						type="button"
+						@click.stop="getNewMobileCodeFn(1)"
+						:disabled="isMobileDisabled"
+					>
+						{{ mobileCodeText }}
+					</button>
 				</view>
 			</view>
 			<view class="register-row clearfix">
@@ -30,11 +61,11 @@
 						maxlength="6"
 					/>
 				</view>
-				<view class="register-from btn" :class="{ 'disabled' : disabled1 , 'disabled' : isNewMobileDisabled}">
+				<view class="register-from btn" :class="{ disabled: disabled2, disabled: isNewMobileDisabled }">
 					<button
 						class="row-input"
 						type="button"
-						@click.stop="getNewMobileCodeFn"
+						@click.stop="getNewMobileCodeFn(2)"
 						:disabled="isNewMobileDisabled"
 					>
 						{{ newMobileCodeText }}
@@ -42,9 +73,15 @@
 				</view>
 			</view>
 			<view class="register-row clearfix" style="border: 0;">
-				<button class="register-btn" :disabled="disabled" :class="disabled ? 'disabled' : ''" @click="btnConfirm">
+				<button
+					class="register-btn"
+					:disabled="disabled"
+					:class="disabled ? 'disabled' : ''"
+					@click="btnConfirm"
+				>
 					确定
 				</button>
+				<view class="register-btn-text"> 注意:本操作更换的是机构联系人的手机号,不是运营人员的手机号。 </view>
 			</view>
 		</view>
 	</view>
@@ -60,85 +97,116 @@ export default {
 			codeTimeNew: null,
 			newMobileCodeText: '获取验证码',
 			isNewMobileDisabled: true, //手机验证码按钮控制
+			count: '', //倒计时
+			codeTime: null,
+			mobileCodeText: '获取验证码',
+			isMobileDisabled: false, //手机验证码按钮控制
 			params: {
+				mobile: '', //旧手机号
 				newMobile: '', //新联系人手机号
+				smsCode: '', //原手机号验证码
 				newSmsCode: '', //新手机号手机验证码
 				userId: 0
+			},
+			codeParams:{
+				mobile: '',
+				isCheckCaptcha: 1,
+				activateCodeType: 11,
+				platformType: 0
 			}
 		}
 	},
 	computed: {
-		disabled1(){
+		disabled1() {
+			return !this.params.mobile.length === 11
+		},
+		disabled2() {
 			return !this.params.newMobile.length === 11
 		},
 		disabled() {
-			return !(this.params.newMobile != '' && this.params.newSmsCode != '')
+			return !(this.params.mobile && this.params.smsCode && this.params.newMobile && this.params.newSmsCode)
 		}
 	},
 	onLoad(option) {
 		this.params.mobile = option.phone
+		
 	},
 	methods: {
 		// 监听输入手机号
-		handleInput(e){
+		handleInput(e) {
 			this.params.newMobile = e.detail.value
-			if(this.params.newMobile.length === 11){
-				this.isNewMobileDisabled  = false
+			if (this.params.newMobile.length === 11) {
+				this.isNewMobileDisabled = false
 			}
 		},
 		// 确认更换
-		btnConfirm() {
-			if (this.params.newMobile == '') {
-				this.$util.msg('请输入新的手机号码', 2000)
-				return
-			}
+		async btnConfirm() {
+			const use = await this.$api.getStorage()
+			this.params.userId = use.userId
 			if (!this.$reg.isMobile(this.params.newMobile)) {
-				this.$util.msg('请输入正确的手机号码', 2000)
-				return
-			}
-			if (this.params.newSmsCode == '') {
-				this.$util.msg('请输入新手机验证码', 2000)
+				this.$util.msg('新手机号格式不正确', 2000)
 				return
 			}
-			if (!this.$reg.isMobileCode(this.params.newSmsCode)) {
-				this.$util.msg('新手机验证码格式不正确', 2000)
-				return
+			try {
+				const res = await this.UserService.UserUpdateMobile(this.params)
+				this.$util.msg(res.msg, 1500, true, 'success')
+				setTimeout(() => {
+					uni.navigateBack({ delta: 2 })
+				}, 2000)
+			} catch (error) {
+				this.$util.msg(error.msg, 2000)
 			}
-			this.UserService.UserUpdateMobile(this.params)
-				.then(response => {
-					this.$util.msg('修改成功', 1500, true, 'success')
-					setTimeout(() => {
-						uni.navigateBack({ delta: 1 })
-					}, 2000)
-				})
-				.catch(error => {
-					this.$util.msg(error.msg, 2000)
-				})
 		},
-		getNewMobileCodeFn() {
-			if (this.params.newMobile == '') {
-				this.$util.msg('请输入手机号', 2000)
-				return
-			}
-			if (!this.$reg.isMobile(this.params.newMobile)) {
-				this.$util.msg('请输入正确的手机号', 2000)
-				return
-			}
-			let params =  {
-				mobile: this.params.newMobile,
-				isCheckCaptcha: 1,
-				activateCodeType: 11,
-				platformType: 0
+		getNewMobileCodeFn(type) {
+			if (type === 1) {
+				//旧手机号验证码
+				this.codeParams.mobile =this.params.mobile
+				this.codeParams.activateCodeType =11
+				this.getMobileCode(this.codeParams)
+			} else {
+				if (!this.$reg.isMobile(this.params.newMobile)) {
+					this.$util.msg('请输入正确的新手机号', 2000)
+					return
+				}
+				this.codeParams.mobile =this.params.newMobile
+				this.codeParams.activateCodeType =12
+				this.getNewMobileCode(this.codeParams)
 			}
-			this.getMobileCode(params)
 		},
-		//获取短信
+		//获取就手机号验证码
 		async getMobileCode(params) {
-			this.isNewMobileDisabled = true
 			try {
-				const res = this.PublicService.GetRegisterMobileCode(params)
-				this.$util.msg('验证短信已发送', 2000)
 				const TIME_COUNT = 60
+				this.isMobileDisabled = true
+				const res = await this.PublicService.GetRegisterMobileCode(params)
+				this.$util.msg(res.data, 2000)
+				if (!this.codeTime) {
+					this.count = TIME_COUNT
+					this.isMobileDisabled = true
+					this.codeTime = setInterval(() => {
+						if (this.count > 1 && this.count <= TIME_COUNT) {
+							this.count--
+							this.mobileCodeText = this.count + 's重新发送'
+						} else {
+							this.isMobileDisabled = false
+							clearInterval(this.codeTime)
+							this.codeTime = null
+							this.mobileCodeText = '获取验证码'
+						}
+					}, 1000)
+				}
+			} catch (error) {
+				this.$util.msg(error.msg, 2000)
+				this.isMobileDisabled = false
+			}
+		},
+		//获取新手机号短信
+		async getNewMobileCode(params) {
+			try {
+				const TIME_COUNT = 60
+				this.isNewMobileDisabled = true
+				const res = await this.PublicService.GetRegisterMobileCode(params)
+				this.$util.msg(res.data, 2000)
 				if (!this.codeTimeNew) {
 					this.newCount = TIME_COUNT
 					this.isNewMobileDisabled = true
@@ -154,17 +222,14 @@ export default {
 						}
 					}, 1000)
 				}
-			} catch (e) {
-				//TODO handle the exception
+			} catch (error) {
 				this.$util.msg(error.msg, 2000)
 				this.isNewMobileDisabled = false
 			}
 		}
 	},
 	onShow() {
-		this.$api.getStorage().then(resolve => {
-			this.params.userId = resolve.userId ? resolve.userId : 0
-		})
+		
 	}
 }
 </script>
@@ -207,7 +272,7 @@ export default {
 			margin: auto;
 			// margin-bottom: 20rpx;
 			border-bottom: 2rpx solid #e1e1e1;
-			&.none{
+			&.none {
 				border-bottom: none;
 			}
 			.register-title {
@@ -311,6 +376,15 @@ export default {
 				background: #e2e2e2;
 			}
 		}
+		.register-btn-text {
+			width: 500rpx;
+			height: auto;
+			font-size: $font-size-24;
+			line-height: 44rpx;
+			color: #f85050;
+			margin: 40rpx auto;
+			text-align: justify;
+		}
 	}
 }
 .register-text {

+ 3 - 0
services/index.js

@@ -9,6 +9,7 @@ import OrderService from './order.service'
 import PublicService from './public.service.js'
 import UploadService from './upload.service.js'
 import SpecialService from './special.service.js'
+import SellerService from './sellse.service.js'
 import ProcurementService from './procurement.service.js'
 
 let commonService = new CommonService(ajaxService)
@@ -19,6 +20,7 @@ let orderService = new OrderService(ajaxService)
 let publicService = new PublicService(ajaxService)
 let uploadService = new UploadService(ajaxService)
 let specialService = new SpecialService(ajaxService)
+let sellerService = new SellerService(ajaxService)
 let procurementService = new ProcurementService(ajaxService)
 
 Vue.prototype.AjaxService = ajaxService
@@ -30,4 +32,5 @@ Vue.prototype.OrderService = orderService
 Vue.prototype.PublicService = publicService
 Vue.prototype.UploadService = uploadService
 Vue.prototype.SpecialService = specialService
+Vue.prototype.SellerService = sellerService
 Vue.prototype.ProcurementService = procurementService

+ 397 - 0
services/sellse.service.js

@@ -0,0 +1,397 @@
+/**
+ * explain: 这是协销用户业务的服务
+ * Author: zhjy
+ * Time: 2020-09-24
+ */
+export default class SellerService {
+    constructor(AjaxService) {
+        Object.assign(this, { AjaxService })
+        this.name = 'SellerService'
+    }
+    /**
+	 *@协销登录
+	 *@param mobile 手机号
+	 *@param password 密码
+	 */
+    organizeSeller (data={}){
+        return this.AjaxService.post({ 
+            url:'/user/login/organizeSeller', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销账户中心
+	 *@param userID 协销ID
+	 */
+    GetSellerHome (data = {}) {
+        return this.AjaxService.get({ url:'/user/seller/home', data, isLoading: true })
+    }
+    /**
+	 *@协销拉机构上线(资料填写)
+	 *@param userID 协销ID
+	 */
+    SellerClubTemporary (data={}){
+        return this.AjaxService.post({ 
+            url:'/user/register/club/temporary', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销拉机构上线
+	 *@param userID 协销ID
+	 */
+    SellerClubRegister (data={}){
+        return this.AjaxService.post({ 
+            url:'/user/register/club/online', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销拉机构上线检测手机号和邮箱
+	 *@param mobileOrEmail 手机号和邮箱
+	 */
+    SellerClubCheck (data={}){
+        return this.AjaxService.get({ 
+            url:'/user/register/check', 
+            data, 
+            isLoading: true,
+              
+        })
+    }
+    /**
+	 *@协销机构列表
+	 *@param name 	  机构名字关键字(搜索用)
+	 *@param pageNum  页码
+	 *@param pageSize 条数
+	 *@param spId 	  协销ID
+	 *@param status   机构状态
+	 */
+    sellerClubList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/user/seller/club/list', 
+            data, 
+            isLoading: false ,
+              
+        })
+    }
+    /**
+	 *@协销下单商品列表
+	 *@param productName 	  商品名称(搜索用)
+	 *@param pageNum  页码
+	 *@param pageSize 条数
+	 */
+    mallProduct (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/mallProduct/productList', 
+            data, 
+            isLoading: false ,
+              
+        })
+    }
+    /**
+     *@协销机构列表
+     *@param serviceProviderId 协销ID
+     *@param pageNum  页码
+     *@param pageSize 条数
+     */
+    GetOrderCount (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/order/seller/count', 
+            data, 
+            isLoading: true ,
+        })
+    }
+    /**
+	 *@协销机构列表
+	 *@param name 	  机构名字关键字(搜索用)
+	 *@param pageNum  页码
+	 *@param pageSize 条数
+	 */
+    GetFindAllClubList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/user/seller/club/all', 
+            data, 
+            isLoading: true ,
+        })
+    }
+    /**
+	 *@查询行为记录链接信息
+	 *@param clubId 
+	 */
+    userClubRecordLinkage (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/user/club/recordLinkage', 
+            data, 
+            isLoading: false ,
+        })
+    }
+    /**
+	 *@协销订单列表(搜索订单)
+	 *@param listType 订单类型
+	 *@param orderNo  订单号
+	 *@param pageNum  页码
+	 *@param pageSize 条数
+	 *@param serviceProviderId 协销ID
+	 */
+    GetSellerOrderList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/order/seller/list', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销下机构订单列表
+	 *@param clubID   机构ID
+	 *@param pageNum  页码
+	 *@param pageSize 条数
+	 */
+    GetSellerClubOrderList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/order/seller/list/club', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销-关键词搜索订单
+	 *@param  userId:商品ID(数字类型,必传)
+	 *@param pageNum:机构会所ID(同之前)
+	 *@param pageSize:协销ID(同之前)
+	 */
+    getSellerOrderList (data={}){
+        return this.AjaxService.get({ 
+            url:'/order/seller/search', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    // 协销订单列表/再来一单
+    SellerCreateOrderAgain (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/seller/cart/again', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销-二手下单商品列表
+	 *@param 二手商品分类 secondHandType	1二手仪器,2临期产品,3其他  【必传】
+	 *@param 二手仪器分类的类型 instrumentType	1轻光电、2重光电、3耗材配件【不传默认全部】
+	 *@param 搜索关键词 searchKeyword	【选传】 
+	 */
+    GetOrderSecondHandProductList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/second/order/products', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销-二手去结算接口
+	 *@param productId:商品ID(数字类型,必传)
+	 *@param clubId:机构会所ID(同之前)
+	 *@param serviceProviderId:协销ID(同之前)
+	 *@param productCount:二手购买数量 
+	 */
+    GetSettlementBySencondProduct (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/order/seller/second/settlement', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+	
+    /**
+	 *@协销-二手商品推荐
+	 *@param productId:商品ID(数字类型,必传)
+	 */
+    ProductRecommend (data={}){//相关推荐
+        return this.AjaxService.get({ url:'/commodity/second/recommend', data, isLoading: true })
+    }
+    /*协销下单购物车->api*/
+    /**
+	 *@单一商品加入购物车
+	 *@param clubId 会所的ID
+	 *@param serviceProviderId 协销ID
+	 */
+    sellerAddCart (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/seller/cart/add', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /*协销下单购物车->api*/
+    /**
+	 *@重选sku
+	 *@param clubId 会所的ID
+	 *@param serviceProviderId 协销ID
+	 */
+    orderSellerCkeckSku (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/seller/check/sku', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@组合商品加入购物车
+	 *@param clubId 会所的ID
+	 *@param serviceProviderId 协销ID
+	 */
+    ShoppingCartBatchAddCart (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/seller/cart/add', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+    *@协销帮机构下单获取购物车数量
+    *@param clubId 会所的ID
+    *@param serviceProviderId 协销ID
+    */
+    clubCartCount (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/order/seller/cart/count', 
+            data, 
+            isLoading: false ,
+             
+        })
+    }
+    /**
+	 *@协销帮机构下单购物车商品加减数量
+	 *@param clubId 机构的clubId
+	 *@param serviceProviderId 	协销ID
+	 */
+    SellerAddProductNum (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/seller/cart/update', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销帮机构下单购物车删除商品
+	 *@param sellerCartIds 购物车ID
+	 */
+    sellerDeleteCart (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/seller/cart/delete', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销帮机构下单获取购物车列表
+	 *@param clubId 会所的ID
+	 *@param serviceProviderId 协销ID
+	 */
+    sellerOrganizeList (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/order/seller/cart/organizeList', 
+            data, 
+            isLoading: false ,
+              
+        })
+    }
+    /*协销下单订单->api*/
+    /**
+	 *@协销帮机构下单去结算初始化
+	 *@param clubId 机构ID
+	 *@param serviceProviderId 协销ID
+	 *@param productIds 商品ID
+	 */
+    SellerSettlement (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/order/seller/cart/settlement', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@协销下定金商品订单初始化
+	 *@param productIds 商品ID
+	 */
+    SellerProductRechargeGoods (data = {}) {
+        return this.AjaxService.get({ 
+            url:'/commodity/recharge/details', 
+            data, 
+            isLoading: true ,
+        })
+    }
+    /**
+	 *@协销帮机构下定金商品订单提交
+	 *@param productIds 商品ID
+	 */
+    SellerSubmitRechargeOrder (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/submit/recharge', 
+            data, 
+            isLoading: true,
+              
+        })
+    }
+    /**
+	 *@协销帮机构下单提交订单
+	 */
+    SellerCreateOrderSubmit (data = {}) {
+        return this.AjaxService.post({ 
+            url:'/order/submit/generate', 
+            data, 
+            isLoading: true ,
+              
+        })
+    }
+    /**
+	 *@获取可分配协销列表
+	 */
+    userClubChoseList (data = {}) {
+	    return this.AjaxService.get({ 
+	        url:'/user/club/chose/list', 
+	        data, 
+	        isLoading: false ,
+	    })
+    }
+    /**
+	 *@获取组员协销列表
+	 */
+    userSellerServiceTeam (data = {}) {
+	    return this.AjaxService.get({ 
+	        url:'/user/seller/service/team', 
+	        data, 
+	        isLoading: false ,
+	    })
+    }
+    /**
+	 *@分配协销
+	 */
+    userClubChoseSales (data = {}) {
+	    return this.AjaxService.post({ 
+	        url:'/user/club/chose/sales', 
+	        data, 
+	        isLoading: true ,
+	           
+	    })
+    }
+	
+}

+ 10 - 0
services/user.service.js

@@ -17,6 +17,16 @@ export default class UserService {
 
         })
     }
+    /* 邀请码授权登录 */
+    usrInvitationLogin(data = {}) {
+	    return this.AjaxService.post({
+	        url: '/user/login/auth/invitationOrganize',
+	        data,
+	        isLoading: true,
+	        isStatus: false,
+	
+	    })
+    }
     /* 注册第一步校验 */
     checkRegisterClub(data = {}) {
         return this.AjaxService.get({