一懒众山小 3 anos atrás
pai
commit
18ca939e0b
100 arquivos alterados com 817 adições e 28808 exclusões
  1. 817 829
      src/pages.json
  2. 0 116
      src/plugins/advance/components/detail-ad.vue
  3. 0 254
      src/plugins/advance/components/detail-attr.vue
  4. 0 334
      src/plugins/advance/components/detail-bottom-button.vue
  5. 0 265
      src/plugins/advance/components/detail-discount.vue
  6. 0 420
      src/plugins/advance/components/detail-price-share.vue
  7. 0 106
      src/plugins/advance/components/detail-vip.vue
  8. 0 238
      src/plugins/advance/components/index-product-list.vue
  9. 0 44
      src/plugins/advance/components/index-swipe.vue
  10. 0 110
      src/plugins/advance/components/search-input.vue
  11. 0 48
      src/plugins/advance/components/svip-price.vue
  12. 0 537
      src/plugins/advance/detail/detail.vue
  13. 0 160
      src/plugins/advance/index/index.vue
  14. 0 17
      src/plugins/advance/order-detail/order-detail.vue
  15. 0 841
      src/plugins/advance/order/order.vue
  16. 0 242
      src/plugins/advance/search/search.vue
  17. 0 1062
      src/plugins/bargain/activity/activity.vue
  18. 0 110
      src/plugins/bargain/common-buttom.vue
  19. 0 111
      src/plugins/bargain/components/app-plugin-time-bar.vue
  20. 0 874
      src/plugins/bargain/goods/goods.vue
  21. 0 265
      src/plugins/bargain/index/index.vue
  22. 0 264
      src/plugins/bargain/order-list/order-list.vue
  23. 0 85
      src/plugins/bonus/about/about.vue
  24. 0 220
      src/plugins/bonus/cash-detail/cash-detail.vue
  25. 0 648
      src/plugins/bonus/cash/cash.vue
  26. BIN
      src/plugins/bonus/image/check.png
  27. BIN
      src/plugins/bonus/image/progress.png
  28. BIN
      src/plugins/bonus/image/refuse.png
  29. BIN
      src/plugins/bonus/image/shop-price-less.png
  30. BIN
      src/plugins/bonus/image/shop-price-plus.png
  31. 0 960
      src/plugins/bonus/index/index.vue
  32. 0 355
      src/plugins/bonus/memeber/memeber.vue
  33. 0 351
      src/plugins/bonus/order/order.vue
  34. 0 325
      src/plugins/bonus/statics/statics.vue
  35. BIN
      src/plugins/check_in/image/choose.png
  36. 0 925
      src/plugins/check_in/index/index.vue
  37. 0 1998
      src/plugins/community/activity/activity.vue
  38. 0 401
      src/plugins/community/address-parse.js
  39. 0 830
      src/plugins/community/apply/apply.vue
  40. 0 224
      src/plugins/community/captain/captain.vue
  41. 0 231
      src/plugins/community/cash-detail/cash-detail.vue
  42. 0 668
      src/plugins/community/cash/cash.vue
  43. 0 167
      src/plugins/community/clerk/clerk.vue
  44. 0 130
      src/plugins/community/components/app-goods-time.vue
  45. 0 37
      src/plugins/community/components/app-head.vue
  46. 0 115
      src/plugins/community/components/app-menu.vue
  47. 0 348
      src/plugins/community/components/app-order.vue
  48. 0 207
      src/plugins/community/components/app-product-list.vue
  49. 0 495
      src/plugins/community/detail/detail.vue
  50. 0 707
      src/plugins/community/goods/goods.vue
  51. 0 463
      src/plugins/community/index/index.vue
  52. 0 572
      src/plugins/community/list/list.vue
  53. 0 251
      src/plugins/community/me/me.vue
  54. 0 769
      src/plugins/community/order-detail/order-detail.vue
  55. 0 710
      src/plugins/community/order/order.vue
  56. 0 639
      src/plugins/community/poster/poster.vue
  57. 0 144
      src/plugins/community/profit-cash/profit-cash.vue
  58. 0 396
      src/plugins/community/profit/profit.vue
  59. 0 205
      src/plugins/community/record/record.vue
  60. 0 135
      src/plugins/community/recruit/recruit.vue
  61. 0 513
      src/plugins/exchange/detail/detail.vue
  62. 0 292
      src/plugins/exchange/gift/gift.vue
  63. 0 460
      src/plugins/exchange/goods/goods.vue
  64. BIN
      src/plugins/exchange/image/balance.png
  65. BIN
      src/plugins/exchange/image/card.png
  66. BIN
      src/plugins/exchange/image/coupon.png
  67. BIN
      src/plugins/exchange/image/error.png
  68. BIN
      src/plugins/exchange/image/point.png
  69. BIN
      src/plugins/exchange/image/scan.png
  70. BIN
      src/plugins/exchange/image/svip.png
  71. 0 681
      src/plugins/exchange/index/index.vue
  72. 0 344
      src/plugins/exchange/list/list.vue
  73. 0 175
      src/plugins/flash_sale/goods/goods.scss
  74. 0 510
      src/plugins/flash_sale/goods/goods.vue
  75. BIN
      src/plugins/flash_sale/image/processing.png
  76. BIN
      src/plugins/flash_sale/image/start.png
  77. BIN
      src/plugins/flash_sale/image/timing.png
  78. 0 527
      src/plugins/flash_sale/index/index.vue
  79. 0 844
      src/plugins/fxhb/detail/detail.vue
  80. BIN
      src/plugins/fxhb/image/best_icon.png
  81. BIN
      src/plugins/fxhb/image/coupon.png
  82. BIN
      src/plugins/fxhb/image/cry.png
  83. BIN
      src/plugins/fxhb/image/love.png
  84. BIN
      src/plugins/fxhb/image/open_hongbao_btn.png
  85. 0 481
      src/plugins/gift/address/address.vue
  86. 0 506
      src/plugins/gift/address/app-submit-address.vue
  87. 0 116
      src/plugins/gift/billing-preview/billing-preview.vue
  88. 0 91
      src/plugins/gift/components/announcement/gift-navigation.vue
  89. 0 37
      src/plugins/gift/components/announcement/share-gift-text.vue
  90. 0 73
      src/plugins/gift/components/detail/logistics.vue
  91. 0 71
      src/plugins/gift/components/detail/order-information.vue
  92. 0 154
      src/plugins/gift/components/detail/order.vue
  93. 0 76
      src/plugins/gift/components/detail/receiving-status.vue
  94. 0 71
      src/plugins/gift/components/detail/win-order-information.vue
  95. 0 251
      src/plugins/gift/components/detail/win-order.vue
  96. 0 79
      src/plugins/gift/components/goods/bottom-button.vue
  97. 0 58
      src/plugins/gift/components/index/blessing-message.vue
  98. 0 91
      src/plugins/gift/components/index/figure-rule.vue
  99. 0 122
      src/plugins/gift/components/index/generate-package.vue
  100. 0 227
      src/plugins/gift/components/index/get-right-now.vue

Diferenças do arquivo suprimidas por serem muito extensas
+ 817 - 829
src/pages.json


+ 0 - 116
src/plugins/advance/components/detail-ad.vue

xqd
@@ -1,116 +0,0 @@
-<template>
-	<view class="detail-ad dir-left-nowrap main-between" :style="{'background-color': theme.background}">
-		<view class="text dir-left-nowrap main-between cross-center">
-			<text class="title">预售</text>
-			<text class="count">已抢{{sales}}件</text>
-		</view>
-		<view class="count-down dir-top-nowrap" style="margin-bottom: 12rpx;">
-			<text class="advance-title">距定金截止</text>
-			<view class="dir-left-nowrap main-center cross-center">
-				<view class="num">{{d}}</view>
-				<view class="word">天</view>
-				<view class="num">{{h}}</view>
-				<view class="word">时</view>
-				<view class="num">{{m}}</view>
-				<view class="word">分</view>
-				<view class="num">{{s}}</view>
-				<view class="word">秒</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "detail-ad",
-	    props: {
-            sales: {
-                type: Number,
-	            default() {
-                    return 0;
-                }
-            },
-            d: {
-                type: Number,
-	            default() {
-                    return 0;
-                }
-            },
-            h: {
-                type: Number,
-	            default() {
-                    return 0;
-	            }
-            },
-            m: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            },
-            s: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            },
-			theme: Object
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.default {
-		background:linear-gradient(to right, #ff5527, #ff2755);
-	}
-	.detail-ad {
-		width: #{750rpx};
-		height: #{88rpx};
-		padding: 0 #{24rpx};
-		.text {
-			color: #ffffff;
-			.title {
-				display: inline-block;
-				font-size: #{32rpx};
-				margin-right: #{12rpx};
-				height: #{88upx};
-				line-height: #{88upx};
-			}
-			.count {
-				display: inline-block;
-				padding: #{5upx 16rpx};
-				border-radius: #{18rpx};
-				background-color: rgba(0,0,0,.2);
-				font-size: #{22rpx};
-			}
-		}
-		.count-down {
-			height: #{88rpx};
-			text-align: center;
-			.advance-title {
-				font-size: #{20rpx};
-				color: #ffffff;
-				margin-top: #{5rpx};
-				margin-bottom: #{5rpx};
-			}
-			.num {
-				width:#{40rpx};
-				height: #{36rpx};
-				line-height: #{36rpx};
-				text-align: center;
-				border-radius: #{4rpx};
-				font-size: #{24rpx};
-				color: #353535;
-				background-color: #ffffff;
-			}
-			.word {
-				width: #{35rpx};
-				height: #{36rpx};
-				line-height: #{36rpx};
-				text-align: center;
-				font-size: #{24rpx};
-				color: #ffffff;
-			}
-		}
-	}
-</style>

+ 0 - 254
src/plugins/advance/components/detail-attr.vue

xqd
@@ -1,254 +0,0 @@
-<template>
-	<view class="detail-attr" >
-        <view class="safe-area-inset-bottom u-bottom-fixed">
-            <view class="attr-content" @tap.stop="preventD">
-                <view class="top dir-left-nowrap">
-                    <view class="image-view">
-                        <image :src="attr_pic_url ? attr_pic_url : image_url" @click="clickImage(index)"></image>
-                    </view>
-                    <view class="price dir-top-nowrap">
-                        <text class="des" :style="{'color': theme.color}">定金¥{{attr_deposit}}抵¥{{attr_swell_deposit}}</text>
-                        <text class="swell" :style="{'color': theme.color}" v-if="level_show == 0 || level_show == 2">
-                            ¥{{attr_price}}
-                            <text class="swell-text"> 预售价</text>
-                        </text>
-                        <text class="swell" :style="{'color': theme.color}"  v-if="level_show === 1">
-                            ¥{{attr_price_member}}
-                            <text class="swell-text"> 会员价</text>
-                        </text>
-                        <text class="stock">库存{{attr_stock}}</text>
-                    </view>
-                    <image class="close" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-close.png" @click="close_attr"></image>
-                </view>
-                <scroll-view class="center" :scroll-y="true">
-                    <view class="row" v-for="(item, index) in attr_groups" :key="index">
-                        <text class="attr-group-name">{{item.attr_group_name}}</text>
-                        <view class="attr-row dir-left-wrap">
-                            <view class="attr-item"
-                            	  :style="{'background-color': attr.active ? theme.background: ''}"
-                                  :class=" attr.active ? 'active-attr-item' : 'default-back'"
-                                  v-for="(attr, ind) in item.attr_list"
-                                  :key="ind"
-                                  @click.stop="select_attr(item, attr)"
-                            >{{attr.attr_name}}</view>
-                        </view>
-                    </view>
-                </scroll-view>
-                <view class="bottom dir-left-nowrap main-between cross-center">
-                    <text>数量</text>
-                    <view class="num dir-right-nowrap main-between cross-center">
-                        <image class="image" src="https://shop.9026.com/web/statics/image/mall/static/cart/can-be-added.png" @click.stop="add_num"></image>
-                        <input type="number" class="input" :value="num" @change="change_num">
-                        <image class="image" :src="num === 1 ? '../image/can-be-reduced.png' : 'https://shop.9026.com/web/statics/image/mall/static/cart/can-be-reduced.png'" @click.stop="edd_num"></image>
-                    </view>
-                </view>
-                <view :style="{height:`${height}rpx`}" >
-                </view>
-            </view>
-        </view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "detail-attr",
-	    data() {
-            return {
-                image_url: ''
-            }
-	    },
-	    props: {
-            height: Number,
-            cover_pic: String,
-            attr: Array,
-            attr_groups: Array,
-            goods_stock: Number,
-            attr_swell_deposit: {
-                type: [String, Number]
-            },
-            attr_deposit: {
-                type: [String, Number]
-            },
-            attr_stock: {
-                type: [String, Number]
-            },
-            price_member: Number,
-            attr_price: String,
-            level_show: Number,
-            attr_price_member: Number,
-            num: Number,
-            attr_pic_url: String,
-			theme: Object,
-	    },
-	    methods: {
-            close_attr() {
-                this.$emit('close_attr', true);
-            },
-            select_attr(data, item) {
-                this.$emit('select_attr', {
-                    data: data.attr_group_id, item: item.attr_id
-                });
-            },
-            change_num(data) {
-                this.$emit('change_num_data', Number(data.detail.value));
-            },
-		    add_num() {
-                this.$emit('change_num', 1);
-            },
-		    edd_num() {
-                if (this.num === 1) return;
-                this.$emit('change_num', -1);
-		    },
-            clickImage() {
-                let url = [];
-                if (this.attr_pic_url) {
-                    url.push(this.attr_pic_url);
-                } else {
-                    url.push(this.image_url);
-                }
-                uni.previewImage({
-                    urls: url
-                });
-            },
-			preventD() {}
-	    },
-	    mounted() {
-            if (this.attr[0] && this.attr[0].pic_url) {
-                this.image_url = this.attr[0].pic_url;
-            } else {
-	            this.image_url = this.cover_pic;
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-attr {
-		width: #{750rpx};
-		background-color: rgba(153,153,153,0.3);
-		height: 100%;
-		position: fixed;
-		top: 0;
-		left: 0;
-		z-index: 1601;
-	}
-	.attr-content {
-		width: #{750rpx};
-		border-top-left-radius: #{15rpx};
-		border-top-right-radius: #{15rpx};
-		padding: 0 #{24rpx};
-		.top {
-			height: #{155rpx};
-			width: #{702rpx};
-			border-bottom: #{1rpx} solid #e2e2e2;
-			position: relative;
-			.image-view {
-				width: #{200rpx};
-				height: #{200rpx};
-				background-color: white;
-				border-radius: #{9rpx};
-				text-align: center;
-				position: absolute;
-				top: #{-63rpx};
-				>image {
-					width: #{192rpx};
-					height: #{192rpx};
-					margin-top: #{4rpx};
-					border-radius: #{9rpx};
-				}
-			}
-			.close {
-				width: #{35rpx};
-				height: #{35rpx};
-				padding: #{5rpx};
-				position: absolute;
-				right: 0;
-				top: #{20rpx};
-			}
-			.price {
-				height: #{141rpx};
-				margin-left: #{228rpx};
-				width: #{441rpx};
-				padding-top: #{28rpx};
-				.stock {
-					font-size: #{24rpx};
-					color: #999999;
-				}
-				.des {
-					font-size: #{22rpx};
-					margin-bottom: #{5rpx};
-				}
-				.swell {
-					font-size: #{24rpx};
-					margin-bottom: #{5rpx};
-					.swell-text {
-						font-size: #{21rpx};
-					}
-				}
-			}
-		}
-		.center {
-			max-height: #{333rpx};
-			.row {
-				width: #{702rpx};
-				border-bottom: #{1rpx} solid #e2e2e2;
-				padding: #{32rpx 0 0 0};
-				font-size: #{25rpx};
-				.attr-group-name {
-					color: #666666;
-				}
-				.attr-row {
-					margin-top: #{19rpx};
-					.attr-item {
-						height: #{57rpx};
-						line-height: #{57rpx};
-						text-align: center;
-						border-radius: #{9rpx};
-						color: #1b1b1b;
-						margin-right: #{20rpx};
-						padding: 0 #{24rpx};
-						margin-bottom: #{32rpx};
-					}
-
-					.active-attr-item {
-						color: #ffffff;
-
-					}
-				}
-			}
-			
-		}
-		.bottom {
-			height: #{123rpx};
-			width: #{702rpx};
-			color: #6a6a6a;
-			.num {
-				width: #{216rpx};
-				height: #{60rpx};
-				.input {
-					width: #{90rpx};
-					height: #{60rpx};
-					background-color: #f7f7f7;
-					text-align: center;
-					color: #353535;
-				}
-				.image {
-					width: #{60rpx};
-					height: #{60rpx};
-					margin: #{0 2upx};
-				}
-			}
-		}
-	}
-	.default-back {
-		background-color: #f2f2f2;
-	}
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1601;
-        background-color: #ffffff;
-    }
-</style>

+ 0 - 334
src/plugins/advance/components/detail-bottom-button.vue

xqd
@@ -1,334 +0,0 @@
-<template>
-	<view>
-		<view class="bd-bottom dir-left-nowrap cross-center" v-if="active">
-            <view  @click="route_jump" class="bd-back dir-top-nowrap main-center cross-center box-grow-0">
-                <image class="bd-icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/index.png"></image>
-                <text class="bd-text">首页</text>
-            </view>
-            <bd-service :name="detail.name" :url="webUrl"></bd-service>
-            <view @click="set_favorite(favorite)" class="bd-back dir-top-nowrap main-center cross-center box-grow-0" >
-                <image class="bd-icon" :src="favorite ? 'https://shop.9026.com/web/statics/image/mall/static/icon/icon-favorite-active.png' : 'https://shop.9026.com/web/statics/image/mall/static/icon/icon-favorite.png'"></image>
-                <text class="bd-text">收藏</text>
-            </view>
-            <view class="box-grow-1 bd-btn bd-oversell-btn bd-btn-color" v-if="detail.goods_num === 0">
-                已售罄
-            </view>
-			<view v-else class="box-grow-1 dir-left-nowrap">
-				<view class="bd-btn bd-btn-half-3 bd-btn-left dir-top-nowrap main-center cross-center" :style="{'background-color': theme.background_s,'color': theme.secondary_text}">
-					<text class="bd-line">预售截止</text>
-					<text class="bd-line">{{getDate(end_prepayment_at)}}</text>
-				</view>
-				<view class="bd-btn bd-btn-half-4 bd-btn-color bd-btn-right" :style="{'background-color': !detail || detail.buy_goods_auth ? theme.background : '#999999'}" @click="set_active">
-                    支付定金
-				</view>
-			</view>
-		</view>
-		<view  v-if="!active" class="bd-bottom dir-left-nowrap">
-			<view class="bd-btn bd-btn-half-0 dir-top-nowrap main-center cross-center" :style="{'background-color': theme.background_s,'color': theme.secondary_text}">
-				<text class="bd-line">预售截止</text>
-				<text class="bd-line">{{getDate(end_prepayment_at)}}</text>
-			</view>
-			<view class="bd-btn bd-btn-half-1 bd-btn-color" :style="{'background-color': buttonDisabled ? '#dddddd': theme.background}" @click="pay">
-                支付定金
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-import bdService from '@/components/page-component/goods/bd-service.vue';
-
-    export default {
-        name: "detail-bottom-button",
-	    data() {
-            return {
-                request_time: false,
-	            once_pay: false,
-                webUrl: '',
-                disable: 'disable'
-            }
-	    },
-        components: {
-            bdService
-        },
-	    props: {
-            end_prepayment_at: String,
-            active: Boolean,
-            favorite: Boolean,
-            goods_id: Number,
-            detail: Object,
-            num: Number,
-			theme: Object,
-			buttonDisabled: Boolean
-	    },
-        created() {
-            this.webUrl = '/plugins/advance/detail/detail?id=' + this.goods_id;
-        },
-	    methods: {
-            set_active() {
-                if (this.$user.isLogin() && !this.once_pay) {
-                    this.$emit('close_attr', false);
-                } else if (!this.$user.isLogin()) {
-                    this.$user.getInfo().then(() => {
-                    }).catch(() => {
-                    });
-                }
-            },
-            set_favorite(data) {
-                if (data) {
-                    this.$request({
-	                    url: this.$api.user.favorite_remove,
-	                    data: {
-                            goods_id: this.goods_id,
-	                    }
-                    }).then(res => {
-                        if (res.code === 0) {
-                            this.$emit('favorite', !this.favorite);
-                        } else {
-                            uni.showModal({
-                                title: '提示',
-                                content: res.msg
-                            })
-                        }
-                    })
-                } else {
-                    this.$request({
-                        url: this.$api.user.favorite_add,
-                        data: {
-                            goods_id: this.goods_id,
-                        }
-                    }).then(res => {
-                        if (res.code === 0) {
-                            this.$emit('favorite', !this.favorite);
-                        } else {
-                            uni.showModal({
-                                title: '提示',
-                                content: res.msg
-                            })
-                        }
-                    })
-                }
-            },
-            route_jump() {
-                uni.navigateTo({
-	                url: `/pages/index/index`,
-                });
-            },
-			submit(body) {
-				this.once_pay = true;
-				uni.showLoading({
-					title: '生成订单中...',
-					mask: true,
-				});
-				this.$emit('close_attr', true);
-				this.get_submit(body).then(response => {
-					this.get_token(response.data);
-				});
-			},
-            pay() {
-            	if (this.buttonDisabled) return;
-				if (this.detail.min_number > this.num) {
-					this.$tips.showToast({
-						title: '该商品' + this.detail.min_number + this.detail.unit + '起售',
-                        icon: 'none'
-					});
-					return ;
-				}
-				if (typeof this.detail.limit_buy !== 'undefined' && this.detail.limit_buy.status == 1 && this.detail.limit_buy.rest_number < this.num) {
-                    this.$tips.showToast({
-                        title: this.detail.limit_buy.text,
-                        icon: 'none'
-                    });
-					return ;
-				}
-				let body = {
-					goods_id: this.detail.id,
-					goods_attr_id: 0,
-					goods_num: `${this.num}`,
-					advance_goods_id: this.detail.advanceGoods.id,
-				};
-				let attr = ``;
-				let attr_groups = this.detail.attr_groups;
-				for (let i = 0; i < attr_groups.length; i++) {
-					let attr_list = attr_groups[i];
-					for (let j = 0; j < attr_list.attr_list.length; j++) {
-						if (attr_list.attr_list[j].active) {
-							attr += `:${attr_list.attr_list[j].attr_id}`
-						}
-					}
-				}
-				for (let i = 0; i < this.detail.attr.length; i++) {
-					if (this.detail.attr[i].sign_id === attr.substring(1)) {
-						if (this.num > this.detail.attr[i].stock) {
-							uni.showToast({
-								title: '库存不足',
-								icon: 'none'
-							});
-							return;
-						}
-						body.goods_attr_id = this.detail.attr[i].id;
-					}
-				}
-				this.$subscribe(this.detail.template_message).then(() => {
-					this.submit(body);
-				}).catch(() => {
-					this.submit(body);
-				});
-            },
-		    get_token(data) {
-                this.$request({
-	                url: this.$api.advance.pay_data,
-	                method: 'post',
-	                data: {
-	                    ...data
-	                },
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data.hasOwnProperty('id')) {
-                            uni.hideLoading();
-                            this.$payment.pay(response.data.id).then(() => {
-                                this.once_pay = false;
-                                // 支付成功
-                                uni.navigateTo({
-                                    url: `/plugins/advance/order/order`
-                                })
-                            }).catch(() => {
-                                // 支付失败
-                                this.once_pay = false;
-                                uni.navigateTo({
-                                    url: `/plugins/advance/order/order`
-                                })
-                            });
-                        } else {
-                             setTimeout(() => {
-                                this.get_token(data);
-                            }, 1000);
-                        }
-                    } else {
-                        uni.hideLoading();
-                        uni.showToast({
-							title: response.msg,
-							icon: 'none'
-                        })
-                    }
-                });
-		    },
-		    async get_submit(body) {
-                const response = await this.$request({
-                    url: this.$api.advance.order_submit,
-                    method: 'post',
-                    data: {
-                        ...body,
-                    }
-                });
-                if (response.code === 0) {
-                    return response;
-                } else if (response.code === 1) {
-                    uni.showModal({
-	                    title: '提示',
-	                    content: response.msg,
-                        success(res){
-                            if(res.cancel){
-                                this.$emit('request', this.goods_id);
-                            }else if(res.confirm){
-                               uni.navigateBack();
-                            }
-                        }
-                    });
-                }
-		    },
-            getDate(end_prepayment_at) {
-                let newDate = new Date(end_prepayment_at.replace(/-/g, '/'));
-                newDate.setDate(newDate.getDate());
-                let month = newDate.getMonth() + 1;
-                let day = newDate.getDate();
-                let mm = "'" + month + "'";
-                let dd = "'" + day + "'";
-                if(mm.length == 3) {
-                    month = "0" + month;
-                }
-                if(dd.length == 3) {
-                    day = "0" + day;
-                }
-                let hour = newDate.getHours();//得到小时
-                let minu = newDate.getMinutes();//得到分钟
-                let sec = newDate.getSeconds();//得到秒
-                sec = `${sec}`;
-                minu = `${minu}`;
-                hour = `${hour}`;
-                if (hour.length === 1) {
-                    hour = `0${hour}`
-                }
-                if (minu.length === 1) {
-                    minu = `0${minu}`
-                }
-                if (sec.length === 1) {
-                    sec = `0${sec}`
-                }
-                return newDate.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-            },
-	    },
-    }
-</script>
-
-<style scoped lang="scss">
-.bd-bottom {
-    width: 750upx;
-    height: 110upx;
-    padding: 20upx 24upx;
-}
-.bd-back {
-    width: 66upx;
-    height: 100%;
-    margin-right: 20upx;
-}
-.bd-icon {
-    width: 30upx;
-    height: 30upx;
-    margin-bottom: 8upx;
-}
-.bd-text {
-    font-size: 20upx;
-    color: #888888;
-    line-height: 1;
-}
-.bd-btn {
-    text-align: center;
-    line-height: 70upx;
-    font-size: 26upx;
-    border-radius: 35upx;
-}
-.bd-btn-left {
-    border-top-right-radius: 0;
-    border-bottom-right-radius: 0;
-}
-.bd-btn-right {
-    border-top-left-radius: 0;
-    border-bottom-left-radius: 0;
-}
-.bd-btn-half {
-    width: 50%;
-}
-.bd-btn-color {
-    color: #ffffff;
-}
-.bd-oversell-btn {
-    background-color: #CDCDCD;
-}
-    .bd-line {
-        line-height: 1.1;
-    }
-    .bd-btn-half-0 {
-        width: 341upx;
-        margin-right: 20upx
-    }
-    .bd-btn-half-1 {
-        width: 341upx;
-    }
-    .bd-btn-half-3 {
-        width: 65%;
-    }
-.bd-btn-half-4 {
-    width: 35%;
-}
-</style>

+ 0 - 265
src/plugins/advance/components/detail-discount.vue

xqd
@@ -1,265 +0,0 @@
-<template>
-	<view class="detail-discount">
-		<view class="top dir-left-nowrap main-between">
-			<view class="text">
-				<template v-if="activeIndex === 0 && ladder_rules.length === 1">
-					<view>
-						再抢购{{ladder_rules[0].num-sales}}件
-					</view>
-					<view>
-						可享
-						<text>{{ladder_rules[0].discount}}</text>
-						折优惠
-					</view>
-				</template>
-				<template v-if="activeIndex === 0 && ladder_rules.length > 1">
-					<view>
-						再抢购{{ladder_rules[0].num-sales}}件
-					</view>
-					<view>
-						可享
-						<text>{{ladder_rules[0].discount}}</text>
-						折优惠
-					</view>
-				</template>
-				<template v-if="activeIndex > 0">
-					<view>
-						当前{{ladder_rules[activeIndex-1].discount}}折,再抢购{{ladder_rules[activeIndex].num-sales}}件
-					</view>
-					<view>
-						可享
-						<text>{{ladder_rules[activeIndex].discount}}</text>
-						折优惠
-					</view>
-				</template>
-				<template v-if="activeIndex === -1">
-					<view >已满足抢购条件</view>
-					可享
-					<text>{{ladder_rules[ladder_rules.length - 1].discount}}</text>
-					折优惠
-				</template>
-			</view>
-			<view class="button" >
-				<!-- #ifdef MP -->
-				<app-jump-button form  open_type="share">邀请好友购买</app-jump-button>
-				<!-- #endif -->
-				<!-- #ifdef H5 -->
-				<app-jump-button form  @click.native="shareUrl">邀请好友购买</app-jump-button>
-				<!-- #endif -->
-			</view>
-		</view>
-		<view class="bottom">
-			<view :scroll-x="true"  class="textss"  v-if="ladder_rules.length === 1">
-				<view class="scroll-empty"></view>
-				<view class="content-d border-radius-right border-radius-left" style="width:654rpx;">
-					<view class="content-d-d-d border-radius-left border-radius-right" :style="{width: `${ activeIndex === -1 ? '702' : (702/Number(ladder_rules[0].num)) * sales}rpx`}"></view>
-					<text class="content-text-o">满{{ladder_rules[0].num}}件,享{{Number(ladder_rules[0].discount)}}折</text>
-				</view>
-				<view class="scroll-empty after"></view>
-			</view>
-			<scroll-view :scroll-x="true"  class="textss"  v-if="ladder_rules.length !== 1" >
-				<view class="scroll-empty"></view>
-				<view class="content-d" v-for="(item, index) in ladder_rules" :key="index" :class="{'border-radius-left': index === 0, 'border-radius-right': index === ladder_rules.length - 1}">
-					<view class="content-d-d-d" :style="{width: `${getNum(item, index)}rpx`}" :class="{'border-radius-left': index === 0, 'border-radius-right': index === ladder_rules.length - 1}"></view>
-					<text class="content-text">满{{item.num}}件,享{{item.discount}}折</text>
-					<view class="yuan-default" :class="{'yuan' : activeIndex > index || activeIndex === -1}" ></view>
-				</view>
-				<view class="scroll-empty after"></view>
-			</scroll-view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "detail-discount",
-	    data() {
-            return {
-                shareShow: false,
-                x: 0,
-                y: 0,
-                old: {
-                    x: 0,
-                    y: 0
-                }
-            }
-	    },
-	    props: {
-            url: String,
-            ladder_rules: Array,
-            sales: Number,
-	    },
-	    computed: {
-            activeIndex() {
-                let index = 0;
-                for (let i = 0; i < this.ladder_rules.length; i++) {
-                    if (this.ladder_rules[i].num > this.sales) {
-                        return i;
-                    } else {
-                        index += 1;
-                    }
-                }
-                if (index === this.ladder_rules.length) {
-                    return -1;
-                }
-            }
-	    },
-	    methods: {
-            open_share() {
-                this.shareShow = true;
-            },
-            onChange: function(e) {
-                this.old.x = e.detail.x;
-            },
-            getNum(item, index) {
-                if (this.activeIndex > index) {
-                    return 320;
-                } else if (this.activeIndex === index) {
-                    if (index === 0) {
-                        return 320/Number(item.num) * this.sales;
-                    } else {
-                        return 320/(Number(item.num)-Number(this.ladder_rules[index-1].num)) * (this.sales-Number(this.ladder_rules[index-1].num));
-                    }
-                } else if (this.activeIndex === -1) {
-                    return 320;
-                } else if (this.activeIndex < index) {
-                    return 0;
-                }
-            },
-			// #ifdef H5
-			shareUrl() {
-				 this.$utils.uniCopy({
-					data: window.location.href,
-					success() {
-						uni.showToast({
-							icon: 'none',
-							title: '链接已复制'
-						});
-					}
-				});
-			}
-			// #endif
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-discount {
-		width: #{702rpx};
-		background:linear-gradient(45deg,#ff8c40, #ff6d40);
-		height: #{210rpx};
-        border-radius: 15upx;
-        margin: 24upx 24upx 0 24upx;
-		.top {
-			color: #ffffff;
-			padding: #{ 30rpx 24rpx 0 24rpx};
-			.text {
-				font-size: #{26rpx};
-				text {
-					font-size: #{32rpx};
-				}
-			}
-			.button {
-				margin-top: #{8rpx};
-				width: #{213rpx};
-				height: #{56rpx};
-				line-height: #{54rpx};
-				font-size: #{26rpx};
-				color: #ffffff;
-				border-radius: #{30rpx};
-				text-align: center;
-				border: #{1rpx} solid #ffffff;
-			}
-		}
-		.bottom {
-			height: #{100rpx};
-			width: #{702rpx};
-		}
-	}
-	.textss {
-		height: #{100rpx};
-		white-space: nowrap;
-	}
-	.content {
-		height: #{10rpx};
-		width: #{702rpx};
-		background-color: #b24c2d;
-		border-radius: #{5rpx};
-		position: relative;
-		.content-nei {
-			height: #{10rpx};
-			border-radius: #{5rpx};
-			background-color: #ffffff;
-		}
-		.content-text {
-			position: absolute;
-			font-size: #{24rpx};
-			color: #ffffff;
-			margin-top: #{16rpx};
-			right: 0;
-		}
-	}
-	.content-d {
-		display: inline-block;
-		width: #{320rpx};
-		height: #{10rpx};
-		position: relative;
-		margin-top: #{5rpx};
-		background-color: rgba(204, 94, 51, .8);
-		.content-text {
-			position: absolute;
-			font-size: #{24rpx};
-			color: #ffffff;
-			margin-top: #{16rpx};
-			right: 0;
-			transform: translateX(50%);
-		}
-		.content-text-o {
-			position: absolute;
-			font-size: #{24rpx};
-			color: #ffffff;
-			margin-top: #{16rpx};
-			right: 0;
-		}
-	}
-	.content-d-d {
-		height: #{10rpx};
-		border-radius: #{5rpx};
-	}
-	.content-d-d-d {
-		height: #{10rpx};
-		background-color: #f7f7f7;
-	}
-	.yuan {
-		background-color: #ff8c40 !important;
-		border: #{5rpx} solid #ffffff !important;
-	}
-	.scroll-empty {
-		height: #{10upx};
-		width: #{25upx};
-		display: inline-block;
-	}
-	.after {
-		width: #{125upx};
-	}
-	.yuan-default {
-		border-radius: 50%;
-		position: absolute;
-		z-index: 1400;
-		top: 50%;
-		transform: translateY(-50%);
-		right: 0;
-		width: #{20rpx};
-		height: #{20rpx};
-		background-color: rgba(204, 94, 51, .8);
-		border: #{5rpx} solid rgba(204, 94, 51, .8) ;
-	}
-	.border-radius-left {
-		border-top-left-radius: #{5rpx};
-		border-bottom-left-radius: #{5rpx};
-	}
-	.border-radius-right {
-		border-top-right-radius: #{5rpx};
-		border-bottom-right-radius: #{5rpx};
-	}
-</style>

+ 0 - 420
src/plugins/advance/components/detail-price-share.vue

xqd
@@ -1,420 +0,0 @@
-<template>
-    <view class="detail-price-share" :style="{paddingBottom: level_show !== 2 ? '20rpx' : 0}">
-        <view class="top dir-left-nowrap main-between">
-            <view class="price">
-                <view class="member-price" v-if="level_show == 1">
-                    <view class="member dir-left-nowrap cross-bottom">
-                        <text class="m-p" v-if="member_price_status === 0" :style="{'color': theme.color}">
-                            <text class="symbol">¥</text>
-                            {{group_min_member_price}}
-                        </text>
-                        <text class="m-p" v-if="member_price_status === 1" :style="{'color': theme.color}">
-                            <text class="symbol">¥</text>
-                            {{group_min_member_price}}-
-                            <text class="symbol"></text>
-                            {{group_max_member_price}}
-                        </text>
-                        <text class="logo" :style="{'background-color': theme.background_o,'color': theme.color}"
-                              style="margin-bottom: 8upx;">会员价
-                        </text>
-                        <app-sup-vip :is_vip_card_user="is_vip_card_user" margin="0 0 8rpx 10rpx" v-if="discount"
-                                     :discount="discount"></app-sup-vip>
-                    </view>
-                    <view class="yushou">
-                        <text class="p" :style="{'color': theme.color}" v-if="status === 0">
-                            <text class="symbol">¥</text>
-                            {{price_min}}
-                        </text>
-                        <text class="p" :style="{'color': theme.color}" v-if="status === 1">
-                            <text class="symbol">¥</text>
-                            {{price_min}}-
-                            <text class="symbol"></text>
-                            {{price_max}}
-                        </text>
-                        <text class="p-t" :style="{'color': theme.color}">预售价</text>
-                        <text class="ori" v-if="isUnderlinePrice == 1">
-                            ¥{{original_price}}
-                        </text>
-                    </view>
-                </view>
-
-                <view v-if="level_show == 2 || level_show == 0" class="dir-left-nowrap cross-bottom">
-                    <text class="presale" :style="{'color': theme.color}" v-if="status === 0">
-                        <text class="symbol">¥</text>
-                        {{price_min}}
-                    </text>
-                    <text class="presale" :style="{'color': theme.color}" v-if="status === 1">
-                        <text class="symbol">¥</text>
-                        {{price_min}}-
-                        <text class="symbol"></text>
-                        {{price_max}}
-                    </text>
-                    <text style="margin-bottom: 8upx;" :style="{'color': theme.color}" class="title">预售价</text>
-                    <app-sup-vip :is_vip_card_user="is_vip_card_user" margin="0 0 8rpx 10rpx" v-if="discount"
-                                 :discount="discount"></app-sup-vip>
-                </view>
-                <view class="original-price" v-if="(level_show == 2 || level_show === 0) && isUnderlinePrice == 1">
-                    ¥{{original_price}}
-                </view>
-            </view>
-            <view class="share dir-top-nowrap main-between">
-                <view @click="share_show"  :style="{'background-color': theme.background}" class="bd-share-box dir-left-nowrap main-center cross-center">
-                    <image class="bd-icon box-grow-0" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-share-white.png"></image>
-                    <text class="bd-text box-grow-0">分享</text>
-                </view>
-            </view>
-        </view>
-        <view class="bottom">
-            <view>
-                <text class="des" :style="{'color': theme.color}" v-if="de_status === 0 && swell_status === 0">
-                    定金¥{{de_price}}抵¥{{swell_price}}
-                </text>
-                <text class="des" :style="{'color': theme.color}" v-if="de_status === 1 && swell_status === 0">
-                    定金¥{{de_price_min}}-{{de_price_max}}抵¥{{swell_price}}
-                </text>
-                <text class="des" :style="{'color': theme.color}" v-if="de_status === 1 && swell_status === 1">
-                    定金¥{{de_price_min}}-{{de_price_max}}抵¥{{swell_price_min}}-{{swell_price_max}}
-                </text>
-                <text class="des" :style="{'color': theme.color}" v-if="de_status === 0 && swell_status === 1">
-                    定金¥{{de_price}}抵¥{{swell_price_min}}-{{swell_price_max}}
-                </text>
-            </view>
-            <view class="time">
-                尾款支付时间:{{set_time}}
-            </view>
-        </view>
-        <view>
-            <app-share-qr-code v-model="shareShow"
-                               :url="url"
-                               :has-poster-nav="hasPosterNav"
-                               :poster-config="posterConfig"
-                               :poster-generate="posterGenerate"
-                               :goods="goods"
-                               @share="shareAppMessage"
-            ></app-share-qr-code>
-        </view>
-    </view>
-</template>
-
-<script>
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-    import {mapGetters, mapState} from 'vuex';
-
-    export default {
-        name: "detail-price-share",
-        data() {
-            return {
-                price: 0,
-                status: 0,
-                de_price: 0,
-                de_status: 0,
-                swell_price: 0,
-                swell_status: 0,
-                de_price_min: 0,
-                de_price_max: 0,
-                swell_price_min: 0,
-                swell_price_max: 0,
-                shareShow: false,
-                member_price_min: 0,
-                member_price_max: 0,
-                member_price_status: 0,
-                start_end: '',
-            }
-        },
-        props: {
-            price_min: Number,
-            price_max: Number,
-            attr: Array,
-            original_price: String,
-            url: String,
-            level_show: Number,
-            group_min_member_price: Number,
-            group_max_member_price: Number,
-            end_prepayment_at: String,
-            pay_limit: Number,
-            cats: Array,
-            goodsId: Number,
-            discount: {
-                type: String
-            },
-            is_vip_card_user: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            },
-            theme: Object,
-            posterConfig: String,
-            posterGenerate: String,
-            hasPosterNav: {
-                type: Boolean,
-                default() {
-                    return false
-                },
-            },
-            goods:Object
-
-        },
-        mounted() {
-            if (this.price_min === this.price_max) {
-                this.status = 0;
-            } else {
-                this.status = 1;
-            }
-            let deposit = [];
-            let swell_deposit = [];
-            for (let i = 0; i < this.attr.length; i++) {
-                deposit.push(this.attr[i].deposit);
-                swell_deposit.push(this.attr[i].swell_deposit);
-            }
-            let max = Math.max.apply(null, deposit);
-            let min = Math.min.apply(null, deposit);
-            let swell_max = Math.max.apply(null, swell_deposit);
-            let swell_min = Math.min.apply(null, swell_deposit);
-            if (max === min) {
-                this.de_price = min;
-                this.de_status = 0;
-            } else {
-                this.de_status = 1;
-                this.de_price_min = min;
-                this.de_price_max = max;
-            }
-            if (swell_min === swell_max) {
-                this.swell_price = swell_min;
-                this.swell_status = 0;
-            } else {
-                this.swell_status = 1;
-                this.swell_price_min = swell_min;
-                this.swell_price_max = swell_max;
-            }
-            if (this.group_min_member_price === this.group_max_member_price) {
-                this.member_price_status = 0;
-            } else {
-                this.member_price_status = 1;
-            }
-        },
-        computed: {
-            set_time() {
-                if (this.pay_limit === -1) {
-                    return `${this.getDate(this.end_prepayment_at)} ~ 无期限`
-                } else {
-                    this.addDate(this.end_prepayment_at, this.pay_limit);
-                    return `${this.getDate(this.end_prepayment_at)} ~ ${this.addDate(this.end_prepayment_at, this.pay_limit)}`
-                }
-            },
-            ...mapGetters('mallConfig', {
-                vip: 'getVip'
-            }),
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                isUnderlinePrice: state => state.mallConfig.mall.setting.is_underline_price,
-            })
-        },
-        methods: {
-            shareAppMessage(s){
-                this.$emit('share', s);
-            },
-            addDate(date, days) {
-                if (days == undefined || days == '') {
-                    days = 1;
-                }
-                var date = new Date(date.replace(/-/g, '/'));
-                date.setDate(date.getDate() + days);
-                let month = date.getMonth() + 1;
-                let day = date.getDate();
-                let mm = "'" + month + "'";
-                let dd = "'" + day + "'";
-                if (mm.length == 3) {
-                    month = "0" + month;
-                }
-                if (dd.length == 3) {
-                    day = "0" + day;
-                }
-                let hour = date.getHours();//得到小时
-                let minu = date.getMinutes();//得到分钟
-                let sec = date.getSeconds();//得到秒
-                if (sec === 0) {
-                    sec = 59;
-                    if (minu === 0) {
-                        minu = 59;
-                        if (hour === 0) {
-                            hour = 23;
-                            day = '0' + Number(day) - 1;
-                        } else {
-                            hour = hour - 1;
-                        }
-                    } else {
-                        minu = minu - 1;
-                    }
-                } else {
-                    sec = sec - 1;
-                }
-                sec = `${sec}`;
-                minu = `${minu}`;
-                hour = `${hour}`;
-                if (hour.length === 1) {
-                    hour = `0${hour}`
-                }
-                if (minu.length === 1) {
-                    minu = `0${minu}`
-                }
-                if (sec.length === 1) {
-                    sec = `0${sec}`
-                }
-                let time = date.getFullYear() + "." + month + "." + day + ' ' + hour + ':' + minu + ':' + sec;
-                return time;
-            },
-            getDate(end_prepayment_at) {
-                let newDate = new Date(end_prepayment_at.replace(/-/g, '/'));
-                newDate.setDate(newDate.getDate());
-                let month = newDate.getMonth() + 1;
-                let day = newDate.getDate();
-                let mm = "'" + month + "'";
-                let dd = "'" + day + "'";
-                let hour = newDate.getHours();//得到小时
-                let minu = newDate.getMinutes();//得到分钟
-                let sec = newDate.getSeconds();//得到秒
-                sec = `${sec}`;
-                minu = `${minu}`;
-                hour = `${hour}`;
-                if (mm.length == 3) {
-                    month = "0" + month;
-                }
-                if (dd.length == 3) {
-                    day = "0" + day;
-                }
-                if (hour.length === 1) {
-                    hour = `0${hour}`
-                }
-                if (minu.length === 1) {
-                    minu = `0${minu}`
-                }
-                if (sec.length === 1) {
-                    sec = `0${sec}`
-                }
-                let time = newDate.getFullYear() + "." + month + "." + day + ' ' + hour + ':' + minu + ':' + sec;
-                return time;
-            },
-            share_show() {
-                if (this.$user.isLogin()) {
-                    this.shareShow = true;
-                } else {
-                    this.$user.getInfo();
-                }
-            },
-        },
-        components: {
-            'app-share-qr-code': appShareQrCode
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .detail-price-share {
-        padding: #{18rpx 20rpx 20rpx 20rpx};
-        background-color: #ffffff;
-        width: 702upx;
-        margin: 0 24upx;
-        .presale {
-            font-size: #{56rpx};
-            margin-right: #{16rpx};
-            font-family: DIN;
-            text-align: end;
-
-            .symbol {
-                font-size: #{32rpx};
-            }
-        }
-
-        .title {
-            font-size: #{28rpx};
-        }
-
-        .des {
-            font-size: #{26rpx};
-            line-height: #{26rpx};
-        }
-
-        .original-price {
-            font-size: #{24rpx};
-            color: #999999;
-            margin-top: #{8rpx};
-            text-decoration: line-through;
-        }
-
-        .share {
-            margin-top: #{23rpx};
-            height: #{80rpx};
-            margin-right: #{-23rpx};
-            padding: #{5rpx};
-
-            .bd-share-box {
-                height: #{48rpx};
-                border-radius: #{40rpx} 0 0 #{40rpx};
-                padding: 0 #{14rpx};
-                width: #{103rpx};
-
-                > image {
-                    width: #{22rpx};
-                    height: #{22rpx};
-                }
-
-                > text {
-                    font-size: #{22rpx};
-                    color: #ffffff;
-                    margin-left: #{10rpx};
-                }
-            }
-        }
-    }
-
-    .member-price {
-        .symbol {
-            font-size: #{23rpx};
-        }
-
-        .member {
-            color: #f39800;
-            font-family: DIN;
-
-            .m-p {
-                font-family: DIN;
-                font-size: #{40rpx};
-            }
-
-            .logo {
-                display: inline-block;
-                font-size: #{20rpx};
-                border: #{1rpx} solid;
-                padding: #{2rpx 4rpx};
-                margin-left: #{12rpx};
-                border-radius: #{8rpx};
-                margin-bottom: #{5rpx};
-            }
-        }
-
-        .yushou {
-            .p {
-                font-size: #{26rpx};
-                font-family: DIN;
-            }
-
-            .p-t {
-                font-size: #{26rpx};
-                margin-left: #{8rpx};
-            }
-        }
-
-        .ori {
-            text-decoration: line-through;
-            color: #999999;
-            font-size: #{24rpx};
-            margin-left: #{16rpx};
-        }
-    }
-
-    .time {
-        font-size: #{22rpx};
-        color: #999999;
-    }
-</style>

+ 0 - 106
src/plugins/advance/components/detail-vip.vue

xqd
@@ -1,106 +0,0 @@
-<template>
-	<view class="detail-vip" @click="nav">
-		<image class="bg" src="../image/S-VIP-BG.png"></image>
-		<view class="content dir-left-nowrap">
-			<view class="item icon">
-				<image class="icon" src="../image/v-logo.png"></image>
-			</view>
-			<view class="item text dir-top-nowrap">
-				<text class="big text">开通{{name}}超级会员,立省更多</text>
-				<text class="small text">超值全场{{discount == 0 ? '免费': discount + '折'}}!</text>
-			</view>
-			<view class="item button">
-				<view class="button">
-					立即开通
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'detail-vip',
-	    props: {
-            discount: String,
-            name: String,
-	    },
-	    methods: {
-            nav() {
-                uni.navigateTo({
-	                url: `/plugins/vip_card/index/index`,
-                })
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.detail-vip {
-		position: relative;
-		width: #{750upx};
-		height: #{120upx};
-		padding: #{0 24upx};
-		background-color: #ffffff;
-		.bg {
-			width: 100%;
-			height: #{120upx};
-			border-radius: #{14upx};
-		}
-		.content {
-			position: absolute;
-			top: 0;
-			left: #{24upx};
-			width: calc(100% - #{48upx});
-			height: #{120upx};
-		}
-		.item {
-			height: 100%;
-			.icon {
-				width: #{60upx};
-				height: #{60upx};
-				margin: #{36upx 0 0 26upx};
-			}
-			.text {
-				color: #e9ceb9;
-			}
-			.big {
-				font-size: #{26upx};
-				line-height: 1;
-				margin-top: #{30upx};
-				margin-bottom: #{12upx};
-				word-break: break-all;
-				text-overflow: ellipsis;
-				display: -webkit-box;
-				-webkit-box-orient: vertical;
-				-webkit-line-clamp: 1;
-				overflow: hidden;
-				white-space: normal;
-			}
-			.small {
-				font-size: #{21upx};
-				line-height: 1;
-			}
-		}
-		.item.icon {
-			width: #{115upx};
-		}
-		.item.text {
-			width: #{417upx};
-		}
-		.item.button {
-			width: #{170upx};
-			.button {
-				width: #{120upx};
-				height: #{48upx};
-				text-align: center;
-				border-radius: #{24upx};
-				background: linear-gradient(to right, #fbdec8, #f3be94);
-				font-size: #{24upx};
-				line-height: 2;
-				color: #342e25;
-				margin-top: #{36upx};
-			}
-		}
-	}
-</style>

+ 0 - 238
src/plugins/advance/components/index-product-list.vue

xqd
@@ -1,238 +0,0 @@
-<template>
-	<view class="product-list" v-if="product.length > 0">
-		<view class="item" v-for="(item, index) in newProduct" :key="index" :class="{'item-bottom-bor': index !== product.length-1}" @click="route_jump(item)">
-			<app-form-id>
-				<view class="item-in dir-left-wrap main-between cross-center">
-					<image class="goods-cover" :src="item.cover_pic" :lazy-load="true"></image>
-					<view class="out-dialog" v-if="item.goods_stock == 0 && appSetting.is_show_stock == '1'">
-						<image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-					</view>
-					<view class="item-content dir-top-nowrap main-between">
-						<view>
-							<text class="item-name">{{item.name}}</text>
-							<view class="item-time dir-left-wrap">
-								<image  class="icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/time.png"></image>
-								<text class="text">距预售截止:</text>
-								<text class="text-time" :style="{'color': theme.color}">{{item.html}}</text>
-							</view>
-						</view>
-						<view class="price-button dir-left-nowrap main-between">
-							<view class="price">
-								<text class="symbol" :style="{'color': theme.color}" v-if="item.use_attr == 0">定金¥{{Number(item.advanceGoods.deposit)}}抵¥{{Number(item.advanceGoods.swell_deposit)}}</text>
-								<text class="symbol" :style="{'color': theme.color}" v-if="item.use_attr == 1">定金¥{{Number(item.attr[0].deposit)}}抵¥{{Number(item.attr[0].swell_deposit)}}</text>
-								<view class="dir-left-nowrap cross-center">
-									<template v-if="item.is_level == 1">
-										<app-member-price :theme="theme" :price="item.level_price"></app-member-price>
-									</template>
-									<app-sup-vip :is_vip_card_user="item.vip_card_appoint.is_vip_card_user" margin="0 0 0 10rpx" v-if="item.vip_card_appoint.discount" :discount="item.vip_card_appoint.discount"></app-sup-vip>
-								</view>
-								<view class="all-price">
-									<text class="new-price" :style="{'color': theme.color}">¥{{Number(item.price)}}</text>
-									<text class="old-price">¥{{Number(item.original_price)}}</text>
-								</view>
-							</view>
-							<view v-if="item.goods_stock > 0" class="button" :style="{'background-color': item.buy_goods_auth ? theme.background : '#999999'}">抢购</view>
-						</view>
-					</view>
-				</view>
-			</app-form-id>
-		</view>
-	</view>
-</template>
-
-<script>
-	import {mapGetters, mapState} from 'vuex';
-
-    export default {
-		name: 'index-product-list',
-		data() {
-			return {
-				disable: 'disable'
-			};
-		},
-        props: {
-            product: {
-                type: Array,
-	            default() {
-                    return [];
-	            }
-            },
-			theme: Object,
-        },
-	    methods: {
-            route_jump(data) {
-				// #ifndef MP-BAIDU
-				if (data.goodsWarehouse.video_url && this.getVideo == 1) {
-				    // #ifdef MP
-					uni.navigateTo({
-						url: `/pages/goods/video?goods_id=${data.id}&sign=advance`
-					});
-					// #endif
-                    // #ifdef H5
-                    uni.navigateTo({
-                        url: data.page_url,
-                    });
-                    // #endif
-				} else {
-					uni.navigateTo({
-						url: data.page_url,
-					});
-				}
-				// #endif
-
-				// #ifdef MP-BAIDU
-				uni.navigateTo({
-					url: data.page_url,
-				});
-				// #endif
-            }
-	    },
-	    computed: {
-            newProduct() {
-                for (let i = 0; i < this.product.length; i++) {
-                    let attr = this.product[i].attr;
-                    let compare = function (obj1, obj2) {
-                        let val1 = Number(obj1.deposit);
-                        let val2 = Number(obj2.deposit);
-                        if (val1 < val2) {
-                            return -1;
-                        } else if (val1 > val2) {
-                            return 1;
-                        } else {
-                            return 0;
-                        }
-                    };
-                    this.product[i].attr = attr.sort(compare);
-                }
-                return this.product;
-            },
-            ...mapGetters('mallConfig',{
-                vip: 'getVip',
-				getVideo: 'getVideo'
-            }),
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                appSetting: state => state.mallConfig.mall.setting,
-                mall: state => state.mallConfig.mall,
-                platform: function(state) {
-                    return state.gConfig.systemInfo.platform;
-                }
-            })
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.product-list {
-		width: #{750rpx};
-		.item {
-			height: #{268rpx};
-			background-color: #ffffff;
-			width: 100%;
-			padding: #{24rpx};
-			position: relative;
-			.item-in {
-				width: #{702rpx};
-				height: #{220rpx};
-				.goods-cover {
-					width: #{220rpx};
-					height: #{220rpx};
-					border-radius: #{12rpx};
-				}
-				.out-dialog {
-					width: #{220rpx};
-					height: #{220rpx};
-					position: absolute;
-					bottom: 0;
-					left: 0;
-					background-color: rgba(0,0,0,.5);
-					image {
-						width: #{220rpx};
-						height: #{220rpx};
-					}
-				}
-				.item-content {
-					width: #{458rpx};
-					height: #{220rpx};
-				}
-				.item-name {
-					width: #{458rpx};
-					line-height: 35upx;
-					margin: #{7rpx} 0;
-					font-size: #{25rpx};
-					color: #353535;
-					word-break: break-all;
-					text-overflow: ellipsis;
-					display: -webkit-box;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-				}
-				.item-time {
-					width: #{458rpx};
-					height: #{24rpx};
-					margin-top: #{8rpx};
-					line-height: #{24rpx};
-					.icon {
-						width: #{24rpx};
-						height: #{24rpx};
-						margin-right: #{12rpx};
-					}
-					.text {
-						font-size: #{25rpx};
-						color: #adadad;
-					}
-					.text-time {
-						font-size: #{25rpx};
-					}
-				}
-				.price-button {
-					width: #{458rpx};
-					height: #{73rpx};
-					margin-bottom: #{28rpx};
-					.price {
-						width: #{354rpx};
-						height: #{73rpx};
-						.symbol {
-							display: inline-block;
-							padding: #{0rpx 4rpx};
-							font-size: #{24rpx};
-							border: #{1rpx} solid;
-							border-radius: #{8rpx};
-							margin: #{5upx 0 5upx 0};
-						}
-						.all-price {
-							line-height: 1;
-							font-size: #{28rpx};
-							margin-top: #{8upx};
-							.new-price {
-								font-size: #{28rpx};
-								line-height: 1;
-							}
-							.old-price {
-								font-size: #{21rpx};
-								color: #999999;
-								text-decoration: line-through;
-								margin-left: #{12rpx};
-								line-height: 1;
-							}
-						}
-					}
-					.button {
-						width: #{104rpx};
-						height: #{56rpx};
-						margin-top: #{60rpx};
-						border-radius: #{28rpx};
-						font-size: #{28rpx};
-						color: #ffffff;
-						text-align: center;
-						line-height: #{56rpx};
-					}
-				}
-			}
-		}
-		.item-bottom-bor {
-			border-bottom: #{1rpx} solid #eeeeee;
-		}
-	}
-</style>

+ 0 - 44
src/plugins/advance/components/index-swipe.vue

xqd
@@ -1,44 +0,0 @@
-<template>
-	<view class="swipe">
-		<swiper class="swipe" :indicator-dots="pictures.length > 1" :autoplay="pictures.length > 1" :circular="pictures.length > 1">
-			<swiper-item v-for="(item, index) in pictures" :key="index">
-				<app-form-id>
-					<image :lazy-load="true" :src="item.pic_url" class="image" @click="route_jump(item)"></image>
-				</app-form-id>
-			</swiper-item>
-		</swiper>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'index-swipe',
-	    props: {
-            pictures: {
-                type: Array,
-	            default() {
-                    return [];
-                }
-            }
-	    },
-	    methods: {
-            route_jump(data) {
-                this.$jump({
-	                url: data.page_url,
-                    open_type: data.open_type,
-                })
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.swipe {
-		width: #{750rpx};
-		height: #{280rpx};
-		.image {
-			width: #{750rpx};
-			height: #{280rpx};
-		}
-	}
-</style>

+ 0 - 110
src/plugins/advance/components/search-input.vue

xqd
@@ -1,110 +0,0 @@
-<template>
-	<view class="search-input dir-left-nowrap">
-		<view class="input-view main-center dir-top-nowrap">
-			<view class="input" @click="route_jump('/plugins/advance/search/search')">
-				<app-form-id>
-					<view class="input-in dir-left-nowrap main-center cross-center">
-						<image class="icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/search.png"></image>
-						<text class="font">搜索</text>
-					</view>
-				</app-form-id>
-			</view>
-		</view>
-		<view class="jump-button">
-			<app-form-id @click="route_jump('/plugins/advance/order/order')">
-				<div class="jump-button dir-left-wrap main-center cross-center">
-					<view class="icon main-center cross-center" :style="{'background-color': theme.background}">
-						<image src="../image/pre-sale-logo.png"></image>
-					</view>
-					<text class="font" :style="{'color': theme.color}">我的预定</text>
-				</div>
-			</app-form-id>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "search-input",
-	    methods: {
-            route_jump(data) {
-                if (this.$user.isLogin() && data === '/plugins/advance/order/order') {
-                    uni.navigateTo({
-                        url: data,
-                    })
-                } else if (!this.$user.isLogin() && data === '/plugins/advance/order/order') {
-                    this.$user.getInfo().then(info => {
-                        uni.navigateTo({
-                            url: data,
-                        })
-                    }).catch(error => {
-                    });
-                } else {
-                    uni.navigateTo({
-                        url: data,
-                    })
-                }
-            }
-	    },
-
-		props: {
-			theme: Object,
-		}
-    }
-</script>
-
-<style scoped lang="scss">
-	.search-input {
-		height: #{88rpx};
-		box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15);
-		background-color: #efeff4;
-		position: fixed;
-        top: 0;
-		left: 0;
-		z-index: 1500;
-	}
-	.jump-button {
-		width: #{224rpx};
-		height: #{88rpx};
-		.icon {
-			width: #{46rpx};
-			height: #{46rpx};
-			margin-right: #{8rpx};
-			position: relative;
-			>image {
-				position: absolute;
-				left: #{-1rpx};
-				top: #{-1rpx};
-				height: #{48rpx};
-				width: #{48rpx};
-			}
-		}
-		.font {
-			font-size: #{26rpx};
-			text-align: center;
-		}
-	}
-	.input-view {
-		width: #{526rpx};
-		.input {
-			width: #{503rpx};
-			height: #{56rpx};
-			margin-left: #{23rpx};
-			background-color: #ffffff;
-			border-radius: #{25rpx};
-			.input-in {
-				width: #{503rpx};
-				height: #{56rpx};
-				.icon {
-					width: #{26rpx};
-					height: #{26rpx};
-					margin-right: #{12rpx};
-				}
-				.font {
-					font-size: #{26rpx};
-					color: #b2b2b2;
-				}
-			}
-		}
-	}
-</style>

+ 0 - 48
src/plugins/advance/components/svip-price.vue

xqd
@@ -1,48 +0,0 @@
-<template>
-	<view class="vip-price dir-left-nowrap">
-		<view class="item left">
-			<image class="vip-icon" src="../image/S-VIP.png"></image>
-		</view>
-		<view class="item right">9.5折</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "vip-price"
-    }
-</script>
-
-<style scoped lang="scss">
-	.vip-price {
-		width: #{148upx};
-		height: #{27upx};
-		.item {
-			height: #{27upx};
-			width: 50%;
-		}
-		.left {
-			border-top-left-radius: #{13upx};
-			border-bottom-left-radius: #{13upx};
-			background-color: #4e4040;
-			position: relative;
-		}
-		.right {
-			border-top-right-radius: #{13upx};
-			border-bottom-right-radius: #{13upx};
-			background: linear-gradient(45deg, #edc9a8, #fdebde);
-			font-size: #{18upx};
-			line-height: #{27upx};
-			text-align: center;
-			color: #4e4040;
-		}
-		.vip-icon {
-			width: #{51upx};
-			height: #{14upx};
-			position:absolute;
-			top: 50%;
-			left: 50%;
-			transform: translate(-50%, -50%);
-		}
-	}
-</style>

+ 0 - 537
src/plugins/advance/detail/detail.vue

xqd
@@ -1,537 +0,0 @@
-<template>
-	<app-layout>
-        <view v-if="!goods" class="u-goods-detail"></view>
-		<template class="detail" v-if="goods">
-            <!--商品轮播图-->
-            <app-goods-banner
-                v-bind:picList="goods.pic_url"
-                v-bind:share="goods.share"
-                v-bind:isCart="false"
-                v-bind:videoUrl="goods.video_url"
-                v-bind:goods_id="goods.id"
-                sign="advance"
-            ></app-goods-banner>
-            <!--商品公告-->
-            <detail-ad
-                v-if="goods.advanceGoods.end_prepayment_at"
-                v-bind:sales="goods.sales"
-                v-bind:d="d"
-                v-bind:h="h"
-                v-bind:m="m"
-                v-bind:s="s"
-                v-bind:theme="getTheme"
-            ></detail-ad>
-			<!-- 详情标题 -->
-            <app-name v-bind:name="goods.name"></app-name>
-            <view v-if="goods.subtitle" class="goods-subtitle">
-                <view class="t-omit-three">{{goods.subtitle}}</view>
-            </view>
-            <!--商品价格-->
-            <detail-price-share
-                v-if="goods.attr.length > 0"
-                v-bind:url="url"
-                v-bind:original_price="goods.original_price"
-                v-bind:attr="goods.attr"
-                v-bind:price_min="goods.price_min"
-                v-bind:price_max="goods.price_max"
-                v-bind:group_max_member_price="goods.group_max_member_price"
-                v-bind:group_min_member_price="goods.group_min_member_price"
-                v-bind:end_prepayment_at="goods.advanceGoods.end_prepayment_at"
-                v-bind:pay_limit="goods.advanceGoods.pay_limit"
-                v-bind:level_show="goods.level_show"
-                v-bind:cats="goods.goodsWarehouse && goods.goodsWarehouse.cats"
-                v-bind:goodsId="goods.id"
-                v-bind:is_vip_card_user="goods.vip_card_appoint.is_vip_card_user"
-                v-bind:discount="goods.vip_card_appoint.discount"
-                v-bind:theme="getTheme"
-                v-bind:has-poster-nav="true"
-                v-bind:poster-config="poster_config + `&goods_id=` + goods.id"
-                v-bind:poster-generate="poster_generate + `&goods_id=` + goods.id"
-                v-bind:goods="goods"
-                @share="hShareAppMessage"
-            ></detail-price-share>
-			<view class="bd-info-extra">
-				<bd-info-extra :unit="goods.unit" :theme="getTheme" :min-number="goods.min_number" :limit-buy="goods.limit_buy" :goods="goods"></bd-info-extra>
-			</view>	
-            <!--商品会员-->
-			<view class="join-member" v-if="goods.level_show === 2">
-				<app-join-member
-                    v-bind:member-min-price="`${goods.group_min_member_price}`"
-                    v-bind:member-max-price="`${goods.group_min_member_price}`"
-                    v-bind:price="`${goods.original_price}`"
-				></app-join-member>
-			</view>
-            <!--超级会员卡-->
-			<view class="detail-vip" v-if="goods.vip_card_appoint.discount > 0">
-				<app-vip-card top="0" background="#fff"></app-vip-card>
-			</view>
-			<template v-if="goods.advanceGoods.ladder_rules.length>0">
-				<detail-discount
-                    v-bind:url="url"
-                    v-bind:ladder_rules="goods.advanceGoods.ladder_rules"
-                    v-bind:sales="goods.sales"
-				></detail-discount>
-			</template>
-            <bd-coupon @change="setCoupon" :theme="getTheme" :coupons="goods.goods_coupon_center"></bd-coupon>
-            <bd-xbc
-                :coAttr="is_open"
-                :attr-list="select_attr_group"
-                :type="goods.type"
-                :guarantee-title="goods.guarantee_title"
-                :guarantee-pic="goods.guarantee_pic"
-                :param_content="goods.param_content"
-                :param_name="goods.param_name"
-                :services="goods.services"
-                :attr-groups="goods.attr_groups"
-                :goods-stock="goods.goods_stock"
-                @openAttr="close_attr(false)"
-            ></bd-xbc>
-            <detail-attr
-                v-if="!active && goods.attr.length>0"
-                v-bind:theme="getTheme"
-                v-bind:height="110"
-                v-bind:cover_pic="goods.cover_pic"
-                v-bind:attr="goods.attr"
-                v-bind:attr_groups="goods.attr_groups"
-                v-bind:goods_stock="goods.goods_stock"
-                v-bind:attr_deposit="attr_deposit"
-                v-bind:attr_swell_deposit="attr_swell_deposit"
-                v-bind:attr_stock="attr_stock"
-                v-bind:attr_price="attr_price"
-                v-bind:attr_price_member="attr_price_member"
-                v-bind:level_show="goods.level_show"
-                v-bind:attr_pic_url="attr_pic_url"
-                @select_attr="select_attr"
-                @close_attr="close_attr"
-                v-bind:num="num"
-                v-bind:detail="goods"
-                @change_num="change_num"
-                @change_num_data="change_num_data"
-            ></detail-attr>
-            <bd-hc
-                :integral="goods.goods_marketing_award.integral"
-                :coupon="goods.goods_marketing_award.coupon"
-                :card="goods.goods_marketing_award.card"
-                :balance="goods.goods_marketing_award.balance"
-                :theme="getTheme"
-            ></bd-hc>
-            <bd-kb
-                :limit="goods.goods_marketing.limit"
-                :express="goods.express"
-                :shipping="goods.goods_marketing.shipping"
-                :pickup="goods.goods_marketing.pickup"
-            ></bd-kb>
-            <bd-comments :goods-id="goods.id"></bd-comments>
-            <bd-detail :detail="goods.detail"></bd-detail>
-			<!-- 相关推荐 -->
-            <app-related-suggestion-product text="您或许会喜欢" sign="advance" v-bind:theme="getTheme"  v-bind:list="list"></app-related-suggestion-product>
-			<!-- 空白格 -->
-            <view class="safe-area-inset-bottom">
-                <view :class="full_reduce ? 'u-bottom-height-1' : 'u-bottom-height-0'"></view>
-            </view>
-			<view v-if="is_open == 1" class="safe-area-inset-bottom u-bottom-fixed">
-                <view v-if="full_reduce && active">
-                    <app-goods-full-reduce
-                        :theme="getTheme"
-                        :full_reduce="full_reduce"
-                    >
-                    </app-goods-full-reduce>
-                </view>
-                <detail-bottom-button
-                    v-bind:theme="getTheme"
-                    @close_attr="close_attr"
-                    v-bind:favorite="goods.favorite"
-                    v-bind:active="active"
-                    v-bind:goods_id="goods.id"
-                    @favorite="favorite"
-                    v-bind:detail="goods"
-                    v-bind:num="num"
-                    v-bind:buttonDisabled="buttonDisabled"
-                    v-bind:end_prepayment_at="goods.advanceGoods.end_prepayment_at"
-                    @request="request_detail"
-                ></detail-bottom-button>
-			</view>
-            <app-close v-if="showClose" :modal="false" @update="getMall"></app-close>
-            <!-- 快捷导航 -->
-            <app-quick-navigation></app-quick-navigation>
-		</template>
-	</app-layout>
-</template>
-
-<script>
-	import { mapState, mapGetters } from'vuex';
-    import appGoodsBanner from '../../../components/page-component/goods/app-goods-banner.vue';
-	import detailAd from '../components/detail-ad.vue';
-	import detailPriceShare from '../components/detail-price-share.vue';
-	import detailBottomButton from '../components/detail-bottom-button.vue';
-	import detailAttr from '../components/detail-attr.vue';
-    import appJoinMember from '../../../components/page-component/app-join-member/app-join-member.vue';
-    import appRelatedSuggestionProduct from '../../../components/page-component/app-related-suggestion-product/app-related-suggestion-product.vue';
-	import detailDiscount from '../components/detail-discount.vue';
-	import detailVip from '../components/detail-vip.vue';
-	import appVipCard from '../../../components/page-component/app-vip-card/app-vip-card.vue';
-	import appName from '../../../components/page-component/app-goods-detail/app-name.vue';
-    import appQuickNavigation from '../../../components/page-component/app-quick-navigation/app-quick-navigation.vue';
-	import appGoodsFullReduce from '../../../components/page-component/goods/app-goods-full-reduce.vue';
-    import appClose from '@/components/basic-component/app-close/app-close.vue';
-    import bdDetail from '@/components/page-component/goods/bd-detail.vue';
-    import bdComments from '@/components/page-component/goods/bd-comments.vue';
-    import bdKb from '@/components/page-component/goods/bd-kb.vue';
-    import bdHc from '@/components/page-component/goods/bd-hc.vue';
-    import bdCoupon from '@/components/page-component/goods/bd-coupon.vue';
-    import bdXbc from '@/components/page-component/goods/bd-xbc.vue';
-	import bdInfoExtra from '@/components/page-component/goods/bd-info-extra.vue';
-
-    export default {
-        name: "detail",
-	    data() {
-            return {
-                showClose: false,
-                is_open: 0,
-                full_reduce: null,
-                active: true,
-	            attr_deposit: '0',
-	            attr_swell_deposit: '0',
-	            attr_stock: 0,
-                attr_price: '0',
-                attr_price_member: 0,
-	            url: '',
-                level_show: 0,
-	            loading: false,
-	            select_attr_group: [],
-                zhe: false,
-                list: [],
-	            num: 1,
-                shareShow: false,
-                attr_pic_url: '',
-                goods_id: -1,
-                d: 0,
-                h: 0,
-                m: 0,
-                s: 0,
-                end_time: -1,
-				buttonDisabled: false,
-                poster_config: this.$api.advance.poster_config,
-                poster_generate: this.$api.advance.poster_generate,
-                goods: null
-            }
-	    },
-		onLoad(data) {
-            this.goods_id = data.id;
-			// #ifdef MP-WEIXIN
-			wx.showShareMenu({
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-			// #endif
-	    },
-	    onShow() {
-            this.showClose = false;
-            setTimeout(()=>{
-                this.showClose = true;
-            })
-            this.$nextTick(() => {
-				this.request_detail({id: this.goods_id});
-				this.$request({
-					url: this.$api.advance.goods_list,
-					data: {
-						goods_id: this.goods_id,
-					}
-            	}).then(response => {
-					if (response.code === 0) {
-						this.list = response.data.list;
-					} else if (response.code === 1) {
-						uni.showModal({
-							title: '提示',
-							content: response.msg,
-						});
-					}
-            	});
-			})
-	    },
-	    onHide() {
-            clearInterval(this.end_time);
-	    },
-        onUnload() {
-            clearInterval(this.end_time);
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-	    methods: {
-          hShareAppMessage(s = false) {
-                let { app_share_title, name, id, app_share_pic, subtitle, pic_url} = this.goods;
-                return this.$shareAppMessage({
-                    path: '/plugins/advance/detail/detail',
-                    title: app_share_title ? app_share_title : name,
-                    imageUrl: app_share_pic ? app_share_pic : pic_url[0].pic_url,
-                    desc: subtitle,
-                    params: { id }
-                }, s);
-            },
-            getMall(e) {
-                this.is_open = e.is_open;
-            },
-            request_detail(data) {
-                this.$request({
-                    url: this.$api.advance.detail,
-                    data: {
-                        id: data.id
-                    },
-                    method: 'get'
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.goods = res.data.detail;
-                        if (this.goods.goods_activity) {
-                            this.full_reduce = this.goods.goods_activity.full_reduce;
-                        }
-                        this.goods.num = 1;
-                        this.loading = true;
-                        this.url = `${this.$api.advance.poster}&goods_id=${this.goods.id}`;
-                        this.getTime(this.goods.advanceGoods.end_prepayment_at);
-                        this.set_attr_active();
-                        // #ifdef H5
-                        this.hShareAppMessage();
-                        // #endif
-                    } else if (res.code === 1) {
-                        uni.hideLoading();
-                        uni.showModal({
-                            content: res.msg,
-                            showCancel: false,
-                            success() {
-                                uni.navigateBack();
-                            }
-                        });
-                    }
-                });
-            },
-            open_share() {
-                this.shareShow = true;
-            },
-            change_num(data) {
-                this.num += data;
-            },
-            change_num_data(data) {
-                this.num = data;
-            },
-            favorite(data) {
-                this.goods.favorite = data;
-            },
-            select_attr({data, item}) {
-                let attr_groups = this.goods.attr_groups;
-                let str = ':';
-                let sd = 0;
-                for (let i = 0; i < attr_groups.length;i++) {
-                    let attr_list = this.goods.attr_groups[i].attr_list;
-                    for (let j = 0; j < attr_list.length; j++) {
-                        if (attr_groups[i].attr_group_id === data && attr_list[j].attr_id === item) {
-                            this.$set(this.goods.attr_groups[i].attr_list[j], 'active', true);
-                        } else if (attr_groups[i].attr_group_id === data && attr_list[j].attr_id !== item){
-                            this.$set(this.goods.attr_groups[i].attr_list[j], 'active', false);
-                        }
-                        if (this.goods.attr_groups[i].attr_list[j].active) {
-                            sd = this.goods.attr_groups[i].attr_list[j].attr_id;
-                            str += `:${sd}`;
-                        }
-                    }
-                }
-                let result = str.substr(2);
-                this.get_price_stock(result);
-            },
-		    set_attr_active() {
-                let item = 0;
-                let str = ':';
-                for (let i = 0; i < this.goods.attr_groups.length;i++) {
-                    for (let j = 0; j < this.goods.attr_groups[i].attr_list.length; j++) {
-                        if (j !== 0) {
-                            this.$set(this.goods.attr_groups[i].attr_list[j], 'active', false);
-                        } else if (j === 0) {
-                            item = this.goods.attr_groups[i].attr_list[j].attr_id;
-                            str += `:${item}`;
-                            this.$set(this.goods.attr_groups[i].attr_list[j], 'active', true);
-                        }
-                    }
-                }
-                this.get_price_stock(str.substr(2));
-            },
-		    get_price_stock(data) {
-                let attr = this.goods.attr;
-                for (let i = 0; i < attr.length;i++) {
-                    if (attr[i].sign_id === data) {
-                        this.select_attr_group = attr[i].attr_list;
-                        let { deposit, swell_deposit, stock, price, price_member, pic_url } = attr[i];
-                        this.attr_deposit = deposit;
-                        this.attr_swell_deposit = swell_deposit;
-                        this.attr_stock = stock;
-                        this.attr_price = price;
-                        this.attr_price_member = price_member;
-                        this.attr_pic_url = pic_url;
-                    }
-                }
-                this.attr_stock == 0 ? this.buttonDisabled = true : this.buttonDisabled = false;
-		    },
-            close_attr(data) {
-                if (!this.goods.buy_goods_auth) {
-                    this.$tips.showToast({
-                        title: '您暂无权限购买该商品',
-                        icon: 'none'
-                    });
-                    return;
-                }
-                this.active = data;
-            },
-		    getTime(end_prepayment_at) {
-                let time = new Date(end_prepayment_at.replace(/-/g, '/')).getTime() - (new Date()).getTime();
-                this.d = parseInt((time/1000/60/60/24));
-                this.h = parseInt((time/1000/60/60)%24);
-                this.m = parseInt((time/1000/60)%60);
-                this.s = parseInt((time/1000)%60);
-                this.end_time = setInterval(() => {
-                    let now = new Date().getTime();
-                    let timelog = new Date(end_prepayment_at.replace(/-/g, '/')).getTime();
-                    let time = timelog - now;
-                    if (time > 0) {
-                        let day = parseInt((time/1000/60/60/24));
-                        let hou = parseInt((time/1000/60/60)%24);
-                        let min = parseInt((time/1000/60)%60);
-                        let sec = parseInt((time/1000)%60);
-                        this.d = day;
-                        this.h = hou;
-                        this.m = min;
-                        this.s = sec;
-                    } else {
-                        clearInterval(this.end_time);
-                    }
-                }, 1000);
-		    },
-			setCoupon(index) {
-				this.$set(this.goods.goods_coupon_center[index], 'is_receive', 1);
-			}
-	    },
-        components: {
-            'app-goods-banner': appGoodsBanner,
-	        'detail-ad': detailAd,
-	        'detail-price-share': detailPriceShare,
-	        'detail-bottom-button': detailBottomButton,
-	        'detail-attr': detailAttr,
-            'app-join-member': appJoinMember,
-            'app-related-suggestion-product': appRelatedSuggestionProduct,
-	        'detail-discount': detailDiscount,
-	        'detail-vip': detailVip,
-			'app-name': appName,
-	        'app-vip-card': appVipCard,
-            'app-quick-navigation': appQuickNavigation,
-			appGoodsFullReduce,
-            appClose,
-            bdDetail,
-            bdComments,
-            bdKb,
-            bdHc,
-            bdCoupon,
-            bdXbc,
-			bdInfoExtra,
-        },
-	    computed: {
-            ...mapGetters('mallConfig',{
-	            vip: 'getVip',
-				getTheme: 'getTheme'
-			}),
-		    ...mapGetters('user', {
-                is_vip: 'is_vip'
-		    }),
-            ...mapState({
-                mall: state => state.mallConfig.mall
-            }),
-	    },
-		// #ifdef MP-WEIXIN
-		onShareTimeline() {
-			let { app_share_title, name, id } = this.goods;
-			return this.$shareTimeline({
-				title: app_share_title ? app_share_title : name,
-				query: { id }
-			});
-		}
-		// #endif
-    }
-</script>
-
-<style scoped lang="scss">
-    .goods-subtitle {
-        padding: 0 #{20rpx};
-        font-size: 24rpx;
-        background-color: #ffffff;
-        color: #999999;
-        width: 702upx;
-        margin: 0 24upx;
-    }
-
-	.join-member {
-		background-color: #ffffff;
-		padding: 0 #{24rpx};
-	}
-	.border-top {
-		border-top: #{1rpx} solid #e2e2e2;
-	}
-	.zhe {
-		height: #{80rpx};
-		background-color: white;
-		width: #{750rpx};
-		padding: 0 #{24rpx};
-		margin-top: #{20rpx};
-		.symbol {
-			width: #{116rpx};
-			font-size: #{20rpx};
-			color: #ff4544;
-			border: #{1rpx} solid #ff4544;
-			border-radius: #{4rpx};
-			text-align: center;
-		}
-		.image {
-			width: #{12rpx};
-			height: #{22rpx};
-		}
-		.content {
-			width: #{520rpx};
-			font-size: #{21rpx};
-			color: #666666;
-			word-break: break-all;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 1;
-			overflow: hidden;
-			margin-left: #{12rpx};
-		}
-	}
-	.detail-vip {
-		padding: 20upx;
-        background-color: #ffffff;
-        width: 702upx;
-        margin: 0 24upx 0 24upx;
-        border-radius: 0 0 15upx 15upx;
-	}
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1601;
-        background-color: #ffffff;
-    }
-    .u-bottom-height-0 {
-        height: 110upx;
-    }
-    .u-bottom-height-1 {
-        height: 190upx;
-    }
-    .goods-margin {
-        margin-top: 20upx;
-    }
-    .bd-info-extra {
-        padding: 0 #{20rpx};
-        background-color: #ffffff;
-        width: 702upx;
-        margin: 0 24upx;
-    }
-</style>

+ 0 - 160
src/plugins/advance/index/index.vue

xqd
@@ -1,160 +0,0 @@
-<template>
-	<app-layout>
-		<view class="index">
-			<view class="search-input">
-				<search-input :theme="getTheme"></search-input>
-			</view>
-			<view class="index-swipe" v-if="picture_list.length > 0">
-				<index-swipe :pictures="picture_list"></index-swipe>
-			</view>
-			<view class="index-product-list">
-				<product-list  :theme="getTheme" :product="product_list" ></product-list>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-	import searchInput from '../components/search-input.vue';
-	import indexSwipe from '../components/index-swipe.vue';
-	import indexProductList from '../components/index-product-list.vue';
-	import {mapGetters} from "vuex";
-
-    export default {
-        name: 'index',
-	    data() {
-            return {
-                product_list: [],
-                picture_list: [],
-                page_count: 1,
-                interval: null,
-	            page: 1,
-            }
-	    },
-	    onHide() {
-            clearInterval(this.interval);
-	    },
-        onUnload() {
-            clearInterval(this.interval);
-        },
-	    onLoad() { this.$commonLoad.onload();
-            this.requestBanner().then(() => {
-                this.requestList();
-            });
-			// #ifdef MP-WEIXIN
-			wx.showShareMenu({
-				menus: ['shareAppMessage', 'shareTimeline']
-			})
-			// #endif
-	    },
-	    methods: {
-            cutoffTime(product_list) {
-                let now = (new Date()).getTime();
-                product_list.map((item, index) => {
-                    let end_time = new Date(item.advanceGoods.end_prepayment_at.replace(/-/g, '/')).getTime();
-                    let timing = end_time - now;
-                    if (timing > 0) {
-                        let day = parseInt(timing/1000/60/60/24);
-                        let hou = parseInt((timing/1000/60/60)%24);
-                        let min = parseInt((timing/1000/60)%60);
-                        let sec = parseInt((timing/1000)%60);
-                        if (day > 0) {
-                            this.$set(product_list[index], 'html', `${day}天${hou}:${(min<10?"0"+min:min)}:${(sec<10?"0"+sec:sec)}`);
-                        } else {
-                            this.$set(product_list[index], 'html', `${hou}:${(min<10?"0"+min:min)}:${(sec<10?"0"+sec:sec)}`);
-                        }
-                    } else {
-                        this.$delete(product_list, index);
-                        if (this.product_list.length < 10 && this.page_count > 1) {
-                            this.product_list = [];
-                            this.requestList();
-                        }
-                    }
-                })
-            },
-
-            set_interval() {
-                clearInterval(this.interval);
-                this.cutoffTime(this.product_list);
-                this.interval = setInterval(() => {
-                    this.cutoffTime(this.product_list);
-                }, 1000);
-            },
-
-		    async requestList() {
-                const res = await this.$request({
-                    url: this.$api.advance.goods,
-                    method: 'get',
-                    data: {
-                        page: this.page,
-                    }
-                });
-                if (res.code === 0) {
-                    this.product_list.push(...res.data.list);
-                    this.page_count = res.data.pagination.page_count;
-                    this.set_interval();
-                }
-		    },
-
-		    async requestBanner() {
-                this.$request({
-                    url: this.$api.advance.banner,
-                    method: 'get',
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.picture_list = res.data.list;
-                    }
-                })
-		    }
-	    },
-
-        components: {
-            'search-input': searchInput,
-            'index-swipe' : indexSwipe,
-	        'product-list': indexProductList,
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                path: '/plugins/advance/index/index',
-                title: this.$children[0].navigationBarTitle,
-            });
-        },
-        // #endif
-		// #ifdef MP-WEIXIN
-		onShareTimeline() {
-			// 分享朋友圈beta
-			return this.$shareTimeline({
-				title: this.$children[0].navigationBarTitle,
-				query: {
-				} // 此处填写页面的参数
-			});
-		},
-		// #endif
-		computed: {
-			...mapGetters('mallConfig', {
-				getTheme: 'getTheme',
-			})
-		},
-        onReachBottom() {
-            if (this.page < this.page_count) {
-                this.page++;
-                this.requestList();
-            }
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-	.index {
-		position: absolute;
-		width: 100%;
-		height: 100%;
-		background-color: #f7f7f7;
-		padding-top: #{88upx};
-	}
-	.index-product-list {
-		margin-top: #{20rpx};
-	}
-
-</style>

+ 0 - 17
src/plugins/advance/order-detail/order-detail.vue

xqd
@@ -1,17 +0,0 @@
-<template>
-	<view class="order-detail"></view>
-</template>
-
-<script>
-    export default {
-        name: "order-detail"
-    }
-</script>
-
-<style scoped lang="scss">
-	.order-detail {
-		position: absolute;
-		width: #{750rpx};
-		height: 100%;
-	}
-</style>

+ 0 - 841
src/plugins/advance/order/order.vue

xqd
@@ -1,841 +0,0 @@
-<template>
-  <app-layout>
-	  <view class="order">
-		  <view  class="top dir-left-nowrap main-between cross-center">
-			  <view class="top-input cross-center" @click="go_search()" v-if="!search">
-				  <view class="input main-center cross-center">
-					 <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-search.png"></image>
-					  <text>搜索</text>
-				  </view>
-			  </view>
-			  <view class="to-top dir-left-nowrap main-center cross-center" v-if="!search" @click="active = true">
-				  <text :style="{'color': getTheme.color}">{{active_item}}</text>
-				  <image v-if="!active" :style="{'background-color': getTheme.background}" class="icon" src="../image/open.png"></image>
-				  <image v-else class="icon icon-active" :style="{'background-color': getTheme.background}" src="../image/open.png"></image>
-			  </view>
-			  <view class="search dir-left-nowrap cross-center main-between" v-if="search">
-				  <input type="text" class="input" :focus="true" v-model="search_text" @blur="blur_request" @confirm="set_search">
-				  <image class="delete" v-show="search_text.length>0" @click="empyt_search" src="../image/delete.png"></image>
-				  <text style="color:#666666;font-size: 32rpx;" @click="set_search">搜索</text>
-			  </view>
-		  </view>
-		  <view class="do-top" v-if="active" @click.stop="active = false">
-			  <view class="do-top-item"
-			        v-for="(item, index) in select_list"
-			        :key="index"
-			        :style="{'color': item.active ? getTheme.color : '#353535'}"
-			        @click="set_active(item)"
-			  >
-				  {{item.text}}
-			  </view>
-		  </view>
-		  <view style="margin-top: 108rpx;"></view>
-		  <view class="item"  v-for="(item, index) in order_list" :key="index">
-			  <view class="item-top dir-left-wrap main-between cross-center" >
-				  <text class="order-number" style="color: #999999;">订单号{{item.advance_no}}</text>
-                  <text>{{item.status_num | orderStatus}}</text>
-			  </view>
-			  <view class="item-center dir-left-nowrap" @click="route_go(item)">
-				  <image class="image" :src="item.goods.goodsWarehouse.cover_pic"></image>
-				  <view class="content">
-					  <view class="name">{{item.goods.goodsWarehouse.name}}</view>
-					  <view class="attr">
-						  <text>{{item.attr_name}}</text>
-					  </view>
-					  <view class="num-price dir-left-nowrap main-between cross-center">
-						  <text>×{{item.goods_num}}</text>
-						  <text>¥{{item.goodsAttr.price}}</text>
-					  </view>
-					  <view class="des-price dir-left-wrap main-right cross-center">
-						  <text>定金</text>
-						  <text :style="{color: item.is_pay == 0 ? '#ff4544' : '#353535'}">¥{{item.deposit}}</text>
-						  <text>抵¥{{item.swell_deposit}}</text>
-						  <text style="color: #ff4544;" v-if="item.status_num == 9">(定金不退)</text>
-					  </view>
-				  </view>
-			  </view>
-			  <view class="item-bottom">
-				  <view class="swell-price main-right cross-center" v-if="item.status_num == 2 || item.status_num == 3 || item.status_num == 4 || item.status_num == 9 ">
-					  <text>尾款</text>
-					  <text style="color: #ff4544;">¥{{item.tail_money}}</text>
-				  </view>
-                  <view v-if="item.status_num == 1" class="text-time">
-                      <text>距截止</text>
-                      <text style="color: #ff4544">{{item.html}}</text>
-                  </view>
-                  <view v-if="item.status_num == 3  && item.pay_limit != -1" class="text-time">
-                      <text>距截止</text>
-                      <text style="color: #ff4544">{{item.html}}</text>
-                  </view>
-				  <view class="filal-payment-time" v-if="item.status_num == 2">
-					  支付尾款时间:{{set_time(item.pay_limit, item.end_prepayment_at)}}
-				  </view>
-				  <view class="button" :style="{'background-color': getTheme.background}" @click="payFinalPayment(item)" v-if="item.status_num == 3 && item.order_id == 0">
-					  <app-form-id>
-						  <text>
-							  去支付尾款
-						  </text>
-					  </app-form-id>
-				  </view>
-				  <view class="button" :style="{'background-color': getTheme.background}" @click="payPayment(item, index)" v-else-if="item.status_num == 3 && item.order_id != 0 && item.pay_type != 2">
-					  <app-form-id>
-						  <text>
-							  付款
-						  </text>
-					  </app-form-id>
-				  </view>
-				  <view class="button" :style="{'background-color': getTheme.background}" @click="payDeposit(item, index)" v-else-if="item.status_num == 1">
-					  <app-form-id>
-						  <text>
-							  去支付定金
-						  </text>
-					  </app-form-id>
-				  </view>
-			  </view>
-		  </view>
-		  <view class="order-empty" v-if="order_list.length === 0">
-			 <image src="../image/order.png"></image>
-			  <text>没有任何订单哦~</text>
-		  </view>
-	  </view>
-  </app-layout>
-</template>
-
-<script>
-	import {mapGetters} from "vuex";
-
-	export default {
-		name: 'order',
-		data() {
-			return {
-			  active: false,
-			  active_item: '全部预定',
-			  select_list: [
-				{
-				  id: -1,
-				  active: true,
-				  text: '全部预定',
-				},
-				 {
-				   id: 1,
-				  active: false,
-				  text: '定金待支付',
-				},
-				 {
-				   id: 2,
-				  active: false,
-				  text: '尾款支付未开始',
-				},
-				 {
-				   id: 3,
-				  active: false,
-				  text: '尾款待支付',
-				},
-				 {
-				   id: 4,
-				  active: false,
-				  text: '购买成功',
-				},
-				 {
-				   id: 5,
-				  active: false,
-				  text: '购买失败',
-				}
-			  ],
-				order_list: [],
-				page: 1,
-				keyword: -1,
-				over: false,
-				interval: null,
-				search: false,
-				search_text: '',
-				oldOrder: [],
-				template_message: []
-			}
-		},
-		onShow() {
-			this.order_list = [];
-			this.page = 1;
-			this.request(1).then(() => {
-				this.get_time();
-			});
-		},
-		onHide() {
-			clearInterval(this.interval);
-		},
-		onUnload() {
-			clearInterval(this.interval);
-		},
-		methods: {
-			empyt_search() {
-				this.search = false;
-				this.search_text = '';
-				this.set_active({id: -1});
-				this.active_item = '全部预定';
-			},
-			set_active(data) {
-				clearInterval(this.interval);
-				this.order_list = [];
-				this.keyword = data.id;
-				this.over = false;
-				this.page = 1;
-				this.request().then(() => {
-					if (data.id === 1 || data.id === -1 || data.id === 3) this.get_time();
-				});
-				for (let i = 0; i < this.select_list.length; i++) {
-					if (this.select_list[i].id === data.id) {
-						this.select_list[i].active = true;
-					} else {
-						this.select_list[i].active = false;
-					}
-				  }
-				this.active = false;
-				this.active_item = data.text;
-			},
-			route_go(data) {
-				if (data.status_num == 4) {
-					uni.navigateTo({
-						url: `/pages/order/order-detail/order-detail?id=${data.order_id}&sign=advance`
-					})
-				}
-			},
-			// 支付尾款
-			payFinalPayment(item) {
-				let data = [
-					{
-						"mch_id": item.goods.mch_id,
-						"goods_list": [
-							{
-								"id":item.goods_id,
-								"attr": JSON.parse(item.goods_info).attr_list,
-								"num":item.goods_num,
-								"cat_id":0,
-								"goods_attr_id":item.goodsAttr.id,
-								"advance_id": item.id,
-							}
-						]
-					}
-				];
-				this.$jump({
-					open_type: 'navigate',
-					url: `/pages/order-submit/order-submit?mch_list=${JSON.stringify(data)}&preview_url=${encodeURIComponent(this.$api.advance.order_preview)}&submit_url=${encodeURIComponent(this.$api.advance.order_sub)}&order_page_url=/plugins/advance/order/order&plugin=advance&total_title=尾款`
-				});
-			},
-			payPayment(item, index) {
-				this.$request({
-					url: this.$api.order.list_pay_data,
-					data: {
-						id: item.order_id,
-					},
-					method: 'get'
-				}).then(res => {
-					if (res.code === 0) {
-						this.$payment.pay(res.data.id).then(() => {
-							// 支付成功
-							if (this.keyword === -1) {
-								this.order_list[index].status_num = '4';
-							} else {
-								this.$delete(this.order_list, index);
-							}
-						}).catch(() => {
-							// 支付失败
-						});
-					}
-				})
-			},
-			// 去支付定金
-			payDeposit(data, index) {
-				this.$subscribe(this.template_message).then(() => {
-					this.submit(data, index);
-				}).catch(() => {
-					this.submit(data, index);
-				});
-			},
-			submit(data, index) {
-				let body = {
-					id: data.id,
-					goods_id: data.goods_id,
-					goods_num: data.goods_num,
-					goods_attr_id:data.goodsAttr.id,
-				};
-				this.get_submit(body).then(response => {
-					this.$payment.pay(response.data.id).then((res) => {
-						this.$request({
-							url: this.$api.advance.order,
-							method: 'get',
-							data: {
-								id: data.id,
-							}
-						}).then(response => {
-							if (response.code === 0) {
-								this.$set(this.order_list, index, response.data.list[0]);
-								let attr_name = '';
-								let attr_groups = JSON.parse(this.order_list[index].goods_info);
-								for (let j = 0; j < attr_groups.attr_list.length; j++) {
-									attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-								}
-								this.$set(this.order_list[index], 'attr_name', attr_name);
-							} else if (response.code === 1) {
-								uni.showModal({
-									title: '提示',
-									content: res.msg,
-									success(res) {
-										if (res.cancel) {
-											uni.navigateBack();
-										} else if (res.confirm) {
-											uni.navigateBack();
-										}
-									}
-								})
-							}
-						});
-					}).catch(() => {
-					});
-				});
-			},
-			addDate(date, days) {
-				if(days == undefined || days == '') {
-					days = 1;
-				}
-				let newDate = new Date(date.replace(/-/g, '/'));
-				newDate.setDate(newDate.getDate() + days);
-				let month = newDate.getMonth() + 1;
-				let day = newDate.getDate();
-				let mm = "'" + month + "'";
-				let dd = "'" + day + "'";
-				if(mm.length == 3) {
-					month = "0" + month;
-				}
-				if(dd.length == 3) {
-					day = "0" + day;
-				}
-			   let hour = newDate.getHours();//得到小时
-			   let minu = newDate.getMinutes();//得到分钟
-			   let sec = newDate.getSeconds();//得到秒
-			   if (sec === 0) {
-				 sec = 59;
-				 if (minu === 0) {
-				   minu = 59;
-				   if (hour === 0) {
-					   hour = 23;
-					   day = '0' + Number(day) -1;
-				   } else {
-					   hour = hour -1;
-				   }
-				 } else {
-				   minu = minu - 1;
-				 }
-			   } else {
-				  sec = sec -1;
-			   }
-			   sec = `${sec}`;
-			   minu = `${minu}`;
-			   hour = `${hour}`;
-			   if (hour.length === 1) {
-				   hour = `0${hour}`
-			   }
-			   if (minu.length === 1) {
-				   minu = `0${minu}`
-			   }
-			   if (sec.length === 1) {
-				   sec = `0${sec}`
-			   }
-			   return newDate.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-			},
-			getDate(end_prepayment_at) {
-				let newDate = new Date(end_prepayment_at.replace(/-/g, '/'));
-				newDate.setDate(newDate.getDate());
-				let month = newDate.getMonth() + 1;
-				let day = newDate.getDate();
-				let mm = "'" + month + "'";
-				let dd = "'" + day + "'";
-				if(mm.length == 3) {
-					month = "0" + month;
-				}
-				if(dd.length == 3) {
-					day = "0" + day;
-				}
-				let hour = newDate.getHours();//得到小时
-				let minu = newDate.getMinutes();//得到分钟
-				let sec = newDate.getSeconds();//得到秒
-				sec = `${sec}`;
-				minu = `${minu}`;
-				hour = `${hour}`;
-				if (hour.length === 1) {
-					hour = `0${hour}`
-				}
-				if (minu.length === 1) {
-					minu = `0${minu}`
-				}
-				if (sec.length === 1) {
-					sec = `0${sec}`
-				}
-				return newDate.getFullYear() + "." + month + "." + day + ' ' + hour +':' + minu + ':' + sec;
-			},
-			async request(data) {
-				uni.showLoading({
-					title: '加载中'
-				});
-				try {
-					const response = await this.$request({
-						url: this.$api.advance.order,
-						method: 'get',
-						data: {
-							keyword: this.keyword,
-							page: this.page,
-							name: this.search_text,
-						}
-					});
-					uni.hideLoading();
-					if (response.code === 0) {
-						if (data === 1) {
-							this.order_list = response.data.list;
-						} else {
-							this.order_list.push(...response.data.list);
-						}
-						this.template_message = response.data.template_message;
-						for (let i = 0; i < this.order_list.length; i++) {
-							let attr_name = '';
-							let attr_groups = JSON.parse(this.order_list[i].goods_info);
-							for (let j = 0; j < attr_groups.attr_list.length; j++) {
-								attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-							}
-							this.$set(this.order_list[i], 'attr_name', attr_name);
-						}
-					}
-				} catch (e) {
-					uni.hideLoading();
-					uni.navigateTo({
-						url: `/plugins/advance/index/index`
-					});
-				}
-			},
-			set_time(pay_limit, end_prepayment_at) {
-				if (pay_limit == -1) {
-					return `${this.getDate(end_prepayment_at)} ~ 无期限`
-				} else {
-					return `${this.getDate(end_prepayment_at)} ~ ${this.addDate(end_prepayment_at, Number(pay_limit))}`
-				}
-			},
-			async get_submit(body) {
-				const response = await this.$request({
-					url: this.$api.advance.order_submit,
-					method: 'post',
-					data: {
-						...body,
-					}
-				});
-				if (response.code === 0) {
-					return response;
-				} else if (response.code === 1) {
-					uni.showModal({
-						title: '提示',
-						content: response.msg,
-						success(res) {
-							if (res.cancel) {
-								uni.navigateBack();
-							} else if (res.confirm) {
-								uni.navigateBack();
-							}
-						}
-					})
-				}
-			},
-			get_time() {
-				clearInterval(this.interval);
-				let now = new Date().getTime();
-				for (let i = 0; i < this.order_list.length; i++) {
-					if (this.order_list[i].status_num == 1) {
-						let timelog = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/')).getTime();
-						let time = timelog - now;
-						if (time > 0) {
-							let day = parseInt((time/1000/60/60/24)%30);
-							let hou = parseInt((time/1000/60/60)%24);
-							let min = parseInt((time/1000/60)%60);
-							let sec = parseInt((time/1000)%60);
-							if (day > 0) {
-								this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-							} else {
-								this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-							}
-						}
-					} else if (this.order_list[i].status_num == 3) {
-						if (this.order_list[i].pay_limit == -1) {
-							this.$set(this.order_list[i], 'html', '不显示');
-						} else {
-							let newDate = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/'));
-							let timelog = newDate.setDate(newDate.getDate() + Number(this.order_list[i].pay_limit));
-							let time =  new Date(timelog).getTime() - now;
-							if (time > 0) {
-								let day = parseInt((time/1000/60/60/24)%30);
-								let hou = parseInt((time/1000/60/60)%24);
-								let min = parseInt((time/1000/60)%60);
-								let sec = parseInt((time/1000)%60);
-								if (day > 0) {
-									this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-								} else {
-									this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-								}
-							}
-						}
-					}
-				}
-				this.interval = setInterval(() => {
-					let now = new Date().getTime();
-					if (this.order_list.length === 0) clearInterval(this.interval);
-					for (let i = 0; i < this.order_list.length; i++) {
-						if (this.order_list[i].status_num == 1) {
-							let timelog = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/')).getTime();
-							let time = timelog - now;
-							if (time > 0) {
-								let day = parseInt((time/1000/60/60/24)%30);
-								let hou = parseInt((time/1000/60/60)%24);
-								let min = parseInt((time/1000/60)%60);
-								let sec = parseInt((time/1000)%60);
-								if (day > 0) {
-									this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-								} else {
-									this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-								}
-							}
-						}  else if (this.order_list[i].status_num == 3) {
-							if (this.order_list[i].pay_limit == -1) {
-								this.$set(this.order_list[i], 'html', '不显示');
-							} else {
-								let newDate = new Date(this.order_list[i].end_prepayment_at.replace(/-/g, '/'));
-								let timelog = newDate.setDate(newDate.getDate() + Number(this.order_list[i].pay_limit));
-								let time =  new Date(timelog).getTime() - now;
-								if (time > 0) {
-									let day = parseInt((time/1000/60/60/24)%30);
-									let hou = parseInt((time/1000/60/60)%24);
-									let min = parseInt((time/1000/60)%60);
-									let sec = parseInt((time/1000)%60);
-									if (day > 0) {
-										this.$set(this.order_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-									} else {
-										this.$set(this.order_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-									}
-								}
-							}
-						}
-					}
-				}, 1000);
-			},
-			async set_search() {
-				this.page = 1;
-				this.keyword = -1;
-				uni.showLoading({
-					title: '加载中'
-				});
-				const response = await this.$request({
-					url: this.$api.advance.order,
-					method: 'get',
-					data: {
-						keyword: this.keyword,
-						page: this.page,
-						name: this.search_text,
-					}
-				});
-				if (response.code === 0) {
-					this.order_list = response.data.list;
-					for (let i = 0; i < this.order_list.length; i++) {
-						let attr_name = '';
-						let attr_groups = JSON.parse(this.order_list[i].goods_info);
-						for (let j = 0; j < attr_groups.attr_list.length; j++) {
-							attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-						}
-						this.$set(this.order_list[i], 'attr_name', attr_name);
-					}
-				}
-				uni.hideLoading();
-				this.get_time();
-			},
-			blur_request() {
-				// this.order_list = this.oldOrder;
-			},
-			go_search() {
-				this.search = true;
-				this.active = false;
-				this.oldOrder = this.order_list;
-				this.order_list = [];
-			}
-		  },
-		onReachBottom() {
-			if (!this.over) {
-				this.page+=1;
-				this.$request({
-					url: this.$api.advance.order,
-					method: 'get',
-					data: {
-						keyword: this.keyword,
-						page: this.page,
-						name: this.search_text,
-					}
-				}).then(res => {
-					if (res.code === 0) {
-						if (res.data.list.length > 0) {
-							this.order_list = [...this.order_list, ...res.data.list];
-							for (let i = 0; i < this.order_list.length; i++) {
-								let attr_name = '';
-								let attr_groups = JSON.parse(this.order_list[i].goods_info);
-								for (let j = 0; j < attr_groups.attr_list.length; j++) {
-									attr_name+= ` ${attr_groups.attr_list[j].attr_group_name}:${attr_groups.attr_list[j].attr_name}`
-								}
-								this.$set(this.order_list[i], 'attr_name', attr_name);
-							}
-							this.get_time();
-						} else {
-							this.over = true;
-						}
-					}
-				})
-			}
-		},
-		computed: {
-			...mapGetters('mallConfig',{
-				getTheme: 'getTheme'
-			})
-		},
-        filters: {
-		    orderStatus:function(status) {
-                if (status == 1) {
-                    return '定金待支付';
-                } else if (status == 2) {
-                    return '尾款支付未开始';
-                } else if (status == 3) {
-                    return '尾款待支付';
-                } else if (status == 4) {
-                    return '购买成功';
-                } else if (status == 5) {
-                    return '订单已取消';
-                } else if (status == 6) {
-                    return '订单已售后';
-                } else if (status == 7) {
-                    return '购买失败 定金支付超时';
-                } else if (status == 8) {
-                    return '购买失败 定金已退款';
-                } else if (status == 9) {
-                    return '购买失败 尾款支付超时';
-                }
-            }
-        }
-	}
-</script>
-
-<style lang="scss" scoped>
-  .order {
-    position: absolute;
-    width: #{750rpx};
-    top: 0;
-    left: 0;
-    height: 100%;
-	  z-index: 1500;
-    background-color: #f7f7f7;
-    .top {
-        position: fixed;
-        top: 0;
-        left: 0;
-        background-color: #efeff4;
-        font-size: #{32rpx};
-	    z-index: 1500;
-	    width: #{750upx};
-      .to-top {
-        width: #{280rpx};
-        height: #{88rpx};
-        .icon {
-            width: #{22rpx};
-            height: #{12rpx};
-	        margin-left: #{16rpx};
-        }
-	      text {
-		      width: #{145rpx};
-		      text-align: center;
-		      word-break: break-all;
-		      text-overflow: ellipsis;
-		      display: -webkit-box;
-		      -webkit-box-orient: vertical;
-		      -webkit-line-clamp: 1;
-		      overflow: hidden;
-		      font-size: #{26rpx};
-	      }
-	      .icon-active {
-		      transform:rotate(180deg);
-	      }
-      }
-	    .top-input {
-		    height: #{88rpx};
-		    width: #{750-280rpx};
-		    .input {
-			   width: #{570upx};
-			    height: #{56upx};
-			    background-color: white;
-			    border-radius: #{30upx};
-			    margin-left: #{28upx};
-			    >image {
-				    width: #{26upx};
-				    height: #{26upx};
-				    margin-right: #{13upx};
-			    }
-			    >text {
-				    font-size: #{26rpx};
-				    color: #b2b2b2;
-			    }
-		    }
-	    }
-    }
-    .do-top {
-         position: fixed;
-	      top: #{88rpx};
-	      width: 100%;
-	      height: 100%;
-	    z-index: 1500;
-        background-color: rgba(0,0,0,.3);
-      .do-top-item {
-        width: 100%;
-        height: #{88rpx};
-        background-color: #ffffff;
-        font-size: #{32rpx};
-
-        border-top: #{1rpx} solid #e2e2e2;
-        text-align: center;
-        line-height: #{88rpx};
-      }
-
-    }
-    .item {
-      width: #{750rpx};
-      margin-bottom: #{20rpx};
-      background-color: #ffffff;
-      .item-top {
-        width: 100%;
-        line-height: #{80rpx};
-        background-color: #ffffff;
-        border-bottom: #{1rpx} solid #e2e2e2;
-        font-size: #{26rpx};
-        color: #ff4544;
-        padding: 0 #{24rpx};
-      }
-      .item-center {
-        width: 100%;
-        padding: #{24rpx 24rpx 0 24rpx};
-        .image {
-          width: #{220rpx};
-          height: #{220rpx};
-          border-radius: #{16rpx};
-        }
-        .content {
-          width: #{530-48rpx};
-          min-height: #{220rpx};
-          padding-left: #{24rpx};
-          .name {
-              margin-top: #{12rpx};
-              word-break: break-all;
-              text-overflow: ellipsis;
-              display: -webkit-box;
-              -webkit-box-orient: vertical;
-              -webkit-line-clamp: 2;
-              overflow: hidden;
-              font-size: #{28rpx};
-              color:#353535;
-          }
-          .attr {
-            margin-top: #{16rpx};
-            >text {
-              font-size: #{26rpx};
-              color:#999999;
-              margin-right: #{16rpx};
-            }
-          }
-          .num-price {
-            font-size: #{28rpx};
-            color: #353535;
-            margin-top: #{24rpx};
-          }
-          .des-price {
-            font-size: #{28rpx};
-            color: #353535;
-            margin-top: #{24rpx};
-          }
-        }
-      }
-      .item-bottom {
-        width: #{750rpx};
-        background-color: #ffffff;
-        padding: #{0 24rpx 32rpx 24rpx};
-        overflow: hidden;
-        .swell-price {
-          font-size: #{28rpx};
-          color: #353535;
-          margin-top: #{24rpx};
-        }
-        .button {
-          // display: inline-block;
-          float: right;
-          height: #{56rpx};
-          line-height: #{56rpx};
-          font-size: #{28rpx};
-          color: #ffffff;
-          padding: 0 #{24rpx};
-          border-radius: #{28rpx};
-          margin-top: #{32rpx};
-        }
-      }
-    }
-  }
-	.order-empty {
-		position: absolute;
-		top: #{555rpx};
-		left: 50%;
-		transform: translate(-50%, -50%);
-		width: #{240rpx};
-		text-align: center;
-		>image {
-			height: #{240rpx};
-			width: #{240rpx};
-		}
-		>text {
-			font-size: #{24rpx};
-			color: #666666;
-		}
-	}
-	.text-time {
-		text-align: right;font-size: #{26upx};color: #999999;
-		margin-top: #{16upx};
-	}
-  .search {
-	  height: #{104rpx};
-	  width: 100%;
-	  background-color: #efeff4;
-	  padding: #{20rpx 24rpx};
-	  position: relative;
-	  overflow: hidden;
-	  .delete {
-		  width: #{32rpx};
-		  height: #{32rpx};
-	  }
-	  .input {
-		  height: #{64rpx};
-		  width: #{620rpx};
-		  border-radius: #{50rpx};
-		  background-color: #ffffff;
-		  padding-left: #{32rpx};
-		  font-size: #{26rpx};
-		  color: #353535;
-	  }
-	  .delete {
-		  position: absolute;
-		  right: #{125rpx};
-		  z-index: 1600;
-	  }
-  }
-	.order-number {
-	
-	}
-	
-	.filal-payment-time {
-		font-size:#{22upx};
-		color: #ff4544;
-		text-align: right;
-		margin-top: #{14upx};
-	}
-</style>

+ 0 - 242
src/plugins/advance/search/search.vue

xqd
@@ -1,242 +0,0 @@
-<template>
-    <app-layout>
-	    <view class="search" :style="{backgroundColor: search ? '#f7f7f7': '#ffffff'}">
-		    <view class="top dir-left-nowrap cross-center main-between">
-			    <input type="text" class="input" :focus="true" v-model="search_text" @blur="request">
-			    <image class="delete" v-show="search_text.length>0" @click="empyt_search" src="../image/delete.png"></image>
-			    <text style="color:#666666;font-size: 32rpx;" @click="request">搜索</text>
-		    </view>
-		    <view class="center" v-if="!search">
-			    <view class="strong dir-left-nowrap main-between cross-center" v-if="strong.length > 0">
-				    <text>历史搜索</text>
-				    <image class="delete" src="https://shop.9026.com/web/statics/image/mall/static/icon/delete.png" @click="empty_strong"></image>
-			    </view>
-			    <view>
-				    <text @click="search_strong(item)" class="strong-item" v-for="(item, index) in strong" :key="index">
-					    {{item}}
-				    </text>
-			    </view>
-		    </view>
-		    <view class="bottom" v-if="search_list.length>0">
-			    <index-product-list :theme="getTheme" :product="search_list"></index-product-list>
-		    </view>
-		    <view class="order-empty" v-if="search_list.length === 0 && search">
-			    <image src="../image/product.png"></image>
-			    <text>没有任何信息哦~</text>
-		    </view>
-	    </view>
-    </app-layout>
-</template>
-
-<script>
-import indexProductList from '../components/index-product-list.vue';
-import {mapGetters} from "vuex";
-
-let strong = "ADVANCE_SEARCH";
-
-export default {
-   name: 'search',
-   data() {
-        return {
-	        search_text: '',
-	        search_list: [],
-            strong: [],
-	        search: false,
-	        page: 1,
-            over: false,
-            interval: 0,
-        }
-	  },
-	  onLoad() { this.$commonLoad.onload();
-		    if (!this.$storage.getStorageSync(strong)) {
-		         this.$storage.setStorageSync(strong, []);
-		    } else {
-		        this.strong = this.$storage.getStorageSync(strong);
-		    }
-	  },
-	computed: {
-		...mapGetters('mallConfig', {
-			getTheme: 'getTheme',
-		})
-	},
-	onHide() {
-        clearInterval(this.interval);
-	},
-    onUnload() {
-        clearInterval(this.interval);
-    },
-    onReachBottom() {
-        if (!this.over) {
-            this.page+=1;
-            this.$request({
-                url: this.$api.advance.goods,
-	            method: 'get',
-                data: {
-                    keyword: this.search_text,
-                    page: this.page,
-                }
-            }).then(res => {
-                if (res.code === 0) {
-                    if (res.data.list.length > 0) {
-                        this.search_list = [...this.search_list, ...res.data.list];
-                    } else {
-                        this.over = true;
-                    }
-                }
-            })
-        }
-    },
-    methods: {
-	    empyt_search() {
-		      this.search_text = '';
-		      this.search_list = [];
-		      this.search = false;
-            clearInterval(this.interval);
-	    },
-	    async request() {
-            this.search = true;
-            this.page = 1;
-            let getStrong = this.$storage.getStorageSync(strong);
-            if (this.search_text.match(/^[ ]*$/)) return;
-	        let newStrong = [...getStrong, this.search_text];
-	        const res = await this.$request({
-		        url: this.$api.advance.goods,
-                method: 'get',
-                data: {
-                    keyword: this.search_text,
-                    page: this.page,
-		        }
-	        });
-            if (res.code === 0) {
-                this.search_list = res.data.list;
-                this.set_interval();
-                this.$storage.setStorageSync(strong, newStrong);
-            }
-	    },
-        empty_strong() {
-	        this.$storage.removeStorageSync(strong);
-	        this.strong = [];
-	    },
-        search_strong(data) {
-		        this.search_text = data;
-		        this.request();
-	      },
-        set_interval() {
-	          clearInterval(this.interval);
-	          this.interval = setInterval(() => {
-	              let now = new Date().getTime();
-	              if (this.search_list.length === 0) clearInterval(this.interval);
-	              for (let i = 0; i < this.search_list.length; i++) {
-	                  let timelog = new Date(this.search_list[i].advanceGoods.end_prepayment_at.replace(/-/g, '/')).getTime();
-	                  let time = timelog - now;
-	                  if (time > 0) {
-	                      let day = parseInt((time/1000/60/60/24)%30);
-	                      let hou = parseInt((time/1000/60/60)%24);
-	                      let min = parseInt((time/1000/60)%60);
-	                      let sec = parseInt((time/1000)%60);
-	                      if (day > 0) {
-	                          this.$set(this.search_list[i], 'html', day+"天"+hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-	                      } else {
-	                          this.$set(this.search_list[i], 'html', hou+":"+(min<10?"0"+min:min) + ":"+(sec<10?"0"+sec:sec));
-	                      }
-	                  } else {
-	                      this.$delete(this.search_list, i);
-	                      if (this.search_list.length < 10 && this.page_count > 1) {
-	                          this.$request({
-	                              url: this.$api.advance.goods,
-	                              method: 'get'
-	                          }).then(res => {
-	                              if (res.code === 0) {
-	                                  this.search_list = res.data.list;
-	                                  this.set_interval();
-	                              }
-	                          });
-	                      }
-	                  }
-	              }
-	          }, 1000);
-	      }
-  },
-  components: {
-    'index-product-list': indexProductList,
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-  .search {
-    position: absolute;
-    width: #{750rpx};
-    height: 100%;
-	  background-color: #ffffff;
-    .top {
-      height: #{104rpx};
-      width: 100%;
-      background-color: #efeff4;
-      padding: #{20rpx 24rpx};
-      position: relative;
-	    overflow: hidden;
-      .delete {
-        width: #{32rpx};
-        height: #{32rpx};
-      }
-      .input {
-        height: #{64rpx};
-        width: #{620rpx};
-        border-radius: #{50rpx};
-        background-color: #ffffff;
-        padding-left: #{32rpx};
-        font-size: #{28rpx};
-        color: #353535;
-      }
-      .delete {
-        position: absolute;
-        right: #{125rpx};
-        z-index: 1600;
-      }
-    }
-    .center {
-      font-size: #{28rpx};
-      padding: #{32rpx 24rpx 0 24rpx};
-      .strong {
-        color: #666666;
-        padding-bottom: #{24rpx};
-        text {
-          margin-top: #{4rpx};
-        }
-        .delete {
-          width: #{44rpx};
-          height: #{32rpx};
-          padding: 0 #{6rpx};
-        }
-      }
-	    .strong-item {
-		    display: inline-block;
-		    height: #{64rpx};
-		    line-height: #{64rpx};
-		    padding: 0 #{20rpx};
-		    margin: #{0 20rpx 16rpx 0};
-		    color: #353535;
-		    font-size: #{28rpx};
-		    border-radius: #{32rpx};
-		    background-color: #f7f7f7;
-	    }
-    }
-  }
-  .order-empty {
-	  position: absolute;
-	  top: #{555rpx};
-	  left: 50%;
-	  transform: translate(-50%, -50%);
-	  width: #{240rpx};
-	  text-align: center;
-	  >image {
-		  height: #{240rpx};
-		  width: #{240rpx};
-	  }
-	  >text {
-		  font-size: #{24rpx};
-		  color: #666666;
-	  }
-  }
-</style>

+ 0 - 1062
src/plugins/bargain/activity/activity.vue

xqd
@@ -1,1062 +0,0 @@
-<template>
-    <app-layout>
-        <view style="height:100%;padding-bottom:0;position: absolute;width: 100%">
-            <view class="page">
-                <view class='dialog-bg' v-if="dialog">
-                    <view class='in-bargain'>
-                        <image v-if="kanjia" class='bargain-gif-bg' src='https://shop.9026.com/web/statics/img/mall/bargain//../image/light.png'></image>
-                        <image v-if="kanjia" class='bargain-gif' :src='bargainImg.app_image.activity_header'></image>
-                        <image class='dialog-header' v-if="!kanjia" :src='bargainImg.app_image.header'></image>
-                        <image class='dialog-header-gif-sec' :animation="animationData" v-if="!kanjia"
-                               :src='bargainImg.app_image.top1'></image>
-                        <view @click="dialog=false" v-if="!kanjia">
-                            <image class='dialog-close' src='https://shop.9026.com/web/statics/img/mall/bargain//../image/close.png'></image>
-                        </view>
-                        <view class='dialog' v-if="!kanjia">
-                            <view class="self-dialog">
-                                <view v-if="bargain.user_id == info.user_id">你一出手就帮自己砍掉了
-                                    <text class='price'>{{info.price}}元</text>
-                                </view>
-                                <view v-if="bargain.user_id != info.user_id">你一出手就帮{{bargain.nickname}}</view>
-                                <view v-if="bargain.user_id != info.user_id">砍了
-                                    <text class='price'>{{info.price}}元</text>
-                                </view>
-                            </view>
-                            <view v-if="bargain.user_id == info.user_id">快邀请好友帮你一起砍价吧!</view>
-                            <view class="button-margin">
-                            <!-- #ifdef H5 -->
-                               <button @click="hShareAppMessage" open-type="share" v-if="bargain.user_id == info.user_id">
-                                      <image style="margin-top: 0" :src='bargainImg.app_image.find'></image>
-                               </button>
-                            <!-- #endif -->
-                            <!-- #ifdef MP -->
-                                <button open-type="share" v-if="bargain.user_id == info.user_id">
-                                      <image style="margin-top: 0" :src='bargainImg.app_image.find'></image>
-                                </button>
-                            <!-- #endif -->
-                            </view>
-                            <view v-if="bargain.user_id != info.user_id" @click="toJoin">
-                                <image :src='bargainImg.app_image.join_small'></image>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-                <view v-if="tip" class='dialog-bg'>
-                    <view class="dialog-item">
-                        <view class='dialog-tip-title'>提示</view>
-                        <view>{{tip}}</view>
-                        <view @click="tip=''" class='close-button'>确认</view>
-                    </view>
-                </view>
-                <view>
-                    <view @click="toIndex" class='rules left-rules'>返回首页</view>
-                </view>
-                <view>
-                    <view  @click="toRules" class='rules right-rules'>活动规则</view>
-                </view>
-                <view class='top-banner' :style="{'background-image': 'url(' + bargainImg.app_image.bg_pic + ')'}"></view>
-                <view class='info'>
-                    <image class='avatar' :src='detail.initiator_avatar'></image>
-                    <view class='username'>{{detail.initiator_nickname}}</view>
-                    <view>我发现一件好货,来一起砍价优惠购!</view>
-                    <view class='goods'>
-                        <image :src='detail.cover_pic'></image>
-                        <view class='t-omit-two goods-name'>{{detail.goods_name}}</view>
-                        <view class='t-omit goods-attr'>
-                            <text v-for="attr in detail.select_attr_group" :key="attr.id">
-                                {{attr.attr_group_name}}:{{attr.attr_name}}
-                            </text>
-                        </view>
-                        <view class='end_time' v-if="detail.reset_time > 0">
-                            <text class="date-text" v-if="dd > 0">{{dd}}</text>
-                            <text v-if="dd > 0">天</text>
-                            <text class="date-text">{{hh}}</text>
-                            <text>:</text>
-                            <text class="date-text">{{mm}}</text>
-                            <text>:</text>
-                            <text class="date-text">{{ss}}</text>
-                            <text>后结束</text>
-                        </view>
-                        <view class='end_time' v-else>已结束</view>
-                        <view class='price'>当前价 ¥{{detail.now_price ?detail.now_price : 0}}</view>
-                    </view>
-                </view>
-                <view class='progress'>
-                    <view class='border' v-if="detail.bargain_price_per < 5" :style="{'left':`${detail.bargain_price_per}%`}"></view>
-                    <text class='begin' v-if="detail.bargain_price_per < 5">已砍{{detail.bargain_price ? detail.bargain_price : 0}}</text>
-                    <text class='progress-info progressing' v-else-if="detail.bargain_price_per < 100" :style="{'left':`${detail.bargain_price_per ? detail.bargain_price_per : 0}%`}">已砍{{detail.bargain_price ? detail.bargain_price : 0}}</text>
-                    <text class='progress-info over' v-else>已完成</text>
-                    <view class='progress-bg'>
-                        <image src='https://shop.9026.com/web/statics/img/mall/bargain//../image/progress.png'></image>
-                        <view class='line' :class="[`${detail.bargain_price < 4 ? 'small-line':''}`]" :style="{'width':`${detail.bargain_price_per ? detail.bargain_price_per : 0}%`}"></view>
-                    </view>
-                    <text class='before-price'>原价¥{{detail.price ? detail.price : 0}}</text>
-                    <text class='after-price'>底价¥{{detail.min_price ? detail.min_price : 0}}</text>
-                </view>
-                <!-- 不是自己的砍价 -->
-                <view class='join main-center' v-if="status == 2">
-                    <view @click="toJoin">
-                        <image class="join-img" :animation="sizeAnimation" :src='bargainImg.app_image.join_big'></image>
-                    </view>
-                </view>
-                <!-- 砍价未完成 -->
-                <view class='button-view main-between' v-if="detail.now_price != detail.min_price && status != 2">
-                    <view @click="toBuy">
-                        <image :src='bargainImg.app_image.buy_small'></image>
-                    </view>
-                    <!-- #ifdef H5 -->
-                    <button @click="hShareAppMessage" open-type="share">
-                        <image :src='bargainImg.app_image.go_on'></image>
-                    </button>
-                    <!-- #endif -->
-                    <!-- #ifdef MP -->
-                    <button open-type="share">
-                        <image :src='bargainImg.app_image.go_on'></image>
-                    </button>
-                    <!-- #endif -->
-                </view>
-                <!-- 砍价完成 -->
-                <view class='join main-center' v-if="detail.now_price == detail.min_price && status != 2">
-                    <view @click="toBuy">
-                        <image class="join-img" :animation="sizeAnimation" :src='bargainImg.app_image.buy_now'></image>
-                    </view>
-                </view>
-                <view class="log-box"
-                      :style="{background: 'linear-gradient(' + bargainImg.config.bg_color +', '+ ( bargainImg.config.bg_color_type === 'gradient' ?  bargainImg.config.bg_gradient_color:  bargainImg.config.bg_color) + ')'}">
-                    <view class='log'>
-                        <view class='main-center'>
-                            <text class='log-line'></text>
-                            <text class='log-title'>砍价记录</text>
-                            <text class='log-line'></text>
-                        </view>
-                        <view class='log-item' v-for="item in list" :key="item.id">
-                            <view class='log-user'>
-                                <image :src='item.avatar'></image>
-                                <text class="nickname">{{item.nickname}}</text>
-                            </view>
-                            <view class='log-info'>
-                                <image src='https://shop.9026.com/web/statics/img/mall/bargain//../image/down.png'></image>
-                                <text>砍掉{{item.price}}元</text>
-                            </view>
-                        </view>
-                        <view @click="lookMore" v-if="toMore">
-                            <view class='look-more' v-if="more">
-                                <image src='https://shop.9026.com/web/statics/img/mall/bargain//../image/to-down.png'></image>
-                                <text>查看更多</text>
-                            </view>
-                            <view catchtap='closeList' class='up' v-else>
-                                <image src='https://shop.9026.com/web/statics/img/mall/bargain//../image/to-up.png'></image>
-                                <text>收起</text>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-
-    export default {
-        name: "activity",
-        data() {
-            return {
-                detail: {
-                    bargain_price_per: 0
-                },
-                list: [],
-                distance: 0,
-                more: false,
-                sizeAnimation: {},
-                status: 1,
-                animationData: '',
-                kanjia: false,
-                dialog: false,
-                info: {},
-                bargain: {},
-                toMore: false,
-                page: 1,
-                dd: 0,
-                hh:23,
-                mm:59,
-                ss:59,
-                changeTimer: null,
-                timer: null,
-                tip: '',
-                title: '',
-                order_id: '',
-                // rules: ''
-            }
-        },
-        computed: {
-            ...mapState({
-                userInfo: state => state.user.info,
-                bargainImg: state => state.mallConfig.plugin.bargain,
-                mall: state => state.mallConfig.mall
-            }),
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-           return this.hShareAppMessage();
-        },
-        // #endif
-        onUnload() {
-            clearInterval(this.timer);
-            clearInterval(this.changeTimer);
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            var that = this;
-            that.$store.dispatch('user/info');
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getSetting();
-            let getInfo = setInterval(function () {
-                if(that.userInfo) {
-                    clearInterval(getInfo);
-                    if (options.order_id) {
-                        that.join(options.order_id);
-                        that.order_id = options.order_id;
-                    } else if (options.id) {
-                        that.getDetail(options.id,1)
-                        that.order_id = options.id;
-                    } else if (options.bargain_order_id) {
-                        that.order_id = options.bargain_order_id;
-                        if (options.user_id == that.userInfo.options.user_id) {
-                            that.getDetail(options.bargain_order_id, 1)
-                        } else {
-                            that.status = 2;
-                            that.join(options.bargain_order_id)
-                        }
-                    }
-                    that.changeTimer = setInterval(() => {
-                        that.changeSize();
-                    }, 300) 
-                }
-            }, 300)  
-        },
-
-        methods: {
-            hShareAppMessage(s = false){
-                let that = this;
-                return this.$shareAppMessage({
-                    title: that.title,
-                    path: "/plugins/bargain/activity/activity",
-                    imageUrl: that.detail.app_share_pic ? that.detail.app_share_pic : '',
-                    params: {
-                        user_id: that.userInfo.options.user_id,
-                        bargain_order_id: that.order_id,
-                    }
-                },s);
-            },
-            toRules() {
-                // uni.navigateTo({
-                //     url: '/plugins/bargain/rule/rule?rules=' + this.rules
-                // })
-                uni.navigateTo({
-                    url: `/pages/rules/index?url=${encodeURIComponent(this.$api.bargain.setting)}&key=rule`,
-                });
-            },
-
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.setting,
-                }).then(response=>{
-                    if(response.code === 0) {
-                        that.title = response.data.title.toString();
-                        // that.rules = response.data.rule;
-                        if(response.data.title.indexOf("\n") > -1) {
-                            let title = response.data.title.split("\n");
-                            let index = Math.floor(Math.random() * title.length);
-                            that.title = title[index]
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            join(bargain_order_id) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.user_join_bargain,
-                    data: {
-                        bargain_order_id: bargain_order_id
-                    },
-                }).then(response=>{
-                    if(response.code == 0) {
-                        let queueId = response.data.queueId;
-                        let token = response.data.token;
-                        that.result(queueId, token, bargain_order_id)
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        if (response.msg == "用户已参与本次砍价") {
-                            that.getDetail(bargain_order_id, 1)
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            result(queueId, token, bargain_order_id) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.user_join_bargain_result,
-                    data: {
-                        queueId: queueId,
-                        token: token
-                    },
-                }).then(response=>{
-                    if(response.code == 0) {
-                        if (response.data.retry == 1) {
-                            setTimeout(() => {
-                                that.result(queueId, token, bargain_order_id)
-                            }, 1000)
-                        } else {
-                            that.$hideLoading();
-                            that.info = response.data.info;
-                            that.bargain = response.data.bargain;
-                            that.bargainAnimation();
-                            that.getDetail(bargain_order_id, 1)
-                        }
-                    }else {
-                        if (response.msg == "已砍至最低价") {
-                            that.tip = response.msg;
-                            that.getDetail(bargain_order_id, 1)
-                        }else {
-                            uni.showToast({
-                                title: response.msg,
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getDetail(bargain_order_id,page) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bargain.activity,
-                    data: {
-                        bargain_order_id: bargain_order_id,
-                        page: page
-                    },
-                }).then(response=>{
-                    setTimeout(function(){
-                        that.$hideLoading();
-                    },500)
-                    if(response.code == 0) {
-                        if (response.data.list.length > 0) {
-                            that.detail = response.data;
-                            if (response.data.total_people > 3) {
-                                    that.toMore = true;
-                                if (response.data.list.length == 3) {
-                                    that.more = true;
-                                }else {
-                                    that.more = false;
-                                }
-                            }
-                            that.list = that.list.concat(response.data.list);
-                            if(page == 1) {
-                                let reset_time = that.detail.reset_time;
-                                that.timer = setInterval(() => {
-                                    reset_time--;
-                                    that.getTime(reset_time);
-                                    if(that.reset_time == 0) {
-                                        clearInterval(that.timer)
-                                    }
-                                }, 1000)
-                            }
-                        } else {
-                            that.tip = '暂无更多用户'
-                            that.toMore = false
-                        }
-                    }else {
-                        uni.showModal({
-                            title: '提示',
-                            content: response.data.msg,
-                            showCancel: false,
-                            success: function (res) {
-                                if (res.confirm) {
-                                    uni.redirectTo({
-                                        url: '/pages/index/index'
-                                    });
-                                }
-                            }
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getTime(time) {
-                if(time > 86399) {
-                    this.dd = Math.floor(time / 86400)
-                    time = time - (86400*this.dd)
-                }else {
-                    this.dd = 0
-                }
-                if(time > 3599) {
-                    this.hh = Math.floor(time / 3600)
-                    if(this.hh < 10) {
-                        this.hh = '0' + this.hh
-                    }
-                    time = time - (3600*this.hh)
-                }else {
-                    this.hh = '00'
-                }
-                if(time > 59) {
-                    this.mm = Math.floor(time / 60)
-                    if(this.mm < 10) {
-                        this.mm = '0' + this.mm
-                    }
-                    time = time - (60*this.mm)
-                }else {
-                    this.mm = '00';
-                }
-                if(time < 60) {
-                    this.ss = time;
-                    if(this.ss < 10) {
-                        this.ss = '0' + this.ss
-                    }
-                }
-            },
-            // 砍价动画
-            bargainAnimation() {
-                let that = this;
-                that.kanjia = true;
-                that.dialog = true;
-                setTimeout(function() {
-                    that.kanjia = false;
-                    that.success();
-                },1200)
-                that.$forceUpdate();
-            },
-            // 查看更多
-            lookMore() {
-                this.page++;
-                this.getDetail(this.order_id,this.page)
-            },
-            // 收起
-            closeList() {
-                this.list = this.list.slice(0,3);
-                this.page = 1;
-                this.more = true;
-            },
-            // 砍价成功
-            success() {
-                let that = this;
-                this.dialog = true;
-                var animation = uni.createAnimation({
-                    duration: 500,
-                    timingFunction: 'linear'
-                })
-                this.animation = animation;
-                animation.scale(1).step().rotate(2).step().rotate(-2).step().rotate(0).step();
-                this.animationData = animation.export();
-            },
-            // 按钮动画
-            changeSize() {
-                var size = uni.createAnimation({
-                    duration: 1000,
-                    timingFunction: 'linear'
-                })
-                this.size = size;
-                size.scale(0.8).step().scale(1).step();
-                this.sizeAnimation = size.export();
-            },
-            toIndex() {
-                uni.reLaunch({
-                    url:'/pages/index/index'
-                })
-            },
-            toBuy() {
-                const bargain = this.detail;
-                const mchList = [{
-                    "mch_id": 0,
-                    "bargain_order_id": bargain.bargain_order_id,
-                    "goods_list": [{
-                        "id": bargain.goods_id,
-                        "attr": [],
-                        "num": 1,
-                        "cart_id": 0,
-                        "goods_attr_id": bargain.goods_attr_id
-                    }]
-                }];
-                uni.navigateTo({
-                    url: '/pages/order-submit/order-submit?mch_list=' +
-                        JSON.stringify(mchList) +
-                        '&preview_url=' + encodeURIComponent(this.$api.bargain.order_preview) +
-                        '&submit_url=' + encodeURIComponent(this.$api.bargain.order_submit)
-                });
-            },
-            
-            toJoin() {
-                if (this.detail.goods_id) {
-                    uni.navigateTo({
-                        url: '/plugins/bargain/goods/goods?goods_id=' + this.detail.goods_id,
-                    }) 
-                } else {
-                    uni.showModal({
-                        title: '提示',
-                        content: '活动已结束',
-                        showCancel: false,
-                        success: function(res) {
-                            if (res.confirm) {
-                                uni.redirectTo({
-                                    url: '/pages/index/index'
-                                });
-                            }
-                        }
-                    });
-                }
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .goods-attr {
-        margin-top: #{6rpx};
-        margin-bottom: #{16rpx};
-        color: #999999;
-        font-size: #{26rpx};
-        width: 60%;
-        text {
-            margin-right: #{18rpx};
-        }
-    }
-    .page {
-        //padding-bottom: #{100rpx};
-        min-height: 100%;
-        padding-top: #{95rpx};
-    }
-
-    .self-dialog {
-        margin-bottom: #{14rpx};
-    }
-
-    .top-banner {
-        width: 100%;
-        position: absolute;
-        height: #{870rpx};
-        z-index: 1;
-        top: 0;
-        background-repeat: no-repeat;
-        background-size: 100% 100%;
-    }
-
-    .rules {
-        position: absolute;
-        top: #{32rpx};
-        height: #{40rpx};
-        line-height: #{40rpx};
-        width: #{136rpx};
-        text-align: center;
-        background-color: rgba(0, 0, 0, 0.2);
-        border-radius: #{20rpx};
-        font-size: 12px;
-        color: #fff;
-        z-index: 2;
-    }
-
-    .left-rules {
-        left: #{20rpx};
-    }
-
-    .right-rules {
-        right: #{20rpx};
-    }
-
-    .log-box {
-        position: absolute;
-        z-index: 2;
-        min-height: calc(100vh - #{870rpx});
-        top: #{870rpx};
-        padding-top: #{20rpx};
-        width: 100%;
-        padding-bottom: #{100rpx};
-    }
-    .info {
-        background-color: #fff;
-        margin: 0 #{20rpx};
-        position: relative;
-        z-index: 2;
-        border-radius: #{16rpx};
-        text-align: center;
-        font-size: 16px;
-        color: #353535;
-        padding-top: #{65rpx};
-        padding-bottom: #{10rpx};
-    }
-
-    .info .avatar {
-        position: absolute;
-        top: #{-70rpx};
-        left: 0;
-        right: 0;
-        width: #{118rpx};
-        height: #{118rpx};
-        border-radius: 50%;
-        margin: 0 auto;
-        border: #{1rpx} solid #fff;
-    }
-
-    .info .username {
-        font-size: 14px;
-        color: #999;
-        margin-bottom: #{20rpx};
-    }
-
-    .goods {
-        margin: #{20rpx} #{24rpx} 0;
-        padding: #{24rpx} 0;
-        height: #{264rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        text-align: left;
-        font-size: 14px;
-        color: #353535;
-    }
-
-    .goods image {
-        height: #{216rpx};
-        width: #{216rpx};
-        float: left;
-        display: block;
-        margin-right: #{20rpx};
-    }
-
-    .goods .end_time {
-        font-size: 14px;
-        color: #666;
-        margin-top: #{10rpx};
-    }
-
-    .end_time text {
-        margin: 0 #{10rpx};
-    }
-
-    .end_time text:last-of-type {
-        margin: 0 0 0 #{10rpx};
-    }
-
-    .goods .end_time .date-text {
-        display: inline-block;
-        color: #fff;
-        height: #{46rpx};
-        line-height: #{46rpx};
-        text-align: center;
-        width: #{46rpx};
-        margin: 0;
-        background-color: #666;
-        border-radius: #{4rpx};
-    }
-
-    .goods .price {
-        font-size: 16px;
-        color: #ff5c5c;
-        margin-top: #{10rpx};
-    }
-
-    .progress {
-        padding-top: #{56rpx};
-        height: #{180rpx};
-        width: #{680rpx};
-        margin: #{32rpx} auto 0;
-        position: relative;
-        z-index: 2;
-    }
-
-    .progress-info,.begin {
-        font-size: 12px;
-        color: #ff5c5c;
-        padding: 0 #{20rpx};
-        display: inline-block;
-        border-radius: #{20rpx};
-        height: #{40rpx};
-        line-height: #{40rpx};
-        background-color: #fff;
-        position: absolute;
-        z-index: 5;
-        top: 0;
-        left:5%;
-        margin-left: #{-68rpx};
-        white-space:nowrap;
-    }
-
-    .progress-info.progressing {
-        margin-left: #{-68rpx};
-        min-width: #{82rpx};
-        white-space: nowrap;
-    }
-
-    .progress-info::after {
-        content: '';
-        position: absolute;
-        top: #{40rpx};
-        left: 50%;
-        margin-left: #{-8rpx};
-        border: #{8rpx} solid transparent;
-        border-top-color: #fff;
-    }
-
-    .progress .border {
-        position: absolute;
-        top: #{40rpx};
-        margin-left: #{-8rpx};
-        border: #{8rpx} solid transparent;
-        border-top-color: #fff;
-    }
-
-    .progress-info.over::after {
-        left: 75%;
-    }
-
-    .progress-info.over {
-        left:97%;
-        margin-left: #{-68rpx};
-        white-space:nowrap;
-    }
-
-    .progress .progress-bg {
-        width: #{680rpx};
-        height: #{28rpx};
-        position: relative;
-        z-index: 2;
-    }
-
-    .progress .progress-bg image {
-        width: #{680rpx};
-        height: #{28rpx};
-        position: absolute;
-    }
-
-    .progress .line {
-        position: absolute;
-        top: #{2rpx};
-        left: #{2rpx};
-        height: #{24rpx};
-        background-color: #ff9f9f;
-        border-radius: #{12rpx};
-        z-index: 5;
-        max-width: #{676rpx};
-    }
-
-    .progress .line.small-line {
-        border-top-right-radius: 0;
-        border-bottom-right-radius: 0;
-    }
-
-    .before-price, .after-price {
-        font-size: 12px;
-        color: #fff;
-        position: absolute;
-        bottom: #{40rpx};
-    }
-
-    .before-price {
-        left: 0;
-    }
-
-    .after-price {
-        right: 0;
-    }
-
-    .button-view {
-        position: relative;
-        z-index: 2;
-        margin: 0 #{20rpx};
-    }
-
-    .button-view button {
-        height: #{82rpx};
-        width: #{328rpx};
-        padding: 0;
-        margin: 0;
-        border-radius: #{41rpx};  
-    }
-
-    .button-view image {
-        height: #{82rpx};
-        width: #{328rpx};
-    }
-
-    .log {
-        background-color: rgba(255, 255, 255, .3);
-        margin: 0 #{20rpx};
-        padding: #{40rpx};
-        border-radius: #{16rpx};
-        position: relative;
-        z-index: 2;
-    }
-
-    .log-line {
-        position: absolute;
-        top: #{60rpx};
-        left: 50%;
-        height: #{1rpx};
-        width: #{160rpx};
-        background-color: #fff;
-    }
-
-    .log .log-line:first-of-type {
-        margin-left: #{-254rpx};
-    }
-
-    .log .log-line:last-of-type {
-        margin-left: #{94rpx};
-    }
-
-    .log-title {
-        color: #fff;
-        font-size: 14px;
-        margin: 0 #{34rpx};
-    }
-
-    .log-item {
-        margin-top: #{40rpx};
-        height: #{80rpx};
-        line-height: #{80rpx};
-        color: #fff;
-    }
-
-    .log-item .log-user {
-        float: left;
-        width: 50%;
-    }
-
-    .log-item .log-user image {
-        height: #{80rpx};
-        width: #{80rpx};
-        border-radius: 50%;
-        margin-right: #{24rpx};
-        float: left;
-    }
-
-    .log-item .log-info {
-        float: right;
-        width: 50%;
-        text-align: right;
-    }
-
-    .log-item .log-info text {
-        float: right;
-    }
-
-    .log-item .log-info image {
-        margin-top: #{15rpx};
-        height: #{50rpx};
-        width: #{72rpx};
-        margin-right: #{16rpx};
-    }
-
-    .look-more,.up {
-        margin-top: #{48rpx};
-        width: 100%;
-        font-size: 12px;
-        color: #fff;
-        text-align: center;
-    }
-
-    .look-more image,.up image {
-        height: #{18rpx};
-        width: #{18rpx};
-        margin-right: #{16rpx};
-    }
-
-    .join {
-        height: #{152rpx};
-    }
-
-    .dialog-bg {
-        height: 100%;
-        width: 100%;
-        position: fixed;
-        left: 0;
-        top: 0;
-        z-index: 10;
-        background-color: rgba(0, 0, 0, 0.3);
-    }
-
-    .dialog-header {
-        position: absolute;
-        left: 0;
-        right: 0;
-        top: 0;
-        margin: 0 auto;
-        height: #{200rpx};
-        width: #{638rpx};
-        z-index: 15;
-    }
-
-    .dialog-header-gif {
-        position: absolute;
-        left: 0;
-        right: 0;
-        top: #{34rpx};
-        margin: 0 auto;
-        height: #{69rpx};
-        width: #{132rpx};
-        z-index: 20;    
-    }
-
-    .dialog-header-gif-sec {
-        position: absolute;
-        left: 0;
-        right: 0;
-        top: #{-70rpx};
-        margin: 0 auto;
-        height: #{276rpx};
-        width: #{525rpx};
-        z-index: 20;
-        transform: scale(0.25);
-    }
-
-
-    .dialog {
-        padding: #{60rpx} 0 #{48rpx};
-        background-color: #fff;
-        position: fixed;
-        top: #{504rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        width: #{638rpx};
-        text-align: center;
-        border-bottom-left-radius: #{16rpx};
-        border-bottom-right-radius: #{16rpx};
-    }
-
-    .dialog image {
-        margin-top: #{45rpx};
-        height: #{88rpx};
-        width: #{480rpx};
-    }
-
-    .button-margin {
-        margin-top: #{45rpx};
-    }
-
-    .button-margin button {
-        border: 0;
-    }
-
-    .dialog button {
-        background-color: #fff;
-    }
-
-    .dialog .price {
-        color: #ff5c5c;
-        font-size: 16px;
-        font-weight: blod;
-    }
-
-    .dialog-close {
-        height: #{50rpx};
-        width: #{50rpx};
-        position: fixed;
-        top: #{320rpx};
-        right: #{62rpx};
-        z-index: 20;
-    }
-
-    .in-bargain {
-        position: fixed;
-        top: #{300rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        width: #{638rpx};
-        height: #{535rpx};
-        border-radius: #{16rpx};
-        background-color: #fff;
-    }
-
-    .bargain-gif {
-        display: block;
-        position: absolute;
-        top: #{147.5rpx};
-        left: 0;
-        right: 0;
-        height: #{240rpx};
-        width: #{310rpx};
-        margin: 0 auto;
-    }
-
-    .bargain-gif-bg {
-        display: block;
-        position: absolute;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: #{500rpx};
-        width: #{500rpx};
-        margin: 0 auto;   
-    }
-
-    page {
-        height: 100%;
-    }
-
-    .nickname {
-        white-space: nowrap;
-        overflow: hidden;
-        text-overflow: ellipsis;
-        display: inline-block;
-        width: 65%;
-    }
-
-    .dialog-item {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: #{20rpx};
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .close-button {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        color: #ff4544;
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-tip-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-
-    .join-img {
-        width: #{680rpx};
-        height: #{110rpx};
-    }
-
-    .goods-name {
-        margin-top: #{6rpx};
-    }
-</style>

+ 0 - 110
src/plugins/bargain/common-buttom.vue

xqd
@@ -1,110 +0,0 @@
-<template>
-    <view>
-	    <view>
-		    <app-empty-bottom :height="Number(96)" backgroundColor="#f7f7f7"></app-empty-bottom>
-	    </view>
-        <view>
-	        <app-iphone-x>
-		        <view slot="empty-area" class='lottery-bottom dir-left-nowrap cross-center'>
-			        <view @click="nav1" class="box-grow-1 dir-left-nowrap main-center cross-center">
-				        <icon class="icon icon-hf" :style="{'background-color': status==='index' ? theme.background : '#999999'}" type></icon>
-				        <view :style="{'color': status==='index' ? theme.color : '#999999'}">砍价会场</view>
-			        </view>
-			        <view class="line"></view>
-			        <view @click="nav2" class="box-grow-1 dir-left-nowrap main-center cross-center">
-				        <icon class="icon icon-jf" :style="{'background-color': status !=='index' ? theme.background : '#999999'}" type></icon>
-				        <view :style="{'color': status!=='index' ? theme.color : '#999999'}">我的砍价</view>
-			        </view>
-		        </view>
-	        </app-iphone-x>
-        </view>
-    </view>
-</template>
-
-<script>
-    import { mapState } from 'vuex';
-    import appIphonexBottom from "../../components/page-component/app-iphonex-bottom/app-iphonex-bottom.vue";
-    import appIphoneX from '../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appEmptyBottom from '../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-    
-    export default {
-        name: 'common-buttom',
-        components: {appIphonexBottom, appEmptyBottom, appIphoneX},
-        computed: {
-            ...mapState('gConfig', {
-                iphone: (data) => {
-                    return data.iphone;
-                },
-                iphoneHeight: (state) => {
-                    return state.iphoneHeight;
-                },
-            })
-        },
-        props: {
-            status: {
-                type: String,
-                default: 'index',
-            },
-			theme: Object
-        },
-        data() {
-            return {}
-        },
-        methods: {
-            nav1() {
-                uni.redirectTo({url: `/plugins/bargain/index/index`});
-            },
-            nav2() {
-                uni.redirectTo({url: `/plugins/bargain/order-list/order-list`});
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .lottery-bottom {
-        width: 100%;
-        height: #{96rpx};
-        background-color: #fff;
-        border-top: #{1rpx} solid #e2e2e2;
-        color: #999;
-
-        .line {
-            height: #{48rpx};
-            width: #{1rpx};
-            background: #e2e2e2;
-        }
-
-        .icon {
-            width: #{34rpx};
-            height: #{33rpx};
-            background-repeat: no-repeat;
-            background-size: 100% 100%;
-            margin: 0 #{16rpx};
-        }
-
-
-
-        .icon.icon-hf {
-            background-image: url('https://shop.9026.com/web/statics/img/mall/bargain/bargain-list.png');
-        }
-
-
-
-        .icon.icon-jf {
-            background-image: url('https://shop.9026.com/web/statics/img/mall/bargain/bargain-my.png');
-        }
-
-        .red {
-            color: #ff4544;
-        }
-    }
-
-    .navbar + .body {
-        padding-bottom: #{115rpx};
-    }
-
-    .navbar + .body .lottery-bottom {
-        bottom: #{115rpx};
-    }
-</style>

+ 0 - 111
src/plugins/bargain/components/app-plugin-time-bar.vue

xqd
@@ -1,111 +0,0 @@
-<template>
-    <view class="time-bar">
-        <view class="app-pt-time" :style="{'background-color': theme.background}">
-            <image class="app-image" src="https://shop.9026.com/web/statics/img/mall/bargain/time-bar.png"></image>
-            <view class="app-time-content">
-                <view class="app-name">{{start_begin}}</view>
-                <view class="app-time-info dir-left-nowrap cross-center">
-                    <text class="app-value">{{day}}</text>
-                    <text class="app-degree">天</text>
-                    <text class="app-value">{{hour}}</text>
-                    <text class="app-degree">时</text>
-                    <text class="app-value">{{minute}}</text>
-                    <text class="app-degree">分</text>
-                    <text class="app-value">{{second}}</text>
-                    <text class="app-degree">秒</text>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-
-<script>
-    export default {
-        name: 'app-plugin-time-bar',
-        props: {
-            day: {
-                type: String,
-                default() {
-                    return '00';
-                }
-            },
-            hour: {
-                type: String,
-                default() {
-                    return '00';
-                }
-            },
-            minute: {
-                type: String,
-                default() {
-                    return '00';
-                }
-            },
-            second: {
-                type: String,
-                default() {
-                    return '00';
-                }
-            },
-            theme: Object,
-            img_url: String,
-            start_begin: String
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .default-back {
-        background: linear-gradient(140deg, #ff5427, #ff3d3f,#ff2e4e, #ff2754);
-    }
-    .app-pt-time {
-        height: #{88rpx};
-        width: #{750rpx};
-        position: relative;
-        .app-image {
-            width: #{750rpx};
-            height: #{88rpx};
-        }
-        .app-title {
-            width: #{281rpx};
-            color: white;
-            margin-top: #{46rpx};
-            font-size: #{22rpx};
-        }
-        .app-time-content {
-            width: #{322rpx};
-            height: #{88rpx};
-            position: absolute;
-            right: 0;
-            top: 0;
-            .app-name {
-                width: #{322rpx};
-                height: #{30rpx};
-                font-size: #{20rpx};
-                color: white;
-                margin: #{5rpx} 0;
-                text-align: center;
-            }
-            .app-time-info {
-                height: #{48rpx};
-                width: #{322rpx};
-                text-align: center;
-                .app-degree {
-                    font-size: #{23rpx};
-                    color: #ffffff;
-                    margin: 0 #{6rpx};
-                }
-                .app-value {
-                    display: inline-block;
-                    min-width: #{40rpx};
-                    height: #{36rpx};
-                    line-height: #{36rpx};
-                    border-radius: #{4rpx};
-                    background-color: white;
-                    text-align: center;
-                    font-size: #{19rpx};
-                }
-            }
-        }
-    }
-</style>

+ 0 - 874
src/plugins/bargain/goods/goods.vue

xqd
@@ -1,874 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="!bargain" class="u-goods-detail"></view>
-        <template v-if="bargain">
-            <app-goods-banner :pic-list="bargain.pic_url" :share="bargain.share"
-                              :goods_id="bargain.goods_id"
-                              sign="bargain"
-                              :video-url="bargain.video_url"></app-goods-banner>
-            <view v-if="begin_list || end_list" class="main-center cross-center time-bg">
-                <app-plugin-time-bar
-                    :theme="getTheme"
-                    :day="begin_list ? begin_list.d : end_list.d"
-                    :hour="begin_list ? begin_list.h : end_list.h"
-                    :minute="begin_list ? begin_list.m : end_list.m"
-                    :second="begin_list ? begin_list.s : end_list.s"
-                    :start_begin="begin_list ? '距活动开始' : '距活动结束'"
-                >
-                </app-plugin-time-bar>
-            </view>
-            <view class="goods" v-if="bargain">
-                <view class="t-omit-three name">{{bargain.name}}</view>
-                <view v-if="bargain.subtitle" class="goods-subtitle">
-                    <view class="t-omit-three">{{bargain.subtitle}}</view>
-                </view>
-                <view class="dir-left-nowrap cross-center">
-                    <view class="detail box-grow-1 dir-top-nowrap">
-                        <view class="box-grow-0 dir-left-nowrap cross-bottom end">
-                            <view>最低</view>
-                            <view :style="{'color': getTheme.color}">¥</view>
-                            <view class="price" :style="{'color': getTheme.color}">{{bargain.min_price}}</view>
-                            <view class="del" v-if="isUnderlinePirce == 1">原价{{bargain.price}}</view>
-                        </view>
-                        <view class="box-grow-0 num dir-left-nowrap">
-                            <view>库存:{{bargain.stock}}{{bargain.unit}}</view>
-                            <view>已有{{bargain.join_num}}人参与砍价</view>
-                        </view>
-                    </view>
-                    <view @click="shareClick" :style="{'background-color': getTheme.background}" class="share dir-left-nowrap main-center cross-center box-grow-0">
-                        <image class="bd-icon box-grow-0" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-share-white.png"></image>
-                        <view class="box-grow-0">分享</view>
-                    </view>
-                    <view>
-                        <app-share-qr-code :url="poster + `&goods_id=` + goods_id"
-                                           v-model="shareShow"
-                                           :has-poster-nav="true"
-                                           :poster-config="poster_config + `&goods_id=` + goods_id"
-                                           :poster-generate="poster_generate + `&goods_id=` + goods_id"
-                                           :goods="bargain"
-                                           @share="shareMessage"
-                        ></app-share-qr-code>
-                    </view>
-                </view>
-				<view>
-					<bd-info-extra :theme="getTheme" :goods="bargain" :unit="bargain.unit" :min-number="0" :limit-buy="bargain.limit_buy"></bd-info-extra>
-				</view>
-            </view>
-            <view class="attr-box">
-                <view class="attr dir-left-nowrap">
-                    <view class="box-grow-0 left cross-center dir-top-nowrap">
-                        <view>商品信息</view>
-                    </view>
-                    <view class="box-grow-1 right dir-left-wrap">
-                        <view class="attr-item" v-for="(item, index) in bargain.select_attr_group" :key="index">
-                            {{item.attr_group_name + ':' + item.attr_name}}
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <bd-coupon @change="setCoupon" :theme="getTheme" :coupons="bargain.goods_coupon_center"></bd-coupon>
-            <bd-xbc
-                :guarantee-title="bargain.guarantee_title"
-                :guarantee-pic="bargain.guarantee_pic"
-                :param_content="bargain.param_content"
-                :param_name="bargain.param_name"
-                :services="bargain.service"
-            ></bd-xbc>
-            <bd-hc
-                :integral="bargain.goods_marketing_award.integral"
-                :coupon="bargain.goods_marketing_award.coupon"
-                :card="bargain.goods_marketing_award.card"
-                :balance="bargain.goods_marketing_award.balance"
-                :theme="getTheme"
-            ></bd-hc>
-            <bd-kb
-                :limit="bargain.goods_marketing.limit"
-                :express="bargain.express"
-                :shipping="bargain.goods_marketing.shipping"
-                :pickup="bargain.goods_marketing.pickup"
-            ></bd-kb>
-            <view class="activity goods-margin" v-if="bargain.bargain_info">
-                <view class="dir-left-nowrap cross-center">
-                    <image class="box-grow-0 user-img" :src="userInfo.avatar" load-lazy></image>
-                    <view class="dir-top-nowrap">
-                        <view class="dir-left-nowrap">
-                            <view>距本次砍价结束仅剩</view>
-                            <view class="yellow">
-                                <block v-if="finish_list">
-                                    {{finish_list.d}}天{{finish_list.h}}:{{finish_list.m}}:{{finish_list.s}}
-                                </block>
-                                <block v-else>0天0:0:0</block>
-                            </view>
-                        </view>
-
-                        <view v-if="bargain.bargain_info.now_price == bargain.bargain_info.min_price"
-                              class="yellow">已砍至最低价,赶快优惠购买吧!
-                        </view>
-                        <view class="yellow" v-else>快让你的好友助你一臂之力!</view>
-                    </view>
-                </view>
-                <view class="main-center">
-                    <view class="current">当前价¥{{bargain.bargain_info.now_price}}</view>
-                </view>
-                <view class='progress-box'>
-                    <view class='progress-view' :style="{width:bargain.bargain_info.bargain_price_per+'%'}"></view>
-                </view>
-                <view class='dir-left-nowrap price'>
-                    <view class='box-grow-1'>原价¥{{bargain.bargain_info.price}}</view>
-                    <view class='box-grow-0'>底价¥{{bargain.bargain_info.min_price}}</view>
-                </view>
-                <view class='info'>
-                    <scroll-view class="user-scroll" scroll-y scroll-into-view="user"
-                                 scroll-with-animation="true">
-                        <block v-for="(v,k) in bargain.bargain_info.list" :key="k">
-                            <view class="item dir-left-nowrap cross-center">
-                                <image class='box-grow-0' :src="v.avatar" load-lazy></image>
-                                <view class="box-grow-1 dir-left-nowrap cross-center">
-                                    <view class="nickname">{{v.nickname}}</view>
-                                    <view> 小刀一挥帮忙砍了</view>
-                                    <view class="red">{{v.price}}</view>
-                                    <view>元</view>
-                                </view>
-                            </view>
-                        </block>
-                    </scroll-view>
-                </view>
-            </view>
-            <view class="circuit-label goods-margin dir-left-nowrap cross-center">
-                <icon class="icon-circuit" type></icon>
-                <view>砍价流程</view>
-            </view>
-            <view class="circuit-value dir-left-nowrap main-center">
-                <block v-for="(v,k) in circuit" :key="k">
-                    <view class="cross-center dir-top-nowrap">
-                        <image :src="v.url" :class="v.name ? 'icon-circuit-i' : 'icon-circuit-j'"></image>
-                        <view class="box-grow-0 name">{{v.name}}</view>
-                    </view>
-                </block>
-            </view>
-            <view class="circuit-label goods-margin dir-left-nowrap cross-center">
-                <icon class="icon-circuit" type></icon>
-                <view>活动说明</view>
-            </view>
-            <view class="activity-time">
-                <view>本活动开始时间{{bargain.begin_time}}</view>
-                <view>本活动结束时间{{bargain.end_time}}</view>
-            </view>
-            <view class="circuit-label goods-margin dir-left-nowrap cross-center">
-                <icon class="icon-circuit" type></icon>
-                <view>商品详情</view>
-            </view>
-            <view class="bd-detail">
-                <app-rich-text :content="bargain.detail"></app-rich-text>
-            </view>
-            <!-- 底部空格 -->
-            <view class="safe-area-inset-bottom">
-                <view class="u-bottom-height"></view>
-            </view>
-            <!-- 底部按钮 -->
-            <view v-if="is_open" class="safe-area-inset-bottom u-bottom-fixed">
-                <view class="bargain-goods-bottom main-center cross-center">
-                    <block v-if="bargain.bargain_info">
-                        <block v-if="bargain.bargain_info.min_price < bargain.bargain_info.now_price">
-                            <view @click="submit" class="btn shop" :style="{'background-color': getTheme.background_s,'color': getTheme.secondary_text}">立即购买</view>
-                            <view @click="bargainFriend" class="btn friend" :class="getTheme.key === 'a' ? 'default-friend' : ''"
-                                  :style="{'background-color': getTheme.key != 'a' ? getTheme.background : '','color': getTheme.key != 'a' ? getTheme.secondary_text : '#ffffff'}">找人帮砍</view>
-                        </block>
-                        <view v-else @click="submit" class="btn" :class="getTheme.key === 'a' ? 'default-btn' : ''" :style="{'background-color': getTheme.key != 'a' ? getTheme.background : '','color': getTheme.main_text}">立即购买</view>
-                    </block>
-                    <block v-else>
-                        <view v-if="bargain.stock == 0" class="btn" style="background: #CDCDCD;color: #fff;">已售罄</view>
-                        <view v-else-if="compareTime === 'no-start'" class="btn" style="background: #CDCDCD;color: #fff;">未开始
-                        </view>
-                        <view v-else-if="compareTime === 'end'" class="btn" style="background: #CDCDCD;color: #fff;">已结束</view>
-                        <view v-else @click="subscribe" class="btn" :class="getTheme.key === 'a' ? 'default-btn' : ''" :style="{'background-color': getTheme.key != 'a' ? getTheme.background : '','color': getTheme.main_text}">立即砍价
-                        </view>
-                    </block>
-                </view>
-            </view>
-        </template>
-        <app-close v-if="showClose" :modal="false" @update="getMall"></app-close>
-    </app-layout>
-</template>
-
-<script>
-
-import {mapGetters, mapState} from 'vuex';
-import appQuickNavigation from "../../../components/page-component/app-quick-navigation/app-quick-navigation";
-import appRichText from "../../../components/basic-component/app-rich/parse.vue";
-import appGoodsBanner from "../../../components/page-component/goods/app-goods-banner.vue";
-import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-import appPluginTimeBar from '../components/app-plugin-time-bar.vue';
-import bdCoupon from '@/components/page-component/goods/bd-coupon.vue';
-import bdXbc from '@/components/page-component/goods/bd-xbc.vue';
-import bdKb from '@/components/page-component/goods/bd-kb.vue';
-import bdHc from '@/components/page-component/goods/bd-hc.vue';
-import bdComments from '@/components/page-component/goods/bd-comments.vue';
-import appClose from '@/components/basic-component/app-close/app-close.vue';
-import bdInfoExtra from '@/components/page-component/goods/bd-info-extra.vue';
-
-export default {
-    name: "goods",
-    components: {
-        appQuickNavigation,
-        appRichText,
-        appGoodsBanner,
-        appShareQrCode,
-        appPluginTimeBar,
-        appClose,
-        bdCoupon,
-        bdXbc,
-        bdKb,
-        bdHc,
-        bdComments,
-		bdInfoExtra
-    },
-    computed: {
-        ...mapState({
-            appImg: state => state.mallConfig.plugin.bargain.app_image,
-            userInfo: state => state.user.info,
-            isUnderlinePrice: state => state.mallConfig.mall.setting.is_underline_price,
-        }),
-        ...mapState('gConfig', {
-            iphone: (data) => {
-                return data.iphone;
-            },
-            iphoneHeight: (state) => {
-                return state.iphoneHeight;
-            },
-        }),
-        ...mapGetters('mallConfig', {
-            getTheme: 'getTheme',
-        }),
-        compareTime() {
-            if (this.bargain) {
-                let {begin_time, end_time} = this.bargain;
-
-                function getStamp(time = '') {
-                    if (time) {
-                        time = time.trim().substring(0, 19);
-                        time = time.replace(/-/g, '/');
-                        return new Date(time).getTime();
-                    }
-                    return new Date().getTime();
-                }
-
-                let begin_time_stamp = getStamp(begin_time)
-                let end_time_stamp = getStamp(end_time)
-                let time_stamp = getStamp();
-                if (begin_time_stamp <= time_stamp && time_stamp < end_time_stamp) {
-                    return '';
-                }
-                if (time_stamp >= end_time_stamp) {
-                    return 'end';
-                }
-                if (time_stamp < begin_time_stamp) {
-                    return 'no-start';
-                }
-            }
-            return '';
-        },
-    },
-
-    data() {
-        return {
-            showClose: false,
-            is_open: false,
-            timeIntegral: null,
-            goods_id: '',
-            bargain: null,
-            finish_list: null,
-            begin_list: null,
-            end_list: null,
-
-            shareShow: false,
-            title: '砍价',
-            page: 1,
-
-            circuit: [{
-                name: '点击砍价',
-                url: './../image/bargain-click.png',
-            }, {
-                name: '',
-                url: './../image/bargain-jiantou.png',
-            }, {
-                name: '找人砍价',
-                url: './../image/bargain-help.png',
-            }, {
-                name: '',
-                url: './../image/bargain-jiantou.png',
-            }, {
-                name: '价格合适',
-                url: './../image/bargain-price.png',
-            }, {
-                name: '',
-                url: './../image/bargain-jiantou.png',
-            }, {
-                name: '优惠购买',
-                url: './../image/bargain-buy.png'
-            }],
-            goods: {},
-            poster: this.$api.bargain.poster,
-            isUnderlinePirce: 0,
-            poster_config: this.$api.bargain.poster_config,
-            poster_generate: this.$api.bargain.poster_generate,
-        }
-        },
-    onLoad(options) { this.$commonLoad.onload(options);
-        // #ifdef MP-WEIXIN
-        wx.showShareMenu({
-            menus: ['shareAppMessage', 'shareTimeline']
-        })
-        // #endif
-        const self = this;
-        this.$store.dispatch('user/info');
-        this.goods_id = options.goods_id;
-
-        this.$showLoading();
-        this.$request({
-            url: this.$api.bargain.goods_detail,
-            data: {
-                goods_id: this.goods_id,
-            }
-        }).then(info => {
-            self.$hideLoading();
-            if (info.code === 0) {
-                self.bargain = info.data.bargain;
-                self.goods = self.bargain.goods
-                // #ifdef H5
-                this.shareMessage();
-                // #endif
-                //定时器
-                let func = function () {
-                    self.begin_list = self.setTimeStart(self.bargain.begin_time);
-                    self.end_list = self.setTimeStart(self.bargain.end_time);
-                    if (self.bargain.bargain_info) {
-                        self.finish_list = self.setTimeStart(self.bargain.bargain_info.finish_at);
-                    }
-                };
-                func();
-                self.timeIntegral = setInterval(() => {
-                    func();
-                }, 1000);
-            } else {
-                uni.showToast({icon: 'none', title: info.msg});
-                uni.navigateBack();
-            }
-        }).catch(() => {
-            self.$hideLoading();
-        });
-    },
-
-    onShow() {
-        this.showClose = false;
-        setTimeout(()=>{
-            this.showClose = true;
-        })
-    },
-    onUnload() {
-        clearInterval(this.timeIntegral);
-    },
-    // #ifdef MP
-    onShareAppMessage() {
-        return this.shareMessage();
-    },
-    // #endif
-    // #ifdef MP-WEIXIN
-    onShareTimeline() {
-        return this.$shareTimeline({
-            title: this.bargain.goods.app_share_title ? this.bargain.goods.app_share_title : this.bargain.name,
-            query: {
-                goods_id: this.bargain.goods_id
-            }
-        });
-    },
-    // #endif
-    methods: {
-        shareMessage(s = false){
-            return this.$shareAppMessage({
-                title: this.bargain.goods.app_share_title ? this.bargain.goods.app_share_title : this.bargain.name,
-                path: '/plugins/bargain/goods/goods',
-                imageUrl: this.bargain.goods.app_share_pic ? this.bargain.goods.app_share_pic : this.bargain.cover_pic,
-                desc: this.bargain.subtitle,
-                params: {
-                    goods_id: this.bargain.goods_id
-                }
-            }, s);
-        },
-        getMall(e) {
-            this.is_open = e.is_open == 1 ? true : false;
-        },
-        bargainFriend() {
-            uni.navigateTo({url: '/plugins/bargain/activity/activity?id=' + this.bargain.bargain_info.bargain_order_id});
-        },
-        setTimeStart: function (e) {
-            let time = e.replace(/-/g, '/');
-            let diff_time = parseInt((new Date(time).getTime() - new Date().getTime()) / 1000)
-            let day = 0, hour = 0, minute = 0, second = 0;
-
-            if (diff_time > 0) {
-                day = Math.floor(diff_time / (60 * 60 * 24));
-                hour = Math.floor(diff_time / (60 * 60)) - (day * 24);
-                minute = Math.floor(diff_time / 60) - (day * 24 * 60) - (hour * 60);
-                second = Math.floor(diff_time) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
-            } else {
-                return null;
-            }
-            return {
-                d: day.toString(),
-                h: hour < 10 ? ('0' + hour) : hour.toString(),
-                m: minute < 10 ? ('0' + minute) : minute.toString(),
-                s: second < 10 ? ('0' + second) : second.toString(),
-            };
-        },
-
-        subscribe: function () {
-            const self = this;
-			if (typeof this.bargain.limit_buy !== 'undefined' && this.bargain.limit_buy.status == 1 && this.bargain.limit_buy.rest_number < 1) {
-				this.$tips.showToast({
-					title: this.bargain.limit_buy.text,
-					icon: 'none'
-				});
-				return false;
-			}
-            this.$subscribe(this.bargain.template_message).then(res => {
-                self.save();
-            }).catch(() => {
-                self.save();
-            });
-        },
-
-        save: function () {
-            const self = this;
-            self.$showLoading();
-            self.$request({
-                url: self.$api.bargain.bargain_submit,
-                data: {
-                    goods_id: self.bargain.goods_id
-                },
-            }).then(info => {
-                self.$hideLoading();
-                if (info.code == 0) {
-                    self.bargainResult(info);
-                } else {
-                    uni.showToast({icon: 'none', title: info.msg});
-                }
-            }).catch(e => {
-                self.$hideLoading();
-            });
-        },
-
-        bargainResult(data) {
-            const self = this;
-            self.$showLoading();
-            self.$request({
-                url: self.$api.bargain.bargain_result,
-                data: {
-                    queueId: data.data.queueId,
-                    token: data.data.token,
-                },
-            }).then(info => {
-                if (info.code === 0) {
-                    if (info.data.retry) {
-                        setTimeout(() => {
-                            self.bargainResult(data);
-                        }, 1000);
-                        return;
-                    }
-                    self.$hideLoading();
-                    uni.redirectTo({
-                        url: '/plugins/bargain/activity/activity?order_id=' + info.data.bargain_order_id,
-                    })
-                } else {
-                    self.$hideLoading();
-                    uni.showToast({icon: 'none', title: info.msg});
-                }
-            }).catch(e => {
-                self.$hideLoading();
-            });
-        },
-
-        submit: function () {
-            const bargain = this.bargain;
-            const mchList = [{
-                "mch_id": 0,
-                "bargain_order_id": bargain.bargain_info.bargain_order_id,
-                "goods_list": [{
-                    "id": bargain.goods_id,
-                    "attr": [],
-                    "num": 1,
-                    "cart_id": 0,
-                    "goods_attr_id": bargain.goods_attr_id
-                }]
-            }];
-            uni.navigateTo({
-                url: '/pages/order-submit/order-submit?mch_list=' +
-                    JSON.stringify(mchList) +
-                    '&preview_url=' + encodeURIComponent(this.$api.bargain.order_preview) +
-                    '&submit_url=' + encodeURIComponent(this.$api.bargain.order_submit)
-            });
-        },
-
-        shareClick() {
-            this.shareShow = true;
-        },
-
-        setCoupon(index) {
-            this.$set(this.bargain.goods_coupon_center[index], 'is_receive', 1);
-        }
-    }
-}
-</script>
-
-<style scoped lang="scss">
-    .time-bg {
-        width: 100%;
-        height: #{88rpx};
-        .icon-time {
-            position: relative;
-            height: 100%;
-            width: #{710rpx};
-            background-repeat: no-repeat;
-            background-size: 100% auto;
-        }
-
-        .time-desc {
-            position: absolute;
-            font-size: #{26rpx};
-            left: 0;
-            right: 0;
-            margin: 0 auto;
-            color: #353535;
-        }
-
-        .time-box {
-            height: #{42rpx};
-            color: #fff;
-            width: #{46rpx};
-            line-height: #{42rpx};
-            text-align: center;
-            background-color: #666;
-            border-radius: #{4rpx};
-            margin: 0 #{10rpx};
-        }
-    }
-
-    .activity {
-        font-size: #{28rpx};
-        color: #353535;
-        padding: #{24rpx};
-        background: #FFFFFF;
-        width: 702upx;
-        border-radius: 15upx 15upx 0 0;
-        margin: 24upx 24upx 0 24upx;
-        .user-img {
-            height: #{96rpx};
-            width: #{96rpx};
-            display: block;
-            margin-right: #{34rpx};
-        }
-
-        .yellow {
-            color: #ff8c40;
-        }
-
-        .current {
-            margin-top: #{20rpx};
-            font-size: #{38rpx};
-            color: #ff4544;
-        }
-
-        .progress-box {
-            width: 100%;
-            height: #{40rpx};
-            border-radius: #{20rpx};
-            border: #{1px} solid #ff5c5c;
-            overflow: hidden;
-            margin-top: #{28rpx};
-            margin-bottom: #{16rpx};
-        }
-
-        .progress-view {
-            width: 50%;
-            height: 100%;
-            border-radius: #{20rpx};
-            background-color: #ff9f9f;
-        }
-
-        .price {
-            font-size: #{26rpx};
-            color: #666666;
-            padding-bottom: #{20rpx};
-        }
-    }
-
-    .goods {
-        width: 702upx;
-        border-radius: 15upx 15upx 0 0;
-        margin: 24upx 24upx 0 24upx;
-        background: #FFFFFF;
-        padding: #{32rpx} #{24rpx} #{40rpx};
-        color: #999999;
-
-        .name {
-            color: #353535;
-            margin-bottom:#{32rpx};
-            font-size: #{32rpx};
-        }
-        .goods-subtitle {
-            font-size: 24rpx;
-            background-color: #ffffff;
-            color: #999999;
-            margin-bottom:#{24rpx};
-        }
-
-        .detail {
-            color: #999999;
-            font-size: #{28rpx};
-
-            .end {
-                line-height: 1;
-            }
-
-            .red {
-                color: #ff4544;
-            }
-
-            .price {
-                font-size: #{46rpx};
-            }
-
-            .del {
-                margin-left: #{16rpx};
-                text-decoration: line-through;
-            }
-
-            .num {
-                margin-top: #{32rpx};
-            }
-
-            .num view:first-child {
-                margin-right: #{32rpx};
-            }
-        }
-
-        .share {
-            margin-right: #{-24rpx};
-            height: #{48rpx};
-            border-radius: #{40rpx} 0 0 #{40rpx};
-            padding: 0 #{14rpx};
-            width: #{103rpx};
-
-            .bd-icon {
-                height: #{22rpx};
-                width: #{22rpx};
-            }
-
-            view {
-                font-size: #{22rpx};
-                color: #ffffff;
-                margin-left: #{10rpx};
-            }
-        }
-    }
-
-    .circuit-label {
-        height: #{88rpx};
-        color: #ff4544;
-        width: 702upx;
-        margin: 24upx 24upx 0 24upx;
-        font-size: #{32rpx};
-        background: #FFFFFF;
-        border-bottom: #{1px} solid #e2e2e2;
-
-        .icon-circuit {
-            height: #{34}rpx;
-            width: #{34rpx};
-            background-image: url("https://shop.9026.com/web/statics/img/mall/bargain//bargain-flow.png");
-            background-repeat: no-repeat;
-            background-size: 100% auto;
-            margin: 0 #{16rpx};
-        }
-    }
-
-    .user-scroll {
-        max-height: #{264rpx};
-    }
-
-    .info {
-        width: 100%;
-        border-radius: #{16rpx};
-        background-color: #fff7f7;
-        padding: #{32rpx} #{24rpx};
-
-        .nickname {
-            max-width: #{200rpx};
-            word-break: break-all;
-            text-overflow: ellipsis;
-            display: -webkit-box;
-            -webkit-box-orient: vertical;
-            -webkit-line-clamp: 1;
-            overflow: hidden;
-        }
-
-        .red {
-            color: #ff4544;
-        }
-
-        image {
-            width: #{64rpx};
-            height: #{64rpx};
-            margin-right: #{24rpx};
-        }
-
-
-        .item {
-            margin-bottom: #{32rpx};
-        }
-
-        .item:last-child {
-            margin-bottom: 0;
-        }
-    }
-
-    .circuit-value {
-        padding-top: #{20rpx};
-        background: #FFFFFF;
-        padding-bottom: #{30rpx};
-        width: 702upx;
-        border-radius: 0 0 15upx 15upx;
-        margin: 0 24upx;
-        .icon-circuit-i {
-            height: #{72rpx};
-            width: #{72rpx};
-        }
-
-        .name {
-            font-size: #{24rpx};
-            color: #999999;
-            margin-top: #{20rpx};
-        }
-
-        .icon-circuit-j {
-            margin-top: #{19rpx};
-            height: #{34rpx};
-            width: #{52rpx};
-        }
-
-        > view {
-            margin: 0 #{10rpx}
-        }
-    }
-
-    .activity-time {
-        padding-bottom: #{40rpx};
-        background: #FFFFFF;
-        padding-left: #{20rpx};
-        width: 702upx;
-        border-radius: 0 0 15upx 15upx;
-        margin: 0 24upx;
-        view {
-            padding-top: #{28rpx};
-            font-size: #{28rpx};
-            color: #666666;
-        }
-
-        view:before {
-            content: '●';
-            margin-right: #{20rpx};
-        }
-    }
-
-    .bargain-goods-bottom {
-        height: #{120rpx};
-        width: 100%;
-        background: #FFFFFF;
-        .btn {
-            font-size: #{32rpx};
-            height: #{80rpx};
-            line-height: #{80rpx};
-            text-align: center;
-            width: #{702rpx};
-            border-radius: #{40rpx};
-        }
-
-        .default-btn {
-            background: linear-gradient(#ff9292, #fc6969);
-        }
-
-        .btn.shop {
-            width: #{346rpx};
-        }
-
-        .btn.friend {
-            width: #{346rpx};
-            margin-left: #{12rpx};
-        }
-        .default-friend {
-            background: linear-gradient(#ffc46b, #ffa13c);
-            color: #ffffff;
-        }
-    }
-    .attr-box {
-        width: 702upx;
-        margin: 0 24upx 0 24upx;
-        border-radius: 0 0 15upx 15upx;
-        padding: #{0 24rpx};
-        background: #ffffff;
-        .attr {
-            padding: #{28rpx 0};
-            border-top: #{1rpx solid #eeeeee};
-
-            .left {
-                color: #666666;
-                margin-right: #{24rpx};
-                font-size: $uni-font-size-weak-one;
-
-                view {
-                    border: #{1rpx solid #666666};
-                    padding: #{8rpx 16px};
-                    -webkit-border-radius: #{30rpx};
-                    -moz-border-radius: #{30rpx};
-                    border-radius: #{30rpx};
-                }
-            }
-
-            .right {
-                font-size: $uni-font-size-general-two;
-                margin-top: #{10rpx};
-
-                .attr-item {
-                    margin-right: #{10rpx};
-                }
-            }
-        }
-    }
-
-    .text {
-        color: #ffffff;
-    }
-
-    .goods-margin {
-        margin-top: 20upx;
-    }
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 999;
-        background-color: #ffffff;
-    }
-    .u-bottom-height {
-        height: 110upx;
-    }
-
-    .bd-detail {
-        width: 702upx;
-        background-color: #ffffff;
-        padding: 20upx 0;
-        margin: 0 24upx;
-        border-radius: 0 0 15upx 15upx;
-    }
-
-</style>

+ 0 - 265
src/plugins/bargain/index/index.vue

xqd
@@ -1,265 +0,0 @@
-<template>
-    <app-layout>
-        <app-swiper :height="280" :list="banner_list" :autoplay="true" name="pic_url"></app-swiper>
-        <view class="bargain-end">
-            <view v-for="(v,k) in list" class="dir-left-nowrap" :key="k">
-                <view class="bargain-left">
-                    <image load-lazy :src="v.cover_pic"></image>
-                    <view v-if="v.stock == 0" class="sold-out">
-                        <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-                    </view>
-                </view>
-                <view @click="goods(v)" class="bargain-right">
-                    <view class="dir-top-nowrap list">
-                        <view class="bargain-name box-grow-0">{{v.name}}</view>
-                        <view class="dir-left-nowrap num box-grow-1 cross-center">
-                            <view class="dir-left-nowrap user box-grow-0">
-                                <block v-for="(v1,k1) in v.user_list" :key="k1" v-if="k1 < 3">
-                                    <image class="avatar" :src="v1.avatar" load-lazy></image>
-                                </block>
-                            </view>
-                            <view class="box-grow-1">{{v.sales}}人已参与</view>
-                        </view>
-                        <view class="dir-left-nowrap cross-bottom box-grow-0 min-price">
-                            <view class="box-grow-1 dir-top-nowrap">
-                                <view class="bargain-original">¥{{v.price}}</view>
-                                <view class="bargain-price-title" :style="{'color': getTheme.color}">最低¥
-                                    <text class="bargain-price">{{v.min_price}}</text>
-                                </view>
-                            </view>
-                            <view v-if="v.status == 0 || v.stock == 0">
-                                <app-button width="180" font-size="28" background="#cdcdcd" height="64" color="#FFFFFF"
-                                            round
-                                            disabled>下次再来
-                                </app-button>
-                            </view>
-                            <view v-else class="box-grow-0">
-                                <view class="red-btn" :style="{'color': getTheme.color, 'border-color': getTheme.border}">立即参与</view>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <app-load-text v-if="load"></app-load-text>
-        </view>
-
-        <view>
-	        <common-buttom :theme="getTheme" status="index"></common-buttom>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appSwiper from "../../../components/page-component/app-swiper/app-swiper.vue";
-    import commonButtom from "../common-buttom.vue";
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appEmptyBottom from '../../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-    import { mapState, mapGetters } from 'vuex';
-
-    export default {
-        name: "index",
-        components: {appSwiper, commonButtom, appEmptyBottom, appIphoneX},
-        computed: {
-            ...mapGetters('mallConfig',{
-                getVideo: 'getVideo',
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                appSetting: state => state.mallConfig.mall.setting,
-            })
-        },
-        data() {
-            return {
-                list: [],
-                args: false,
-                page: 1,
-                load: false,
-                banner_list: null,
-                title: '砍价',
-            }
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                title: this.title,
-                path: '/plugins/bargain/index/index',
-                params: {}
-            });
-        },
-        // #endif
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-            // 分享朋友圈beta
-            return this.$shareTimeline({
-                title: this.title
-            });
-        },
-        // #endif
-        onLoad() { this.$commonLoad.onload();
-            const self = this;
-            self.$request({
-                url: self.$api.bargain.banner,
-            }).then(info => {
-                if (info.code === 0) {
-                    self.banner_list = info.data.list;
-                }
-            })
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-                menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-        },
-
-        onShow: function () {
-            const self = this;
-            self.$showLoading();
-            self.$request({
-                url: self.$api.bargain.goods_list,
-            }).then(info => {
-                self.$hideLoading();
-                if (info.code === 0) {
-                    self.list = info.data.list;
-                }
-                self.args = false;
-                self.page = 1;
-            }).catch(e => {
-                self.$hideLoading();
-            })
-        },
-
-        onReachBottom: function () {
-            const self = this;
-            if (self.args || self.load)
-                return;
-            self.load = true;
-            let page = self.page + 1;
-
-            self.$request({
-                url: self.$api.bargain.goods_list,
-                data: {
-                    page: page,
-                }
-            }).then(info => {
-                if (info.code === 0) {
-                    [self.page, self.args, self.list] = [page, info.data.list.length === 0, self.list.concat(info.data.list)];
-                }
-                self.load = false;
-            });
-        },
-        methods: {
-            goods(data) {
-                uni.navigateTo({
-                    url: '/plugins/bargain/goods/goods?goods_id=' + data.goods_id,
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        height: #{220rpx};
-    }
-
-    .bargain-end {
-        margin-top: #{16rpx}
-    }
-
-    .bargain-end > view {
-        padding: #{24rpx};
-        background: #ffffff;
-        border-bottom: #{1rpx solid #e2e2e2};
-    }
-    .bargain-end >view:last-child {
-        border-bottom: none;
-    }
-    .bargain-left {
-        position: relative;
-
-        image {
-            width: #{220rpx};
-            height: #{220rpx};
-            display: block;
-        }
-
-        .sold-out {
-            position: absolute;
-            top: 0;
-            left: 0;
-            z-index: 1;
-            width: #{220rpx};
-            height: #{220rpx};
-            background-color: rgba(0,0,0,.5);
-        }
-    }
-
-    .bargain-right {
-        margin-left: #{24rpx};
-        width: 100%;
-
-        .bargain-name {
-            font-size: #{32rpx};
-            color: #353535;
-            word-break: break-all;
-            text-overflow: ellipsis;
-            display: -webkit-box;
-            -webkit-box-orient: vertical;
-            -webkit-line-clamp: 1;
-            line-height: 1.5;
-            overflow: hidden;
-        }
-
-        .num {
-        }
-
-        .num > view {
-            color: #999999;
-            font-size: #{24rpx};
-            margin-right: #{16rpx};
-        }
-
-        .avatar {
-            margin-left: -8rpx;
-            border: 1px solid #ffffff;
-            height: #{34rpx};
-            width: #{34rpx};
-            border-radius: 50%;
-        }
-
-        .user {
-            margin-right: #{16rpx};
-        }
-
-        .bargain-original {
-            font-size: #{24rpx};
-            color: #999999;
-            text-decoration: line-through;
-        }
-
-        .min-price {
-            margin-bottom: #{8rpx};
-        }
-
-        .bargain-price-title {
-            line-height: 1;
-            font-size: #{28rpx};
-        }
-
-        .bargain-price {
-            margin-top: #{16rpx};
-            font-size: #{48rpx};
-        }
-    }
-
-    .red-btn {
-        font-size: #{28rpx};
-        line-height: #{64rpx};
-        text-align: center;
-        height: #{64rpx};
-        border-radius: #{33rpx};
-        border: #{1rpx} solid;
-        width: #{176rpx};
-    }
-</style>

+ 0 - 264
src/plugins/bargain/order-list/order-list.vue

xqd
@@ -1,264 +0,0 @@
-<template>
-    <app-layout>
-        <view class="no-content" v-if="!list.length">
-            <view>你还没有进行中的砍价</view>
-            <view>去会场逛逛!</view>
-        </view>
-        <view class="order-list">
-            <block v-for="(v,k) in list" :key="k">
-                <view @click="navGoods(v)" class="bargain-list dir-left-nowrap">
-                    <view class="box-grow-0">
-                        <image :src="v.cover_pic"></image>
-                    </view>
-
-                    <view class="box-grow-1 dir-top-nowrap bargain-right">
-                        <view class="box-grow-0 bargain-name t-omit-two">{{v.goods_name}}</view>
-                        <view class="attr t-omit">{{v.select_attr_group_text}}</view>
-                        <block v-if="v.reset_time">
-                            <view class="box-grow-1 bargain-time dir-left-nowrap cross-center">
-                                <block v-if="v.times.day > 0">
-                                    <view class='info'>{{v.times.day}}</view>
-                                    <view class="mark">天</view>
-                                </block>
-                                <view class="info">{{v.times.hour}}</view>
-                                <view class="mark">:</view>
-                                <view class="info">{{v.times.minute}}</view>
-                                <view class="mark">:</view>
-                                <view class="info">{{v.times.second}}</view>
-                                <view class="mark">后结束</view>
-                            </view>
-                            <view class="box-grow-0 dir-left-nowrap cross-center">
-                                <view class="box-grow-1 dir-top-nowrap">
-                                    <view class='min-price'>
-                                        <block v-if="v.now_price == v.min_price">已砍至最低</block>
-                                        <block v-else>离最低¥{{v.min_price}}</block>
-                                    </view>
-                                    <view class='price'>
-                                        <block v-if="v.now_price == v.min_price">¥{{v.min_price}}</block>
-                                        <block v-else>还差¥{{v.reset_price}}</block>
-                                    </view>
-                                </view>
-                                <view class="box-grow-0">
-                                    <app-button v-if="v.now_price == v.min_price" @click.native.stop="submit(v)" height="64"
-                                                width="176" color="#FFFFFF" background="#ff6700" font-size="28"
-                                                round>立即购买
-                                    </app-button>
-                                    <app-button v-else @click.native.stop="goto(v)" height="64" width="176" color="#FFFFFF"
-                                                :theme="getTheme" font-size="28" round>继续砍价
-                                    </app-button>
-                                </view>
-                            </view>
-                        </block>
-                        <block v-else>
-                            <view class="box-grow-1"></view>
-                            <view class="box-grow-0">
-                                <view class="box-grow-1 bargain-content">{{v.content}}</view>
-                                <view class="box-grow-0 price">{{v.status_content}}</view>
-                            </view>
-                        </block>
-                    </view>
-                </view>
-            </block>
-        </view>
-        <common-buttom :theme="getTheme" status="prize"></common-buttom>
-    </app-layout>
-</template>
-
-<script>
-    import commonButtom from "../common-buttom.vue";
-    import {mapGetters} from "vuex";
-
-    export default {
-        name: "order-list",
-        components: {commonButtom},
-        data() {
-            let integral;
-            return {
-                integral,
-                list: [],
-                args: false,
-                page: 1,
-                load: false,
-            }
-        },
-        computed: {
-            ...mapGetters('mallConfig',{
-                getTheme: 'getTheme',
-            }),
-        },
-        onReachBottom: function () {
-            const self = this;
-            if (self.args || self.load)
-                return;
-            self.load = true;
-            let page = self.page + 1;
-            self.$request({
-                url: self.$api.bargain.list,
-                data: {
-                    page: page,
-                }
-            }).then(info => {
-                if (info.code === 0) {
-                    [self.page, self.args] = [page, info.data.list.length === 0];
-                    self.getIntegral(self.list.concat(info.data.list));
-                }
-                self.load = false;
-            });
-        },
-
-        onShow: function () {
-            const self = this;
-            self.$showLoading();
-            self.$request({
-                url: self.$api.bargain.list,
-            }).then(info => {
-                self.$hideLoading();
-                if (info.code === 0) {
-                    self.getIntegral(info.data.list);
-                }
-                self.args = false;
-                self.page = 1;
-            }).catch(e => {
-                self.$hideLoading();
-            })
-        },
-        onUnload() {
-            clearInterval(this.integral);
-        },
-        methods: {
-            navGoods(v) {
-                uni.navigateTo({url: '/plugins/bargain/goods/goods?goods_id=' + v.goods_id});
-            },
-            goto(v) {
-                uni.navigateTo({url: "/plugins/bargain/activity/activity?id=" + v.bargain_order_id});
-            },
-            getIntegral: function (list) {
-                const self = this;
-                clearInterval(self.integral);
-                let func = function () {
-                    list.forEach((value, key, array) => {
-                        if (value.status) return;
-                        let time = value.finish_at.replace(/-/g, '/');
-                        let diff_time = parseInt((new Date(time).getTime() - new Date().getTime()) / 1000)
-                        let day = 0, hour = 0, minute = 0, second = 0;
-                        if (diff_time > 0) {
-                            day = Math.floor(diff_time / (60 * 60 * 24));
-                            hour = Math.floor(diff_time / (60 * 60)) - (day * 24);
-                            minute = Math.floor(diff_time / 60) - (day * 24 * 60) - (hour * 60);
-                            second = Math.floor(diff_time) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
-                            value.times = {day, hour, minute, second};
-                        } else {
-                            value.times = second;
-                        }
-                    });
-                    self.list = list;
-                }
-                func(list);
-                self.integral = setInterval(() => {
-                    func(list);
-                }, 1000);
-            },
-
-            submit: function (bargain) {
-                const mchList = [{
-                    "mch_id": 0,
-                    "bargain_order_id": bargain.bargain_order_id,
-                    "goods_list": [{
-                        "id": bargain.goods_id,
-                        "attr": [],
-                        "num": 1,
-                        "cart_id": 0,
-                        "goods_attr_id": bargain.goods_attr_id
-                    }]
-                }];
-
-                uni.navigateTo({
-                    url: '/pages/order-submit/order-submit?mch_list=' +
-                        JSON.stringify(mchList) +
-                        '&preview_url=' + encodeURIComponent(this.$api.bargain.order_preview) +
-                        '&submit_url=' + encodeURIComponent(this.$api.bargain.order_submit)
-                });
-            },
-        }
-
-    }
-</script>
-<style scoped lang="scss">
-    .no-content {
-        padding: #{150rpx} 0;
-        text-align: center;
-        color: #888;
-    }
-
-    .order-list {
-
-    }
-
-    .bargain-list {
-        padding: #{24rpx};
-        margin-bottom: #{8rpx};
-        background: #ffffff;
-
-        image {
-            height: #{216rpx};
-            width: #{215rpx};
-            display: block;
-        }
-
-        .bargain-right {
-            margin-left: #{20rpx};
-            min-height: #{216rpx};
-        }
-
-        .bargain-time {
-            margin: #{8rpx} 0;
-            font-size: #{26rpx};
-
-            .info {
-                width: #{45rpx};
-                height: #{38rpx};
-                background: #666666;
-                color: #FFFFFF;
-                text-align: center;
-                border-radius: #{4rpx};
-                line-height: #{38rpx};
-            }
-
-            .mark {
-                color: #666666;
-                margin: 0 #{10rpx};
-            }
-        }
-
-        .self {
-        }
-
-        .min-price {
-            color: #999999;
-            font-size: #{24rpx};
-        }
-
-        .price {
-            margin-top: #{8rpx};
-            color: #ff4544;
-            font-size: #{28rpx};
-        }
-
-        .bargain-content {
-            margin-bottom: #{64rpx};
-            color: #666666;
-            font-size: #{24rpx};
-        }
-
-        .bargain-name {
-            font-size: #{28rpx};
-            color: #353535;
-        }
-
-        .attr {
-            color: #999999;
-            margin: #{12rpx 0 16rpx 0};
-            font-size: $uni-font-size-weak-one;
-        }
-    }
-</style>

+ 0 - 85
src/plugins/bonus/about/about.vue

xqd
@@ -1,85 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="loadingOver" class="page">
-            <view class="list">提现比例分{{list.length}}个等级</view>
-            <view class="list" v-for="item in list" :key="item.id">
-                <text v-if="item.update_type == 0">分销佣金</text>
-                <text v-if="item.update_type == 1">已提现佣金</text>
-                <text v-if="item.update_type == 2">下线人数</text>
-                <text v-if="item.update_type == 3">下线分销商数</text>
-                <text v-if="item.update_type == 4">下级队长数</text>
-                <text>达到{{item.update_condition}}</text>
-                <text v-if="item.update_type > 1">人,</text>
-                <text v-if="item.update_type < 2">元,</text>
-                <text>提成等级比例为{{item.rate}}%</text>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                loadingOver: false,
-                list: []
-            }
-        },
-        computed: {
-            ...mapState({
-                userInfo: state => state.user.info,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus
-            })
-        },
-        methods: {
-            getList() {
-                this.$request({
-                    url: this.$api.bonus.member,
-                }).then(response=>{
-                    this.$hideLoading();
-                    if(response.code === 0) {
-                        this.list = response.data.list;
-                        this.loadingOver = true;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    this.$hideLoading();
-                });
-            },
-        },
-
-        onLoad() { this.$commonLoad.onload();
-            let that = this;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getList();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .page {
-        font-size:#{28rpx};
-        color:#353535;
-        position: absolute;
-        width: 100%;
-        height: 100%;
-        background-color: #fff;
-        padding: #{28rpx} 0;
-    }
-
-    .list {
-        background-color: #fff;
-        padding: 0 #{28rpx};
-    }
-</style>

+ 0 - 220
src/plugins/bonus/cash-detail/cash-detail.vue

xqd
@@ -1,220 +0,0 @@
-f<template>
-    <app-layout>
-        <app-tab-nav :tabList="tabList" background="#f7f7f7" padding="0" :border="noBorder" :activeItem="activeTab" @click="tabStatus" :theme="theme"></app-tab-nav>
-        <view v-if="list.length == 0" class="tip main-center cross-center">暂无数据</view>
-        <view v-else class="list" v-for="item in list" :key="item.id">
-            <view class="item-header">{{item.date}}</view>
-            <view class="item" v-for="list in item.list" :key="list.id">
-                <view class="type">
-                    <text v-if="list.pay_type == 'auto'">自动打款</text>
-                    <text v-if="list.pay_type == 'balance'">提现至余额</text>
-                    <text v-if="list.pay_type == 'wechat'">提现至微信</text>
-                    <text v-if="list.pay_type == 'alipay'">提现至支付宝</text>
-                    <text v-if="list.pay_type == 'bank'">提现至银行卡</text>
-                    <text :class="[`status`]">{{list.status_text}}</text></view>
-                <view>提现账户:{{list.extra.mobile}}</view>
-                <view>提现时间:{{list.time.created_at}}</view>
-                <view v-if="list.content.reject_content">驳回理由:<text style="word-wrap:break-word;">{{list.content.reject_content}}</text></view>
-                <view class="cash">
-                    <view class="cash-price">{{list.cash.price}}</view>
-                    <view>手续费{{list.cash.service_charge}}</view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                theme: {
-                    color: '#ff4544'
-                },
-                tabList: [
-                    {id:-1, name: '全部'},
-                    {id:0, name: '待审核'},
-                    {id:1, name: '待打款'},
-                    {id:2, name: '已打款'},
-                    {id:3, name: '无效'},
-                ],
-                loading: null,
-                list: [],
-                activeTab: -1,
-                noBorder: false,
-                id: null,
-                page: 2
-            }
-        },
-        components: {
-            "app-tab-nav": appTabNav,
-        },
-        computed: {
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                custom_setting: state => state.mallConfig.share_setting_custom,
-                share_setting: state => state.mallConfig.share_setting,
-            })
-        },
-        methods: {
-            open(e) {
-                this.id = e;
-            },
-
-            tabStatus(e) {
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.list = [];
-                this.page = 2;
-                this.activeTab = e.currentTarget.dataset.id;
-                this.getList();
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.detail,
-                    data: {
-                        status: that.activeTab
-                    },
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.getSetting();
-                    });
-                });
-            },
-            getMore() {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.bonus.detail,
-                    data: {
-                        status: that.activeTab,
-                        page: that.page
-                    },
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.loading = null;
-                        let more = response.data.list;
-                        if (more.length > 0) {
-                            if (that.list[that.list.length - 1].date == more[0].date) {
-                                that.list[that.list.length - 1].list = that.list[that.list.length - 1].list.concat(more[0].list);
-                                more.shift();
-                                that.list = that.list.concat(more)
-                            }else {
-                                that.list = that.list.concat(more)
-                            }
-                            that.page++;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(e => {
-                    uni.hideLoading();
-                });
-            },
-            toGoods(id) {
-                uni.navigateTo({
-                    url: '/pages/goods/goods?id=' + id
-                });
-            },
-        },
-
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getList();
-        },
-        onReachBottom() {
-            this.getMore();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        background-color: #fff;
-        margin: #{24rpx} #{24rpx} 0;
-        border-radius: #{8rpx};
-        box-shadow: rgba(0, 0, 0, .1) 0 0 #{20rpx};
-    }
-
-    .item-header {
-        color: #999999;
-        font-size: #{32rpx};
-        height: #{96rpx};
-        line-height: #{96rpx};
-        padding: 0 #{32rpx};
-    }
-
-    .list .item {
-        padding: #{32rpx};
-        font-size: #{24rpx};
-        color: #999999;
-        border-top: 1px solid #e2e2e2;
-        position: relative;
-    }
-
-    .type {
-        font-size: #{32rpx};
-        color: #353535;
-        margin-bottom: #{8rpx};
-    }
-
-    .status {
-        margin-left: #{20rpx};
-        font-size: #{24rpx};
-        padding: 0 #{10rpx};
-        border-radius: #{16rpx};
-        border: 1px solid #ff4544;
-        color: #ff4544;
-    }
-
-    .cash {
-        position: absolute;
-        top: #{50rpx};
-        right: #{32rpx};
-        text-align: right;
-    }
-
-    .cash-price {
-        font-size: #{40rpx};
-        color: #353535;
-    }
-
-    .tip {
-        width: 100%;
-        color: #999999;
-        height: #{500rpx};
-    }
-</style>

+ 0 - 648
src/plugins/bonus/cash/cash.vue

xqd
@@ -1,648 +0,0 @@
-<template>
-    <app-layout>
-        <view class="info">
-            <view class="last">可提现金额:{{captain.total_bonus ? captain.total_bonus : 0}}元</view>
-        </view>
-        <view>
-            <view class="info input-money main-between cross-center">
-                <view class="input">
-                    <input v-model="moneyInput" type="digit" placeholder-style="color:#cdcdcd"
-                           :placeholder="'请输入' + custom_setting.words.cash_money.name">
-                    <view :class="[`price`]">¥</view>
-                </view>
-            </view>
-            <view class="about"
-                  v-if="config.min_money > 0 || config.cash_service_charge > 0 || config.free_cash_min > 0 || config.free_cash_max > 0">
-                <view class="dir-left-nowrap">
-                    <view>说明:</view>
-                    <view>
-                        <view v-if="config.min_money > 0">金额不能少于¥{{config.min_money}}元</view>
-                        <view v-if="config.cash_service_charge > 0">提现需要加收{{config.cash_service_charge}}%手续费</view>
-                        <view v-if="config.free_cash_max > 0">
-                            免手续费提现金额区间为¥{{config.free_cash_min}}~¥{{config.free_cash_max}}
-                        </view>
-                    </view>
-                </view>
-            </view>
-
-            <view class="dir-left-nowrap cross-center cash-type" @click="cashTypeModel = true">
-                <view class="box-grow-1">提现方式</view>
-                <view class="box-grow-0">{{cashName}}</view>
-                <image class="box-grow-0 arrow-image" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-
-            <view v-if="mark_num==1 || mark_num ==2 || mark_num == 3" class="cash-info">
-                <view class="info content">
-                    <view class="enter" v-if="mark_num==3">开户人</view>
-                    <view class="enter" v-else>姓名</view>
-                    <input class="info-input" v-model="name" placeholder="请输入正确的姓名"></input>
-                </view>
-                <view class="info content" v-if="mark_num==3">
-                    <view class="enter">开户行</view>
-                    <input class="info-input" v-model="bank_name" placeholder="请输入正确的银行名称"></input>
-                </view>
-                <view class="info content">
-                    <view class="enter">帐号</view>
-                    <input class="info-input" v-model="mobile" v-if="mark_num==1" placeholder="请输入正确的微信帐号"></input>
-                    <input class="info-input" v-model="mobile" v-if="mark_num==2" placeholder="请输入正确的支付宝帐号"></input>
-                    <input class="info-input" v-model="mobile" v-if="mark_num==3" type="number" placeholder="请输入正确的银行卡帐号"></input>
-                </view>
-            </view>
-            <view class="submit">
-                <button @click="subscribe">提交申请</button>
-            </view>
-        </view>
-        <view class="bg" v-if="submitOver || warningInfo">
-            <view class="dialog">
-                <view class="dialog-title">提示</view>
-                <view v-if="submitOver">提现申请提交成功</view>
-                <view v-if="warningInfo">{{warningInfo}}</view>
-                <view @click="toDetail" v-if="submitOver" class="close-button">确认</view>
-                <view @click="warningInfo = false" v-if="warningInfo" class="close-button">确认</view>
-            </view>
-        </view>
-        <app-cash-model
-                :is-auto="pay_type.auto"
-                :is-wx="pay_type.wechat"
-                :is-alipay="pay_type.alipay"
-                :is-bank="pay_type.bank"
-                :is-balance="pay_type.balance"
-                :pay-type="cashType"
-                @change="payTypeChange"
-                v-model="cashTypeModel"
-        ></app-cash-model>
-    </app-layout>
-</template>
-
-<script>
-    import appCashModel from "../../../components/page-component/app-cash-model/app-cash-model.vue"
-    import {mapState} from "vuex";
-
-    export default {
-        data() {
-            return {
-                cashTypeModel: false,
-                visible: false,
-                moneyInput: '',
-                mark_num: -1,
-                captain: {},
-                moneyInput: '',
-                pay_type: {
-                    auto: false,
-                    alipay: false,
-                    wechat: false,
-                    bank: false,
-                    balance: false,
-                },
-                warningInfo: '',
-                submitOver: false,
-                template_message: [],
-                config: [],
-                getMoney: null,
-                cashType: '',
-            }
-        },
-        components: {
-            appCashModel,
-        },
-        computed: {
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                custom_setting: state => state.mallConfig.share_setting_custom,
-                share_setting: state => state.mallConfig.share_setting,
-            }),
-            cashName() {
-                switch (this.cashType) {
-                    case 'auto':
-                        // #ifdef MP-WEIXIN
-                        return '微信零钱';
-                        // #endif
-                        // #ifdef MP-ALIPAY
-                        return '支付宝余额';
-                        // #endif
-                        // #ifndef MP-WEIXIN || MP-ALIPAY
-                        return '自动';
-                    // #endif
-                    case 'wx':
-                        return '微信线下打款';
-                    case 'alipay':
-                        return '支付宝线下打款';
-                    case 'bank':
-                        return '银联线下打款';
-                    case 'balance':
-                        return '商城余额';
-                    default:
-                        return;
-                        break;
-                }
-            },
-        },
-        methods: {
-            payTypeChange(value) {
-                this.cashType = value;
-                switch (value) {
-                    case 'auto':
-                        this.mark_num = 0;
-                        break;
-                    case 'wx':
-                        this.mark_num = 1;
-                        break;
-                    case 'alipay':
-                        this.mark_num = 2;
-                        break;
-                    case 'bank':
-                        this.mark_num = 3;
-                        break;
-                    case 'balance':
-                        this.mark_num = 4;
-                        break;
-                    default:
-                        this.mark_num = -1;
-                        break;
-                }
-            },
-
-            subscribe() {
-                if (this.mark_num == -1) {
-                    uni.showToast({title: '请选择提现方式', icon: 'none'});
-                    return;
-                }
-                this.$subscribe(this.template_message).then(res => {
-                    this.submit();
-                }).catch(res => {
-                    this.submit();
-                });
-            },
-            submit() {
-                let that = this;
-                let para = {
-                    price: that.moneyInput,
-                    type: 'auto'
-                };
-                if(that.mark_num == 4) {
-                    para.type = 'balance';
-                } else if(that.mark_num == 0) {
-                    para.type = 'auto';
-                } else {
-                    para.name = that.name;
-                    para.mobile = that.mobile;
-                    if (that.mark_num == 1) {
-                        para.type = 'wechat';
-                    }
-                    if (that.mark_num == 2) {
-                        para.type = 'alipay';
-                    }
-                    if (that.mark_num == 3) {
-                        para.type = 'bank';
-                        para.bank_name = that.bank_name;
-                    }
-                }
-                that.$request({
-                    url: that.$api.bonus.cash,
-                    data: para,
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.submitOver = true;
-                    }else {
-                        that.warningInfo = response.msg;
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            toDetail() {
-                this.submitOver = false;
-                uni.redirectTo({
-                    url: '/plugins/bonus/cash-detail/cash-detail'
-                });
-            },
-
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.status,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.captain = response.data.captain;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            setting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    that.$hideLoading();
-                    that.getStatus();
-                    if(response.code == 0) {
-                        that.config = response.data.list;
-                        that.template_message = response.data.list.template_message_withdraw;
-                        for (let i = 0; i < that.config.pay_type.length; i++) {
-                            switch (that.config.pay_type[i]) {
-                                case "auto":
-                                    that.pay_type.auto = true;
-                                    //that.mark_num = 0;
-                                    break;
-                                case "alipay":
-                                    that.pay_type.alipay = true;
-                                    //that.mark_num = 2;
-                                    break;
-                                case "wechat":
-                                    that.pay_type.wechat = true;
-                                    //that.mark_num = 1;
-                                    break;
-                                case "balance":
-                                    that.pay_type.balance = true;
-                                    //that.mark_num = 4;
-                                    break;
-                                case "bank":
-                                    that.pay_type.bank = true;
-                                    //that.mark_num = 3;
-                                    break;
-                            }
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            if (options.money > 0) {
-                that.money = options.money;
-            };
-            that.setting();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .cash-type {
-        height: #{120rpx};
-        background: white;
-        color: #353535;
-        font-size: #{32rpx};
-        padding: 0 #{24rpx};
-        margin-top: #{24rpx};
-
-        .arrow-image {
-            width: #{12rpx};
-            height: #{24rpx};
-            display: block;
-            margin-left: #{12rpx};
-        }
-    }
-
-    .cash-info {
-        margin-top: #{20rpx};
-    }
-
-    .info {
-        background-color: #fff;
-        padding: #{32rpx} #{24rpx};
-        border-bottom: #{1rpx} solid #e2e2e2;
-        color: #353535;
-    }
-
-    .info.input-money {
-        border-bottom: 0;
-    }
-
-    .info.cash-type {
-        margin: #{20rpx} 0;
-        padding: #{32rpx} 0;
-    }
-
-    .last {
-        font-size: #{40rpx};
-        margin-bottom: #{15rpx};
-    }
-
-    .last-info {
-        font-size: #{24rpx};
-        color: #666;
-    }
-
-    .last-info view {
-        float: left;
-        height: #{44rpx};
-        line-height: #{44rpx};
-    }
-
-    .last-info .show-tip {
-        color: #666;
-        display: inline-block;
-        background-color: #fff;
-        font-size: #{24rpx};
-        padding: 0 #{12rpx};
-        height: #{44rpx};
-        line-height: #{44rpx};
-        border-radius: #{22rpx};
-        border: #{1rpx} solid #e2e2e2;
-    }
-
-    .last-info button::after {
-        border: 0;
-    }
-
-    .price {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        font-size: #{46rpx};
-        position: absolute;
-        left: 0;
-        top: 0;
-        color: #ff4544;
-    }
-
-    .all {
-        color: #666;
-    }
-
-    .input {
-        font-size: #{36rpx};
-        height: #{80rpx};
-        line-height: #{80rpx};
-        width: 70%;
-        padding-left: #{50rpx};
-        position: relative;
-    }
-
-    .input input {
-        height: #{80rpx};
-        line-height: #{80rpx};
-    }
-
-    .about {
-        font-size: #{24rpx};
-        padding: #{32rpx} #{24rpx} #{12rpx};
-        color: #666;
-    }
-
-    .icon {
-        height: #{40rpx};
-        width: #{40rpx};
-        margin-right: #{16rpx};
-        display: flex;
-        justify-content: center;
-    }
-
-    .mode-item {
-        width: #{200rpx};
-        border: #{1rpx} solid #999;
-        text-align: center;
-        padding: 0 #{24rpx};
-        height: #{66rpx};
-        line-height: #{66rpx};
-        border-radius: #{33rpx};
-        display: flex;
-        align-items: center;
-        margin: #{10rpx} #{24rpx};
-        font-size: #{30rpx};
-        position: relative;
-    }
-
-    .mode-title {
-        margin-bottom: #{25rpx};
-        padding-left: #{24rpx};
-        font-size: #{34rpx};
-    }
-
-    .enter {
-        color: #353535;
-        float: left;
-        width: #{100rpx};
-        height: #{56rpx};
-        line-height: #{56rpx};
-        font-size: #{32rpx};
-    }
-
-    .content {
-        height: #{120rpx};
-    }
-
-    .info-input {
-        font-size: #{32rpx};
-        height: #{56rpx};
-        padding: 0 #{32rpx};
-    }
-
-
-    .on-active {
-        height: #{32rpx};
-        width: #{32rpx};
-        position: absolute;
-        right: 0;
-        bottom: 0;
-    }
-
-    .submit {
-        margin-top: #{40rpx};
-    }
-
-    .submit button {
-        height: #{80rpx};
-        border-radius: #{40rpx};
-        line-height: #{80rpx};
-        width: 90%;
-        margin: 0 auto;
-        color: #fff;
-        font-size: #{32rpx};
-        background-color: #ff4544;
-    }
-
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        height: 100%;
-        width: 100%;
-        background-color: rgba(0, 0, 0, .3);
-        z-index: 10;
-    }
-
-    .dialog {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: 10px;
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .dialog-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-
-    .dialog-btn {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-close,.dialog-submit {
-        width: 50%;
-    }
-
-    .line {
-        height: #{44rpx};
-        margin-top: #{22rpx};
-        width: #{1rpx};
-        background-color: #e2e2e2;
-    }
-
-    .dialog-submit {
-        color: #ff4544;
-    }
-
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: 100%;
-        width: 100%;
-        z-index: 20;
-        background-color: rgba(0, 0, 0, 0.3);
-    }
-
-    .dialog {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: 10px;
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .close-button {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        color: #ff4544;
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-    // 经典红
-    $classic-red-main-color: #ff4544;
-    $classic-red-secondary-color: #f39800;
-
-    // 活力黄
-    $vibrant-yellow-main-color: #fcc600;
-    $vibrant-yellow-secondary-color: #555555;
-
-    // 浪漫粉
-    $romantic-powder-main-color: #ff547b;
-    $romantic-powder-secondary-color: #ffe6e8;
-
-    // 流光金
-    $streamer-gold-main-color: #ddb766;
-    $streamer-gold-secondary-color: #f0ebd8;
-
-    // 优雅紫
-    $elegant-purple-main-color: #7783ea;
-    $elegant-purple-secondary-color: #e9ebff;
-
-    // 品味红
-    $taste-red-main-color: #ff4544;
-    $taste-red-secondary-color: #555555;
-
-    // 清醒绿
-    $fresh-green-main-color: #63be72;
-    $fresh-green-secondary-color: #e1f4e3;
-
-    // 商务蓝
-    $business-blue-main-color: #4a90e2;
-    $business-blue-secondary-color: #dbe9f9;
-
-    // 纯粹黑
-    $pure-black-main-color: #333333;
-    $pure-black-secondary-color: #dedede;
-
-    // 热情红
-    $passionate-red-main-color: #ff4544;
-    $passionate-red-secondary-color: #ffdada;
-
-    .classic-red-border {
-      border-color: $classic-red-main-color;
-    }
-
-    .vibrant-yellow-border {
-      border-color: $vibrant-yellow-main-color;
-    }
-
-    .romantic-powder-border {
-      border-color: $romantic-powder-main-color;
-    }
-
-    .streamer-gold-border {
-      border-color: $streamer-gold-main-color;
-    }
-
-    .elegant-purple-border {
-      border-color: $elegant-purple-main-color;
-    }
-
-    .taste-red-border {
-      border-color: $taste-red-main-color;
-    }
-
-    .fresh-green-border {
-      border-color: $fresh-green-main-color;
-    }
-
-    .business-blue-border {
-      border-color: $business-blue-main-color;
-    }
-
-    .pure-black-border {
-      border-color: $pure-black-main-color;
-    }
-
-    .passionate-red-border {
-      border-color: $passionate-red-main-color;
-    }
-</style>

BIN
src/plugins/bonus/image/check.png


BIN
src/plugins/bonus/image/progress.png


BIN
src/plugins/bonus/image/refuse.png


BIN
src/plugins/bonus/image/shop-price-less.png


BIN
src/plugins/bonus/image/shop-price-plus.png


+ 0 - 960
src/plugins/bonus/index/index.vue

xqd
@@ -1,960 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="captain.status == 1 && captain.is_delete != 1">
-            <view class="user-info">
-                <view class="main-between user-name">
-                    <view class="cross-center">
-                        <image class="avatar" :src='captain.avatar'></image>
-                        <view class="t-omit">{{captain.user.nickname}}</view>
-                    </view>
-                    <view class="cross-center rate">
-                        <text>{{setting.form && setting.form.rate?setting.form.rate:'分红比例'}}{{captain.level ? captain.level.rate: setting.bonus_rate}}%</text>
-                        <view class="rate-icon" @click="toAbout">
-                            <image src="https://shop.9026.com/web/statics/image/mall/static/icon/question.png"></image>
-                        </view>
-                    </view>
-                </view>
-                <view class="dir-left-nowrap user-bonus">
-                    <view @click="toStatics" class="user-bonus-item">
-                        <view>
-                            <text>{{captain.all_bonus}}</text>元
-                        </view>
-                        <view>{{setting.form && setting.form.total_bonus?setting.form.total_bonus:'累计分红金额'}}
-                            <image class="right-arrow" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right-white.png"></image>
-                        </view>
-                    </view>
-                    <view class="user-bonus-item">
-                        <view>
-                            <text>{{captain.expect_bonus}}</text>元
-                        </view>
-                        <view>{{setting.form && setting.form.expect_bonus?setting.form.expect_bonus:'预计分红金额'}}</view>
-                    </view>
-                </view>
-            </view>
-            <view @click="toDetail">
-                <view class="main-between bonus-item cash-bonus">
-                    <view>{{setting.form && setting.form.cashd_bonus?setting.form.cashd_bonus:'已提现分红'}}</view>
-                    <view class="bonus-price">
-                        <text>{{captain.cash_bonus}}</text>元
-                        <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-                    </view>
-                </view>
-            </view>
-            <view class="main-between bonus-item total-bonus">
-                <view>
-                    <view class="bonus-price">
-                        <text>{{captain.total_bonus}}</text>元
-                    </view>
-                    <view>{{setting.form && setting.form.can_cash_bonus?setting.form.can_cash_bonus:'可提现分红'}}</view>
-                </view>
-                <view>
-                    <view @click="toCash" class="cash-btn">
-                        <button>提现</button>
-                    </view>
-                </view>
-            </view>
-            <view @click="toOrder">
-                <view class="dir-left-nowrap cross-center bonus-item cash-bonus order-item">
-                    <image class="order-icon" :src="bonusImg.order"></image>
-                    <view class="main-between">
-                        <view>{{setting.form && setting.form.orders?setting.form.orders:'分红订单'}}</view>
-                        <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-                    </view>
-                </view>
-            </view>
-            <view @click="toMember">
-                <view class="dir-left-nowrap cross-center bonus-item cash-bonus member-item">
-                    <image :src="bonusImg.member"></image>
-                    <view class="main-between">
-                        <view>{{setting.form && setting.form.members?setting.form.members:'队员'}}</view>
-                        <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <view v-else style="position: absolute;width: 100%;height: 100%;background-color: #fff;">
-            <image load-lazy="true" class="banner" v-if="(captain.status != 1 && captain.status > -2) || captain.is_delete == 1" :src="setting.bg_url"></image>
-            <view class="apply-area" v-if="toApply && captain.status != 0 && captain.is_delete != 1">
-                <view class="apply">
-                    <view class="apply-input" style="border-top:0">欢迎申请{{setting.form && setting.form.title ? setting.form.title : '团队分红'}},请填写申请信息</view>
-                    <view class="apply-input dir-left-nowrap">
-                        <view class="label">姓名</view>
-                        <input v-model="name" placeholder="请填写真实姓名" placeholder-style="color:#cdcdcd"></input>
-                    </view>
-                    <view class="apply-input dir-left-nowrap">
-                        <view class="label">手机号</view>
-                        <input v-model="mobile" type="number" placeholder="请填写手机号" placeholder-style="color:#cdcdcd"></input>
-                    </view>
-                    <view class="apply-input" v-if="setting.is_agreement == 1">
-                        <view class="read" @click="read=!read">
-                            <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-uncheck.png" v-if="read == false"></image>
-                            <image class="check-red" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-checkbox-checked.png" v-else></image>
-                        </view>
-                        我已经阅读并了解
-                        <text style="color:#014c8c" @click="protocol=setting.agreement_content">《{{setting.agreement_title}}》</text>
-                    </view>
-                </view>
-                <view @click="subscribe" class="apply-sumbit be-apply">
-                    <button>申请成为队长</button>
-                </view>
-            </view>
-            <image v-if="toApply && captain.status != 0 && captain.is_delete != 1" :style="{'height':`${height}px`}" @load="imageLoad" class="rights" :src="setting.form.bottom_bg_url"></image>
-            <view v-if="wait" class="wait">
-                <image :src="bonusImg.wait"></image>
-                <view>谢谢您的支持,请等待审核...</view>
-                <view @click="toIndex" class="apply-sumbit to-mall">
-                    <button>去商城逛逛</button>
-                </view>
-            </view>
-            <view v-if="pass && !toApply && captain.status != 1" class="wait is-pass">
-                <image :src="bonusImg.success"></image>
-                <view>
-                    <view class="is-pass-text">您已达到成为队长条件</view>
-                    <view v-if="check.all_members > -1">{{setting.form && setting.form.become_name ? setting.form.become_name : '下线'}}:{{check.condition}}人</view>
-                    <view v-if="check.all_shares > -1">{{setting.form && setting.form.become_name ? setting.form.become_name : '下线分销商'}}:{{check.condition}}人</view>
-                    <view v-if="check.total_money > -1">{{setting.form && setting.form.become_name ? setting.form.become_name : '累计佣金'}}:¥{{check.condition}}元</view>
-                    <view v-if="check.cash_money > -1">{{setting.form && setting.form.become_name ? setting.form.become_name : '已提现佣金'}}:¥{{check.condition}}元</view>
-                </view>
-                <view @click="toApply=!toApply" class="apply-sumbit to-apply">
-                    <button>立即申请成为队长</button>
-                </view>
-            </view>
-            <view v-if="pass == false">
-                <image class="check-img" src="./../image/check.png"></image>
-                <view class="check-tip">您未达到成为队长条件</view>
-                <view class="check-status" v-if="check.cash_money > -1">还差
-                    <text>¥{{other}}</text>{{setting.form && setting.form.become_name ? setting.form.become_name : "已提现佣金"}}成为队长</view>
-                <view class="check-status" v-if="check.total_money > -1">还差
-                    <text>¥{{other}}</text>{{setting.form && setting.form.become_name ? setting.form.become_name : "累计佣金"}}成为队长</view>
-                <view class="check-status" v-if="check.all_shares > -1">还差
-                    <text>{{other}}</text>个{{setting.form && setting.form.become_name ? setting.form.become_name : "下线分销商"}}成为队长</view>
-                <view class="check-status" v-if="check.all_members > -1">还差
-                    <text>{{other}}</text>个{{setting.form && setting.form.become_name ? setting.form.become_name : "下线"}}成为队长</view>
-                <view class="progress">
-                    <view :style="{'width': `${rate}%`,'backgroundImage':`url(${bonusImg.progress})`}"></view>
-                </view>
-                <view class="main-between progress-text">
-                    <view v-if="check.cash_money > -1">已有{{setting.form && setting.form.become_name ? setting.form.become_name : "已提现佣金"}}¥{{check.cash_money}}</view>
-                    <view v-if="check.total_money > -1">已有{{setting.form && setting.form.become_name ? setting.form.become_name : "累计佣金"}}¥{{check.total_money}}</view>
-                    <view v-if="check.all_shares > -1">已有{{setting.form && setting.form.become_name ? setting.form.become_name : "下线分销商"}}{{check.all_shares}}人</view>
-                    <view v-if="check.all_members > -1">已有{{setting.form && setting.form.become_name ? setting.form.become_name : "下线"}}{{check.all_members}}人</view>
-                    <view v-if="check.cash_money > -1 || check.total_money > -1">¥{{check.condition}}</view>
-                    <view v-if="check.all_shares > -1|| check.all_members > -1">{{check.condition}}人</view>
-                </view>
-            </view>
-            <view v-if="captain.status == 2 || captain.is_delete == 1" class="refuse">
-                <image src="./../image/refuse.png"></image>
-                <view v-if="captain.status == 2 && captain.is_delete == 0">您的申请被拒</view>
-                <view v-if="captain.is_delete == 1 && captain.status == 1">您被解除队长身份</view>
-                <view class="refuse-info">
-                    <view>审核时间:
-                        <text>{{captain.apply_at}}</text>
-                    </view>
-                    <view class="refuse-reason" v-if="captain.status == 2">拒绝理由:
-                        <text style="word-wrap:break-word;">{{captain.reason ? captain.reason :"无"}}</text>
-                    </view>
-                    <view class="refuse-reason" v-if="captain.is_delete == 1 && captain.status == 1">解除理由:
-                        <text style="word-wrap:break-word;">{{captain.reason ? captain.reason :"无"}}</text>
-                    </view>
-                    <view @click="reApply" class="apply-sumbit to-mall">
-                        <button>再次申请</button>
-                    </view>
-                </view>
-            </view>
-        </view>
-
-        <!-- 分红协议(modal模式) -->
-        <view class="modal" v-if="protocol">
-            <view class="protocol">
-                <view class="protocol-name">{{setting.agreement_title}}</view>
-                <view class="protocol-content">
-                    <app-rich-text :content="protocol"></app-rich-text>
-                </view>
-                <view @click="protocol=null;read=true">
-                    <view class="read-over">我已阅读</view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appRichText from "../../../components/basic-component/app-rich/parse.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                read: false,
-                toApply: false,
-                name: '',
-                mobile: '',
-                height: 0,
-                pass: null,
-                check: {},
-                rate: 0,
-                other: 0,
-                protocol: null,
-                setting: '',
-                template_message: [],
-                wait: false,
-                first: false,
-                captain: {
-                    status: 5
-                }
-            }
-        },
-        components: {
-            "app-rich-text": appRichText
-        },
-        computed: {
-            ...mapState({
-                userInfo: state => state.user.info,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus
-            })
-        },
-        methods: {
-            toDetail() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/cash-detail/cash-detail'
-                }); 
-            },
-
-            toIndex() {
-                uni.navigateTo({
-                    url: '/pages/index/index'
-                }); 
-            },
-
-            toCash() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/cash/cash'
-                }); 
-            },
-
-            toStatics() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/statics/statics'
-                }); 
-            },
-
-            toAbout() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/about/about'
-                }); 
-            },
-
-            toOrder() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/order/order'
-                }); 
-            },
-
-            toMember() {
-                uni.navigateTo({
-                    url: '/plugins/bonus/memeber/memeber'
-                }); 
-            },
-
-
-            imageLoad: function (e) {
-                var $width = e.detail.width; //获取图片真实宽度
-                var $height = e.detail.height; //获取图片真实高度
-                this.height = $height * (750 / $width) / 2
-            },
-
-            subscribe() {
-                let that = this;
-                let is_agree = 0;
-                if(that.read) {
-                    is_agree = 1;   
-                }else {
-                    uni.showToast({
-                        title: '请先查看' + that.setting.agreement_title +'并同意',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    return false;
-                }
-                if(that.name && that.mobile) {
-                    if(that.mobile.length == 11 && (/0?(1)[0-9]{10}/.test(that.mobile))) {
-                        this.$subscribe(this.template_message).then(res => {
-                            this.submit(is_agree);
-                        }).catch(res => {
-                            this.submit(is_agree);
-                        });
-                    }else {
-                        uni.showToast({
-                            title: '请输入正确的手机号码',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }else {
-                    uni.showToast({
-                        title: '请完善申请信息',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                }
-                // this.$subscribe(this.template_message).then(res => {
-                //     this.submit();
-                // }).catch(res => {
-                //     this.submit();
-                // });
-            },
-            submit(is_agree) {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.apply,
-                    data: {
-                        name: that.name,
-                        mobile: that.mobile,
-                        is_agree: is_agree
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        uni.showToast({
-                            title: response.msg,
-                            duration: 1000
-                        });
-                        setTimeout(function() {
-                            that.getStatus();
-                            that.wait = true;
-                        }, 500)
-                    }else {
-                        if (response.msg == '请先查看团队分红申请协议并同意') {
-                            response.msg = '请先查看' + that.setting.agreement_title +'并同意'
-                        }
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                }); 
-            },
-
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.setting = response.data.list;
-                        that.template_message = response.data.list.template_message_captain;
-                        if (that.setting.form && that.setting.form.title) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.title,
-                            })
-                        }else {
-                            uni.setNavigationBarTitle({
-                                title: '团队分红',
-                            })
-                        }
-                        if (that.setting.is_agreement == 0) {
-                            that.read = true;
-                        }
-                        if (that.setting.bg_url == 'statics/img/app/bonus/banner.png') {
-                            that.setting.bg_url = that.bonusImg.banner
-                        }
-                        if (that.setting.form.bottom_bg_url == 'statics/img/app/bonus/right.png') {
-                            that.setting.form.bottom_bg_url = that.bonusImg.right
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            getCheck() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.index,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.check = response.data;
-                        that.pass = response.data.pass;
-                        if(response.data.to_apply) {
-                            toApply = response.data.to_apply
-                        }
-                        let other;
-                        let rate;
-                        if (that.check.total_money > -1) {
-                            other = (that.check.condition - (+that.check.total_money)).toFixed(2)
-                            rate = (+that.check.total_money) / that.check.condition * 100
-                        }
-                        if (that.check.cash_money > -1) {
-                            other = (that.check.condition - (+that.check.cash_money)).toFixed(2)
-                            rate = (+that.check.cash_money) / that.check.condition * 100
-                        }
-                        if (that.check.all_shares > -1) {
-                            other = that.check.condition - (+that.check.all_shares)
-                            rate = (+that.check.all_shares) / that.check.condition * 100
-                        }
-                        if (that.check.all_members > -1) {
-                            other = that.check.condition - (+that.check.all_members)
-                            rate = (+that.check.all_members) / that.check.condition * 100
-                        }
-                        that.other = other;
-                        that.rate = rate;
-                        that.captain.status = 5;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        if (e.data.msg == '你不是分销商') {
-                        setTimeout(function(){
-                                uni.redirectTo({
-                                    url: '/pages/index/index'
-                                })
-                            },1000)
-                        } else {
-                            that.getSetting();
-                            that.pass = true;
-                            that.captain.status = 5;
-                            captain.status = 5;
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.$store.dispatch('user/info');
-                        that.getStatus();
-                    });
-                });
-            },
-
-            reApply() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.clear,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.name = '';
-                        that.mobile = '';
-                        that.getCheck();
-                        if (that.setting.become_type != 0) {
-                            that.captain = {}
-                        }else {
-                            that.captain = {}
-                            that.captain.status = 5
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.status,
-                }).then(response=>{
-                    that.$hideLoading();
-                    that.getSetting();
-                    if(response.code == 0) {
-                        that.wait = false;
-                        that.captain = response.data.captain;
-                        if (that.captain.status == 0) {
-                            that.wait = true;
-                        } else if (that.captain.status == -1) {
-                            that.getCheck();
-                        }
-                        if (that.captain.status == 1) {
-                            that.toApply = false
-                        }
-                    }else {
-                        if (response.msg == '用户未申请队长') {
-                            that.getCheck();
-                        }else {
-                            uni.showToast({
-                                title: response.msg,
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.$store.dispatch('user/info');
-                        that.getStatus();
-                    });
-                });
-            },
-        },
-
-        onLoad() { this.$commonLoad.onload();
-            this.$store.dispatch('user/info');
-        },
-
-        onReady() {
-            this.getStatus();
-            this.first = true;
-        },
-
-        onShow() {
-            if(this.first) {
-                this.pass = null;
-                this.toApply = false;
-                this.read = false;
-                if(this.captain.status != 1) {
-                    this.captain = {};
-                }
-                this.getStatus();
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .banner {
-        height: #{360rpx};
-        width: 100%;
-        display: block;
-    }
-
-    .apply {
-        background-color: #fff;
-        padding: 0 #{24rpx};
-        margin-bottom: #{24rpx};
-    }
-
-    .apply-input {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        font-size: #{28rpx};
-        color: #353535;
-    }
-
-    .apply-input .label {
-        width: #{126rpx};
-    }
-
-    .apply-area {
-        background-color: #f7f7f7;
-        padding: #{20rpx} 0 #{24rpx};
-    }
-
-    input {
-        border: 0;
-        width: #{560rpx};
-        height: #{60rpx};
-        line-height: #{60rpx};
-        margin-top: #{10rpx};
-    }
-
-    .read {
-        width: #{42rpx};
-        height: #{80rpx};
-        float: left;
-        padding-top: #{24rpx};
-        padding-right: #{10rpx};
-    }
-
-    .read image {
-        height: #{32rpx};
-        width: #{32rpx};
-        display: block;
-    }
-
-    .apply-sumbit {
-        margin: 0 auto;
-    }
-
-    .apply-sumbit button {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        width: #{702rpx};
-        margin: 0 auto;
-        border-radius: #{40rpx};
-        background-color: #ff4544;
-        color: #fff;
-        font-size: #{32rpx};
-        text-align: center;
-    }
-
-    .apply-sumbit.be-apply {
-        width: #{702rpx};
-    }
-
-    .apply-sumbit.to-mall,.apply-sumbit.to-mall button {
-        width: #{320rpx};
-    }
-
-    .apply-sumbit.to-apply,.apply-sumbit.to-apply button {
-        width: #{440rpx};
-    }
-
-    .rights {
-        width: 100%;
-    }
-
-    .wait {
-        color: #666;
-        font-size: #{32rpx};
-        text-align: center;
-    }
-
-    .wait view {
-        margin-bottom: #{68rpx};
-    }
-
-    .wait.is-pass view{
-        margin-bottom: 0;
-    }
-
-    .wait.is-pass image{
-        height:#{320rpx};
-        width:#{420rpx};
-        margin:#{40rpx} auto;
-    }
-
-    .wait.is-pass>view {
-        padding-bottom: #{33rpx};
-        font-size:#{28rpx};
-    }
-
-    .wait.is-pass .is-pass-text {
-        font-size: #{36rpx};
-        color:#353535;
-    }
-
-    .wait image {
-        height: #{270rpx};
-        width: #{380rpx};
-        margin: #{120rpx} auto #{60rpx};
-    }
-
-    .check-img {
-        height: #{160rpx};
-        width: #{160rpx};
-        margin: #{80rpx} auto #{40rpx};
-        display: block;
-    }
-
-    .check-tip {
-        font-size: #{36rpx};
-        color: #353535;
-        text-align: center;
-        margin-bottom: #{14rpx};
-    }
-
-    .check-status {
-        font-size: #{28rpx};
-        color: #666;
-        text-align: center;
-    }
-
-    .check-status text {
-        font-size: #{40rpx};
-        font-family: DIN;
-        color: #ff8f17;
-        margin-right: #{8rpx};
-    }
-
-    .progress {
-        width: #{600rpx};
-        background-color: #f0f0f0;
-        border-radius: #{20rpx};
-        height: #{40rpx};
-        margin: #{40rpx} auto 0;
-        position: relative;
-    }
-
-    .progress view {
-        border-radius: #{20rpx};
-        height: #{40rpx};
-        position: absolute;
-        top: 0;
-        left: 0;
-        z-index: 2;
-    }
-
-    .progress-text {
-        margin: #{16rpx} auto 0;
-        color: #999;
-        font-size: #{26rpx};
-        width: #{600rpx};
-    }
-
-    .refuse image {
-        height: #{160rpx};
-        width: #{160rpx};
-        margin: #{80rpx} auto #{40rpx};
-    }
-
-    .refuse {
-        font-size: #{36rpx};
-        color: #353535;
-        text-align: center;
-    }
-
-    .refuse view {
-        margin-bottom:#{25rpx};
-    }
-
-    .refuse-reason {
-        margin:#{10rpx} 0 #{76rpx};
-    }
-
-    .refuse-info {
-        font-size: #{28rpx};
-        color: #999;
-        border-top: #{1rpx} solid #e2e2e2;
-        width: #{520rpx};
-        margin: 0 auto;
-        margin-bottom: 0;
-        padding-top: #{30rpx};
-        padding-left: #{20rpx};
-        text-align: left;
-    }
-
-    .refuse-info text {
-        color: #666;
-    }
-
-    .user-info {
-        margin: #{24rpx};
-        width: #{702rpx};
-        padding: #{40rpx};
-        background: linear-gradient(to bottom, #ff7757, #ff6362);
-        border-radius: #{16rpx};
-        font-size: #{36rpx};
-        color: #fff;
-    }
-
-    .user-info .avatar {
-        height: #{80rpx};
-        width: #{80rpx};
-        margin-right: #{28rpx};
-        border-radius: 50%;
-        border: #{2rpx} solid #fff;
-    }
-
-    .user-info .user-name {
-        height: #{80rpx};
-        line-height:#{80rpx};
-        margin-bottom: #{35rpx};
-    }
-
-    .user-info .avatar+view {
-        width: #{300rpx};
-    }
-
-    .rate {
-        font-size:#{26rpx};
-    }
-
-    .rate image {
-        height:#{28rpx};width:#{28rpx};display:block;
-    }
-
-    .rate-icon {
-        height:#{28rpx};
-        width:#{28rpx};
-        margin-left:#{12rpx};
-        display:block;
-    }
-
-    .user-bonus {
-        font-size: #{24rpx};
-    }
-
-    .user-bonus .user-bonus-item {
-        width: #{320rpx};
-    }
-
-    .user-bonus .user-bonus-item view:first-of-type {
-        font-size: #{28rpx};
-    }
-
-    .user-bonus .user-bonus-item text {
-        font-size: #{48rpx};
-        font-family: DIN;
-    }
-
-    .right-arrow {
-        height:#{14rpx};
-        width:#{8rpx};
-        margin-left:#{8rpx};
-    }
-
-    .bonus-item {
-        background-color: #fff;
-        font-size: #{28rpx};
-        color: #999;
-        border-radius: #{16rpx};
-        width: #{702rpx};
-        margin: 0 #{24rpx} #{16rpx};
-    }
-
-    .bonus-item.cash-bonus {
-        height: #{100rpx};
-        line-height: #{100rpx};
-        padding: 0 #{40rpx};
-    }
-
-    .bonus-item.total-bonus {
-        padding: #{32rpx} #{40rpx};
-        height: #{144rpx};
-    }
-
-    .bonus-item.cash-bonus .bonus-price image {
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-left:#{16rpx};
-    }
-
-    .total-bonus .bonus-price {
-        margin-bottom:#{8rpx};
-        margin-top: #{-8rpx};
-    }
-
-    .bonus-price {
-        color: #353535;
-    }
-
-    .bonus-price text {
-        font-size: #{36rpx};
-        font-family: DIN;
-    }
-
-    .cash-btn button {
-        height: #{48rpx};
-        width: #{96rpx};
-        line-height: #{46rpx};
-        border-radius: #{24rpx};
-        border: #{1rpx} solid #ff4544;
-        color: #ff4544;
-        font-size: #{24rpx};
-        text-align: center;
-        margin-top: #{14rpx};
-        padding: 0;
-        background-color: #fff;
-    }
-
-    .cash-btn button::after {
-        border: 0
-    }
-
-    .order-item {
-        margin-bottom: 0;
-        border-bottom-left-radius: 0;
-        border-bottom-right-radius: 0;
-    }
-
-    .order-icon {
-        height:#{40rpx};
-        width:#{40rpx};
-        margin-right:#{32rpx};
-    }
-
-    .order-icon+view {
-        width:#{590rpx};
-    }
-
-    .order-icon+view image{
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-top:#{40rpx};
-    }
-
-    .member-item {
-        border-top-left-radius: 0;
-        border-top-right-radius: 0;
-    }
-
-    .member-item>image {
-        height:#{40rpx};
-        width:#{40rpx};
-        margin-right:#{32rpx};
-    }
-
-    .member-item .main-between {
-        width:#{590rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-    }
-
-    .member-item .main-between image {
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-top:#{40rpx};
-    }
-
-    .modal {
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: 100%;
-        width: 100%;
-        z-index: 99;
-        background-color: rgba(0, 0, 0, 0.3);
-    }
-
-    .protocol {
-        position: relative;
-        z-index: 99;
-        background-color: #fff;
-        width: 80%;
-        border-radius: #{20rpx};
-        margin: #{100rpx} auto;
-    }
-
-    .protocol-name {
-        text-align: center;
-        height: #{100rpx};
-        line-height: #{100rpx};
-        color: #666;
-    }
-
-    .protocol-content {
-        padding: #{10rpx} #{20rpx};
-        height: #{720rpx};
-        overflow: auto;
-        color: #353535;
-    }
-
-    .read-over {
-        height: #{100rpx};
-        text-align: center;
-        line-height: #{100rpx};
-        background-color: #ff4544;
-        color: #fff;
-        font-size: #{30rpx};
-        border-bottom-right-radius: #{20rpx};
-        border-bottom-left-radius: #{20rpx};
-    }
-
-    .protocol image {
-        height: #{200rpx};
-        width: #{200rpx};
-    }.check-red {
-        background: #ff4544;
-         }
-</style>

+ 0 - 355
src/plugins/bonus/memeber/memeber.vue

xqd
@@ -1,355 +0,0 @@
-<template>
-    <app-layout>
-        <view class="search">
-            <view @click='beSearch' v-if="!toSearch" class="main-center search-content cross-center">
-                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-search.png"></image>
-                <text>搜索</text>
-            </view>
-            <view v-else class="dir-left-nowrap cross-center search-area">
-                <view class="search-input">
-                    <image src='https://shop.9026.com/web/statics/image/mall/static/icon/icon-search.png'></image>
-                    <input focus class="box-grow-1 t-small search-content" @confirm='goSearch' confirm-type='search' v-model='keyword' :placeholder="'请输入'+setting.form.members?setting.form.members:'队员'+'昵称搜索'"></input>
-                </view>
-                <view class="cancel" @click="cancelSeacrch">
-                    <view>取消</view>
-                </view>
-            </view>
-        </view>
-        <view @click="toggle" class='main-center cross-center sort'>
-            <text>{{setting.form && setting.form.offer_text?setting.form.offer_text :'贡献分红金额'}}</text>
-            <image v-if="order_by == 'bonus_price desc'" src='./../image/shop-price-less.png'></image>
-            <image v-if="order_by == 'bonus_price'" src='./../image/shop-price-plus.png'></image>
-        </view>
-        <view class="placeholder"></view>
-        <view class="list" v-if="list && list.length > 0">
-            <view @click="toOrder(item.nickname)" v-for="item in list" :key="item.id">
-                <view class="main-between cross-center item">
-                    <view class='item-info dir-left-nowrap'>
-                        <image class='avatar' :src='item.avatar'></image>
-                        <view>
-                            <view class="item-nickname">{{item.nickname}}</view>
-                            <view>
-                                <text class='info-label'>{{setting.form && setting.form.offer_text?setting.form.offer_text :'贡献分红金额'}}</text>
-                                <text style='font-family:DIN'>¥{{item.bonus_price}}</text>
-                            </view>
-                        </view>
-                    </view>
-                    <view>
-                        <text>订单</text>
-                        <image class="arrow-right" src='https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png'></image>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <view class='no-tip' v-if="list && list.length == 0">
-            <image src="https://shop.9026.com/web/statics/img/mall/static/user-default-avatar.png"></image>
-            <span>暂无队员</span>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appRichText from "../../../components/basic-component/app-rich/parse.vue";
-
-    export default {
-        data() {
-            return {
-                order_by: 'bonus_price desc',
-                captain_id: null,
-                keyword: '',
-                page: 2,
-                setting: '',
-                more_list: false,
-                toSearch: false,
-                list: []
-            }
-        },
-        components: {
-            "app-rich-text": appRichText
-        },
-        methods: {
-            toOrder(nickname) {
-                uni.navigateTo({
-                    url: '/plugins/bonus/order/order?nickname=' + nickname
-                }); 
-            },
-
-            cancelSeacrch() {
-                this.keyword = '';
-                this.toSearch = !this.toSearch;
-                this.page = 2;
-                this.getList();
-            },
-
-            beSearch() {
-                this.toSearch = !this.toSearch;
-                this.page = 2;
-            },
-
-            goSearch() {
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.getList();
-            },
-
-            toggle() {
-                if (this.order_by == 'bonus_price desc') {
-                    this.order_by = 'bonus_price'
-                } else if (this.order_by == 'bonus_price') {
-                    this.order_by = 'bonus_price desc'
-                }
-                this.list = [];
-                this.page = 2;
-                this.getList();
-            },
-
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    that.getList();
-                    if(response.code == 0) {
-                        that.setting = response.data.list;
-                        if (that.setting.form && that.setting.form.members) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.members,
-                            })
-                        } else {
-                            uni.setNavigationBarTitle({
-                                title: '队员',
-                            })
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                });
-            },
-
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.team,
-                    data: {
-                        keyword: that.keyword,
-                        keyword_1: 1,
-                        order_by: that.order_by,
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                });
-            },
-
-            getMore() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.team,
-                    data: {
-                        keyword: that.keyword,
-                        keyword_1: 1,
-                        order_by: that.order_by,
-                        page: that.page
-                    }
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.list = that.list.concat(response.data.list);
-                        that.page++;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-
-        onLoad() { this.$commonLoad.onload();
-            let that = this;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getSetting();
-        },
-        onReachBottom() {
-            this.getMore();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .no-tip {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        color: #666666;
-        font-size: #{24rpx};
-        width: #{240rpx};
-        text-align: center;
-        image {
-            height: #{240rpx};
-            width: #{240rpx};
-            margin-bottom: #{20rpx};
-        }
-    }
-    .search {
-        height: #{88rpx};
-        padding: #{16rpx} #{26rpx};
-        background-color: #efeff4;
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        z-index: 10;
-    }
-
-    .search input {
-        padding: 0 #{30rpx};
-    }
-
-    .search-content {
-        background-color: #fff;
-        height: #{56rpx};
-        border-radius: #{28rpx};
-    }
-
-    .search-content image {
-        height:#{24rpx};
-        width:#{24rpx};
-    }
-
-    .search-content text {
-        color:#b2b2b2;
-        font-size:#{24rpx};
-        margin:0 #{5rpx};
-    }
-
-    .search-area {
-        height: #{56rpx};
-    }
-
-    .placeholder {
-        height: #{192rpx};
-    }
-
-
-    .sort {
-        height: #{80rpx};
-        background-color: #fff;
-        position: fixed;
-        top: #{88rpx};
-        left: 0;
-        right: 0;
-        z-index: 10;
-        font-size: #{28rpx};
-        color: #666;
-    }
-
-    .sort image {
-        height: #{26rpx};
-        width: #{16rpx};
-        margin-left: #{16rpx};
-    }
-
-    .item {
-        width: #{702rpx};
-        margin: #{24rpx};
-        margin-top: 0;
-        background-color: #fff;
-        border-radius: #{16rpx};
-        padding: #{24rpx};
-        font-size: #{24rpx};
-        color: #999;
-    }
-
-    .item .avatar {
-        height: #{80rpx};
-        width: #{80rpx};
-        margin-right: #{24rpx};
-        border-radius: #{5rpx};
-    }
-
-    .item-info {
-        font-size: #{28rpx};
-        color: #353535;
-    }
-
-    .item-info .item-nickname {
-        margin-bottom: #{4rpx};
-    }
-
-    .info-label {
-        height: #{36rpx};
-        padding: 0 #{10rpx};
-        text-align: center;
-        line-height: #{36rpx};
-        font-size: #{24rpx};
-        color: #999;
-        background-color: #efeff4;
-        display: inline-block;
-    }
-
-    .search-input {
-        height: #{56rpx};
-        position: relative;
-        width: #{620rpx};
-    }
-
-    .search-input image {
-        height: #{22rpx};
-        width: #{22rpx};
-        position: absolute;
-        top: #{17rpx};
-        left: #{28rpx};
-        z-index: 10;
-    }
-
-    .search-input input {
-        padding-left: #{66rpx};
-        background-color: #fff;
-        border-radius: #{32rpx};
-        height: #{56rpx};
-        font-size: #{26rpx};
-        color: #353535;
-    }
-
-    .cancel view {
-        margin-left: #{16rpx};
-        font-size: #{28rpx};
-        color: #00c203;
-    }
-
-    .arrow-right {
-        height:#{20rpx};
-        width:#{12rpx};
-        margin-left:#{12rpx};
-    }
-</style>

+ 0 - 351
src/plugins/bonus/order/order.vue

xqd
@@ -1,351 +0,0 @@
-<template>
-    <app-layout>
-        <view class="search">
-            <view @click="toSearch=!toSearch" v-if="!toSearch" class="main-center search-content cross-center">
-                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-search.png"></image>
-                <text>搜索</text>
-            </view>
-            <view v-else class="dir-left-norwap cross-center search-area" >
-                <view class="search-input">
-                    <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-search.png"></image>
-                    <input :focus="!haveKeyword" @confirm="getList" confirm-type="search" v-model="keyword" placeholder-style="color:#999999;font-size:13px;" placeholder="请输入订单号或昵称搜索"></input>
-                </view>
-                <view class="cancel" @click="cancelSeacrch">取消</view>
-            </view>
-        </view>
-        <app-tab-nav setTop="88" :tabList="tabList" :activeItem="activeTab" padding="0" @click="tabStatus" :theme="theme"></app-tab-nav>
-        <view class="placeholder"></view>
-        <view class="list" v-if="list && list.length > 0">
-            <view v-for="item in list" :key="item.id" class="order-item">
-                <view class="order-no">订单号 {{item.order_no}}</view>
-                <view class="main-between cross-center">
-                    <view class="goods-item dir-left-nowrap">
-                        <image class="goods-img" :src="item.avatar"></image>
-                        <view class="t-omit order-nickname">{{item.nickname}}</view>
-                    </view>
-                    <view class="bonus-info">
-                        <view class="goods-price">商品金额
-                            <text>¥{{item.total_pay_price}}</text>
-                        </view>
-                        <view class="bonus-price">{{setting.form.price_text ? setting.form.price_text :"分红金额"}}
-                            <text>¥{{item.bonus_price}}</text>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <view class='no-tip' v-if="list && list.length == 0">
-            <image src="https://shop.9026.com/web/statics/img/mall/static/order-empty.png"></image>
-            <span>暂无{{activeTab == 1?'未完成':activeTab == 2?'已完成':''}}订单</span>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-                theme: {
-                    color: '#ff4544'
-                },
-                tabList: [
-                    {id:1, name: '未完成'},
-                    {id:2, name: '已完成'}
-                ],
-                loading: null,
-                list: [],
-                activeTab: 1,
-                page: 2,
-                keyword: '',
-                toSearch: false,
-                haveKeyword: false,
-            }
-        },
-        components: {
-            "app-tab-nav": appTabNav,
-        },
-        computed: {
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-            })
-        },
-        methods: {
-            open(e) {
-                this.id = e;
-            },
-
-            goSearch() {
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.getList();
-            },
-            
-            tabStatus(e) {
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.list = [];
-                this.page = 2;
-                this.activeTab = e.currentTarget.dataset.id;
-                this.getList();
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.setting = response.data.list;
-                        if (that.setting.form && that.setting.form.orders) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.orders,
-                            })
-                        } else {
-                            uni.setNavigationBarTitle({
-                                title: '分红订单',
-                            })
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.getSetting();
-                    });
-                });
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.order,
-                    data: {
-                        status: that.activeTab,
-                        keyword: that.keyword
-                    },
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.getList();
-                    });
-                });
-            },
-            getMore() {
-                let that = this;
-                let url;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.bonus.order,
-                    data: {
-                        status: that.activeTab,
-                        keyword: that.keyword,
-                        page: that.page
-                    },
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        if(response.data.list.length > 0) {
-                            that.loading = null;
-                            that.list = that.list.concat(response.data.list);
-                            that.page++;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(e => {
-                    uni.hideLoading();
-                });
-            },
-            cancelSeacrch() {
-                this.keyword = '';
-                this.toSearch = !this.toSearch;
-                this.getList();
-                this.$hideLoading();
-            },
-        },
-
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            if (options.nickname) {
-                that.keyword = options.nickname;
-                that.haveKeyword = true;
-                that.toSearch = true;
-            }
-            that.$showLoading({
-                text: '加载中...'
-            });
-            that.getSetting();
-            that.getList();
-        },
-        onReachBottom() {
-            this.getMore();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .no-tip {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        color: #666666;
-        font-size: #{24rpx};
-        width: #{240rpx};
-        text-align: center;
-        image {
-            height: #{240rpx};
-            width: #{240rpx};
-            margin-bottom: #{20rpx};
-        }
-    }
-    .search {
-        height: #{88rpx};
-        padding: #{16rpx} #{26rpx};
-        background-color: #efeff4;
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        z-index: 10;
-    }
-
-    .search input {
-        padding: 0 #{30rpx};
-    }
-
-    .search-content {
-        background-color: #fff;
-        height: #{56rpx};
-        border-radius: #{28rpx};
-    }
-
-    .search-content image {
-        height:#{24rpx};
-        width:#{24rpx};
-    }
-
-    .search-content text {
-        color:#b2b2b2;
-        font-size:#{24rpx};
-        margin:0 #{5rpx};
-    }
-
-    .search-area {
-        height: #{56rpx};
-    }
-
-    .placeholder {
-        height: #{88rpx};
-    }
-
-    .order-item {
-        margin: #{16rpx} #{24rpx} 0;
-        border-radius: #{16rpx};
-        background-color: #fff;
-        padding: #{28rpx} #{24rpx};
-        font-size: #{28rpx};
-        color: #353535;
-    }
-
-    .order-no {
-        margin-bottom: #{28rpx};
-    }
-
-    .order-nickname {
-        width: #{240rpx};
-    }
-
-    .goods-item {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        width: #{330rpx};
-    }
-
-    .goods-img {
-        height: #{80rpx};
-        width: #{80rpx};
-        border-radius: #{10rpx};
-        margin-right: #{24rpx};
-    }
-
-    .bonus-info {
-        font-size: #{24rpx};
-        color: #999;
-    }
-
-    .search-input {
-        height: #{56rpx};
-        position: relative;
-        width: #{620rpx};
-    }
-
-    .search-input image {
-        height: #{22rpx};
-        width: #{22rpx};
-        position: absolute;
-        top: #{17rpx};
-        left: #{28rpx};
-        z-index: 10;
-    }
-
-    .search-input input {
-        padding-left: #{66rpx};
-        background-color: #fff;
-        border-radius: #{32rpx};
-        height: #{56rpx};
-        font-size: #{26rpx};
-        color: #353535;
-    }
-
-    .cancel {
-        margin-left: #{16rpx};
-        font-size: #{28rpx};
-        color: #00c203;
-    }
-
-    .goods-price {
-        margin-bottom: #{4rpx};
-    }
-
-    .goods-price text {
-        font-size:#{24rpx};
-        color:#353535;
-    }
-
-    .bonus-price text {
-        font-size:#{28rpx};
-        color:#ff4544;
-    }
-</style>

+ 0 - 325
src/plugins/bonus/statics/statics.vue

xqd
@@ -1,325 +0,0 @@
-<template>
-    <app-layout>
-        <view class='main-between total'>
-            <view class='box-grow-1'>
-                <view class='data-num'>{{all_data.day_data}}</view>
-                <view>昨日{{setting.form && setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-            </view>
-            <view class='box-grow-1'>
-                <view class='data-num'>{{all_data.day_7_data}}</view>
-                <view>7日{{setting.form && setting.form.statics_text ? setting.form.statics_text :'分红'}}总计</view>
-            </view>
-            <view class='box-grow-1'>
-                <view class='data-num'>{{all_data.month_12_data}}</view>
-                <view>月{{setting.form && setting.form.statics_text ? setting.form.statics_text :'分红'}}总计</view>
-            </view>
-        </view>
-        <view class='canvas'>
-            <view class="choose main-center">
-                <view class="choose-list main-center">
-                    <view :class="[date == 0 ? 'active' : '','cross-center','main-center','choose-item','left-choose-item']">
-                        <view @click="tablist(0)">昨日{{setting.form && setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-                    </view>
-                    <view :class="[date == 1 ? 'active' : '','cross-center','main-center','choose-item']">
-                        <view @click="tablist(1)">7日{{setting.form && setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-                    </view>
-                    <view :class="[date == 2 ? 'active' : '','cross-center','main-center','choose-item','right-choose-item']">
-                        <view @click="tablist(2)">月{{setting.form && setting.form.statics_text ? setting.form.statics_text :'分红'}}</view>
-                    </view>
-                </view>
-            </view>
-            <view class="box">
-                <!--#ifdef MP-ALIPAY -->
-                <canvas @touchstart="touchIt($event,'canvasColumn')" canvas-id="canvasColumn" id="canvasColumn" class="charts" :style="{'width':cWidth*pixelRatio+'px','height':cHeight*pixelRatio+'px', 'transform': 'scale('+(1/pixelRatio)+')','margin-left':-cWidth*(pixelRatio-1)/2+'px','margin-top':-cHeight*(pixelRatio-1)/2+'px'}"></canvas>
-                <!--#endif-->
-                <!--#ifndef MP-ALIPAY -->
-                <canvas @touchstart="touchIt($event)" canvas-id="canvasColumn" id="canvasColumn" class="charts"></canvas>
-                <!--#endif-->
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import uCharts from '../../../components/u-charts/u-charts.min.js';
-
-    var _self;
-    var canvaColumn=null;
-
-    export default {
-        data() {
-            return {
-                list: [],
-                setting: {},
-                cWidth:'',
-                cHeight:'',
-                pixelRatio:1,
-                date: 0,
-                show: true,
-                all_data: []
-            }
-        },
-        methods: {
-            tablist(e) {
-                let that = this;
-                this.date = e;
-                this.show = true;
-                let Column = {categories:[],series:[{name: '分红金额',data: []}]};
-                let date;
-                let padding;
-                if(e == 0) {
-                    that.list.day_list.forEach(function(row,index){
-                        date = that.list.day_list[index].created_at;
-                        Column.series[0].data.push(row.bonus_price);
-                        if(index % 6 == 0) {
-                            if(date < 10) {
-                                date = '0' + date + ':00'
-                            }else {
-                                date = date + ':00'
-                            }
-                            Column.categories.push(date);
-                        }else {
-                            Column.categories.push('')
-                        }
-                    })
-                    Column.categories.push('24:00')
-                    _self.showColumn("canvasColumn",Column,'line');
-                }else if(e == 1) {
-                    that.list.day_7_list.forEach(function(row,index){
-                        date = that.list.day_7_list[index].created_at.slice(5);
-                        Column.series[0].data.push(row.bonus_price);
-                        Column.categories.push(date);
-                    })
-                    padding = [15,15,4,-30]
-                    _self.showColumn("canvasColumn",Column,'column',padding);
-                }else if(e == 2) {
-                    that.list.month_12_list.forEach(function(row,index){
-                        date = that.list.month_12_list[index].created_at.slice(5) + '月';
-                        Column.series[0].data.push(row.bonus_price);
-                        Column.categories.push(date);
-                    })
-                    padding = [15,15,4,-30]
-                    _self.showColumn("canvasColumn",Column,'column',padding);
-                }
-                this.$forceUpdate();
-            },
-
-            touchIt(e) {
-                canvaColumn.showToolTip(e, {
-                    format: function (item, category) {
-                        item.color = 'rgba(0,0,0,0)';
-                        if(typeof item.data === 'object'){
-                            return category + ' ' + item.name + ':' + item.data.value 
-                        }else{
-                            return category + ' ' + item.name + ':' + item.data 
-                        }
-                    }
-                });
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.bonus.setting,
-                }).then(response=>{
-                    if(response.code === 0) {
-                        that.setting = response.data.list;
-                        if (that.setting.form && that.setting.form.orders) {
-                            uni.setNavigationBarTitle({
-                                title: that.setting.form.statistic_bonus,
-                            })
-                        } else {
-                            uni.setNavigationBarTitle({
-                                title: '分红统计',
-                            })
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.bonus.data,
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                        that.all_data = response.data.all_data;
-                        let Column = {categories:[],series:[{name: '分红金额',data: []}]};
-                        let date;
-                        response.data.list.day_list.forEach(function(row,index){
-                            date = response.data.list.day_list[index].created_at;
-                            Column.series[0].data.push(row.bonus_price);
-                            if(index % 6 == 0) {
-                                if(date < 10) {
-                                    date = '0' + date + ':00'
-                                }else {
-                                    date = date + ':00'
-                                }
-                                Column.categories.push(date);
-                            }else {
-                                Column.categories.push('')
-                            }
-                        })
-                        Column.categories.push('24:00')
-                        _self.showColumn("canvasColumn",Column,'line');
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-            },
-            showColumn(canvasId,chartData,type,padding){
-                canvaColumn=new uCharts({
-                    $this:_self,
-                    canvasId: canvasId,
-                    type: type ? type : 'column',
-                    legend:{
-                        show: false
-                    },
-                    fontSize:9,
-                    background:'#FFFFFF',
-                    colors: ["#ff4544"],
-                    pixelRatio:_self.pixelRatio,
-                    padding: padding ? padding : [15,15,4,0],
-                    categories: chartData.categories,
-                    series: chartData.series,
-                    xAxis: {
-                        disableGrid:true,
-                    },
-                    yAxis: {
-                        gridType: 'dash',
-                        data: {
-                            disabled: true
-                        }
-                    },
-                    dataLabel: false,
-                    dataPointShape: false,
-                    width: _self.cWidth*_self.pixelRatio,
-                    height: _self.cHeight*_self.pixelRatio,
-                    extra: {
-                        tooltip:{
-                            bgColor:'#000000',
-                            bgOpacity:0.7,
-                        }
-                    }
-                });
-            },
-            changeData(){
-                canvaColumn.updateData({
-                    series: _self.serverData.ColumnB.series,
-                    categories: _self.serverData.ColumnB.categories
-                });
-            }
-        },
-
-        onLoad() { this.$commonLoad.onload();
-            _self = this;
-            //#ifdef MP-ALIPAY
-            uni.getSystemInfo({
-                success: function (res) {
-                    if(res.pixelRatio>1){
-                        //正常这里给2就行,如果pixelRatio=3性能会降低一点
-                        //_self.pixelRatio =res.pixelRatio;
-                        _self.pixelRatio = 2;
-                    }
-                }
-            });
-            //#endif
-            this.cWidth=uni.upx2px(650);
-            this.cHeight=uni.upx2px(440);
-            this.getList();
-            this.getSetting();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .total {
-        height: #{150rpx};
-        background-color: #fff;
-        text-align: center;
-        font-size: #{24rpx};
-        color: #999;
-    }
-
-    .data-num {
-        font-size: #{36rpx};
-        font-family: DIN;
-        color: #353535;
-        margin-top: #{36rpx};
-        margin-bottom: #{6rpx};
-    }
-
-    .canvas {
-        width: #{702rpx};
-        margin: #{24rpx};
-        background-color: #fff;
-        border-radius: #{16rpx};
-        padding: #{40rpx} #{24rpx} #{24rpx};
-    }
-
-    .choose {
-        width: 100%;
-        height: #{56rpx};
-        line-height: #{56rpx};
-        font-size: #{24rpx};
-        color: #666;
-        margin: 0 auto #{40rpx};
-    }
-
-    .choose-list {
-        border-radius: #{28rpx};
-    }
-
-    .choose .choose-item {
-        padding: 0 #{24rpx};
-        background-color: #fff;
-        border-bottom: #{1rpx} solid #ff4544;
-        border-top: #{1rpx} solid #ff4544;
-    }
-
-    .choose .choose-item.active {
-        background-color: #ff4544;
-        color: #fff;
-    }
-
-    .left-choose-item {
-        border-top-left-radius: #{28rpx};
-        border-left: #{1rpx} solid #ff4544;
-        border-bottom-left-radius: #{28rpx};
-    }
-
-    .right-choose-item {
-        border-top-right-radius: #{28rpx};
-        border-right: #{1rpx} solid #ff4544;
-        border-bottom-right-radius: #{28rpx};
-    }
-
-    .box {
-        width: 100%;
-        height: #{440rpx};
-    }
-    .charts{
-        width: #{650rpx};
-        height:#{440rpx};
-        background-color: #FFFFFF;
-    }
-
-</style>

BIN
src/plugins/check_in/image/choose.png


+ 0 - 925
src/plugins/check_in/index/index.vue

xqd
@@ -1,925 +0,0 @@
-<template>
-    <app-layout :overflow='false'>
-		<view v-if="customize">
-	        <image load-lazy='true' class='bg' :src='customize.head_bg ? customize.head_bg : checkImg.app_image.top_bg'></image>
-	        <!-- 签到提醒 -->
-	        <view @click="changeSwitch" class='tips dir-left-nowrap cross-center' v-if="config.is_remind == 1">
-	            <text :style="{'color':`${customize.remind_font}`}">签到提醒</text>
-	            <switch style="transform:scale(0.7)" v-if="user.is_remind == 1" @change='toSwitch' :checked="user.is_remind == 1"></switch>
-	            <switch style="transform:scale(0.7)" v-else @change='toSwitch' :checked="user.is_remind == 1"></switch>
-	        </view>
-	        <!-- 规则 -->
-	        <view @click="toRules" class='icon'>
-	            <view class='rules'>签到规则</view>
-	        </view>
-	        <view @click="toIndex" class='icon toIndex'>
-	            <view class='rules'>回到首页</view>
-	        </view>
-	        <!-- 签到按钮 -->
-	        <view @click="subscribe" class='check-in-btn' v-if="user.today_check_in == null">
-	            <image load-lazy='true' :src='customize.not_signed_icon ? customize.not_signed_icon : checkImg.app_image.check_in'></image>
-	        </view>
-	        <view class='check-in-btn' v-else>
-	            <image load-lazy='true' :src='customize.signed_icon ? customize.signed_icon : checkImg.app_image.over'></image>
-	        </view>
-	        <view :style="{'color':`${customize.daily_font}`}" class='no-check-in' v-if="user.today_check_in == null">今日还未签到</view>
-	        <view :style="{'color':`${customize.daily_font}`}" class='no-check-in' v-else>今日已签到</view>
-	        <view :style="{'color':`${customize.daily_font}`}" v-if="user.continue_day || user.continue_day == 0" class='always'>已连续签到{{user.continue_day}}天</view>
-	        <!-- 签到奖励 -->
-	        <view class='other' :style="{'background':`linear-gradient(to bottom,${customize.end_bg},${customize.end_style == 1 ? customize.end_gradient_bg : customize.end_bg})`,'min-height':`${other_height}`}">
-	            <view class='reward' v-if="config.continue.length > 0">
-	                <view :class="[`reward-item`, `${item.day == config.continue[0].day ? 'no-top':''}`]" v-for="(item, index) in config.continue" :key="index" :style="{'border-color':`${customize.line_font}`}">
-	                    <image load-lazy='true' class='reward-icon' v-if="item.type =='integral'" :src="customize.integral_icon ? customize.integral_icon : 'https://shop.9026.com/web/statics/img/mall/static/integral.png'"></image>
-	                    <image load-lazy='true' class='reward-icon' v-if="item.type =='balance'" :src="customize.balance_icon ? customize.balance_icon : 'https://shop.9026.com/web/statics/img/mall/static/hongbao.png'"></image>
-	                    <view class='reward-title'>连续签到{{item.day}}天</view>
-	                    <view class='reward-content' v-if="item.type =='integral'">赠送{{item.number}}积分</view>
-	                    <view class='reward-content' v-if="item.type =='balance'">赠送{{item.number}}元余额红包</view>
-	                    <view class='reward-btn' v-if="item.check">
-	                        <button class='over' :style="{'color':`${customize.prompt_font}`,'backgroundColor':`${customize.btn_bg}`}">已领取</button>
-	                    </view>
-	                    <view class='reward-btn' v-else-if="user.continue_day >= item.day" data-id="2" @click="getAward(2,item.day)">
-	                        <button :style="{'color':`${customize.not_prompt_font}`,'backgroundColor':`${customize.not_btn_bg}`}">领取</button>
-	                    </view>
-	                </view>
-	            </view>
-	            <view class='reward balance-reward' v-if="config.total.length > 0">
-	                <view class='reward-item' v-for="(item, index) in config.total" :key="index">
-	                    <image load-lazy='true' class='reward-icon' v-if="item.type =='integral'" :src="customize.integral_icon ? customize.integral_icon : 'https://shop.9026.com/web/statics/img/mall/static/integral.png'"></image>
-	                    <image load-lazy='true' class='reward-icon' v-if="item.type =='balance'" :src="customize.balance_icon ? customize.balance_icon : 'https://shop.9026.com/web/statics/img/mall/static/hongbao.png'"></image>
-	                    <view class='reward-title'>累积签到{{item.day}}天</view>
-	                    <view class='reward-content' v-if="item.type =='integral'">赠送{{item.number}}积分</view>
-	                    <view class='reward-content' v-if="item.type =='balance'">赠送{{item.number}}元余额红包</view>
-	                    <view class='reward-btn' v-if="item.check">
-	                        <button class='over'>已领取</button>
-	                    </view>
-	                    <view class='reward-btn' v-if="user.total_day >= item.day && !item.check" data-id="3" @click="getAward(3,item.day)">
-	                        <button :style="{'color':`${customize.not_prompt_font}`,'backgroundColor':`${customize.not_btn_bg}`}">领取</button>
-	                    </view>
-	                </view>
-	            </view>
-	            <!-- 日历 -->
-	            <!-- #ifndef MP-BAIDU -->
-	            <view class='day'>
-            	<!-- #endif -->
-                <!-- #ifdef MP-BAIDU -->
-	            <view class='day' style="margin: 12px 18px;">
-            	<!-- #endif -->
-	                <view class='day-title main-center cross-center'>
-	                    <view @click="lose">
-	                    	<view class="toggle-btn main-center cross-center">
-	                        	<image load-lazy='true' src='https://shop.9026.com/web/statics/image/mall/static/icon/arrow-left.png'></image>
-	                    	</view>
-	                    </view>
-	                    <view class='date'>
-	                        <text>{{year}}</text>
-	                        <text>年</text>
-	                        <text>{{month}}</text>
-	                        <text>月</text>
-	                    </view>
-	                    <view @click="add">
-	                    	<view class="toggle-btn main-center cross-center">
-	                        	<image load-lazy='true' src='https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png'></image>
-	                    	</view>
-	                    </view>
-	                </view>
-	                <view class='week main-between'>
-	                    <view>日</view>
-	                    <view>一</view>
-	                    <view>二</view>
-	                    <view>三</view>
-	                    <view>四</view>
-	                    <view>五</view>
-	                    <view>六</view>
-	                </view>
-	                <view class='everyday main-between'>
-	                	<!-- #ifdef MP-TOUTIAO || MP-WEIXIN -->
-	                    <view v-for="(item,index) in everyday" class='every' :key="index">
-	                    <!-- #endif -->
-	                	<!-- #ifndef MP-TOUTIAO || MP-WEIXIN -->
-	                    <view v-for="(item,index) in everyday" class='every' style="width:28px;" :key="index">
-	                    <!-- #endif -->
-	                        <image load-lazy='true' v-if="item && item.check" :src="customize.calendar_icon ? customize.calendar_icon : './../image/choose.png'"></image>
-	                        <view v-if="item" :class="[`${item && item.date > now ? 'next' : ''}`]">{{item.date}}</view>
-	                    </view>
-	                </view>
-	            </view>
-	        </view>
-            </view>
-	    </view>
-        </view>
-	    <view class='dialog' v-if="success || getRed">
-	        <view v-if="success" class='success'>
-	            <image load-lazy='true' class='success-img' v-if="success" :src='checkImg.app_image.success'></image>
-	            <image load-lazy='true' class='success-img' v-else :src='checkImg.app_image.get'></image>
-	            <view class='getPrice main-center'>
-	                <image load-lazy='true' v-if="result.type == 'integral'" :src="customize.integral_icon ? customize.integral_icon : 'https://shop.9026.com/web/statics/img/mall/static/integral.png'"></image>
-	                <text>+{{result.number}}</text>
-	            </view>
-	            <view v-if="success" class='info'>
-	                <text v-if="result.status == 1">签到成功</text>
-	                <text v-if="result.status == 2">已连续签到</text>
-	                <text v-if="result.status == 3">已累积签到</text>
-	                <text v-if="result.status != 1">{{result.day}}天</text>
-	            </view>
-	            <view class='info' v-else>恭喜获得签到奖励</view>
-	            <view @click="close">
-	                <button class='success-btn'>{{success ? '知道咯' : '收下奖励'}}</button>
-	            </view>
-	        </view>
-	        <view v-if="getRed" class='getRed'>
-	            <image load-lazy='true' class='getRed-img' :src='checkImg.app_image.getRed'></image>
-	            <view class='getRed-title'>恭喜获得签到奖励</view>
-	            <view class='getRed-price'>
-	                <text>+{{result.number}}</text>元</view>
-	            <view class='getRed-content'>余额红包</view>
-	            <view @click="close">
-	                <button class='getRed-btn'>收下奖励</button>
-	            </view>
-	            <view class='getRed-info'>
-	                <text v-if="result.status == 1">已签到</text>
-	                <text v-if="result.status == 2">已连续签到</text>
-	                <text v-if="result.status == 3">已累积签到</text>
-	                <text>{{result.day}}</text>天</view>
-	        </view>
-	        <view :class="[`close`,`${getRed ? 'get-close' : ''}`]" @click="close">
-	            <image load-lazy='true' :src='mallImg.close'></image>
-	        </view>
-	    </view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-
-    export default {
-        data() {
-            return {
-		        month: 1,
-		        year: 1990,
-		        everyday: [],
-		        config: {
-		        	total: [],
-		        	continue: []
-		        },
-		        user: {},
-		        result: {},
-		        other_height: '500rpx',
-		        now: 1,
-		        noday: ['', '', '', '', '', '', '', ''],
-		        week: 1,
-		        date: [],
-		        getRed: false,
-		        customize: null,
-		        page_loading: true,
-		        template_message: false,
-		        success: false
-            }
-        },
-        computed: {
-            ...mapState({
-                userInfo: state => state.user.info,
-                mallImg: state => state.mallConfig.__wxapp_img.mall,
-                checkImg: state => state.mallConfig.plugin.check_in
-            })
-        },
-        methods: {
-            toRules() {
-				uni.navigateTo({
-					url: `/pages/rules/index?url=${encodeURIComponent(this.$api.check_in.index)}&keys=${JSON.stringify(['config', 'rule'])}`,
-				});
-            },
-            toIndex() {
-                uni.redirectTo({
-                    url: '/pages/index/index'
-                });
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.check_in.customize,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.customize = response.data.list;
-                		that.getList();
-                    }else {
-                    	that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.check_in.index,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.config = response.data.config;
-                        that.user = response.data.check_in_user;
-                        that.template_message = response.data.template_message;
-                		that.getEveryday();
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-		    getEveryday() {
-		        let that = this;
-		        let month = that.month;
-		        let year = that.year;
-		        let day = 32;
-		        let everyday = [];
-		        if (month < 8 && month % 2 == 0 && month != 2) {
-		            day = 31;
-		        } else if (month > 7 && month % 2 == 1) {
-		            day = 31;
-		        } else if (month == 2) {
-		            if (year % 4 == 0 && year % 100 != 0) {
-		                day = 30;
-		            } else {
-		                day = 29;
-		            }
-		        }
-		        for (let i = 1; i < day; i++) {
-		            everyday.push({
-		                date: i,
-		                check: false
-		            })
-		        }
-		        let noday = that.noday;
-		        let before = that.week;
-		        for (let z = 0; z < before; z++) {
-		            everyday.unshift(noday[z])
-		        }
-		        if (everyday.length % 7 != 0) {
-		            let number = 7 - (everyday.length % 7);
-		            for (let y = 0; y < number; y++) {
-		                everyday.push(noday[y])
-		            }
-		        }
-		        that.everyday = everyday;
-		        that.getDay(year,month);
-		    },
-            getDay(year, month) {
-                let that = this;
-                that.$request({
-                    url: that.$api.check_in.sign_in_day,
-		            data: {
-		                month: month,
-		                year: year
-		            }
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        let date = response.data.check_in_day;
-                        for(let day of that.everyday) {
-                        	if(day) {
-	                        	day.check = false;
-                        		for(let item of date) {
-	                        		if(item == day.date) {
-	                        			day.check = true;
-	                        		}
-                        		}
-                        	}
-                        }
-                		that.$forceUpdate();
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-			lose() {
-		        let month = this.month - 1;
-		        let year = this.year;
-		        let now = this.now;
-		        if (month < 1) {
-		            month = 12;
-		            year--;
-		        }
-		        let dayValue = year + "-" + month + '-01';
-		        var day = new Date(Date.parse(dayValue.replace(/-/g, '/')));
-		        this.week = day.getDay();
-		        var myDate = new Date();
-		        let nowYear = myDate.getFullYear();
-		        let nowMonth = myDate.getMonth() + 1;
-		        if (year == nowYear) {
-		            if (month > nowMonth) {
-		                now = 0;
-		            } else if (month < nowMonth) {
-		                now = 32;
-		            } else {
-		                now = myDate.getDate();
-		            }
-		        } else if (year > nowYear) {
-		            now = 0;
-		        } else {
-		            now = 32;
-		        }
-		        this.year = year;
-		        this.month = month;
-		        this.now = now;
-		        this.getEveryday();
-		    },
-		    // 月份增大
-		    add() {
-		        let month = this.month + 1;
-		        let year = this.year;
-		        let now = this.now;
-		        if (month > 12) {
-		            month = 1;
-		            year++;
-		        }
-		        let dayValue = year + "-" + month + '-01';
-		        var day = new Date(Date.parse(dayValue.replace(/-/g, '/')));
-		        this.week = day.getDay();
-		        var myDate = new Date();
-		        let nowYear = myDate.getFullYear();
-		        let nowMonth = myDate.getMonth() + 1;
-		        if (year == nowYear) {
-		            if (month > nowMonth) {
-		                now = 0;
-		            } else if (month < nowMonth) {
-		                now = 32;
-		            } else {
-		                now = myDate.getDate();
-		            }
-		        } else if (year > nowYear) {
-		            now = 0;
-		        } else {
-		            now = 32;
-		        }
-		        this.year = year;
-		        this.month = month;
-		        this.now = now;
-		        this.getEveryday();
-		    },
-            subscribe() {
-                this.$subscribe(this.template_message).then(res => {
-                    this.getAward(1);
-                }).catch(res => {
-                    this.getAward(1);
-                });
-            },
-		    getAward(status,day) {
-		        let that = this;
-                uni.showLoading({
-                	mask: true,
-                    title: status == 1 ? '签到中...' : '领取中...'
-                });
-		        that.$request({
-                    url: that.$api.check_in.sign_in,
-		            data: {
-		                status: status,
-                    	day: day ? day : 1
-		            }
-                }).then(response=>{
-                    if(response.code == 0) {
-	                    let queueId = response.data.queueId;
-	                    let token = response.data.token;
-	                    that.checkInResult(queueId,token);
-                    }else {
-                    	uni.hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.$store.dispatch('user/info');
-                        that.getAward(status,day);
-                    });
-                });
-		    },
-		    checkInResult(queueId, token) {
-		        let that = this;
-		        that.$request({
-                    url: that.$api.check_in.sign_in_result,
-		            data: {
-		                queueId: queueId,
-                    	token: token
-		            }
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-						if (response.data.retry == 1) {
-	                        that.checkInResult(queueId, token);
-	                    } else {
-	                    	that.result = response.data
-	                        if (that.result.type == 'integral') {
-	                        	that.success = true;
-				            } else if (that.result.type == 'balance') {
-	                        	that.getRed = true;
-				            }
-	                    }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-		    },
-		    changeSwitch() {
-                if(this.user.is_remind == 0) {
-                    this.$subscribe(this.template_message);
-                }
-		    },
-		    toSwitch (e) {
-		        let that = this;
-		        let is_remind = 0;
-		        if (e.detail.value) {
-		            is_remind = 1;
-		        }
-		        that.$request({
-                    url: that.$api.check_in.user,
-		            data: {
-		                is_remind: is_remind
-		            }
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                    	this.user.is_remind = is_remind
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-		    },
-		    close() {
-	            this.success = false;
-	            this.getRed = false;
-		        this.getList();
-		    },
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                title: this.$children[0].navigationBarTitle,
-                path: "/plugins/check_in/index/index",
-            });
-        },
-        // #endif
-		// #ifdef MP-WEIXIN
-		onShareTimeline() {
-		  // 分享朋友圈beta
-		  return this.$shareTimeline({
-		    title: this.$children[0].navigationBarTitle,
-		    query: {} // 此处填写页面的参数
-		  });
-		},
-		// #endif
-        onLoad() { this.$commonLoad.onload();
-            let that = this;
-            wx.getSystemInfo({
-		      success: function(res, rect) {
-		      	that.other_height = (res.windowHeight*2 - 500) + 'rpx'
-		      }
-		    });
-
-            let myDate = new Date();
-	        that.year = myDate.getFullYear();
-	        that.month = myDate.getMonth() + 1;
-	        that.now = myDate.getDate();
-	        let dayValue = that.year + "-" + that.month + '-01';
-	        let day = new Date(Date.parse(dayValue.replace(/-/g, '/')));
-	        that.week = day.getDay();
-	        // #ifdef MP-WEIXIN
-			wx.showShareMenu({
-			  menus: ['shareAppMessage', 'shareTimeline']
-			})
-			// #endif
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getSetting();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.bg {
-	    width: 100%;
-	    height: #{500rpx};
-	    display: block;
-	}
-
-	.tips {
-	    position: absolute;
-	    top: #{55rpx};
-	    left: #{30rpx};
-	    color: #fff;
-	    font-size: #{24rpx};
-	}
-
-	.icon {
-	    position: absolute;
-	    right: 0;
-	    top: #{55rpx};
-	}
-
-	.icon.toIndex {
-		top:#{119rpx};
-	}
-
-	.rules {
-	    height: #{48rpx};
-	    line-height: #{46rpx};
-	    width: #{144rpx};
-	    text-align: center;
-	    padding: 0;
-	    color: #fff;
-	    background-color: rgba(0, 0, 0, 0.3);
-	    font-size: #{24rpx};
-	    border-top-left-radius: #{24rpx};
-	    border-bottom-left-radius: #{24rpx};
-	    border: #{2rpx} solid #fff;
-	    border-right: 0;
-	}
-
-	.check-in-btn {
-	    height: #{260rpx};
-	    width: #{260rpx};
-	    position: absolute;
-	    top: #{60rpx};
-	    left: 50%;
-	    margin-left: #{-130rpx};
-	}
-
-	.check-in-btn image {
-	    height: #{260rpx};
-	    width: #{260rpx};
-	}
-
-	.no-check-in {
-	    font-size: #{32rpx};
-	    color: #fff;
-	    position: absolute;
-	    top: #{340rpx};
-	    left: 0;
-	    right: 0;
-	    text-align: center;
-	}
-
-	.always {
-	    font-size: #{28rpx};
-	    color: #fff;
-	    position: absolute;
-	    top: #{390rpx};
-	    left: 0;
-	    right: 0;
-	    text-align: center;
-	}
-
-	.reward {
-	    margin: 0 #{24rpx};
-	    border-radius: #{14rpx};
-	    padding: 0 #{40rpx};
-	    background-color: #fff;
-	}
-
-	.reward.balance-reward {
-		margin-top:#{24rpx};
-	}
-
-	.reward-item {
-	    height: #{150rpx};
-	    border-top: #{1rpx} dashed #5997fc;
-	    color: #2c3c7e;
-	    font-size: #{26rpx};
-	    position: relative;
-	}
-
-	.reward-item.no-top {
-	    border-top: #{1rpx} dashed #fff!important;
-	}
-
-	.reward.balance-reward .reward-item {
-		border-top: #{1rpx} solid #fff;
-	}
-
-	.reward-icon {
-	    float: left;
-	    height: #{72rpx};
-	    width: #{72rpx};
-	    margin-top: #{39rpx};
-	    margin-right: #{24rpx};
-	}
-
-	.reward-title {
-	    margin-top: #{40rpx};
-	}
-
-	.reward-content {
-	    margin-top: #{-3rpx};
-	}
-
-	.reward-btn {
-	    position: absolute;
-	    right: #{40rpx};
-	    top: #{47rpx};
-	}
-
-	.reward-btn button {
-	    border-radius: #{28rpx};
-	    width: #{150rpx};
-	    height: #{56rpx};
-	    line-height: #{56rpx};
-	    color: #fff;
-	    font-size: #{26rpx};
-	    background-color: #5997fc;
-	}
-
-	.reward-btn button::after {
-	    border: 0;
-	}
-
-	.reward-btn .over {
-	    background-color: #cdcdcd;
-	}
-
-	.day {
-	    margin: #{24rpx};
-	    background-color: #fff;
-	    border-radius: #{14rpx};
-	    z-index: 99;
-	    padding: #{40rpx} #{25rpx};
-	    padding-top: 0;
-	}
-
-	.day-title {
-	    height: #{110rpx};
-	}
-
-	.day-title image {
-	    display: block;
-	    margin-top: #{4rpx};
-	    height: #{22rpx};
-	    width: #{12rpx};
-	}
-
-	.date {
-	    color: #353535;
-	    font-size: #{28rpx};
-	}
-
-	.week {
-	    color: #999;
-	    height: #{64rpx};
-	    border-bottom: #{1rpx} solid #e2e2e2;
-	    margin-bottom: #{16rpx};
-	}
-
-	.week view {
-	    height: #{64rpx};
-	    width: #{64rpx};
-	    margin: 0 #{15rpx};
-	    line-height: #{64rpx};
-	    text-align: center;
-	}
-
-	.everyday {
-	    flex-wrap: wrap;
-	}
-
-	.everyday .every {
-	    margin: 0 #{15rpx} #{8rpx};
-	    height: #{64rpx};
-	    width: #{64rpx};
-	    line-height: #{64rpx};
-	    text-align: center;
-	    position: relative;
-	}
-
-	.everyday .every image {
-	    height: #{64rpx};
-	    position: absolute;
-	    width: #{64rpx};
-	    top: 0;
-	    left: 0;
-	    display: block;
-	}
-
-	.every view {
-	    line-height: #{64rpx};
-	    position: absolute;
-	    height: #{64rpx};
-	    width: #{64rpx};
-	    top: 0;
-	    left: 0;
-	    z-index: 5;
-	}
-
-	.next {
-	    color: #999;
-	}
-
-	.dialog {
-	    position: fixed;
-	    left: 0;
-	    top: 0;
-	    height: 100%;
-	    width: 100%;
-	    z-index: 999;
-	    background-color: rgba(0, 0, 0, 0.3);
-	}
-
-	.success {
-	    position: fixed;
-	    top: #{350rpx};
-	    left: 0;
-	    right: 0;
-	    width: #{630rpx};
-	    margin: 0 auto;
-	    background-color: #fff;
-	    border-radius: #{16rpx};
-	    z-index: 1000;
-	    padding-bottom: #{64rpx};
-	}
-
-	.success .success-img {
-	    height: #{450rpx};
-	    width: #{630rpx};
-	    margin-top: #{-250rpx};
-	}
-
-	.getPrice {
-	    height: #{40rpx};
-	    line-height: #{40rpx};
-	    color: #ff4544;
-	    font-size: #{44rpx};
-	    margin-bottom: #{28rpx};
-	}
-
-	.success .getPrice image {
-	    height: #{40rpx};
-	    width: #{40rpx};
-	    margin-right: #{16rpx};
-	    display: block;
-	}
-
-	.info {
-	    font-size: #{32rpx};
-	    color: #353535;
-	    margin-bottom: #{44rpx};
-	    text-align: center;
-	}
-
-	.info text {
-	    color: #ff4544;
-	}
-
-	.success-btn {
-	    width: #{320rpx};
-	    height: #{72rpx};
-	    line-height: #{72rpx};
-	    font-size: #{32rpx};
-	    color: #fff;
-	    background-color: #ff4544;
-	    border-radius: #{36rpx};
-	    margin: 0 auto;
-	}
-
-	.success-btn::after {
-	    border: 0;
-	}
-
-	.getRed {
-	    height: #{460rpx};
-	    width: #{630rpx};
-	    position: fixed;
-	    top: #{330rpx};
-	    left: 0;
-	    right: 0;
-	    margin: 0 auto;
-	    text-align: center;
-	    font-size: #{28rpx};
-	    color: #ba7d44;
-	}
-
-	.getRed-img {
-	    height: #{460rpx};
-	    width: #{630rpx};
-	}
-
-	.getRed-title {
-	    position: fixed;
-	    text-align: center;
-	    left: 0;
-	    width: 100%;
-	    top: #{390rpx};
-	}
-
-	.getRed-price {
-	    color: #ff4544;
-	    position: fixed;
-	    text-align: center;
-	    left: 0;
-	    width: 100%;
-	    top: #{450rpx};
-	}
-
-	.getRed-price text {
-	    font-family: DIN;
-	    font-size: #{68rpx};
-	}
-
-	.getRed-content {
-	    position: fixed;
-	    text-align: center;
-	    left: 0;
-	    width: 100%;
-	    top: #{540rpx};
-	}
-
-	.getRed-btn {
-	    position: fixed;
-	    top: #{640rpx};
-	    left: 0;
-	    right: 0;
-	    margin: 0 auto;
-	    width: #{320rpx};
-	    height: #{72rpx};
-	    color: #ff4544;
-	    font-size: #{32rpx};
-	    line-height: #{72rpx};
-	    border-radius: #{36rpx};
-	    background: linear-gradient(to bottom, #ffe8bc, #ffcb7c);
-	}
-
-	.getRed-btn::after {
-	    border: 0;
-	}
-
-	.close {
-	    position: fixed;
-	    top: #{870rpx};
-	    height:#{30rpx};
-	    width:#{30rpx};
-	    left: 50%;
-	    margin-left: #{-15rpx};
-	    z-index: 1000;
-	}
-
-	.close image {
-	    height:#{30rpx};
-	    width:#{30rpx};
-	}
-
-	.get-close {
-	    top: #{800rpx};
-	}
-
-	.getRed-info {
-	    font-size: #{22rpx};
-	    position: fixed;
-	    top: #{724rpx};
-	    left: 0;
-	    right: 0;
-	    text-align: center;
-	    color: #ffcb7c;
-	}
-
-	.other {
-	    background: linear-gradient(to bottom,#2a3a7c,#5b7ac7);
-	    padding-bottom: #{40rpx};
-	    position: absolute;
-	    top: #{500rpx};
-	    left: 0;
-	    width: 100%;
-	}
-
-	.toggle-btn {
-	    width: #{150rpx};
-	    height: #{110rpx};
-	}
-</style>

+ 0 - 1998
src/plugins/community/activity/activity.vue

xqd
@@ -1,1998 +0,0 @@
-<template>
-    <app-layout>
-        <scroll-view @scrolltolower="getMore" :scroll-top="scrollTop" scroll-y @scroll="scroll" :style="{'height':`${windowHeight}px`}">
-            <app-head v-if="getTheme" :theme="getTheme"></app-head>
-            <!-- 团长信息 -->
-            <view @click="toList" class="middleman dir-top-nowrap main-center">
-                <view class="location t-omit">{{middleman.location}}</view>
-                <view v-if="middleman.id > 0" class="middleman-info dir-left-nowrap">
-                    <image class="avatar" :src="middleman.avatar"></image>
-                    <view class="user-info">
-                        <view class="t-omit">{{middleman.name}} {{setting.middleman}} {{middleman.mobile}}</view>
-                        <view>
-                            <image class="icon" src="https://shop.9026.com/web/statics/img/mall/community/address.png"></image>
-                            <text>提货地址:{{middleman.province}}<text v-if="middleman.province != middleman.city">{{middleman.city}}</text>{{middleman.district}}{{middleman.detail}}</text>
-                        </view>
-                    </view>
-                </view>
-                <view v-if="middleman.is_allow_change == 1" class="space">距离最近{{space}}</view>
-                <image v-if="middleman.is_allow_change == 1" class="arrow-image" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right-white.png"></image>
-            </view>
-            <!-- 团购活动状态 -->
-            <view v-if="activity.time > 0" class="time dir-left-nowrap cross-center">
-                <image class="icon" src="https://shop.9026.com/web/statics/img/mall/community/timeline.png"></image>
-                <view>距离本次团购活动开始还有{{d}}天{{h}}时{{m}}分{{s}}秒</view>
-            </view>
-            <view v-if="activity.activity_status == 2" class="time">
-                <text>团购已结束,下次记得早点来哦</text>
-            </view>
-            <view v-if="activity.activity_status == 3" class="time">
-                <text>本次团购活动已经下架</text>
-            </view>
-            <view class="status-area" v-if="activity.activity_status == 1">
-                <view class="status dir-top-nowrap main-center cross-center">
-                    <view v-if="activity.condition == 0" class="end-time">{{activity.end_at}}结束</view>
-                    <view v-else class="condition main-between">
-                        <view>
-                            <text v-if="activity.num - activity.condition_count > 0">还差<text class="end-time">{{activity.num - activity.condition_count}}</text>{{activity.condition == 1 ? '人':'件商品'}}</text>拼团成功
-                        </view>
-                        <view class="end-time">{{activity.end_at}}结束</view>
-                    </view>
-                    <!-- 进度条 -->
-                    <view class="progress" v-if="activity.condition > 0">
-                        <view :style="{'width': `${activity.rate}%`,'backgroundImage':`url(${bonusImg.progress})`}"></view>
-                    </view>
-                    <!-- 下单人数 -->
-                    <view class="main-center cross-center buy-user">
-                        <view class="user-list dir-right-nowrap">
-                            <image v-for="(item,index) in user_list" :key="index" class="avatar" :src="item.avatar"></image>
-                        </view>
-                        <view class="sales">
-                            <text>{{activity.user_num}}</text>
-                            人已抢<text>{{activity.all_sales > activity.condition_count ? activity.all_sales : activity.condition_count}}</text>件
-                        </view>
-                    </view>
-                    <!-- 最新下单状态 -->
-                    <view v-if="user_list.length > 0" class="main-center cross-center new-buy">
-                        <image class="avatar" :src="user_list[user_list.length - 1].avatar"></image>
-                        <view>{{end_time}}参与团购</view>
-                    </view>
-                </view>
-            </view>
-            <scroll-view :scroll-into-view="`scroll-${activeIndex}`" scroll-with-animation v-show="activity.id > 0" scroll-x class="app-scroll" :class="activity.time > 0 || activity.activity_status == 2 ? 'no-ing' : ''">
-                <text class="app-item" v-for="(item, index) in nav_list"
-                      :key="item.id" :id="`scroll-${index}`"
-                      :style="{'color': cat_id == item.id ? getTheme.color : '', 'border-color': cat_id == item.id ? getTheme.border : ''}"
-                      :class="cat_id == item.id ? 'app-active-item'  : ''"
-                      @click="changeStatus(item.id, index)"
-                >{{item.name}}</text>
-            </scroll-view>
-            <!-- 商品 -->
-            <view class="list">
-                <view @click="toGoods(item)" class="goods dir-left-nowrap" v-for="item in list" :key="item.id">
-                    <view v-if="item.goods_stock === 0" class="out-dialog">
-                        <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-                    </view>
-                    <image class="cover" mode='aspectFill' :src="item.cover_pic"></image>
-                    <view class="info">
-                        <view class="name t-omit-two">{{item.name}}</view>
-                        <view class="sale" :style="{'color': getTheme.color, 'border-color': getTheme.border}">
-                            <view style="position: relative">
-                                {{item.sales}}
-                                <view class="sale-bg" :style="{'background-color': getTheme.background}"></view>
-                            </view>
-                            <view class="stock">剩{{item.goods_stock}}{{item.goodsWarehouse.unit}}</view>
-                        </view>
-                        <view class="price" :style="{'color': getTheme.color}">¥{{item.min_price}}</view>
-                        <view :style="{'background-color': item.buy_goods_auth ? getTheme.background : '#9999999'}"  class="cart" @click.stop="toBuy(item)" v-if="activity && activity.activity_status == 1 && item.goods_stock > 0">
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <!-- 购物车 -->
-            <view @click="openCart" v-if="showCart && cart.length > 0" class="bg">
-                <view class="dialog cart-dialog" @click.stop="" style="padding: 0;">
-                    <view v-if="activity.full_price.length > 0" class="cart-discount main-center">
-                        <view :style="{'color': getTheme.color}" v-for="(item,index) in activity.full_price" :key="index"><view class="discount-bg" :style="{'background-color': getTheme.background}"></view><text v-if="index > 0">,</text>满{{item.full_price}}减{{item.reduce_price}}</view>
-                    </view>
-                    <view class="title main-between">
-                        <view>已选商品</view>
-                        <view class="dir-right-nowrap cross-center" @click.stop="clearAll">
-                            <view style="color: #999999">清空购物车</view>
-                            <image src="https://shop.9026.com/web/statics/image/mall/static/icon/delete.png"></image>
-                        </view>
-                    </view>
-                    <view class="goods-list">
-                        <view v-if="item.num > 0 || item.num == ''" class="goods dir-left-nowrap" v-for="(item,index) in cart" :key="item.id">
-                            <image class="cover" mode='aspectFill' :src="item.pic_url"></image>
-                            <view class="info">
-                                <view class="name t-omit-two" :style="{'color': item.is_exist == 1 ? '#353535': '#999999'}">{{item.name}}</view>
-                                <view class="attr">
-                                    <text class="attr-group" v-for="(attr,idx) in item.attr_list" :key="idx">
-                                        {{attr.attr_group_name}}:{{attr.attr_name}}
-                                    </text>
-                                </view>
-                                <view style="height: 60rpx"></view>
-                                <view class="price" v-if="item.is_exist == 1" :style="{'color': getTheme.color}">¥{{item.price}}</view>
-                                <view class="price" v-else style="color: #353535">商品已失效</view>
-                                <view class="app-add-subtract dir-left-nowrap cross-center">
-                                    <image class="app-icon" @click.stop="_calcValue(index,'minus')"
-                                           :src="item.is_exist == 0 ? 'https://shop.9026.com/web/statics/image/mall/static/cart/unreducible.png' : 'https://shop.9026.com/web/statics/image/mall/static/icon/subtract.png'"
-                                          ></image>
-                                    <view class="app-value">
-                                        <input v-model="item.num" v-if="item.is_exist == 1" @blur.stop="_onBlur(index)" type="number">
-                                        <view v-else>{{item.num}}</view>
-                                    </view>
-                                    <image class="app-icon" v-show="is_loading" @load="imgLoad"  @click.stop="_calcValue(index,'plus')"
-                                           :src="item.num >= 99 || item.is_exist == 0 ? 'https://shop.9026.com/web/statics/image/mall/static/cart/can-add.png' : 'https://shop.9026.com/web/statics/image/mall/static/icon/add-but.png'"
-                                           :style="{'background-color': getTheme.background}"></image>
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-
-                    <view v-if="is_exist" class="discount main-center" style="background-color: #f0f0f0;color: #999999;">
-                        <view>{{is_exist}}件商品已失效</view>
-                    </view>
-                    <view class="cart-placeholder cart-list-placeholder" :class="{'again-placeholder': is_exist}"></view>
-                </view>
-            </view>
-            <!-- 买家信息 -->
-            <view id="input" v-if="cart.length > 0 && activity.activity_status == 1" class="input-info">
-                <view class="input-item">
-                    <view class="input-label">手机号</view>
-                    <view class="input">
-                        <input placeholder-style="color:#999999" type="number" placeholder="请输入手机号" v-model="mobile">
-                    </view>
-                </view>
-                <view class="input-item" @click="inputRemark = false">
-                    <view class="input-label">备注</view>
-                    <view class="input" v-if="inputRemark" :style="{'color': remark ? '#353535': '#999999'}">{{remark ? remark : '请输入备注'}}</view>
-                    <view class="input" v-else>
-                        <input placeholder-style="color:#999999" :focus="!inputRemark" @blur="inputRemark = true" maxlength="50" v-model="remark" placeholder="请输入备注">
-                    </view>
-                </view>
-            </view>
-            <!-- 结算栏 -->
-            <view v-if="cart.length > 0 && activity.activity_status == 1 && activity.full_price.length > 0" class="discount main-center">
-                <view :style="{'color': getTheme.color}" v-for="(item,index) in activity.full_price" :key="index"><view class="discount-bg" :style="{'background-color': getTheme.background}"></view><text v-if="index > 0">,</text>满{{item.full_price}}减{{item.reduce_price}}</view>
-            </view>
-            <view v-if="cart.length > 0 && activity.activity_status == 1" class="cart-placeholder" :class="{'more-placeholder': is_middleman}"></view>
-            <view v-if="cart.length > 0 && activity.activity_status == 1" class="cart-item main-between cross-center">
-                <view @click="openCart" class="cart-left dir-left-nowrap">
-                    <view class="cart-icon">
-                        <image src="https://shop.9026.com/web/statics/img/mall/community/cart.png" class="cart"></image>
-                        <view :style="{'background-color': getTheme.background}">{{cartLength > 99 ? '99+':cartLength}}</view>
-                    </view>
-                    <view class="price-info main-center dir-top-nowrap">
-                        <view class="total-price t-omit">总计<text :style="{'color': getTheme.color}">¥{{total < 0 ? '0.00':total}}</text></view>
-                        <view class="minus-price t-omit">已减<text :style="{'color': getTheme.color}">¥{{minus}}</text></view>
-                    </view>
-                </view>
-                <view @click="toSubmit" class="cart-right" :style="{'background-color': getTheme.background}">确认下单</view>
-            </view>
-            <!-- 悬浮按钮 -->
-            <view class="dialog-btn">
-                <view v-if="is_middleman" @click="toIndex">
-                    <image src="https://shop.9026.com/web/statics/img/mall/community/user-index.png"></image>
-                </view>
-                <view @click="toOrder">
-                    <image src="https://shop.9026.com/web/statics/img/mall/community/user-order.png"></image>
-                </view>
-                <view @click="toUser">
-                    <image src="https://shop.9026.com/web/statics/img/mall/community/user-center.png"></image>
-                </view>
-                <view @click="showHiddenClick">
-                    <image src="https://shop.9026.com/web/statics/img/mall/community/user-share.png"></image>
-                </view>
-            </view>
-            <u-attr
-                v-if="goods"
-                v-model="attrShow"
-                :theme="getTheme"
-                :goods="goods"
-                :checked="selectAttr"
-                @check="attr"
-                :is_show_left="false"
-                :is_show_right="false"
-            >
-                <template slot="right">
-                    <!-- 购物车信息 -->
-                    <view class="attr-bottom dir-left-nowrap">
-                        <view class="box-grow-1 dir-left-nowrap cross-center">
-                            <view class="total-price">总计<text :style="{'color': getTheme.color}">¥{{selectAttr ? attr_price : goods.price}}</text></view>
-                        </view>
-                        <view class="box-grow-1 u-add-btn main-center cross-center"
-                              :style="{'background': getTheme.background_gradient_btn}" @click="add">加入购物车
-                        </view>
-                    </view>
-                </template>
-            </u-attr>
-            <!-- 推荐 -->
-            <view v-if="recommendDialog" @click="recommendDialog=!recommendDialog" class="bg">
-                <view class="dialog" @click.stop="" :animation="animationData">
-                    <view v-show="showOther" @click="recommendDialog=!recommendDialog" class="end-close main-center cross-center">
-                        <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-close.png"></image>
-                    </view>
-                    <view class="end-title">当前团购已结束</view>
-                    <view class="end-recommend main-center cross-center">
-                        <view class="end-line"></view>
-                        <view>为您推荐</view>
-                        <view class="end-line"></view>
-                    </view>
-                    <view class="end-sec-title">以下{{recommend.count}}个商品正在团购</view>
-                    <view class="main-center recommend-goods">
-                        <image v-if="index < 3" v-for="(item,index) in recommend.goods_list" :key="index" :src="item.cover_pic"></image>
-                    </view>
-                    <view v-show="showOther" class="to-activity" :style="{'background-color': getTheme.background}" @click="toActivity">去看看</view>
-                </view>
-            </view>
-            <!-- 分享 -->
-            <view>
-                <app-share-qr-code @share="hShareAppMessage"
-                                   :posterUrl="'/plugins/community/poster/poster?activity_id='+id + '&middleman_id='+middleman.user_id"
-                                   :hasPosterNav="showShare" v-model="showShare" :url="poster"
-                                   title="生成活动海报"></app-share-qr-code>
-            </view>
-        </scroll-view>
-        <app-close v-if="showClose" :toBack="true" @update="getMall"></app-close>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appHead from '../components/app-head.vue';
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-    import uAttr from '../../../components/page-component/goods/u-attr.vue';
-    import AppClose from '../../../components/basic-component/app-close/app-close.vue';
-
-    export default {
-        data() {
-            return {
-                activeIndex: 0,
-                nav_list: [],
-                cat_id: -1,
-                id: null,
-                showCart: false,
-                is_loading: false,
-                submitLock: false,
-                recommendDialog: false,
-                showShare: false,
-                stopLoad: false,
-                showOther: false,
-                more: false,
-                is_middleman: false,
-                share: false,
-                default: false,
-                inputRemark: true,
-                cartLength: 0,
-                windowHeight: 0,
-                is_exist: 0,
-                page: 1,
-                poster: '',
-                mobile: '',
-                remark: '',
-                d: '',
-                h: '',
-                m: '',
-                s: '',
-                selectAttr: {},
-                animationData: {},
-                animation: {},
-                attr_price: '0.00',
-                number: 1,
-                space: '0m',
-                display: 'none',
-                // attrShow: 0,
-                attrShow: false,
-                scrollTop: 0,
-                scrollHeight: 0,
-                goods: null,
-                timeInterval: null,
-                buyBool: true,
-                longitude: '',
-                latitude: '',
-                activity: {
-                    rate: 0
-                },
-                middleman: {},
-                setting: {},
-                recommend: {},
-                list: [],
-                cart: [],
-                user_list: [],
-                template_message_list: [],
-                end_time: '1小时前',
-                title: '',
-                total: '0.00',
-                minus: '0.00',
-                middleman_id: 0,
-                first: true,
-                showClose: false,
-                is_open: false,
-				disable: 'disable'
-            }
-        },
-        components: {
-            appShareQrCode,
-            appHead,
-            uAttr,
-            AppClose
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme'
-            }),
-            ...mapState({
-                community: state => state.mallConfig.__wxapp_img.community,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                appSetting: state => state.mallConfig.mall.setting,
-                userInfo: state => state.user.info
-            }),
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            if(options.activity_id) {
-                this.id = options.activity_id;
-            }
-            if(options.id) {
-                this.id = options.id;
-            }
-            this.title = options.title;
-            uni.setNavigationBarTitle({
-                title: options.title,
-            });
-            uni.getSystemInfo({
-                success: function (res) {
-                    that.windowHeight = res.windowHeight;
-                }
-            });
-            // #ifndef H5
-            uni.getLocation({
-                success: (e) => {
-                    uni.hideLoading();
-                    that.longitude = e.longitude;
-                    that.latitude = e.latitude;
-                    if(this.$storage.getStorageSync('middleman_info')) {
-                        let middleman = this.$storage.getStorageSync('middleman_info');
-                        if(middleman.id > 0) {
-                            if(options.middleman_id) {
-                                that.middleman_id = options.middleman_id;
-                                that.share = true;
-                            }else {
-                                that.middleman_id = middleman.user_id
-                            }
-                        }
-                    }else {
-                        if(options.middleman_id) {
-                            that.middleman_id = options.middleman_id;
-                            that.share = true;
-                        }
-                    }
-                    that.$showLoading({
-                        type: 'global',
-                        text: '加载中...'
-                    });
-                    that.getSetting();
-                },
-                fail: () => {
-                    uni.hideLoading();
-                    uni.showModal({
-                        title: '提示',
-                        content: '获取位置信息失败,需要授权获取您的位置信息',
-                        showCancel: false,
-                        confirmText: '打开授权',
-                        success(e) {
-                            if (e.confirm) {
-                                uni.openSetting({});
-                            }
-                        }
-                    });
-                },
-            });
-            // #endif
-            // #ifdef H5
-            if (that.$jwx.isWechat()) {
-                that.$jwx.getLocation({
-                    success(res) {
-                        that.longitude = e.longitude;
-                        that.latitude = e.latitude;
-                        if(this.$storage.getStorageSync('middleman_info')) {
-                            let middleman = this.$storage.getStorageSync('middleman_info');
-                            if(middleman.id > 0) {
-                                if(options.middleman_id) {
-                                    that.middleman_id = options.middleman_id;
-                                    that.share = true;
-                                }else {
-                                    that.middleman_id = middleman.user_id
-                                }
-                            }
-                        }else {
-                            if(options.middleman_id) {
-                                that.middleman_id = options.middleman_id;
-                                that.share = true;
-                            }
-                        }
-                        that.$showLoading({
-                            type: 'global',
-                            text: '加载中...'
-                        });
-                        that.getSetting();
-                    },
-                    fail: function () {
-                        uni.showToast({
-                            title: '请开启手机位置权限',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    },
-                })
-            }else {
-                // uni.getLocation({
-                //     success: (e) => {
-                //         uni.hideLoading();
-                        that.longitude = 11;
-                        that.latitude = 22;
-                        if(this.$storage.getStorageSync('middleman_info')) {
-                            let middleman = this.$storage.getStorageSync('middleman_info');
-                            if(middleman.id > 0) {
-                                if(options.middleman_id) {
-                                    that.middleman_id = options.middleman_id;
-                                    that.share = true;
-                                }else {
-                                    that.middleman_id = middleman.user_id
-                                }
-                            }
-                        }else {
-                            if(options.middleman_id) {
-                                that.middleman_id = options.middleman_id;
-                                that.share = true;
-                            }
-                        }
-                        that.$showLoading({
-                            type: 'global',
-                            text: '加载中...'
-                        });
-                        that.getSetting();
-                    // },
-                    // fail: (e) => {
-                    //     uni.showToast({
-                    //         title: '请开启手机位置权限',
-                    //         icon: 'none',
-                    //         duration: 1000
-                    //     });
-                    // },
-             //   });
-            }
-            that.$jwx.getLocation({
-                success: (e) => {
-                    uni.hideLoading();
-                    that.longitude = e.longitude;
-                    that.latitude = e.latitude;
-                    if(this.$storage.getStorageSync('middleman_info')) {
-                        let middleman = this.$storage.getStorageSync('middleman_info');
-                        if(middleman.id > 0) {
-                            if(options.middleman_id) {
-                                that.middleman_id = options.middleman_id;
-                                that.share = true;
-                            }else {
-                                that.middleman_id = middleman.user_id
-                            }
-                        }
-                    }else {
-                        if(options.middleman_id) {
-                            that.middleman_id = options.middleman_id;
-                            that.share = true;
-                        }
-                    }
-                    that.$showLoading({
-                        type: 'global',
-                        text: '加载中...'
-                    });
-                    that.getSetting();
-                },
-                fail: function () {
-                    uni.showToast({
-                        title: '请开启手机位置权限',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                },
-            })
-            // #endif
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-                menus: ['shareAppMessage', 'shareTimeline']
-            });
-            // #endif
-        },
-        onUnload() {
-            this.stopLoad = true;
-            clearInterval(this.timeInterval);
-        },
-        onHide() {
-            this.stopLoad = true;
-            clearInterval(this.timeInterval);
-        },
-        onShow() {
-            let that = this;
-            if(this.stopLoad) {
-                this.stopLoad = false;
-                if(this.$storage.getStorageSync('bind')) {
-                    let bindInfo = this.$storage.getStorageSync('bind');
-                    if(bindInfo > 0) {
-                        that.$showLoading({
-                            type: 'global',
-                            text: '加载中...'
-                        });
-                        that.middleman = {};
-                        that.middleman_id = 0;
-                        if(this.$storage.getStorageSync('middleman_info')) {
-                            let middleman = this.$storage.getStorageSync('middleman_info');
-                            if(middleman.id > 0) {
-                                that.middleman_id = middleman.user_id;
-                            }
-                            that.getActivity('reload');
-                        }else {
-                            that.getActivity('reload');
-                        }
-                        this.$storage.removeStorageSync('bind');
-                    }else {
-                        that.getActivity('reload');
-                    }
-                }else {
-                    if(that.id > 0) {
-                        that.getActivity();
-                    }
-                }
-            }
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false) {
-                return this.$shareAppMessage({
-                    title: this.setting.app_share_title ? this.setting.app_share_title : this.title,
-                    imageUrl: this.setting.app_share_pic ? this.setting.app_share_pic : this.list[0].cover_pic,
-                    path: "/plugins/community/activity/activity",
-                    params: {
-                        id: this.id,
-                        user_id: this.userInfo.options.user_id,
-                        middleman_id: this.middleman.user_id
-                    }
-                }, s);
-            },
-            changeStatus(id, index) {
-                this.cat_id = id;
-                this.page = 1;
-                if (index < 2) {
-                    this.activeIndex = 0
-                } else {
-                    this.activeIndex = index - 2
-                }
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中'
-                });
-                this.getList(this.middleman.user_id);
-            },
-            requestCats(middleman_id) {
-                this.$request({
-                    url: this.$api.community.cats,
-                    data: {
-                        id: this.id,
-                        middleman_id: middleman_id ? middleman_id : this.middleman.user_id
-                    }
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.nav_list = res.data.list;
-                        this.getList(middleman_id);
-                    }
-                });
-            },
-            toSubmit() {
-                this.showClose = false;
-                setTimeout(()=>{
-                    this.showClose = true;
-                })
-            },
-            getMall(e) {
-                this.is_open = e.is_open == 1 ? true : false;
-                if(this.is_open) {
-                    this.allBuy();
-                }
-            },
-            scroll(e) {
-                this.scrollHeight = e.detail.scrollTop;
-            },
-            getMore() {
-                if(this.more) {
-                    this.page++;
-                    uni.showLoading({
-                        mask: true,
-                        title: '加载更多'
-                    });
-                    this.getOther();
-                    this.more = false;
-                }
-            },
-            getOther() {
-                let that = this;
-                let para = {
-                    id: that.id,
-                    middleman_id: that.middleman.user_id,
-                    page: that.page,
-                }
-                if(that.cat_id > 0) {
-                    para.cat_id = that.cat_id
-                }
-                that.$request({
-                    url: that.$api.community.activity_goods,
-                    data: para
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.$hideLoading();
-                    if(response.code === 0) {
-                        if(response.data.list.length === 20) {
-                            that.more = true;
-                        }
-                        that.list = that.list.concat(response.data.list);
-                    }
-                })
-            },
-            openCart() {
-                this.showCart = !this.showCart;
-                this.stopLoad = true;
-                if(this.showCart == false) {
-                    this.stopLoad = false;
-                    this.getActivity();
-                }
-            },
-            toList() {
-                if(this.middleman.is_allow_change === '0') {
-                    return false;
-                }
-                uni.navigateTo({
-                    url: '/plugins/community/captain/captain?longitude=' + this.longitude + '&latitude='+ this.latitude
-                });
-            },
-            showHiddenClick() {
-                this.showShare = !this.showShare;
-            },
-            toGoods(item) {
-                this.stopLoad = true;
-                uni.navigateTo({
-                    url: '/plugins/community/goods/goods?goods_id=' + item.id + '&middleman_id=' + this.middleman.user_id
-                });
-            },
-            toIndex() {
-                this.stopLoad = true;
-                uni.navigateTo({
-                    url: '/plugins/community/index/index'
-                });
-            },
-            toOrder() {
-                this.stopLoad = true;
-                uni.navigateTo({
-                    url: '/plugins/community/order/order?is_user=1'
-                });
-            },
-            toUser() {
-                this.stopLoad = true;
-                uni.navigateTo({
-                    url: '/pages/user-center/user-center'
-                });
-            },
-            toActivity() {
-                this.stopLoad = true;
-                uni.redirectTo({
-                    url: '/plugins/community/activity/activity?id=' + this.recommend.activity_id
-                });
-            },
-            attr(e) {
-                this.selectAttr = e.item;
-                this.number = e.number;
-                this.attr_price = (+this.selectAttr.price * +this.number).toFixed(2);
-            },
-            imgLoad() {
-                this.is_loading = true;
-            },
-            allBuy() {
-                if(this.submitLock) {
-                    return false;
-                }
-                this.showCart = false;
-                this.scrollTop = this.scrollHeight
-                if(this.default) {
-                    this.$nextTick().then(() => {
-                        this.scrollTop = 9999999;
-                        this.default = false;
-                    })
-                    uni.showToast({
-                        title: '请确认手机号',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    return false;
-                }
-                if(this.mobile.length == 11 && (/0?(1)[0-9]{10}/.test(this.mobile))) {
-                    this.$subscribe(this.template_message_list).then(res => {
-                        this.submit();
-                    }).catch(() => {
-                        this.submit();
-                    });
-                }else {
-                    this.$nextTick().then(() => {
-                        this.scrollTop = 9999999;
-                    })
-                    this.stopLoad = false;
-                    this.getActivity();
-                    uni.showToast({
-                        title: '请输入正确的手机号码',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                }
-            },
-            submit() {
-                uni.showLoading({
-                    mask: true,
-                    title: '提交订单...'
-                });
-                this.stopLoad = true;
-                this.submitLock = true;
-                let goods_list = [];
-                for(let i in this.cart) {
-                    if(this.cart[i].is_exist == 1) {
-                        let para = {};
-                        para.id = this.cart[i].goods_id;
-                        para.goods_attr_id = this.cart[i].goods_attr_id;
-                        para.num = this.cart[i].num;
-                        para.cart_id = this.cart[i].id;
-                        para.attr = this.cart[i].attr_list;
-                        para.cat_id = 0;
-                        para.form_data = [];
-                        goods_list.push(para);
-                    }
-                }
-                if(goods_list.length === 0) {
-                    uni.showToast({
-                        title: '请添加有效商品',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    return false
-                }
-                let mch_list = [{
-                    mch_id: 0,
-                    activity_id: this.id,
-                    middleman_id: this.middleman.user_id,
-                    goods_list: goods_list,
-                    distance: 0,
-                    remark: this.remark,
-                    order_form: [],
-                    use_integral: 0,
-                    user_coupon_id: 0
-                }];
-                let form = {};
-                form.list = mch_list;
-                form.address_id = 0;
-                form.address = {
-                    name: this.userInfo.nickname,
-                    mobile: this.mobile
-                };
-                this.$request({
-                    url: this.$api.community.order_submit,
-                    data: {
-                        form_data: JSON.stringify(form)
-                    },
-                    method: 'post'
-                }).then(response => {
-                    if (response.code === 0) {
-                        this.getPayOrderId(response.data.queue_id, response.data.token);
-                    } else {
-                        this.submitLock = false;
-                        this.stopLoad = false;
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: response.msg,
-                            showCancel: false,
-                        });
-                    }
-                }).catch(e => {
-                    this.submitLock = false;
-                    this.stopLoad = false;
-                    uni.hideLoading();
-                    uni.showModal({
-                        title: '提示',
-                        content: e.errMsg,
-                        showCancel: false,
-                    });
-                });
-            },
-            getPayOrderId(queue_id, token) {
-                this.$request({
-                    url: this.$api.order.pay_data,
-                    method: 'post',
-                    data: {
-                        queue_id: queue_id,
-                        token: token,
-                    },
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data.retry && response.data.retry === 1) {
-                            this.getPayDataTimer = setTimeout(() => {
-                                this.getPayOrderId(queue_id, token);
-                            }, 1000);
-                        } else {
-                            uni.hideLoading();
-                            this.cart = [];
-                            this.pay(response.data);
-                        }
-                    } else {
-                        this.submitLock = false;
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: response.msg,
-                            showCancel: false,
-                        });
-                    }
-                }).catch(e => {
-                    this.submitLock = false;
-                    uni.hideLoading();
-                    uni.showModal({
-                        title: '提示',
-                        content: e.errMsg,
-                        showCancel: false,
-                    });
-                });
-            },
-            pay(data) {
-                this.$storage.removeStorageSync('middleman_info');
-                this.$payment.pay(data.id).then(() => {
-                    this.submitLock = false;
-                    let url = '/plugins/community/order/order';
-                    uni.navigateTo({
-                        url: `/pages/order-submit/pay-result?payment_order_union_id=${data.id}&order_page_url=${url}`
-                    });
-                }).catch(() => {
-                    this.submitLock = false;
-                    this.toOrder();
-                });
-            },
-            _calcValue(index,type) {
-                if(type === 'minus') {
-                    this.cart[index].num--;
-                }else if(type === 'plus') {
-                    this.cart[index].num++;
-                }
-                this._onBlur(index);
-            },
-            _onBlur(index) {
-                this.total = 0;
-                this.cartLength = 0;
-                for(let i in this.cart) {
-                    this.total = (+this.total + (+this.cart[i].price*this.cart[i].num));
-                    this.cartLength += +this.cart[i].num;
-                }
-                let minus = 0;
-                for(let i in this.activity.full_price) {
-                    if(+this.activity.full_price[i].full_price < +this.total || +this.activity.full_price[i].full_price == +this.total) {
-                        if(this.activity.full_price[i].reduce_price > minus) {
-                            minus = +this.activity.full_price[i].reduce_price;
-                        }
-                    }
-                }
-                this.total = (+this.total - minus).toFixed(2);
-                this.minus = minus.toFixed(2);
-                if(this.cart[index].num == 0) {
-                    this.delCart(index)
-                }else {
-                    this.$request({
-                        url: this.$api.community.cart_edit,
-                        data: {
-                            list: JSON.stringify(this.cart)
-                        },
-                    });
-                }
-            },
-            clearAll() {
-                let cart = [];
-                for(let i in this.cart) {
-                    cart.push(this.cart[i].id)
-                }
-                this.cart = [];
-                this.showCart = false;
-                this.$request({
-                    url: this.$api.community.cart_delete,
-                    data: {
-                        cart_id_list: JSON.stringify(cart),
-                    },
-                }).then(() => {
-                    this.stopLoad = false;
-                    this.getActivity();
-                })
-            },
-            delCart(index) {
-                let list = [];
-                list.push(this.cart[index].id)
-                this.cart.splice(index,1);
-                this.total = 0;
-                this.cartLength = 0;
-                for(let i in this.cart) {
-                    this.total = (+this.total + (+this.cart[i].price*this.cart[i].num));
-                    this.cartLength += +this.cart[i].num
-                }
-                let minus = 0;
-                for(let i in this.activity.full_price) {
-                    if(+this.activity.full_price[i].full_price < +this.total || +this.activity.full_price[i].full_price == +this.total) {
-                        if(this.activity.full_price[i].reduce_price > minus) {
-                            minus = +this.activity.full_price[i].reduce_price
-                        }
-                    }
-                }
-                this.total = (+this.total - minus).toFixed(2);
-                this.minus = minus.toFixed(2);
-                if(this.cart.length === 0) {
-                    this.showCart = false
-                }
-                this.$request({
-                    url: this.$api.community.cart_delete,
-                    data: {
-                        cart_id_list: list,
-                    },
-                }).then(() => {
-                    this.stopLoad = false;
-                    this.getActivity();
-                }).catch(() => {
-                    this.attrShow = false;
-                    uni.hideLoading();
-                });
-            },
-            add() {
-                uni.showLoading({
-                    mask: true,
-                    title: '加入购物车'
-                });
-                let para = {
-                    activity_id: this.id,
-                    goods_id: this.selectAttr.goods_id,
-                    goods_attr_id: this.selectAttr.id,
-                    num: this.number
-                }
-                this.$request({
-                    url: this.$api.community.cart_add,
-                    data: para,
-                    method: 'post'
-                }).then(response => {
-                    if(response.code === 0) {
-                        this.addResult(response.data.queue_id, response.data.token);
-                    } else {
-                        uni.hideLoading();
-                        this.attrShow = false;
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    this.attrShow = false;
-                    uni.hideLoading();
-                });
-            },
-            addResult(queue_id, token) {
-                this.$request({
-                    url: this.$api.community.cart_result,
-                    method: 'post',
-                    data: {
-                        queue_id: queue_id,
-                        token: token,
-                    },
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data && response.data.retry === 1) {
-                            this.getResult = setTimeout(() => {
-                                this.addResult(queue_id, token);
-                            }, 1000);
-                        } else {
-                            this.attrShow = false;
-                            let index = -1;
-                            for(let i in this.cart) {
-                                if(this.cart[i].goods_id == this.selectAttr.goods_id && this.cart[i].goods_attr_id == this.selectAttr.id) {
-                                    index = i;
-                                }
-                            }
-                            if(index > -1) {
-                                this.cart[index].num += +this.number;
-                            } else {
-                                let para = {
-                                    activity_id: this.id,
-                                    community_goods_id: this.goods.id,
-                                    goods_id: this.selectAttr.goods_id,
-                                    goods_attr_id: this.selectAttr.id,
-                                    num: this.number,
-                                    name: this.goods.name,
-                                    attr_list: this.selectAttr.attr_list,
-                                    pic_url: this.selectAttr.pic_url,
-                                    id: 0,
-                                    price: this.selectAttr.price,
-                                    is_exist: 1
-                                }
-                                this.cart.push(para);
-                            }
-                            this.total = 0;
-                            this.cartLength = 0;
-                            for(let item of this.cart) {
-                                this.total = (+this.total + (+item.price*item.num));
-                                this.cartLength += +item.num;
-                            }
-                            let minus = 0;
-                            for(let i in this.activity.full_price) {
-                                if(+this.activity.full_price[i].full_price < +this.total || +this.activity.full_price[i].full_price == +this.total) {
-                                    if(this.activity.full_price[i].reduce_price > minus) {
-                                        minus = +this.activity.full_price[i].reduce_price;
-                                    }
-                                }
-                            }
-                            this.total = (+this.total - minus).toFixed(2);
-                            this.minus = minus.toFixed(2);
-                            uni.hideLoading();
-                            setTimeout(()=>{
-                                this.goods = null
-                            })
-                        }
-                    } else {
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: response.msg,
-                            showCancel: false
-                        });
-                    }
-                }).catch(e => {
-                    this.attrShow = false;
-                    uni.hideLoading();
-                    uni.showModal({
-                        title: '提示',
-                        content: e.errMsg,
-                        showCancel: false
-                    });
-                });
-            },
-            toBuy(item) {
-				if (!item.buy_goods_auth) {
-                    this.$tips.showToast({
-                        title: '您暂无权限购买该商品',
-                        icon: 'none'
-                    });
-                    return;
-				}
-                this.selectAttr = null;
-                this.goods = item;
-                this.attrShow = true;
-            },
-            getCart() {
-                let that = this;
-                if(that.stopLoad) {
-                    return false;
-                }
-                that.$request({
-                    url: that.$api.community.cart,
-                    data: {
-                        middleman_id: that.middleman.user_id,
-                        activity_id: that.activity.id,
-                    }
-                }).then(response=>{
-                    if(that.stopLoad) {
-                        return false;
-                    }
-                    if(response.code === 0) {
-                        that.total = 0;
-                        that.cartLength = 0;
-                        that.cart = response.data.list;
-                        that.is_exist = 0;
-                        for(let i in that.cart) {
-                            if(that.cart[i].is_exist == 0) {
-                                that.is_exist++;
-                            }
-                            that.total = (+that.total + (+that.cart[i].price*that.cart[i].num));
-                            that.cartLength += +that.cart[i].num;
-                        }
-                        let minus = 0;
-                        for(let i in that.activity.full_price) {
-                            if(+that.activity.full_price[i].full_price < +that.total || +that.activity.full_price[i].full_price == +that.total) {
-                                if(that.activity.full_price[i].reduce_price > minus) {
-                                    minus = +that.activity.full_price[i].reduce_price;
-                                }
-                            }
-                        }
-                        that.total = (+that.total - minus).toFixed(2);
-                        that.minus = minus.toFixed(2);
-
-                    }else {
-                        that.stopLoad = true;
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        if(response.msg === '所选活动已下架') {
-                            setTimeout(()=>{
-                                uni.navigateBack({});
-                            },1000);
-                        }
-                    }
-                }).catch(() => {
-                    that.$hideLoading();
-                });
-            },
-            getTime(time) {
-                if(time > 86399) {
-                    this.d = Math.floor(time / 86400);
-                    time = time - (86400*this.d);
-                }else {
-                    this.d = 0;
-                }
-                if(time > 3599) {
-                    this.h = Math.floor(time / 3600);
-                    if(this.h < 10) {
-                        this.h = '0' + this.h;
-                    }
-                    time = time - (3600*this.h);
-                }else {
-                    this.h = '00'
-                }
-                if(time > 59) {
-                    this.m = Math.floor(time / 60);
-                    if(this.m < 10) {
-                        this.m = '0' + this.m;
-                    }
-                    time = time - (60*this.m);
-                }else {
-                    this.m = '00';
-                }
-                if(time < 60) {
-                    this.s = time;
-                    if(this.s < 10) {
-                        this.s = '0' + this.s;
-                    }
-                }
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.setting,
-                }).then(response=>{
-                    if(response.code === 0) {
-                        that.head = that.community.a;
-                        switch(that.getTheme.key) {
-                            case 'b':
-                                that.head = that.community.b;
-                                break;
-                            case 'c':
-                                that.head = that.community.c;
-                                break;
-                            case 'd':
-                                that.head = that.community.d;
-                                break;
-                            case 'e':
-                                that.head = that.community.e;
-                                break;
-                            case 'g':
-                                that.head = that.community.g;
-                                break;
-                            case 'h':
-                                that.head = that.community.h;
-                                break;
-                            case 'i':
-                                that.head = that.community.i;
-                                break;
-                        }
-                        that.setting = response.data;
-                        that.getActivity();
-                    }else {
-                        that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    that.$hideLoading();
-                });
-            },
-            getList(middleman_id) {
-                let that = this;
-                let para = {
-                    type: 1,
-                    id: that.id,
-                }
-                para.middleman_id = middleman_id ? middleman_id: that.middleman.user_id
-                if(that.cat_id > 0) {
-                    para.cat_id = that.cat_id
-                }
-                that.$request({
-                    url: that.$api.community.activity_goods,
-                    data: para
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.$hideLoading();
-                    if(response.data.list.length === 0) {
-                        that.page = 1;
-                        that.stopLoad = true;
-                        uni.showToast({
-                            title: '活动商品异常,正在返回活动主页',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        setTimeout(()=>{
-                            uni.redirectTo({
-                                url: '/plugins/community/list/list'
-                            });
-                        },1000);
-                        return false;
-                    }
-                    that.list = response.data.list;
-                    response.data.list.length < 20 ? that.more = false : that.more = true;
-                })
-            },
-            getActivity(string) {
-                let that = this;
-                let para = {
-                    id: that.id,
-                    longitude: that.longitude,
-                    latitude: that.latitude
-                }
-                if(that.middleman_id > 0) {
-                    para.middleman_id = that.middleman_id
-                }
-                that.$request({
-                    url: that.$api.community.user_activity,
-                    data: para
-                }).then(response=>{
-                    if(response.code === 0) {
-                        if(that.nav_list.length == 0 || string == 'reload') {
-                            that.requestCats(response.data.middleman_info.user_id);
-                        }
-                        if(!that.mobile && response.data.last_mobile) {
-                            that.mobile = response.data.last_mobile;
-                            that.default  = true;
-                        }
-                        that.activity = response.data.activity;
-                        that.is_middleman = response.data.is_middleman;
-                        that.middleman = response.data.middleman_info;
-                        if(that.middleman_id == 0) {
-                            if(this.$storage.getStorageSync('middleman_info')) {
-                                let middleman = this.$storage.getStorageSync('middleman_info');
-                                if(middleman.id > 0) {
-                                    that.middleman = middleman;
-                                }
-                            }
-                        }
-                        that.space = ~~that.middleman.distance +'m';
-                        if(that.middleman.distance > 1000) {
-                            that.space = (that.middleman.distance / 1000).toFixed(1) + 'km';
-                        }
-                        if(that.share) {
-                            this.$storage.setStorageSync('middleman_info',that.middleman);
-                        }
-                        that.user_list = response.data.user_list;
-                        if(that.user_list.length > that.activity.user_num){
-                            that.user_list = that.user_list.slice(0,that.activity.user_num);
-                        }
-                        that.template_message_list = response.data.template_message_list;
-                        if(that.activity.activity_status == 1) {
-                            if(!that.stopLoad) {
-                                setTimeout(function(){
-                                    that.getActivity();
-                                },8000)
-                            }
-                            that.getCart();
-                            let end_time = Math.floor(that.user_list[that.user_list.length - 1].time / 60);
-                            if(end_time > 60) {
-                                that.end_time = '1小时前';
-                            }else if(end_time == 0) {
-                                that.end_time = '刚刚';
-                            }else {
-                                that.end_time = end_time+ '分钟前';
-                            }
-                        }
-                        if(that.activity.activity_status == 2 && response.data.recommend_activity.activity_id > 0) {
-                            setTimeout(function(){
-                                that.recommend = response.data.recommend_activity;
-                                that.recommendDialog = true;
-                                var animation = uni.createAnimation({
-                                    duration: 1000,
-                                    timingFunction: 'ease',
-                                })
-                                that.animation = animation;
-
-                                setTimeout(function(){
-                                    animation.bottom(0).step();
-                                    that.animationData = animation.export();
-                                    setTimeout(function(){
-                                        that.showOther = true;
-                                    },1500);
-                                },200);
-                            },800);
-                        }
-                        if(that.activity.time > 0) {
-                            let time = that.activity.time;
-                            that.timeInterval = setInterval(() =>{
-                                that.getTime(time);
-                                time--;
-                                if(time == 0) {
-                                    clearInterval(that.timeInterval);
-                                    that.getActivity();
-                                }
-                            },1000);
-                        }
-                    }else {
-                        that.stopLoad = true;
-                        if(response.msg === '周边没有活动可参加') {
-                            uni.showToast({
-                                title: '周边没有活动可参加,正在返回活动主页',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                            setTimeout(()=>{
-                                uni.redirectTo({
-                                    url: '/plugins/community/list/list'
-                                });
-                            },1000);
-                        }else {
-                            uni.showToast({
-                                title: response.msg,
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                    }
-                }).catch(() => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            },
-        },
-        // #ifdef MP-WEIXIN
-        onShareTimeline: function() {
-            return this.$shareTimeline({
-                title: this.share_title ? this.share_title : this.title,
-                query: {
-                    id: this.id,
-                    user_id: this.userInfo.options.user_id,
-                    middleman_id: this.middleman.user_id
-                }
-            });
-        }
-        // #endif
-    }
-</script>
-
-<style scoped lang="scss">
-    .app-scroll {
-        height: 80rpx;
-        background-color: #fff;
-        position: relative;
-        width: 702rpx;
-        margin: 0 24rpx 24rpx;
-        border-radius: 16rpx;
-        white-space: nowrap;
-        font-size: 26rpx;
-        padding-top: 20rpx;
-        &.no-ing {
-            border-top-left-radius: 0;
-            border-top-right-radius: 0;
-        }
-        .app-item {
-            display: inline-block;
-            padding-bottom: 10rpx;
-            padding-right: 5rpx;
-            margin-left: 40rpx;
-            margin-right: 15rpx;
-            &.app-active-item {
-                border-bottom: 2rpx solid;
-            }
-        }
-    }
-
-    .middleman {
-        margin-top: -360rpx;
-        height: 190rpx;
-        color: #ffffff;
-        padding: 0 35rpx;
-        position: relative;
-        .space {
-            color: #fff;
-            font-size: 22rpx;
-            position: absolute;
-            top: 45rpx;
-            right: 30rpx;
-        }
-        .arrow-image {
-            margin-left: 36rpx;
-            width: #{12rpx};
-            height: #{24rpx};
-            position: absolute;
-            top: 50%;
-            right: 30rpx;
-            margin-top: -12rpx;
-        }
-        .location {
-            font-size: 40rpx;
-            width: 70%;
-            margin-bottom: 15rpx;
-            margin-top: -10rpx;
-        }
-        .middleman-info {
-            font-size: 26rpx;
-            .avatar {
-                width: 58rpx;
-                height: 58rpx;
-                border-radius: 50%;
-                margin-right: 20rpx;
-                flex-shrink: 0;
-            }
-            .user-info {
-                .icon {
-                    height: 25rpx;
-                    width: 25rpx;
-                    margin-right: 6rpx;
-                    color: #ff4544;
-                }
-            }
-        }
-    }
-    .time {
-        padding: 0 36rpx;
-        color: #ff4544;
-        height: 90rpx;
-        line-height: 90rpx;
-        margin: 0 24rpx;
-        width: 702rpx;
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        background-color: #F2F2F2;
-        position: relative;
-        z-index: 2;
-        font-size: 24rpx;
-        .icon {
-            color: #ff4544;
-            width: 24rpx;
-            height: 24rpx;
-            margin-right: 10rpx;
-        }
-    }
-    .status-area {
-        width: 702rpx;
-        margin: 0 24rpx;
-        padding-bottom: 24rpx;
-        border-radius: 16rpx;
-        background-color: #f7f7f7;
-        position: relative;
-        z-index: 2;
-        .status {
-            background-color: #fff;
-            border-radius: 16rpx;
-            padding: 24rpx;
-            .end-time {
-                color: #ff4544;
-                text-align: center;
-                font-size: 24rpx;
-            }
-            .condition {
-                color: #353535;
-                font-size: 24rpx;
-                width: 100%;
-                .end-time {
-                    color: #ff4544;
-                }
-            }
-            .progress {
-                width: #{654rpx};
-                background-color: #f0f0f0;
-                border-radius: #{10rpx};
-                height: #{20rpx};
-                position: relative;
-                margin: 15rpx 0;
-                overflow: hidden;
-                view {
-                    border-radius: #{10rpx};
-                    height: #{20rpx};
-                    position: absolute;
-                    top: 0;
-                    left: 0;
-                    z-index: 2;
-                }
-            }
-            .buy-user {
-                height: 58rpx;
-                .user-list {
-                    image {
-                        width: 58rpx;
-                        height: 58rpx;
-                        margin-left: -14rpx;
-                        border-radius: 50%;
-                        border: 2rpx solid #ffffff;
-                    }
-                }
-                .sales {
-                    font-size: 24rpx;
-                    line-height: 58rpx;
-                    height: 58rpx;
-                    margin-left: 14rpx;
-                    text {
-                        color: #ff4544;
-                    }
-                }
-            }
-            .new-buy {
-                margin-top: 20rpx;
-                color: #999999;
-                font-size: 24rpx;
-                image {
-                    width: 60rpx;
-                    height: 60rpx;
-                    border-radius: 50%;
-                    display: block;
-                    margin-right: 20rpx;
-                }
-            }
-        }
-    }
-    .list {
-        margin: 0 24rpx;
-        width: 702rpx;
-        .goods {
-            background-color: #fff;
-            border-radius: 16rpx;
-            width: 702rpx;
-            height: 220rpx;
-            margin-bottom: 20rpx;
-            position: relative;
-            z-index: 2;
-            .out-dialog {
-                width: #{220rpx};
-                height: #{220rpx};
-                border-radius: #{16rpx};
-                position: absolute;
-                top: 0;
-                left: 0;
-                z-index: 10;
-                background-color: rgba(0,0,0,.5);
-                image {
-                    width: #{220rpx};
-                    height: #{220rpx};
-                    border-radius: #{16rpx};
-                }
-            }
-            .cover {
-                height: 220rpx;
-                width: 220rpx;
-                border-radius: 16rpx;
-                margin-right: 15rpx;
-            }
-            .info {
-                padding: 20rpx 0;
-                position: relative;
-                .name {
-                    width: 445rpx;
-                    // #ifndef MP-ALIPAY
-                    height: 72rpx;
-                    // #endif
-                    // #ifdef MP-ALIPAY
-                    height: 66rpx;
-                    // #endif
-                    font-size: 28rpx;
-                }
-                .sale {
-                    height: 30rpx;
-                    line-height: 28rpx;
-                    font-size: 22rpx;
-                    margin-top: 18rpx;
-                    display: inline-block;
-                    position: relative;
-                    >view {
-                        padding: 0 10rpx;
-                        border: 2rpx solid;
-                        display: inline-block;
-                    }
-                    .sale-bg {
-                        padding: 0;
-                        position: absolute;
-                        top: 0;
-                        left: 0;
-                        opacity: 0.1;
-                        border-top-left-radius: 15rpx;
-                        border-bottom-left-radius: 15rpx;
-                        border: 0;
-                        height: 100%;
-                        width: 100%;
-                    }
-                    view:first-of-type {
-                        border-right: 0;
-                        border-top-left-radius: 15rpx;
-                        border-bottom-left-radius: 15rpx;
-                    }
-                    .stock {
-                        border-top-right-radius: 15rpx;
-                        border-bottom-right-radius: 15rpx;
-                        border-left: 0;
-                        background-color: #fff;
-                    }
-                }
-                .price {
-                    font-size: 32rpx;
-                    position: absolute;
-                    bottom: 20rpx;
-                    left: 0;
-                }
-                .cart {
-                    background-repeat: no-repeat;
-                    background-size: 100% 100%;
-                    background-image:url("https://shop.9026.com/web/statics/image/mall/static/icon/cats.png");
-                    border: 0;
-                    border-radius: 50%;
-                    position: absolute;
-                    bottom: 20rpx;
-                    right: 0;
-                    width: 80rpx;
-                    height: 80rpx;
-                    z-index: 2;
-                }
-            }
-        }
-    }
-    .cart-placeholder {
-        height: 450rpx;
-        &.cart-list-placeholder {
-            height: 150rpx;
-            &.again-placeholder {
-                height: 210rpx;
-            }
-        }
-        &.more-placeholder {
-            height: 540rpx;
-        }
-    }
-    .total-price {
-        width: 350rpx;
-        text {
-            font-size: 32rpx;
-        }
-    }
-    .minus-price {
-        width: 350rpx;
-    }
-    .discount {
-        position: fixed;
-        bottom: 145rpx;
-        left: 0;
-        height: 60rpx;
-        line-height: 60rpx;
-        width: 100%;
-        font-size: 24rpx;
-        z-index: 10;
-        background-color: #fff;
-        .discount-bg {
-            position: fixed;
-            bottom: 145rpx;
-            left: 0;
-            height: 60rpx;
-            line-height: 60rpx;
-            width: 100%;
-            opacity: 0.1;
-            z-index: 10;
-        }
-        text {
-            margin-right: 10rpx;
-        }
-    }
-    .cart-item {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        height: 145rpx;
-        width: 100%;
-        padding: 0 16rpx 24rpx;
-        background-color: #fff;
-        z-index: 20;
-        box-shadow: 0 0 #{10rpx} rgba(0,0,0,.3);
-        .cart-left {
-            font-size: 24rpx;
-            color: #353535;
-            height: 74rpx;
-            line-height: 74rpx;
-            .cart-icon {
-                position: relative;
-                margin-right: 45rpx;
-                image {
-                    width: 74rpx;
-                    height: 74rpx;
-                    border-radius: 50%;
-                }
-                view {
-                    position: absolute;
-                    top: -5rpx;
-                    left: 52rpx;
-                    height: #{34rpx};
-                    line-height: #{34rpx};
-                    border-radius: #{17rpx};
-                    color: #fff;
-                    padding: 0 #{10rpx};
-                }
-            }
-            .price-info {
-                height: 74rpx;
-                >view {
-                    height: 37rpx;
-                    line-height: 37rpx;
-                }
-            }
-        }
-        .cart-right {
-            font-size: 28rpx;
-            color: #fff;
-            height: 78rpx;
-            line-height: 78rpx;
-            border-radius: 39rpx;
-            padding: 0 50rpx;
-        }
-    }
-    .dialog-btn {
-        position: fixed;
-        bottom: 175rpx;
-        left: 30rpx;
-        z-index: 10;
-        >view {
-            margin-top: 10rpx;
-            width: 80rpx;
-            height: 80rpx;
-            image {
-                width: 80rpx;
-                height: 80rpx;
-            }
-        }
-    }
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: rgba(0,0,0,.3);
-        z-index: 18;
-        .dialog {
-            background-color: #fff;
-            border-top-left-radius: 16rpx;
-            border-top-right-radius: 16rpx;
-            position: fixed;
-            bottom: -600rpx;
-            left: 0;
-            width: 100%;
-            z-index: 19;
-            padding: 0 24rpx;
-            &.cart-dialog {
-                bottom: 0
-            }
-            .cart-discount {
-                height: 60rpx;
-                line-height: 60rpx;
-                width: 100%;
-                font-size: 24rpx;
-                z-index: 10;
-                border-top-left-radius: 16rpx;
-                border-top-right-radius: 16rpx;
-                position: relative;
-                .discount-bg {
-                    position: absolute;
-                    top: 0;
-                    left: 0;
-                    width: 100%;
-                    height: 100%;
-                    opacity: 0.1;
-                }
-                text {
-                    margin-right: 10rpx;
-                }
-            }
-            .title {
-                height: 84rpx;
-                line-height: 84rpx;
-                font-size: 26rpx;
-                padding: 0 24rpx;
-                color: #353535;
-                image {
-                    display: block;
-                    width: 40rpx;
-                    height: 40rpx;
-                    margin-right: 12rpx;
-                }
-            }
-            .goods-list {
-                padding: 0 24rpx;
-                max-height: 510rpx;
-                overflow: auto;
-            }
-            .goods {
-                background-color: #fff;
-                border-radius: 8rpx;
-                width: 702rpx;
-                margin-bottom: 20rpx;
-                padding-top: 20rpx;
-                border-top: 2rpx solid #e2e2e2;
-                position: relative;
-                z-index: 22;
-                &:first-of-type {
-                    border-top: 0;
-                    padding-top: 0;
-                }
-                .cover {
-                    height: 180rpx;
-                    width: 180rpx;
-                    border-radius: 8rpx;
-                    margin-right: 25rpx;
-                }
-                .info {
-                    position: relative;
-                    width: 492rpx;
-                    .name {
-                        width: 445rpx;
-                        max-height: 72rpx;
-                        font-size: 28rpx;
-                        margin-bottom: 20rpx;
-                    }
-                    .attr {
-                        font-size: 24rpx;
-                        color: #999999;
-                        .attr-group {
-                            margin-left: 10rpx;
-                            &:first-of-type {
-                                margin-left: 0;
-                            }
-                        }
-                    }
-                    .price {
-                        font-size: 30rpx;
-                        position: absolute;
-                        bottom: 0;
-                        left: 0;
-                    }
-                    .app-add-subtract {
-                        height: #{60rpx};
-                        position: absolute;
-                        bottom: 0;
-                        right: 0;
-                        .app-icon {
-                            height: #{44rpx};
-                            width: #{44rpx};
-                            background-size: 100% 100%;
-                            background-repeat: no-repeat;
-                        }
-                        .app-value {
-                            height: #{60rpx};
-                            width: #{88rpx};
-                            input,view {
-                                height: #{60rpx};
-                                width: #{88rpx};
-                                font-size: #{26rpx};
-                                color: #353535;
-                                background-color: #ffffff;
-                                text-align: center;
-                            }
-                            view {
-                                line-height: #{60rpx};
-                                color: #999999;
-                            }
-                        }
-                    }
-                }
-            }
-            .end-close {
-                position: fixed;
-                bottom: 488rpx;
-                right: 0;
-                z-index: 20;
-                width: 80rpx;
-                height: 80rpx;
-                padding: 25rpx;
-                image {
-                    width: 30rpx;
-                    height: 30rpx;
-                }
-            }
-            .end-title {
-                margin-top: 40rpx;
-                font-size: 32rpx;
-                color: #353535;
-                text-align: center;
-            }
-            .end-recommend {
-                font-size: 24rpx;
-                color: #999999;
-                height: 70rpx;
-                .end-line {
-                    width: 40rpx;
-                    height: 2rpx;
-                    background-color: #999999;
-                    margin: 0 15rpx;
-                }
-            }
-            .end-sec-title {
-                font-size: 28rpx;
-                color: #353535;
-                text-align: center;
-            }
-            .recommend-goods {
-                margin-top: 25rpx;
-                margin-bottom: 135rpx;
-                image {
-                    width: 220rpx;
-                    height: 220rpx;
-                    border-radius: 8rpx;
-                    display: block;
-                    margin: 0 33rpx;
-                }
-            }
-            .to-activity {
-                position: fixed;
-                bottom: 0;
-                left: 0;
-                height: 100rpx;
-                width: 100%;
-                text-align: center;
-                line-height: 100rpx;
-                color: #fff;
-                font-size: 30rpx;
-            }
-        }
-    }
-    .attr-bottom {
-        position: fixed;
-        z-index: 1666;
-        bottom: 0;
-        left: 0;
-        height: #{110rpx};
-        width: 100%;
-        padding: 20upx 24upx;
-        font-size: $uni-font-size-general-one;
-        .total-price {
-            margin-left: 25rpx;
-        }
-    }
-    .input-info {
-        margin: 0 24rpx;
-        background-color: #fff;
-        border-radius: 16rpx;
-        width: 702rpx;
-        .input-item {
-            font-size: 26rpx;
-            padding: 30rpx;
-            padding-bottom: 15rpx;
-            border-top: 2rpx solid #e2e2e2;
-            view.input {
-                line-height: 52rpx;
-                word-break: break-all;
-            }
-            &:first-of-type {
-                border-top: 0;
-            }
-            .input-label {
-                color: #666;
-                margin-bottom: 10rpx;
-            }
-        }
-    }
-    .u-add-btn {
-        color: #ffffff;
-        border-radius: 35upx;
-    }
-</style>

+ 0 - 401
src/plugins/community/address-parse.js

xqd
@@ -1,401 +0,0 @@
-
-/**
- * 需要解析的地址,type是解析的方式,默认是正则匹配
- * @param address
- * @param options:type: 0:正则,1:树查找, textFilter: 清洗的字段
- * @returns {{}|({area: Array, province: Array, phone: string, city: Array, name: string, detail: Array} & {area: (*|string), province: (*|string), city: (*|string), detail: (Array|boolean|string|string)})}
- * @constructor
- */
-const AddressParse = (address, options, provinceString, cityString, areaString) => {
-    const { type = 0, textFilter = [] } = typeof options === 'object' ? options : {};
-
-    if (!address) {
-        return {}
-    }
-
-    const parseResult = {
-        phone: '',
-        province: [],
-        city: [],
-        area: [],
-        detail: [],
-        name: '',
-    };
-    address = cleanAddress(address, textFilter);
-
-    // 识别手机号
-    const resultPhone = filterPhone(address);
-    address = resultPhone.address;
-    parseResult.phone = resultPhone.phone;
-
-    const resultCode = filterPostalCode(address);
-    address = resultCode.address;
-    parseResult.postalCode = resultCode.postalCode;
-
-    // 地址分割
-    const splitAddress = address.split(' ').filter(item => item).map(item => item.trim());
-
-    // 找省市区和详细地址
-    splitAddress.forEach((item) => {
-        // 识别地址
-        if (!parseResult.province[0] || !parseResult.city[0] || !parseResult.area[0]) {
-            // 两个方法都可以解析,正则和树查找
-            let parse;
-            type === 1 && (parse = parseRegion(item, parseResult));
-            type === 0 && (parse = parseRegionWithRegexp(item, parseResult, provinceString, cityString, areaString));
-            const {province, city, area, detail} = parse;
-            parseResult.province = province || [];
-            parseResult.area = area || [];
-            parseResult.city = city || [];
-            parseResult.detail = parseResult.detail.concat(detail || []);
-        } else {
-            parseResult.detail.push(item);
-        }
-    });
-
-    // 地址都解析完了,如果还没有姓名,那么姓名应该是在详细地址里面,取详细地址里面长度最小的那个
-    if (!parseResult.name) {
-        const detail = JSON.parse(JSON.stringify(parseResult.detail));
-        detail.sort((a, b) => a.length - b.length);
-        parseResult.name = detail[0];
-        const nameIndex = parseResult.detail.findIndex(item => item === parseResult.name);
-        parseResult.detail.splice(nameIndex, 1)
-    }
-
-
-    const province = parseResult.province[0];
-    const city = parseResult.city[0];
-    const area = parseResult.area[0];
-    const detail = parseResult.detail;
-
-    return Object.assign(parseResult, {
-        province: (province && province.name) || '',
-        city: (city && city.name) || '',
-        area: (area && area.name) || '',
-        detail: (detail && detail.length > 0 && detail.join('')) || ''
-    })
-};
-
-/**
- * 利用正则表达式解析
- * @param fragment
- * @param hasParseResult
- * @returns {{area: (Array|*|string), province: (Array|*|string), city: (Array|*|string|string), detail: (*|Array)}}
- */
-const parseRegionWithRegexp = (fragment, hasParseResult, provinceString, cityString, areaString) => {
-    // log('----- 当前使用正则匹配模式 -----')
-    let province = hasParseResult.province || [], city = hasParseResult.city || [], area = hasParseResult.area || [],
-        detail = [];
-
-    let matchStr = '';
-    if (province.length === 0) {
-        for (let i = 1; i < fragment.length; i++) {
-            const str = fragment.substring(0, i + 1);
-            const regexProvince = new RegExp(`\{\"code\":\"[0-9]{1,6}\",\"name\":\"${str}[\u4E00-\u9FA5]*?\"}`, 'g');
-            const matchProvince = provinceString.match(regexProvince);
-            if (matchProvince) {
-                const provinceObj = JSON.parse(matchProvince[0]);
-                if (matchProvince.length === 1) {
-                    province = [];
-                    matchStr = str;
-                    province.push(provinceObj)
-                }
-            } else {
-                break
-            }
-        }
-
-        if (province[0]) {
-            fragment = fragment.replace(matchStr, '')
-        }
-
-    }
-
-    if (city.length === 0) {
-        for (let i = 1; i < fragment.length; i++) {
-            const str = fragment.substring(0, i + 1);
-            const regexCity = new RegExp(`\{\"code\":\"[0-9]{1,6}\",\"name\":\"${str}[\u4E00-\u9FA5]*?\",\"provinceCode\":\"${province[0] ? `${province[0].code}` : '[0-9]{1,6}'}\"\}`, 'g');
-            const matchCity = cityString.match(regexCity);
-            if (matchCity) {
-                const cityObj = JSON.parse(matchCity[0]);
-                if (matchCity.length === 1) {
-                    city = [];
-                    matchStr = str;
-                    city.push(cityObj);
-                }
-            } else {
-                break;
-            }
-        }
-        if (city[0]) {
-            const {provinceCode} = city[0];
-            fragment = fragment.replace(matchStr, '');
-            if (province.length === 0) {
-                const regexProvince = new RegExp(`\{\"code\":\"${provinceCode}\",\"name\":\"[\u4E00-\u9FA5]+?\"}`, 'g');
-                const matchProvince = provinceString.match(regexProvince);
-                province.push(JSON.parse(matchProvince[0]))
-            }
-        }
-
-    }
-
-    if (area.length === 0) {
-        for (let i = 1; i < fragment.length; i++) {
-            const str = fragment.substring(0, i + 1);
-            const regexArea = new RegExp(`\{\"code\":\"[0-9]{1,6}\",\"name\":\"${str}[\u4E00-\u9FA5]*?\",\"cityCode\":\"${city[0] ? city[0].code : '[0-9]{1,6}'}\",\"provinceCode\":\"${province[0] ? `${province[0].code}` : '[0-9]{1,6}'}\"\}`, 'g');
-            const matchArea = areaString.match(regexArea);
-            if (matchArea) {
-                const areaObj = JSON.parse(matchArea[0]);
-                if (matchArea.length === 1) {
-                    area = [];
-                    matchStr = str;
-                    area.push(areaObj);
-                }
-            } else {
-                break
-            }
-        }
-        if (area[0]) {
-            const {provinceCode, cityCode} = area[0];
-            fragment = fragment.replace(matchStr, '');
-            if (province.length === 0) {
-                const regexProvince = new RegExp(`\{\"code\":\"${provinceCode}\",\"name\":\"[\u4E00-\u9FA5]+?\"}`, 'g');
-                const matchProvince = provinceString.match(regexProvince);
-                province.push(JSON.parse(matchProvince[0]));
-            }
-            if (city.length === 0) {
-                const regexCity = new RegExp(`\{\"code\":\"${cityCode}\",\"name\":\"[\u4E00-\u9FA5]+?\",\"provinceCode\":\"${provinceCode}\"\}`, 'g');
-                const matchCity = cityString.match(regexCity);
-                city.push(JSON.parse(matchCity[0]));
-            }
-        }
-    }
-
-
-    // 解析完省市区如果还存在地址,则默认为详细地址
-    if (fragment.length > 0) {
-        detail.push(fragment)
-    }
-
-    return {
-        province,
-        city,
-        area,
-        detail,
-    }
-};
-
-/**
- * 利用树向下查找解析
- * @param fragment
- * @param hasParseResult
- * @returns {{area: Array, province: Array, city: Array, detail: Array}}
- */
-const parseRegion = (fragment, hasParseResult) => {
-    // log('----- 当前使用树查找模式 -----')
-    let province = [], city = [], area = [], detail = [];
-
-    if (hasParseResult.province[0]) {
-        province = hasParseResult.province
-    } else {
-        // 从省开始查找
-        for (const tempProvince of provinces) {
-            const {name} = tempProvince;
-            let replaceName = '';
-            for (let i = name.length; i > 1; i--) {
-                const temp = name.substring(0, i);
-                if (fragment.indexOf(temp) === 0) {
-                    replaceName = temp;
-                    break;
-                }
-            }
-            if (replaceName) {
-                province.push(tempProvince);
-                fragment = fragment.replace(replaceName, '');
-                break
-            }
-        }
-    }
-    if (hasParseResult.city[0]) {
-        city = hasParseResult.city
-    } else {
-        // 从市区开始查找
-        for (const tempCity of cities) {
-            const {name, provinceCode} = tempCity;
-            const currentProvince = province[0];
-            // 有省
-            if (currentProvince) {
-                if (currentProvince.code === provinceCode) {
-                    let replaceName = '';
-                    for (let i = name.length; i > 1; i--) {
-                        const temp = name.substring(0, i);
-                        if (fragment.indexOf(temp) === 0) {
-                            replaceName = temp;
-                            break;
-                        }
-                    }
-                    if (replaceName) {
-                        city.push(tempCity);
-                        fragment = fragment.replace(replaceName, '');
-                        break;
-                    }
-                }
-            } else {
-                // 没有省,市不可能重名
-                for (let i = name.length; i > 1; i--) {
-                    const replaceName = name.substring(0, i);
-                    if (fragment.indexOf(replaceName) === 0) {
-                        city.push(tempCity);
-                        province.push(provinces.find(item => item.code === provinceCode));
-                        fragment = fragment.replace(replaceName, '');
-                        break;
-                    }
-                }
-                if (city.length > 0) {
-                    break;
-                }
-            }
-        }
-    }
-
-    // 从区市县开始查找
-    for (const tempArea of areas) {
-        const {name, provinceCode, cityCode} = tempArea;
-        const currentProvince = province[0];
-        const currentCity = city[0];
-
-        // 有省或者市
-        if (currentProvince || currentCity) {
-            if ((currentProvince && currentProvince.code === provinceCode)
-                || (currentCity && currentCity.code) === cityCode) {
-                let replaceName = '';
-                for (let i = name.length; i > 1; i--) {
-                    const temp = name.substring(0, i);
-                    if (fragment.indexOf(temp) === 0) {
-                        replaceName = temp;
-                        break
-                    }
-                }
-                if (replaceName) {
-                    area.push(tempArea);
-                    !currentCity && city.push(cities.find(item => item.code === cityCode));
-                    !currentProvince && province.push(provinces.find(item => item.code === provinceCode));
-                    fragment = fragment.replace(replaceName, '');
-                    break;
-                }
-            }
-        } else {
-            // 没有省市,区县市有可能重名,这里暂时不处理,因为概率极低,可以根据添加市解决
-            for (let i = name.length; i > 1; i--) {
-                const replaceName = name.substring(0, i);
-                if (fragment.indexOf(replaceName) === 0) {
-                    area.push(tempArea);
-                    city.push(cities.find(item => item.code === cityCode));
-                    province.push(provinces.find(item => item.code === provinceCode));
-                    fragment = fragment.replace(replaceName, '');
-                    break;
-                }
-            }
-            if (area.length > 0) {
-                break;
-            }
-        }
-    }
-
-    // 解析完省市区如果还存在地址,则默认为详细地址
-    if (fragment.length > 0) {
-        detail.push(fragment)
-    }
-
-    return {
-        province,
-        city,
-        area,
-        detail,
-    }
-};
-
-/**
- * 匹配电话
- * @param address
- * @returns {{address: *, phone: string}}
- */
-const filterPhone = (address) => {
-    let phone = '';
-    // 整理电话格式
-    address = address.replace(/(\d{3})-(\d{4})-(\d{4})/g, '$1$2$3');
-    address = address.replace(/(\d{3}) (\d{4}) (\d{4})/g, '$1$2$3');
-    address = address.replace(/(\d{4}) \d{4} \d{4}/g, '$1$2$3');
-    address = address.replace(/(\d{4})/g, '$1');
-
-    const mobileReg = /(\d{7,12})|(\d{3,4}-\d{6,8})|(86-[1][0-9]{10})|(86[1][0-9]{10})|([1][0-9]{10})/g;
-    const mobile = mobileReg.exec(address);
-    if (mobile) {
-        phone = mobile[0];
-        address = address.replace(mobile[0], ' ')
-    }
-    return {address, phone}
-};
-
-/**
- * 匹配邮编
- * @param address
- * @returns {{address: *, postalCode: string}}
- */
-const filterPostalCode = (address) => {
-    let postalCode = '';
-    const postalCodeReg = /\d{6}/g;
-    const code = postalCodeReg.exec(address);
-    if (code) {
-        postalCode = code[0];
-        address = address.replace(code[0], ' ');
-    }
-    return {address, postalCode}
-};
-
-/**
- * 地址清洗
- * @param address
- * @returns {*}
- */
-const cleanAddress = (address, textFilter = []) => {
-    // 去换行等
-    address = address
-        .replace(/\r\n/g, ' ')
-        .replace(/\n/g, ' ')
-        .replace(/\t/g, ' ');
-
-    // 自定义去除关键字,可自行添加
-    const search = [
-        '详细地址',
-        '收货地址',
-        '收件地址',
-        '地址',
-        '所在地区',
-        '地区',
-        '姓名',
-        '收货人',
-        '收件人',
-        '联系人',
-        '收',
-        '邮编',
-        '联系电话',
-        '电话',
-        '联系人手机号码',
-        '手机号码',
-        '手机号',
-    ].concat(textFilter);
-    search.forEach(str => {
-        address = address.replace(new RegExp(str, 'g'), ' ')
-    });
-
-    const pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\]\.<>/?~!@#¥……&*()——|{}【】‘;:”“’。,、?]", 'g');
-    address = address.replace(pattern, ' ');
-
-    // 多个空格replace为一个
-    address = address.replace(/ {2,}/g, ' ');
-
-    return address
-};
-
-export default AddressParse;

+ 0 - 830
src/plugins/community/apply/apply.vue

xqd
@@ -1,830 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="middleman.status == 0" class="wait">
-            <image :src="bonusImg.wait"></image>
-            <view>谢谢您的支持,请等待审核...</view>
-            <view class="app-button">
-                <app-button :theme="getTheme" color="#fff" @click="toIndex" arrangement="row" type="important" round width="320">
-                    <text class="app-text">去商城逛逛</text>
-                </app-button>
-            </view>
-        </view>
-        <view v-else-if="middleman.status == 1" class="success">
-            <image :src="bonusImg.success"></image>
-            <view class="success-text">您已成为团长</view>
-            <view class="app-button">
-                <app-button :theme="getTheme" color="#fff" @click="toCommunity" arrangement="row" type="important" round width="320">
-                    <text class="app-text">团长中心</text>
-                </app-button>
-            </view>
-        </view>
-        <view v-else-if="middleman.status == -1" class="pay">
-            <app-head :apply="middleman.status == -1" :theme="getTheme"></app-head>
-            <view class="pay-view">
-                <image class="money-icon" src="https://shop.9026.com/web/statics/img/mall/community/money.png"></image>
-                <view class="money-name">{{setting.apply_money_name}}</view>
-                <view>商家设置了加入门槛,你需要支付相应费用</view>
-                <view class="pay-price">¥<text>{{middleman.pay_price}}</text></view>
-            </view>
-            <view class="app-button">
-                <app-button :theme="getTheme" color="#fff" @click="middlemanPay" roundSize="40rpx" arrangement="row" type="important" round>
-                    <text class="app-text">确认支付</text>
-                </app-button>
-            </view>
-        </view>
-        <view v-else-if="middleman.status == 3" class="refuse">
-            <image src="https://shop.9026.com/web/statics/img/mall/community/refuse.png"></image>
-            <view>您被解除{{setting.middleman}}身份</view>
-            <view class="refuse-info">
-                <view>审核时间:
-                    <text>{{middleman.apply_at}}</text>
-                </view>
-                <view class="refuse-reason">解除理由:
-                    <text style="word-wrap:break-word;">{{middleman.reason ? middleman.reason :"无"}}</text>
-                </view>
-                <view class="app-button">
-                    <app-button :theme="getTheme" color="#fff" @click="reApply" arrangement="row" type="important" round width="320">
-                        <text class="app-text">再次申请</text>
-                    </app-button>
-                </view>
-            </view>
-        </view>
-        <view v-else-if="middleman.status == 2" class="refuse">
-            <image src="https://shop.9026.com/web/statics/img/mall/community/refuse.png"></image>
-            <view>您的申请被拒</view>
-            <view class="refuse-info">
-                <view>审核时间:
-                    <text>{{middleman.apply_at}}</text>
-                </view>
-                <view class="refuse-reason">拒绝理由:
-                    <text style="word-wrap:break-word;">{{middleman.reason ? middleman.reason :"无"}}</text>
-                </view>
-                <view class="app-button">
-                    <app-button :theme="getTheme" color="#fff" @click="reApply" arrangement="row" type="important" round>
-                        <text class="app-text">再次申请</text>
-                    </app-button>
-                </view>
-            </view>
-        </view>
-        <view v-else-if="middleman.status == -2">
-            <app-head :theme="getTheme"></app-head>
-            <view class="title">
-                <view class="big-title-text">{{setting.middleman}}信息</view>
-                <view>用于商品配送管理,请填写真实信息</view>
-            </view>
-            <view class="app-view">
-                <view class="app-line main-between cross-center">
-                    <text class="app-text box-grow-0">姓名</text>
-                    <view class="address-input" style="opacity: 0.3" v-if="address">{{form.name}}</view>
-                    <input v-else placeholder-style="color:#cdcdcd" placeholder="请输入姓名" maxlength="10" class="address-input" type="text" v-model="form.name" />
-                </view>
-                <view class="app-line main-between cross-center">
-                    <text class="app-text box-grow-0">手机号</text>
-                    <view class="address-input" style="opacity: 0.3" v-if="address">{{form.mobile}}</view>
-                    <input v-else placeholder-style="color:#cdcdcd" placeholder="请输入手机号" maxlength="11" class="address-input" type="number" v-model="form.mobile" />
-                </view>
-                <view class="app-line main-between cross-center">
-                    <text class="app-text box-grow-0">省市区</text>
-                    <view class="address-input" v-if="address" style="opacity: 0.3" >{{form.province}},{{form.city}},{{form.district}}</view>
-                    <view v-else class="box-grow-1 area-left">
-                        <app-area-picker @customevent="areaEvent"
-                                         :ids="[form.province_id,form.city_id,form.district_id]"></app-area-picker>
-                    </view>
-                </view>
-                <!-- #ifndef MP-TOUTIAO -->
-                <view v-if="is_refund_address == 0" class="app-line main-between cross-center">
-                    <text class="app-text box-grow-0">所在地区</text>
-                    <view class="h-100 main-right dir-left-nowrap cross-center box-grow-1" @click="getChooseLocation" :style="{'opacity': address ? '0.3' : '1'}">
-                        <view class="box-grow-0 c-address t-omit" :class="{'placeholder':!location}">{{location ? location : '请选择所在地区'}}</view>
-                        <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png" class="box-grow-0 icon-arrow-image"></image>
-                    </view>
-                </view>
-                <!-- #endif -->
-
-                <view class="app-line main-between cross-center">
-                    <text class="app-text box-grow-0">提货地址</text>
-                    <input placeholder-style="color:#cdcdcd" placeholder="请输入详细提货地址" class="address-input" type="text" :focus="focus" @blur="focus = false" v-model="form.detail" />
-                </view>
-            </view>
-            <view class="app-button">
-                <app-button v-if="address" :theme="getTheme" color="#fff" @click="saveAddress" arrangement="row" type="important" round width="90%">
-                    <text class="app-text">保存</text>
-                </app-button>
-                <app-button v-else :theme="getTheme" color="#fff" @click="submit" arrangement="row" type="important" round width="90%">
-                    <text class="app-text">下一步</text>
-                </app-button>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appAreaPicker from '../../../components/page-component/app-area-picker/app-area-picker.vue';
-    import appHead from '../components/app-head.vue';
-    import appTextArea from '../../../components/basic-component/app-textarea/app-textarea.vue';
-
-    export default {
-        data() {
-            return {
-                wait: false,
-                middleman: {
-                    status: 99
-                },
-                id: null,
-                form: {
-                    location: '',
-                    latitude: '',
-                    longitude: '',
-                    name: '',
-                    mobile: '',
-                    province_id: 0,
-                    city_id: 0,
-                    district_id: 0,
-                    detail: '',
-                },
-                location: '',
-                setting: {
-                    middleman: ''
-                },
-                is_refund_address: 0,
-                detail_url: '',
-                list: [],
-                submit_status: false,
-                automatic: '',
-                province: [],
-                focus: false,
-                address: false,
-            }
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                community: state => state.mallConfig.__wxapp_img.community,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-            })
-        },
-        components: {appAreaPicker, appTextArea, appHead},
-
-        onLoad(options) { this.$commonLoad.onload(options);
-            if(options.id > 0) {
-                this.address = true;
-            }
-            this.getPlace();
-            this.getStatus();
-        },
-        methods: {
-            areaEvent(data) {
-                if (data) {
-                    this.form.province_id = data.province.id;
-                    this.form.city_id = data.city.id;
-                    this.form.district_id = data.district.id;
-                }
-            },
-            toCommunity() {
-                uni.navigateTo({
-                    url: '/plugins/community/index/index'
-                }); 
-            },
-            toIndex() {
-                uni.navigateTo({
-                    url: '/pages/index/index'
-                }); 
-            },
-            reApply() {
-                let that = this;
-                that.middleman.status = -2;
-            },
-            middlemanPay() {
-                let that = this;
-                if(that.id > 0) {
-                    that.pay(that.id);
-                    return false;
-                }
-                that.$request({
-                    url: that.$api.community.apply_pay,
-                    data: {
-                        id: that.middleman.id
-                    }
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.pay(response.data.id);
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.index,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.setting = response.data.setting;
-                        uni.setNavigationBarTitle({
-                            title: '申请' + that.setting.middleman,
-                        })
-                        if(response.data.middleman.id > 0) {
-                            that.middleman = response.data.middleman;
-                            if(that.address) {
-                                that.middleman.status = -2;
-                                that.form = response.data.middleman;
-                                if(that.form.province == that.form.city) {
-                                    that.location = that.form.province + ' ' + that.form.district + ' ' + that.form.location;
-                                }else {
-                                    that.location = that.form.province + ' ' + that.form.city + ' ' + that.form.district + ' ' + that.form.location;
-                                }
-                                uni.setNavigationBarTitle({
-                                    title: '填写' + that.setting.middleman +'信息',
-                                })
-                            }
-                        }else {
-                            that.middleman.status = -2;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    that.$hideLoading();
-                });
-            },
-            getPlace() {
-                let that = this;
-                that.$request({
-                    url: that.$api.city.cityName,
-                }).then(response=>{
-                    if(response.code === 0) {
-                        that.province = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                })
-            },
-            // #ifndef MP-TOUTIAO
-            async getChooseLocation() {
-                const self = this;
-                if(self.address) {
-                    return false
-                }
-                const [err, res] = await uni.chooseLocation();
-
-                if (res) {
-                    if(res.name == '我的位置' || res.address == '我的位置') {
-                        uni.showToast({
-                            title: '请选择具体位置',
-                            icon: 'none'
-                        });
-                        return false;
-                    } 
-                    let province = '';
-                    let city = '';
-                    let area = '';
-                    let name = res.name;
-                    // #ifdef MP-ALIPAY
-                    if(res.provinceName == '上海') {
-                        res.provinceName = '上海市'
-                    }
-                    if(res.provinceName == '澳门特别行政区' || res.provinceName == '香港特别行政区' || res.provinceName == '台湾省') {
-                        uni.showToast({
-                            title: '不支持该地区',
-                            icon: 'none'
-                        });
-                        return false;
-                    }
-                    res.address = res.address.replace(res.provinceName,'');
-                    res.address = res.address.replace(res.cityName,'');
-                    res.address = res.address.replace(res.adName,'');
-                    name = res.name ? res.name : res.address;
-                    res.address = res.provinceName + res.cityName + res.adName + name;
-                    if(!(res.adCode > 0)) {
-                        res.address = '其他其他其他'
-                    }
-                    // #endif
-                    if(!res.address) {
-                        res.address = '其他其他其他'
-                    }
-                    res.address = res.address.replace('北京市北京市','北京市');
-                    res.address = res.address.replace('天津市天津市','天津市');
-                    res.address = res.address.replace('上海市上海市','上海市');
-                    res.address = res.address.replace('重庆市重庆市','重庆市');
-                    res.address = res.address.replace('香港特别行政区香港特别行政区','香港特别行政区');
-                    res.address = res.address.replace('澳门特别行政区澳门特别行政区','澳门特别行政区');
-                    for(let i in self.province) {
-                        if(res.address.indexOf(self.province[i].name) == 0) {
-                            province = self.province[i].name != 'undefined' ? self.province[i].name : '';
-                            self.form.province_id = self.province[i].id;
-                            if(province != '北京市' && province != '天津市' && province != '上海市' && province != '重庆市' && province != '澳门特别行政区' && province != '香港特别行政区') {
-                                res.address = res.address.replace(province,'');
-                            }
-                            for(let j in self.province[i].list) {
-                                if(res.address.indexOf(self.province[i].list[j].name) == 0 && self.province[i].list[j].parent_id == self.province[i].id) {
-                                    city = self.province[i].list[j].name != 'undefined' ? self.province[i].list[j].name : '';
-                                    self.form.city_id = self.province[i].list[j].id;
-                                    res.address = res.address.replace(city,'');
-                                    for(let x in self.province[i].list[j].list) {
-                                        if(res.address.indexOf(self.province[i].list[j].list[x].name) == 0 && self.province[i].list[j].list[x].parent_id == self.province[i].list[j].id && self.province[i].list[j].list[x].provinceCode == self.province[i].code) {
-                                            area = self.province[i].list[j].list[x].name != 'undefined' ? self.province[i].list[j].list[x].name : '';
-                                            self.form.district_id = self.province[i].list[j].list[x].id;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                    }
-                    if(!province || !area || !name) {
-                        self.form.province_id = ''
-                        self.form.city_id = ''
-                        self.form.district_id = ''
-                    }
-                    if(province == city) {
-                        self.location = province + ' ' + area + ' ' + name;
-                    }else {
-                        self.location = province + ' ' + city + ' ' + area + ' ' + name;
-                    }
-                    self.form.location = name;
-                    self.form.latitude = res.latitude;
-                    self.form.longitude = res.longitude;
-                }
-                if (err) {
-                    const setting = () => {
-                        uni.showModal({
-                            title: '授权权限',
-                            content: '请先授权地理位置权限',
-                            success(res) {
-                                if (res.confirm) {
-                                    uni.openSetting({
-                                        success(settingdata) {
-                                            if (settingdata.authSetting['scope.userLocation']) {
-                                                uni.chooseLocation({
-                                                    success: function (res) {
-                                                        self.getChooseLocation();
-                                                    },
-                                                });
-                                            } else {
-                                                uni.showToast({
-                                                    title: '授权失败',
-                                                    icon: 'none'
-                                                });
-                                            }
-                                        }
-                                    })
-                                }
-                            }
-                        })
-                    };
-
-                    //#ifdef MP-BAIDU
-                    if (err.errCode === 1003) {
-                        setting();
-                    }
-                    //#endif
-
-                    //#ifdef MP-WEIXIN
-                    if (err.errMsg === `chooseLocation:fail auth deny`) {
-                        setting();
-                    }
-                    //#endif
-                }
-            },
-            // #endif
-            getInfo(detail) {
-                this.$request({
-                    url: this.$api.user.wechat_district,
-                    data: {
-                        province_name: detail.address[0],
-                        city_name: detail.address[1],
-                        county_name: detail.address[2],
-                    },
-                }).then(info => {
-                    if (info.code === 0) {
-                        const {province, city, district} = info.data.district;
-                        detail.province_id = province.id;
-                        detail.city_id = city.id;
-                        detail.district_id = district.id;
-                        this.form = detail;
-                    }
-                }).catch(() => {
-                    uni.showToast({
-                        title: '网络异常',
-                        icon: 'none',
-                    });
-                })
-            },
-
-            areaEvent(data) {
-                if (data) {
-                    this.form.province_id = data.province.id;
-                    this.form.city_id = data.city.id;
-                    this.form.district_id = data.district.id;
-                    this.list = [data.province.name, data.city.name, data.district.name];
-                }
-            },
-
-            saveAddress() {
-                let that = this;
-                if (!this.form.detail) {
-                    uni.showToast({
-                        title: '提货地址不能为空',
-                        icon: 'none',
-                    });
-                    return false
-                }
-                if (!this.form.province_id || !this.form.city_id || !this.form.district_id) {
-                    uni.showToast({
-                        title: '提货地址不能为空',
-                        icon: 'none',
-                    });
-                    return false
-                }
-                that.$request({
-                    url: that.$api.community.edit_address,
-                    data: {
-                        detail: that.form.detail
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    uni.showToast({
-                        title: response.msg,
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    if(response.code == 0) {
-                        setTimeout(()=>{
-                            uni.navigateBack({});
-                        },1000)
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            async submit() {
-                try {
-                    if (this.submit_status) return;
-                    let content;
-
-                    if (!this.form.detail) {
-                        content = '提货地址不能为空';
-                    }
-                    if (!this.form.location) {
-                        content = '所在地区不能为空';
-                    }
-                    if (!this.form.mobile) {
-                        content = '手机号不能为空';
-                    }
-                    if (!this.form.name) {
-                        content = '姓名不能为空';
-                    }
-                    if (content) {
-                        uni.showToast({
-                            title: content,
-                            icon: 'none'
-                        });
-                        return;
-                    }
-
-                    this.submit_status = true;
-
-                    let url = this.$api.community.apply;
-                    let para = this.form;
-
-                    if (this.is_refund_address > 0) {
-
-                        url = this.$api.app_admin.refund_address_edit;
-                        let {id, name, mobile, detail} = this.form;
-
-                        para = {
-                            form: JSON.stringify({
-                                id,
-                                name,
-                                mobile,
-                                address_detail: detail,
-                                address: this.list,
-                                is_default: 0,
-                                remark: ''
-                            })
-                        }
-                    }
-
-                    const info = await this.$request({
-                        url: url,
-                        data: para,
-                        method: 'POST',
-                    });
-
-                    this.submit_status = false;
-
-                    if (info.code === 0) {
-                        let queue_id = info.data.queue_id;
-                        let token = info.data.token;
-                        this.getResult(queue_id, token)
-                    } else {
-                        uni.showToast({title: info.msg, icon: 'none'});
-                    }
-                } catch (e) {
-                    this.submit_status = false;
-                    throw new Error(e);
-                }
-            },
-            getResult(queue_id,token) {
-                this.$request({
-                    url: this.$api.community.apply_result,
-                    data: {
-                        queue_id: queue_id,
-                        token: token,
-                    },
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data.retry && response.data.retry === 1) {
-                            this.getPayDataTimer = setTimeout(() => {
-                                this.getResult(queue_id, token);
-                            }, 1000);
-                        } else {
-                            uni.hideLoading();
-                            if(response.data.id > 0) {
-                                this.id = response.data.id
-                            }
-                                this.getStatus();
-                        }
-                    } else {
-                        this.exchangeCoupon = false;
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: response.msg,
-                            showCancel: false,
-                        });
-                    }
-                }).catch(e => {
-                    this.exchangeCoupon = false;
-                    uni.hideLoading();
-                    uni.showModal({
-                        title: '提示',
-                        content: e.errMsg,
-                        showCancel: false,
-                    });
-                });
-            },
-            pay(id) {
-                this.$payment.pay(id).then(res => {
-                    this.getStatus();
-                }).catch(() => {
-                    uni.showToast({
-                        title: '支付失败',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                });
-            },
-            detailFocus() {
-                this.focus = true;
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .success {
-        position: absolute;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 100%;
-        background-color: #fff;
-        text-align: center;
-        .success-text {
-            margin: #{-20rpx} auto #{30rpx};
-            color: #353535;
-            font-size: #{40rpx};
-        }
-        image {
-            height: #{270rpx};
-            width: #{380rpx};
-            margin: #{120rpx} auto #{60rpx};
-        }
-        .app-button {
-            margin: #{24rpx} auto;
-            width: #{320rpx};
-        }
-    }
-    .pay {
-        font-size: #{36rpx};
-        color: #353535;
-        text-align: center;
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: #fff;
-        .pay-view {
-            position: relative;
-            margin-top: #{-324rpx};
-            color: #fff;
-            font-size: #{26rpx};
-            .money-icon {
-                width: #{93rpx};
-                height: #{93rpx};
-                border-radius: 50%;
-                margin-bottom: #{20rpx};
-            }
-            .money-name {
-                font-size: #{34rpx};
-                margin-bottom: #{10rpx};
-            }
-            .pay-price {
-                margin-top: #{150rpx};
-                color: #353535;
-                font-size: #{50rpx};
-                text {
-                    font-size: #{70rpx};
-                }
-            }
-        }
-    }
-    .refuse {
-        font-size: #{36rpx};
-        color: #353535;
-        text-align: center;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: #fff;
-        position: absolute;
-        image {
-            height: #{160rpx};
-            width: #{160rpx};
-            margin: #{80rpx} auto #{40rpx};
-        }
-        view {
-            margin-bottom:#{25rpx};
-        }
-        .refuse-reason {
-            margin:#{10rpx} 0 #{76rpx};
-        }
-        .refuse-info {
-            font-size: #{28rpx};
-            color: #999;
-            border-top: #{1rpx} solid #e2e2e2;
-            width: #{520rpx};
-            margin: 0 auto;
-            margin-bottom: 0;
-            padding-top: #{30rpx};
-            padding-left: #{20rpx};
-            text-align: left;
-            text {
-                color: #666;
-            }
-        }
-        .app-button {
-            margin: #{24rpx} auto;
-            width: #{320rpx};
-        }
-    }
-    .wait {
-        color: #666;
-        font-size: #{32rpx};
-        text-align: center;
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: #fff;
-        view {
-            margin-bottom: #{68rpx};
-        }
-        image {
-            height: #{270rpx};
-            width: #{380rpx};
-            margin: #{120rpx} auto #{60rpx};
-        }
-        .app-button {
-            margin: #{24rpx} auto;
-            width: #{320rpx};
-        }
-    }
-    .title {
-        font-size: #{26rpx};
-        color: #fff;
-        margin-top: #{-360rpx};
-        text-align: center;
-        height: #{160rpx};
-        padding-top: #{30rpx};
-        position: relative;
-        .big-title-text {
-            font-size: #{34rpx};
-            margin: 0 0 #{12rpx};
-        }
-    }
-    .popup {
-        position: fixed;
-        background: rgba(0, 0, 0, 0.5);
-        padding: #{50rpx};
-        top: 0;
-        left: 0;
-        right: 0;
-        bottom: 0;
-        z-index: 2000;
-        .textarea {
-            width: 100%;
-            background: #fff;
-            border: #{1rpx} solid #ccc;
-            z-index: 1;
-            padding: #{24rpx};
-            border-radius: #{5rpx};
-        }
-        .c {
-            position: fixed;
-            left: 0;
-            top: 0;
-            right: 0;
-            bottom: 0;
-            z-index: 0;
-        }
-    }
-    .h-100 {
-        height: 100%;
-    }
-
-    .app-button {
-        margin: #{40rpx} #{24rpx};
-        color: #fff;
-        text {
-            color: #fff!important;
-        }
-    }
-
-    .address-input {
-        width: #{580rpx};
-        font-size: #{28rpx};
-        color: #353535;
-    }
-
-    .area-left {
-        text-align: text;
-        margin-left: auto;
-    }
-
-    .app-view {
-        background-color: #ffffff;
-        position: relative;
-        z-index: 10;
-        width: #{702rpx};
-        margin: 0 auto;
-        border-radius: #{16rpx};
-        .app-line {
-            height: #{118rpx};
-            line-height: #{118rpx};
-            padding: #{0 32rpx 0 0};
-            text.app-text {
-                font-size: #{28rpx};
-                color: $uni-important-color-black;
-                width: #{140rpx};
-                margin-right: #{20rpx};
-                text-align: right;
-                flex-shrink: 0;
-            }
-        }
-
-        .c-address {
-            padding-right: #{24rpx};
-            font-size: #{28rpx};
-            color: #353535;
-            width: #{500rpx};
-            height: 100%;
-            &.placeholder {
-                color: #cdcdcd;
-            }
-        }
-
-        .icon-arrow-image {
-            width: #{12rpx};
-            height: #{24rpx};
-        }
-
-        .tip {
-            padding: #{0 24rpx 24rpx 24rpx};
-            background: #ffffff;
-            color: #b7b7b7;
-        }
-    }
-</style>

+ 0 - 224
src/plugins/community/captain/captain.vue

xqd
@@ -1,224 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="list.length > 0">
-            <view @click="bind(item)" class="dir-left-nowrap cross-center captain" v-for="item in list" :key="item.id">
-                <image class="avatar" :src="item.avatar"></image>
-                <view class="user dir-top-nowrap main-center">
-                    <view class="name t-omit">
-                        <text>{{item.name}}</text>
-                        <view class="space" :style="{'color': getTheme.color}">距你{{item.space}}</view>
-                    </view>
-                    <view class="t-omit">{{item.mobile}}</view>
-                    <view class="address t-omit-two">
-                        <view>
-                            <image class="icon" src="https://shop.9026.com/web/statics/img/mall/community/add.png"></image>
-                            提货地址:{{item.province}}
-                            <text v-if="item.province != item.city">{{item.city}}</text>{{item.district}}{{item.detail}}
-                        </view>
-                    </view>
-                </view>
-                <image class="arrow-image" src="https://shop.9026.com/web/statics/image/mall/static/icon/right.png"></image>
-            </view>
-        </view>
-        <view v-if="list.length == 0 && !loading" class="empty-box">
-            <image src="https://shop.9026.com/web/statics/img/mall/community/no-one.png"></image>
-            <span>暂无团长</span>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-
-    export default {
-        data() {
-            return {
-                longitude: '',
-                latitude: '',
-                list: [],
-                loading: false,
-                page: 1,
-            }
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                userInfo: state => state.user.info,
-            })
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            this.longitude = options.longitude;
-            this.latitude = options.latitude;
-            this.getList();
-        },
-        methods: {
-            bind(item) {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '绑定中...'
-                });
-                that.$request({
-                    url: that.$api.community.bind,
-                    data: {
-                        middleman_id: item.user_id
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    uni.removeStorage({
-                        key: 'middleman_info'
-                    });
-                    if(response.data.is_private) {
-                        uni.showToast({
-                            title: '切换成功',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        item.is_allow_change = 1;
-                        uni.setStorage({
-                            key: 'middleman_info',
-                            data: item
-                        })
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                    if(response.code == 0) {
-                        uni.setStorage({
-                            key: 'bind',
-                            data: item.user_id,
-                            success: function () {
-                                setTimeout(function(){
-                                    uni.navigateBack({});
-                                },1000)
-                            },
-                            fail() {
-                                setTimeout(function(){
-                                    uni.navigateBack({});
-                                },1000)
-                            }
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                that.loading = true;
-                that.$showLoading({
-                    type: 'global',
-                    text: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.community.middleman_list,
-                    data: {
-                        longitude: this.longitude,
-                        latitude: this.latitude,
-                        page: this.page,
-                    }
-                }).then(response=>{
-                    that.$hideLoading();
-                    that.loading = false;
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                        for(let i in  that.list) {
-                            that.list[i].space = ~~that.list[i].distance +'m';
-                            if(that.list[i].distance > 1000) {
-                                that.list[i].space = (that.list[i].distance / 1000).toFixed(1) + 'km'
-                            }
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.loading = false;
-                    that.$hideLoading();
-                });
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .captain {
-        width: #{698rpx};
-        height: #{192rpx};
-        border-radius: #{16rpx};
-        padding: 0 #{32rpx};
-        margin: #{20rpx} #{28rpx} 0;
-        background-color: #fff;
-        .avatar {
-            width: #{84rpx};
-            height: #{84rpx};
-            border-radius: 50%;
-            margin-right: #{18rpx};
-            flex-shrink: 0;
-        }
-        .user {
-            width: #{495rpx};
-            height: #{152rpx};
-            color: #353535;
-            font-size: #{26rpx};
-            .name {
-                font-size: #{30rpx};
-                font-weight: 600;
-                margin-bottom: #{10rpx};
-                position: relative;
-                padding-right: 36%;
-                .space {
-                    position: absolute;
-                    top: 0;
-                    right: 0;
-                    height: #{40rpx};
-                    font-size: #{26rpx};
-                    line-height: #{40rpx};
-                    font-weight: 400;
-                }
-            }
-            .address {
-                width: #{504rpx};
-                .icon {
-                    height: #{25rpx};
-                    width: #{19rpx};
-                    margin-right: #{5rpx};
-                }
-            }
-        }
-        .arrow-image {
-            margin-left: #{36rpx};
-            width: #{12rpx};
-            height: #{24rpx};
-            flex-shrink: 0;
-        }
-    }
-    .empty-box {
-        width: 100%;
-        height: 60vh;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        flex-direction: column;
-
-        image {
-            width: 280#{rpx};
-            height: 280#{rpx};
-        }
-        span {
-            margin-top: 15#{rpx};
-            color: #999;
-            font-size: 28#{rpx};
-        }
-    }
-</style>

+ 0 - 231
src/plugins/community/cash-detail/cash-detail.vue

xqd
@@ -1,231 +0,0 @@
-f<template>
-    <app-layout>
-        <app-tab-nav :tabList="tabList" background="#f7f7f7" padding="0" :shadow="noBorder" :border="noBorder" :activeItem="activeTab" @click="tabStatus" :theme="getTheme"></app-tab-nav>
-        <view class="no-list" v-if="list.length == 0">
-            <image src="https://shop.9026.com/web/statics/img/mall/static/order-empty.png"></image>
-            <view>暂无任何明细</view>
-        </view>
-        <view v-else class="list" v-for="item in list" :key="item.id">
-            <view class="item-header">{{item.date}}</view>
-            <view class="item" v-for="list in item.list" :key="list.id">
-                <view class="type">
-                    <text>{{list.pay_type}}</text>
-                    <text class="status" :style="{'color': getTheme.color, 'border-color': getTheme.border}">{{list.status_text}}</text></view>
-                <view>提现账户:{{list.extra.mobile?list.extra.mobile:'无'}}</view>
-                <view>提现时间:{{list.time.created_at}}</view>
-                <view v-if="list.content.reject_content">驳回理由:<text style="word-wrap:break-word;">{{list.content.reject_content}}</text></view>
-                <view class="cash">
-                    <view class="cash-price">{{list.cash.price}}</view>
-                    <view>手续费{{list.cash.service_charge}}</view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-
-    import {mapGetters, mapState} from 'vuex';
-
-    export default {
-        data() {
-            return {
-                tabList: [
-                    {id:-1, name: '全部'},
-                    {id:0, name: '待审核'},
-                    {id:1, name: '待打款'},
-                    {id:2, name: '已打款'},
-                    {id:3, name: '已驳回'},
-                ],
-                loading: null,
-                list: [],
-                activeTab: -1,
-                noBorder: false,
-                id: null,
-                page: 2
-            }
-        },
-        components: {
-            "app-tab-nav": appTabNav,
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                custom_setting: state => state.mallConfig.share_setting_custom,
-                share_setting: state => state.mallConfig.share_setting,
-            })
-        },
-        methods: {
-            open(e) {
-                this.id = e;
-            },
-
-            tabStatus(e) {
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.list = [];
-                this.page = 2;
-                this.activeTab = e.currentTarget.dataset.id;
-                this.getList();
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.finance.list,
-                    data: {
-                        status: that.activeTab,
-                        model: 'community',
-                    },
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.$event.on(that.$const.EVENT_USER_LOGIN).then(()=>{
-                        that.getList();
-                    });
-                });
-            },
-            getMore() {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.stock.detail,
-                    data: {
-                        status: that.activeTab,
-                        model: 'community',
-                        page: that.page
-                    },
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.loading = null;
-                        let more = response.data.list;
-                        if (more.length > 0) {
-                            if (that.list[that.list.length - 1].date == more[0].date) {
-                                that.list[that.list.length - 1].list = that.list[that.list.length - 1].list.concat(more[0].list);
-                                more.shift();
-                                that.list = that.list.concat(more)
-                            }else {
-                                that.list = that.list.concat(more)
-                            }
-                            that.page++;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(e => {
-                    uni.hideLoading();
-                });
-            },
-            toGoods(id) {
-                uni.navigateTo({
-                    url: '/pages/goods/goods?id=' + id
-                });
-            },
-        },
-
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            if(options.name) {
-                uni.setNavigationBarTitle({
-                    title: options.name,
-                })
-            }
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getList();
-        },
-        onReachBottom() {
-            this.getMore();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        background-color: #fff;
-        margin: #{24rpx} #{24rpx} #{12rpx};
-        border-radius: #{8rpx};
-        box-shadow: rgba(0, 0, 0, .1) 0 0 #{20rpx};
-    }
-
-    .item-header {
-        color: #999999;
-        font-size: #{32rpx};
-        height: #{96rpx};
-        line-height: #{96rpx};
-        padding: 0 #{32rpx};
-    }
-
-    .list .item {
-        padding: #{32rpx};
-        font-size: #{24rpx};
-        color: #999999;
-        border-top: 1px solid #e2e2e2;
-        position: relative;
-    }
-
-    .type {
-        font-size: #{32rpx};
-        color: #353535;
-        margin-bottom: #{8rpx};
-    }
-
-    .status {
-        margin-left: #{20rpx};
-        font-size: #{24rpx};
-        padding: 0 #{10rpx};
-        border-radius: #{16rpx};
-        border: 1px solid;
-    }
-
-    .cash {
-        position: absolute;
-        top: #{50rpx};
-        right: #{32rpx};
-        text-align: right;
-    }
-
-    .cash-price {
-        font-size: #{40rpx};
-        color: #353535;
-    }
-
-    .no-list {
-        text-align: center;
-        margin-top: #{200rpx};
-        font-size: #{24rpx};
-        color: #666666;
-        image {
-            width: #{240rpx};
-            height: #{240rpx};
-            margin-bottom: #{20rpx};
-        }
-    }
-</style>

+ 0 - 668
src/plugins/community/cash/cash.vue

xqd
@@ -1,668 +0,0 @@
-<template>
-    <app-layout>
-        <view class="info">
-            <view class="last">可提现金额:{{community.money ? community.money : '0.00'}}元</view>
-        </view>
-        <view>
-            <view class="info input-money main-between cross-center">
-                <view class="input">
-                    <input v-model="moneyInput" type="digit" placeholder-style="color:#cdcdcd" placeholder="请输入提现金额">
-                    <view class="price" :style="{'color': getTheme.color}">¥</view>
-                </view>
-            </view>
-            <view class="about"
-                  v-if="config.min_money > 0 || config.cash_service_charge > 0 || config.free_cash_min > 0 || config.free_cash_max > 0">
-                <view class="dir-left-nowrap">
-                    <view>说明:</view>
-                    <view>
-                        <view v-if="config.min_money > 0">金额不能少于¥{{config.min_money}}元</view>
-                        <view v-if="config.cash_service_charge > 0">提现需要加收{{config.cash_service_charge}}%手续费</view>
-                        <view v-if="config.free_cash_max > 0">
-                            免手续费提现金额区间为¥{{config.free_cash_min}}~¥{{config.free_cash_max}}
-                        </view>
-                    </view>
-                </view>
-            </view>
-
-            <view class="dir-left-nowrap cross-center cash-type" @click="cashTypeModel = true">
-                <view class="box-grow-1">提现方式</view>
-                <view class="box-grow-0">{{cashName}}</view>
-                <image class="box-grow-0 arrow-image" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-
-            <view v-if="mark_num==1 || mark_num ==2 || mark_num == 3" class="cash-info">
-                <view class="info content">
-                    <view class="enter" v-if="mark_num==3">开户人</view>
-                    <view class="enter" v-else>姓名</view>
-                    <input class="info-input" v-model="name" placeholder="请输入正确的姓名"></input>
-                </view>
-                <view class="info content" v-if="mark_num==3">
-                    <view class="enter">开户行</view>
-                    <input class="info-input" v-model="bank_name" placeholder="请输入正确的银行名称"></input>
-                </view>
-                <view class="info content">
-                    <view class="enter">帐号</view>
-                    <input class="info-input" v-model="mobile" v-if="mark_num < 3" :placeholder="mark_num == 1 ? '请输入正确的微信帐号' : '请输入正确的支付宝帐号'"></input>
-                    <input class="info-input" v-model="mobile" v-if="mark_num==3" type="number"
-                           placeholder="请输入正确的银行卡帐号"></input>
-                </view>
-            </view>
-            <view class="submit">
-                <button @click="subscribe" :style="{'background-color': getTheme.background}">提交申请</button>
-            </view>
-        </view>
-        <view class="bg" v-if="submitOver || warningInfo">
-            <view class="dialog">
-                <view class="dialog-title">提示</view>
-                <view v-if="submitOver">提现申请提交成功</view>
-                <view v-if="warningInfo">{{warningInfo}}</view>
-                <view @click="toDetail" v-if="submitOver" class="close-button" :style="{'color': getTheme.color}">确认</view>
-                <view @click="warningInfo = false" v-if="warningInfo" class="close-button" :style="{'color': getTheme.color}">确认</view>
-            </view>
-        </view>
-        <app-cash-model
-                :is-auto="pay_type.auto"
-                :is-wx="pay_type.wechat"
-                :is-alipay="pay_type.alipay"
-                :is-bank="pay_type.bank"
-                :is-balance="pay_type.balance"
-                :theme="getTheme"
-                :pay-type="cashType"
-                @change="payTypeChange"
-                v-model="cashTypeModel"
-        ></app-cash-model>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appCashModel from "../../../components/page-component/app-cash-model/app-cash-model.vue"
-
-    export default {
-        data() {
-            return {
-                cashTypeModel: false,
-                visible: false,
-                mark_num: -1,
-                community: {},
-                pay_type: {
-                    auto: false,
-                    alipay: false,
-                    wechat: false,
-                    bank: false,
-                    balance: false,
-                },
-                loading: false,
-                warningInfo: '',
-                submitOver: false,
-                config: [],
-                name: '',
-                bank_name: '',
-                mobile: '',
-                template_message: [],
-                getMoney: null,
-                moneyInput: '',
-                cashType: '',
-            }
-        },
-        components: {appCashModel,},
-        computed: {
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-            }),
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            cashName() {
-                switch (this.cashType) {
-                    case 'auto':
-                        // #ifdef MP-WEIXIN
-                        return '微信零钱';
-                        // #endif
-                        // #ifdef MP-ALIPAY
-                        return '支付宝余额';
-                        // #endif
-                        // #ifndef MP-WEIXIN || MP-ALIPAY
-                        return '自动';
-                    // #endif
-                    case 'wx':
-                        return '微信线下打款';
-                    case 'alipay':
-                        return '支付宝线下打款';
-                    case 'bank':
-                        return '银联线下打款';
-                    case 'balance':
-                        return '商城余额';
-                    default:
-                        return;
-                        break;
-                }
-            },
-        },
-        methods: {
-            payTypeChange(value) {
-                this.cashType = value;
-                switch (value) {
-                    case 'auto':
-                        this.mark_num = 0;
-                        break;
-                    case 'wx':
-                        this.mark_num = 1;
-                        break;
-                    case 'alipay':
-                        this.mark_num = 2;
-                        break;
-                    case 'bank':
-                        this.mark_num = 3;
-                        break;
-                    case 'balance':
-                        this.mark_num = 4;
-                        break;
-                    default:
-                        this.mark_num = -1;
-                        break;
-                }
-            },
-            subscribe() {
-                if (this.loading) {
-                    return false
-                }
-                if (this.submitOver || this.warningInfo) {
-                    return false
-                }
-                if (this.moneyInput > 0) {
-                    if (this.mark_num == -1) {
-                        uni.showToast({title: '请选择提现方式', icon: 'none'});
-                        return;
-                    }
-                    this.loading = true;
-                    this.$subscribe(this.template_message).then(res => {
-                        this.submit();
-                    }).catch(res => {
-                        this.submit();
-                    });
-                }else {
-                    this.warningInfo = '请输入正确的提现金额'
-                }
-            },
-            submit() {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                let para = {
-                    model: 'community',
-                    price: that.moneyInput,
-                    type: 'auto'
-                };
-                if (that.mark_num == 4) {
-                    para.type = 'balance';
-                } else if (that.mark_num == 0) {
-                    para.type = 'auto';
-                } else {
-                    para.name = that.name;
-                    para.mobile = that.mobile;
-                    if (that.mark_num == 1) {
-                        para.type = 'wechat';
-                    }
-                    if (that.mark_num == 2) {
-                        para.type = 'alipay';
-                    }
-                    if (that.mark_num == 3) {
-                        para.type = 'bank';
-                        para.bank_name = that.bank_name;
-                    }
-                }
-                that.$request({
-                    url: that.$api.finance.cash,
-                    data: para,
-                    method: 'post'
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.loading = false;
-                    if(response.code == 0) {
-                        that.submitOver = true;
-                    }else {
-                        that.warningInfo = response.msg;
-                    }
-                }).catch(response => {
-                    that.loading = false;
-                    uni.hideLoading();
-                });
-            },
-
-            toDetail() {
-                this.submitOver = false;
-                uni.redirectTo({
-                    url: '/plugins/community/cash-detail/cash-detail'
-                });
-            },
-
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.index,
-                }).then(response=>{
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.community = response.data.middleman;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-
-            setting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.finance.config,
-                    data: {
-                        model: 'community'
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    that.getStatus();
-                    if(response.code == 0) {
-                        that.config = response.data.config;
-                        that.template_message = response.data.template_message;
-                        for (let i = 0; i < that.config.pay_type.length; i++) {
-                            switch (that.config.pay_type[i]) {
-                                case "auto":
-                                    that.pay_type.auto = true;
-                                    //that.mark_num = 0;
-                                    break;
-                                case "alipay":
-                                    that.pay_type.alipay = true;
-                                    //that.mark_num = 2;
-                                    break;
-                                case "wechat":
-                                    that.pay_type.wechat = true;
-                                    //that.mark_num = 1;
-                                    break;
-                                case "balance":
-                                    that.pay_type.balance = true;
-                                    //that.mark_num = 4;
-                                    break;
-                                case "bank":
-                                    that.pay_type.bank = true;
-                                    //that.mark_num = 3;
-                                    break;
-                            }
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            if (options.money > 0) {
-                that.money = options.money;
-            };
-            that.setting();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .cash-type {
-        height: #{120rpx};
-        background: white;
-        color: #353535;
-        font-size: #{32rpx};
-        padding: 0 #{24rpx};
-        margin-top: #{24rpx};
-
-        .arrow-image {
-            width: #{12rpx};
-            height: #{24rpx};
-            display: block;
-            margin-left: #{12rpx};
-        }
-    }
-
-    .cash-info {
-        margin-top: #{20rpx};
-    }
-
-    .info {
-        background-color: #fff;
-        padding: #{32rpx} #{24rpx};
-        border-bottom: #{1rpx} solid #e2e2e2;
-        color: #353535;
-    }
-
-    .info.input-money {
-        border-bottom: 0;
-    }
-
-    .info.cash-type {
-        margin: #{20rpx} 0;
-        padding: #{32rpx} 0;
-    }
-
-    .last {
-        font-size: #{40rpx};
-        margin-bottom: #{15rpx};
-    }
-
-    .last-info {
-        font-size: #{24rpx};
-        color: #666;
-    }
-
-    .last-info view {
-        float: left;
-        height: #{44rpx};
-        line-height: #{44rpx};
-    }
-
-    .last-info .show-tip {
-        color: #666;
-        display: inline-block;
-        background-color: #fff;
-        font-size: #{24rpx};
-        padding: 0 #{12rpx};
-        height: #{44rpx};
-        line-height: #{44rpx};
-        border-radius: #{22rpx};
-        border: #{1rpx} solid #e2e2e2;
-    }
-
-    .last-info button::after {
-        border: 0;
-    }
-
-    .price {
-        height: #{80rpx};
-        line-height: #{80rpx};
-        font-size: #{46rpx};
-        position: absolute;
-        left: 0;
-        top: 0;
-    }
-
-    .all {
-        color: #666;
-    }
-
-    .input {
-        font-size: #{36rpx};
-        height: #{80rpx};
-        line-height: #{80rpx};
-        width: 70%;
-        padding-left: #{50rpx};
-        position: relative;
-    }
-
-    .input input {
-        height: #{80rpx};
-        line-height: #{80rpx};
-    }
-
-    .about {
-        font-size: #{24rpx};
-        padding: #{32rpx} #{24rpx} #{12rpx};
-        color: #666;
-    }
-
-    .icon {
-        height: #{40rpx};
-        width: #{40rpx};
-        margin-right: #{16rpx};
-        display: flex;
-        justify-content: center;
-    }
-
-    .mode-item {
-        width: #{200rpx};
-        border: #{1rpx} solid #999;
-        text-align: center;
-        padding: 0 #{24rpx};
-        height: #{66rpx};
-        line-height: #{66rpx};
-        border-radius: #{33rpx};
-        display: flex;
-        align-items: center;
-        margin: #{10rpx} #{24rpx};
-        font-size: #{30rpx};
-        position: relative;
-    }
-
-    .mode-title {
-        margin-bottom: #{25rpx};
-        padding-left: #{24rpx};
-        font-size: #{34rpx};
-    }
-
-    .enter {
-        color: #353535;
-        float: left;
-        width: #{100rpx};
-        height: #{56rpx};
-        line-height: #{56rpx};
-        font-size: #{32rpx};
-    }
-
-    .content {
-        height: #{120rpx};
-    }
-
-    .info-input {
-        font-size: #{32rpx};
-        height: #{56rpx};
-        padding: 0 #{32rpx};
-    }
-
-
-    .on-active {
-        height: #{32rpx};
-        width: #{32rpx};
-        position: absolute;
-        right: 0;
-        bottom: 0;
-    }
-
-    .submit {
-        margin-top: #{40rpx};
-    }
-
-    .submit button {
-        height: #{80rpx};
-        border-radius: #{40rpx};
-        line-height: #{80rpx};
-        width: 90%;
-        margin: 0 auto;
-        color: #fff;
-        font-size: #{32rpx};
-    }
-
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        height: 100%;
-        width: 100%;
-        background-color: rgba(0, 0, 0, .3);
-        z-index: 10;
-    }
-
-    .dialog {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: 10px;
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .dialog-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-
-    .dialog-btn {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-close,.dialog-submit {
-        width: 50%;
-    }
-
-    .line {
-        height: #{44rpx};
-        margin-top: #{22rpx};
-        width: #{1rpx};
-        background-color: #e2e2e2;
-    }
-
-    .dialog-submit {
-        color: #ff4544;
-    }
-
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: 100%;
-        width: 100%;
-        z-index: 20;
-        background-color: rgba(0, 0, 0, 0.3);
-    }
-
-    .dialog {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        height: #{300rpx};
-        width: #{640rpx};
-        margin: 0 auto;
-        z-index: 21;
-        background-color: #fff;
-        border-radius: 10px;
-        text-align: center;
-        font-size: #{30rpx};
-    }
-
-    .close-button {
-        height: #{88rpx};
-        width: #{640rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        line-height: #{88rpx};
-        position: absolute;
-        bottom: 0;
-        left: 0;
-    }
-
-    .dialog-title {
-        margin: #{40rpx} auto #{35rpx};
-    }
-    // 经典红
-    $classic-red-main-color: #ff4544;
-    $classic-red-secondary-color: #f39800;
-
-    // 活力黄
-    $vibrant-yellow-main-color: #fcc600;
-    $vibrant-yellow-secondary-color: #555555;
-
-    // 浪漫粉
-    $romantic-powder-main-color: #ff547b;
-    $romantic-powder-secondary-color: #ffe6e8;
-
-    // 流光金
-    $streamer-gold-main-color: #ddb766;
-    $streamer-gold-secondary-color: #f0ebd8;
-
-    // 优雅紫
-    $elegant-purple-main-color: #7783ea;
-    $elegant-purple-secondary-color: #e9ebff;
-
-    // 品味红
-    $taste-red-main-color: #ff4544;
-    $taste-red-secondary-color: #555555;
-
-    // 清醒绿
-    $fresh-green-main-color: #63be72;
-    $fresh-green-secondary-color: #e1f4e3;
-
-    // 商务蓝
-    $business-blue-main-color: #4a90e2;
-    $business-blue-secondary-color: #dbe9f9;
-
-    // 纯粹黑
-    $pure-black-main-color: #333333;
-    $pure-black-secondary-color: #dedede;
-
-    // 热情红
-    $passionate-red-main-color: #ff4544;
-    $passionate-red-secondary-color: #ffdada;
-
-    .classic-red-border {
-      border-color: $classic-red-main-color;
-    }
-
-    .vibrant-yellow-border {
-      border-color: $vibrant-yellow-main-color;
-    }
-
-    .romantic-powder-border {
-      border-color: $romantic-powder-main-color;
-    }
-
-    .streamer-gold-border {
-      border-color: $streamer-gold-main-color;
-    }
-
-    .elegant-purple-border {
-      border-color: $elegant-purple-main-color;
-    }
-
-    .taste-red-border {
-      border-color: $taste-red-main-color;
-    }
-
-    .fresh-green-border {
-      border-color: $fresh-green-main-color;
-    }
-
-    .business-blue-border {
-      border-color: $business-blue-main-color;
-    }
-
-    .pure-black-border {
-      border-color: $pure-black-main-color;
-    }
-
-    .passionate-red-border {
-      border-color: $passionate-red-main-color;
-    }
-</style>

+ 0 - 167
src/plugins/community/clerk/clerk.vue

xqd
@@ -1,167 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="list.length == 0" class="search dir-top-nowrap cross-center">
-            <view class="input">
-                <input v-model="keyword" placeholder="请输入买家手机号" type="number">
-            </view>
-            <app-button :theme="getTheme" color="#fff" @click="getList" arrangement="row" type="important" round width="702">
-                <text class="app-text">确认</text>
-            </app-button>
-        </view>
-        <view v-else>
-            <app-order v-for="(item,index) in list" :key="item.id" v-on:update="update" v-if="item.is_confirm == 0" :is_user="is_user" :theme="getTheme" :item="item"></app-order>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appOrder from '../components/app-order';
-
-    export default {
-        data() {
-            return {
-                middleman: {},
-                setting: {},
-                more_list: false,
-                page: 1,
-                list: [],
-                keyword: '',
-                apply_at: ''
-            }
-        },
-        components: {
-            "app-order": appOrder
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                userInfo: state => state.user.info,
-            })
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            this.getStatus();
-        },
-        methods: {
-            update(e) {
-                for(let index in this.list) {
-                    if(this.list[index].id == e.id) {
-                        this.list.splice(index,1);
-                    }
-                }
-                this.$forceUpdate();
-            },
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.index,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        this.setting = response.data.setting;
-                        if(response.data.middleman.id > 0) {
-                            this.middleman = response.data.middleman;
-                            this.apply_at = this.middleman.apply_at.substring(0,10)
-                        }else {
-                            uni.showToast({
-                                title: '您还不是团长,现在前往申请页面',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                            setTimeout(function(){
-                                uni.redirectTo({
-                                    url: '/plugins/community/apply/apply'
-                                });
-                            },1000)
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                if(!that.keyword) {
-                    uni.showToast({
-                        title: '请输入买家手机号',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    return false
-                }
-                if(that.loading) {
-                    return false
-                }
-                that.loading = true;
-                that.$request({
-                    url: that.$api.community.middle_list,
-                    data: {
-                        status: 3,
-                        keyword: that.keyword,
-                        page: that.page,
-                    }
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.loading = false;
-                    if(response.code == 0) {
-                        if(response.data.list.length == 0) {
-                            uni.showToast({
-                                title: '未找到待提货订单',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                        let list = response.data.list;
-                        that.more_list = false;
-                        if (list.length == response.data.pagination.pageSize) {
-                            that.more_list = true;
-                            that.page++;
-                        }
-                        if(that.page == 1) {
-                            that.list = list;
-                        }else {
-                            that.list = that.list.concat(list);
-                        }
-                        that.$forceUpdate();
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.loading = false;
-                    that.$hideLoading();
-                    uni.hideLoading();
-                })
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .search {
-        .input {
-            height: 100rpx;
-            background-color: #fff;
-            padding: 0 24rpx;
-            margin-bottom: 40rpx;
-            width: 100%;
-            input {
-                height: 100rpx;
-                line-height: 100rpx;
-            }
-        }
-    }
-</style>

+ 0 - 130
src/plugins/community/components/app-goods-time.vue

xqd
@@ -1,130 +0,0 @@
-<template>
-	<view class="app-goods-time">
-		<view class="app-image" :style="{'background-color': theme.background}"></view>
-		<view class="app-goods-info">
-			<text>¥</text>
-			<text class="app-goods-price">{{goods.price}}</text>
-			<text v-if="status !== 0 && goods.is_sales == 1" class="app-goods-sales">已抢{{goods.sales}}{{goods.unit}},剩{{goods.goods_stock}}{{goods.unit}}</text>
-		</view>
-		<view class="app-content dir-top-nowrap">
-			<view class="app-text" v-if="status === 1">距离结束仅剩</view>
-			<view class="app-text" v-if="status === 0">距离开始仅剩</view>
-			<view class="app-text over-text" v-if="status === 2">活动已结束</view>
-			<view class="app-time cross-center main-around" v-if="status !== 2">
-				<text class="app-num app-right" v-if="day > 0">{{day}}</text>
-				<text v-if="day > 0">天</text>
-				<text class="app-num app-right">{{hour}}</text>
-				<text>时</text>
-				<text class="app-num app-right">{{minute}}</text>
-				<text>分</text>
-				<text class="app-num app-right">{{second}}</text>
-				<text>秒</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'app-goods-time',
-	    props: {
-            status: {
-                type: Number,
-            },
-            goods: {
-            	type: Object
-            },
-            hour: {
-                type: String,
-                default() {
-                    return 0;
-                }
-            },
-            minute: {
-                type: String,
-                default() {
-                    return 0;
-                }
-            },
-            second: {
-                type: String,
-                default() {
-                    return 0;
-                }
-            },
-            day: {
-                type: Number,
-                default() {
-                    return 0;
-                }
-            },
-			theme: Object
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-goods-time {
-		width: #{750rpx};
-		height: #{88rpx};
-		position: relative;
-		.app-image {
-			width: #{750rpx};
-			height: #{88rpx};
-			background-repeat: no-repeat;
-			background-size: 100% 100%;
-		}
-		.app-goods-info {
-			position: absolute;
-			left: #{24rpx};
-			bottom: #{12rpx};
-			color: #fff;
-			font-size: #{32rpx};
-			.app-goods-price {
-				font-family: DIN;
-				font-size: #{56rpx};
-			}
-			.app-goods-sales {
-				margin-left: #{16rpx};
-				font-size: #{20rpx};
-			}
-		}
-		.app-content {
-			position: absolute;
-			right: #{20rpx};
-			top: 0;
-			height: #{88rpx};
-			width: #{300rpx};
-			.app-text {
-				font-size: #{22rpx};
-				color: #ffffff;
-				text-align: center;
-				margin-top: #{2rpx};
-			}
-			.over-text {
-				font-size: #{32rpx};
-				line-height: #{88rpx};
-				margin-top: 0;
-			}
-			.app-time {
-				color: white;
-				height: #{40rpx};
-				font-size: #{26rpx};
-				margin-top: #{6rpx};
-				.app-num {
-					display: inline-block;
-					width: #{44rpx};
-					height: #{40rpx};
-					line-height: #{40rpx};
-					background-color:white;
-					border-radius: #{8rpx};
-					color: #353535;
-					text-align: center;
-				}
-				.app-right {
-					margin: 0 #{4rpx};
-				}
-			}
-		}
-	}
-</style>

+ 0 - 37
src/plugins/community/components/app-head.vue

xqd
@@ -1,37 +0,0 @@
-<template>
-    <image class="head-bg" :style="{'height': height,'background-color': theme.background}" :src="apply ? community.apply : community.bg" ></image>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    export default {
-        name: 'app-head',
-	    props: {
-            apply: Boolean,
-            height: {
-                type: String,
-                default() {
-                    return '360rpx';
-                }
-            },
-			theme: Object
-        },
-	    data() {
-            return {
-                head: '',
-            }
-	    },
-        computed: {
-            ...mapState({
-                community: state => state.mallConfig.__wxapp_img.community,
-            })
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .head-bg {
-        width: #{750rpx};
-        height: #{360rpx};
-    }
-</style>

+ 0 - 115
src/plugins/community/components/app-menu.vue

xqd
@@ -1,115 +0,0 @@
-<template>
-    <view>
-        <!--空格区域-->
-        <view class="safe-area-inset-bottom">
-            <view class="u-bottom-height"></view>
-        </view>
-        <!--底部按钮-->
-        <view class="safe-area-inset-bottom u-bottom-fixed">
-            <view class="app-menu main-between">
-                <view v-show="activity_loading" @click="toActivity" class="menu-btn dir-top-nowrap main-center cross-center">
-                    <image @load="activityLoad" :style="{'background-color': theme.background}" v-if="active === 'activity'" src="https://shop.9026.com/web/statics/img/mall/community/activity-active.png"></image>
-                    <image @load="activityLoad" v-else src="https://shop.9026.com/web/statics/img/mall/community/activity.png"></image>
-                    <view :style="{'color': active === 'activity' ? theme.color : ''}">活动</view>
-                </view>
-                <view v-show="order_loading" @click="toOrder" class="menu-btn dir-top-nowrap main-center cross-center">
-                    <image @load="orderLoad" :style="{'background-color': theme.background}" v-if="active === 'order'" src="https://shop.9026.com/web/statics/img/mall/community/order-active.png"></image>
-                    <image @load="orderLoad" v-else src="https://shop.9026.com/web/statics/img/mall/community/order.png"></image>
-                    <view :style="{'color': active === 'order' ? theme.color : ''}">订单</view>
-                </view>
-                <view v-show="me_loading" @click="toMe" class="menu-btn dir-top-nowrap main-center cross-center">
-                    <image @load="meLoad" :style="{'background-color': theme.background}" v-if="active === 'me'" src="https://shop.9026.com/web/statics/img/mall/community/me-active.png"></image>
-                    <image @load="meLoad" v-else src="https://shop.9026.com/web/statics/img/mall/community/me.png"></image>
-                    <view :style="{'color': active === 'me' ? theme.color : ''}">我的</view>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-
-<script>
-
-    export default {
-        name: 'app-index',
-        props: {
-            active: {
-                type: String
-            },
-            theme: Object
-        },
-        data() {
-            return {
-                activity_loading: false,
-                order_loading: false,
-                me_loading: false,
-            };
-        },
-        methods: {
-            activityLoad() {
-                this.activity_loading = true;
-            },
-            orderLoad() {
-                this.order_loading = true;
-            },
-            meLoad() {
-                this.me_loading = true;
-            },
-            toActivity() {
-                if (this.active === 'activity') {
-                    return false;
-                }
-                uni.redirectTo({
-                    url: '/plugins/community/index/index'
-                });
-            },
-            toOrder() {
-                if (this.active === 'order') {
-                    return false;
-                }
-                uni.redirectTo({
-                    url: '/plugins/community/order/order'
-                });
-            },
-            toMe() {
-                if(this.active === 'me') {
-                    return false;
-                }
-                uni.redirectTo({
-                    url: '/plugins/community/me/me'
-                });
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1500;
-        background-color: #ffffff;
-    }
-    .u-bottom-height {
-        height: 90upx;
-    }
-    .app-menu {
-        height: #{90rpx};
-        width: 100%;
-        background-color: #fff;
-        font-size: #{22rpx};
-        border-top: #{2rpx} solid #e2e2e2;
-        .menu-btn {
-            width: #{200rpx};
-            color: #666;
-            text-align: center;
-            height: #{90rpx};
-            image {
-                width: #{40rpx};
-                height: #{40rpx};
-                margin-bottom: #{3rpx};
-            }
-        }
-    }
-</style>

+ 0 - 348
src/plugins/community/components/app-order.vue

xqd
@@ -1,348 +0,0 @@
-<template>
-    <view>
-        <view @click="toDetail(item.id)" class="item">
-            <view class="title main-between cross-center">
-                <view class="activity-title dir-left-nowrap">
-                    <image src="https://shop.9026.com/web/statics/img/mall/community/activity-name.png"></image>
-                    <view>{{item.title}}</view>
-                </view>
-                <view class="number dir-right-nowrap">
-                    <view :style="{'color': theme.color}">{{item.no}}</view>
-                    <view v-if="is_user && item.cancel_status == 1" class="status">已关闭</view>
-                    <view v-else-if="is_user && item.is_sale == 1" class="status">已完成</view>
-                    <view v-else-if="is_user && item.is_confirm == 1" class="status">已提货</view>
-                    <view v-else-if="is_user && item.is_send == 1" class="status">待提货</view>
-                    <view v-else-if="is_user && item.is_pay == 1" class="status">待发货</view>
-                    <view v-else-if="is_user && item.is_pay == 0" class="status">未付款</view>
-                </view>
-            </view>
-            <view v-if="!is_user" class="info main-between cross-center">
-                <view class="user-info dir-left-nowrap cross-center">
-                    <view class="avatar">
-                        <image :src="item.user_avatar"></image>
-                    </view>
-                    <view class="user">
-                        {{item.name}}
-                        <text>{{item.mobile}}</text>
-                    </view>
-                </view>
-                <view :style="{'color': theme.color}" v-if="item.cancel_status == 1" class="status">已关闭</view>
-                <view :style="{'color': theme.color}" v-else-if="item.is_sale == 1" class="status">已完成</view>
-                <view :style="{'color': theme.color}" v-else-if="item.is_confirm == 1" class="status">已提货</view>
-                <view :style="{'color': theme.color}" v-else-if="item.is_send == 1" class="status">待提货</view>
-                <view :style="{'color': theme.color}" v-else-if="item.is_pay == 1" class="status">待发货</view>
-                <view :style="{'color': theme.color}" v-else-if="item.is_pay == 0" class="status">未付款</view>
-            </view>
-            <view v-if="item.remark" class="remark">买家备注:{{item.remark}}</view>
-            <view v-for="goods in item.detail" class="goods" :key="goods.id">
-                <image class="goods-img" mode='aspectFill' :src='goods.goods_info.pic_url'></image>
-                <view class='t-omit-two goods-name'>{{goods.goods_info.name}}</view>
-                <view class="goods-attr t-omit">
-                    <text v-for="attr in goods.goods_info.attr_list" :key="item.attr_id">{{attr.attr_group_name}}:{{attr.attr_name}}</text>
-                </view>
-                <view class="goods-num">x{{goods.goods_info.num}}</view>
-                <view class="goods-price">¥{{goods.goods_info.total_original_price}}</view>
-            </view>
-            <view class="order-total">共<text>{{item.num}}</text>件商品 合计<text>¥{{item.total_price}}</text></view>
-            <view class="dir-right-nowrap">
-                <view @click.stop="orderPay(item)" v-if="is_user && item.is_pay == 0 && item.cancel_status == 0" class="pick-btn" :style="{'color': theme.color, 'border-color': theme.border}">立即支付</view>
-                <view @click.stop="toRemind(item)" v-if="item.is_send == 1 && item.is_confirm == 0" class="pick-btn" :style="{'color': theme.color, 'border-color': theme.border}">确认提货</view>
-            </view>
-        </view>
-        <view v-if="show" class="bg">
-            <view class="dialog">
-                <view class="dialog-content">是否确认提货</view>
-                <view class="main-center btn-area">
-                    <view class="submit-btn box-grow-1" style="color: #666" @click='toRemind'>取消</view>
-                    <view class="line"></view>
-                    <view class="submit-btn box-grow-1" @click='beConfirm'  :style="{'color': theme.color}">确认</view>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-
-<script>
-    import { mapState } from "vuex";
-
-    export default {
-        name: 'app-order',
-        props: {
-            item: {
-                type: Object
-            },
-            is_user: {
-                type: Boolean
-            },
-            is_confirm: {
-                type: Boolean
-            },
-            theme: Object
-        },
-        data() {
-            return {
-                show: false,
-                orderList: [],
-                id: 0,
-            };
-        },
-        methods: {
-            toRemind(item) {
-                if(item.id > 0) {
-                    this.show = true;
-                    this.id = item.id
-                }else {
-                    this.show = false;
-                    this.id = 0;
-                }
-            },
-            // 订单支付
-            orderPay(e) {
-                let _this = this;
-                _this.$showLoading();
-                _this.$request({
-                    url: _this.$api.order.list_pay_data,
-                    data: {
-                        id: e.id
-                    }
-                }).then(response => {
-                    _this.$hideLoading();
-                    if (response.code === 0) {
-                        _this.$payment.pay(response.data.id).then(() => {
-                            // 支付成功
-                            uni.redirectTo({
-                                url: '/plugins/community/order/order?is_user=1'
-                            })
-                        }).catch(e => {
-                            // 支付失败
-                            uni.showModal({
-                                title: '',
-                                content: e.errMsg,
-                                showCancel: false
-                            })
-                        })
-                    }
-                }).catch(() => {
-                    _this.$hideLoading();
-                });
-            },
-            toDetail(id) {
-                let is_user = 0;
-                if(this.is_user) {
-                    is_user = 1
-                }
-                uni.navigateTo({
-                    url: '/plugins/community/order-detail/order-detail?id=' + id + '&is_user=' + is_user
-                });
-            },
-            beConfirm() {
-                let that = this;
-                that.show = false;
-                uni.showLoading({
-                    mask: true,
-                    title: '确认提货中...'
-                });
-                that.$request({
-                    url: that.is_user ? that.$api.order.confirm : that.$api.community.confirm,
-                    data: {
-                        id: that.id
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.item.is_confirm = 1;
-                        that.id = 0;
-                        that.$emit('update', that.item);
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                })
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-        .item {
-            border-radius: 16rpx;
-            background-color: #fff;
-            width: 702rpx;
-            margin: 24rpx;
-            margin-top: 0;
-            padding: 24rpx;
-            &:first-of-type {
-                margin-top: 24rpx;
-            }
-            .status {
-                font-size: 24rpx;
-            }
-            .title {
-                height: 32rpx;
-                line-height: 32rpx;
-                margin-bottom: 24rpx;
-                .number {
-                    font-size: 38rpx;
-                    .status {
-                        margin-right: 30rpx;
-                    }
-                }
-                .activity-title {
-                    color: #353535;
-                    font-size: #{24rpx};
-                    height: 30rpx;
-                    line-height: 30rpx;
-                    image {
-                        width: 30rpx;
-                        height: 30rpx;
-                        margin-right: 20rpx;
-                        display: block;
-                    }
-                }
-            }
-            .info {
-                height: 56rpx;
-                font-size: 24rpx;
-                .user-info {
-                    height: 56rpx;
-                    .avatar {
-                        margin-right: 20rpx;
-                        width: 56rpx;
-                        height: 56rpx;
-                        border-radius: 50%;
-                        image {
-                            width: 56rpx;
-                            height: 56rpx;
-                            border-radius: 50%;
-                        }
-                    }
-                    .user {
-                        color: #353535;
-                        text {
-                            margin-left: 30rpx;
-                        }
-                    }
-                }
-            }
-            .remark {
-                margin-top: 25rpx;
-                word-break: break-all;
-                font-size: 24rpx;
-                color: #3b3939;
-                padding: 20rpx 24rpx;
-                background-color: #F7F7F7;
-            }
-            .goods {
-                height: #{160rpx};
-                margin-top: #{24rpx};
-                position: relative;
-                font-size: #{24rpx};
-                color: #353535;
-                margin-bottom: #{24rpx};
-                .goods-img {
-                    height: #{160rpx};
-                    width: #{160rpx};
-                    float: left;
-                    margin-right: #{20rpx};
-                    border-radius: #{4rpx};
-                }
-                .goods-attr {
-                    font-size: #{24rpx};
-                    color: #999;
-                    width: 70%;
-                    position: absolute;
-                    width: 70%;
-                    top: #{78rpx};
-                    left: #{180rpx};
-                    text {
-                        margin-right: #{20rpx};
-                    }
-                }
-                .goods-num {
-                    font-size: #{24rpx};
-                    color: #999;
-                    position: absolute;
-                    top: #{126rpx};
-                    left: #{180rpx};
-                }
-                .goods-price {
-                    font-size: #{24rpx};
-                    color: #353535;
-                    position: absolute;
-                    bottom: 0;
-                    right: 0;
-                }
-            }
-            .order-total {
-                text-align: right;
-                color: #999999;
-                font-size: 24rpx;
-                margin-bottom: 24rpx;
-                text {
-                    font-size: 28rpx;
-                    color: #353535;
-                }
-            }
-            .pick-btn {
-                height: 48rpx;
-                line-height: 46rpx;
-                border-radius: 24rpx;
-                border: 2rpx solid;
-                font-size: 24rpx;
-                display: inline-block;
-                padding: 0 20rpx;
-                margin-left: 20rpx;
-            }
-        }
-        .bg {
-            position: fixed;
-            background-color: rgba(0,0,0,.3);
-            top: 0;
-            left: 0;
-            height: 100%;
-            width: 100%;
-            z-index: 99;
-            .dialog {
-                width: 480rpx;
-                height: 200rpx;
-                position: fixed;
-                top: 30%;
-                left: 50%;
-                margin-left: -240rpx;
-                background-color: #fff;
-                border-radius: 16rpx;
-                z-index: 233;
-                font-size: 28rpx;
-                color: #353535;
-                .dialog-content {
-                    height: 110rpx;
-                    line-height: 110rpx;
-                    text-align: center;
-                }
-                .btn-area {
-                    height: #{88rpx};
-                    position: relative;
-                    border-top: #{2rpx} solid #e2e2e2;
-                    .line {
-                        height: #{32rpx};
-                        width: #{1rpx};
-                        background-color: #e2e2e2;
-                        position: absolute;
-                        top: #{28rpx};
-                        left: 0;
-                        right: 0;
-                        margin: 0 auto;
-                    }
-                    .submit-btn {
-                        height: #{88rpx};
-                        line-height: #{88rpx};
-                        font-size: #{28rpx};
-                        text-align: center;
-                    }
-                }
-            }
-        }
-</style>

+ 0 - 207
src/plugins/community/components/app-product-list.vue

xqd
@@ -1,207 +0,0 @@
-<template>
-	<view class="app-product-list">
-		<view class="app-item dir-left-nowrap" v-for="(item, index) in list" :key="index" @click="route_go(item)">
-			<image class="app-image" :src="item.goods.cover_pic"></image>
-			<view class="out-dialog" v-if="item.miaosha_num == 0 && appSetting.is_show_stock == '1'">
-				<image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-			</view>
-			<view class="app-content">
-				<text class="app-name">{{item.goods.name}}</text>
-				<view class="app-percentage">
-					<view :style="{width: `${item.goods.miaosha_percentage}`}"></view>
-				</view>
-				<view class="app-text dir-left-nowrap main-between cross-center">
-					<text class="app-already">已抢购{{item.goods.miaosha_count}}{{item.goods.unit}}</text>
-					<text class="app-past">仅剩{{item.goods.miaosha_num}}{{item.goods.unit}}</text>
-				</view>
-				<view class="price-button dir-left-nowrap main-between cross-bottom">
-					<view class="price app-price dir-top-nowrap main-right cross-top">
-						<view v-if="item.is_level">
-							<app-member-price :price="item.level_price"></app-member-price>
-						</view>
-                        <app-sup-vip :is_vip_card_user="item.vip_card_appoint.is_vip_card_user" margin="4rpx 0 0" v-if="item.vip_card_appoint.discount" :discount="item.vip_card_appoint.discount"></app-sup-vip>
-						<view class="app-min-price" :style="{'color': theme.color}">¥{{item.goods.min_price}}</view>
-						<view class="app-original-price">¥{{item.goods.original_price}}</view>
-					</view>
-					<view class="app-button" style="color: #ffffff;" :style="{'background-color': theme.background}" v-if="status === 1 && item.miaosha_num > 0">马上抢购</view>
-					<view class="app-button no-button" :style="{'color': theme.color, 'border-color': theme.border}" v-if="(status === 0 || status === 2) && item.miaosha_num > 0">查看商品</view>
-					<view class="app-button" style="background-color: #CDCDCD;color: #fff;" v-if="item.miaosha_num == 0">下次再来</view>
-				</view>
-			</view>
-		</view>
-		<view :style="{width: `100%`, height: `${botHeight}rpx`}" v-if="empty"></view>
-	</view>
-</template>
-
-<script>
-    import {mapState, mapGetters} from 'vuex';
-
-    export default {
-		name: 'app-product-list',
-	    data() {
-            return {
-                is_vip: true,
-            }
-	    },
-        computed: {
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-				appSetting: state => state.mallConfig.mall.setting,
-                platform: function(state) {
-                    return state.gConfig.systemInfo.platform;
-                }
-            }),
-			...mapGetters('mallConfig', {
-				getVideo: 'getVideo'
-			}),
-        },
-	    props: {
-            list: {
-                type: Array,
-	            default() {
-                    return [];
-	            }
-            },
-            status: {
-                type: Number
-            },
-            empty: Boolean,
-            botHeight: Number,
-			theme: {
-            	type: Object,
-			}
-	    },
-	    methods: {
-            route_go(data) {
-				// #ifndef MP-BAIDU
-				if (data.goods.video_url && this.getVideo == 1) {
-				    // #ifdef MP
-					uni.navigateTo({
-						url: `/pages/goods/video?goods_id=${data.goods_id}&sign=miaosha`
-					});
-					// #endif
-                    // #ifdef H5
-                    uni.navigateTo({
-                        url: `/plugins/miaosha/goods/goods?id=${data.goods_id}`,
-                    });
-                    // #endif
-				} else {
-					uni.navigateTo({
-						url: `/plugins/miaosha/goods/goods?id=${data.goods_id}`,
-					});
-				}
-				// #endif
-
-				// #ifdef MP-BAIDU
-				uni.navigateTo({
-					url: `/plugins/miaosha/goods/goods?id=${data.goods_id}`,
-				});
-				// #endif
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.app-product-list {
-		width: #{750rpx};
-		background-color:white;
-		overflow: hidden;
-		.app-item {
-			width: #{750rpx};
-			padding: #{12rpx} #{24rpx} 0 0;
-			border-bottom: #{1rpx} solid #e2e2e2;
-			background-color: white;
-			position: relative;
-			.app-image {
-				width: #{262rpx};
-				height: #{262rpx};
-			}
-			.out-dialog {
-				width: #{262rpx};
-				height: #{262rpx};
-				position: absolute;
-				top: #{12rpx};
-				left: 0;
-				background-color: rgba(0,0,0,.5);
-				image {
-					width: #{262rpx};
-					height: #{262rpx};
-				}
-			}
-			.app-content {
-				width: #{440rpx};
-				margin-left: #{24rpx};
-				padding-top: #{18rpx};
-				margin-bottom: #{10rpx};
-				.app-name {
-					font-size: #{28rpx};
-					color: #353535;
-					word-break: break-all;
-					text-overflow: ellipsis;
-					display: -webkit-box;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 1;
-					overflow: hidden;
-				}
-				.app-percentage {
-					width: #{440rpx};
-					height: #{24rpx};
-					border-radius: #{12rpx};
-					background-color: #ffb7b7;
-					margin-top: #{16rpx};
-					overflow: hidden;
-					>view {
-						height: #{24rpx};
-						border-radius: #{12rpx};
-						background-color: #ff4544;
-					}
-				}
-				.app-text {
-					font-size: #{24rpx};
-					margin-top: #{4rpx};
-				}
-				.app-already {
-					color: #666666;
-				}
-				.app-past {
-					color: #ff4544;
-				}
-				.price-button {
-					width: #{440rpx};
-					min-height: #{132rpx};
-					.price {
-						width: #{440-164rpx};
-						height: #{132rpx};
-					}
-					.app-price {
-						
-						.app-min-price {
-							font-size: #{40rpx};
-							height: #{40rpx};
-							margin-top: #{-4rpx};
-						}
-						.app-original-price {
-							font-size: #{24rpx};
-							color: #999999;
-							text-decoration: line-through;
-						}
-					}
-					.app-button {
-						width: #{164rpx};
-						height: #{68rpx};
-						font-size: #{26rpx};
-						text-align: center;
-						line-height: #{68rpx};
-						border-radius: #{34rpx};
-						margin-bottom: #{5rpx};
-					}
-					.no-button {
-						background-color: white;
-						border: #{1rpx} solid;
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 495
src/plugins/community/detail/detail.vue

xqd
@@ -1,495 +0,0 @@
-<template>
-    <app-layout>
-        <view class="status" :class="activity.condition > 0 ? 'start':'cross-center'" v-if="activity.activity_status == 1">
-            <view class="main-between cross-center status-up">
-                <view v-if="activity.condition == 0" style="color: #999">
-                    {{activity.user_num}}人已抢{{activity.all_sales}}件
-                </view>
-                <view v-else class="condition">
-                    <text v-if="activity.num - activity.condition_count > 0">
-                        还差{{activity.num - activity.condition_count}}{{activity.condition === 1 ? '人':'件'}}
-                    </text>
-                    拼团成功
-                </view>
-                <view class="status">{{status_text}}</view>
-            </view>
-            <view v-if="activity.condition > 0" class="main-between cross-center status-down" >
-                <view class="progress">
-                    <view :style="{'width': `${activity.rate}%`,'backgroundImage':`url(${bonusImg.progress})`}"></view>
-                </view>
-                <view style="color: #999">
-                    {{activity.condition_count ? activity.user_num : 0}}人已抢{{activity.all_sales}}件
-                </view>
-            </view>
-        </view>
-        <view class="status" v-else>
-            <text v-if="activity.activity_status == 2">本次活动已结束</text>
-            <text v-if="activity.activity_status == 0">距离本次活动开始还有{{d > 0? d + '天': ''}}{{h > 0? h + '时': ''}}{{m > 0? m + '分': ''}}</text>
-        </view>
-        <view class="goods-list">
-            <view class="dir-left-nowrap item" v-for="item in list" :key="item.id">
-                <view class="goods-cover">
-                    <view v-if="item.goods_stock == 0" class="out-dialog">
-                        <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-                    </view>
-                    <image :src="item.cover_pic"></image>
-                </view>
-                <view @click="switchGood(item)" v-if="activity.activity_status < 2" class="goods-switch">
-                    <switch :color="getTheme.color" :checked="item.switch == 1" />
-                </view>
-                <view class="goods-info">
-                    <view class="goods-name t-omit">{{item.name}}</view>
-                    <view class="goods-profit" :style="{'color': getTheme.color, 'border-color': getTheme.border}">预计利润 
-                        <text v-if="item.use_attr === 1">¥{{item.profit_price.min_price}}-{{item.profit_price.max_price}}</text>
-                        <text v-else>¥{{item.profit_price}}</text>
-                    </view>
-                    <view>库存:{{item.goods_stock}}{{item.goodsWarehouse.unit}}</view>
-                    <view :style="{'color': `${activity.activity_status == 0 ? '#ffffff': '#666'}`}">{{item.sales}}</view>
-                    <view class="goods-price" :style="{'color': getTheme.color}">¥{{item.min_price}}</view>
-                </view>
-            </view>
-        </view>
-        <!--空格区域-->
-        <view class="safe-area-inset-bottom">
-            <view class="u-bottom-height"></view>
-        </view>
-        <!--底部按钮-->
-        <view class="safe-area-inset-bottom u-bottom-fixed">
-            <view class="bottom-menu dir-left-nowrap">
-                <view class="menu-btn-area dir-left-nowrap">
-                    <view @click="toOrder" class="menu-btn box-grow-1 dir-top-nowrap main-center cross-center">
-                        <image src="https://shop.9026.com/web/statics/img/mall/community/order.png"></image>
-                        <view>团购订单</view>
-                    </view>
-                    <view @click="toRecord" class="menu-btn box-grow-1 dir-top-nowrap main-center cross-center">
-                        <image src="https://shop.9026.com/web/statics/img/mall/community/data.png"></image>
-                        <view>数据</view>
-                    </view>
-                    <view @click="copy" v-if="activity.activity_status > 0" class="menu-btn box-grow-1 dir-top-nowrap main-center cross-center">
-                        <image src="https://shop.9026.com/web/statics/img/mall/community/long.png"></image>
-                        <view>复制接龙</view>
-                    </view>
-                </view>
-                <view class="status-btn">
-                    <button :style="{'background-color': getTheme.background}" @click="showShare=true" v-if="(activity.activity_status == 2 && activity.is_success == 1) || activity.activity_status == 1 || activity.activity_status == 0" class="share">推广到群聊</button>
-                    <view v-if="activity.activity_status == 2 && activity.is_success == 0" class="lose">活动失败</view>
-                </view>
-            </view>
-        </view>
-        <app-share-qr-code @share="hShareAppMessage" :posterUrl="'/plugins/community/poster/poster?activity_id='+id + '&middleman_id=0'" :hasPosterNav="showShare" v-model="showShare" title="生成活动海报"></app-share-qr-code>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-
-    export default {
-        data() {
-            return {
-                timeInterval: null,
-                showShare: false,
-                id: 0,
-                middleman_id: 0,
-                list: [],
-                order: [],
-                status_text: '',
-                activity: {},
-                d: '',
-                h: '',
-                m: '',
-                setting: {}
-            }
-        },
-        components: {
-            appShareQrCode
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                appSetting: state => state.mallConfig.mall.setting,
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-            })
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            that.id = options.id;
-            that.middleman_id = options.middleman_id;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getSetting();
-        },
-        onHide() {
-            clearInterval(this.timeInterval);
-        },
-        onUnload() {
-            clearInterval(this.timeInterval);
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false) {
-                return this.$shareAppMessage({
-                    title: this.setting.app_share_title ? this.setting.app_share_title : this.$children[0].navigationBarTitle,
-                    imageUrl: this.setting.app_share_pic ? this.setting.app_share_pic : this.list[0].cover_pic,
-                    path: "/plugins/community/activity/activity",
-                    params: {
-                        id: this.id
-                    }
-                }, s);
-            },
-            copy() {
-                let that = this;
-                let order = '';
-                let no;
-                if(that.order.length === 0) {
-                    uni.showToast({
-                        title: '暂无订单,复制接龙文本失败',
-                        duration: 1000,
-                        icon: 'none'
-                    });
-                    return false;
-                }
-                for(let i = 0;i < that.order.length;i++) {
-                    no = i + 1
-                    if(no > 1) {
-                        order += '\n\n';
-                    }
-                    if(no < 10) {
-                        order += "【00"+no+"】\n";
-                    }else if(no < 100) {
-                        order += "【0"+no+"】\n";
-                    }else if(no < 1000) {
-                        order += "【"+no+"】\n";
-                    }
-                    order += "用户昵称:"+that.order[i].name+"\n商品名称:";
-                    for(let idx in that.order[i].list) {
-                        if(idx > 0) {
-                            order += "、";
-                        }
-                        order += that.order[i].list[idx].goods + "(";
-                        for(let index in that.order[i].list[idx].attr) {
-                            if(index > 0) {
-                                order += "/";
-                            }
-                            order += that.order[i].list[idx].attr[index].attr_name;
-                        }
-                        order += ") x" + that.order[i].list[idx].num;
-                    }
-                }
-                this.$utils.uniCopy({
-                    data: order,
-                    success() {
-                        //#ifndef MP-WEIXIN
-                        uni.showToast({title: '复制成功'});
-                        // #endif
-                    },
-                });
-            },
-            switchGood(item) {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.switch,
-                    data: {
-                        activity_id: that.id,
-                        goods_id: item.id
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    uni.hideLoading();
-                    uni.showToast({
-                        title: response.msg,
-                        icon: 'none',
-                        duration: 1000
-                    });
-                })
-            },
-            toOrder() {
-                uni.redirectTo({
-                    url: '/plugins/community/order/order?keyword=' + this.activity.title
-                });
-            },
-            toRecord() {
-                uni.navigateTo({
-                    url: '/plugins/community/record/record?id=' +this.id
-                });
-            },
-            getTime(time) {
-                if(time > 86399) {
-                    this.d = Math.floor(time / 86400);
-                    time = time - (86400*this.d);
-                }else {
-                    this.d = 0;
-                }
-                if(time > 3599) {
-                    this.h = Math.floor(time / 3600);
-                    time = time - (3600*this.h);
-                }else {
-                    this.h = 0;
-                }
-                if(time > 59) {
-                    this.m = Math.floor(time / 60);
-                    time = time - (60*this.m);
-                }else {
-                    this.m = 0;
-                }
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.setting,
-                }).then(response=>{
-                    if(response.code === 0) {
-                        that.setting = response.data;
-                        that.getList();
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    that.$hideLoading();
-                });
-            },
-            getOrder() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.middle_list,
-                    data: {
-                        status: 0,
-                        keyword: that.activity.title,
-                        is_pagination: 2
-                    },
-                }).then(response=>{
-                    this.order = response.data.list;
-                })
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.activity_detail,
-                    data: {
-                        id: that.id
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.$hideLoading();
-                    if(response.code === 0) {
-                        that.activity = response.data.activity;
-                        that.list = response.data.list;
-                        for(let i in that.list) {
-                            that.list[i].check = true;
-                        }
-                        if(that.activity.activity_status == 0) {
-                            let time = that.activity.time - 1;
-                            that.timeInterval = setInterval(() =>{
-                                that.getTime(time);
-                                time--;
-                                if(time == 0) {
-                                    clearInterval(that.timeInterval);
-                                    that.getList();
-                                }
-                            },1000);
-                        }else {
-                            that.status_text = that.activity.end_at.slice(5) + '结束';
-                            that.getOrder();
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .status {
-        height: 96rpx;
-        line-height: 96rpx;
-        background-color: #fff;
-        padding: 0 24rpx;
-        font-size: 24rpx;
-        &.start {
-            height: 140rpx;
-            padding-top: 30rpx
-        }
-        .status-up,.status-down {
-            height: 50rpx;
-            line-height: 50rpx;
-            font-size: 24rpx;
-            width: 100%;
-            view {
-                height: 50rpx;
-                line-height: 50rpx;
-            }
-            .progress {
-                width: #{430rpx};
-                background-color: #f0f0f0;
-                border-radius: #{10rpx};
-                height: #{20rpx};
-                position: relative;
-                overflow: hidden;
-                view {
-                    border-radius: #{10rpx};
-                    height: #{20rpx};
-                    position: absolute;
-                    top: 0;
-                    left: 0;
-                    z-index: 2;
-                }
-            }
-            .condition {
-                font-size: 28rpx;
-                color: #353535;
-            }
-            .status {
-                font-size: 26rpx;
-                color: #ff4544;
-                padding-right: 0;
-            }
-        }
-    }
-    .goods-list {
-        padding: 0 24rpx;
-        .item {
-            height: 220rpx;
-            width: 702rpx;
-            margin-top: 20rpx;
-            background-color: #fff;
-            border-radius: 16rpx;
-            position: relative;
-            .goods-switch {
-                position: absolute;
-                right: 24rpx;
-                bottom: 24rpx;
-                transform:scale(0.7)
-            }
-            .goods-cover {
-                flex-shrink: 0;
-                width: 220rpx;
-                height: 220rpx;
-                border-radius: 16rpx;
-                margin-right: 20rpx;
-                position: relative;
-                .out-dialog {
-                    width: #{220rpx};
-                    height: #{220rpx};
-                    border-radius: #{16rpx};
-                    position: absolute;
-                    top: 0;
-                    left: 0;
-                    z-index: 10;
-                    background-color: rgba(0,0,0,.5);
-                    image {
-                        width: #{220rpx};
-                        height: #{220rpx};
-                        border-radius: #{16rpx};
-                    }
-                }
-                image {
-                    width: 100%;
-                    height: 100%;
-                    border-radius: 16rpx;
-                }
-            }
-            .goods-info {
-                padding-top: 20rpx;
-                font-size: 20rpx;
-                color: #666;
-                .goods-name {
-                    font-size: 28rpx;
-                    width: 440rpx;
-                    color: #353535;
-                }
-                .goods-profit {
-                    display: inline-block;
-                    padding: 0 4rpx;
-                    border: 2rpx solid;
-                    border-radius: 8rpx;
-                    margin: 12rpx 0 8rpx;
-                    font-size: 22rpx;
-                    height: 30rpx;
-                    line-height: 28rpx;
-                }
-                .goods-price {
-                    font-size: 32rpx;
-                }
-            }
-        }
-    }
-    .u-bottom-height {
-        height: 130upx;
-    }
-    .bottom-menu {
-        width: 100%;
-        height: 110rpx;
-        font-size: 20rpx;
-        .menu-btn-area {
-            width: 50%;
-            height: 110rpx;
-            .menu-btn {
-                height: 110rpx;
-                color: #999;
-                border-right: 2rpx solid #e2e2e2;
-                width: 25%;
-                &:last-of-type {
-                    border-right: 0;
-                }
-                image {
-                    width: 40rpx;
-                    height: 40rpx;
-                    margin-bottom: 5rpx;
-                }
-            }
-        }
-        .status-btn {
-            width: 50%;
-            height: 110rpx;
-            text-align: center;
-            line-height: 110rpx;
-            .lose {
-                width: 100%;
-                height: 100%;
-                background-color: #999999;
-                color: #fff;
-                font-size: 28rpx;
-            }
-            .share {
-                width: 100%;
-                height: 100%;
-                line-height: 110rpx;
-                color: #fff;
-                border-radius: 0;
-                font-size: 28rpx;
-            }
-        }
-    }
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1500;
-        background-color: #ffffff;
-    }
-</style>

+ 0 - 707
src/plugins/community/goods/goods.vue

xqd
@@ -1,707 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="goods.id == ''" class="u-goods-detail"></view>
-        <view class="app-goods" v-else>
-            <!--商品轮播图-->
-            <app-banner
-                :videoUrl="goods.video_url"
-                :share="goods.share"
-                :picList="goods.pic_url"
-                :goods_id="goods_id"
-                :isCart="false"
-                sign="community"
-            ></app-banner>
-            <!-- 商品时间 -->
-            <app-goods-time
-                :day="day"
-                :second="second"
-                :minute="minute"
-                :hour="hour"
-                :theme="getTheme"
-                :status="activity.status"
-                :goods="goods"
-            ></app-goods-time>
-            <view class="other-info">
-                <view class="t-omit-two goods-name">{{goods.name}}</view>
-                <view v-if="goods.subtitle" class="goods-subtitle">
-                    <view class="t-omit-three">{{goods.subtitle}}</view>
-                </view>
-                <view class="middleman dir-top-nowrap main-center">
-                    <view v-if="middleman.id > 0" class="middleman-info dir-left-nowrap">
-                        <image class="avatar" :src="middleman.avatar"></image>
-                        <view class="user-info">
-                            <view class="t-omit" style="width: 80%">{{middleman.name}}</view>
-                            <view class="t-omit-two middleman-address">
-                                <image class="icon" src="https://shop.9026.com/web/statics/img/mall/community/add.png"></image>
-                                <text>提货地址:{{middleman.province}}<text v-if="middleman.province != middleman.city">{{middleman.city}}</text>{{middleman.district}}{{middleman.detail}}</text>
-                            </view>
-                        </view>
-                    </view>
-                    <view v-if="activity.status != 2" class="app-share">
-                        <view @click="shareShow = true"
-                              :style="{'background-color': getTheme.background}"
-                              class="app-share-box dir-left-nowrap main-center cross-center">
-                            <image class="app-icon  box-grow-0" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-share-white.png"></image>
-                            <text class="app-text box-grow-0">分享</text>
-                        </view>
-                    </view>
-                </view>
-				<view>
-					<bd-info-extra :unit="goods.unit" :goods="goods" :theme="getTheme" :min-number="goods.min_number" :limit-buy="goods.limit_buy"></bd-info-extra>
-				</view>
-            </view>
-            <!--商品优惠券-->
-            <bd-coupon @change="setCoupon" :theme="getTheme" :coupons="goods.goods_coupon_center"></bd-coupon>
-            <bd-xbc
-                v-if="goods"
-                :coAttr="is_open"
-                :attr-list="checked ? checked.attr_list : []"
-                :type="goods.type"
-                :guarantee-title="goods.guarantee_title"
-                :guarantee-pic="goods.guarantee_pic"
-                :param_content="goods.param_content"
-                :param_name="goods.param_name"
-                :services="goods.services"
-                :attr-groups="goods.attr_groups"
-                :goods-stock="goods.goods_stock"
-                @openAttr="joinCart"
-            ></bd-xbc>
-            <bd-hc
-                :integral="goods.goods_marketing_award.integral"
-                :coupon="goods.goods_marketing_award.coupon"
-                :card="goods.goods_marketing_award.card"
-                :balance="goods.goods_marketing_award.balance"
-                :theme="getTheme"
-            ></bd-hc>
-            <bd-kb
-                :limit="goods.goods_marketing.limit"
-                :express="goods.express"
-                :shipping="goods.goods_marketing.shipping"
-                :pickup="goods.goods_marketing.pickup"
-            ></bd-kb>
-            <bd-comments :goods-id="goods.id"></bd-comments>
-            <bd-detail :detail="goods.detail"></bd-detail>
-            <!--空格区域-->
-            <view class="safe-area-inset-bottom">
-                <view class="u-bottom-height"></view>
-            </view>
-            <!-- 底部按钮 -->
-            <view v-if="is_open == 1" class="safe-area-inset-bottom u-bottom-fixed">
-                <view class="bd-bottom dir-left-nowrap">
-                    <view class="bd-back dir-top-nowrap main-center cross-center box-grow-0" @click="back">
-                        <image class="bd-icon" src="https://shop.9026.com/web/statics/img/mall/community/activity.png"></image>
-                        <text class="bd-text">活动</text>
-                    </view>
-                    <view v-if="goods && goods.goods_stock > 0 && activity.status === 1" @click="joinCart"
-                          :style="{'background': goods.buy_goods_auth ? getTheme.background_gradient_btn : '#999999'}"
-                     class="'bd-btn box-grow-1 bd-btn-color">
-                        加入购物车
-                    </view>
-                    <view class="box-grow-1 bd-btn bd-oversell-btn bd-btn-color" v-else>
-                        加入购物车
-                    </view>
-                </view>
-            </view>
-        </view>
-        <app-close v-if="showClose" :modal="false" @update="getMall"></app-close>
-        <!--商品规格-->
-        <u-attr
-            v-if="goods && goods.goods_stock > 0 && activity.status === 1"
-            v-model="show"
-            :goods="goods"
-            :theme="getTheme"
-            :checked="checked"
-            :is_show_left="false"
-            :right-func="true"
-            right-text="加入购物车"
-            @rightFunc="rightFunc"
-            @check="check"
-        >
-        </u-attr>
-        <app-share-qr-code
-            v-model="shareShow"
-            :url="url"
-            :goods="goods"
-            :poster-config="posterConfig"
-            :poster-generate="posterGenerate"
-            :has-poster-nav="hasPosterNav"
-            @share="hShareAppMessage"
-        ></app-share-qr-code>
-    </app-layout>
-</template>
-
-<script>
-    import {mapState, mapGetters} from 'vuex';
-    import appBanner from '../../../components/page-component/goods/app-goods-banner.vue';
-    import appGoodsTime from '../components/app-goods-time.vue';
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-    import uAttr from '../../../components/page-component/goods/u-attr.vue';
-    import appClose from '@/components/basic-component/app-close/app-close.vue';
-    import bdCoupon from '@/components/page-component/goods/bd-coupon.vue';
-    import bdXbc from '@/components/page-component/goods/bd-xbc.vue';
-    import bdKb from '@/components/page-component/goods/bd-kb.vue';
-    import bdHc from '@/components/page-component/goods/bd-hc.vue';
-    import bdDetail from '@/components/page-component/goods/bd-detail.vue';
-    import bdComments from '@/components/page-component/goods/bd-comments.vue';
-	import bdInfoExtra from '@/components/page-component/goods/bd-info-extra.vue';
-
-    export default {
-        name: 'goods',
-        data() {
-            return {
-                showClose: false,
-                is_open: 0,
-                goods: {
-                    id: '',
-                    name: '',
-                    cover_pic: '',
-                    price: '',
-                },
-                middleman: {},
-                activity: {},
-                hasPosterNav: true,
-                posterConfig: this.$api.community.goods_config,
-                posterGenerate: this.$api.community.goods_generate,
-                isShowBuy: false,
-                shareShow: false,
-                checked: null,
-                url: '',
-                show: false,
-                list: [],
-                goods_id: -1,
-                hour: 0,
-                minute: 0,
-                second: 0,
-                longitude: 0,
-                latitude: 0,
-                day: 0,
-                loading: false,
-                first: true,
-                middleman_id: 0,
-				disable: 'disable'
-            }
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-                menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-            that.goods_id = options.goods_id;
-            that.posterConfig = that.posterConfig + '&goods_id=' + that.goods_id;
-            that.posterGenerate = that.posterGenerate + '&goods_id=' + that.goods_id;
-            if(options.middleman_id > 0) {
-                that.middleman_id = options.middleman_id;
-                that.$showLoading({
-                    type: 'global',
-                    text: '加载中...'
-                });
-                that.request({
-                    url: that.$api.community.goods_detail,
-                    data: {
-                        goods_id: that.goods_id,
-                        middleman_id: that.middleman_id,
-                    }
-                }).then(response => {
-                    that.first = false;
-                    let { goods, activity,middleman } = response;
-                    that.goods = goods;
-                    that.goods.price = that.goods.price.toString();
-                    that.activity = activity;
-                    that.middleman = middleman;
-                    that.loading = true;
-                    that.url = `${that.$api.goods.poster}&goods_id=${that.goods.id}`;
-                    if(activity.time > 0) {
-                        that.getTime(activity.time);
-                    }
-                    that.$hideLoading();
-                    // #ifdef H5
-                    that.hShareAppMessage();
-                    // #endif
-                });
-            }else {
-                // #ifndef H5
-                uni.getLocation({
-                    success: (e) => {
-                        uni.hideLoading();
-                        that.longitude = e.longitude;
-                        that.latitude = e.latitude;
-                        that.$showLoading({
-                            type: 'global',
-                            text: '加载中...'
-                        });
-                        that.request({
-                            url: that.$api.community.goods_detail,
-                            data: {
-                                goods_id: that.goods_id,
-                                longitude: that.longitude,
-                                latitude: that.latitude
-                            }
-                        }).then(response => {
-                            that.first = false;
-                            let { goods, activity,middleman } = response;
-                            that.goods = goods;
-                            that.activity = activity;
-                            that.middleman = middleman;
-                            that.loading = true;
-                            that.url = `${that.$api.goods.poster}&goods_id=${that.goods.id}`;
-                            if(activity.time > 0) {
-                                that.getTime(activity.time);
-                            }
-                            that.$hideLoading();
-                        });
-                    },
-                    fail: () => {
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: '获取位置信息失败,需要授权获取您的位置信息',
-                            showCancel: false,
-                            confirmText: '打开授权',
-                            success(e) {
-                                if (e.confirm) {
-                                    uni.openSetting({});
-                                }
-                            }
-                        });
-                    },
-                });
-                // #endif
-                // #ifdef H5
-                that.$jwx.getLocation({
-                    success: (e) => {
-                        uni.hideLoading();
-                        that.longitude = e.longitude;
-                        that.latitude = e.latitude;
-                        that.$showLoading({
-                            type: 'global',
-                            text: '加载中...'
-                        });
-                        that.request({
-                            url: that.$api.community.goods_detail,
-                            data: {
-                                goods_id: that.goods_id,
-                                longitude: that.longitude,
-                                latitude: that.latitude
-                            }
-                        }).then(response => {
-                            that.first = false;
-                            let { goods, activity,middleman } = response;
-                            that.detail = goods;
-                            that.activity = activity;
-                            that.middleman = middleman;
-                            that.loading = true;
-                            that.url = `${that.$api.goods.poster}&goods_id=${that.detail.id}`;
-                            if(activity.time > 0) {
-                                that.getTime(activity.time);
-                            }
-                            that.$hideLoading();
-                        });
-                    },
-                    fail: function () {
-                        uni.showToast({
-                            title: '请开启手机位置权限',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    },
-                })
-                // #endif
-            }
-        },
-        onShow() {
-            this.showClose = false;
-            setTimeout(()=>{
-                this.showClose = true;
-            })
-            if(this.first) {
-                return false
-            }
-            this.$showLoading();
-            this.$nextTick(() => {
-                this.request({
-                    url: this.$api.community.goods_detail,
-                    data: {
-                        goods_id: this.goods_id,
-                        middleman_id: this.middleman_id,
-                        longitude: this.longitude,
-                        latitude: this.latitude
-                    }
-                }).then(response => {
-                    let { goods, activity,middleman } = response;
-                    this.goods = goods;
-                    this.activity = activity;
-                    this.middleman = middleman;
-                    this.loading = true;
-                    this.url = `${this.$api.goods.poster}&goods_id=${this.goods.id}`;
-                    if(activity.time > 0) {
-                        this.getTime(activity.time);
-                    }
-                    this.$hideLoading();
-                });
-            })
-        },
-        onHide() {
-            clearInterval(this.time);
-        },
-        onUnload() {
-            clearInterval(this.time);
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                userInfo: state => state.user.info,
-            })
-        },
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-            // 分享朋友圈beta
-            return this.$shareTimeline({
-                title: this.goods.app_share_title ? this.goods.app_share_title : this.goods.name,
-                imageUrl: this.goods.pic_url[0].pic_url,
-                query: {
-                    goods_id: this.goods.id,
-                    user_id: this.userInfo.options.user_id
-                }
-            });
-        },
-        // #endif
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false){
-                let { app_share_title, app_share_pic, name, id, pic_url, subtitle} = this.goods;
-                return this.$shareAppMessage({
-                    path: '/plugins/community/goods/goods',
-                    title: app_share_title ? app_share_title : name,
-                    imageUrl: app_share_pic ? app_share_pic : pic_url[0].pic_url,
-                    desc: subtitle,
-                    params: {
-                        goods_id: id,
-                        user_id: this.userInfo.options.user_id
-                    }
-                },s);
-            },
-            getMall(e) {
-                this.is_open = e.is_open;
-            },
-            async request({url, data}) {
-                const response = await this.$request({
-                    url: url,
-                    data: data,
-                });
-                if (response.code === 0) {
-                    return response.data;
-                }else {
-                    uni.showToast({
-                        title: response.msg,
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    if(response.msg === '所选活动已下架' || response.msg === '所选活动不存在' ) {
-                        setTimeout(()=>{
-                            uni.navigateBack({});
-                        },1000);
-                    }
-                    if(response.msg == '所选商品不在活动中') {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        setTimeout(()=>{
-                            uni.redirectTo({
-                                url: '/plugins/community/list/list'
-                            });
-                        },1000)
-                        return false
-                    }
-                }
-            },
-            check({item}) {
-                this.checked = item;
-            },
-            back() {
-                uni.redirectTo({
-                    url: '/plugins/community/list/list'
-                });
-            },
-            rightFunc(data) {
-                let { id, goods_attr_id, num } = data.goods_list[0];
-                this.$request({
-                    url: this.$api.community.cart_add,
-                    data: {
-                        activity_id: this.activity.id,
-                        goods_id: id,
-                        goods_attr_id: goods_attr_id,
-                        num: num
-                    },
-                    method: 'post'
-                }).then(response => {
-                    if (response.code === 0) {
-                        this.addResult(response.data.queue_id, response.data.token);
-                    }
-                });
-            },
-            joinCart() {
-				if (!this.goods.buy_goods_auth) {
-                    this.$tips.showToast({
-                        title: '您暂无权限购买该商品',
-                        icon: 'none'
-                    });
-                    return;
-				}
-                this.show = true;
-            },
-            addResult(queue_id, token) {
-                this.$request({
-                    url: this.$api.community.cart_result,
-                    method: 'post',
-                    data: {
-                        queue_id: queue_id,
-                        token: token,
-                    },
-                }).then(response => {
-                    if (response.code === 0) {
-                        if (response.data && response.data.retry === 1) {
-                            setTimeout(() => {
-                                this.addResult(queue_id, token);
-                            }, 1000);
-                        } else {
-                            this.attrShow = 0;
-                            uni.hideLoading();
-                            uni.showToast({
-                                title: '添加成功',
-                                duration: 1000
-                            });
-                        }
-                    } else {
-                        uni.hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                });
-            },
-            getTime(newValue) {
-                newValue = newValue - 1;
-                this.day = parseInt(newValue / 3600 / 24);
-                this.hour = parseInt(newValue / 3600 % 24);
-                if(this.hour < 10) {
-                    this.hour = '0' + this.hour
-                }else {
-                    this.hour = this.hour.toString();
-                }
-                this.minute = parseInt(newValue / 60 % 60);
-                if(this.minute < 10) {
-                    this.minute = '0' + this.minute
-                }else {
-                    this.minute = this.minute.toString();
-                }
-                this.second = parseInt(newValue % 60);
-                if(this.second < 10) {
-                    this.second = '0' + this.second
-                }else {
-                    this.second = this.second.toString();
-                }
-                clearInterval(this.time);
-                this.time = setInterval(() => {
-                    newValue = newValue - 1;
-                    if (newValue < 0) {
-                        clearInterval(this.time);
-                    }
-                    this.day = parseInt(newValue / 3600 / 24);
-                    this.hour = parseInt(newValue / 3600 % 24);
-                    if(this.hour < 10) {
-                        this.hour = '0' + this.hour
-                    }else {
-                        this.hour = this.hour.toString();
-                    }
-                    this.minute = parseInt(newValue / 60 % 60);
-                    if(this.minute < 10) {
-                        this.minute = '0' + this.minute
-                    }else {
-                        this.minute = this.minute.toString();
-                    }
-                    this.second = parseInt(newValue % 60);
-                    if(this.second < 10) {
-                        this.second = '0' + this.second
-                    }else {
-                        this.second = this.second.toString();
-                    }
-                }, 1000);
-            },
-            setCoupon(index) {
-                this.$set(this.goods.goods_coupon_center[index], 'is_receive', 1);
-            }
-        },
-        components: {
-            'app-banner': appBanner,
-            'app-goods-time': appGoodsTime,
-            'app-share-qr-code': appShareQrCode,
-            appClose,
-            uAttr,
-            bdCoupon,
-            bdXbc,
-            bdKb,
-            bdHc,
-            bdDetail,
-            bdComments,
-			bdInfoExtra,
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .other-info {
-        background-color: #fff;
-        padding: 20upx;
-        width: 702upx;
-        border-radius: 15upx;
-        margin: 24upx 24upx 0 24upx;
-        .goods-name {
-            font-size: #{32rpx};
-            line-height: 42upx;
-            color: #353535;
-            margin-bottom: #{24rpx};
-        }
-        .goods-subtitle {
-            font-size: 24rpx;
-            line-height: 34upx;
-            background-color: #ffffff;
-            color: #999999;
-            margin-bottom: #{24rpx};
-        }
-        .middleman {
-            height: #{88rpx};
-            color: #ffffff;
-            position: relative;
-            .app-share {
-                height: #{136rpx};
-                position: absolute;
-                right: #{-20rpx};
-                top: #{12rpx};
-
-                .app-share-box {
-                    height: #{48rpx};
-                    border-radius: #{40rpx} 0 0 #{40rpx};
-                    padding: 0 #{14rpx};
-                    width: #{103rpx};
-
-                    .app-icon {
-                        width: #{22rpx};
-                        height: #{22rpx};
-                    }
-
-                    .app-text {
-                        font-size: #{22rpx};
-                        color: #ffffff;
-                        margin-left: #{10rpx};
-                        top: #{50rpx};
-                    }
-                }
-            }
-            .middleman-info {
-                .avatar {
-                    width: #{88rpx};
-                    height: #{88rpx};
-                    border-radius: 50%;
-                    margin-right: #{24rpx};
-                }
-                .user-info {
-                    font-size: #{30rpx};
-                    color: #353535;
-                    width: #{520rpx};
-                    .middleman-address {
-                        margin-top: #{16rpx};
-                        font-size: #{24rpx};
-                        .icon {
-                            height: #{25rpx};
-                            width: #{19rpx};
-                            margin-right: #{5rpx};
-                            color: #ff4544;
-                        }
-                    }
-                }
-            }
-        }
-    }
-    .app-goods {
-        background-color: #f7f7f7;
-    }
-    .bd-bottom {
-        width: 750upx;
-        height: 110upx;
-        padding: 20upx 24upx;
-    }
-    .bd-back {
-        width: 66upx;
-        height: 100%;
-        margin-right: 20upx;
-    }
-    .bd-icon {
-        width: 30upx;
-        height: 30upx;
-    }
-    .bd-text {
-        font-size: 20upx;
-        color: #888888;
-    }
-    .bd-btn {
-        text-align: center;
-        line-height: 70upx;
-        font-size: 28upx;
-        border-radius: 35upx;
-    }
-    .bd-btn-color {
-        color: #ffffff;
-    }
-    .bd-oversell-btn {
-        background-color: #CDCDCD;
-    }
-    .product-list {
-        background-color: white;
-    }
-
-    .join-member {
-        background-color: #ffffff;
-        padding: 0 #{24rpx};
-    }
-    .app-bottom {
-        background-color: white;
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-    }
-    .text {
-        color: #ffffff;
-    }
-
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1500;
-        background-color: #ffffff;
-    }
-    .u-bottom-height {
-        height: 110upx;
-    }
-    .u-bottom-height {
-        height: 110upx;
-    }
-    .goods-margin {
-        margin-top: 20upx;
-    }
-</style>

+ 0 - 463
src/plugins/community/index/index.vue

xqd
@@ -1,463 +0,0 @@
-<template>
-    <app-layout>
-        <scroll-view @scrolltolower="getMore" scroll-y :style="{'height':`${windowHeight}px`}">
-            <app-tab-nav setTop="0" :tabList="tabList" padding="0" :theme="getTheme" :activeItem="activeTab" @click="tabStatus"></app-tab-nav>
-            <view v-if="list.length > 0">
-                <view v-for="(item,index) in list" :key="item.id" class="list">
-                    <view class="title main-between cross-center">
-                        <view class="title-name">
-                            <view class="title-text">{{item.title}}</view>
-                            <view v-if="item.condition > 0">满{{item.num}}{{item.condition == 1 ? '人':'件'}}成团,已参团{{item.condition_count ? item.condition_count : '0'}}{{item.condition == 1 ? '人':'件'}}</view>
-                        </view>
-                        <view class="status-text" :style="{'color': getTheme.color}">{{item.statusText}}</view>
-                    </view>
-                    <view @click="toDetail(item.id)" class="goods-list">
-                        <view class="dir-left-nowrap">
-                            <view class="goods" v-for="goods in item.communityGoods_4"  :key="goods.id">
-                                <image mode='aspectFill' :src="goods.cover_pic"></image>
-                            </view>
-                        </view>
-                        <image class="right-arrow" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-                    </view>
-                    <view class="main-between cross-center other">
-                        <view>共{{item.goods_count}}件商品</view>
-                        <view class="dir-right-nowrap">
-                            <view @click="showHiddenClick(item)" class="other-button normal-button" v-if="item.status_name == '未开始' || item.status_name == '进行中'">分享</view>
-                            <view @click="toRemind(item.id,index)" class="other-button" :style="{'color': getTheme.color, 'border-color': getTheme.border}" v-if="item.status_name == '已结束' && item.is_success == 1 && item.is_remind == 0">通知提货</view>
-                            <view class="other-button un-active" v-if="item.status_name == '已结束' && item.is_success == 1 && item.is_remind == 1">通知提货</view>
-                            <view v-if="item.status_name != '未开始'" @click="toOrder(item)" class="other-button normal-button">本团订单</view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <view v-else class="empty-box">
-                <image src="https://shop.9026.com/web/statics/img/mall/static/order-empty.png"></image>
-                <span>暂无{{activeTab == 0?'未开始': activeTab == 1?'进行中':activeTab == 2?'已结束':''}}活动</span>
-            </view>
-            <view>
-                <app-share-qr-code @share="hShareAppMessage" :posterUrl="'/plugins/community/poster/poster?activity_id='+id + '&middleman_id=0'" :hasPosterNav="showShare" v-model="showShare" :url="poster" title="生成活动海报"></app-share-qr-code>
-            </view>
-            <view v-if="showRemind" class="dialog-bg main-center cross-center">
-                <view class="dialog">
-                    <view class="dialog-content">确认通知提货?</view>
-                    <view class="dialog-btn main-between">
-                        <view @click="toRemind" class="btn" style="color: #666">取消</view>
-                        <view class="line"></view>
-                        <view @click="remind" class="btn" :style="{'color': getTheme.color}">确认</view>
-                    </view>
-                </view>
-            </view>
-            <app-menu :theme="getTheme" active="activity"></app-menu>
-        </scroll-view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appMenu from '../components/app-menu';
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-
-    export default {
-        data() {
-            return {
-                tabList: [
-                    {id:-1, name: '全部'},
-                    {id:1, name: '进行中'},
-                    {id:0, name: '未开始'},
-                    {id:2, name: '已结束'}
-                ],
-                activeTab: -1,
-                list: [],
-                setting: {},
-                detail: {},
-                id: 0,
-                windowHeight: 0,
-                index: -1,
-                page: 1,
-                showShare: false,
-                showRemind: false,
-                more: false,
-                poster: '',
-                middleman: {}
-            }
-        },
-        components: {
-            "app-tab-nav": appTabNav,
-            "app-menu": appMenu,
-            appShareQrCode
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                userInfo: state => state.user.info,
-            })
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            uni.getSystemInfo({
-                success: function (res) {
-                    that.windowHeight = res.windowHeight;
-                }
-            })
-            that.getStatus();
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false) {
-                return this.$shareAppMessage({
-                    title: this.setting.app_share_title ? this.setting.app_share_title : this.$children[0].navigationBarTitle,
-                    imageUrl: this.setting.app_share_pic ? this.setting.app_share_pic : this.detail.communityGoods_4[0].cover_pic,
-                    path: "/plugins/community/activity/activity",
-                    params: {
-                        id: this.id
-                    }
-                },s);
-            },
-            toRemind(id,index) {
-                if(id > 0) {
-                    this.id = id;
-                    this.index = index;
-                }
-                this.showRemind = !this.showRemind
-            },
-            remind(item) {
-                let that = this;
-                that.toRemind();
-                uni.showLoading({
-                    mask: true,
-                    title: '发送提醒...'
-                });
-                that.$request({
-                    url: that.$api.community.notice,
-                    data: {
-                        activity_id: that.id
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    uni.showToast({
-                        title: response.msg,
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    that.id = 0;
-                    if(response.code == 0) {
-                        that.list[that.index].is_remind = 1;
-                        that.index = -1;
-                    }
-                })
-            },
-            toDetail(id) {
-                uni.navigateTo({
-                    url: '/plugins/community/detail/detail?id=' + id + '&middleman_id=' + this.middleman.user_id
-                });
-            },
-            toOrder(item) {
-                uni.redirectTo({
-                    url: '/plugins/community/order/order?keyword=' + item.title
-                });
-            },
-            showHiddenClick(detail) {
-                this.showShare = !this.showShare;
-                this.detail = detail;
-                this.id = detail.id;
-            },
-            tabStatus(e) {
-                if(this.loading) {
-                    return false
-                }
-                this.list = [];
-                this.page = 1;
-                this.activeTab = e.currentTarget.dataset.id;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.getList();
-            },
-            getStatus() {
-                let that = this;
-                that.$showLoading({
-                    type: 'global',
-                    text: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.community.index,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        this.setting = response.data.setting;
-                        if(response.data.middleman.status == 1) {
-                            that.getList();
-                            this.middleman = response.data.middleman;
-                        }else {
-                            that.$hideLoading();
-                            uni.showToast({
-                                title: '您还不是团长,现在前往申请页面',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                            setTimeout(function(){
-                                uni.redirectTo({
-                                    url: '/plugins/community/apply/apply'
-                                });
-                            },1000)
-                        }
-                    }else {
-                        that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-            getMore() {
-                if(this.more) {
-                    this.page++;
-                    this.getMoreList();
-                    this.more = false;
-                }
-            },
-            getMoreList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.activity_list,
-                    data: {
-                        status: that.activeTab,
-                        page: that.page
-                    },
-                    method: 'get'
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.more = false;
-                        if(response.list.length == 20) {
-                            that.more = true;
-                        }
-                        for(let index in response.list) {
-                            if(response.list[index].goods_count == 0) {
-                                response.list.splice(index,1)
-                            }
-                        }
-                        let list = response.list;
-                        for(let i in list) {
-                            if(list[i].status_name == '已结束') {
-                                list[i].statusText = '活动失败'
-                                if(list[i].is_success) {
-                                    list[i].statusText = '活动成功'
-                                }
-                            }else if(list[i].status_name == '进行中') {
-                                list[i].statusText = list[i].end_at + '结束'
-                            }else if(list[i].status_name == '未开始') {
-                                list[i].statusText = list[i].start_at + '开始'
-                            }
-                        }
-                        that.list = that.list.concat(list)
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.activity_list,
-                    data: {
-                        status: that.activeTab
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.more = false;
-                        if(response.list.length == 20) {
-                            that.more = true;
-                        }
-                        for(let index in response.list) {
-                            if(response.list[index].goods_count == 0) {
-                                response.list.splice(index,1)
-                            }
-                        }
-                        that.list = response.list;
-                        for(let i in that.list) {
-                            if(that.list[i].status_name == '已结束') {
-                                that.list[i].statusText = '活动失败'
-                                if(that.list[i].is_success) {
-                                    that.list[i].statusText = '活动成功'
-                                }
-                            }else if(that.list[i].status_name == '进行中') {
-                                that.list[i].statusText = that.list[i].end_at + '结束'
-                            }else if(that.list[i].status_name == '未开始') {
-                                that.list[i].statusText = that.list[i].start_at + '开始'
-                            }
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .dialog-bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: rgba(0,0,0,.3);
-        z-index: 1000;
-        .dialog {
-            font-size: 30rpx;
-            color: #353535;
-            width: 480rpx;
-            height: 200rpx;
-            border-radius: 16rpx;
-            text-align: center;
-            background-color: #fff;
-            .dialog-content {
-                height: 110rpx;
-                line-height: 110rpx;
-            }
-            .dialog-btn {
-                position: relative;
-                height: 90rpx;
-                border-top: 2rpx solid #e2e2e2;
-                .btn {
-                    width: 240rpx;
-                    height: 90rpx;
-                    text-align: center;
-                    line-height: 90rpx;
-                    font-size: 26rpx;
-                }
-                .line {
-                    position: absolute;
-                    top: 20rpx;
-                    left: 50%;
-                    margin-left: -1rpx;
-                    width: 2rpx;
-                    height: 45rpx;
-                    background-color: #e2e2e2;
-                }
-            }
-        }
-    }
-    .list {
-        background-color: #fff;
-        border-radius: 16rpx;
-        margin: 24rpx;
-        width: 702rpx;
-        padding: 0 24rpx 40rpx;
-        .title {
-            height: 115rpx;
-            border-bottom: 2rpx solid #e2e2e2;
-            font-size: 22rpx;
-            .title-name {
-                font-size: 22rpx;
-                color: #666;
-                .title-text {
-                    font-size: 28rpx;
-                    font-weight: 600;
-                    color: #353535;
-                }
-            }
-            .status-text {
-                width: 145rpx;
-                text-align: right;
-            }
-        }
-        .goods-list {
-            position: relative;
-            height: 160rpx;
-            .goods {
-                height: 160rpx;
-                padding-top: 20rpx;
-                padding-bottom: 20rpx;
-                image {
-                    margin-right: 20rpx;
-                    height: 120rpx;
-                    width: 120rpx;
-                    border-radius: 16rpx;
-                }
-            }
-            .right-arrow {
-                position: absolute;
-                top: 50%;
-                margin-top: #{-12rpx};
-                right: #{24rpx};
-                width: #{12rpx};
-                height: #{24rpx};
-            }
-        }
-        .other {
-            font-size: 22rpx;
-            color: #666;
-            height: 60rpx;
-            .other-button {
-                line-height: 58rpx;
-                height: 58rpx;
-                padding: 0 35rpx;
-                border-radius: 30rpx;
-                border: 2rpx solid;
-                display: inline-block;
-                font-size: 24rpx;
-                margin-left: 25rpx;
-                &.un-active {
-                    background-color: #F7F7F7;
-                    border-color: #F7F7F7;
-                    color: #E2E2E2;
-                }
-                &.normal-button {
-                    border-color: #e2e2e2;
-                }
-            }
-        }
-    }
-    .empty-box {
-        width: 100%;
-        height: 60vh;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        flex-direction: column;
-
-        image {
-            width: 280#{rpx};
-            height: 280#{rpx};
-        }
-        span {
-            margin-top: 15#{rpx};
-            color: #999;
-            font-size: 28#{rpx};
-        }
-    }
-</style>

+ 0 - 572
src/plugins/community/list/list.vue

xqd
@@ -1,572 +0,0 @@
-<template>
-    <app-layout>
-        <image class="banner" :src="setting.banner"></image>
-        <view class="nav-area">
-            <view class="nav main-center cross-center" :style="{'background-color': getTheme.background}">
-                <view @click="tabStatus(item,index)" :key="item.id" class="nav-item" v-for="(item,index) in tabList">
-                    <text>{{item.name}}</text>
-                </view>
-                <view class="active" :animation="animationData" :style="{'color': getTheme.color}">{{activeTabName}}</view>
-            </view>
-        </view>
-        <view class="placeholder"></view>
-        <view v-if="list.length > 0">
-            <view v-for="item in list" :key="item.id" v-if="item.goods_count > 0" class="list">
-                <view class="title main-center dir-top-nowrap" :style="{'background': getTheme.background_gradient}">
-                    <view class="title-text t-omit">{{item.title}}
-                        <image class="hot-icon" src="https://shop.9026.com/web/statics/img/mall/community/hot.png"></image>
-                    </view>
-                    <view class="sec-title-text t-omit" v-if="item.condition > 0">
-                        <text v-if="item.num - item.condition_count > 0">还差{{item.num - item.condition_count}}{{item.condition == 1 ? '人':'件商品'}}成团</text>
-                        <text v-else>已成团</text>
-                        ,已<text v-if="item.condition == 1">参</text>团{{item.condition_count ? item.condition_count : '0'}}{{item.condition == 1 ? '人':'件'}}
-                    </view>
-                </view>
-                <view class="status-text" :style="{'color': getTheme.color}">
-                    <view class="status-bg" :style="{'background-color': getTheme.background}"></view>
-                    {{item.statusText}}
-                </view>
-                <view @click="toDetail(item)" class="goods-list">
-                    <view class="dir-left-nowrap">
-                        <view class="goods" v-for="goods in item.communityGoods_4"  :key="goods.id">
-                            <image mode='aspectFill' :src="goods.cover_pic"></image>
-                        </view>
-                    </view>
-                    <image class="right-arrow" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-                </view>
-                <view class="main-between cross-center other">
-                    <view>共{{item.goods_count}}件商品</view>
-                </view>
-            </view>
-        </view>
-        <view v-else class="empty-box">
-            <image v-if="!loading" src="https://shop.9026.com/web/statics/img/mall/static/no-goods.png"></image>
-            <span v-if="!loading">暂无{{activeTab == 0?'未开始': activeTab == 1?'进行中':activeTab == 2?'已结束':''}}活动</span>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appMenu from '../components/app-menu';
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-    export default {
-        data() {
-            return {
-                tabList: [
-                    {id:-1, name: '全部'},
-                    {id:1, name: '进行中'},
-                    {id:0, name: '未开始'},
-                    {id:2, name: '已结束'}
-                ],
-                activeTab: -1,
-                activeTabName: '全部',
-                list: [],
-                setting: {},
-                widthRate: 1,
-                id: 0,
-                loading: false,
-                more: false,
-                page: 1,
-                first: true,
-                poster: '',
-                longitude: '',
-                latitude: '',
-                middleman: {},
-                middleman_id: '',
-                animation: {},
-                animationData: {}
-            }
-        },
-        components: {
-            "app-tab-nav": appTabNav,
-            "app-menu": appMenu,
-            appShareQrCode
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme'
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                userInfo: state => state.user.info,
-            })
-        },
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-          // 分享朋友圈beta
-          return this.$shareTimeline({
-            title: this.setting.app_share_title ? this.setting.app_share_title : this.$children[0].navigationBarTitle,
-            query: {} // 此处填写页面的参数
-          });
-        },
-        // #endif
-        onShow() {
-            let that = this;
-            that.animation = uni.createAnimation({
-                duration: 400,
-                timingFunction: 'linear',
-            });
-            if(that.first) {
-                return false;
-            }
-            if(this.$storage.getStorageSync('middleman_info')) {
-                let middleman = this.$storage.getStorageSync('middleman_info');
-                if(middleman.id > 0) {
-                    that.middleman_id = middleman.user_id
-                }
-                that.getList();
-            }else {
-                that.getList();
-            }
-        },
-        onLoad() { this.$commonLoad.onload();
-            let that = this;
-            uni.getSystemInfo({
-                success: function (res) {
-                    let width = res.windowWidth * 2;
-                    that.widthRate = width / 750;
-                }
-            });
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-              menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-            // #ifndef H5
-            uni.getLocation({
-                success: (e) => {
-                    uni.hideLoading();
-                    that.longitude = e.longitude;
-                    that.latitude = e.latitude;
-                    that.$showLoading({
-                        type: 'global',
-                        text: '加载中...'
-                    });
-                    that.getSetting();
-                },
-                fail: (e) => {
-                    uni.hideLoading();
-                    uni.showModal({
-                        title: '提示',
-                        content: '获取位置信息失败,需要授权获取您的位置信息',
-                        showCancel: false,
-                        confirmText: '打开授权',
-                        success(e) {
-                            if (e.confirm) {
-                                uni.openSetting({});
-                            }
-                        }
-                    });
-                },
-            });
-            // #endif
-            // #ifdef H5
-            if (that.$jwx.isWechat()) {
-                that.$jwx.getLocation({
-                    success(res) {
-                        uni.hideLoading();
-                        that.longitude = res.longitude;
-                        that.latitude = res.latitude;
-                        that.$showLoading({
-                            type: 'global',
-                            text: '加载中...'
-                        });
-                        that.getSetting();
-                    },
-                    fail: function () {
-                        uni.showToast({
-                            title: '请开启手机位置权限',
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    },
-                })
-            }else {
-                uni.getLocation({
-                    success: (e) => {
-                        uni.hideLoading();
-                        that.longitude = e.longitude;
-                        that.latitude = e.latitude;
-                        that.$showLoading({
-                            type: 'global',
-                            text: '加载中...'
-                        });
-                        that.getSetting();
-                    },
-                    fail: (e) => {
-                        uni.showModal({
-                            title: '提示',
-                            content: '定位失败,确保定位服务已开启',
-                            success: function (res) {
-                                if (res.confirm) {
-                                    window.location.reload();
-                                } else if (res.cancel) {
-                                    let pages = getCurrentPages();
-                                    if (pages.length > 1) {
-                                        uni.navigateBack();
-                                    } else {
-                                        uni.navigateTo({
-                                            url: 'pages/index/index'
-                                        });
-                                    }
-                                }
-                            }
-                        });
-                    },
-                });
-            }
-            // #endif
-        },
-        onReachBottom() {
-            if(this.more) {
-                this.page++;
-                this.getMore();
-                this.more = false;
-            }
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                title: this.setting.app_share_title ? this.setting.app_share_title : this.$children[0].navigationBarTitle,
-                imageUrl: this.setting.app_share_pic ? this.setting.app_share_pic : '',
-                path: "/plugins/community/list/list"
-            });
-        },
-        // #endif
-        methods: {
-            getMore() {
-                let that = this;
-                that.loading = true;
-                let para = {
-                    longitude: that.longitude,
-                    latitude: that.latitude,
-                    page: that.page,
-                    status: that.activeTab
-                };
-                if(that.middleman_id > 0) {
-                    para.middleman_id = that.middleman_id
-                }
-                that.$request({
-                    url: that.$api.community.list,
-                    data: para,
-                }).then(response=>{
-                    that.loading = false;
-                    that.first = false;
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code === 0) {
-                        if (response.list.length === 20) {
-                            that.more = true;
-                        }else {
-                            that.more = false
-                        }
-                        for(let index in response.list) {
-                            if(response.list[index].goods_count == 0) {
-                                response.list.splice(index,1)
-                            }
-                        }
-                        that.list = that.list.concat(response.list);
-                        for(let i in that.list) {
-                            if(that.list[i].status_name === '已结束') {
-                                that.list[i].statusText = '活动结束'
-                            }else if(that.list[i].status_name === '进行中') {
-                                that.list[i].statusText = that.list[i].end_at + '结束'
-                            }else if(that.list[i].status_name === '未开始') {
-                                that.list[i].statusText = that.list[i].start_at + '开始'
-                            }
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    that.loading = false;
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            },
-            toDetail(item) {
-                uni.navigateTo({
-                    url: '/plugins/community/activity/activity?id=' + item.id + '&title=' + item.title
-                });
-            },
-            tabStatus(e,index) {
-                let that = this;
-                if(that.loading) {
-                    return false
-                }
-                that.list = [];
-                that.page = 1;
-                that.activeTab = e.id;
-                that.activeTabName = e.name;
-                let width = 88* +that.widthRate * index;
-                that.animation.translate(width, 0).step();
-                that.animationData = that.animation.export();
-                // uni.showLoading({mask: true,
-                //     title: '加载中...'
-                // });
-                that.getList();
-            },
-            getSetting() {
-                let that = this;
-                that.$showLoading({
-                    type: 'global',
-                    text: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.community.setting,
-                }).then(response=>{
-                    if(response.code === 0) {
-                        that.setting = response.data;
-                        if(this.$storage.getStorageSync('middleman_info')) {
-                            let middleman = this.$storage.getStorageSync('middleman_info');
-                            if(middleman.id > 0) {
-                                that.middleman_id = middleman.user_id
-                            }
-                            that.getList();
-                        }else {
-                            that.getList();
-                        }
-                    }else {
-                        that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                that.loading = true;
-                let para = {
-                    longitude: that.longitude,
-                    latitude: that.latitude,
-                    status: that.activeTab
-                };
-                if(that.middleman_id > 0) {
-                    para.middleman_id = that.middleman_id
-                }
-                that.$request({
-                    url: that.$api.community.list,
-                    data: para,
-                    method: 'post'
-                }).then(response=>{
-                    that.loading = false;
-                    that.first = false;
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    if(response.code === 0) {
-                        if (response.list.length === 20) {
-                            that.more = true;
-                        }else {
-                            that.more = false
-                        }
-                        for(let index in response.list) {
-                            if(response.list[index].goods_count == 0) {
-                                response.list.splice(index,1)
-                            }
-                        }
-                        that.list = response.list;
-                        for(let i in that.list) {
-                            if(that.list[i].status_name === '已结束') {
-                                that.list[i].statusText = '活动结束'
-                            }else if(that.list[i].status_name === '进行中') {
-                                that.list[i].statusText = that.list[i].end_at + '结束'
-                            }else if(that.list[i].status_name === '未开始') {
-                                that.list[i].statusText = that.list[i].start_at + '开始'
-                            }
-                        }
-                        if(response.removeStorage) {
-                            this.$storage.removeStorageSync('middleman_info');
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(() => {
-                    that.loading = false;
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .list {
-        margin: #{24rpx};
-        width: #{702rpx};
-        .title {
-            height: #{115rpx};
-            font-size: #{22rpx};
-            color: #fff;
-            border-top-left-radius: #{16rpx};
-            border-top-right-radius: #{16rpx};
-            padding-left: 63rpx;
-            .title-text {
-                font-size: #{30rpx};
-                font-weight: 600;
-                height: #{35rpx};
-                line-height: #{35rpx};
-                max-width: #{600rpx};
-                position: relative;
-                overflow: inherit;
-                .hot-icon {
-                    position: absolute;
-                    top: 0;
-                    left: #{-49rpx};
-                    width: #{35rpx};
-                    height: #{35rpx};
-                }
-            }
-            .sec-title-text {
-                width: #{600rpx};
-            }
-        }
-        .status-text {
-            text-align: center;
-            position: relative;
-            width: 100%;
-            height: #{48rpx};
-            line-height: #{48rpx};
-            font-size: #{26rpx};
-            .status-bg {
-                position: absolute;
-                top: 0;
-                left: 0;
-                width: 100%;
-                height: 100%;
-                opacity: 0.1;
-                z-index: 0;
-            }
-        }
-        .goods-list {
-            position: relative;
-            height: #{160rpx};
-            background-color: #fff;
-            padding: 0 #{24rpx} #{24rpx};
-            .goods {
-                height: #{160rpx};
-                padding-top: #{22rpx};
-                padding-bottom: #{22rpx};
-                image {
-                    margin-right: #{38rpx};
-                    height: #{120rpx};
-                    width: #{120rpx};
-                    border-radius: #{16rpx};
-                }
-            }
-            .right-arrow {
-                position: absolute;
-                top: 50%;
-                margin-top: #{-12rpx};
-                right: #{30rpx};
-                width: #{12rpx};
-                height: #{24rpx};
-            }
-        }
-        .other {
-            padding: 0 #{24rpx} #{24rpx};
-            font-size: #{24rpx};
-            color: #999;
-            height: #{60rpx};
-            background-color: #fff;
-            border-bottom-left-radius: #{16rpx};
-            border-bottom-right-radius: #{16rpx};
-            .other-button {
-                line-height: #{58rpx};
-                height: #{58rpx};
-                padding: 0 #{35rpx};
-                border-radius: #{30rpx};
-                border: #{2rpx} solid #e2e2e2;
-                display: inline-block;
-                font-size: #{24rpx};
-                margin-left: #{25rpx};
-                &.active {
-                    border-color: #ff4544;
-                    color: #ff4544;
-                }
-            }
-        }
-    }
-    .banner {
-        position: fixed;
-        top: 0;
-        left: 0;
-        z-index: 10;
-        height: #{280rpx};
-        width: #{750rpx};
-        background-color: #f7f7f7;
-    }
-    .nav-area {
-        background-color: #f7f7f7;
-        position: fixed;
-        top: #{280rpx};
-        left: 0;
-        z-index: 10;
-        .nav {
-            height: #{54rpx};
-            width: #{702rpx};
-            margin: #{35rpx} #{24rpx};
-            border-radius: 27rpx;
-            box-shadow: rgba(186, 186, 186, 0.35) 0 4rpx 4rpx;
-            .active {
-                position: absolute;
-                top: 28rpx;
-                left: #{24rpx};
-                width: 182rpx;
-                height: 68rpx;
-                line-height: 68rpx;
-                z-index: 10;
-                background-color: #fff;
-                border-radius: 27rpx;
-                text-align: center;
-                box-shadow: rgba(186, 186, 186, 0.35) 0 4rpx 4rpx;
-            }
-            .nav-item {
-                width: 25%;
-                height: #{54rpx};
-                color: #ffffff;
-                font-size: #{28rpx};
-                text-align: center;
-                line-height: #{54rpx};
-                position: relative;
-            }
-        }
-    }
-    .placeholder {
-        height: #{380rpx};
-    }
-    .empty-box {
-        width: 100%;
-        height: 60vh;
-        display: flex;
-        justify-content: center;
-        align-items: center;
-        flex-direction: column;
-
-        image {
-            width: 280#{rpx};
-            height: 280#{rpx};
-        }
-        span {
-            margin-top: 15#{rpx};
-            color: #999;
-            font-size: 28#{rpx};
-        }
-    }
-</style>

+ 0 - 251
src/plugins/community/me/me.vue

xqd
@@ -1,251 +0,0 @@
-<template>
-    <app-layout>
-        <app-head :theme="getTheme"></app-head>
-        <view class="title dir-left-nowrap cross-center">
-            <image class="avatar" :src="middleman.avatar"></image>
-            <view class="user-info dir-top-nowrap main-center">
-                <view class="user dir-left-nowrap cross-center">
-                    <view class="nickname">{{middleman.nickname}}</view>
-                    <view class="middleman">
-                        <image src="https://shop.9026.com/web/statics/img/mall/community/logo.png"></image>
-                        <text>{{setting.middleman}}</text>
-                    </view>
-                </view>
-                <view class="apply">加入时间: {{apply_at}}</view>
-            </view>
-        </view>
-        <view class="money-info">
-            <view class="menu" style="margin: 0">
-                <view class="menu-item main-between cross-center">
-                    <view>
-                        已结算
-                        <view class="sec-title">已结算金额=已提现金额+可提现金额</view>
-                    </view>
-                    <view class="money">{{middleman.total_money}}</view>
-                </view>
-                <view class="menu-item main-between cross-center">
-                    <view>可提现</view>
-                    <view class="money">{{middleman.money}}</view>
-                </view>
-            </view>
-            <view @click="toProfit" class="look-money main-center cross-center">
-                <view>查看利润明细</view>
-                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-        </view>
-        <view class="menu">
-            <view @click="toCash" class="menu-item main-between cross-center">
-                <view>利润提现</view>
-                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-            <view @click="toClerk" class="menu-item main-between cross-center">
-                <view>提货核销</view>
-                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-        </view>
-        <view class="menu">
-            <view @click="toAddress" class="menu-item main-between cross-center">
-                <view>我的地址</view>
-                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-        </view>
-        <app-menu :theme="getTheme" active="me"></app-menu>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appMenu from '../components/app-menu';
-    import appHead from '../components/app-head.vue';
-
-    export default {
-        data() {
-            return {
-                middleman: {},
-                setting: {},
-                apply_at: ''
-            }
-        },
-        components: {
-            "app-menu": appMenu,
-            "app-head": appHead
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                userInfo: state => state.user.info,
-            })
-        },
-        onShow: function (options) {
-            this.getStatus();
-        },
-        methods: {
-            toProfit() {
-                uni.navigateTo({
-                    url: '/plugins/community/profit/profit'
-                });
-            },
-            toCash() {
-                uni.navigateTo({
-                    url: '/plugins/community/profit-cash/profit-cash'
-                });
-            },
-            toClerk() {
-                uni.navigateTo({
-                    url: '/plugins/community/clerk/clerk'
-                });
-            },
-            toAddress() {
-                uni.navigateTo({
-                    url: '/plugins/community/apply/apply?id=' + this.middleman.id
-                });
-            },
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.index,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        this.setting = response.data.setting;
-                        if(response.data.middleman.id > 0) {
-                            this.middleman = response.data.middleman;
-                            this.apply_at = this.middleman.apply_at.substring(0,10)
-                        }else {
-                            uni.showToast({
-                                title: '您还不是团长,现在前往申请页面',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                            setTimeout(function(){
-                                uni.redirectTo({
-                                    url: '/plugins/community/apply/apply'
-                                });
-                            },1000)
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .title {
-        height: 220rpx;
-        margin-top: -360rpx;
-        width: 100%;
-        padding: 0 45rpx;
-        position: relative;
-        z-index: 10;
-        .avatar {
-            width: 130rpx;
-            height: 130rpx;
-            margin-right: 25rpx;
-            display: block;
-            border-radius: 50%;
-        }
-        .user-info {
-            color: #fff;
-            height: 130rpx;
-            .user {
-                height: 36rpx;
-                line-height: 36rpx;
-                .nickname {
-                    font-size: 28rpx;
-                    margin-right: 20rpx;
-                }
-                .middleman {
-                    height: 36rpx;
-                    background-color: #353535;
-                    border-radius: 18rpx;
-                    padding: 0 12rpx 0 6rpx;
-                    font-size: 22rpx;
-                    image {
-                        float: left;
-                        margin-top: 2rpx;
-                        width: 32rpx;
-                        height: 32rpx;
-                        display: block;
-                        margin-right: #{6rpx};
-                    }
-                }
-            }
-            .apply {
-                color: #fff;
-                font-size: 26rpx;
-                margin-top: 20rpx;
-            }
-        }
-    }
-    .money-info {
-        width: 702rpx;
-        margin: 0 24rpx;
-        border-radius: 16rpx;
-        background-color: #fff;
-        position: relative;
-        z-index: 10;
-        .menu {
-            border-bottom-left-radius: 0;
-            border-bottom-right-radius: 0;
-            .menu-item {
-                height: 115rpx;
-                font-size: 26rpx;
-                .sec-title {
-                    font-size: 20rpx;
-                    margin-top: 8rpx;
-                    color: #999;
-                }
-                .money {
-                    font-family: DIN;
-                    font-size: 40rpx;
-                    color: #f39800;
-                }
-            }
-        }
-        .look-money {
-            height: 88rpx;
-            border-top: 2rpx solid #e2e2e2;
-            font-size: 26rpx;
-            color: #999999;
-            image {
-                width: 12rpx;
-                height: 22rpx;
-                margin-left: 15rpx;
-                display: block;
-            }
-        }
-    }
-    .menu {
-        border-radius: 16rpx;
-        background-color: #fff;
-        width: 702rpx;
-        margin: 15rpx 24rpx 0;
-        .menu-item {
-            padding: 32rpx;
-            height: 96rpx;
-            border-top: 2rpx solid #e2e2e2;
-            font-size: 26rpx;
-            color: #353535;
-            &:first-of-type {
-                border-top: 0;
-            }
-            image {
-                width: 12rpx;
-                height: 22rpx;
-                display: block;
-            }
-        }
-    }
-</style>

+ 0 - 769
src/plugins/community/order-detail/order-detail.vue

xqd
@@ -1,769 +0,0 @@
-<template>
-    <app-layout>
-        <scroll-view scroll-y :style="{'height':`${windowHeight}px`}">
-            <app-head :theme="getTheme" height="320rpx"></app-head>
-            <view class="title main-between cross-center">
-                <view>
-                    <view class="big-title-text">{{detail.status_text == '待付款' ? '等待买家付款': detail.status_text}}</view>
-                    <view v-if="detail.status_text == '待付款' && detail.cancel_time_stamp > 0">若未在<text v-if="d>0">{{d}}天</text>{{h}}:{{m}}:{{s}}内付款,订单将自动取消</view>
-                    <view v-if="detail.status_text == '已关闭' && detail.is_pay == 0 && detail.auto_cancel_time">超时未付款</view>
-                </view>
-                <view v-if="!is_user && detail.status_text != '待付款'" class="pick dir-top-nowrap main-center cross-center" :class="{'over': detail.status_text == '已完成'}">
-                    <view>提货编码</view>
-                    <view class="number" :style="{'color': getTheme.color}">{{detail.no}}</view>
-                </view>
-            </view>
-            <view v-if="is_user && (detail.status_text == '待提货' || detail.status_text == '已提货' || detail.status_text == '已完成')" class="item-card send main-between">
-                <view class="send-info dir-top-nowrap cross-center">
-                    <view>提货编码</view>
-                    <view :style="{'opacity': `${detail.status_text == '已提货' || detail.status_text == '已完成' ? '0.3':'1'}`,'color': detail.status_text == '已提货' || detail.status_text == '已完成' ? getTheme.color : ''}" class="send-no">{{detail.no}}</view>
-                </view>
-                <view class="line"></view>
-                <view class="send-info dir-top-nowrap cross-center">
-                    <view>提货二维码</view>
-                    <image @click="toBig" :style="[{'opacity': `${detail.status_text == '已提货' || detail.status_text == '已完成' ? '0.3':'1'}`}]" class="qr" :src="detail.no_QrCode.file_path"></image>
-                </view>
-            </view>
-            <view class="info">
-                <view class="main-between cross-center info-top">
-                    <view v-if="detail.mobile" class="user-info dir-left-nowrap cross-center">
-                        <view class="avatar">
-                            <image :src="is_user ? detail.middleman_info.avatar:detail.user_avatar"></image>
-                        </view>
-                        <view class="user main-center cross-center">
-                            <text class="user-name" :class="!is_user ? 'long-name': ''">{{is_user ? detail.middleman_info.name:detail.name}}</text>
-                            <view class="middleman-name" :style="{'color': getTheme.color, 'border-color': getTheme.border}" v-if="is_user">{{detail.middleman_info.middleman_name}}
-                                <view class="middleman-bg" :style="{'background-color': getTheme.background}"></view>
-                            </view>
-                            <text>{{is_user ? detail.middleman_info.mobile:detail.mobile}}</text>
-                        </view>
-                    </view>
-                    <view @click="tel" class="detail-btn" :style="{'color': getTheme.color}">
-                        <image :style="{'background-color': getTheme.background}" src="https://shop.9026.com/web/statics/img/mall/community/tel.png"></image>
-                        <text>{{is_user?'联系团长':'联系收货人'}}</text>
-                    </view>
-                </view>
-                <view class="info-bottom">
-                    <view v-if="is_user && detail.middleman_info" class="dir-left-nowrap cross-center"><image src="https://shop.9026.com/web/statics/img/mall/community/middleman-add.png"></image>提货地址:{{detail.address}}</view>
-                    <view v-else>订单备注:{{detail.remark ? detail.remark : '暂无备注'}}</view>
-                </view>
-            </view>
-            <view class="item-card">
-                <view>
-                    <view class="goods-title main-between">
-                        <view class="dir-left-nowrap cross-center">
-                            <image src="https://shop.9026.com/web/statics/img/mall/community/activity-name.png"></image>
-                            <view>{{detail.activity_name}}</view>
-                        </view>
-                        <view v-if="is_user && detail.status_text == '待发货'" class="number" :style="{'color': getTheme.color}">{{detail.no}}</view>
-                    </view>
-                    <view v-for="(goods, key) in detail.detail" :key="key">
-                        <view class="goods" :key="goods.id">
-                            <image mode='aspectFill' class="goods-img" :src='goods.goods_info.pic_url'></image>
-                            <view class='t-omit goods-name'>{{goods.goods_info.name}}</view>
-                            <view class="goods-attr t-omit-twor">
-                                <text v-for="attr in goods.goods_info.attr_list" :key="attr.attr_id">{{attr.attr_group_name}}:{{attr.attr_name}}</text>
-                            </view>
-                            <view class="goods-num">x{{goods.goods_info.num}}</view>
-                            <view class="goods-price">¥{{goods.goods_info.total_original_price}}</view>
-                        </view>
-                        <view class="refund dir-right-nowrap">
-                            <!-- <view @click="toRefund" class="refund-btn">申请退款</view> -->
-                            <!-- 无售后记录 且 未超过售后时间 才可申请售后 -->
-                            <block v-if='goods.is_show_apply_refund'>
-                                <app-jump-button :url="`/pages/order/refund/select-refund-type?id=${goods.id}&sign=community`">
-                                    <view size='mini' class='refund-btn'>申请售后</view>
-                                </app-jump-button>
-                            </block>
-                            <block v-else-if="goods.refund">
-                                <text class='refund-status'>已申请售后({{goods.refund.status_text}})</text>
-                            </block>
-                        </view>
-                    </view>
-                </view>
-                <view class="main-between price-item">
-                    <view class="price-label">商品金额</view>
-                    <view>¥{{detail.total_goods_original_price}}</view>
-                </view>
-                <view v-if="detail.plugin_data" class="main-between price-item" v-for="(pluginData,index) in detail.plugin_data" :key="index">
-                    <view class="price-label">{{pluginData.label}}</view>
-                    <view>-¥{{ pluginData.value }}</view>
-                </view>
-                <view class="main-between price-item" style='margin-bottom: 0'>
-                    <view class="price-label">合计</view>
-                    <view class="total-price" :style="{'color': getTheme.color}">¥{{detail.total_price}}</view>
-                </view>
-            </view>
-            <view v-if="!is_user" class="item-card main-between cross-center">
-                <view class="goods-title dir-left-nowrap cross-center">
-                    <image src="https://shop.9026.com/web/statics/img/mall/community/profit.png"></image>
-                    <view>利润</view>
-                </view>
-                <view class="total-price" :style="{'color': getTheme.color}">¥{{detail.profit_price}}</view>
-            </view>
-            <view v-if="is_user && detail.remark" class="item-card">
-                <view class="time-info main-between">
-                    <view>备注: {{detail.remark}}</view>
-                </view>
-            </view>
-            <view class="item-card">
-                <view class="time-info main-between">
-                    <view>订单号: {{detail.order_no}}</view>
-                    <view @click="copy" class="copy-btn">复制</view>
-                </view>
-                <view class="time-info">下单时间: {{detail.created_at}}</view>
-                <view v-if="detail.pay_time != '0000-00-00 00:00:00'" class="time-info">付款时间: {{detail.pay_time}}</view>
-                <view v-if="detail.send_time != '0000-00-00 00:00:00'" class="time-info">发货时间: {{detail.send_time}}</view>
-                <view v-if="detail.confirm_time != '0000-00-00 00:00:00'" class="time-info">提货时间: {{detail.confirm_time}}</view>
-                <view v-if="detail.is_sale == 1" class="time-info">完成时间: {{detail.updated_at}}</view>
-            </view>
-            <view :class="['bottom-place', `${iphone_x? 'iphone_x':''}`]"></view>
-            <view v-if="(is_user && (detail.status_text == '待付款' || detail.status_text == '待发货')) || detail.status_text == '待提货'" :class="['dir-right-nowrap','btn', `${iphone_x ? 'iphone_x':''}`]">
-                <view @click.stop="orderPay" v-if="is_user && detail.is_pay == 0 && detail.cancel_status == 0" class="handle-btn" :style="{'color': getTheme.color, 'border-color': getTheme.border}">立即支付</view>
-                <view @click.stop="toRemind" v-if="detail.is_send == 1 && detail.is_confirm == 0" class="handle-btn" :style="{'color': getTheme.color, 'border-color': getTheme.border}">确认提货</view>
-                <view @click.stop="cancel" v-if="detail.is_pay == 1 && detail.is_send == 0" class="handle-btn" :style="{'color': getTheme.color, 'border-color': getTheme.border}">申请退款</view>
-            </view>
-            <view v-if="is_user && (detail.is_pay == 0 || (detail.is_pay == 1 && detail.is_send == 0)) && detail.cancel_status == 0" :class="['bottom-total-price', `${iphone_x? 'iphone_x':''}`]" :style="{'color': getTheme.color}">合计:¥{{detail.total_price}}</view>
-            <view v-if="show" class="bg">
-                <view class="dialog">
-                    <view class="dialog-content">是否确认提货</view>
-                    <view class="main-center btn-area">
-                        <view class="submit-btn box-grow-1" style="color: #666" @click='toRemind'>取消</view>
-                        <view class="line"></view>
-                        <view class="submit-btn box-grow-1" @click='beConfirm' :style="{'color': getTheme.color}">确认</view>
-                    </view>
-                </view>
-            </view>
-            <view @click="toBig" v-if="showQr" class="bg">
-                <view  @click.stop="" class="dialog qr-dialog dir-top-nowrap cross-center">
-                    <image @click.stop="toBig" class="close" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-close.png"></image>
-                    <image class="qr" :src="detail.no_QrCode.file_path"></image>
-                    <view>提货编码 {{detail.no}}</view>
-                    <view class="qr-info">仅{{detail.middleman_info.middleman_name}} {{detail.middleman_info.name}} 可以扫码核销</view>
-                </view>
-            </view>
-        </scroll-view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appHead from "../components/app-head.vue";
-
-    export default {
-        data() {
-            return {
-                detail: {
-                    profit_price: '',
-                    total_price: '',
-                    total_goods_price: '',
-                    total_goods_original_price: '',
-                    created_at: '',
-                    order_no: '',
-                    pay_time: '0000-00-00 00:00:00',
-                    send_time: '0000-00-00 00:00:00',
-                    confirm_time: '0000-00-00 00:00:00',
-                    sale_time: '0000-00-00 00:00:00',
-                },
-                d: '',
-                h: '',
-                m: '',
-                s: '',
-                windowHeight: 0,
-                timeInterval: null,
-                showQr: false,
-                is_user: false,
-                show: false,
-                iphone_x: false
-            }
-        },
-        components: {
-            appHead
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                userInfo: state => state.user.info,
-                adminImg: state => state.mallConfig.__wxapp_img.app_admin,
-            })
-        },
-        methods: {
-            // 取消 | 申请退款
-            cancel(e) {
-                let self = this;
-                uni.navigateTo({
-                    url: '/pages/order/refund/order-refund?id=' + self.detail.id
-                });
-            },
-            toBig() {
-                if(this.detail.status_text == '已提货' || this.detail.status_text == '已完成') {
-                    return false
-                }
-                this.showQr = !this.showQr
-            },
-            toRemind() {
-                this.show = !this.show;
-            },
-            beConfirm() {
-                let that = this;
-                that.show = false;
-                uni.showLoading({
-                    mask: true,
-                    title: '确认提货中...'
-                });
-                that.$request({
-                    url: that.is_user ? that.$api.order.confirm : that.$api.community.confirm,
-                    data: {
-                        id: that.detail.id
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.getDetail();
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                })
-            },
-            // 订单支付
-            orderPay(e) {
-                let _this = this;
-                _this.$showLoading();
-                _this.$request({
-                    url: _this.$api.order.list_pay_data,
-                    data: {
-                        id: this.detail.id
-                    }
-                }).then(response => {
-                    _this.$hideLoading();
-                    if (response.code === 0) {
-                        _this.$payment.pay(response.data.id).then(() => {
-                            // 支付成功
-                            uni.redirectTo({
-                                url: '/plugins/community/order/order?is_user=1'
-                            })
-                        }).catch(e => {
-                            // 支付失败
-                            uni.showModal({
-                                title: '',
-                                content: e.errMsg,
-                                showCancel: false
-                            })
-                        })
-                    }
-                }).catch(() => {
-                    _this.$hideLoading();
-                });
-            },
-            copy() {
-                this.$utils.uniCopy({
-                    data: this.detail.order_no,
-                    success() {
-                        //#ifndef MP-WEIXIN
-                        uni.showToast({title: '复制成功'});
-                        // #endif
-                    },
-                });
-            },
-            tel() {
-                let phoneNumber = this.detail.mobile
-                if(this.is_user) {
-                    phoneNumber = this.detail.middleman_info.mobile
-                }
-                uni.makePhoneCall({
-                    phoneNumber: phoneNumber
-                })
-            },
-            getDetail() {
-                let that = this;
-                that.$showLoading({
-                    type: 'global',
-                    text: '加载中...'
-                });
-                that.$request({
-                    url: that.is_user ? that.$api.community.order_detail : that.$api.community.middle_detail,
-                    data: {
-                        id: this.id
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.$hideLoading();
-                    if(response.code === 0) {
-                        that.detail = response.data.detail;
-                        that.getTime(that.detail.cancel_time_stamp);
-                        let time = +that.detail.cancel_time_stamp - 1;
-                        if(time > 0) {
-                            that.timeInterval = setInterval(() =>{
-                                time--;
-                                if(time < 0) {
-                                    clearInterval(that.timeInterval);
-                                    that.getDetail();
-                                }else {
-                                    that.getTime(time);
-                                }
-                            },1000);
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                        if(response.msg == '该订单您无权确认') {
-                            setTimeout(()=>{
-                                uni.redirectTo({
-                                    url: '/pages/index/index'
-                                });
-                            },1000)
-                        }
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            },
-            getTime(time) {
-                let that = this;
-                if(time > 86399) {
-                    this.d = Math.floor(time / 86400)
-                    time = time - (86400*this.d)
-                }else {
-                    this.d = 0
-                }
-                if(time > 3599) {
-                    this.h = Math.floor(time / 3600)
-                    if(this.h < 10) {
-                        this.h = '0' + this.h
-                    }
-                    time = time - (3600*this.h)
-                }else {
-                    this.h = '00'
-                }
-                if(time > 59) {
-                    this.m = Math.floor(time / 60)
-                    if(this.m < 10) {
-                        this.m = '0' + this.m
-                    }
-                    time = time - (60*this.m)
-                }else {
-                    this.m = '00';
-                }
-                if(time < 60) {
-                    this.s = time;
-                    if(this.s < 10) {
-                        this.s = '0' + this.s
-                    }
-                }
-            },
-        },
-        onHide() {
-            clearInterval(this.timeInterval);
-        },
-        onUnload() {
-            clearInterval(this.timeInterval);
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            if(options.is_user == 1) {
-                that.is_user = true
-            }
-            uni.getSystemInfo({
-                success: function (res) {
-                    that.windowHeight = res.windowHeight;
-                    if(res.model.indexOf('iPhone X') > -1 || res.model.indexOf('iPhone 11') > -1 || res.model.indexOf('iPhone11') > -1 || res.model.indexOf('iPhone12') > -1 || res.model.indexOf('Unknown Device') > -1) {
-                        that.iphone_x = true;
-                    }
-                }
-            })
-            that.id = options.id;
-            that.getDetail();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .bg {
-        position: fixed;
-        background-color: rgba(0,0,0,.3);
-        top: 0;
-        left: 0;
-        height: 100%;
-        width: 100%;
-        z-index: 99;
-        .dialog {
-            width: 480rpx;
-            height: 200rpx;
-            position: fixed;
-            top: 30%;
-            left: 50%;
-            margin-left: -240rpx;
-            background-color: #fff;
-            border-radius: 16rpx;
-            z-index: 233;
-            font-size: 28rpx;
-            color: #353535;
-            &.qr-dialog {
-                top: 230rpx;
-                width: 600rpx;
-                height: 620rpx;
-                border-radius: 16rpx;
-                padding: 90rpx 0 56rpx;
-                font-size: 32rpx;
-                margin-left: -300rpx;
-                .close {
-                    width: 30rpx;
-                    height: 30rpx;
-                    right: 103rpx;
-                    top: #{260rpx};
-                    z-index: 234;
-                    position: fixed;
-                }
-                .qr {
-                    width: 360rpx;
-                    height: 360rpx;
-                    display: block;
-                    margin-bottom: 30rpx;
-                }
-                .qr-info {
-                    font-size: 26rpx;
-                    color: #999999;
-                    margin-top: 10rpx;  
-                }
-            }
-            .dialog-content {
-                height: 110rpx;
-                line-height: 110rpx;
-                text-align: center;
-            }
-            .btn-area {
-                height: #{88rpx};
-                position: relative;
-                border-top: #{2rpx} solid #e2e2e2;
-                .line {
-                    height: #{32rpx};
-                    width: #{1rpx};
-                    background-color: #e2e2e2;
-                    position: absolute;
-                    top: #{28rpx};
-                    left: 0;
-                    right: 0;
-                    margin: 0 auto;
-                }
-                .submit-btn {
-                    height: #{88rpx};
-                    line-height: #{88rpx};
-                    font-size: #{28rpx};
-                    text-align: center;
-                }
-            }
-        }
-    }
-    .title {
-        padding: 20rpx 45rpx;
-        margin-top: -320rpx;
-        height: 160rpx;
-        color: #fff;
-        font-size: 26rpx;
-        position: relative;
-        z-index: 10;
-        .big-title-text {
-            font-size: 36rpx;
-        }
-        .pick {
-            height: 124rpx;
-            width: 124rpx;
-            border-radius: 50%;
-            background-color: #fff;
-            color: #353535;
-            font-size: 22rpx;
-            &.over {
-                background-color: #f0f0f0;
-                color: #dbdbdb;
-                .number {
-                    color: #dbdbdb;
-                }
-            }
-            .number {
-                font-size: 38rpx;
-            }
-        }
-    }
-    .info {
-        border-radius: 16rpx;
-        width: 702rpx;
-        margin: 0 24rpx;
-        background-color: #fff;
-        position: relative;
-        z-index: 10;
-        font-size: 24rpx;
-        .info-top {
-            height: 106rpx;
-            padding: 25rpx 24rpx;
-            .user-info {
-                height: 56rpx;
-                .avatar {
-                    margin-right: 24rpx;
-                    width: 56rpx;
-                    height: 56rpx;
-                    border-radius: 50%;
-                    image {
-                        width: 56rpx;
-                        height: 56rpx;
-                        border-radius: 50%;
-                    }
-                }
-                .user {
-                    color: #353535;
-                    .user-name {
-                        margin-left: 0;
-                        display: inline-block;
-                        max-width: 100rpx;
-                        max-height: 62rpx;
-                        overflow: hidden;
-                        &.long-name {
-                            max-width: 230rpx;
-                        }
-                    }
-                    .middleman-name {
-                        margin-left: 10rpx;
-                        font-size: 20rpx;
-                        height: 30rpx;
-                        line-height: 26rpx;
-                        padding: 0 5rpx;
-                        display: inline-block;
-                        border-radius: 10rpx;
-                        border: 2rpx solid;
-                        margin-top: 2rpx;
-                        position: relative;
-                        white-space: nowrap;
-                        .middleman-bg {
-                            border-radius: 10rpx;
-                            position: absolute;
-                            top: 0;
-                            left: 0;
-                            opacity: 0.1;
-                            height: 100%;
-                            width: 100%;
-                        }
-                    }
-                    text {
-                        margin-left: 25rpx;
-                    }
-                }
-            }
-            .detail-btn {
-                height: 56rpx;
-                line-height: 56rpx;
-                image {
-                    height: #{28rpx};
-                    width: #{28rpx};
-                    display: block;
-                    margin-top: #{14rpx};
-                    margin-right: #{10rpx};
-                    float: left;
-                }
-            }
-        }
-        .info-bottom {
-            border-top: 2rpx solid #e2e2e2;
-            padding: 18rpx 24rpx;
-            image {
-                width: 19rpx;
-                height: 25rpx;
-                margin-right: 10rpx;
-            }
-        }
-    }
-    .item-card {
-        padding: #{24rpx};
-        background-color: #fff;
-        margin: #{24rpx};
-        margin-bottom: 0;
-        border-radius: #{16rpx};
-        position: relative;
-        &.send {
-            margin: #{24rpx};
-            margin-top: 0;
-        }
-        .line {
-            height: 180rpx;
-            width: 2rpx;
-            position: absolute;
-            left: 50%;
-            top: 10rpx;
-            background-color: #e2e2e2;
-            margin-left: -1rpx;
-        }
-        .send-info {
-            width: 303rpx;
-            height: 152rpx;
-            text-align: center;
-            color: #353535;
-            font-size: 24rpx;
-            .send-no {
-                font-size: 38rpx;
-                height: 135rpx;
-                line-height: 135rpx;
-            }
-            .qr {
-                display: block;
-                height: 100rpx;
-                width: 100rpx;
-                margin-top: 10rpx;
-            }
-        }
-        .total-price {
-            font-size: 28rpx;
-        }
-        .goods-title {
-            color: #353535;
-            font-size: #{24rpx};
-            height: 30rpx;
-            image {
-                width: 30rpx;
-                height: 30rpx;
-                margin-right: 14rpx;
-                display: block;
-            }
-            .number {
-                font-size: 32rpx;
-            }
-        }
-        .goods {
-            height: #{160rpx};
-            margin-top: #{24rpx};
-            position: relative;
-            font-size: #{24rpx};
-            color: #353535;
-            margin-bottom: #{24rpx};
-            .goods-img {
-                height: #{160rpx};
-                width: #{160rpx};
-                float: left;
-                margin-right: #{24rpx};
-                border-radius: #{4rpx};
-            }
-            .goods-name {
-                font-size: 26rpx;
-            }
-            .goods-attr {
-                color: #999;
-                width: 70%;
-                position: absolute;
-                top: #{40rpx};
-                left: #{180rpx};
-                text {
-                    margin-right: #{20rpx};
-                }
-            }
-            .goods-num {
-                font-size: #{24rpx};
-                color: #999;
-                position: absolute;
-                top: #{126rpx};
-                left: #{180rpx};
-            }
-            .goods-price {
-                font-size: #{24rpx};
-                color: #353535;
-                position: absolute;
-                bottom: 0;
-                right: 0;
-            }
-        }
-        .refund {
-            margin-bottom: #{40rpx};
-            .refund-btn {
-                width: #{168rpx};
-                text-align: center;
-                height: #{56rpx};
-                line-height: #{54rpx};
-                font-size: #{26rpx};
-                color: #666666;
-                border: #{2rpx} solid #e2e2e2;
-                border-radius: #{28rpx};
-            }
-        }
-        .price-item {
-            margin-bottom: #{10rpx};
-            font-size: #{24rpx};
-            color: #353535;
-            .price-label {
-                color: #999;
-                font-size: #{24rpx};
-            }
-        }
-        .time-info {
-            margin-top: 25rpx;
-            color: #353535;
-            font-size: #{24rpx};
-            &:first-of-type {
-                margin-top: 0;
-            }
-            .copy-btn {
-                position: absolute;
-                top: 12rpx;
-                right: 24rpx;
-                height: 60rpx;
-                border-radius: 30rpx;
-                line-height: 58rpx;
-                padding: 0 30rpx;
-                border: 2rpx solid #e2e2e2;
-            }
-        }
-    }
-    .bottom-place {
-        height: #{120rpx};
-        &.iphone_x {
-            height: #{170rpx};
-        }
-    }
-    .bottom-total-price {
-        height: #{96rpx};
-        line-height: 96rpx;
-        position: fixed;
-        bottom: 0;
-        width: 50%;
-        left: 30rpx;
-        z-index: 14;
-        font-size: 32rpx;
-        &.iphone_x {
-            height: #{146rpx};
-            line-height: 146rpx;
-            padding-bottom: #{50rpx};
-        }
-    }
-    .btn {
-        height: #{96rpx};
-        position: fixed;
-        bottom: 0;
-        width: 100%;
-        right: 0;
-        border-top: #{1rpx} solid #e2e2e2;
-        z-index: 10;
-        padding: #{24rpx};
-        background-color: #fff;
-        &.iphone_x {
-            height: #{146rpx};
-            padding-bottom: #{50rpx};
-        }
-        .handle-btn {
-            height: #{48rpx};
-            line-height: #{46rpx};
-            padding: 0 #{24rpx};
-            border-radius: #{24rpx};
-            border: #{2rpx} solid;
-            font-size: #{24rpx};
-            margin-left: #{16rpx};
-            display: inline-block;
-        }
-    }
-
-</style>

+ 0 - 710
src/plugins/community/order/order.vue

xqd
@@ -1,710 +0,0 @@
-<template>
-    <app-layout>
-        <scroll-view @scrolltolower="getMore" scroll-y :style="{'height':`${windowHeight}px`}">
-            <view v-if="search" class="search-item main-between cross-center">
-                <view class="search-input">
-                    <image class="search-icon" src='https://shop.9026.com/web/statics/image/mall/static/icon/icon-search.png'></image>
-                    <input @confirm='searchMethod' confirm-type='search' v-model='keyword' placeholder-style='color:#999999;font-size:13px;' :focus="getFocus" @blur="getFocus=false" @focus="getFocus=true" :placeholder="is_user ? '请输入团长手机号':'请输入活动名称或买家手机号'"></input>
-                    <image v-if="getFocus && keyword.length > 0" @click="clearSearch" class="search-clear" src="../image/clear.png"></image>
-                </view>
-                <view @click="cancelSeacrch">取消</view>
-            </view>
-            <view v-if="!searchResult && search && list.length == 0" class="search-history">
-                <view v-if="candidate.length != 0" class='main-between search-title'>
-                    <view>历史搜索</view>
-                    <view @click="clear">
-                        <image class="delete-icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/delete.png"></image>
-                    </view>
-                </view>
-                <view class='flex-wrap candidate-list'>
-                    <view @click="keywordSearch(item)" class="keyword-item box-grow-0" v-for="item in candidate" :key="item">
-                        <text class="t-omit">{{item}}</text>
-                    </view>
-                </view>
-            </view>
-            <view v-if="!search" class="search-area main-between cross-center">
-                <view class="search dir-left-nowrap" :class="{'all-search': is_user}" @click="toSearch">
-                    <image class="icon-search" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-search.png"></image>
-                    <text :class="{'keyword':keyword.length> 0}">{{ keyword.length> 0?keyword:is_user ? '请输入团长手机号':'请输入活动名称或买家手机号'}}</text>
-                </view>
-                <view v-if="!is_user" class="choose dir-left-nowrap cross-center" @click='toTime' :style="{'color': getTheme.color}">
-                    <text v-if="time == 0">汇总</text>
-                    <text v-else-if="time == 1">今日</text>
-                    <text v-else-if="time == 2">昨日</text>
-                    <text v-else-if="time == 3">7日</text>
-                    <text v-else>自定义</text>
-                    <image :style="{'background-color': getTheme.background}" v-if="chooseTime" src='https://shop.9026.com/web/statics/img/mall/community/order-close.png'></image>
-                    <image :style="{'background-color': getTheme.background}" v-else src='https://shop.9026.com/web/statics/img/mall/community/order-open.png'></image>
-                </view>
-            </view>
-            <view v-if="!search" class="main-between navs-info">
-                <view @click="tab(0)" class="box-grow-1 main-center cross-center navs">
-                    <text :class="_num==0?'active':'nav-text'" :style="{'color': _num==0?getTheme.color:'', 'border-color': _num==0?getTheme.border:''}">全部</text>
-                </view>
-                <view @click="tab(1)" class="box-grow-1 main-center cross-center navs">
-                    <text :class="_num==1?'active':'nav-text'" :style="{'color': _num==1?getTheme.color:'', 'border-color': _num==1?getTheme.border:''}">未付款</text>
-                </view>
-                <view @click="tab(2)" class="box-grow-1 main-center cross-center navs">
-                    <text :class="_num==2?'active':'nav-text'" :style="{'color': _num==2?getTheme.color:'', 'border-color': _num==2?getTheme.border:''}">待发货</text>
-                </view>
-                <view @click="show=!show" v-if="active" class="box-grow-1 main-center navs more-navs">
-                    <text :class="_num==active.value?'active':'nav-text'">{{active.name}}</text>
-                    <image :style="{'background-color': getTheme.background}" src="https://shop.9026.com/web/statics/img/mall/community/more-active.png"></image>
-                </view>
-                <view @click="show=!show" v-if="!active" class="box-grow-1 main-center navs more-navs">
-                    <text class="nav-text">更多状态</text>
-                    <image src="https://shop.9026.com/web/statics/img/mall/community/more.png"></image>
-                </view>
-            </view>
-            <view v-if="!search && show" class="more-menu">
-                <view @click="chooseItem(item.value)" v-for="item in menu" :key="item.value">{{item.name}}</view>
-            </view>
-            <view v-if="!search" class="search-palce"></view>
-            <!-- 订单信息 -->
-            <view class='no-tip' v-if="list.length == 0">
-                <image src="https://shop.9026.com/web/statics/img/mall/static/order-empty.png"></image>
-                <span>暂无{{activeTab == 0?'未付款': activeTab == 1?'待发货':activeTab == 2?'待提货':''}}订单</span>
-            </view>
-            <view v-else>
-                <app-order v-for="(item,index) in list" :key="item.id" v-on:update="update" v-if="(_num==3 && item.is_confirm == 0) || _num!=3" :is_user="is_user" :theme="getTheme" :item="item"></app-order>
-            </view>
-            <app-time-screening @click="toChoose" @cancel="cancel" :theme="getTheme" v-if="chooseTime" :time="time" :start-date="date_start" :end-date="date_end"></app-time-screening>
-            <app-menu v-if="!is_user" :theme="getTheme" active="order"></app-menu>
-        </scroll-view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapState, mapGetters } from "vuex";
-    import appTimeScreening from "../../../components/page-component/app-time-screening/app-time-screening.vue";
-    import appMenu from '../components/app-menu';
-    import appOrder from '../components/app-order';
-
-    export default {
-        data() {
-            return {
-                _num: '0',
-                getFocus: false,
-                more_list: false,
-                page: 1,
-                menu: [
-                    {
-                        name: '待提货',
-                        value: '3'
-                    },
-                    {
-                        name: '已提货',
-                        value: '4'
-                    },
-                    {
-                        name: '已完成',
-                        value: '8'
-                    },
-                    {
-                        name: '已关闭',
-                        value: '6'
-                    }
-                ],
-                active: null,
-                is_user: false,
-                show: false,
-                search: false,
-                keyword: '',
-                list: [],
-                candidate: [],
-                date_start: '',
-                date_end: '',
-                activeTab: -1,
-                time: 0,
-                activity_id: 0,
-                windowHeight: 0,
-                chooseTime: false,
-                detail: {},
-                custom: false,
-                msg: false,
-                searchResult: false,
-                loading: false
-            }
-        },
-        components: {
-            "app-menu": appMenu,
-            'app-order': appOrder,
-            "app-time-screening": appTimeScreening
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                userInfo: state => state.user.info,
-                adminImg: state => state.mallConfig.__wxapp_img.app_admin,
-            })
-        },
-        methods: {
-            cancel() {
-                this.chooseTime = false;
-            },
-            update(e) {
-                for(let index in this.list) {
-                    if(this.list[index].id == e.id) {
-                        this.list[index] = e;
-                    }
-                }
-                this.$forceUpdate();
-            },
-            clearSearch() {
-                this.keyword = '';
-            },
-            toSearch() {
-                this.search = true;
-                this.getFocus = true;
-                this.list = [];
-                this.searchResult = false;
-                this.candidate = this.$storage.getStorageSync('keyword') ? this.$storage.getStorageSync('keyword') : [];
-            },
-            keywordSearch(e) {
-                this.keyword = e;
-                this.searchResult = true;
-                this.search = false;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.page = 1;
-                this.getList();
-            },
-            // 清除搜索记录
-            clear() {
-                let that = this;
-                this.$storage.removeStorageSync('keyword');
-                that.candidate = [];
-                uni.showToast({
-                    title: '清理成功',
-                    duration: 1000,
-                    type: 'success',
-                    mask: false
-                });
-            },
-            // 搜索
-            searchMethod() {
-                let value = this.$storage.getStorageSync('keyword') ? this.$storage.getStorageSync('keyword') : [];
-                if (this.keyword.length == 0) {
-                    return
-                } else if (value.length > 0) {
-                    value.unshift(this.keyword)
-                } else {
-                    value = [this.keyword]
-                }
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.page = 1;
-                this.getList();
-                value.forEach(function(row, index) {
-                    if (value[0] == value[index] && index > 0) {
-                        value.splice(index, 1)
-                    }
-                })
-                this.$storage.setStorageSync('keyword', value);
-                this.search = false;
-                this.searchResult = true;
-            },
-            // 取消搜索
-            cancelSeacrch() {
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.search = false;
-                this.keyword = '';
-                // this.list = [];
-                this.page = 1;
-                this.getList();
-            },
-            change(e) {
-                let that = this;
-                that.time = e;
-                that.custom = false;
-                if (that.time == 4) {
-                    that.custom = true;
-                    that.date_end = that.today;
-                    that.date_start = that.today + ' 00:00:00';
-                }
-            },
-            // 确认选择时间
-            toChoose(res) {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that.date_start = res.date_start;
-                that.date_end = res.date_end;
-                that.time = res.choose;
-                that.page = 1;
-                that.getList();
-                that.chooseTime = false;
-            },
-            // 打开时间筛选
-            toTime() {
-                let that = this;
-                that.chooseTime = !that.chooseTime;
-                that.show = false;
-            },
-            // 选择更多状态
-            chooseItem(e) {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that._num = e;
-                that.menu.forEach(function(row, index) {
-                    if (row.value == that._num) {
-                        that.active = row;
-                    }
-                })
-                that.show = !that.show;
-                that.page = 1;
-                that.list = [];
-                that.getList();
-            },
-            // 切换状态
-            tab(e) {
-                this._num = e;
-                this.show = false;
-                this.active = null;
-                this.list = [];
-                this.page = 1;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.getList();
-            },
-            getList() {
-                let that = this;
-                if(that.loading) {
-                    return false
-                }
-                that.loading = true;
-                that.$request({
-                    url: that.is_user ? that.$api.community.order_list : that.$api.community.middle_list,
-                    data: {
-                        status: that._num,
-                        date_end: that.date_end,
-                        date_start: that.date_start,
-                        page: that.page,
-                        keyword: that.keyword
-                    }
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.loading = false;
-                    if(response.code == 0) {
-                        let list = response.data.list;
-                        that.more_list = false;
-                        if (list.length == response.data.pagination.pageSize) {
-                            that.more_list = true;
-                        }
-                        if(that.page == 1) {
-                            that.list = response.data.list;
-                            that.$forceUpdate();
-                        }else {
-                            that.list = that.list.concat(list);
-                            that.$forceUpdate();
-                        }
-                        that.page++;
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.loading = false;
-                    that.$hideLoading();
-                    uni.hideLoading();
-                })
-            },
-            getMore() {
-                if (this.more_list) {
-                    this.getList();
-                }
-            }
-        },
-        onShow: function() {
-            this.page = 1;
-            this.getList();
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            if(options.is_user == 1) {
-                that.is_user = true
-            }
-            if(options.keyword) {
-                that.keyword = options.keyword;
-            }
-            uni.getSystemInfo({
-                success: function (res) {
-                    that.windowHeight = res.windowHeight;
-                }
-            })
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that._num = 0
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .more-menu {
-        position: fixed;
-        z-index: 5;
-        top: #{166rpx};
-        padding-top: #{22rpx};
-        right: #{22rpx};
-        width: #{196rpx};
-        background-color: #fff;
-        font-size: #{28rpx};
-        color: #666;
-        border-bottom: #{1rpx} solid #e0e0e0;
-        .handle-btn {
-            height: #{48rpx};
-            display: flex;
-            align-items: center;
-            padding: 0 #{24rpx};
-            border-radius: #{24rpx};
-            border: #{2rpx} solid #bbb;
-            color: #353535;
-            font-size: #{24rpx};
-            margin-left: #{16rpx};
-            &.other {
-                border: #{2rpx} solid #ff4544;
-                color: #ff4544;
-            }
-        }
-        view {
-            width: #{196rpx};
-            height: #{68rpx};
-            line-height: #{68rpx};
-            text-align: center;
-            border-left: #{1rpx} solid #e0e0e0;
-            border-right: #{1rpx} solid #e0e0e0;
-        }
-    }
-    .search-area {
-        position: fixed;
-        z-index: 3;
-        top: 0;
-        left: 0;
-        right: 0;
-        height: #{88rpx};
-        line-height: #{88rpx};
-        background-color: #efeff4;
-        padding: 0 #{48rpx} 0 #{24rpx};
-        .icon-search {
-            height: #{24rpx};
-            width: #{24rpx};
-            margin-top: #{16rpx};
-        }
-        .icon-search+text {
-            color:#b2b2b2;
-            font-size:#{24rpx};
-            margin:0 #{5rpx};
-        }
-        .search {
-            height: #{56rpx};
-            line-height: #{56rpx};
-            border-radius: #{28rpx};
-            background-color: #fff;
-            color: #b2b2b2;
-            width: #{528rpx};
-            &.all-search {
-                width: #{702rpx};
-            }
-            .keyword {
-                color: #353535;
-            }
-            image {
-                margin-left: #{28rpx};
-                margin-right: #{10rpx};
-            }
-        }
-        .choose {
-            font-size: #{26rpx};
-        }
-        image {
-            width: #{22rpx};
-            height: #{12rpx};
-            margin-left: #{12rpx};
-        }
-    }
-    .navs-info {
-        background-color: #fff;
-        border-bottom: #{1rpx} solid #e2e2e2;
-        position: fixed;
-        z-index: 2;
-        top: #{78rpx};
-        left: 0;
-        right: 0;
-        padding-top: #{10rpx};
-        .navs {
-            height: #{100rpx};
-            font-size: #{28rpx};
-            color: #666;
-            text-align: center;
-            position: relative;
-            &.more-navs {
-                line-height: #{100rpx};
-            }
-            .active {
-                display: inline-block;
-                height: #{100rpx};
-                line-height: #{102rpx};
-                border-bottom: #{2rpx} solid;
-            }
-            image {
-                height: #{16rpx};
-                width: #{16rpx};
-                margin-left: #{16rpx};
-                display: block;
-                float: right;
-                margin-top: #{42rpx};
-            }
-        }
-    }
-    .order-item {
-        background-color: #fff;
-        padding: #{24rpx};
-        margin: #{20rpx} #{24rpx} 0;
-        border-radius: #{16rpx};
-        display: block;
-        .order-info {
-            font-size: #{24rpx};
-            color: #353535;
-            margin-bottom: #{24rpx};
-            .remark-info {
-                margin-top: #{8rpx};
-            }
-        }
-        .order-user {
-            height: #{72rpx};
-            background-color: #f7f7f7;
-            padding-left: #{28rpx};
-            font-size: #{24rpx};
-            color: #353535;
-            view:first-of-type {
-                margin-right: #{32rpx};
-            }
-        }
-        .goods {
-            height: #{160rpx};
-            margin-top: #{24rpx};
-            position: relative;
-            font-size: #{24rpx};
-            color: #353535;
-            margin-bottom: #{24rpx};
-            .goods-status {
-                height: #{40rpx};
-                line-height: #{40rpx};
-                color: #fff;
-                width: #{160rpx};
-                position: absolute;
-                bottom: 0;
-                left: 0;
-                text-align: center;
-                background-color: #ff4544;
-                border-bottom-left-radius: #{4rpx};
-                border-bottom-right-radius: #{4rpx};
-            }
-            .goods-img {
-                height: #{160rpx};
-                width: #{160rpx};
-                float: left;
-                margin-right: #{20rpx};
-                border-radius: #{4rpx};
-            }
-            .goods-name {
-                padding-top: #{5rpx};
-            }
-            .goods-attr {
-                font-size: #{24rpx};
-                color: #999;
-                position: absolute;
-                top: #{78rpx};
-                left: #{180rpx};
-                width: 70%;
-                text {
-                    margin-right: #{20rpx};
-                }
-            }
-            .goods-num {
-                font-size: #{24rpx};
-                color: #999;
-                position: absolute;
-                top: #{126rpx};
-                left: #{180rpx};
-            }
-            .goods-price {
-                font-size: #{24rpx};
-                color: #353535;
-                position: absolute;
-                bottom: 0;
-                right: 0;
-            }
-        }
-        .price-info {
-            font-size: #{28rpx};
-            color: #353535;
-            .other {
-                font-size: #{24rpx};
-                color: #999;
-            }
-        }
-        .menu-button {
-            margin-top: #{24rpx};
-        }
-    }
-    .search-item {
-        height: #{96rpx};
-        background-color: #efeff4;
-        padding: 0 #{24rpx};
-        font-size: #{28rpx};
-        color: #00c203;
-        .search-input {
-            height: #{64rpx};
-            position: relative;
-            width: #{620rpx};
-            .search-clear {
-                position: absolute;
-                right: #{15rpx};
-                top: #{21rpx};
-                width: #{30rpx};
-                height: #{30rpx};
-                z-index: 100;
-            }
-            .search-icon {
-                height: #{22rpx};
-                width: #{22rpx};
-                position: absolute;
-                top: #{21rpx};
-                left: #{28rpx};
-                z-index: 10;
-            }
-            input {
-                padding-left: #{62rpx};
-                padding-right: #{70rpx};
-                background-color: #fff;
-                border-radius: #{32rpx};
-                height: #{64rpx};
-                font-size: #{26rpx};
-                color: #353535;
-            }
-        }
-    }
-    .search-history {
-        position: absolute;
-        top: #{96rpx};
-        left: 0;
-        right: 0;
-        height: 100%;
-        background-color: #fff;
-        padding: #{24rpx} #{4rpx};
-        font-size: #{28rpx};
-        color: #666;
-        z-index: 20;
-        .delete-icon {
-            height: #{34rpx};
-            width: #{28rpx};
-        }
-
-        .candidate-list {
-            max-height: #{420rpx};
-            overflow: hidden;
-        }
-        .search-title {
-            padding: 0 #{20rpx};
-            margin-bottom: #{24rpx};
-        }
-        .keyword-item {
-            height: #{64rpx};
-            line-height: #{64rpx};
-            padding: 0 #{20rpx};
-            background-color: #f7f7f7;
-            color: #333;
-            border-radius: #{32rpx};
-            font-size: #{28rpx};
-            margin-left: #{20rpx};
-            margin-bottom: #{20rpx};
-            max-width: 90%;
-        }
-    }
-    .no-tip {
-        position: fixed;
-        top: #{400rpx};
-        left: 0;
-        right: 0;
-        margin: 0 auto;
-        color: #666666;
-        font-size: #{24rpx};
-        width: #{240rpx};
-        text-align: center;
-        image {
-            height: #{240rpx};
-            width: #{240rpx};
-            margin-bottom: #{20rpx};
-        }
-    }
-    .search-palce {
-        height: #{188rpx};
-    }
-    .dialog-bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: rgba(0,0,0,.3);
-        z-index: 1000;
-        .dialog {
-            font-size: 30rpx;
-            color: #353535;
-            width: 480rpx;
-            height: 200rpx;
-            border-radius: 16rpx;
-            text-align: center;
-            background-color: #fff;
-            .dialog-content {
-                height: 110rpx;
-                line-height: 110rpx;
-            }
-            .dialog-btn {
-                position: relative;
-                height: 90rpx;
-                border-top: 2rpx solid #e2e2e2;
-                .btn {
-                    width: 240rpx;
-                    height: 90rpx;
-                    text-align: center;
-                    line-height: 90rpx;
-                    font-size: 26rpx;
-                    color: #666;
-                }
-                .line {
-                    position: absolute;
-                    top: 20rpx;
-                    left: 50%;
-                    margin-left: -1rpx;
-                    width: 2rpx;
-                    height: 45rpx;
-                    background-color: #e2e2e2;
-                }
-            }
-        }
-    }
-</style>

+ 0 - 639
src/plugins/community/poster/poster.vue

xqd
@@ -1,639 +0,0 @@
-<template>
-    <app-layout>
-        <view class="poster-goods">
-            <view id="head" class="head">
-                <view class="poster main-center cross-center" :style="cStyle">
-                    <view v-if="selectForm" :class="['style-'+ selectForm.style]">
-                        <image class="activity-bg" :src="bg"></image>
-                        <view class="middleman-tip dir-left-nowrap cross-center">
-                            <image class="middleman-avatar" :src="middleman.avatar"></image>
-                            <view>我在{{address}}{{middleman.location}}发现了一个超划算的团购!</view>
-                        </view>
-                        <view class="goods-list" :class="['number-'+ activity.goods_list.length]">
-                            <view class="goods" :class="activity.goods_list.length > 2 ? 'dir-left-nowrap' : 'dir-top-nowrap'" v-for="(item,index) in activity.goods_list" :key="index">
-                                <image class="goods-cover" :src="item.cover_pic"></image>
-                                <view class="goods-info" :class="activity.goods_list.length > 2 ? '' : 'dir-top-nowrap main-center'">
-                                    <view class="t-omit-two">{{item.name}}</view>
-                                    <view v-if="item.price">
-                                        <view class="goods-price">¥{{item.price}}</view>
-                                        <view class="goods-original-price">¥{{item.original_price}}</view>
-                                    </view>
-                                </view>
-                            </view>
-                        </view>
-                        <view class="cross-center activity" :class="selectForm.style == 1 ? 'dir-right-nowrap' : 'dir-left-nowrap'">
-                            <view class="activity-qrcode main-center cross-center">
-                                <image :src="activity.qrcode"></image>
-                            </view>
-                            <view class="activity-info">
-                                <view class="dir-left-nowrap cross-center">
-                                    <view>团长:</view>
-                                    <image class="activity-avatar" :src="middleman.avatar"></image>
-                                    <view>{{middleman.nickname}}</view>
-                                </view>
-                                <view class="dir-left-nowrap cross-center">
-                                    结束时间:{{activity.end_at}}
-                                </view>
-                                <view class="dir-left-nowrap cross-center">
-                                    提货地址:{{address}}{{middleman.detail}}
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-            <view class="setting">
-                <view class="dir-left-nowrap line">
-                    <view class="box-grow-0 main-center cross-center label">
-                        <icon :style="{'background-color': getTheme.background}" type></icon>
-                        <text>样式</text>
-                    </view>
-                    <view class="dir-left-wrap box-grow-1">
-                        <view v-for="(item,key) in styleList" :key="key"
-                              @click="changeStyle(item.value)"
-                              v-if="config.activity_poster_style.indexOf(item.value.toString()) !== -1"
-                              :style="{'border-color': item.value == selectForm.style ? getTheme.border : ''}"
-                              :class="item.value == selectForm.style ? 'active': ''"
-                              class="style-input main-center cross-center"
-                        >
-                            <text>{{item.label}}</text>
-                            <icon v-if="item.value == selectForm.style" class="icon-active"
-                                  :style="{'background-color': getTheme.background}" type></icon>
-                        </view>
-                    </view>
-                </view>
-
-                <view class="dir-left-nowrap line" style="margin-bottom:5rpx">
-                    <view class="box-grow-0 main-center cross-center label">
-                        <icon :style="{'background-color': getTheme.background}" type></icon>
-                        <text>类型</text>
-                    </view>
-                    <view class="dir-left-wrap box-grow-1">
-                        <view v-for="(item,key) in typeList" :key="key"
-                              @click="changeType(item.value)"
-                              :style="{'border-color': item.value == selectForm.type ? getTheme.border : ''}"
-                              :class="item.value == selectForm.type ? 'active': ''"
-                              class="style-input dir-left-nowrap main-center cross-center"
-                        >
-                            <view v-if="item.value === 1" class="type-pure"></view>
-                            <view v-if="item.value === 2" class="type-gradient"></view>
-                            <text>{{item.label}}</text>
-                            <icon v-if="item.value == selectForm.type" class="icon-active"
-                                  :style="{'background-color': getTheme.background}" type></icon>
-                        </view>
-                    </view>
-                </view>
-
-                <view class="dir-left-nowrap line" v-if="selectForm && selectForm.type == 1">
-                    <view class="box-grow-0 main-center cross-center label" style="margin-top: 19rpx">
-                        <icon :style="{'background-color': getTheme.background}" type></icon>
-                        <text>颜色</text>
-                    </view>
-                    <view class="dir-left-wrap box-grow-1">
-                        <scroll-view scroll-x class="app-scroll" enable-flex="true">
-                            <view v-for="(color,key) in config.color" :key="key"
-                                  @click="changeColor(color)"
-                                  class="color-bg"
-                                  :style="{'background': `${color}`}">
-                                <icon v-if="color == selectForm.color" class="icon-active"
-                                      :style="{'background-color': getTheme.background}" type></icon>
-                            </view>
-                        </scroll-view>
-                    </view>
-                </view>
-                <view class="button main-center cross-center" @click="submitSave"
-                      :style="{'background-color': getTheme.background}">保存图片
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-
-    export default {
-        name: "goods",
-        data() {
-            return {
-                styleList: [{
-                    label: '样式一',
-                    value: 1,
-                }, {
-                    label: '样式二',
-                    value: 2,
-                }, {
-                    label: '样式三',
-                    value: 3,
-                }, {
-                    label: '样式四',
-                    value: 4,
-                }],
-                bg: '',
-                typeList: [],
-                selectForm: null,
-                config: {
-                    color: [],
-                    activity_poster_style: [],
-                },
-                address: '',
-                info: {},
-                activity: {},
-                middleman: {},
-                rpx: 1,
-                canvas: null,
-                canvas2: null,
-                ctx: null,
-                activity_id: 0,
-                middleman_id: 0,
-            }
-        },
-        computed: {
-            cStyle() {
-                let style = '';
-                console.log(uni.getSystemInfoSync().windowHeight)
-                if(uni.getSystemInfoSync().windowHeight > 672) {
-                    style += `margin: 17% auto;`
-                }
-                if(this.selectForm && this.selectForm.type == 1) {
-                    style += `background-color:${this.selectForm.color};`
-                }else if(this.selectForm && this.selectForm.type == 3) {
-                    style += `background-image:url(${this.config.image_bg});`
-                }
-                return style
-            },
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                community: state => state.mallConfig.__wxapp_img.community,
-            })
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            that.$showLoading({text: '加载中'});
-            that.activity_id = options.activity_id;
-            that.middleman_id = options.middleman_id;
-            that.loadData();
-        },
-
-        methods: {
-            loadData() {
-                const self = this;
-                self.$request({
-                    url: self.$api.community.poster,
-                    data: {
-                        activity_id: self.activity_id,
-                        middleman_id: self.middleman_id
-                    }
-                }).then(info => {
-                    self.$hideLoading();
-                    if (info.code === 0) {
-                        self.config = info.data.config;
-                        self.info = info.data.info;
-                        self.middleman = info.data.middleman;
-                        self.activity = info.data.activity;
-                        self.activity.goods_list = self.activity.goods_list.slice(0,6);
-                        if(self.activity.goods_list.length == 5) {
-                            self.activity.goods_list.push('')
-                        }
-                        self.address = self.middleman.city+self.middleman.district;
-                        if(self.middleman.city != self.middleman.province) {
-                            self.address = self.middleman.province + self.address
-                        }
-                        self.typeList = [{
-                            label: '纯色',
-                            value: 1,
-                        }, {
-                            label: '背景图',
-                            value: 3,
-                        }];
-                        self.selectForm = {
-                            color: self.config['color'][0],
-                            style: self.config['activity_poster_style'][0],
-                            type: 3,
-                        }
-                        switch (self.config['activity_poster_style'][0]) {
-                            case '1':
-                                self.bg = self.community.style1;
-                                break;
-                            case '2':
-                                self.bg = self.community.style2;
-                                break;
-                            case '3':
-                                self.bg = self.community.style3;
-                                break;
-                            case '4':
-                                self.bg = self.community.style4;
-                                break;
-                        }
-                    } else {
-                        uni.showToast({title: info.msg,icon: 'none'});
-                    }
-                })
-            },
-            changeStyle(value) {
-                let that = this;
-                that.selectForm.style = value;
-                switch (that.selectForm.style) {
-                    case 1:
-                        that.bg = that.community.style1;
-                        break;
-                    case 2:
-                        that.bg = that.community.style2;
-                        break;
-                    case 3:
-                        that.bg = that.community.style3;
-                        break;
-                    case 4:
-                        that.bg = that.community.style4;
-                        break;
-                }
-            },
-            changeType(value) {
-                const self = this;
-                self.selectForm.type = value;
-            },
-            changeColor(value) {
-                const self = this;
-                self.selectForm.color = value;
-            },
-            submitSave() {
-                this.$showLoading({text: '生成中'});
-                let para = this.selectForm;
-                para.activity_id = this.activity_id;
-                para.middleman_id = this.middleman_id;
-                this.$request({
-                    url: this.$api.community.poster_share,
-                    data: this.selectForm
-                }).then(info => {
-                    this.$hideLoading();
-                    let { code, data, msg } = info;
-                    if (code === 0) {
-                        const pic_url = data.pic_url;
-
-                        this.$utils.batchSave(pic_url, 'image').then(() => {
-                            uni.showToast({title: '保存成功'});
-                        });
-                    } else {
-                        uni.showToast({title: msg, icon: 'none'});
-                    }
-                }).catch(() => {
-                    this.$hideLoading();
-                })
-            },
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-    $box: #f7f7f7;
-
-    ::-webkit-scrollbar {
-        width: 0;
-        height: 0;
-        color: transparent;
-    }
-
-    .app-scroll {
-        width: 100%;
-        white-space: nowrap;
-        padding: 0 #{14rpx};
-    }
-
-    .poster-goods {
-        .head {
-            width: 100%;
-            .poster {
-                margin: #{50rpx} auto;
-                width: #{450rpx};
-                height: #{800.4rpx};
-                background-size: 100% 100%;
-                background-position: center;
-                background-repeat: no-repeat;
-                position: relative;
-                .activity-bg {
-                    position: absolute;
-                    width: 100%;
-                    height: 100%;
-                    top: 0;
-                    left: 0;
-                }
-                .middleman-tip {
-                    position: absolute;
-                    color: #353535;
-                    font-size: #{18rpx};
-                    width: #{358.2rpx};
-                    margin: 0 auto;
-                    .middleman-avatar {
-                        flex-shrink: 0;
-                        width: #{58.2rpx};
-                        height: #{58.2rpx};
-                        margin-right: #{12rpx};
-                    }
-                }
-                .goods-list {
-                    position: absolute;
-                    width: 100%;
-                    display: flex;
-                    justify-content: center;
-                    flex-wrap: wrap;
-                    align-items: center;
-                    .goods-price {
-                        color: #ff4544;
-                    }
-                    .goods-original-price {
-                        color: #999999;
-                        text-decoration: line-through;
-                    }
-                    .goods {
-                        height: #{72rpx};
-                        flex-shrink: 0;
-                        margin: 0 15rpx #{31.2rpx};
-                        .goods-cover {
-                            height: #{72rpx};
-                            width: #{72rpx};
-                            margin-right: #{8.4rpx};
-                            border-radius: #{4.8rpx};
-                        }
-                        .goods-info {
-                            width: #{99.6rpx};
-                            align-content: space-between;
-                            font-size: #{14.4rpx};
-                            .goods-original-price {
-                                font-size: #{12rpx};
-                            }
-                        }
-                    }
-                    &.number-1 {
-                        margin-top: #{-12rpx};
-                        .goods {
-                            height: 100%;
-                            .goods-cover {
-                                width: #{216rpx};
-                                height: #{216rpx};
-                                margin-right: 0;
-                                margin: 0 auto;
-                            }
-                            .goods-info {
-                                width: #{348rpx};
-                                text-align: center;
-                                margin: #{12rpx} auto;
-                                font-size: #{16.8rpx};
-                                .goods-price {
-                                    margin-top: #{10rpx};
-                                }
-                                .goods-original-price {
-                                    font-size: #{14.4rpx};
-                                }
-                            }
-                        }
-                    }
-                    &.number-2 {
-                        margin-top: #{-2.4rpx};
-                        .goods {
-                            height: #{270rpx};
-                            width: #{174rpx};
-                            border: #{2rpx} solid #e2e2e2;
-                            border-radius: #{4.8rpx};
-                            .goods-cover {
-                                width: #{172rpx};
-                                height: #{172rpx};
-                                margin-right: 0;
-                                border-radius: 0;
-                            }
-                            .goods-info {
-                                width: #{153.6rpx};
-                                text-align: center;
-                                margin: #{10rpx} auto;
-                                .goods-price {
-                                    margin-top: #{10rpx};
-                                }
-                            }
-                        }
-                    }
-                    &.number-3 {
-                        margin-top: #{-14.4rpx};
-                        .goods {
-                            height: #{90rpx};
-                            margin-bottom: #{19.2rpx};
-                            .goods-cover {
-                                height: #{90rpx};
-                                width: #{90rpx};
-                                margin-right: #{14.4rpx};
-                            }
-                            .goods-info {
-                                width: #{270rpx};
-                            }
-                        }
-                    }
-                    &.number-4 {
-                        margin-top: #{-21.6rpx};
-                        .goods {
-                            margin-bottom: #{12rpx};
-                            .goods-info {
-                                width: #{288rpx};
-                            }
-                        }
-                    }
-                }
-                .activity {
-                    position: absolute;
-                    .activity-qrcode {
-                        width: #{216rpx};
-                        height: #{144rpx};
-                        image {
-                            width: #{144rpx};
-                            height: #{144rpx};
-                        }
-                    }
-                    .activity-info {
-                        width: #{198rpx};
-                        font-size: #{13.2rpx};
-                        color: #353535;
-                        .activity-avatar {
-                            width: #{19.8rpx};
-                            height: #{19.8rpx};
-                            margin: 0 #{6rpx};
-                        }
-                    }
-                }
-                .style-1 {
-                    .goods-list {
-                        top: #{234rpx};
-                        left: 0;
-                    }
-                    .middleman-tip {
-                        top: #{87.6rpx};
-                        left: #{46.8rpx};
-                    }
-                    .activity {
-                        bottom: #{66rpx};
-                        left: #{38.4rpx};
-                    }
-                }
-                .style-2 {
-                    .goods-list {
-                        top: #{114rpx};
-                        left: 0;
-                    }
-                    .middleman-tip {
-                        bottom: #{255rpx};
-                        left: #{48rpx};
-                    }
-                    .activity {
-                        bottom: #{90rpx};
-                        left: 0;
-                    }
-                }
-                .style-3 {
-                    .goods-list {
-                        top: #{186rpx};
-                        left: 0;
-                    }
-                    .middleman-tip {
-                        top: #{98.4rpx};
-                        left: #{48rpx};
-                    }
-                    .activity {
-                        bottom: #{54rpx};
-                        left: 0;
-                    }
-                }
-                .style-4 {
-                    .goods-list {
-                        top: #{290.4rpx};
-                        left: 0;
-                    }
-                    .middleman-tip {
-                        top: #{68.4rpx};
-                        left: #{33.6rpx};
-                        .middleman-avatar {
-                            margin-right: #{24rpx};
-                        }
-                    }
-                    .activity {
-                        bottom: #{54rpx};
-                        left: 0;
-                    }
-                }
-            }
-        }
-
-        .setting {
-            padding-top: #{20rpx};
-            font-size: #{24rpx};
-            color: #353535;
-            background: #FFFFFF;
-            padding-bottom: #{48rpx};
-
-            .line {
-                margin-bottom: #{24rpx};
-
-                .label {
-                    height: #{56rpx};
-
-                    icon {
-                        background-image: url("https://shop.9026.com/web/statics/image/mall/static/poster/mark.png");
-                        background-size: 100% 100%;
-                        height: #{21rpx};
-                        width: #{21rpx};
-                        background-repeat: no-repeat;
-                        margin-left: #{24rpx};
-                        border-radius: 50%;
-                    }
-
-                    text {
-                        line-height: 1;
-                        padding-left: #{12rpx};
-                        padding-right: #{26rpx - 14rpx};
-                    }
-                }
-
-                .style-input {
-                    position: relative;
-                    height: #{56rpx};
-                    padding: 0 #{20rpx};
-                    background: $box;
-                    border-radius: #{5rpx};
-                    margin: 0 #{14rpx};
-
-                    .type-pure {
-                        height: #{32rpx};
-                        width: #{32rpx};
-                        margin-right: #{10rpx};
-                        background: #d8d8d8;
-                    }
-
-                    .type-gradient {
-                        height: #{32rpx};
-                        width: #{32rpx};
-                        margin-right: #{10rpx};
-                        background-image: url("https://shop.9026.com/web/statics/img/mall/community/icon.png");
-                        background-size: 100% 100%;
-                    }
-
-                }
-            }
-
-            .active {
-                border-width: #{3rpx};
-                border-style: solid;
-                background: #FFFFFF !important;
-            }
-
-            .icon-active {
-                background-image: url("https://shop.9026.com/web/statics/image/mall/static/poster/input-active.png");
-                height: #{38rpx};
-                width: #{38rpx};
-                background-repeat: no-repeat;
-                background-size: 100% 100%;
-                position: absolute;
-                top: #{-19rpx};
-                right: #{-19rpx};
-                z-index: 10;
-                border-radius: 50%;
-            }
-
-            .line-input {
-                position: relative;
-                border-radius: #{5rpx};
-                margin: 0 #{14rpx} #{14rpx};
-                background: $box;
-                width: #{140rpx};
-                height: #{56rpx};
-
-                .icon-square {
-                    background-size: 100% 100%;
-                    height: #{32rpx};
-                    width: #{32rpx};
-                    background-repeat: no-repeat;
-                }
-
-                text {
-                    margin-left: #{10rpx};
-                }
-            }
-
-            .color-bg {
-                position: relative;
-                display: inline-block;
-                height: #{60rpx};
-                width: #{60rpx};
-                border-radius: #{5rpx};
-                border: 1px solid #e5e5e5;
-                margin-right: #{26rpx};
-                margin-top: #{19rpx};
-            }
-        }
-
-        .button {
-            font-size: #{32rpx};
-            border-radius: #{40rpx};
-            height: #{68rpx};
-            margin: #{34rpx} auto 0;
-            color: #ffffff;
-            width: #{500rpx};
-        }
-    }
-</style>

+ 0 - 144
src/plugins/community/profit-cash/profit-cash.vue

xqd
@@ -1,144 +0,0 @@
-<template>
-    <app-layout>
-        <view class="price-show dir-top-nowrap main-center cross-center">
-            <view class="title">可提现金额(元)</view>
-            <view class="price">{{middleman.money}}</view>
-            <view @click="toCash" class="cash-btn" :style="{'color': getTheme.color, 'border-color': getTheme.border}">去提现</view>
-        </view>
-        <view class="menu">
-            <view @click="toDetail" class="menu-item main-between cross-center">
-                <view>提现明细</view>
-                <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appMenu from '../components/app-menu';
-
-    export default {
-        data() {
-            return {
-                middleman: {},
-                setting: {},
-                middleman: {},
-                apply_at: ''
-            }
-        },
-        components: {
-            "app-menu": appMenu
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                userInfo: state => state.user.info,
-            })
-        },
-        onShow: function (options) {
-            this.getStatus();
-        },
-        methods: {
-            toDetail() {
-                uni.navigateTo({
-                    url: '/plugins/community/cash-detail/cash-detail'
-                });
-            },
-            toCash() {
-                uni.navigateTo({
-                    url: '/plugins/community/cash/cash'
-                });
-            },
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.index,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        this.setting = response.data.setting;
-                        this.middleman = response.data.middleman;
-                        if(response.data.middleman.id > 0) {
-                            this.middleman = response.data.middleman;
-                            this.apply_at = this.middleman.apply_at.substring(0,10)
-                        }else {
-                            uni.showToast({
-                                title: '您还不是团长,现在前往申请页面',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                            setTimeout(function(){
-                                uni.redirectTo({
-                                    url: '/plugins/community/apply/apply'
-                                });
-                            },1000)
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .price-show {
-        width: 702rpx;
-        height: 256rpx;
-        margin: 24rpx 24rpx;
-        border-radius: 16rpx;
-        background-color: #fff;
-        .title {
-            color: #999999;
-            font-size: 24rpx;
-            margin-bottom: 10rpx;
-        }
-        .price {
-            color: #353535;
-            font-size: 40rpx;
-            font-family: DIN;
-        }
-        .cash-btn {
-            font-size: 28rpx;
-            padding: 0 24rpx;
-            height: 46rpx;
-            line-height: 44rpx;
-            border-radius: 23rpx;
-            border: 2rpx solid;
-            margin-top: 30rpx;
-            display: inline-block;
-        }
-    }
-    .menu {
-        border-radius: 16rpx;
-        background-color: #fff;
-        width: 702rpx;
-        margin: 0 24rpx;
-        .menu-item {
-            padding: 32rpx;
-            height: 96rpx;
-            border-top: 2rpx solid #e2e2e2;
-            font-size: 26rpx;
-            color: #353535;
-            &:first-of-type {
-                border-top: 0;
-            }
-            image {
-                width: 12rpx;
-                height: 22rpx;
-                display: block;
-            }
-        }
-    }
-</style>

+ 0 - 396
src/plugins/community/profit/profit.vue

xqd
@@ -1,396 +0,0 @@
-<template>
-    <app-layout>
-        <app-tab-nav :setTop="0" :tabList="tabList" :padding="0" :theme="getTheme" :activeItem="activeTab" @click="tabStatus" :shadow="false"></app-tab-nav>
-        <view v-if="activeTab == 1">
-            <view class="tip">提示:当预计利润大于可提现利润时,说明存在未过售后订单</view>
-            <view class="tip-placeholder"></view>
-            <view class="item" v-for="(item,index) in list" :key="index">
-                <view class="item-top main-between">
-                    <view class="goods-title dir-left-nowrap">
-                        <image src="https://shop.9026.com/web/statics/img/mall/community/activity-name.png"></image>
-                        <view>{{item.activity.title}}</view>
-                    </view>
-                    <view class="start-time dir-left-nowrap">
-                        {{item.activity.start_at}}开始
-                    </view>
-                </view>
-                <view class="item-info">
-                    <view class="item-bottom main-center">
-                        <view class="money-item dir-top-nowrap cross-center main-center box-grow-1">
-                            <view>订单数</view>
-                            <view style="color: #353535;" class="money">{{item.order_num}}</view>
-                        </view>
-                        <view class="money-item dir-top-nowrap cross-center main-center box-grow-1">
-                            <view>订单金额</view>
-                            <view style="color: #353535;" class="money">{{item.total_pay_price}}</view>
-                        </view>
-                    </view>
-                    <view class="item-bottom main-center">
-                        <view class="money-item dir-top-nowrap cross-center main-center box-grow-1">
-                            <view>预计总利润</view>
-                            <view style="color: #f39800" class="money">{{item.profit_price}}</view>
-                        </view>
-                        <view class="money-item dir-top-nowrap cross-center main-center box-grow-1">
-                            <view>可提现利润</view>
-                            <view style="color: #f39800" class="money">{{item.stay_price}}</view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <view v-if="activeTab == 2">
-            <view class="price main-between cross-center">
-                <view>
-                    <view>累计利润:¥{{statics.all_price ? statics.all_price :'0.00'}}</view>
-                    <view>待结算:¥{{statics.stay_price ? statics.stay_price: '0.00'}}</view>
-                </view>
-                <view class="choose-btn" :style="{'color': getTheme.color, 'border-color': getTheme.border}" @click="show=!show">
-                    <text>{{type == 'day' ? '今日': type == 'month' ? '本月': '全部'}}</text>
-                    <image v-if="activeTab == 2" :style="{'background-color': getTheme.background}" src='https://shop.9026.com/web/statics/img/mall/community/open.png'></image>
-                </view>
-            </view>
-            <view class="order">
-                <view v-for="item in detail" class="order-item" :key="item.order_no">
-                    <view class="order-top main-between">
-                        <view>{{item.order_no}}</view>
-                        <view>¥{{item.profit_price}}</view>
-                    </view>
-                    <view class="order-bottom main-between">
-                        <view>{{item.created_at}}</view>
-                        <view>{{item.status}}</view>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <view class="bg" v-if="show">
-            <view class='dialog'>
-                <view @click="toggle('')" class="dialog-item">全部</view>
-                <view @click="toggle('month')" class="dialog-item">本月</view>
-                <view @click="toggle('day')" class="dialog-item">今日</view>
-                <view class="cancel main-center cross-center">
-                    <view @click="show=!show" class="cancel-btn">取消</view>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-
-    export default {
-        data() {
-            return {
-                show: false,
-                statics: {
-                    all_price: '',
-                    stay_price: '',
-                },
-                tabList: [
-                    {id:1, name: '概况'},
-                    {id:2, name: '明细'}
-                ],
-                activeTab: 1,
-                type: '',
-                page: 1,
-                list: [],
-                detail: []
-            }
-        },
-        components: {
-            "app-tab-nav": appTabNav
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                bonusImg: state => state.mallConfig.__wxapp_img.bonus,
-                userInfo: state => state.user.info,
-            })
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            this.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            this.getStatus();
-        },
-        onReachBottom() {
-            this.page++;
-            if(this.activeTab == 2) {
-                this.getDetail();
-            }else {
-                this.getList();
-            }
-        },
-        methods: {
-            tabStatus(e) {
-                let id = e.currentTarget.dataset.id;
-                this.show = false;
-                this.activeTab = id;
-                this.page = 1;
-                if(this.detail.length == 0) {
-                    this.$showLoading({
-                        type: 'global',
-                        text: '加载中...'
-                    });
-                }
-                if(this.activeTab == 2) {
-                    this.getDetail();
-                }else {
-                    this.getList();
-                }
-            },
-            toggle(type) {
-                this.type = type;
-                this.show = false;
-                this.page = 1;
-                this.getDetail();
-            },
-            getDetail() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.profit_detail,
-                    data: {
-                        type: this.type,
-                        page: this.page
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        that.statics = response.data.data;
-                        if(that.page > 1) {
-                            that.detail = that.detail.concat(response.data.list);
-                        }else {
-                            that.detail = response.data.list;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.profit_list,
-                    data: {
-                        page: this.page
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    that.$hideLoading();
-                    if(response.code == 0) {
-                        if(that.page > 1) {
-                            that.list = that.list.concat(response.list);
-                        }else {
-                            that.list = response.list;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            },
-            getStatus() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.index,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        this.setting = response.data.setting;
-                        if(response.data.middleman.id > 0) {
-                            this.middleman = response.data.middleman;
-                            this.apply_at = this.middleman.apply_at.substring(0,10)
-                            this.getList();
-                        }else {
-                            uni.showToast({
-                                title: '您还不是团长,现在前往申请页面',
-                                icon: 'none',
-                                duration: 1000
-                            });
-                            setTimeout(function(){
-                                uni.redirectTo({
-                                    url: '/plugins/community/apply/apply'
-                                });
-                            },1000)
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .tip {
-        height: 60rpx;
-        line-height: 60rpx;
-        background-color: #f8e5e5;
-        color: #ff4544;
-        padding-left: 20rpx;
-        font-size: 24rpx;
-        position: fixed;
-        top: #{90rpx};
-        left: 0;
-        width: 100%;
-        z-index: 10;
-    }
-    .tip-placeholder {
-        height: 60rpx;
-    }
-    .item {
-        width: 702rpx;
-        margin: 16rpx 24rpx 0;
-        background-color: #fff;
-        border-radius: 16rpx;
-        .item-top {
-            height: 90rpx;
-            line-height: 90rpx;
-            padding: 0 20rpx;
-            border-bottom: 2rpx solid #e2e2e2;
-            .goods-title {
-                color: #353535;
-                font-size: #{24rpx};
-                margin-top: 30rpx;
-                height: 30rpx;
-                line-height: 30rpx;
-                image {
-                    width: 30rpx;
-                    height: 30rpx;
-                    margin-right: 20rpx;
-                    display: block;
-                }
-            }
-            .start-time {
-                color: #999999;
-                font-size: 24rpx;
-            }
-        }
-        .item-info {
-            padding: 30rpx 0;
-            .item-bottom {
-                height: 105rpx;
-                .money-item {
-                    font-size: 24rpx;
-                    color: #999999;
-                    width: 50%;
-                    .money {
-                        margin-top: 10rpx;
-                        font-family: DIN;
-                        font-size: 46rpx;
-                    }
-                }
-            }
-        }
-    }
-    .price {
-        height: 96rpx;
-        background-color: #fff;
-        padding: 0 24rpx;
-        font-size: 24rpx;
-        color: #999999;
-        position: fixed;
-        top: #{90rpx};
-        left: 0;
-        width: 100%;
-        z-index: 100;
-        .choose-btn {
-            border: 2rpx solid;
-            height: 50rpx;
-            border-radius: 25rpx;
-            line-height: 48rpx;
-            display: inline-block;
-            padding: 0 24rpx;
-            image {
-                margin-top: 21rpx;
-                height: 8rpx;
-                width: 12rpx;
-                margin-left: 10rpx;
-                float: right;
-                display: block;
-            }
-        }
-    }
-    .order {
-        width: 702rpx;
-        border-radius: 16rpx;
-        background-color: #fff;
-        margin: 114rpx 24rpx 24rpx;
-        .order-item {
-            padding: 24rpx 32rpx;
-            border-top: 2rpx solid #e2e2e2;
-            font-size: 26rpx;
-            color: #353535;
-            &:first-of-type {
-                border-top: 0;
-            }
-            .order-bottom {
-                font-size: 24rpx;
-                color: #999999;
-            }
-        }
-    }
-    .bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        background-color: rgba(0,0,0,.3);
-        z-index: 4;
-        width: 100%;
-        height: 100%;
-        .dialog {
-            background-color: #fff;
-            border-radius: 16rpx;
-            position: fixed;
-            bottom: 0;
-            left: 0;
-            width: 100%;
-            z-index: 200;
-            .dialog-item {
-                height: 115rpx;
-                line-height: 115rpx;
-                border-bottom: 2rpx solid #e2e2e2;
-                text-align: center;
-                font-size: 26rpx;
-                color: #353535;
-            }
-            .cancel {
-                background-color: #F6F6F6;
-                height: 140rpx;
-                .cancel-btn {
-                    height: 115rpx;
-                    line-height: 115rpx;
-                    text-align: center;
-                    width: 702rpx;
-                    border-radius: 16rpx;
-                    background-color: #fff;
-                }
-            }
-        }
-    }
-</style>

+ 0 - 205
src/plugins/community/record/record.vue

xqd
@@ -1,205 +0,0 @@
-<template>
-    <app-layout>
-        <view class="info dir-left-nowrap" :style="{backgroundImage: `url(${community.log})`}">
-            <view class="info-item dir-top-nowrap main-center">
-                <view>订单总数(笔)</view>
-                <view class="num">{{detail.order_num}}</view>
-            </view>
-            <view class="line"></view>
-            <view class="info-item dir-top-nowrap main-center">
-                <view>本团收入(元)</view>
-                <view class="num">{{detail.order_price}}</view>
-            </view>
-        </view>
-        <view class="number dir-left-nowrap">
-            <view class="number-item dir-top-nowrap main-center box-grow-1">
-                <view>参与人数</view>
-                <view class="num">{{detail.user_num}}</view>
-            </view>
-            <view class="number-item dir-top-nowrap main-center box-grow-1">
-                <view>浏览人数</view>
-                <view class="num">{{detail.log_num}}</view>
-            </view>
-            <view class="number-item dir-top-nowrap main-center box-grow-1">
-                <view class="label">转化率</view>
-                <view class="num">{{rate}}%</view>
-            </view>
-        </view>
-        <view class="list">
-            <view class="item main-between cross-center" v-for="(item,index) in detail.list" :key="index">
-                <view class="dir-left-nowrap cross-center">
-                    <view class="index">{{item.index}}</view>
-                    <view class="avatar">
-                        <image :src="item.avatar"></image>
-                    </view>
-                    <view class="nickname t-omit">{{item.nickname}}</view>
-                </view>
-                <view class="time">{{item.created_at}}</view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-
-    export default {
-        data() {
-            return {
-                id: 0,
-                rate: 0,
-                detail: {
-                    list: [],
-                    log_num: '0',
-                    user_num: '0',
-                    order_price: '0',
-                    order_num: '0',
-                },
-            }
-        },
-        components: {
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                stock: state => state.mallConfig.__wxapp_img.stock,
-                community: state => state.mallConfig.__wxapp_img.community,
-                userInfo: state => state.user.info,
-            })
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            this.id = options.id;
-            this.getList();
-        },
-        methods: {
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.activity_log,
-                    data: {
-                        id: that.id
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.detail = response.data;
-                        for(let i in that.detail.list) {
-                            that.detail.list[i].index = +i +1;
-                            if(that.detail.list[i].index < 10) {
-                                that.detail.list[i].index = '0' + that.detail.list[i].index
-                            }
-                        }
-                        if(that.detail.log_num > 0) {
-                            that.rate = Math.round(that.detail.user_num / that.detail.log_num * 100)
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                    that.$hideLoading();
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .info {
-        height: #{260rpx};
-        background-color: #4859E8;
-        color: #fff;
-        font-size: #{34rpx};
-        position: relative;
-        background-size: 100% 100%;
-        .info-item {
-            width: 50%;
-            height: #{260rpx};
-            text-align: center;
-            .num {
-                font-size: #{40rpx};
-                font-family: DIN;
-                margin-top: #{15rpx};
-            }
-        }
-        .line {
-            width: #{2rpx};
-            height: #{130rpx};
-            position: absolute;
-            top: #{65rpx};
-            left: 50%;
-            margin-left: #{-1rpx};
-            z-index: 5;
-            background-color: #fff;
-        }
-    }
-    .number {
-        width: #{702rpx};
-        margin: #{24rpx};
-        border-radius: #{16rpx};
-        background-color: #fff;
-        height: #{132rpx};
-        .number-item {
-            text-align: center;
-            font-size: #{26rpx};
-            color: #999;
-            .num {
-                font-size: #{28rpx};
-                color: #353535;
-                margin-top: #{10rpx};
-            }
-        }
-    }
-    .list {
-        background-color: #fff;
-        border-radius: #{16rpx};
-        padding: 0 #{32rpx};
-        margin: 0 #{24rpx} #{24rpx};
-        width: #{702rpx};
-        .item {
-            height: #{100rpx};
-            border-top: #{2rpx} solid #e2e2e2;
-            padding: 0 #{18rpx};
-            &:first-of-type {
-                border-top: 0;
-            }
-            .index {
-                font-size: #{26rpx};
-                height: #{100rpx};
-                line-height: #{100rpx};
-                font-weight: 600;
-                color: #3C8DF1;
-                margin-right: #{24rpx};
-            }
-            .avatar {
-                width: #{56rpx};
-                height: #{56rpx};
-                border-radius: 50%;
-                margin-right: #{24rpx};
-                image {
-                    width: #{56rpx};
-                    height: #{56rpx};
-                    border-radius: 50%;
-                }
-            }
-            .name {
-                font-size: #{28rpx};
-                height: #{100rpx};
-                line-height: #{100rpx};
-                color: #3b3939;
-                width: #{300rpx};
-            }
-            .time {
-                font-size: #{26rpx};
-                color: #999;
-            }
-        }
-    }
-</style>

+ 0 - 135
src/plugins/community/recruit/recruit.vue

xqd
@@ -1,135 +0,0 @@
-<template>
-    <app-layout>
-        <app-rich-text :content="setting.recruit_content"></app-rich-text>
-        <view class="placeholder" :class="[`${tabbarbool? 'tabbarbool':''}`]"></view>
-        <view class="apply safe-area-inset-bottom" :class="[ `${iphone_x? 'iphone_x':''}`,`${tabbarbool? 'tabbarbool':''}`]">
-            <view class="apply-btn" :style="{'background-color': getTheme.color}" @click="toApply">立即申请</view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appRichText from "../../../components/basic-component/app-rich/parse.vue";
-
-    export default {
-        data() {
-            return {
-                setting: {},
-                currentRoute: this.$platDiff.route(),
-                tabbarbool: false,
-                iphone_x: false,
-            }
-        },
-        computed: {
-            ...mapState({
-                tabBarNavs: state => state.mallConfig.navbar.navs,
-            }),
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            })
-        },
-        watch: {
-            tabBarNavs: {
-                handler: function() {
-                    this.b();
-                },
-                immediate: true,
-            }
-        },
-        components: {
-            "app-rich-text": appRichText
-        },
-        methods: {
-            b() {
-                // #ifndef H5
-                let currentRoute = this.currentRoute;
-                for (let i = 0; i < this.tabBarNavs.length; i++) {
-                    if(currentRoute.includes(this.tabBarNavs[i].url.split('?')[0])) {
-                        return this.tabbarbool = true;
-                    }
-                }
-                // #endif
-                return  this.tabbarbool = false;
-            },
-            toApply() {
-                this.stopLoad = true;
-                uni.navigateTo({
-                    url: '/plugins/community/apply/apply'
-                });
-            },
-            getSetting() {
-                let that = this;
-                that.$request({
-                    url: that.$api.community.setting,
-                }).then(response=>{
-                    if(response.code == 0) {
-                        that.setting = response.data;
-                        uni.setNavigationBarTitle({
-                            title: that.setting.recruit_title
-                        });
-                    }else {
-                        that.$hideLoading();
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                });
-            },
-        },
-
-        onLoad() { this.$commonLoad.onload();
-            let that = this;
-            uni.getSystemInfo({
-                success: function (res) {
-                    that.height = -res.screenHeight;
-                    if(res.model.indexOf('iPhone X') > -1 || res.model.indexOf('iPhone 11') > -1 || res.model.indexOf('iPhone11') > -1 || res.model.indexOf('iPhone12') > -1 || res.model.indexOf('Unknown Device') > -1) {
-                        that.iphone_x = true;
-                    }
-                }
-            });
-            that.getSetting();
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .placeholder {
-        height: #{154rpx};
-        width: 100%;
-        &.tabbarbool {
-            padding-bottom: #{110rpx};
-        }
-    }
-
-    .apply {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        z-index: 2;
-        height: #{154rpx};
-        width: 100%;
-        background-color: #fff;
-        padding-top: #{26rpx};
-        padding-left: #{24rpx};
-        &.tabbarbool {
-            bottom: #{110rpx};
-            &.tabbarbool.iphone_x {
-                bottom: #{160rpx};
-            }
-        }
-        .apply-btn {
-            width: #{702rpx};
-            height: #{88rpx};
-            line-height: #{88rpx};
-            border-radius: #{44rpx};
-            text-align: center;
-            color: #fff;
-            font-size: #{32rpx};
-        }
-    }
-</style>

+ 0 - 513
src/plugins/exchange/detail/detail.vue

xqd
@@ -1,513 +0,0 @@
-<template>
-    <app-layout>
-        <view class="code-info" :style="{backgroundImage: 'url('+ exchangeImg.bg + ')',backgroundColor: getTheme.background}">
-            <view class="code">{{code}}</view>
-            <view v-if="exchange == 0">该兑换码包含{{list.length}}种礼品,您可以{{mode == 0 ? '全部':'任选一件'}}兑换:</view>
-            <view v-if="exchange == 1">于{{r_raffled_at}}兑换以下礼品</view>
-        </view>
-        <view>
-            <view class="rewards" v-for="(item,index) in list" :key="index">
-                <view class="rewards-top dir-left-nowrap cross-center" :class="mode == 1 ? 'active-item':''">
-                    <app-radio width="88" :height="item.type == 'integral' || item.type == 'balance' || item.type == 'svip' ? '36':'140'"  @click="toggle" :value="item.active" :item="item" :theme="getTheme" type="round" v-if="mode == 1">
-                    </app-radio>
-                    <view v-if="item.type == 'goods'" class="dir-left-nowrap card goods">
-                        <image class="card-img" mode="aspectFill" :src="item.goods_info.cover_pic"></image>
-                        <view class="card-info">
-                            <view class="t-omit-two card-name">{{item.goods_info.name}}</view>
-                            <view class="attr">{{item.goods_info.attr_str}}</view>
-                            <view class="dir-right-nowrap">
-                                <div class="goods-num" :style="{'color': getTheme.color}">x{{item.goods_num}}</div>
-                            </view>
-                        </view>
-                    </view>
-                    <view v-if="item.type == 'card'" class="dir-left-nowrap card">
-                        <image class="card-img" mode="aspectFill" v-if="item.card_info.pic_url" :src="item.card_info.pic_url"></image>
-                        <view class="card-info">
-                            <view class="dir-left-nowrap">
-                                <image src="./../image/card.png"></image>
-                                <view class="t-omit-two card-name">{{item.card_info.name}}</view>
-                            </view>
-                            <view class="main-between cross-center">
-                                <div class="card-number" :style="{'color': getTheme.color,'background-color': getTheme.background_o}">剩余{{item.card_info.number}}次</div>
-                                <div class="card-num" :style="{'color': getTheme.color}">x{{item.card_num}}</div>
-                            </view>
-                        </view>
-                    </view>
-                    <view v-if="item.type == 'coupon'" class="dir-left-nowrap card">
-                        <view class="card-info">
-                            <view class="dir-left-nowrap">
-                                <image src="./../image/coupon.png"></image>
-                                <view class="t-omit-two card-name">{{item.coupon_info.name}}</view>
-                            </view>
-                            <view class="main-between cross-center">
-                                <div v-if="item.coupon_info.type == 1" class="card-number" :style="{'color': getTheme.color,'background-color': getTheme.background_o}">{{item.coupon_info.discount}}折 满{{item.coupon_info.min_price == 0 ? '任意金额': '¥'+item.coupon_info.min_price}}可用 <text style="margin-left: 10rpx" v-if="item.coupon_info.discount_limit">优惠上限¥{{item.coupon_info.discount_limit}}</text></div>
-                                <div v-if="item.coupon_info.type == 2" class="card-number" :style="{'color': getTheme.color,'background-color': getTheme.background_o}">¥{{item.coupon_info.sub_price}} 满{{item.coupon_info.min_price == 0 ? '任意金额': '¥'+item.coupon_info.min_price}}可用</div>
-                                <div class="card-num" :style="{'color': getTheme.color}">x{{item.coupon_num}}</div>
-                            </view>
-                        </view>
-                    </view>
-                    <view v-if="item.type == 'integral' || item.type == 'balance' || item.type == 'svip'" class="dir-left-nowrap balance">
-                        <view class="balance-info cross-center main-between">
-                            <view class="dir-left-nowrap cross-center">
-                                <image v-if="item.type == 'integral'" src="./../image/point.png"></image>
-                                <image v-if="item.type == 'balance'" src="./../image/balance.png"></image>
-                                <image v-if="item.type == 'svip'" src="./../image/svip.png"></image>
-                                <view class="balance-name">{{item.name}}</view>
-                            </view>
-                            <view v-if="item.type == 'integral'" :style="{'color': getTheme.color}">{{item.integral_num}}</view>
-                            <view v-if="item.type == 'balance'" :style="{'color': getTheme.color}">¥{{item.balance}}</view>
-                            <view v-if="item.type == 'svip'" :style="{'color': getTheme.color}">{{item.svip_info.discount}}折</view>
-                        </view>
-                    </view>
-                </view>
-                <view v-if="exchange == 1" class="rewards-bottom dir-right-nowrap cross-center">
-                    <view v-if="item.is_send == 0" @click="apply(item)" :style="{'background-color': getTheme.background}" class="rewards-submit">立即领取</view>
-                    <view v-if="item.is_send == 1" class="rewards-submit over">已领取</view>
-                    <view v-if="item.goods_id > 0 || (item.user_coupon_id && item.user_coupon_id.length > 0) || (item.user_card_id && item.user_card_id.length > 0)" @click="toDetail(item)" :style="{'color': getTheme.color, 'border-color': getTheme.border}" class="rewards-detail">查看详情</view>
-                </view>
-            </view>
-        </view>
-        <view v-if="exchange == 0" class="placeholder"></view>
-        <view v-if="exchange == 0 && list.length > 0" class="apply safe-area-inset-bottom">
-            <view class="apply-btn" @click="submit" :style="{'background-color': getTheme.background}">立即兑换</view>
-        </view>
-        <u-mask :show="dialog" :maskClickAble="false" :zoom="false">
-            <view class="dialog">
-                <image class="dialog-img" src="./../image/error.png"></image>
-                <view class="dialog-msg">
-                    <text>{{msg}}</text>
-                </view>
-                <view class="dialog-other">{{other}}</view>
-                <view @click="goback"  :style="{'background-color': getTheme.background}" class="dialog-button">我知道了</view>
-            </view>
-        </u-mask>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import uMask from '../../../components/basic-component/u-mask/u-mask.vue';
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-    import appRadio from '../../../components/basic-component/app-radio/app-radio.vue';
-
-    export default {
-        name: "index",
-        data() {
-            return {
-                first: true,
-                loading: false,
-                code: '',
-                dialog: false,
-                msg: '',
-                other: '',
-                r_raffled_at: '',
-                list: [],
-                mode: 0,
-                exchange: 0,
-                token: ''
-            };
-        },
-        components:{
-            'app-radio': appRadio,
-            uMask,
-            'app-iphone-x': appIphoneX,
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            that.code = options.code;
-            that.exchange = options.exchange == 1 ? 1 : 0;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.getList();
-        },
-        onShow() {
-            if(this.exchange == 1 && !this.first) {
-                this.getList()
-            }
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                exchangeImg: state => state.mallConfig.__wxapp_img.exchange
-            })
-        },
-        methods: {
-            toDetail(item) {
-                if(item.type == 'goods') {
-                    uni.navigateTo({
-                        url: `/pages/goods/goods?id=${item.goods_id}&code=${this.code}&token=${item.token}&attr=${item.goods_info.attr_str}&attr_id=${item.attr_id}&goods_num=${item.goods_num}&exchange=${item.is_send}`
-                    });
-                }else if(item.type == 'coupon') {
-                    uni.navigateTo({
-                        url: `/pages/coupon/details/details-no-share?person=1&id=${item.user_coupon_id[0]}`
-                    });
-                }else if(item.type == 'card') {
-                    uni.navigateTo({
-                        url: `/pages/card/details/details?id=${item.user_card_id[0]}`
-                    });
-                }
-            },
-            goback() {
-                this.dialog = false;
-                uni.navigateBack();
-            },
-            apply(item) {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '领取中...'
-                });
-                if(item.type != 'goods') {
-                    that.$request({
-                        url: that.$api.exchange.covert,
-                        data: {
-                            code: this.code,
-                            token: item.token
-                        },
-                        method: 'post'
-                    }).then(response=>{
-                        uni.hideLoading();
-                        if(response.code == 0) {
-                            uni.showToast({
-                                title: response.msg,
-                                duration: 1000
-                            });
-                            this.getList();
-                        }else {
-                            uni.showToast({
-                                title: response.msg,
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                    }).catch(response => {
-                        uni.hideLoading();
-                    });
-                }else {
-                    let mch_list = [{
-                        mch_id: 0,
-                        goods_list: [{
-                            id: item.goods_id,
-                            attr: item.goods_info.attr_str,
-                            num: item.goods_num,
-                            cat_id: 0,
-                            goods_attr_id: item.attr_id
-                        }],
-                        code: this.code,
-                        token: item.token,
-                    }];
-                    let url = `/pages/order-submit/order-submit?mch_list=${JSON.stringify(mch_list)}`;
-                    url += `&preview_url=${encodeURIComponent(this.$api.exchange.exchange_preview)}&submit_url=${encodeURIComponent(this.$api.exchange.exchange_submit)}&plugin=exchange`;
-                    uni.navigateTo({
-                        url: url
-                    })
-                }
-            },
-            toggle(e) {
-                for(let item of this.list) {
-                    if(item.token == e.item.token) {
-                        item.active = e.active;
-                        this.token = e.item.token
-                    }else {
-                        item.active = false;
-                    }
-                }
-                this.$forceUpdate();
-            },
-            submit() {
-                let that = this;
-                if(that.mode == 1 && !that.token) {
-                    uni.showToast({
-                        title: '请选择想要兑换的礼品',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                    return false
-                }
-                if(this.loading) {
-                    return false
-                }
-                this.loading = true;
-                uni.showLoading({
-                    mask: true,
-                    title: '领取中...'
-                });
-                that.$request({
-                    url: that.$api.exchange.unite,
-                    data: {
-                        code: this.code,
-                        token: this.token
-                    },
-                    method: 'post'
-                }).then(response=>{
-                    this.loading = false;
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        this.exchange = 1;
-                        this.mode = 0;
-                        this.getList();
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                that.$request({
-                    url: that.exchange == 1 ? that.$api.exchange.log_detail : that.$api.exchange.info,
-                    data: {
-                        code: that.code
-                    }
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    that.first = false;
-                    if(response.code == 0) {
-                        if(that.exchange == 0) {
-                            that.list = response.list.rewards;
-                            that.mode = response.list.mode;
-                            if(that.mode == 1) {
-                                for(let item of that.list) {
-                                    item.active = false;
-                                }
-                            }
-                        }else {
-                            that.r_raffled_at = response.data.codeModel.r_raffled_at
-                            that.list = response.data.rewards;
-                        }
-                    }else {
-                        if(that.exchange == 0) {
-                            that.msg = response.msg;
-                            that.other = '';
-                            if(response.msg == '该兑换码未到使用时间!') {
-                                that.other = response.data.valid_start_time + '-' + response.data.valid_end_time + ' 可用'
-                            }
-                            that.dialog = true;
-                        }else {
-                            uni.showToast({
-                                title: response.msg,
-                                icon: 'none',
-                                duration: 1000
-                            });
-                        }
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .dialog {
-        margin: 270rpx auto;
-        background-color: #fff;
-        border-radius: 16rpx;
-        width: 600rpx;
-        padding: 60rpx 0;
-        text-align: center;
-        .dialog-img {
-            width: 200rpx;
-            height: 200rpx;
-            margin: 0 auto 20rpx;
-        }
-        .dialog-msg {
-            font-size: 32rpx;
-            color: #353535;
-        }
-        .dialog-other {
-            font-size: 24rpx;
-            color: #999999;
-        }
-        .dialog-button {
-            font-size: 26rpx;
-            width: 520rpx;
-            height: 90rpx;
-            border-radius: 45rpx;
-            line-height: 90rpx;
-            text-align: center;
-            color: #fff;
-            margin: 50rpx auto 0;
-        }
-    }
-    .code-info {
-        width: 702rpx;
-        height: 240rpx;
-        border-radius: 16rpx;
-        background-size: 100% 100%;
-        margin: 24rpx;
-        text-align: center;
-        color: #fff;
-        font-size: 24rpx;
-        .code {
-            margin-top: 50rpx;
-            display: inline-block;
-            font-size: 38rpx;
-            text-align: center;
-            padding: 24rpx 95rpx;
-            border-radius: 60rpx;
-            color: #fff;
-            background-color: rgba(255,255,255,.2);
-            margin-bottom: 20rpx;
-        }
-    }
-    .rewards {
-        background-color: #fff;
-        border-radius: 16rpx;
-        width: 702rpx;
-        margin: 24rpx auto 0;
-        .rewards-top {
-            padding: 34rpx 40rpx;
-            &.active-item {
-                padding-left: 0;
-            }
-            .active {
-                width: 88rpx;
-                height: 140rpx;
-                text-align: center;
-                flex-shrink: 0;
-                image {
-                    width: 32rpx;
-                    height: 32rpx;
-                    margin-top: 54rpx;
-                    border-radius: 16rpx;
-                }
-                &.small {
-                    height: 36rpx;
-                    image {
-                        margin-top: 2rpx;
-                    }
-                }
-            }
-            .goods-num {
-                font-size: 28rpx;
-            }
-            .balance {
-                width: 100%;
-                .balance-info {
-                    width: 100%;
-                    image {
-                        width: 30rpx;
-                        height: 30rpx;
-                        margin-right: 14rpx;
-                    }
-                    .balance-name {
-                        font-size: 28rpx;
-                        color: #353535;
-                    }
-                }
-            }
-            .card {
-                width: 100%;
-                &.goods {
-                    .card-info {
-                        .card-name {
-                            margin-top: 0;
-                            margin-bottom: 10rpx;
-                        }
-                    }
-                }
-                .card-img {
-                    height: 140rpx;
-                    width: 140rpx;
-                    border-radius: 8rpx;
-                    margin-right: 20rpx;
-                    flex-shrink: 0;
-                }
-                .card-info {
-                    width: 100%;
-                    image {
-                        width: 30rpx;
-                        height: 30rpx;
-                        margin-right: 14rpx;
-                    }
-                    .attr {
-                        font-size: 24rpx;
-                        color: #999;
-                    }
-                    .card-name {
-                        margin-top: -5rpx;
-                        font-size: 28rpx;
-                        color: #353535;
-                        margin-bottom: 30rpx;
-                    }
-                    .card-number {
-                        padding: 12rpx 20rpx;
-                        font-size: 24rpx;
-                        border-radius: 30rpx;
-                    }
-                    .card-num {
-                        font-size: 28rpx;
-                    }
-                }
-            }
-        }
-        .rewards-bottom {
-            border-top: #{2rpx} solid #e2e2e2;
-            height: #{118rpx};
-            width: 100%;
-            padding: 0 #{30rpx};
-            .rewards-submit {
-                height: #{68rpx};
-                line-height: #{68rpx};
-                text-align: center;
-                padding: 0 #{30rpx};
-                border-radius: #{40rpx};
-                color: #fff;
-                font-size: #{28rpx};
-                &.over {
-                    background-color: #f7f7f7;
-                    color: #999999;
-                }
-            }
-            .rewards-detail {
-                height: #{68rpx};
-                line-height: #{68rpx};
-                text-align: center;
-                padding: 0 #{30rpx};
-                border-radius: #{40rpx};
-                background-color: #fff;
-                font-size: #{28rpx};
-                border: #{2rpx} solid;
-                margin-right: #{18rpx};
-            }
-        }
-    }
-    .placeholder {
-        height: #{178rpx};
-        width: 100%;
-    }
-
-    .apply {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        z-index: 2;
-        height: #{154rpx};
-        width: 100%;
-        background-color: #fff;
-        padding-top: #{26rpx};
-        padding-left: #{24rpx};
-        .apply-btn {
-            width: #{702rpx};
-            height: #{88rpx};
-            line-height: #{88rpx};
-            border-radius: #{44rpx};
-            text-align: center;
-            color: #fff;
-            font-size: #{32rpx};
-        }
-    }
-</style>

+ 0 - 292
src/plugins/exchange/gift/gift.vue

xqd
@@ -1,292 +0,0 @@
-<template>
-    <app-layout>
-        <scroll-view scroll-y :style="{'height':`${windowHeight}px`}">
-            <view class="app-goods" v-show="loading">
-                <view class="banner">
-                    <app-banner
-                        :videoUrl="goods.video_url"
-                        :picList="goods.pic_list"
-                        :goods_id="goods.id"
-                        :isCart="false"
-                        sign="exchange"
-                    ></app-banner>
-                </view>
-                <view class="other-info">
-                    <view class="t-omit-two goods-name">{{goods.name}}</view>
-                    <view class="code" :style="{'color': status == 'unused' ? getTheme.color : '#999999','background-color': status == 'unused' ? getTheme.background_o : '#f5f5f5'}">{{code}}</view>
-                    <view v-if="status == 'unused'" class="app-share">
-                        <app-form-id @click="shareShow = true">
-                            <image class="app-icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-share.png"></image>
-                            <text class="app-text">赠送</text>
-                        </app-form-id>
-                    </view>
-                </view>
-                <app-share-qr-code v-model="shareShow"
-                                   :url="url"
-                                   title="生成赠送海报"
-                                   :goods="goods"
-                                   @share="hShareAppMessage"
-                                   :theme="getTheme"
-                                   :has-poster-nav="false"
-                ></app-share-qr-code>
-                <!-- 商品详情 -->
-                <bd-detail :detail="goods.detail"></bd-detail>
-                <!-- 底部空格 -->
-                <view class="safe-area-inset-bottom">
-                    <view class="u-bottom-height"></view>
-                </view>
-                <!-- 底部按钮 -->
-                <view class="safe-area-inset-bottom u-bottom-fixed">
-                    <view class="buttons dir-left-nowrap">
-                        <view class="app-button main-center cross-center">
-                            <view @click="copy" v-if="status == 'unused'" class="app-exhange" :style="{'background': getTheme.background_s_gradient_o,'color': getTheme.secondary_text}">
-                                复制兑换码
-                            </view>
-                            <view @click="toExchange" v-if="status == 'unused'" class="app-exhange" :style="{'background': getTheme.background_gradient_o,'color': getTheme.main_text}">
-                                立即兑换
-                            </view>
-                            <view class="app-over" v-if="status != 'unused'">
-                                {{status == 'used' ? '已兑换': '已失效'}}
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </scroll-view>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appBanner from '../../../components/page-component/goods/app-goods-banner.vue';
-    import appShareQrCode from '../../../components/page-component/app-share-qr-code-poster/app-share-qr-code-poster.vue';
-    import bdDetail from '@/components/page-component/goods/bd-detail.vue';
-
-    export default {
-        name: 'goods',
-        data() {
-            return {
-                shareShow: false,
-                goods: {},
-                url: this.$api.exchange.qrcode,
-                show: false,
-                list: [],
-                code: null,
-                id: null,
-                status: '',
-                windowHeight: 667,
-                loading: false,
-                first: true,
-            }
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            that.code = options.code;
-            that.windowHeight = uni.getSystemInfoSync().windowHeight;
-            that.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            that.request({
-                url: that.$api.exchange.me_detail,
-                data: {
-                    code: that.code,
-                }
-            }).then(response => {
-                if(response) {
-                    that.first = false;
-                    let { goods_attr, code,status } = response;
-                    that.url = that.url + '&code=' + code;
-                    that.goods = goods_attr;
-                    that.code = code;
-                    that.status = status;
-                    that.loading = true;
-                    that.$hideLoading();
-                }
-            });
-        },
-        onShow() {
-            if(this.first) {
-                return false
-            }
-            this.$showLoading();
-            this.$nextTick(() => {
-                let that = this;
-                that.request({
-                    url: that.$api.exchange.me_detail,
-                    data: {
-                        code: that.code,
-                    }
-                }).then(response => {
-                    let { goods_attr, code,status } = response;
-                    that.goods = goods_attr;
-                    that.code = code;
-                    that.status = status;
-                    that.loading = true;
-                    that.$hideLoading();
-                });
-            })
-        },
-        computed: {
-            ...mapState('gConfig',{
-                iphone: (data) => {
-                    return data.iphone;
-                },
-                iphoneHeight: (state) =>{
-                    return  state.iphoneHeight;
-                },
-            }),
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                userInfo: state => state.user.info
-            })
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false) {
-                return this.$shareAppMessage({
-                    path: '/plugins/exchange/gift/gift',
-                    title: this.goods.app_share_title ? this.goods.app_share_title : this.goods.name,
-                    imageUrl: this.goods.app_share_pic ? this.goods.app_share_pic : '',
-                    params: {
-                        code: this.code,
-                    }
-                }, s);
-            },
-            copy() {
-                this.$utils.uniCopy({
-                    data: this.code,
-                    success() {
-                        //#ifndef MP-WEIXIN
-                        uni.showToast({title: '复制成功'});
-                        // #endif
-                    },
-                });
-            },
-            toExchange() {
-                uni.navigateTo({
-                    url: '/plugins/exchange/detail/detail?code=' + this.code
-                })
-            },
-            async request({url, data}) {
-                const response = await this.$request({
-                    url: url,
-                    data: data,
-                });
-                if (response.code === 0) {
-                    return response.data;
-                }else {
-                    uni.showModal({
-                        title: '提示',
-                        content: response.msg,
-                        showCancel: false,
-                        success: function (res) {
-                            uni.navigateBack();
-                        }
-                    });
-                }
-            }
-        },
-        components: {
-            'app-banner': appBanner,
-            'app-share-qr-code': appShareQrCode,
-            bdDetail
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .other-info {
-        background-color: #fff;
-        padding-top: 24rpx;
-        padding-bottom: 24rpx;
-        margin-bottom: 24rpx;
-        position: relative;
-        .goods-name {
-            font-size: #{32rpx};
-            color: #353535;
-            margin: 0 #{24rpx} #{50rpx};
-        }
-        .code {
-            margin-left: 24rpx;
-            display: inline-block;
-            padding: 16rpx 46rpx;
-            border-radius: 40rpx;
-            font-size: 32rpx;
-            font-weight: 600;
-            &.default {
-                background-color: #F5F5F5;
-                color: #999999;
-            }
-        }
-        .app-share {
-            width: #{40rpx};
-            height: #{102rpx};
-            position: absolute;
-            right: #{24rpx};
-            bottom: #{26rpx};
-            .app-icon {
-                width: #{40rpx};
-                height: #{40rpx};
-            }
-            .app-text {
-                color: #666666;
-                font-size: #{20rpx};
-                position: absolute;
-                top: #{50rpx};
-                left: 0;
-            }
-        }
-    }
-
-    .app-goods {
-        background-color: #f7f7f7;
-    }
-    .buttons {
-        width: #{750rpx};
-        height: #{110rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        .app-button {
-            width: 100%;
-            height: #{110rpx};
-            text-align: center;
-            line-height: #{110rpx};
-            background-color: #fff;
-            .app-over {
-                background: #e9e9e9;
-                width: #{702rpx};
-                border-radius: #{41rpx};
-                color: #999999;
-                height: #{82rpx};
-                line-height: #{82rpx};
-                font-size: #{28rpx};
-            }
-            .app-exhange {
-                margin: 0 10rpx;
-                width: 340rpx;
-                border-radius: 41rpx;
-                height: 82rpx;
-                line-height: 82rpx;
-                font-size: 28rpx;
-            }
-        }
-    }
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1602;
-        background-color: #ffffff;
-    }
-    .u-bottom-height {
-        height: 110upx;
-    }
-</style>

+ 0 - 460
src/plugins/exchange/goods/goods.vue

xqd
@@ -1,460 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="!goods" class="u-goods-detail"></view>
-        <view class="app-goods" v-show="loading" v-if="goods">
-            <app-banner
-                :videoUrl="goods.video_url"
-                :share="goods.share"
-                :picList="goods.pic_url"
-                :goods_id="goods_id"
-                :isCart="false"
-                sign="exchange"
-            ></app-banner>
-            <bd-info
-                :theme="getTheme"
-                :name="goods.name"
-                :is-negotiable="goods.is_negotiable"
-                :subtitle="goods.subtitle"
-                :level-show="goods.level_show"
-                :price="goods.price"
-                :original-price="goods.original_price"
-                :price-max="goods.price_max"
-                :price-min="goods.price_min"
-                :price-member-max="goods.price_member_max"
-                :price-member-min="goods.price_member_min"
-                :discount='discount'
-                :is-vip-card-user="is_vip_card_user"
-                :sales="goods.sales"
-                :unit="goods.unit"
-                :is-sales="goods.is_sales"
-                :is-vip="is_vip"
-                :flash-sale="flash_sale"
-                :goods-id="goods.id"
-                :extra-quick-share="goods.extra_quick_share"
-                :app-share-pic="goods.app_share_pic"
-                :app-share-title="goods.app_share_title"
-                :poster-config="posterConfig"
-                :poster-generate="posterGenerate"
-                :has-poster-nav="true"
-                v-bind:goods="goods"
-                :share-url="url"
-                :has-underline-price="false"
-                @share="hShareAppMessage"
-				:min-number="0"
-				:limit-buy="goods.limit_buy"
-            >
-            </bd-info>
-            <bd-coupon v-if="goods.goods_coupon_center" @change="setCoupon" :theme="getTheme" :coupons="goods.goods_coupon_center"></bd-coupon>
-            <bd-xbc
-                v-if="goods"
-                :coAttr="false"
-                :guarantee-title="goods.guarantee_title"
-                :guarantee-pic="goods.guarantee_pic"
-                :param_content="goods.param_content"
-                :param_name="goods.param_name"
-                :services="goods.services"
-            ></bd-xbc>
-            <!--商品信息-->
-            <bd-hc
-                v-if="goods.goods_marketing_award"
-                :integral="goods.goods_marketing_award.integral"
-                :coupon="goods.goods_marketing_award.coupon"
-                :card="goods.goods_marketing_award.card"
-                :balance="goods.goods_marketing_award.balance"
-                :theme="getTheme"
-            ></bd-hc>
-            <bd-comments v-if="goods_id > 0" :goods-id="goods_id"></bd-comments>
-            <bd-detail :detail="goods.detail"></bd-detail>
-            <!-- 底部空格 -->
-            <view class="safe-area-inset-bottom">
-                <view :class="[uBottomHeight]"></view>
-            </view>
-            <!-- 底部按钮 -->
-            <view v-if="is_open" class="safe-area-inset-bottom u-bottom-fixed">
-                <view v-if="full_reduce">
-                    <app-goods-full-reduce
-                        :theme="getTheme"
-                        :full_reduce="full_reduce"
-                    >
-                    </app-goods-full-reduce>
-                </view>
-				<view v-if="goods.sell_time > 0">
-					<app-sell-tip :time="goods.sell_time" @changeTime="changeTime"></app-sell-tip>
-				</view>
-				<app-jump-button form>
-                <view  class="buttons dir-left-nowrap">
-                    <view class="app-button main-center cross-center">
-                        <view @click="toExchange" v-if="goods.goods_num > 0 && !goods.is_finish_sell" class="app-exhange" :style="{'background': !goods || goods.buy_goods_auth ? getTheme.background_gradient_btn : '#999999'}">
-                            {{rightRemindText}}
-                        </view>
-                        <view class="app-over" :class="[disableBtn]" v-else>
-                            {{disableBtnText}}
-                        </view>
-                    </view>
-                </view>
-				</app-jump-button>
-            </view>
-        </view>
-        <app-close v-if="showClose" :modal="false" @update="getMall"></app-close>
-    </app-layout>
-</template>
-
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appBanner from '../../../components/page-component/goods/app-goods-banner.vue';
-    import appGoodsFullReduce from '../../../components/page-component/goods/app-goods-full-reduce.vue';
-    import appClose from '@/components/basic-component/app-close/app-close.vue';
-    import bdInfo from '@/components/page-component/goods/bd-info';
-    import bdCoupon from '@/components/page-component/goods/bd-coupon.vue';
-    import bdXbc from '@/components/page-component/goods/bd-xbc.vue';
-    import bdKb from '@/components/page-component/goods/bd-kb.vue';
-    import bdHc from '@/components/page-component/goods/bd-hc.vue';
-    import bdDetail from '@/components/page-component/goods/bd-detail.vue';
-    import bdComments from '@/components/page-component/goods/bd-comments.vue';
-    import appSellTip from '@/components/page-component/goods/app-sell-tip.vue';
-	import goodsMixin from '@/core/goods-mixin.js';
-
-    export default {
-        name: 'goods',
-		mixins: [goodsMixin],
-        data() {
-            return {
-                showClose: false,
-                is_open: false,
-                goods: {
-                    id: '',
-                    name: '',
-                    cover_pic: '',
-                    price: '',
-                },
-                posterConfig: this.$api.exchange.poster_config,
-                posterGenerate: this.$api.exchange.poster_generate,
-                url: '',
-                is_vip: false,
-                is_vip_card_user: 0,
-                show: false,
-                list: [],
-                goods_id: -1,
-                loading: false,
-                first: true,
-                discount: null,
-                flash_sale: null,
-                full_reduce: null,
-				disable: 'disable',
-            }
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-                menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-            this.goods_id = +options.goods_id;
-            this.posterConfig = this.posterConfig + '&goods_id=' + this.goods_id;
-            this.posterGenerate = this.posterGenerate + '&goods_id=' + this.goods_id;
-            this.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            this.request({
-                url: this.$api.exchange.detail,
-                data: {
-                    id: this.goods_id,
-                }
-            }).then(response => {
-                if(response) {
-                    this.first = false;
-                    let { goods } = response;
-                    this.goods = goods;
-                    this.loading = true;
-                    this.url = `${this.$api.goods.poster}&goods_id=${this.goods.id}`;
-                    if(this.goods.vip_card_appoint.discount) {
-                        this.is_vip = true;
-                        this.discount = this.goods.vip_card_appoint.discount
-                    }
-                    this.full_reduce = goods.goods_activity.full_reduce;
-                    this.flash_sale = this.goods.plugin_extra.flash_sale;
-                    this.is_vip_card_user = this.goods.vip_card_appoint.is_vip_card_user;
-                    // #ifdef H5
-                    this.hShareAppMessage();
-                    // #endif
-                    this.$hideLoading();
-                }
-            });
-        },
-        onShow() {
-            this.showClose = false;
-            setTimeout(()=>{
-                this.showClose = true;
-            })
-            if(this.first) {
-                return false
-            }
-            this.$showLoading();
-            this.$nextTick(() => {
-                this.request({
-                    url: this.$api.exchange.detail,
-                    data: {
-                        id: this.goods_id,
-                    }
-                }).then(response => {
-                    let { goods } = response;
-                    this.goods = goods;
-                    this.loading = true;
-                    this.full_reduce = goods.goods_activity.full_reduce;
-                    this.url = `${this.$api.goods.poster}&goods_id=${this.goods.id}`;
-                    if(this.goods.vip_card_appoint.discount) {
-                        this.is_vip = true;
-                        this.discount = this.goods.vip_card_appoint.discount
-                    }
-                    this.flash_sale = this.goods.plugin_extra.flash_sale;
-                    this.is_vip_card_user = this.goods.vip_card_appoint.is_vip_card_user;
-                    this.$hideLoading();
-                });
-            })
-        },
-        computed: {
-            ...mapState('gConfig',{
-                iphone: (data) => {
-                    return data.iphone;
-                },
-                iphoneHeight: (state) =>{
-                    return  state.iphoneHeight;
-                },
-            }),
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme',
-            }),
-            ...mapState({
-                mall: state => state.mallConfig.mall,
-                userInfo: state => state.user.info,
-				isTip: state => state.mallConfig.mall.setting.is_remind_sell_time
-            }),
-            themeObject:function() {
-                return {
-                    back: this.getTheme + '-m-back ' + this.getTheme,
-                    backO: this.getTheme + '-m-back-o ' + this.getTheme,
-                    theme: this.getTheme,
-                    color: this.getTheme + '-m-text ' + this.getTheme,
-                    sBack: this.getTheme + '-s-back ' + this.getTheme
-                }
-            },
-			buyBtn() {
-				if (!this.goods || this.goods.buy_goods_auth) {
-					return this.getTheme + '-m-gradient-o ' + this.getTheme
-				} else {
-					return this.disable + '-m-back ' + this.disable;
-				}
-			},
-			uBottomHeight() {
-				if (this.full_reduce && this.goods.sell_time > 0) {
-					return 'u-bottom-height-2';
-				} else if (this.full_reduce || this.goods.sell_time > 0) {
-					return 'u-bottom-height-1';
-				} else {
-					return 'u-bottom-height-0';
-				}
-			},
-			leftTip() {
-				let leftTip = '';
-				if (!(this.isTip == 0 && this.goods.sell_time > 0)) {
-					leftTip = 'bd-btn-left bd-btn-half';
-				} else {
-					leftTip = 'box-grow-1';
-				}
-				return this.goods && this.goods.type === 'goods' ? leftTip : '';
-			},
-			disableBtn() {
-				if (this.goods.is_finish_sell || this.goods.sell_time > 0) {
-					return 'btn-finish-sell';
-				} else {
-					return 'bd-oversell-btn';
-				}
-			},
-			disableBtnText() {
-				if (this.goods.is_finish_sell) {
-					return '商品已下架';
-				} else if (this.goods.sell_time > 0) {
-					return '商品未开售';
-				} else {
-					return '已售罄';
-				}
-			},
-			remindParams() {
-				return {
-					sell_time: this.goods.sell_time,
-					goods_id: this.goods.id,
-					template_message_list: this.goods.template_message_list,
-					buy_text: '立即购买'
-				};
-			},
-        },
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-            // 分享朋友圈beta
-            return this.$shareTimeline({
-                title: this.goods.app_share_title ? this.goods.app_share_title : this.goods.name,
-                imageUrl: this.goods.pic_url[0].pic_url,
-                query: {
-                    goods_id: this.goods.id
-                }
-            });
-        },
-        // #endif
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false){
-                return this.$shareAppMessage({
-                    path: '/plugins/exchange/goods/goods',
-                    title: this.goods.app_share_title ? this.goods.app_share_title : this.goods.name,
-                    imageUrl: this.goods.app_share_pic ? this.goods.app_share_pic : this.goods.pic_url[0].pic_url,
-                    desc: this.goods.subtitle,
-                    params: {
-                        goods_id: this.goods.id,
-                    }
-                },s);
-            },
-            getMall(e) {
-                this.is_open = e.is_open == 1 ? true : false;
-            },
-            toExchange() {
-				if (!this.goods.buy_goods_auth) {
-					this.$tips.showToast({
-						title: '您暂无权限购买该商品',
-						icon: 'none'
-					});
-					return;
-				}
-				if (this.goods.sell_time > 0) {
-					this.rightTip();
-					return ;
-				}
-				if (typeof this.goods.limit_buy !== 'undefined' && this.goods.limit_buy.status == 1 && this.goods.limit_buy.rest_number < 1) {
-                    this.$tips.showToast({
-                        title: this.goods.limit_buy.text,
-                        icon: 'none'
-                    });
-					return false;
-				}
-                let attr = [];
-                for (let i in this.goods.attr[0].attr_list) {
-                    attr.push({
-                        attr_id: this.goods.attr[0].attr_list[i].attr_id,
-                        attr_group_id: this.goods.attr[0].attr_list[i].attr_group_id
-                    });
-                }
-                let mch_list = [{
-                    mch_id: 0,
-                    goods_list: [{
-                        id: this.goods.id,
-                        attr: attr,
-                        num: 1,
-                        cat_id: 0,
-                        goods_attr_id: this.goods.attr[0].id
-                    }]
-                }];
-                let url = `/pages/order-submit/order-submit?mch_list=${JSON.stringify(mch_list)}`;
-                url += `&preview_url=${encodeURIComponent(this.$api.exchange.order_preview)}&submit_url=${encodeURIComponent(this.$api.exchange.order_submit)}&plugin=exchange`;
-                uni.navigateTo({
-                    url: url
-                })
-            },
-            async request({url, data}) {
-                const response = await this.$request({
-                    url: url,
-                    data: data,
-                });
-                if (response.code === 0) {
-                    return response.data;
-                }else {
-                    uni.showModal({
-                        title: '提示',
-                        content: response.msg,
-                        showCancel: false,
-                        success: function (res) {
-                            uni.navigateBack();
-                        }
-                    });
-                }
-            },
-            setCoupon(index) {
-                this.$set(this.goods.goods_coupon_center[index], 'is_receive', 1);
-            },
-			changeTime(time) {
-				this.goods.sell_time = time;
-			},
-        },
-        components: {
-            'app-banner': appBanner,
-            appClose,
-            appGoodsFullReduce,
-            bdInfo,
-            bdCoupon,
-            bdXbc,
-            bdKb,
-            bdHc,
-            bdDetail,
-            bdComments,
-			appSellTip
-        }
-    }
-</script>
-
-<style lang="scss">
-    .buttons {
-        width: #{750rpx};
-        height: #{110rpx};
-        border-top: #{1rpx} solid #e2e2e2;
-        .app-button {
-            width: 100%;
-            height: #{110rpx};
-            text-align: center;
-            line-height: #{110rpx};
-            background-color: #fff;
-            .app-exhange {
-                width: #{702rpx};
-                color: #fff;
-                border-radius: #{41rpx};
-                height: #{82rpx};
-                line-height: #{82rpx};
-                font-size: #{28rpx};
-            }
-            .app-over {
-                width: #{702rpx};
-                border-radius: #{41rpx};
-                height: #{82rpx};
-                line-height: #{82rpx};
-                font-size: #{28rpx};
-            }
-			.bd-oversell-btn {
-				background: #e9e9e9;
-                color: #999999;
-			}
-			.btn-finish-sell {
-				background: linear-gradient(to right, rgba(153, 153, 153, 1), rgba(153, 153, 153, 0.7)) ;
-				color: #ffffff;
-			}
-        }
-    }
-    .u-bottom-height-0 {
-        height: 110upx;
-    }
-    .u-bottom-height-1 {
-        height: 190upx;
-    }
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1602;
-        background-color: #ffffff;
-    }
-    .u-bottom-height-2 {
-        height: 270upx;
-    }
-</style>

BIN
src/plugins/exchange/image/balance.png


BIN
src/plugins/exchange/image/card.png


BIN
src/plugins/exchange/image/coupon.png


BIN
src/plugins/exchange/image/error.png


BIN
src/plugins/exchange/image/point.png


BIN
src/plugins/exchange/image/scan.png


BIN
src/plugins/exchange/image/svip.png


+ 0 - 681
src/plugins/exchange/index/index.vue

xqd
@@ -1,681 +0,0 @@
-<template>
-    <app-layout>
-        <app-tab-nav :setTop="0" :border="false" :shadow="false" :height="100" :tabList="tabList" :padding="0" :activeItem="activeTab" @click="tabStatus" :theme="getTheme"></app-tab-nav>
-        <view v-if="activeTab == '0'" class="scan">
-            <view>输入兑换码或者扫码兑换二维码开始兑换</view>
-            <view class="scan-input">
-                <input @focus="hiddenBottom=false" @blur="hiddenBottom=true" placeholder="请输入兑换码" v-model="code" type="text">
-                <image v-if="!is_not_wechat" @click="scan" src="./../image/scan.png"></image>
-            </view>
-            <view @click="clerk" class="scan-button" :style="{'background-color': code.length > 0 ? getTheme.background : '#d6d6d6','color' : code.length > 0 ? '#fff' : '#b2b2b2'}">兑换</view>
-        </view>
-        <view v-if="activeTab == '1'">
-            <view v-if="list.length > 0" class="item" v-for="(item,index) in list" :key="index">
-                <view class="main-between cross-center status">
-                    <view class="item-code" :style="{'background-color': item.status == 2 ? getTheme.background_o : '#F5F5F5','color' : item.status == 2 ? getTheme.color : '#999999'}">{{item.code}}</view>
-                    <view @click="toDetail(item)" class="dir-left-nowrap cross-center item-status" :style="{'color': item.status == 2 ? getTheme.color : '#999999'}">
-                        <view>{{item.status == 2 ? item.last_num + '项待领取' : '已全部领取'}}</view>
-                        <i v-if="item.status == 2" :style="{'color': getTheme.color}" class="iconfont icon-right">&#xe7eb;</i>
-                        <image v-else src="https://shop.9026.com/web/statics/image/mall/static/icon/right.png"></image>
-                    </view>
-                </view>
-                <view class="item-time">兑换时间:{{item.r_raffled_at}}</view>
-            </view>
-            <view style="padding-top: 30%" v-if="list.length == 0">
-                <app-no-goods title="暂无兑换记录" :is_image="1" background="#f7f7f7"></app-no-goods>
-            </view>
-        </view>
-        <view @click="showRule" class="use-info" :style="{'color': getTheme.color}" :class="[`${tabbarbool? 'tabbarbool':''}`]" v-if="setting.is_rules == 1 && activeTab == '0' && hiddenBottom">使用说明</view>
-        <u-mask :show="dialog" :maskClickAble="false" :zoom="false">
-            <view class="dialog">
-                <image class="dialog-img" src="./../image/error.png"></image>
-                <view class="dialog-msg">
-                    <text>{{msg}}</text>
-                </view>
-                <view class="dialog-other">{{other}}</view>
-                <view @click="dialog=false;code=''" :style="{'background-color': getTheme.background}" class="dialog-button">我知道了</view>
-            </view>
-        </u-mask>
-        <view v-if="showRules" class="dialog-bg">
-            <view class="u-rules" :animation="animationData" :style="{bottom: bottom}" :class="[`${tabbarbool? 'tabbarbool':''}`,`${iphone_x? 'iphone_x':''}`]">
-                <view class="u-rules-top dir-right-nowrap">
-                    <view v-if="over" @click="showRules=false;bottom='-998rpx';animationData={}" class="end-close main-center cross-center">
-                        <image src="https://shop.9026.com/web/statics/image/mall/static/icon/icon-close.png"></image>
-                    </view>
-                </view>
-
-                <view class="u-rules-content">
-                    <parse :content="setting.rules"></parse>
-                </view>
-            </view>
-        </view>
-        <view @click="toGift" v-if="setting.is_to_gift == 1 && hiddenBottom" class="jump-dialog cross-center dir-top-nowrap main-center" :class="[`${tabbarbool? 'tabbarbool':''}`]">
-            <image :src="setting.to_gift_pic"></image>
-            <view>礼品卡</view>
-        </view>
-    </app-layout>
-</template>
-<script>
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-    import uMask from '../../../components/basic-component/u-mask/u-mask.vue';
-    import parse from "../../../components/basic-component/app-rich/parse.vue";
-    import appNoGoods from '../../../components/page-component/app-no-goods/app-no-goods.vue';
-    import { mapState, mapGetters } from "vuex";
-
-    export default {
-        name: "index",
-        data() {
-            return {
-                currentRoute: this.$platDiff.route(),
-                tabbarbool: false,
-                iphone_x: false,
-                tabList: [
-                    {id:0, name: '兑换礼品'},
-                    {id:1, name: '兑换记录'}
-                ],
-                over: false,
-                hiddenBottom: true,
-                code: '',
-                bottom: '-998rpx',
-                activeTab: '0',
-                list: [],
-                setting: {},
-                animationData: {},
-                showRules: false,
-                dialog: false,
-                more: false,
-                loading: false,
-                is_not_wechat: false,
-                msg: '',
-                other: '',
-                page: 1,
-            };
-        },
-        watch: {
-            tabBarNavs: {
-                handler: function() {
-                    this.b();
-                },
-                immediate: true,
-            }
-        },
-        components: {
-            "app-tab-nav": appTabNav,
-            parse,
-            "app-no-goods": appNoGoods,
-            "u-mask": uMask
-        },
-        computed: {
-            ...mapState({
-                tabBarNavs: state => state.mallConfig.navbar.navs,
-            }),
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme'
-            })
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                title: this.$children[0].navigationBarTitle,
-                path: "/plugins/exchange/index/index",
-            });
-        },
-        // #endif
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-          // 分享朋友圈beta
-          return this.$shareTimeline({
-            title: this.$children[0].navigationBarTitle,
-            query: {} // 此处填写页面的参数
-          });
-        },
-        // #endif
-        onReachBottom() {
-            if(this.more) {
-                this.page++;
-                this.getMore();
-            }
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            let that = this;
-            // #ifdef H5
-            this.is_not_wechat = !this.$jwx.isWechat();
-            // #endif
-            if(options.code) {
-                that.code = options.code
-            }
-            if(options.token && options.library_id && options.created_at) {
-                that.getActive(options.token, options.library_id, options.created_at)
-            }
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-              menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-            uni.getSystemInfo({
-                success: function (res) {
-                    that.height = -res.screenHeight;
-                    if(res.model.indexOf('iPhone X') > -1 || res.model.indexOf('iPhone 11') > -1 || res.model.indexOf('iPhone11') > -1 || res.model.indexOf('iPhone12') > -1 || res.model.indexOf('Unknown Device') > -1) {
-                        that.iphone_x = true;
-                    }
-                }
-            });
-            that.$request({
-                url: that.$api.exchange.setting,
-            }).then(response=>{
-                if(response.code == 0) {
-                    that.setting = response.data;
-                }else {
-                    uni.showToast({
-                        title: response.msg,
-                        icon: 'none',
-                        duration: 1000
-                    });
-                }
-            })
-        },
-        onShow() {
-            if(this.activeTab == '1') {
-                this.getList();
-            }
-        },
-        methods: {
-            getActive(token, library_id, created_at) {
-                let that = this;
-                uni.showLoading({
-                    mask: true,
-                    title: '获取兑换码...'
-                });
-                that.$request({
-                    url: that.$api.exchange.code,
-                    data: {
-                        token: token,
-                        library_id: library_id,
-                        created_at: created_at,
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    this.loading = false;
-                    if(response.code == 0) {
-                        this.code = response.data.code
-                    }else {
-                        this.msg = response.msg;
-                        this.other = '';
-                        this.dialog = true;
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-            },
-            b() {
-                // #ifndef H5
-                let currentRoute = this.currentRoute;
-                for (let i = 0; i < this.tabBarNavs.length; i++) {
-                    if(currentRoute.includes(this.tabBarNavs[i].url.split('?')[0])) {
-                        return this.tabbarbool = true;
-                    }
-                }
-                // #endif
-                return  this.tabbarbool = false;
-            },
-            showRule() {
-                let that = this;
-                that.over = false;
-                that.showRules = true;
-                var animation = uni.createAnimation({
-                    duration: 1000,
-                    timingFunction: 'ease',
-                })
-                that.animationData = animation
-                setTimeout(function(){
-                    let num = 0;
-                    if(that.tabbarbool) {
-                        num += 55
-                    }
-                    animation.bottom(-500).bottom(num).step()
-                    that.animationData = animation.export();
-                    setTimeout(function(){
-                        that.bottom = num *2 + 'rpx';
-                        that.over = true;
-                    },1200)
-                },200)
-            },
-            scan() {
-                let that = this;
-                // #ifndef MP-ALIPAY || H5
-                uni.scanCode({
-                    success(res) {
-                        if(res.scanType == "CODE_128" || (res.result && res.result.length == 12)) {
-                            that.code = res.result
-                        } else {
-                            if(res.path) {
-                                uni.showLoading({
-                                    mask: true,
-                                    title: '获取兑换码...'
-                                });
-                                let path = res.path
-                                path = path.split('?');
-                                let scene = path[1];
-                                let reg = new RegExp("scene=", "g");
-                                scene = path[1].replace(reg, "");
-                                that.$request({
-                                    url: that.$api.default.qrcode_parameter,
-                                    data: {
-                                        token: scene
-                                    }
-                                }).then(response => {
-                                    if (response.code === 0) {
-                                        if(response.data.detail && response.data.detail.data.type == 'auto') {
-                                            that.getActive(response.data.detail.data.token, response.data.detail.data.library_id, response.data.detail.data.created_at)
-                                        }else {
-                                            uni.hideLoading();
-                                            uni.showToast({
-                                                title: '未获取到兑换码',
-                                                icon: 'none',
-                                                duration: 1000
-                                            });
-                                            that.code = response.data.detail.data.code;
-                                        }
-                                    }
-                                });
-                            }else {
-                                uni.showToast({
-                                    title: '暂不支持此二维码,请使用应用内扫一扫功能',
-                                    icon: 'none',
-                                    duration: 1000
-                                });
-                            }
-                        }
-                    }
-                })
-                // #endif
-                // #ifdef MP-ALIPAY
-                my.ap.navigateToAlipayPage({
-                    appCode:'alipayScan',
-                    success:(res) => {
-                    },
-                    fail:(res) => {
-                        my.alert({content:'失败:'+JSON.stringify(res)});
-                    }
-                });
-                // #endif
-                // #ifdef H5
-                if (this.$jwx.isWechat()) {
-                    this.$jwx.scanQRCode({
-                        success(res) {
-                            if(res.resultStr) {
-                                if(res.resultStr.indexOf(',') > 0){
-                                 //条形码时返回的格式类似为【code128,123456789】      
-                                     var dealserialNumber=res.resultStr.split(',')[1];          
-                                     dealserialNumber = dealserialNumber.replace(/[^a-z\d]/ig, "");//处理条形码扫描的字符
-                                     that.code = dealserialNumber;//扫描结果传递到的处理页面
-                                }else{
-                                    //二维码时
-                                    location.href=res.resultStr;//扫描结果传递到的处理页面
-                                }
-                            }else if(res.scanType == "CODE_128" || (res.result && res.result.length == 12)) {
-                                that.code = res.result
-                            } else {
-                                if(res.path) {
-                                    uni.showLoading({
-                                        mask: true,
-                                        title: '获取兑换码...'
-                                    });
-                                    let path = res.path
-                                    path = path.split('?');
-                                    let scene = path[1];
-                                    let reg = new RegExp("scene=", "g");
-                                    scene = path[1].replace(reg, "");
-                                    that.$request({
-                                        url: that.$api.default.qrcode_parameter,
-                                        data: {
-                                            token: scene
-                                        }
-                                    }).then(response => {
-                                        if (response.code === 0) {
-                                            if(response.data.detail.data.type == 'auto') {
-                                                that.getActive(response.data.detail.data.token, response.data.detail.data.library_id, response.data.detail.data.created_at)
-                                            }else {
-                                                uni.hideLoading();
-                                                that.code = response.data.detail.data.code;
-                                            }
-                                        }
-                                    });
-                                }else {
-                                    uni.showToast({
-                                        title: '暂不支持此二维码,请使用应用内扫一扫功能',
-                                        icon: 'none',
-                                        duration: 1000
-                                    });
-                                }
-                            }
-                        }
-                    })
-                }else {
-                    uni.showToast({
-                        title: '暂不支持浏览器点击扫码,请应用扫一扫功能',
-                        icon: 'none',
-                        duration: 1000
-                    });
-                }
-                // #endif
-            },
-            tabStatus(e) {
-                if(this.loading) {
-                    return false
-                }
-                this.list = [];
-                this.page = 1;
-                this.activeTab = e.currentTarget.dataset.id;
-                this.getList();
-            },
-            getMore() {
-                let that = this;
-                if(this.loading) {
-                    return false
-                }
-                this.loading = true;
-                that.more = false;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.exchange.log,
-                    data: {
-                        page: that.page
-                    }
-                }).then(response=>{
-                    uni.hideLoading();
-                    this.loading = false;
-                    if(response.code == 0) {
-                        that.list = that.list.concat(response.data.list);
-                        if(that.list.length == response.data.pagination.pageSize) {
-                            that.more = true;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-            },
-            getList() {
-                let that = this;
-                if(this.loading) {
-                    return false
-                }
-                this.loading = true;
-                that.page = 1;
-                that.more = false;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                that.$request({
-                    url: that.$api.exchange.log
-                }).then(response=>{
-                    this.loading = false;
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                        if(that.list.length == response.data.pagination.pageSize) {
-                            that.more = true;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-            },
-            toDetail(item) {
-                uni.navigateTo({
-                    url: '/plugins/exchange/detail/detail?code=' + item.code + '&exchange=1'
-                })
-            },
-            toGift() {
-                uni.navigateTo({
-                    url: '/plugins/exchange/list/list'
-                })
-            },
-            clerk() {
-                let that = this;
-                if(this.loading || !this.code) {
-                    return false
-                }
-                uni.showLoading({
-                    mask: true,
-                    title: '兑换中...'
-                });
-                this.loading = true;
-                let code = this.code;
-                that.$request({
-                    url: that.$api.exchange.info,
-                    data: {
-                        code: code
-                    }
-                }).then(response=>{
-                    this.loading = false;
-                    uni.hideLoading();
-                    if(response.code == 0) {
-                        this.code = '';
-                        uni.navigateTo({
-                            url: '/plugins/exchange/detail/detail?code=' + code
-                        })
-                    }else {
-                        this.msg = response.msg;
-                        this.other = '';
-                        if(response.msg == '该兑换码未到使用时间!') {
-                            this.other = response.data.valid_start_time + '-' + response.data.valid_end_time + ' 可用'
-                        }
-                        this.dialog = true;
-                    }
-                }).catch(response => {
-                    uni.hideLoading();
-                });
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .dialog-bg {
-        position: fixed;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: rgba(0,0,0,.3);
-        z-index: 101;
-    }
-    .jump-dialog {
-        position: fixed;
-        bottom: 120rpx;
-        right: 24rpx;
-        width: 100rpx;
-        height: 100rpx;
-        border-radius: 50%;
-        background-color: rgba(0,0,0,.3);
-        font-size: 16rpx;
-        color: #fff;
-        z-index: 100;
-        &.tabbarbool {
-            bottom: 240rpx;
-        }
-        image {
-            width: 54rpx;
-            height: 54rpx;
-            margin-bottom: 3rpx;
-            display: block;
-        }
-    }
-    .use-info {
-        position: fixed;
-        bottom: 64rpx;
-        text-align: center;
-        font-size: 28rpx;
-        width: 200rpx;
-        margin: 0 auto;
-        left: 0;
-        right: 0;
-        &.tabbarbool {
-            bottom: 204rpx;
-        }
-    }
-    .scan {
-        position: absolute;
-        top: 0;
-        left: 0;
-        width: 100%;
-        height: 100%;
-        background-color: #fff;
-        text-align: center;
-        padding-top: 184rpx;
-        font-size: 28rpx;
-        color: #353535;
-        .scan-input {
-            height: 94rpx;
-            width: 580rpx;
-            margin: 40rpx auto;
-            background-color: #f9f9f9;
-            border: 2rpx solid #e2e2e2;
-                border-radius: 16rpx;
-            position: relative;
-            box-shadow: 1rpx 1rpx 4rpx 4rpx #f5f5f5;
-            input {
-                border-radius: 16rpx;
-                width: 100%;
-                height: 100%;
-                padding: 10rpx 80rpx 10rpx 20rpx;
-                text-align: left;
-            }
-            image {
-                width: 48rpx;
-                height: 44rpx;
-                position: absolute;
-                right: 24rpx;
-                top: 23rpx;
-                z-index: 2
-            }
-        }
-        .scan-button {
-            height: 300rpx;
-            width: 300rpx;
-            border-radius: 50%;
-            text-align: center;
-            line-height: 300rpx;
-            box-shadow: 2rpx 2rpx 8rpx 8rpx #f3f3f3;
-            margin: 112rpx auto;
-            font-size: 42rpx;
-            font-weight: 600;
-            color: #fff;
-        }
-    }
-    .item {
-        margin: 24rpx 24rpx 0;
-        background-color: #fff;
-        border-radius: 16rpx;
-        .status {
-            padding: 28rpx 30rpx;
-            border-bottom: 2rpx solid #e2e2e2;
-
-            .item-code {
-                padding: 16rpx 30rpx;
-                border-radius: 40rpx;
-                font-size: 28rpx;
-                font-weight: 600;
-            }
-            .item-status {
-                font-size: 28rpx;
-                view:first-of-type {
-                    margin-right: 16rpx;
-                }
-                image {
-                    height: 22rpx;
-                    width: 14rpx;
-                    display: block;
-                }
-            }
-        }
-        .item-time {
-            height: 72rpx;
-            line-height: 72rpx;
-            font-size: 28rpx;
-            color: #666666;
-            padding: 0 30rpx;
-        }
-    }
-    .dialog {
-        margin: 270rpx auto;
-        background-color: #fff;
-        border-radius: 16rpx;
-        width: 600rpx;
-        padding: 60rpx 0;
-        text-align: center;
-        .dialog-img {
-            width: 200rpx;
-            height: 200rpx;
-            margin: 0 auto 20rpx;
-        }
-        .dialog-msg {
-            font-size: 32rpx;
-            color: #353535;
-        }
-        .dialog-other {
-            font-size: 24rpx;
-            color: #999999;
-        }
-        .dialog-button {
-            font-size: 26rpx;
-            width: 520rpx;
-            height: 90rpx;
-            border-radius: 45rpx;
-            line-height: 90rpx;
-            text-align: center;
-            color: #fff;
-            margin: 50rpx auto 0;
-        }
-    }
-    .u-rules {
-        border-top-left-radius: 16rpx;
-        border-top-right-radius: 16rpx;
-        width: 100%;
-        position: fixed;
-        z-index: 1005;
-        left: 0;
-        background-color: #fff;
-        &.iphone_x.tabbarbool {
-            padding-bottom: 50rpx;
-        }
-        .u-rules-top {
-            border-top-left-radius: 16rpx;
-            border-top-right-radius: 16rpx;
-            background-color: #fff;
-            height: 80rpx;
-            .end-close {
-                width: 80rpx;
-                height: 80rpx;
-                padding: 25rpx;
-                image {
-                    width: 30rpx;
-                    height: 30rpx;
-                }
-            }
-        }
-        .u-rules-content {
-            padding: 0 20rpx;
-            min-height: 160rpx;
-            max-height: 918rpx;
-            overflow: auto;
-        }
-    }
-</style>

+ 0 - 344
src/plugins/exchange/list/list.vue

xqd
@@ -1,344 +0,0 @@
-<template>
-    <app-layout>
-        <app-tab-nav :setTop="0" :border="false" :shadow="false" :height="100" :tabList="tabList" :padding="0" :activeItem="activeTab" @click="tabStatus" :theme="getTheme"></app-tab-nav>
-        <view v-if="activeTab == '0'" class="goods dir-left-wrap">
-            <view style="width: 100%" v-if="list.length > 0">
-                <app-product-list sign="exchange" :theme="getTheme" @routeGo="jump" :listStyle="listStyle" :goods_list="list"></app-product-list>
-            </view>
-            <view style="padding-top: 30%;width: 100%;" v-if="list.length == 0">
-                <app-no-goods title="暂无可购买的礼品卡" background="#f7f7f7"></app-no-goods>
-            </view>
-        </view>
-        <view v-if="activeTab == '1'">
-            <view class="item" v-for="(item,index) in list" :key="index">
-                <view class="dir-left-nowrap cross-center status">
-                    <view class="item-cover">
-                        <app-image :img-src="item.cover_pic" width="140rpx" height="140rpx"
-                                   :border-radius="`8rpx 8rpx 0 0`"></app-image>
-                    </view>
-                    <view class="t-omit-two item-name">{{item.name}}</view>
-                </view>
-                <view class="item-time main-between cross-center">
-                    <view>购买时间:{{item.created_at}}</view>
-                    <view v-if="item.status == 'unused'" @click="apply(item)" :style="{'background-color': getTheme.background}" class="rewards-submit">立即使用</view>
-                    <view v-else-if="item.status == 'used'" @click="apply(item)" class="rewards-submit over">已使用</view>
-                    <view @click="apply(item)" v-else class="rewards-submit over">已失效</view>
-                </view>
-            </view>
-            <view style="padding-top: 30%" v-if="list.length == 0">
-                <app-no-goods title="暂无已获得的礼品卡" background="#f7f7f7"></app-no-goods>
-            </view>
-        </view>
-        <view @click="toIndex" v-if="setting.is_to_exchange == 1" class="jump-dialog cross-center dir-top-nowrap main-center" :class="[`${tabbarbool? 'tabbarbool':''}`]">
-            <image :src="setting.to_exchange_pic"></image>
-            <view>兑换中心</view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appTabNav from "../../../components/basic-component/app-tab-nav/app-tab-nav.vue";
-    import appProductList from '../../../components/page-component/app-product-list/app-product-list.vue';
-    import appPrice from '../../../components/page-component/goods/app-price.vue';
-    import appNoGoods from '../../../components/page-component/app-no-goods/app-no-goods.vue';
-    import uMask from '../../../components/basic-component/u-mask/u-mask.vue';
-    import { mapState, mapGetters } from "vuex";
-
-    export default {
-        name: "index",
-        data() {
-            return {
-                currentRoute: this.$platDiff.route(),
-                tabbarbool: false,
-                tabList: [
-                    {id:0, name: '购买礼品卡'},
-                    {id:1, name: '我的礼品卡'}
-                ],
-                code: '',
-                activeTab: '0',
-                list: [],
-                setting: {},
-                listStyle: false,
-                loading: false,
-                more: false,
-                dialog: false,
-                msg: '',
-                page: 1,
-            };
-        },
-        computed: {
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                appSetting: state => state.mallConfig.mall.setting,
-                tabBarNavs: state => state.mallConfig.navbar.navs,
-                platform: function(state) {
-                    return state.gConfig.systemInfo.platform;
-                }
-            }),
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme'
-            }),
-            ...mapGetters('mallConfig', {
-                getVideo: 'getVideo'
-            })
-        },
-        components: {
-            "app-tab-nav": appTabNav,
-            'app-product-list': appProductList,
-            appPrice,
-            appNoGoods,
-            "u-mask": uMask
-        },
-        watch: {
-            tabBarNavs: {
-                handler: function() {
-                    this.b();
-                },
-                immediate: true,
-            }
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                title: this.$children[0].navigationBarTitle,
-                path: "/plugins/exchange/list/list",
-            });
-        },
-        // #endif
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-          // 分享朋友圈beta
-          return this.$shareTimeline({
-            title: this.$children[0].navigationBarTitle,
-            query: {} // 此处填写页面的参数
-          });
-        },
-        // #endif
-        onLoad(options) { this.$commonLoad.onload(options);
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-              menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-            if(options.tab > 0) {
-                this.activeTab = options.tab.toString();
-            }
-            this.$showLoading({
-                type: 'global',
-                text: '加载中...'
-            });
-            this.$request({
-                url: this.$api.exchange.setting,
-            }).then(response=>{
-                if(response.code == 0) {
-                    this.setting = response.data;
-                    this.getList();
-                }else {
-                    uni.showToast({
-                        title: response.msg,
-                        icon: 'none',
-                        duration: 1000
-                    });
-                }
-            })
-        },
-        onShow() {
-            if(this.activeTab == '1') {
-                this.getList();
-            }
-        },
-        onReachBottom() {
-            if(this.more) {
-                this.page++;
-                this.getMore();
-            }
-        },
-        methods: {
-            b() {
-                // #ifndef H5
-                let currentRoute = this.currentRoute;
-                for (let i = 0; i < this.tabBarNavs.length; i++) {
-                    if(currentRoute.includes(this.tabBarNavs[i].url.split('?')[0])) {
-                        return this.tabbarbool = true;
-                    }
-                }
-                // #endif
-                return  this.tabbarbool = false;
-            },
-            toIndex() {
-                uni.navigateTo({
-                    url: '/plugins/exchange/index/index'
-                })
-            },
-            getMore() {
-                let that = this;
-                if(this.loading) {
-                    return false
-                }
-                this.loading = true;
-                this.more = false;
-                that.$request({
-                    url: that.activeTab == '0' ? that.$api.exchange.list : that.$api.exchange.me_list,
-                    data: {
-                        page: this.page
-                    }
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    this.loading = false;
-                    if(response.code == 0) {
-                        that.list = that.list.concat(response.data.list);
-                        if(response.data.list.length == response.data.pagination.pageSize) {
-                            this.more = true;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                });
-            },
-            jump(data) {
-                // #ifndef MP-BAIDU
-                if (data.video_url && this.getVideo == 1) {
-                    // #ifdef MP
-                    uni.navigateTo({
-                        url: `/pages/goods/video?goods_id=${data.id}&sign=exchange`
-                    });
-                    // #endif
-                    // #ifdef H5
-                    uni.navigateTo({
-                        url: `/plugins/exchange/goods/goods?goods_id=${data.id}`
-                    });
-                    // #endif
-                } else {
-                    uni.navigateTo({
-                        url: `/plugins/exchange/goods/goods?goods_id=${data.id}`
-                    });
-                }
-                // #endif
-
-                // #ifdef MP-BAIDU
-                uni.navigateTo({
-                    url: `/plugins/exchange/goods/goods?goods_id=${data.id}`
-                });
-                // #endif
-            },
-            apply(goods) {
-                uni.navigateTo({
-                    url: '/plugins/exchange/gift/gift?code=' + goods.code
-                })
-            },
-            tabStatus(e) {
-                if(this.loading) {
-                    return false
-                }
-                this.list = [];
-                this.page = 1;
-                this.activeTab = e.currentTarget.dataset.id;
-                uni.showLoading({
-                    mask: true,
-                    title: '加载中...'
-                });
-                this.getList();
-            },
-            getList() {
-                let that = this;
-                if(this.loading) {
-                    return false
-                }
-                this.loading = true;
-                this.page = 1;
-                this.more = false;
-                that.$request({
-                    url: that.activeTab == '0' ? that.$api.exchange.list : that.$api.exchange.me_list
-                }).then(response=>{
-                    that.$hideLoading();
-                    uni.hideLoading();
-                    this.loading = false;
-                    if(response.code == 0) {
-                        that.list = response.data.list;
-                        if(that.list.length == response.data.pagination.pageSize) {
-                            this.more = true;
-                        }
-                    }else {
-                        uni.showToast({
-                            title: response.msg,
-                            icon: 'none',
-                            duration: 1000
-                        });
-                    }
-                }).catch(response => {
-                    that.$hideLoading();
-                    uni.hideLoading();
-                });
-            },
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-    .jump-dialog {
-        position: fixed;
-        bottom: 120rpx;
-        right: 24rpx;
-        width: 100rpx;
-        height: 100rpx;
-        border-radius: 50%;
-        background-color: rgba(0,0,0,.3);
-        font-size: 16rpx;
-        color: #fff;
-        z-index: 100;
-        &.tabbarbool {
-            bottom: 240rpx;
-        }
-        image {
-            width: 54rpx;
-            height: 54rpx;
-            margin-bottom: 3rpx;
-            display: block;
-        }
-    }
-    .item {
-        margin: 24rpx 24rpx 0;
-        background-color: #fff;
-        border-radius: 16rpx;
-        .status {
-            padding: 28rpx 30rpx;
-            border-bottom: 2rpx solid #e2e2e2;
-            .item-cover {
-                width: 140rpx;
-                flex-shrink: 0;
-                margin-right: 30rpx;
-            }
-            .item-name {
-                font-size: 28rpx;
-                color: #353535;
-            }
-        }
-        .item-time {
-            height: 112rpx;
-            font-size: 28rpx;
-            color: #666666;
-            padding: 0 30rpx;
-            .rewards-submit {
-                height: 68rpx;
-                line-height: 68rpx;
-                text-align: center;
-                padding: 0 30rpx;
-                border-radius: 40rpx;
-                color: #fff;
-                font-size: #{28rpx};
-                &.over {
-                    background-color: #f7f7f7;
-                    color: #999999;
-                }
-            }
-        }
-    }
-</style>

+ 0 - 175
src/plugins/flash_sale/goods/goods.scss

xqd
@@ -1,175 +0,0 @@
-.vip-card {
-  padding: 0 #{20rpx} #{20rpx};
-  background-color: #fff;
-}
-
-.merchant-guarantee {
-  margin-top: #{20rpx};
-}
-
-.app-goods {
-  background-color: #f7f7f7;
-}
-
-.attr {
-  margin: #{20rpx} 0;
-}
-
-.marketing {
-  margin-top: #{20rpx};
-}
-
-.buttons {
-  width: #{750rpx};
-  height: #{110rpx};
-
-  .app-home {
-    width: 14%;
-    height: #{110rpx};
-    background-color: white;
-
-    .app-view {
-      width: #{105rpx};
-      height: #{110rpx};
-
-      image {
-        width: #{40rpx};
-        height: #{40rpx};
-      }
-
-      text {
-        font-size: #{18rpx};
-        color: #707070;
-
-      }
-    }
-  }
-
-  .app-button {
-    width: 86%;
-    height: #{110rpx};
-    text-align: center;
-    line-height: #{110rpx};
-
-    .app-join-cart {
-      height: #{110rpx};
-    }
-
-    .app-buy {
-      height: #{110rpx};
-      color: white;
-    }
-
-    .notStart {
-      width: 100%;
-      height: #{110rpx};
-      color: #FFF;
-      >view {
-        width: 50%;
-      }
-    }
-
-    .app-over {
-      height: #{110rpx};
-      background: #666;
-      color: #FFF;
-    }
-  }
-}
-
-.product-list {
-  background-color: white;
-}
-
-.join-member {
-  background-color: #fff;
-  padding: 0 #{24rpx};
-}
-
-.app-bottom {
-  background-color: white;
-  position: fixed;
-  bottom: 0;
-  left: 0;
-  width: 100%;
-}
-
-.text {
-  color: #fff;
-}
-
-.goods-name {
-  padding: #{24rpx 24rpx 0 24rpx};
-  background-color: #fff;
-  color: #353535;
-}
-.goods-subtitle {
-  padding: #{24rpx 24rpx 0 24rpx};
-  font-size: 24rpx;
-  background-color: #ffffff;
-  color: #999999;
-}
-.price-title-share {
-  padding-top: #{24rpx};
-  background-color: #fff;
-}
-.f-timing {
-  width: 750upx;
-  height: 88upx;
-  position: relative;
-  .f-image {
-    width: 750upx;
-    height: 88upx;
-    background-image: url('../image/timing.png');
-    background-repeat: no-repeat;
-    background-size: 100% 100%;
-  }
-  .f-activity {
-    height: 37upx;
-    border-radius: 19upx;
-    background-color: #fff;
-    padding: 0upx 17upx;
-    line-height: 37upx;
-    font-size: 24upx;
-    position: absolute;
-    left: 215upx;
-    top: 50%;
-    transform: translateY(-50%);
-  }
-  .f-content {
-    position: absolute;
-    right: #{20rpx};
-    top: 0;
-    height: #{88rpx};
-    .app-text {
-      font-size: #{22rpx};
-      color: #fff;
-      text-align: center;
-      margin-top: #{6rpx};
-    }
-    .over-text {
-      font-size: #{32rpx};
-      line-height: #{88rpx};
-      margin-top: 0;
-    }
-    .app-time {
-      color: white;
-      height: #{36rpx};
-      font-size: #{26rpx};
-      margin-top: #{6rpx};
-      .app-num {
-        display: inline-block;
-        width: #{44rpx};
-        height: #{36rpx};
-        line-height: #{36rpx};
-        background-color:white;
-        border-radius: #{8rpx};
-        color: #353535;
-        text-align: center;
-      }
-      .app-right {
-        margin: 0 #{4rpx};
-      }
-    }
-  }
-}

+ 0 - 510
src/plugins/flash_sale/goods/goods.vue

xqd
@@ -1,510 +0,0 @@
-<template>
-    <app-layout>
-        <view v-if="!goods" class="u-goods-detail"></view>
-        <view class="app-goods" v-if="goods">
-            <view class="banner">
-                <app-banner :videoUrl="goods.video_url" :share="goods.share" :picList="goods.pic_url" :goods_id="goods_id" sign="flash_sale"></app-banner>
-            </view>
-            <!-- 时间 -->
-            <view class="f-timing">
-                <view class="f-image" :style="{'background-color': getTheme.background}"></view>
-                <view class="f-activity" :style="{'color': getTheme.color}">
-                    {{goods.discount_type === 1 ? goods.min_discount + '折' : '减' + goods.min_discount  + '元' }}
-                </view>
-                <view class="f-content dir-top-nowrap">
-                    <view class="app-text" v-if="activity_status === 0">距离开始仅剩</view>
-                    <view class="app-text" v-else-if="activity_status === 1">距离结束仅剩</view>
-                    <view class="app-text over-text" v-else-if="activity_status === 2">活动已结束</view>
-                    <view class="app-time cross-center main-around" v-if="activity_status !== 2">
-                        <text class="app-num app-right" >{{time_str.day}}</text>
-                        <text>天</text>
-                        <text class="app-num app-right">{{time_str.hou}}</text>
-                        <text>时</text>
-                        <text class="app-num app-right">{{time_str.min}}</text>
-                        <text>分</text>
-                        <text class="app-num app-right">{{time_str.sec}}</text>
-                        <text>秒</text>
-                    </view>
-                </view>
-            </view>
-            <bd-info
-                :theme="getTheme"
-                :name="goods.name"
-                :is-negotiable="goods.is_negotiable"
-                :subtitle="goods.subtitle"
-                :level-show="goods.level_show"
-                :price="goods.price"
-                :original-price="goods.original_price"
-                :price-max="goods.price_max"
-                :price-min="goods.price_min"
-                :price-member-max="goods.price_member_max"
-                :price-member-min="goods.price_member_min"
-                :discount='discount'
-                :is-vip-card-user="is_vip_card_user"
-                :sales="goods.sales"
-                :unit="goods.unit"
-                :is-sales="goods.is_sales"
-                :is-vip="is_vip"
-                :goods-id="goods.id"
-                :extra-quick-share="goods.extra_quick_share"
-                :app-share-pic="goods.app_share_pic"
-                :app-share-title="goods.app_share_title"
-                :poster-config="poster_config + `&goods_id=` + goods.id"
-                :poster-generate="poster_generate + `&goods_id=` + goods.id"
-                :has-poster-nav="true"
-                @quickShare="quickShare"
-                v-bind:goods="goods"
-                @share="hShareAppMessage"
-				:min-number="goods.min_number"
-				:limit-buy="goods.limit_buy"
-            ></bd-info>
-            <bd-coupon @change="setCoupon" :theme="getTheme" :coupons="goods.goods_coupon_center"></bd-coupon>
-            <bd-xbc
-                :coAttr="is_open"
-                :attr-list="selectAttr.attr_list"
-                :type="goods.type"
-                :guarantee-title="goods.guarantee_title"
-                :guarantee-pic="goods.guarantee_pic"
-                :param_content="goods.param_content"
-                :param_name="goods.param_name"
-                :services="goods.services"
-                :attr-groups="goods.attr_groups"
-                :goods-stock="goods.goods_stock"
-                :co-attr="activity_status"
-                @openAttr="joinCart"
-            ></bd-xbc>
-            <bd-hc
-                :integral="goods.goods_marketing_award.integral"
-                :coupon="goods.goods_marketing_award.coupon"
-                :card="goods.goods_marketing_award.card"
-                :balance="goods.goods_marketing_award.balance"
-                :theme="getTheme"
-            ></bd-hc>
-            <bd-kb
-                :limit="goods.goods_marketing.limit"
-                :express="goods.express"
-                :shipping="goods.goods_marketing.shipping"
-                :pickup="goods.goods_marketing.pickup"
-            ></bd-kb>
-            <bd-comments :goods-id="goods.id"></bd-comments>
-            <bd-detail :detail="goods.detail"></bd-detail>
-            <!-- 相关推荐 -->
-            <template  v-if="list.length > 0">
-                <app-related-suggestion-product :theme="getTheme" :list="list"></app-related-suggestion-product>
-            </template>
-            <!--空格区域-->
-            <view class="safe-area-inset-bottom">
-                <view class="u-bottom-height" :class="full_reduce ? 'u-bottom-height-1' : 'u-bottom-height-0'"></view>
-            </view>
-            <!-- 底部按钮 -->
-            <view v-if="is_open == 1" class="safe-area-inset-bottom u-bottom-fixed">
-                <view v-if="full_reduce">
-                    <app-goods-full-reduce
-                        :theme="getTheme"
-                        sign="flash_sale"
-                        :full_reduce="full_reduce"
-                    >
-                    </app-goods-full-reduce>
-                </view>
-                <view class="bd-bottom dir-left-nowrap cross-center">
-                    <view class="bd-back dir-top-nowrap main-center cross-center box-grow-0" @click="back">
-                        <image class="bd-icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/index.png"></image>
-                        <text class="bd-text">首页</text>
-                    </view>
-                    <bd-service :name="goods.name" :url="webUrl"></bd-service>
-                    <view v-if="goods.goods_stock == 0" class="bd-button box-grow-1 bd-oversell-btn" >
-                            已售罄
-                    </view>
-                    <template v-else >
-                        <template v-if="activity_status === 1">
-                            <view class="dir-left-nowrap box-grow-1">
-                                <view @click="joinCart" class="bd-btn-half bd-button bd-btn-left"
-                                      :style="{'background': !goods || goods.buy_goods_auth ? getTheme.background_s_gradient_btn : '#999999','color': !goods || goods.buy_goods_auth ? getTheme.secondary_text : ''}">
-                                    加入购物车
-                                </view>
-                                <view  @click="joinCart" class="bd-btn-half bd-button bd-btn-right"
-                                       :style="{'background': goods.buy_goods_auth ? getTheme.background_gradient_btn : '#999999','color': goods.buy_goods_auth ? getTheme.main_text : ''}">
-                                    立即购买
-                                </view>
-                            </view>
-                        </template>
-                        <view class="dir-left-nowrap box-grow-1" v-if="activity_status === 0">
-                            <view class="bd-btn-half bd-button bd-btn-left" @click="joinCart" :style="{'background': !goods || goods.buy_goods_auth ? getTheme.background_s_gradient_btn : '#999999','color' : !goods || goods.buy_goods_auth ? getTheme.secondary_text : ''}">
-                                加入购物车
-                            </view>
-                            <view style="background: #999999;line-height: 1" class="dir-top-nowrap bd-button bd-btn-right bd-btn-half main-center cross-center">
-                                <view style="font-size: 28rpx">{{activity.start_at | getStart}}</view>
-                                <view style="font-size: 20rpx">{{activity.start_at | getStartT}}</view>
-                            </view>
-                        </view>
-                        <view v-if="activity_status === 2" class="bd-button bd-oversell-btn box-grow-1" >
-                            活动已结束
-                        </view>
-                    </template>
-                </view>
-            </view>
-            <u-attr
-                v-model="show"
-                :goods="goods"
-                :theme="getTheme"
-                :checked="selectAttr"
-                @check="onAttr"
-                :rightFunc="true"
-                :leftFunc="true"
-                @leftFunc="leftFunc"
-                @rightFunc="rightFunc"
-                :is_show_right="activity_status === 1"
-            >
-            </u-attr>
-        </view>
-        <app-close v-if="showClose" :modal="false" @update="getMall"></app-close>
-    </app-layout>
-</template>
-<script>
-    import {mapGetters, mapState} from 'vuex';
-    import appBanner from '../../../components/page-component/goods/app-goods-banner.vue';
-    import appRelatedSuggestionProduct from '../../../components/page-component/app-related-suggestion-product/app-related-suggestion-product.vue';
-    import appGoodsFullReduce from '../../../components/page-component/goods/app-goods-full-reduce.vue';
-    import uAttr from '../../../components/page-component/goods/u-attr.vue';
-    import bdInfo from '@/components/page-component/goods/bd-info';
-    import bdCoupon from '@/components/page-component/goods/bd-coupon.vue';
-    import bdXbc from '@/components/page-component/goods/bd-xbc.vue';
-    import bdKb from '@/components/page-component/goods/bd-kb.vue';
-    import bdHc from '@/components/page-component/goods/bd-hc.vue';
-    import bdDetail from '@/components/page-component/goods/bd-detail.vue';
-    import bdComments from '@/components/page-component/goods/bd-comments.vue';
-    import appClose from '@/components/basic-component/app-close/app-close.vue';
-    import bdService from '@/components/page-component/goods/bd-service.vue';
-
-    export default {
-        name: 'goods',
-        data() {
-            return {
-                showClose: false,
-                is_open: 0,
-                goods_id: -1,
-                full_reduce: null,
-                activity: {},
-                activity_status: 0,
-                time_str: {
-                    day: 0,
-                    hou: 0,
-                    min: 0,
-                    sec: 0
-                },
-                timing: null,
-                discount: null,
-                is_vip: false,
-                is_vip_card_user: 0,
-                shareData: null,
-                poster_config: this.$api.flash_sale.poster_config,
-                poster_generate: this.$api.flash_sale.poster_generate,
-                selectAttr: {},
-
-                url: '',
-                webUrl: '',
-                show: false,
-                list: [],
-                miaosha_buy_count: 0,
-                is_activity: 0,
-                loading: false,
-                is_show_buy: true,
-                share: false,
-                goods: null,
-				disable: 'disable'
-
-            }
-        },
-        onLoad(options) { this.$commonLoad.onload(options);
-            this.goods_id = options.id;
-            this.webUrl = '/plugins/flash_sale/goods/goods?id=' + options.id;
-            this.share = options.share;
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-                menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-        },
-        onHide() {
-            clearInterval(this.timing);
-        },
-        onUnload() {
-            clearInterval(this.timing);
-        },
-        onShow() {
-            this.showClose = false;
-            setTimeout(()=>{
-                this.showClose = true;
-            })
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme'
-            }),
-        },
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-            let { app_share_title, name, id } = this.goods;
-            return this.$shareTimeline({
-                title: app_share_title ? app_share_title : name,
-                query: {
-                    id,
-                    share: true
-                }
-            });
-        },
-        // #endif
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false){
-                let { app_share_title, name, app_share_pic, id, pic_url, subtitle} = this.goods;
-                return this.$shareAppMessage({
-                    path: '/plugins/flash_sale/goods/goods',
-                    title: app_share_title ? app_share_title : name,
-                    imageUrl: app_share_pic ? app_share_pic : pic_url[0].pic_url,
-                    desc: subtitle,
-                    params: {
-                        id,
-                        share: true
-                    }
-                },s);
-            },
-            getMall(e) {
-                this.is_open = e.is_open;
-            },
-            async getDetail() {
-                this.loading = false;
-                const e = await this.$request({
-                    url: this.$api.flash_sale.detail,
-                    data: {
-                        id: this.goods_id
-                    }
-                });
-                if (e.code === 0) {
-                    this.loading = true;
-                    let { detail, activity, activity_status } = e.data;
-                    this.goods = detail;
-                    this.activity = activity;
-                    if (detail.goods_activity) {
-                        this.full_reduce = detail.goods_activity.full_reduce;
-                    }
-                    this.activity_status = activity_status;
-                    if(detail.vip_card_appoint.discount) {
-                        this.is_vip = true;
-                        this.discount = detail.vip_card_appoint.discount;
-                    }
-                    this.is_vip_card_user = detail.vip_card_appoint.is_vip_card_user;
-                    if (activity_status === 1) {
-                        this.set_time(activity.end_at);
-                    } else if (activity_status === 0) {
-                        this.set_time(activity.start_at);
-                        this.is_show_buy = false;
-                    }
-                    // #ifdef H5
-                    this.hShareAppMessage();
-                    // #endif
-                } else {
-                    uni.showToast({
-                        title: e.msg,
-                        icon: 'none'
-                    });
-                    if (!this.share) {
-                        uni.navigateBack();
-                    } else {
-                        uni.navigateTo({
-                            url: `/plugins/flash_sale/index/index`
-                        })
-                    }
-
-                }
-            },
-
-            set_time(time_at) {
-                clearInterval(this.timing);
-                let time_str = new Date(time_at.replace(/-/g, '/'));
-                this.now_time(time_str);
-                this.timing = setInterval(() => {
-                    this.now_time(time_str);
-                }, 1000);
-            },
-
-            now_time(time_str) {
-                let time = time_str.getTime() - new Date().getTime();
-                if (time < 0) {
-                    clearInterval(this.timing);
-                }
-                let day = parseInt(time/1000/60/60/24);
-                let hou = parseInt((time/1000/60/60)%24);
-                let min = parseInt((time/1000/60)%60);
-                let sec = parseInt((time/1000)%60);
-                this.time_str.day = day < 10 ? '0' + day : day;
-                this.time_str.hou = hou < 10 ? '0' + hou : hou;
-                this.time_str.min = min < 10 ? '0' + min : min;
-                this.time_str.sec = sec < 10 ? '0' + sec : sec;
-            },
-
-            quickShare(info) {
-                this.shareData = info;
-            },
-            async request({ url, data }) {
-                const response = await this.$request({
-                    url: url,
-                    data: data,
-                });
-                if (response.code === 0) {
-                    return response.data;
-                }
-            },
-            onAttr({item}) {
-                this.selectAttr = item;
-            },
-            joinCart() {
-				if (!this.goods.buy_goods_auth) {
-                    this.$tips.showToast({
-                        title: '您暂无权限购买该商品',
-                        icon: 'none'
-                    });
-                    return;
-				}
-                this.show = true;
-            },
-            leftFunc: function (number) {
-                this.$request({
-                    url: this.$api.flash_sale.add_cart,
-                    data: {
-                        flash_goods_id: this.selectAttr.goods_id,
-                        attr_id: this.selectAttr.id,
-                        num: number
-                    },
-                    method: 'post'
-                }).then(e => {
-                    uni.showToast({
-                        title: e.msg,
-                        type: 'success'
-                    });
-                });
-            },
-            rightFunc(data) {
-                uni.navigateTo({
-                    url: `/pages/order-submit/order-submit?mch_list=${JSON.stringify([data])}`
-                })
-
-            },
-            setCoupon(index) {
-                this.$set(this.goods.goods_coupon_center[index], 'is_receive', 1);
-            },
-
-            back() {
-                uni.redirectTo({
-                    url: '/pages/index/index'
-                });
-            }
-        },
-
-        watch: {
-            goods_id: {
-                handler() {
-                  this.getDetail();
-                }
-            }
-        },
-
-        filters: {
-            getStart(data) {
-                if (!data) return;
-                let time_str = new Date(data.replace(/-/g, '/'));
-                return `${time_str.getHours() < 10 ? '0'
-                    + time_str.getHours() : time_str.getHours()}:${time_str.getMinutes() < 10 ? '0' +
-                    time_str.getMinutes() : time_str.getMinutes()} 开抢 `;
-            },
-            getStartT(data) {
-                if (!data) return;
-                let time_str = new Date(data.replace(/-/g, '/'));
-                return `${time_str.getFullYear()}.${time_str.getMonth() + 1}.${time_str.getDate()}`
-            }
-        },
-
-        components: {
-            'app-banner': appBanner,
-            'app-related-suggestion-product': appRelatedSuggestionProduct,
-            appGoodsFullReduce,
-            uAttr,
-            bdInfo,
-            bdCoupon,
-            bdXbc,
-            bdKb,
-            bdHc,
-            bdDetail,
-            bdComments,
-            appClose,
-            bdService
-        }
-    }
-</script>
-<style scoped lang="scss">
-    @import './goods.scss';
-    .u-coupon {
-        margin-top: 20upx;
-    }
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1500;
-        background-color: #ffffff;
-    }
-    .u-bottom-height {
-        height: 110upx;
-    }
-    .u-bottom-height-0 {
-        height: 110upx;
-    }
-    .u-bottom-height-1 {
-        height: 190upx;
-    }
-    .bd-bottom {
-        height: 110upx;
-        width: 750upx;
-        padding: 20upx 24upx;
-    }
-    .bd-back {
-        width: 66upx;
-        height: 100%;
-        margin-right: 20upx;
-        font-size: 20upx;
-        color: #888888;
-    }
-    .bd-btn-half {
-        width: 50%;
-    }
-    .bd-icon {
-        width: 30upx;
-        height: 30upx;
-        margin-bottom: 8upx;
-    }
-    .bd-button {
-        text-align: center;
-        line-height: 70upx;
-        font-size: 28upx;
-        border-radius: 35upx;
-    }
-    .bd-btn-left {
-        border-top-right-radius: 0;
-        border-bottom-right-radius: 0;
-    }
-    .bd-btn-right {
-        border-top-left-radius: 0;
-        border-bottom-left-radius: 0;
-        color: #ffffff;
-    }
-    .bd-oversell-btn {
-        background-color: #CDCDCD;
-        color: #ffffff;
-    }
-
-</style>

BIN
src/plugins/flash_sale/image/processing.png


BIN
src/plugins/flash_sale/image/start.png


BIN
src/plugins/flash_sale/image/timing.png


+ 0 - 527
src/plugins/flash_sale/index/index.vue

xqd
@@ -1,527 +0,0 @@
-<template>
-    <app-layout>
-        <view class="f-switch" :style="{'background-color': getTheme.background}">
-           <template v-if="!is_no_now">
-               <image v-if="is_switch" src="./../image/processing.png"></image>
-               <image v-else src="./../image/start.png"></image>
-               <button class="button left" @click="is_switch = true"></button>
-               <button class="button right" @click="is_switch = false"></button>
-           </template>
-            <view v-else style="font-size: 36rpx;text-align: center;color: #fff;line-height:100rpx">
-                即将开始
-            </view>
-        </view>
-        <view class="f-bulletin" :style="{'background-color': getTheme.background}" v-if="Object.keys(activity).length">
-            <view>
-                <view class="dir-left-nowrap main-between cross-center">
-                    <view class="f-title">
-                        {{activity.title}}
-                    </view>
-                    <view class="f-rule" @click="goRule">
-                        活动规则
-                        <image src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-                    </view>
-                </view>
-                <view class="f-timing">
-                    距离本场{{type === 1 ? '结束' : '开始'}}
-                    <text :style="{'color': getTheme.color}">{{time_str.day}}</text>天
-                    <text :style="{'color': getTheme.color}">{{time_str.hou}}</text>时
-                    <text :style="{'color': getTheme.color}">{{time_str.min}}</text>分
-                    <text :style="{'color': getTheme.color}">{{time_str.sec}}</text>秒
-                </view>
-            </view>
-        </view>
-        <view class="f-activity" :style="{'background-color': getTheme.background}"v-if="list.length > 0">
-            <view class="f-item dir-left-nowrap"
-                  @click="routeDetail(item.id)"
-                  v-for="(item, index) in list" :key="index">
-                <view class="f-image">
-                    <view class="out-dialog" v-if="item.goods_stock == 0 && appSetting.is_show_stock == '1'">
-                        <image :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>
-                    </view>
-                    <image class='f-pic' :src="item.goodsWarehouse.cover_pic"></image>
-                </view>
-                <view class="cont">
-                    <view class="dir-left-nowrap cross-center" style="overflow: hidden">
-                        <view v-if="item.discount_type === 1" :style="{'background-color': getTheme.background}" class="f-discount box-grow-0">{{Number(item.min_discount)}}折</view>
-                        <view v-else :style="{'background-color': getTheme.background}" class="f-discount box-grow-0">减{{item.min_discount}}元</view>
-                        <view class="f-name t-omit">{{item.goodsWarehouse.name}}</view>
-                    </view>
-                    <view class="app-percentage" :style="{'background-color': getTheme.background_l}">
-                        <view :style="{'background-color': getTheme.background,width: `${item.percentage}%`}"></view>
-                    </view>
-                    <view class="f-num main-between">
-                        <text>{{item.sales}}</text>
-                        <text :style="{'color': getTheme.color}">仅剩{{item.goods_stock}}{{item.goodsWarehouse.unit}}</text>
-                    </view>
-                    <view class="f-content dir-top-nowrap main-right">
-                        <view v-if="item.is_level">
-                            <app-member-price :theme="getTheme" :price="item.level_price"></app-member-price>
-                        </view>
-                        <app-sup-vip
-                            :is_vip_card_user="item.vip_card_appoint.is_vip_card_user"
-                            margin="4rpx 0 0"
-                            v-if="item.vip_card_appoint.discount"
-                            :discount="item.vip_card_appoint.discount"
-                        ></app-sup-vip>
-                        <view class="dir-left-nowrap main-between cross-bottom">
-                            <view class="f-price dir-top-nowrap">
-                                <text :style="{'color': getTheme.color}">{{item.price_content}}</text>
-                                <text>¥{{item.original_price}}</text>
-                            </view>
-                            <button
-                                :style="{'background-color': item.goods_stock === 0 && type === 1 ? '#cdcdcd' : item.buy_goods_auth || type !== 1 ? getTheme.background : '#999999'}"
-                                class="f-button"
-                                @click.stop="grab(item)">
-                                {{type === 1 ? '马上抢' : '查看商品'}}
-                            </button>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </view>
-        <u-attr
-            v-if="detail"
-            :goods="detail"
-            v-model="attrShow"
-            :theme="getTheme"
-            :checked="selectAttr"
-            :right-func="true"
-            :left-func="true"
-            @leftFunc="leftFunc"
-            @rightFunc="rightFunc"
-            @check="onAttr"
-        >
-        </u-attr>
-        <view
-            v-if="!Object.keys(activity).length && loading"
-            :style="{height: (windowHeight - switch_height) + 'px','background-color': getTheme.background}"
-            class="f-empty">
-            <view class="f-empty-con">
-                <view class="f-no">
-                    <app-no-goods background="#efefef" :title="title"></app-no-goods>
-                </view>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import { mapGetters, mapState } from "vuex";
-    import appNoGoods from "../../../components/page-component/app-no-goods/app-no-goods.vue";
-    import uAttr from '../../../components/page-component/goods/u-attr.vue';
-
-    export default {
-        name: "index",
-        data() {
-            return {
-                is_switch: true,
-                page: 1,
-                type: 1,
-                activity: {},
-                timing: null,
-                time_str: {
-                    day: '00',
-                    hou: '00',
-                    min: '00',
-                    sec: '00'
-                },
-                list: [],
-                page_count: 1,
-                detail: null,
-                attr_groups: [],
-                attrShow: 0,
-                selectAttr: {},
-                switch_height: 0,
-                title: `暂无进行中活动`,
-                is_no_now: false,
-                going: true,
-                loading: true,
-				disable: 'disable'
-            }
-        },
-        methods: {
-            async getList() {
-                this.loading = false;
-                const e = await this.$request({
-                    url: this.$api.flash_sale.list,
-                    data: {
-                        type: this.type,
-                        page: this.page
-                    }
-                });
-                if (e.code === 0) {
-                    let { activity, list, next_activity, pagination } = e.data;
-                    if (this.type === 1) {
-                        this.activity = activity;
-
-                        if (Object.keys(activity).length === 0) {
-                            this.is_no_now = true;
-                            this.type = 2;
-                            const w = await this.$request({
-                                url: this.$api.flash_sale.list,
-                                data: {
-                                    type: this.type,
-                                    page: this.page
-                                }
-                            });
-                            let {  list, next_activity, pagination } = w.data;
-                            this.activity = next_activity;
-                            this.list.push(...list);
-                            this.page_count = pagination.page_count;
-                        } else {
-                            this.is_no_now = false;
-                            this.list.push(...list);
-                            this.page_count = pagination.page_count;
-                        }
-                    } else {
-                        this.activity = next_activity;
-                        this.list.push(...list);
-                        this.page_count = pagination.page_count;
-                    }
-
-                }
-                this.loading = true;
-            },
-            set_time(time_at) {
-                clearInterval(this.timing);
-                let time_str = new Date(time_at.replace(/-/g, '/'));
-                this.now_time(time_str);
-                this.timing = setInterval(() => {
-                    this.now_time(time_str);
-                }, 1000);
-            },
-            now_time(time_str) {
-                let time = time_str.getTime() - new Date().getTime();
-                if (time < 0) {
-                    clearInterval(this.timing);
-                }
-                let day = parseInt(time/1000/60/60/24);
-                let hou = parseInt((time/1000/60/60)%24);
-                let min = parseInt((time/1000/60)%60);
-                let sec = parseInt((time/1000)%60);
-                this.time_str.day = day < 10 ? '0' + day : day;
-                this.time_str.hou = hou < 10 ? '0' + hou : hou;
-                this.time_str.min = min < 10 ? '0' + min : min;
-                this.time_str.sec = sec < 10 ? '0' + sec : sec;
-            },
-            grab(item) {
-                if (this.type === 1) {
-                    this.detail = null;
-                    if (item.goods_stock !== 0) {
-						if (!item.buy_goods_auth) {
-							this.$tips.showToast({
-								title: '该商品您暂无权限购买',
-								icon: 'none'
-							});
-							return ;
-						}
-                        setTimeout(() => {
-                            this.selectAttr = {};
-                            this.detail = item;
-                            this.attrShow = true;
-                        })
-                    }
-                } else {
-                    uni.navigateTo({
-                        url: `/plugins/flash_sale/goods/goods?id=${item.id}`
-                    })
-                }
-            },
-            onAttr({item}) {
-                this.selectAttr = item;
-            },
-            routeDetail(id) {
-                uni.navigateTo({
-                    url: `/plugins/flash_sale/goods/goods?id=${id}`
-                })
-            },
-            goRule() {
-                uni.navigateTo({
-                    url: `/pages/rules/index?url=${encodeURIComponent(this.$api.flash_sale.list)}&key=content`
-                });
-            },
-            rightFunc(data) {
-                uni.navigateTo({
-                    url: `/pages/order-submit/order-submit?mch_list=${JSON.stringify([data])}`
-                });
-            },
-            leftFunc(number) {
-                this.$request({
-                    url: this.$api.flash_sale.add_cart,
-                    data: {
-                        flash_goods_id: this.selectAttr.goods_id,
-                        attr_id: this.selectAttr.id,
-                        num: number
-                    },
-                    method: 'post'
-                }).then(e => {
-                    uni.showToast({
-                        title: e.msg,
-                        type: 'success'
-                    });
-                });
-            }
-        },
-        mounted() {
-            let query = wx.createSelectorQuery();
-            this.$nextTick().then(() => {
-                query.select('.f-switch').boundingClientRect(rect=>{
-                    this.switch_height = rect.height;
-                }).exec();
-            });
-            // #ifdef MP-WEIXIN
-            wx.showShareMenu({
-                menus: ['shareAppMessage', 'shareTimeline']
-            })
-            // #endif
-        },
-        onReachBottom() {
-            if (this.page < this.page_count) {
-                this.page++;
-                this.getList();
-            }
-        },
-        watch: {
-            is_switch: {
-                handler(boolean) {
-                    if (this.going) {
-                        this.going = false;
-                        this.list = [];
-                        this.page = 1;
-                        if (boolean) {
-                            this.type = 1;
-                            this.title = '暂无进行中活动';
-                        } else {
-                            this.type = 2;
-                            this.title = '暂无下一场活动';
-                        }
-                        this.getList().then(() => {
-                            if (this.type === 1) {
-                                let end_at = this.activity.end_at;
-                                end_at ? this.set_time(end_at) : null;
-                            } else {
-                                let start_at = this.activity.start_at;
-                                start_at ? this.set_time(start_at) : null;
-                            }
-                            this.going = true;
-                        });
-                    }
-                },
-                immediate: true
-            }
-        },
-        computed: {
-            ...mapGetters('mallConfig', {
-                getTheme: 'getTheme'
-            }),
-            ...mapState('gConfig', {
-                windowHeight: state => state.systemInfo.windowHeight
-            }),
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img.mall,
-                appSetting: state => state.mallConfig.mall.setting,
-            })
-        },
-        components: {
-            'app-no-goods': appNoGoods,
-            uAttr
-        },
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.$shareAppMessage({
-                path: '/plugins/flash_sale/index/index',
-                title: this.$children[0].navigationBarTitle
-            });
-        },
-        // #endif
-        // #ifdef MP-WEIXIN
-        onShareTimeline() {
-            // 分享朋友圈beta
-            return this.$shareTimeline({
-                title:this.$children[0].navigationBarTitle
-            });
-        },
-        // #endif
-    }
-</script>
-
-<style scoped lang="scss">
-    .f-switch {
-        width: 750upx;
-        height: 100upx;
-        position: relative;
-    }
-    .f-switch image {
-        width: 750upx;
-        height: 100upx;
-        position: absolute;
-        top: -1upx;
-    }
-    .f-switch .button {
-        width: 375upx;
-        height: 100upx;
-        position: absolute;
-        background: transparent;
-        padding: 0;
-        margin: 0;
-        border: none;
-    }
-    .f-switch .right {
-        right: 0;
-    }
-    .f-switch .left {
-        left: 0;
-    }
-    .f-bulletin {
-        padding: 20upx 24upx;
-        .f-title {
-            font-size: 32upx;
-            font-weight: bold;
-            color: #353535;
-
-        }
-        .f-rule {
-            font-size: 26upx;
-            color: #666;
-            vertical-align: middle;
-            >image {
-                width: 12upx;
-                height: 22upx;
-                margin-left: 14upx;
-            }
-        }
-        .f-timing {
-            margin-top: 18upx;
-            font-size: 26upx;
-            color: #353535;
-            >text:first-child {
-                margin-left: 18upx;
-            }
-        }
-    }
-    .f-bulletin>view {
-        background-color: #fff;
-        border-radius: 15upx;
-        height: 147upx;
-        padding: 32upx 24upx;
-    }
-    .f-activity {
-        padding: 0 24upx;
-        overflow: auto;
-        position: absolute;
-        width: 750upx;
-        min-height: calc(100vh - 287rpx);
-        .f-item {
-            background-color: #fff;
-            border-radius: 15upx;
-            padding: 24upx;
-            margin-bottom: 20upx;
-            .f-pic {
-                width: 240upx;
-                height: 240upx;
-                border-radius: 8upx;
-            }
-            >view.cont {
-                width: 394upx;
-                margin-left: 24upx;
-                position: relative;
-            }
-            .f-name {
-                font-size: 28upx;
-                color: #353535;
-                min-width: 304upx;
-            }
-            .f-discount {
-                height: 26upx;
-                color: #fff;
-                font-size: 20upx;
-                margin-right: 10upx;
-                text-align: center;
-                line-height: 26upx;
-                border-radius: 7upx;
-                padding: 0 5upx;
-            }
-            .f-num {
-                font-size: 24upx;
-                margin-top: 10upx;
-            }
-            .f-num>text:first-child {
-                color: #666;
-            }
-            .f-button {
-                height: 68upx;
-                line-height: 68upx;
-                width: 164upx;
-                border-radius: 34upx;
-                font-size: 26upx;
-                color: #fff;
-                margin: 0;
-                padding: 0;
-                text-align: center;
-                border: none;
-            }
-            .f-content {
-                position: absolute;
-                bottom: 0;
-                width: 394upx;
-            }
-            .f-price>text:first-child {
-                font-size: 32upx;
-            }
-            .f-price>text:last-child {
-                font-size: 25upx;
-                color: #999;
-                text-decoration: line-through;
-            }
-            .app-percentage {
-                width: #{395rpx};
-                height: #{20rpx};
-                border-radius: #{12rpx};
-                margin-top: #{10rpx};
-                overflow: hidden;
-                >view {
-                    height: #{20rpx};
-                    border-radius: #{12rpx};
-                }
-            }
-            .f-sold-out {
-                background-color: #cdcdcd;
-            }
-        }
-    }
-    .f-empty {
-        width: 750upx;
-        padding: 20upx 24upx;
-        .f-empty-con {
-            height: 100%;
-            background: #efefef;
-            border-radius: 15upx;
-            position: relative;
-        }
-        .f-no {
-            position: absolute;
-            top: 30%;
-            left: 50%;
-            transform: translate(-50%, -50%);
-        }
-    }
-    .out-dialog {
-        border-top-left-radius: 15upx;
-        border-top-right-radius: 15upx;
-        width: 240upx;
-        height: 240upx;
-        position: absolute;
-        top: 0;
-        z-index: 10;
-        left: 0;
-        background-color: rgba(0,0,0,.5);
-        image {
-            width: 240upx;
-            height: 240upx;
-        }
-    }
-    .f-image {
-        position: relative;
-    }
-</style>

+ 0 - 844
src/plugins/fxhb/detail/detail.vue

xqd
@@ -1,844 +0,0 @@
-<template>
-    <view class="app-layout">
-        <app-layout>
-            <view class="detail-bg">
-                <view class="fxhb-bg" :style="{'background-image': `url(${appImg.bg})`}">
-                    <view class="fxhb-right">
-                        <view @click="rules">活动规则</view>
-                        <view @click="homes">返回首页</view>
-                    </view>
-                </view>
-                <view class="fxhb-box">
-                    <!-- 正在进行 -->
-                    <view v-if="status === 0 && is_join == 1" class="detail-info">
-                        <view class="user-list dir-left-wrap main-center">
-                            <!-- #ifdef H5-->
-                            <view v-for="(v,k) in list" :key="`k-${k}`" class="user-item">
-                                <image :src="v.avatar" load-lazy></image>
-                            </view>
-                            <!-- #endif -->
-                            <!-- #ifdef MP-->
-                            <view v-for="(v,k) in list" :key="k" class="user-item">
-                                <image :src="v.avatar" load-lazy></image>
-                            </view>
-                            <!-- #endif -->
-                            <view v-for="(v,k) of user_num_list" :key="k" class="user-item none">
-                                <image :src="appImg.fxhb_none" load-lazy></image>
-                            </view>
-                        </view>
-                        <view class="detail-info-text">还差{{user_num}}人即可瓜分{{coupon_total_money}}元红包,快邀好友来拆</view>
-                        <view class="detail-time-text">{{time_str}}后结束</view>
-                        <view class="main-center">
-                            <app-jump-button open_type="share">
-                                <!-- #ifdef MP -->
-                                <app-button color="#FFFFFF" height="88" width="560"
-                                            background="#ff4544" round>邀请好友一起拆
-                                </app-button>
-                                <!-- #endif -->
-                                <!-- #ifdef H5 -->
-                                <app-button @click="hShareAppMessage" color="#FFFFFF" height="88" width="560"
-                                            background="#ff4544" round>邀请好友一起拆
-                                </app-button>
-                                <!-- #endif -->
-
-
-                            </app-jump-button>
-                        </view>
-                    </view>
-
-                    <!-- 过期 -->
-                    <view v-if="status === 2" class="detail-info">
-                        <view class="detail-info-text cross-center dir-top-nowrap">
-                            <view>超过规定时间,该红包不能拆了</view>
-                            <icon class="icon-detail-time" type></icon>
-                        </view>
-                        <view class="main-center">
-                            <app-button @click="openNew" height="88" width="560" background="#ff4544" color="#FFFFFF"
-                                        font-size="32" round>拆一个新红包
-                            </app-button>
-                        </view>
-                    </view>
-
-                    <!-- 未中奖 -->
-                    <view v-if="status === 1 && is_join == 0" class="detail-info">
-                        <view class="user-list dir-left-wrap main-center">
-                            <block v-for="(v,k) in list" :key="k">
-                                <view class="user-item">
-                                    <image :src="v.avatar" load-lazy></image>
-                                </view>
-                            </block>
-                        </view>
-                        <view class="detail-info-text">很遗憾,该红包已被瓜分完了</view>
-                        <view class="main-center detail-error">
-                            <app-button height="88" width="560" color="#FFFFFF" background="#ff4544" @click="openNew"
-                                        round>
-                                拆一个新红包
-                            </app-button>
-                        </view>
-                    </view>
-
-                    <!-- 已中奖 -->
-                    <view v-if="status === 1 && is_join == 1" class="detail-info">
-                        <view class="detail-info-text">恭喜您,已成功瓜分红包</view>
-                        <view class="dir-left-nowrap cross-center coupon">
-                            <view class="box-grow-1">
-                                <view class="coupon-title">满减券</view>
-                                <view class="coupon-desc">满{{min_price}}可用</view>
-                            </view>
-                            <view class="box-grow-0 dir-left-nowrap cross-bottom">
-                                <view class="coupon-unit cross-bottom">¥</view>
-                                <view class="coupon-money">{{user_price}}</view>
-                            </view>
-                        </view>
-                        <view class="main-center">
-                            <app-button @click="openNew" font-size="32" background="#ff4544" height="88" width="560"
-                                        color="#FFFFFF" round>拆一个新红包
-                            </app-button>
-                        </view>
-                        <view class="main-center coupon-set">
-                            <app-button @click="goods" font-size="32" background="#ffb82f" height="88" width="560"
-                                        color="#FFFFFF" round>
-                                <view class="main-center cross-center">
-                                    <view style="margin-right: 2px">立即使用</view>
-                                    <icon class="icon-right" type></icon>
-                                </view>
-                            </app-button>
-                        </view>
-                    </view>
-
-                    <!-- 中奖列表 -->
-                    <view v-if="status === 1" class="detail-info award-list">
-                        <view class="dir-left dir-left-nowrap main-center cross-center">
-                            <view class="box-grow-0 list-line"></view>
-                            <view class="box-grow-0 list-text">看看大家手气</view>
-                            <view class="box-grow-0 list-line"></view>
-                        </view>
-                        <view class="dir-left-nowrap cross-center list" v-for="(v,k) in list" :key="k">
-                            <view class="box-grow-0">
-                                <image class="user-avatar" :src="v.avatar" load-lazy></image>
-                            </view>
-                            <view class="box-grow-1">{{v.nickname}}</view>
-                            <view class="box-grow-0 dir-top-nowrap main-right">
-                                <view class="main-right">{{v.get_price}}元</view>
-                                <view class="dir-left main-center best" v-if="v.is_best">
-                                    <icon class="user-pond" type></icon>
-                                    <view class="t-extra-small">手气最佳</view>
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-
-                    <!-- 推荐商品 -->
-                    <view class="more-goods" v-if="goods_list && goods_list.length">
-                        <view class="tt-goods dir-left-nowrap cross-center main-center">
-                            <view class="line"></view>
-                            <view class="dir-left-nowrap cross-center">
-                                <icon class="icon-love" type></icon>
-                                <view>商品推荐</view>
-                            </view>
-                            <view class="line"></view>
-                        </view>
-                        <u-ordinary-list :isShowAttr="true" :list="goods_list" :theme="getTheme" :list-style="2"></u-ordinary-list>
-                    </view>
-
-                    <!-- 模态框 -->
-                    <view v-if="show_share_model && user_num" class="act-modal">
-                        <view class="act-modal-bg"></view>
-                        <view class="act-modal-pic cross-center main-center">
-                            <view class="modal-box" :style="{'background-image': `url(${appImg.share_modal_bg})`}">
-                                <view class="modal-close" @click="closeShareModal">
-                                    <icon class="icon-close" type></icon>
-                                </view>
-                                <view class="modal-text dir-left-nowrap main-center cross-bottom">
-                                    <view>还差</view>
-                                    <view class="bold-num">{{user_num}}</view>
-                                    <view>个人即可拆红包</view>
-                                </view>
-                                <view class="dir-left-nowrap main-center cross-bottom">
-                                    <view>一起瓜分</view>
-                                    <view class="bold-money">{{coupon_total_money}}</view>
-                                    <view>元!</view>
-                                </view>
-                                <view class="main-center btn">
-                                    <app-jump-button open_type="share">
-                                        <!-- #ifdef MP -->
-                                        <app-button height="80" width="440" color="#FFFFFF" font-size="28"
-                                                    background="#ff4544" round>邀请好友一起拆
-                                        </app-button>
-                                        <!-- #endif -->
-                                        <!-- #ifdef H5 -->
-                                        <app-button @click="hShareAppMessage" height="80" width="440" color="#FFFFFF" font-size="28"
-                                                    background="#ff4544" round>邀请好友一起拆
-                                        </app-button>
-                                        <!-- #endif -->
-                                    </app-jump-button>
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-
-                    <view v-if="is_new" class="hongbao dir-left main-center">
-                        <view class="hongbao-content" :style="{'background-image': `url(${appImg.hongbao_bg})`}">
-                            <view class="hongbao-desc">
-                                <view>{{config.count_price}}元红包已包好</view>
-                                <view>快拆开和小伙伴分红包</view>
-                            </view>
-                            <view @click="open">
-                                <icon class="hongbao-btn" type></icon>
-                            </view>
-                        </view>
-                    </view>
-                </view>
-            </view>
-        </app-layout>
-    </view>
-</template>
-
-<script>
-import {mapGetters, mapState} from 'vuex';
-import uOrdinaryList from '../../../components/page-component/u-goods-list/u-ordinary-list.vue';
-
-export default {
-    name: "detail",
-    components: {
-        uOrdinaryList
-    },
-    computed: {
-        ...mapState({
-            appImg: state => state.mallConfig.plugin.fxhb.app_image
-        }),
-        ...mapGetters('mallConfig', {
-            getTheme: 'getTheme'
-            })
-        },
-	    
-        data() {
-            let interval_time;
-            return {
-                interval_time,
-                user_activity_id: 0,
-                config: null,
-                goods_list: [],
-                show_share_model: false,
-                time_str: "00:00:00",
-                is_new: false,
-
-                coupon_total_money: 0,
-                is_join: 0,
-                is_my_hongbao: false,
-                list: null,
-                min_price: 0,
-                reset_time: null,
-                status: -1,
-                totalUser: 0,
-                user_num: 0,
-                user_num_list: [],
-                user_price: 0,
-                again_open: true,
-                page_url: '',
-                template_message: []
-            }
-        },
-	    
-        onLoad(options) { this.$commonLoad.onload(options);
-            this.user_activity_id = options.user_activity_id ? options.user_activity_id : '';
-            this.loadConfig();
-        },
-        onUnload: function () {
-            clearInterval(this.intervalTime);
-        },
-
-        // #ifdef MP
-        onShareAppMessage() {
-            return this.hShareAppMessage();
-        },
-        // #endif
-        methods: {
-            hShareAppMessage(s = false) {
-                return this.$shareAppMessage({
-                    title: this.config.share_title,
-                    path: '/plugins/fxhb/detail/detail',
-                    params: {
-                        user_activity_id: this.user_activity_id,
-                    },
-                    imageUrl: this.config.share_pic_url
-                }, s);
-            },
-            loadConfig() {
-                const self = this;
-                uni.showLoading({
-	                title: '加载中',
-                });
-                self.$request({
-                    url: self.$api.fxhb.index,
-                    data: {
-                        user_activity_id: self.user_activity_id
-                    }
-                }).then(info => {
-	                uni.hideLoading();
-                    if (info.code === 0) {
-                        self.config = info.data.config;
-                        self.template_message = info.data.template_message;
-                        if (info.data.user_activity_id) {
-                            self.user_activity_id = info.data.user_activity_id;
-                            self.loadData()
-                        } else {
-                            if (self.user_activity_id) {
-                                self.subscribe();
-                            } else {
-                                self.openNew();
-                            }
-                        }
-                    } else {
-                        uni.showToast({icon: 'none', title: info.msg});
-                        setTimeout(() => {
-                            uni.redirectTo({url: '/pages/index/index'})
-                        }, 2000)
-                    }
-                }).catch(() => {
-                    uni.hideLoading();
-                })
-            },
-
-            openNew() {
-                [this.status, this.is_new, this.goods_list] = [-1, true, []];
-            },
-            open() {
-                if (this.again_open) {
-                    this.user_activity_id = 0;
-                    this.subscribe();
-                    this.again_open = false;
-                }
-            },
-            rules() {
-                uni.navigateTo({
-                    url: `/pages/rules/index?url=${encodeURIComponent(this.$api.fxhb.index)}&keys=${JSON.stringify(['config', 'remark'])}`,
-                });
-            },
-            homes() {
-                uni.navigateTo({url: `/pages/index/index`})
-            },
-            goods() {
-                uni.redirectTo({url: this.page_url});
-            },
-
-            subscribe(){
-                this.detailSubmit();
-                // return;
-                // self.$subscribe(self.template_message).then(res => {
-                //     let tpl_id = self.template_message[0];
-                //     if (res[tpl_id] == 'accept') {
-                //         uni.showModal({
-                //             title: '提示',
-                //             content: '订阅成功',
-                //             showCancel: false,
-                //             success(res) {
-                //                 self.detailSubmit();
-                //             }
-                //         })
-                //     } else {
-                //         uni.showModal({
-                //             title: '提示',
-                //             content: '取消订阅',
-                //             showCancel: false,
-                //             success(res) {
-                //                 self.detailSubmit();
-                //             }
-                //         })
-                //     }
-                // }).catch(res => {
-                //     self.detailSubmit();
-                // });
-            },
-            detailSubmit() {
-                let self = this;
-	            uni.showLoading({
-		            title: '抢红包中',
-                    mask: true,
-                });
-                this.$request({
-                    url: this.$api.fxhb.join,
-                    method: 'post',
-                    data: {
-                        user_activity_id: this.user_activity_id
-                    }
-                }).then(info => {
-	                uni.hideLoading();
-                    if (info.code === 0) {
-                        this.result(info.data.queueId, info.data.token);
-                    } else {
-                        uni.showToast({icon: 'none', title: info.msg});
-                        setTimeout(() => {
-                            self.openNew();
-                        }, 2000)
-                    }
-                }).catch(() => {
-                    uni.hideLoading();
-                })
-            },
-
-            async loadData() {
-	            uni.showLoading({
-		            title: '加载中',
-		            mask: true,
-	            });
-                const info = await this.$request({
-                    url: this.$api.fxhb.detail,
-                    data: {
-                        user_activity_id: this.user_activity_id
-                    }
-                });
-                uni.hideLoading();
-                if (info.code === 0) {
-                    let {
-                        coupon_total_money,
-                        is_join, is_my_hongbao,
-                        list, min_price, page_url,
-                        reset_time, status, totalUser,
-                        user_num, user_price
-                    } = info.data;
-                    this.coupon_total_money = coupon_total_money;
-                    this.is_join = is_join;
-                    this.is_my_hongbao = is_my_hongbao;
-                    this.list = list;
-                    this.min_price = min_price;
-                    this.page_url = page_url;
-                    this.reset_time = reset_time;
-                    this.totalUser = totalUser;
-                    this.status = status;
-                    this.user_num = user_num;
-                    this.user_price = user_price;
-                    // this.user_num_list = [];
-                    this.user_num_list = new Array(this.user_num);
-                    // for (let i = 0; i < this.user_num; i++) {
-                    //     this.user_num_list.push(i);
-                    // }
-                    this.setTimeStart();
-                    this.getRecommend();
-                    this.again_open = true;
-                } else {
-                    uni.showToast({icon: 'none', title: info.msg});
-                    setTimeout(() => {
-                        uni.redirectTo({url: '/pages/index/index'})
-                    }, 2000)
-                }
-            },
-
-            setTimeStart() {
-                const self = this;
-                clearInterval(this.interval_time);
-
-                let times = function () {
-                    let hour = 0,
-                        minute = 0,
-                        second = 0; //时间默认值
-                    let times = self.reset_time;
-                    times--;
-                    if (times > 0) {
-                        hour = Math.floor(times / (60 * 60));
-                        minute = Math.floor(times / 60) - (hour * 60);
-                        second = Math.floor(times) - (hour * 60 * 60) - (minute * 60);
-                    }
-                    [self.reset_time, self.time_list] = [times, {hour, minute, second}];
-                    self.time_str = (hour < 10 ? ('0' + hour) : hour) + ':' + (minute < 10 ? ('0' + minute) : minute) + ':' + (second < 10 ? ('0' + second) : second);
-                    if (times <= 0) {
-                        clearInterval(self.intervalTime);
-                    }
-                };
-                times();
-                this.interval_time = setInterval(() => {
-                    times();
-                }, 1000);
-            },
-
-            result(queueId, token) {
-	            uni.showLoading({
-		            title: '加载中',
-		            mask: true,
-	            });
-                this.$request({
-                    url: this.$api.fxhb.join_result,
-                    data: {
-                        queueId: queueId,
-                        token: token
-                    }
-                }).then(info => {
-                    if (info.code === 0) {
-                        if (info.data.retry && info.data.retry == 1) {
-                            setTimeout(() => {
-                                this.result(queueId, token)
-                            }, 1000);
-                        } else {
-                            this.user_activity_id = info.data.user_activity_id;
-                            this.loadData();
-                            uni.hideLoading();
-                            this.showShareModal();
-                        }
-                    } else {
-                        uni.hideLoading();
-                        this.status = 2;
-                        uni.showToast({icon: 'none', title: info.msg});
-                        setTimeout(() => {
-                            uni.redirectTo({url: '/pages/index/index'})
-                        }, 2000)
-                    }
-                })
-            },
-
-            //打开分享提示框
-            showShareModal: function () {
-                [this.is_new, this.show_share_model] = [false, true];
-            },
-
-            //关闭分享提示框
-            closeShareModal: function () {
-                [this.show_share_model] = [false];
-            },
-
-            async getRecommend () {
-	            uni.showLoading({
-		            title: '加载中',
-		            mask: true,
-	            });
-                const info = await this.$request({
-                    url: this.$api.fxhb.recommend,
-                });
-	            uni.hideLoading();
-                if (info.code === 0) {
-                    this.goods_list = info.data.list;
-                }
-            }
-        }
-    }
-</script>
-<style scoped lang="scss">
-    .app-layout .detail-bg {
-        background: #fe6b2e;
-        min-height: 100vh;
-    }
-    .app-layout /deep/ .app-layout {
-        background: #fe6b2e;
-        min-height: 100vh;
-    }
-    .fxhb-bg {
-        background-size: 100% auto;
-        background-repeat: no-repeat;
-        height: #{464rpx};
-        position: relative;
-        z-index: 50;
-    }
-
-    .fxhb-right {
-        font-size: #{24rpx};
-        color: #FFFFFF;
-        float: right;
-
-        view {
-            background: rgba(0, 0, 0, .5);
-            border-radius: #{28rpx} 0 0 #{28rpx};
-            line-height: #{56rpx};
-            text-align: center;
-            width: #{136rpx};
-            margin-top: #{24rpx};
-        }
-    }
-
-    .fxhb-start {
-        position: fixed;
-        width: 100%;
-        left: 0;
-        top: #{380rpx};
-        height: 100%;
-        z-index: 10;
-    }
-
-    .hongbao {
-        position: relative;
-        width: 100%;
-        left: 0;
-        height: 100%;
-        z-index: 51;
-
-        .hongbao-content {
-            font-size: #{36rpx};
-            padding: #{350rpx} #{25rpx} 0 #{25rpx};
-            background-size: 100% auto;
-            background-repeat: no-repeat;
-            width: #{602rpx};
-            height: #{712rpx};
-            text-align: center;
-
-            .hongbao-desc {
-                margin-bottom: #{100rpx};
-                line-height: 1.5;
-                color: #ffe15d;
-                font-size: 13pt;
-            }
-        }
-
-        .hongbao-btn {
-            background-image: url("./../image/open_hongbao_btn.png");
-            line-height: #{96rpx};
-            height: #{96rpx};
-            width: #{416rpx};
-            background-repeat: no-repeat;
-            background-size: 100% 100%;
-            text-align: center;
-        }
-    }
-
-    .fxhb-box {
-        margin-top: #{-68rpx};
-        background: #fe6b2e;
-
-        .detail-info {
-            background: rgba(255, 255, 255, 0.9);
-            border-radius: #{16rpx};
-            margin: 0 #{24rpx};
-            padding: #{50rpx};
-            z-index: 100;
-            position: relative;
-        }
-
-        .user-list {
-            overflow: hidden;
-            margin-bottom: #{16rpx};
-
-            .user-item {
-                border: #{2rpx} solid #ff5c5c;
-                width: #{104rpx};
-                height: #{104rpx};
-                margin-left: #{23rpx};
-                margin-right: #{23rpx};
-                margin-bottom: #{40rpx};
-                display: inline-block;
-                overflow: hidden;
-                border-radius: #{999rpx};
-                background-color: #fff;
-                float: left;
-            }
-
-            .none {
-                border-style: none;
-            }
-
-            image {
-                width: 100%;
-                height: 100%;
-            }
-        }
-
-        .detail-info-text {
-            text-align: center;
-            color: #666666;
-            font-size: #{28rpx};
-        }
-
-        .detail-time-text {
-            color: #999999;
-            text-align: center;
-            margin-top: #{24rpx};
-            margin-bottom: #{40rpx};
-            font-size: #{28rpx};
-        }
-
-        .icon-detail-time {
-            background-size: 100% 100%;
-            background-image: url("./../image/cry.png");
-            width: #{190rpx};
-            height: #{168rpx};
-            margin-top: #{48rpx};
-            margin-bottom: #{32rpx};
-        }
-    }
-
-    .more-goods {
-        padding-bottom: #{32rpx};
-        color: #FFFFFF;
-        font-size: #{24rpx};
-        margin-top: #{48rpx};
-
-        .tt-goods {
-            margin-bottom: #{12rpx};
-        }
-
-        .line {
-            height: #{1px};
-            width: #{40rpx};
-            background: #FFFFFF;
-            margin: 0 #{24rpx};
-        }
-
-        .icon-love {
-            width: #{24rpx};
-            height: #{24rpx};
-            background-size: 100% 100%;
-            background-repeat: no-repeat;
-            margin-right: #{12rpx};
-            background-image: url("./../image/love.png");
-        }
-
-    }
-
-    .detail-error {
-        margin-top: #{40rpx};
-    }
-
-    .award-list {
-        margin-top: #{32rpx} !important;
-        padding-top: #{48rpx} !important;
-        color: #353535;
-        padding-bottom: #{56rpx} !important;
-
-        .list {
-            margin-top: #{40rpx};
-        }
-
-        .list-line {
-            width: #{176rpx};
-            height: #{2rpx};
-            background: #dbdbdb;
-        }
-
-        .list-text {
-            font-size: #{32rpx};
-            padding: 0 #{50rpx};
-        }
-
-        .user-avatar {
-            width: #{80rpx};
-            height: #{80rpx};
-            border-radius: 50%;
-            margin-right: #{20rpx};
-        }
-
-        .best {
-            color: #ffb82f;
-            font-size: #{28rpx};
-            margin-top: #{10rpx};
-            .user-pond {
-                width: #{40rpx};
-                height: #{30rpx};
-                margin-right: #{10rpx};
-                background-image: url("./../image/best_icon.png");
-                background-repeat: no-repeat;
-                background-size: 100% auto;
-            }
-        }
-    }
-
-    .coupon-set {
-        margin-top: #{24rpx};
-        .icon-right {
-            width: #{12rpx};
-            height: #{22rpx};
-            margin-left: #{10rpx};
-            background-image: url("https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right-white.png");
-            background-repeat: no-repeat;
-            background-size: 100% auto;
-        }
-    }
-    .coupon {
-        margin-top: #{32rpx};
-        background-size: 100% 100%;
-        height: #{190rpx};
-        background-repeat: no-repeat;
-        background-image: url("./../image/coupon.png");
-        margin-bottom: #{24rpx};
-        .coupon-title {
-            font-size: #{48rpx};
-            padding-left: #{56rpx};
-            color: #8f4c1a;
-            margin-bottom: #{16rpx};
-        }
-        .coupon-desc {
-            font-size: #{28rpx};
-            padding-left: #{56rpx};
-            color: #8f4c1a;
-        }
-        .coupon-unit {
-            font-size: #{50rpx};
-            line-height: 1.35;
-            color: #ff5c5c;
-            padding-bottom: #{2rpx};
-        }
-        .coupon-money {
-            font-size: #{80rpx};
-            line-height: 1;
-            font-weight: bold;
-            padding-right: #{56rpx};
-            color: #ff5c5c;
-        }
-    }
-    .act-modal {
-        position: fixed;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 100%;
-        z-index: 2001;
-        transition: 200ms;
-        .show {
-            visibility: visible;
-            opacity: 1;
-        }
-        .act-modal-bg {
-            background: rgba(0, 0, 0, 0.5);
-            position: fixed;
-            left: 0;
-            top: 0;
-            width: 100%;
-            height: 100%;
-            z-index: 1;
-        }
-        .act-modal-pic {
-            background: rgba(0, 0, 0, 0.25);
-            position: fixed;
-            left: 0;
-            top: 0;
-            width: 100%;
-            height: 100%;
-            z-index: 1;
-        }
-    }
-    .modal-box {
-        background-size: 100% 100%;
-        background-repeat: no-repeat;
-        height: #{816rpx};
-        width: #{606rpx};
-        text-align: center;
-        font-size: #{40rpx};
-        color: #666666;
-        .modal-close {
-            float: right;
-            margin-top: #{32rpx};
-            margin-right: #{32rpx};
-            .icon-close {
-                background-image: url("https://shop.9026.com/web/statics/image/mall/static/icon/close.png");
-                background-repeat: no-repeat;
-                background-size: 100% auto;
-                height: #{30rpx};
-                width: #{30rpx};
-            }
-        }
-        .modal-text {
-            margin-top: #{448rpx};
-            margin-bottom: #{28rpx};
-        }
-        .bold-num {
-            font-size: #{54rpx};
-            color: #ffc73f;
-            line-height:1em;
-            font-weight: bold;
-        }
-        .bold-money {
-            font-size: #{68rpx};
-            color: #ffc73f;
-            line-height:1em;
-            font-weight: bold;
-        }
-        .btn {
-            margin-top: #{64rpx};
-        }
-    }
-</style>

BIN
src/plugins/fxhb/image/best_icon.png


BIN
src/plugins/fxhb/image/coupon.png


BIN
src/plugins/fxhb/image/cry.png


BIN
src/plugins/fxhb/image/love.png


BIN
src/plugins/fxhb/image/open_hongbao_btn.png


+ 0 - 481
src/plugins/gift/address/address.vue

xqd
@@ -1,481 +0,0 @@
-<template>
-    <app-layout>
-        <view class="address" v-if="loading">
-
-            <app-submit-address
-                    v-bind:previewData="previewData"
-                    v-bind:theme="theme"
-                    v-bind:address="address"
-                    v-bind:name="name"
-                    v-bind:mobile="mobile"
-                    v-bind:goods_id="goods_id"
-                    v-bind:user_order_id="user_order_id"
-                    v-bind:store_list="store_list"
-                    v-bind:store_index="store_index"
-                    v-on:setMethod="setMethod"
-                    v-bind:send_type="send_type"
-                    v-bind:goods="goods"
-                    v-bind:remark="remark"
-                    v-bind:store="store"
-                    v-bind:mch="mch"
-                    v-bind:dis_send_type="dis_send_type"
-                    v-bind:diyForm="diyForm"
-                    v-on:city="city"
-                    v-on:delivery="delivery"
-                    v-on:express="express"
-                    :template_message_captain="template_message_captain"
-            ></app-submit-address>
-
-            <view class="some-good">
-                <view class="goods dir-left-nowrap" v-for="(item, index) in goods" :key="index">
-                    <image :src="item.cover_pic" class="pic"></image>
-                    <view class="content dir-top-nowrap main-left">
-                        <text class="name t-omit-two">
-                            {{item.name}}
-                        </text>
-                        <text class="attr t-omit">
-                            {{item.attr}}
-                        </text>
-                        <text class="number">×{{item.num}}</text>
-                    </view>
-                </view>
-            </view>
-
-            <view class="freight dir-left-nowrap main-between cross-center" v-if="mch.express_price != 0">
-                <text class="text">运费</text>
-                <text :class="theme+'-color'">¥{{mch.express_price}}</text>
-            </view>
-
-            <view v-if="mch.order_form && mch.order_form.status == '1'">
-                <app-diy-form
-                        v-bind:title="mch.order_form.name"
-                        v-bind:list="mch.order_form.value"
-                        v-bind:sign="mchIndex"
-                        label-position="top"
-                        v-on:input="diyFormInput"
-                        v-bind:show-scroll-btn="mch.order_form.show_scroll"
-                ></app-diy-form>
-            </view>
-            <view class="leave-message" v-else-if="mch.show_remark !== false && mch.has_goods_form !== true">
-                <textarea class="textarea" placeholder-class="place" v-model="remark" placeholder="备注留言"></textarea>
-            </view>
-
-            <template v-if="mch.has_goods_form">
-                <view style="padding: 24rpx; color: #666666">自定义表单</view>
-                <view v-for="(goodsItem, goodsIndex) in mch.goods_list"
-                      :key="goodsIndex"
-                      v-if="goodsItem.form && !goodsItem.form.same_form"
-                      style="margin-bottom: 20rpx">
-                    <view class="goods-list some-good" v-if="mch.diff_goods_form_count !== 1">
-                        <view v-for="(subGoodsItem, subGoodsIndex) in mch.goods_list"
-                              :key="subGoodsIndex"
-                              v-if="subGoodsItem.form && subGoodsItem.form.id == goodsItem.form.id"
-                              class="goods dir-left-nowrap">
-                            <image class="pic"
-                                   :src="subGoodsItem.goods_attr.pic_url ? subGoodsItem.goods_attr.pic_url : subGoodsItem.cover_pic"></image>
-                            <view class="box-grow-1 content">
-                                <view class="goods-name">{{subGoodsItem.name}}</view>
-                                <view class="dir-left-wrap attr-list">
-                                    <view v-for="(attrItem,attrIndex) in subGoodsItem.attr_list"
-                                          :key="attrIndex"
-                                          class="attr-item attr">
-                                        {{attrItem.attr_group_name}}:{{attrItem.attr_name}}
-                                    </view>
-                                </view>
-                                <view class="dir-left-nowrap">
-                                    <view class="box-grow-1 goods-num number">×{{subGoodsItem.num}}</view>
-                                </view>
-                            </view>
-                        </view>
-                    </view>
-                    <app-diy-form
-                            :list="goodsItem.form.value"
-                            @input="handleGoodsFormInput"
-                            @validate="handleGoodsFormValidate"
-                            :sign="`0,${goodsIndex},${goodsItem.form.id}`"></app-diy-form>
-                </view>
-            </template>
-
-            <!-- 空白格 -->
-            <view class="page-width empty">
-                <app-empty-bottom
-                        backgroundColor="#f7f7f7"
-                        v-bind:height="Number(110)"
-                ></app-empty-bottom>
-            </view>
-        </view>
-    </app-layout>
-</template>
-
-<script>
-    import appSubimtAddress from './app-submit-address.vue';
-    import {mapState} from 'vuex';
-    import appEmptyBottom from '../../../components/basic-component/app-empty-bottom/app-empty-bottom.vue';
-    import AppDiyForm from "../../../components/page-component/app-diy-form/app-diy-form";
-
-    export default {
-        name: 'address',
-
-        data() {
-            return {
-                previewData: {
-                    hasCity: false
-                },
-                address_id: '',
-                address: {},
-                goods_id: -1,
-                user_order_id: 0,
-                goods: [],
-                store_list: [],
-                store_index: 0,
-                send_type: [],
-                remark: '',
-                store: {},
-                mch: {},
-                send_data: null,
-                deli: '',
-                loading: false,
-                dis_send_type: '',
-                diyForm: [],
-                template_message_captain: []
-            }
-        },
-
-        onLoad(options) { this.$commonLoad.onload(options);
-            this.goods_id = options.goods_id;
-            this.user_order_id = options.id;
-            let url = '';
-            if (options.status == 2) {
-                url = this.$api.gift.join_detail
-            } else if (options.status == 1) {
-                url = this.$api.gift.win_detail;
-            }
-            this.$request({
-                url: url,
-                data: {
-                    user_order_id: options.id,
-                }
-            }).then(res => {
-                for (let i in res.data.detail.detail) {
-                    res.data.detail.detail[i].form_data = null;
-                }
-                this.template_message_captain = res.data.template_message_captain;
-                this.goods = res.data.detail.detail;
-                let data = {
-                    list: [
-                        {
-                            mch_id: 0,
-                            goods_list: [],
-                            use_integral: 0,
-                            user_coupon_id: 0,
-                            distance: 0,
-                            remark: '',
-                            order_form: [],
-                        }
-                    ],
-                    address_id: 0
-                };
-                for (let i = 0; i < this.goods.length; i++) {
-                    let good = {
-                        id: this.goods[i].goods_id,
-                        attr: [],
-                        num: this.goods[i].num,
-                        cat_id: 0,
-                        goods_attr_id: this.goods[i].goods_attr_id,
-                        cart_id: 0,
-                        user_order_id: options.id,
-                    };
-                    let attr = [];
-                    let attr_list = this.goods[i].goods_info;
-                    for (let j = 0; j < attr_list.length; j++) {
-                        attr.push({
-                            attr_id: attr_list[j].attr_id,
-                            attr_group_id: attr_list[j].attr_group_id,
-                        })
-                    }
-                    good.attr = attr;
-                    data.list[0].goods_list.push(good);
-                }
-
-                this.send_data = data;
-                this.$request({
-                    url: this.$api.gift.preview,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    if (res.code === 0) {
-
-                        this.send_type = res.data.mch_list[0].delivery.send_type_list;
-                        this.dis_send_type = res.data.mch_list[0].delivery.send_type;
-                        this.mch = res.data.mch_list[0];
-                        this.address = res.data.address;
-                        this.loading = true;
-                        if (this.send_type[0].value === 'offline') {
-                            // this.store = res.data.mch_list[0].store;
-                            this.setMethod();
-                        }
-                    } else {
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                            success: function () {
-                                uni.navigateBack();
-                            }
-                        })
-                    }
-                })
-            });
-        },
-
-        onShow() {
-            if (this.$store.state.gift.address_id && !this.$validation.isEmpty(this.send_data)) {
-                let data = this.send_data;
-                data.list[0].send_type = this.deli;
-                data.list[0].address_id = this.$store.state.gift.address_id;
-                data.address_id = this.$store.state.gift.address_id;
-                this.$request({
-                    url: this.$api.gift.preview,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.send_type = res.data.mch_list[0].delivery.send_type_list;
-                        this.mch = res.data.mch_list[0];
-                        this.address = res.data.address;
-                        if (this.deli === 'city') {
-                            this.address =  this.mch.address;
-                        }
-                    } else {
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                            success: function () {
-                                uni.navigateBack();
-                            }
-                        });
-                    }
-                })
-            }
-            if (this.$store.state.gift.store_id) {
-                for (let i = 0; i < this.store_list.length; i++) {
-                    if (this.store_list[i].id === this.$store.state.gift.store_id) {
-                        this.store = this.store_list[i];
-                    }
-                }
-            }
-        },
-
-        methods: {
-            delivery(data) {
-                this.deli = data;
-            },
-            setMethod() {
-                let _this = this;
-                // #ifdef MP
-                uni.getLocation({
-                    type: 'wgs84',
-                    success: function (res) {
-                        _this.$request({
-                            url: _this.$api.order.store_list,
-                            data: {
-                                latitude: res.latitude,
-                                longitude: res.longitude,
-                                goods_id: _this.goods_id,
-                            }
-                        }).then(res => {
-                            _this.store_list = res.data.list;
-                            _this.store = res.data.list[0];
-                        })
-                    }
-                });
-                // #endif
-                // #ifdef H5
-                this.$jwx.getLocation({
-                    success: function (res) {
-                        _this.$request({
-                            url: _this.$api.order.store_list,
-                            data: {
-                                latitude: res.latitude,
-                                longitude: res.longitude,
-                                goods_id: _this.goods_id,
-                            }
-                        }).then(res => {
-                            _this.store_list = res.data.list;
-                            _this.store = res.data.list[0];
-                        });
-                    }
-                });
-                // #endif
-            },
-
-            city() {
-                let data = this.send_data;
-                data.list[0].send_type = 'city';
-                if (this.address && this.address.type !== 1) {
-                    data.list[0].address_id = this.address.id;
-                }
-                this.$request({
-                    url: this.$api.gift.preview,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    this.send_type = res.data.mch_list[0].delivery.send_type_list;
-                    this.mch = res.data.mch_list[0];
-                    this.address = res.data.mch_list[0].address;
-                    if (this.address && this.address.type !== 1) {
-                        this.address = null;
-                    }
-                })
-            },
-            express() {
-                let data = this.send_data;
-                data.list[0].send_type = 'express';
-                if (this.address) {
-                    data.list[0].address_id = this.address.id;
-                }
-                this.$request({
-                    url: this.$api.gift.preview,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    this.send_type = res.data.mch_list[0].delivery.send_type_list;
-                    this.mch = res.data.mch_list[0];
-                    this.address = res.data.mch_list[0].address;
-                })
-            },
-            diyFormInput({data}) {
-                this.diyForm = data;
-            },
-
-            handleGoodsFormInput(data, sign) {
-                const signArr = sign.split(',');
-                const goodsIndex = parseInt(signArr[1]);
-                const result = [];
-                for (let i in data) {
-                    result[i] = {
-                        key: data[i].key,
-                        label: data[i].name,
-                        value: data[i].value,
-                        required: data[i].is_required,
-                    };
-                }
-                this.goods[goodsIndex].form_data = result;
-            },
-            handleGoodsFormValidate(result, sign) {
-                const signArr = sign.split(',');
-                const goodsIndex = parseInt(signArr[1]);
-                this.goods[goodsIndex].goods_form_validate_result = result;
-            },
-        },
-
-        computed: {
-            ...mapState('gift', {
-                theme: state => state.theme,
-            }),
-        },
-
-        components: {
-            'app-submit-address': appSubimtAddress,
-            'app-empty-bottom': appEmptyBottom,
-            'app-diy-form': AppDiyForm,
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-    @import '../css/gift';
-
-    /* 商品页面 */
-    .address {
-        position: absolute;
-        width: 100%;
-        min-height: 100%;
-        background-color: #f7f7f7;
-    }
-
-    .some-good {
-        background: #ffffff;
-        padding: #{28upx 24upx 0 24upx};
-        overflow: hidden;
-
-        .goods {
-            height: #{156upx};
-            margin-bottom: #{28upx};
-
-            .pic {
-                width: #{156upx};
-                height: #{156upx};
-                margin-right: #{24upx};
-            }
-
-            .content {
-                width: #{522upx};
-                height: #{156upx};
-
-                .name {
-                    font-size: #{32upx};
-                    color: #353535;
-                    line-height: #{38upx};
-                }
-
-                .attr {
-                    color: #999999;
-                    font-size: #{24upx};
-                    line-height: 1;
-                    margin-top: #{18upx};
-                }
-
-                .number {
-                    color: #999999;
-                    font-size: #{24upx};
-                    line-height: 1;
-                    margin-top: #{18upx}
-                }
-            }
-        }
-    }
-
-    .leave-message {
-        margin-top: #{24upx};
-        height: #{100upx};
-        line-height: #{100upx};
-        padding: #{18upx 24upx};
-        background-color: #ffffff;
-
-        .textarea {
-            font-size: #{32upx};
-            width: 100%;
-            height: 100%;
-            line-height: #{64upx};
-            padding: 0;
-        }
-
-        .place {
-            line-height: #{64upx};
-        }
-    }
-
-    .freight {
-        width: #{750upx};
-        background-color: #ffffff;
-        padding: #{0 24upx};
-        margin-top: #{20upx};
-        height: #{88upx};
-
-        text {
-            font-size: #{32upx};
-        }
-
-        .text {
-            color: #353535;
-        }
-    }
-</style>

+ 0 - 506
src/plugins/gift/address/app-submit-address.vue

xqd
@@ -1,506 +0,0 @@
-<template>
-    <view class="app-submit-address">
-
-        <view class="information dir-top-nowrap main-left">
-            <view class="express dir-left-nowrap cross-center" @click="navigateAddress"
-                  v-if="delivery === 'express' || delivery === 'city'">
-                <view class="dir-top-nowrap content" v-if="address">
-                    <view class="top dir-left-nowrap main-between">
-                        <text class="font">收货人:{{address.name}}</text>
-                        <text class="font">{{address.mobile}}</text>
-                    </view>
-                    <view class="bottom font t-omit-two">
-                        收货地址:{{address.province}}{{address.city}}{{address.district}}{{address.detail}}
-                    </view>
-                </view>
-                <view class="content font" v-else>请选择收货地址</view>
-                <view>
-                    <image class="icon-image" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-                </view>
-            </view>
-            <view class="lifting dir-left-nowrap cross-center main-between" v-else>
-                <input type="text" placeholder="姓名" v-model="name">
-                <input type="number" placeholder="电话" v-model="mobile">
-            </view>
-            <image class="line" :src="appImg.common.address_bottom"></image>
-        </view>
-
-        <view class="delivery-method dir-left-nowrap main-between cross-center">
-            <view>配送方式</view>
-            <view class="dir-left-nowrap main-between method">
-                <text v-for="(item, index) in send_type" class="item" @click="setMethod(item.value)" :key="index"
-                      :class="[`${delivery === item.value ? theme + '-background '+'text-color' : 'item-default'}`]">
-                    {{item.name}}
-                </text>
-            </view>
-        </view>
-
-        <view class="store-information dir-top-nowrap" v-if="delivery === 'offline'">
-            <view class="font" v-if="Object.keys(store).length === 0">
-                暂无门店,请选择其他配送方式
-            </view>
-            <view class="font" v-if="Object.keys(store).length > 0">门店信息</view>
-            <view class="dir-left-nowrap main-between cross-center" v-if="Object.keys(store).length > 0"
-                  @click="route_go">
-                <view class="content dir-top-nowrap">
-                    <view class="dir-left-nowrap main-between">
-                        <view class="font">{{store.name}}</view>
-                        <view>
-                            <image class="location" src="https://shop.9026.com/web/statics/image/mall/static/icon/location.png"></image>
-                            <text class="font">距您{{store.distance}}</text>
-                        </view>
-                    </view>
-                    <view class="address">
-                        {{store.address}}
-                    </view>
-                </view>
-                <image class="icon-image" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-            </view>
-        </view>
-
-        <view class="city" v-if="delivery === 'city'">
-            <template v-if="mch.city.error">
-                <view class="dir-left-nowrap cross-center">
-                    <view class="box-grow-1 t-omit error">{{mch.city.error}}</view>
-                    <view class="box-grow-0 btn" @click="jump()">查看配送范围</view>
-                </view>
-            </template>
-            <template v-else>
-                <view class="t-omit">发货地址:{{mch.city.address}}</view>
-                <view class="t-omit" v-if="mch.city.explain">{{mch.city.explain}}</view>
-                <view class="dir-left-nowrap cross-center">
-                    <view class="box-grow-1 t-omit error" style="color: #353535;">该地址在配送范围内</view>
-                    <view class="box-grow-0 btn" @click="jump()">查看配送范围</view>
-                </view>
-            </template>
-        </view>
-
-        <view class="safe-area-inset-bottom u-bottom-fixed">
-            <view class="button"  @click="submit" v-bind:class="[`${theme}-background`]">
-                确认提交
-            </view>
-        </view>
-    </view>
-</template>
-
-<script>
-    import {mapState} from 'vuex';
-    import appIphoneX from '../../../components/basic-component/app-iphone-x/app-iphone-x.vue';
-
-    export default {
-
-        props: [`theme`, `address`, `goods_id`, `user_order_id`, `store_list`, `store_index`, `send_type`, `goods`, `remark`, `mch`, `dis_send_type`, `diyForm`,
-            `store`, `template_message_captain`],
-
-        data() {
-            return {
-                delivery: 'express',
-                name: '',
-                mobile: '',
-                send_text: '',
-                hasCity: false,
-            }
-        },
-
-        methods: {
-            jump() {
-                uni.navigateTo({
-                    url: `/pages/order-submit/map`,
-                });
-            },
-            navigateAddress() {
-                let url = '/pages/order-submit/address-pick';
-                url += '?sign=gift&id=' + this.user_order_id + '&hasCity=' + this.hasCity;
-                uni.navigateTo({
-                    url: url,
-                });
-            },
-
-            setMethod(item) {
-                this.delivery = item;
-                this.send_text = item;
-                this.hasCity = false;
-                this.$emit('delivery', item);
-                if (this.delivery === 'offline') {
-                    this.$emit('setMethod');
-                } else if (this.delivery === 'city') {
-                    this.hasCity = true;
-                    this.$emit('city');
-                } else if (this.delivery === 'express') {
-                    this.$emit('express');
-                }
-            },
-
-            submit() {
-                this.$subscribe(this.template_message_captain).then(() => {
-                    this.submission();
-                }).catch(() => {
-                    this.submission();
-                });
-            },
-
-            submission() {
-                for (let i in this.goods) {
-                    const item = this.goods[i];
-                    if (!item.goods_form_validate_result) continue;
-                    if (item.goods_form_validate_result.hasError) {
-                        uni.showModal({
-                            title: '提示',
-                            content: item.goods_form_validate_result.errors[0].msg,
-                            showCancel: false,
-                        });
-                        return;
-                    }
-                }
-                uni.showLoading({
-                    title: '提交中'
-                });
-                let data = {
-                    list: [
-                        {
-                            mch_id: 0,
-                            goods_list: [],
-                            send_type: this.send_text,
-                            store_id: this.store.id,
-                            use_integral: 0,
-                            user_coupon_id: 0,
-                            remark: this.remark,
-                            order_form: this.diyForm,
-                        }
-                    ],
-                    address_id: this.address && this.address.id ? this.address.id : 0,
-                    address: {
-                        name: this.name,
-                        mobile: this.mobile,
-                    }
-                };
-                for (let i = 0; i < this.goods.length; i++) {
-                    let good = {
-                        id: this.goods[i].goods_id,
-                        attr: [],
-                        num: this.goods[i].num,
-                        cat_id: 0,
-                        goods_attr_id: this.goods[i].goods_attr_id,
-                        cart_id: 0,
-                        user_order_id: this.user_order_id,
-                        form_data: this.goods[i].form_data,
-                    };
-                    let attr = [];
-                    let attr_list = this.goods[i].goods_info;
-                    for (let j = 0; j < attr_list.length; j++) {
-                        attr.push({
-                            attr_id: attr_list[j].attr_id,
-                            attr_group_id: attr_list[j].attr_group_id,
-                        })
-                    }
-
-                    good.attr = attr;
-                    data.list[0].goods_list.push(good);
-                }
-                this.$request({
-                    url: this.$api.gift.convert,
-                    method: 'post',
-                    data: {
-                        form_data: JSON.stringify(data)
-                    },
-                }).then(res => {
-                    if (res.code === 0) {
-                        this.pay_data(res.data);
-                    } else {
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                        })
-                    }
-                });
-            },
-            route_go() {
-                uni.navigateTo({
-                    url: `/pages/order-submit/store-pick?plugin=gift`
-                })
-            },
-
-            pay_data(data) {
-                this.$request({
-                    url: this.$api.order.pay_data,
-                    method: 'post',
-                    data: {
-                        ...data,
-                    }
-                }).then(res => {
-                    if (res.code === 0) {
-                        if (res.data.hasOwnProperty('id')) {
-                            let id = res.data.id;
-                            if (this.mch.express_price == 0) {
-                                this.$request({
-                                    url: this.$api.payment.get_payments,
-                                    method: 'get',
-                                    data: {
-                                        id: id,
-                                    }
-                                }).then(res => {
-                                    if (res.code === 0) {
-                                        this.$request({
-                                            url: this.$api.payment.pay_data,
-                                            method: 'get',
-                                            data: {
-                                                id: id,
-                                                pay_type: 'balance',
-                                            }
-                                        }).then(res => {
-                                            if (res.code === 0) {
-                                                this.$request({
-                                                    url: this.$api.payment.pay_buy_balance,
-                                                    data: {
-                                                        id: id,
-                                                    }
-                                                }).then(res => {
-                                                    if (res.code === 0) {
-                                                        uni.hideLoading();
-                                                        // uni.redirectTo({
-                                                        //     url: `/plugins/gift/order/order`,
-                                                        // })
-                                                        uni.redirectTo({
-                                                            url: `/pages/order-submit/pay-result?payment_order_union_id=${id}&order_page_url=${encodeURIComponent('/plugins/gift/order/order')}`,
-                                                        });
-                                                    } else {
-                                                        uni.hideLoading();
-                                                        uni.showModal({
-                                                            title: '提示',
-                                                            content: res.msg,
-                                                        })
-                                                    }
-                                                })
-                                            } else {
-                                                uni.hideLoading();
-                                                uni.showModal({
-                                                    title: '提示',
-                                                    content: res.msg,
-                                                })
-                                            }
-                                        })
-                                    } else {
-                                        uni.hideLoading();
-                                        uni.showModal({
-                                            title: '提示',
-                                            content: res.msg,
-                                        })
-                                    }
-                                })
-                            } else {
-                                this.$payment.pay(id).then(msg => {
-                                    // 支付成功
-                                    uni.hideLoading();
-                                    uni.redirectTo({
-                                        url: `/plugins/gift/order/order`,
-                                    })
-                                }).catch(msg => {
-                                    // 支付失败
-                                    uni.hideLoading();
-                                    uni.redirectTo({
-                                        url: `/plugins/gift/order/order`,
-                                    })
-                                });
-                            }
-                        } else {
-                            setTimeout(() => {
-                                this.pay_data(data);
-                            }, 1000);
-                        }
-                    } else {
-                        uni.hideLoading();
-                        uni.showModal({
-                            title: '提示',
-                            content: res.msg,
-                        })
-                    }
-                })
-            }
-        },
-        computed: {
-            ...mapState({
-                appImg: state => state.mallConfig.__wxapp_img,
-            }),
-        },
-
-        watch: {
-            send_type: {
-                handler(v) {
-                    if (v.length === 0) return;
-                    for (let i = 0; i < v.length; i++) {
-                        if (this.dis_send_type === v[0].value) {
-                            this.delivery = v[0].value;
-                            this.send_text = v[0].value;
-                            if (v[0].value === 'city') {
-                                this.hasCity = true;
-                            }
-                        }
-                    }
-                },
-                immediate: true
-            }
-        },
-
-        components: {
-            'app-iphone-x': appIphoneX,
-        }
-    }
-</script>
-
-
-<style lang="scss" scoped>
-    @import '../css/gift.scss';
-
-    .icon-image {
-        width: #{12upx};
-        height: #{22upx};
-    }
-
-    .information {
-        background-color: #ffffff;
-    }
-
-    .app-submit-address {
-        width: 100%;
-
-        .express {
-            .content {
-                width: #{660upx};
-                margin-right: #{28upx};
-            }
-
-            padding: #{32upx 24upx};
-
-            .top {
-                margin-bottom: #{22upx};
-            }
-
-            .font {
-                font-size: #{32upx};
-                line-height: 1;
-                color: #353535;
-            }
-
-            .bottom {
-                line-height: #{36upx};
-            }
-        }
-
-        .line {
-            width: 100%;
-            height: #{8upx};
-        }
-
-    }
-
-    .delivery-method {
-        font-size: #{32upx};
-        width: 100%;
-        margin-top: #{24upx};
-        background-color: #ffffff;
-        height: #{120upx};
-        padding: #{0 24upx};
-
-        .method {
-            .item {
-                width: #{170upx};
-                height: #{56upx};
-                border-radius: #{30upx};
-                line-height: #{56upx};
-                text-align: center;
-                margin-right: #{10upx};
-            }
-
-            .item-default {
-                background-color: #f7f7f7;
-            }
-        }
-    }
-
-    .button {
-        height: #{100upx};
-        line-height: #{100upx};
-        font-size: #{36upx};
-        color: #ffffff;
-        text-align: center;
-    }
-
-    .lifting {
-        padding: #{0 24upx};
-        width: 100%;
-        height: #{100upx};
-
-        input {
-            width: 50%;
-            color: #353535;
-            font-size: #{32upx};
-        }
-    }
-
-    /*门店信息*/
-    .store-information {
-        width: 100%;
-        padding: #{32upx 24upx 32upx 24upx};
-        background-color: #ffffff;
-        border-top: #{1upx} solid #e2e2e2;
-
-        .content {
-            padding: #{32upx 40upx 32upx 0};
-            width: #{662upx};
-        }
-
-        .font {
-            color: #353535;
-            font-size: #{32upx};
-            line-height: 1;
-        }
-
-        .location {
-            width: #{22upx};
-            height: #{26upx};
-            margin-right: #{8upx};
-        }
-
-        .address {
-            color: #999999;
-            font-size: #{28upx};
-            line-height: 1;
-            margin-top: #{20upx};
-        }
-    }
-
-    .city {
-        padding: #{32rpx 24rpx};
-        font-size: #{28upx};
-        background-color: #ffffff;
-        margin-bottom: #{20rpx};
-
-        .btn {
-            padding: #{10rpx} #{20rpx};
-            border-radius: #{100rpx};
-            border: #{1rpx} solid #cccccc;
-            font-size: $uni-font-size-general-two;
-            color: $uni-general-color-one;
-        }
-
-        .error {
-            color: #ff4544;
-            margin-right: #{24rpx};
-        }
-    }
-
-    .text-color {
-        color: #ffffff;
-    }
-
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1500;
-        background-color: #ffffff;
-    }
-</style>
-

+ 0 - 116
src/plugins/gift/billing-preview/billing-preview.vue

xqd
@@ -1,116 +0,0 @@
-<template>
-	<app-layout>
-		<view class="billing-preview">
-			<view v-for="(mch, index) in mch_list" :key="index">
-				<view class="shop-name">{{mch.mch.name}}</view>
-				<view class="goods-list">
-					<view class="item dir-left-nowrap" v-for="(good) in mch.goods_list">
-						<image :src="good.goods_attr.pic_url ? good.goods_attr.pic_url : good.goods_attr.cover_pic" class="pic"></image>
-						<view class="content">
-							<view class="name t-omit-two">{{good.name}}</view>
-							<view class="attr dir-left-nowrap">
-								<view v-for="attr in good.attr_list">
-									{{attr.attr_group_name}}:{{attr.attr_name}}
-								</view>
-							</view>
-							<view></view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</app-layout>
-</template>
-
-<script>
-	import {mapState} from 'vuex';
-	
-    export default {
-        name: "billing-preview",
-	    
-	    data() {
-            return {
-                mch_list: []
-            }
-	    },
-	    
-	    computed: {
-            ...mapState('gift', {
-                form_data: state => state.form_data
-            })
-	    },
-	    onLoad() { this.$commonLoad.onload();
-            this.request();
-	    },
-	    methods: {
-            async request() {
-                if (this.form_data.type === 'direct_open') {
-                    delete this.form_data.open_num;
-                    delete this.form_data.open_time;
-                } else if (this.method_type === 'time_open') {
-                    delete this.form_data.open_num;
-                } else if (this.method_type === 'num_open') {
-                    delete this.form_data.open_time;
-                }
-				const res = await this.$request({
-					url: this.$api.gift.order_preview,
-					method: 'post',
-					data: {
-						...this.form_data
-					}
-				});
-				if (res.code === 0) {
-					this.mch_list = res.data.mch_list;
-				}
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	 .billing-preview {
-		 width: #{750upx};
-		 background-color: #f7f7f7;
-		 position: absolute;
-		 min-height: 100%;
-	 }
-	.shop-name {
-		height: #{80upx};
-		line-height: #{80upx};
-		padding: #{0 24upx};
-		color: #666666;
-		font-size: #{28upx};
-	}
-	.goods-list {
-		width: #{750upx};
-		background-color: #ffffff;
-		overflow: hidden;
-		.item {
-			padding: #{0 24upx};
-			margin-top: #{28upx};
-		}
-		.pic {
-			width: #{155upx};
-			height: #{156upx};
-		}
-		.name {
-			font-size: #{28upx};
-			color: #353535;
-			line-height: #{32upx};
-			height: #{64upx};
-		}
-		.content {
-			width: #{547upx};
-			padding: #{0 0 0 24upx};
-		}
-		.attr {
-			margin-top: #{24upx};
-			> view {
-				margin-right: #{32upx};
-				font-size: #{24upx};
-				line-height: 1;
-				color: #999999;
-			}
-		}
-	}
-</style>

+ 0 - 91
src/plugins/gift/components/announcement/gift-navigation.vue

xqd
@@ -1,91 +0,0 @@
-<template>
-    <view class="safe-area-inset-bottom u-bottom-fixed">
-        <view  class="page-width gift-navigation dir-left-nowrap cross-center">
-            <view @click="routeGo(`/plugins/gift/index/index`)" class="nav main-center cross-center">
-                <view :class="['icon', 'gift-icon','background-image', `${tab_route === `plugins/gift/index/index` ? theme+'-background' : `default-background`}`]"></view>
-                <text :class="[`text`, `${tab_route === `plugins/gift/index/index` ? theme + '-color' : `default-text`}`]">送礼</text>
-            </view>
-            <view class="line"></view>
-            <view @click="routeGo(`/plugins/gift/order/order`)" class="nav main-center cross-center">
-                <view :class="['icon', 'my-icon','background-image',`${tab_route === `plugins/gift/order/order`  ? theme+'-background' : `default-background`}`]"></view>
-                <text :class="[`text`, `${tab_route === `plugins/gift/order/order` ? theme + '-color' : `default-text`}`]">我的</text>
-            </view>
-        </view>
-        <view :style="{width: `100%`, height: `${botHeight}rpx`}" v-if="navBool"></view>
-    </view>
-</template>
-
-<script>
-    export default {
-        name: 'gift-navigation',
-		props: [`theme`, `botHeight`, `navBool`],
-		data() {
-            return {
-                tab_route: '',
-                load_success: false,
-            }
-		},
-		created() {
-			let page = getCurrentPages();
-			this.tab_route = page[page.length - 1].route;
-		},
-	    methods: {
-            routeGo(data) {
-                uni.redirectTo({
-	                url: data
-                })
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	@import "../../css/gift.scss";
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1500;
-        background-color: #ffffff;
-    }
-	/*导航*/
-	.gift-navigation {
-		height: #{96upx};
-		border-top: #{1upx} solid #e2e2e2;
-		background-color: #ffffff;
-		.nav {
-			width: 49.8%;
-			height: 100%;
-			.icon {
-				width: #{34upx};
-				height: #{34upx};
-				margin-right: #{8upx};
-			}
-			.my-icon {
-				background-image: url("https://shop.9026.com/web/statics/img/mall/.9026.com/web/statics/img/mall/my.png");
-			}
-			.gift-icon {
-				background-image: url("https://shop.9026.com/web/statics/img/mall/.9026.com/web/statics/img/mall/gift-giving.png");
-			}
-			.text {
-				font-size: #{32upx};
-				margin-left: #{8upx};
-			}
-
-			.default-text {
-				color: #999999;
-			}
-			.default-background {
-				background-color: #999999;
-			}
-			
-		}
-		.line {
-			width: .4%;
-			height: #{48upx};
-			background-color: #e2e2e2;
-		}
-	}
-
-</style>

+ 0 - 37
src/plugins/gift/components/announcement/share-gift-text.vue

xqd
@@ -1,37 +0,0 @@
-<template>
-	<view class="page-width ready-send">
-        <view class="big">
-            {{big}}
-        </view>
-        <view class="small" v-if="small">
-            {{small}}
-        </view>
-    </view>
-</template>
-
-<script>
-    export default {
-        name: 'ready-send',
-
-        props: [`big`, `small`]
-    }
-</script>
-
-<style scoped lang="scss">
-    @import "../../css/gift.scss";
-
-    .ready-send {
-        color: #ffffff;
-        text-align: center;
-        .big {
-            line-height: 1;
-            font-size: #{40upx};
-            margin-top: #{64upx};
-        }
-        .small {
-            line-height: 1.1;
-            font-size: #{26upx};
-	        margin-top: #{26upx};
-        }
-    }
-</style>

+ 0 - 73
src/plugins/gift/components/detail/logistics.vue

xqd
@@ -1,73 +0,0 @@
-<template>
-	<view class="logistics dir-left-nowrap main-between cross-center" @click="routeGo()">
-		<view class="font" v-if="send_type != 1 && is_send == 1 && express_no" >
-			<view class="item margin">
-				<text class="gray">快递公司:</text>
-				<text class="black">{{express}}</text>
-			</view>
-			<view class="item">
-				<text class="gray">物流单号:</text>
-				<text class="black">{{express_no}}</text>
-			</view>
-		</view>
-		<view class="font" v-else-if="send_type == 1">
-			<view class="item margin">
-				<text class="gray">门店名称:</text>
-				<text class="black">{{store.name}}</text>
-			</view>
-			<view class="item margin">
-				<text class="gray">联系电话:</text>
-				<text class="black">{{store.mobile}}</text>
-			</view>
-			<view class="item">
-				<text class="gray">门店地址:</text>
-				<text class="black">{{store.address}}</text>
-			</view>
-		</view>
-		<image class="icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/arrow-right.png"></image>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'logistics',
-	    
-	    props: [`send_type`, `store`, `is_send`, `express`, `express_no`, `customer_name`, `cover_pic`],
-
-        methods: {
-            routeGo() {
-                if (this.send_type != 1 && this.is_send == 1 && this.express_no) {
-                    uni.navigateTo({
-                        url: `/pages/order/express-detail/express-detail?express=${this.express}&express_no=${this.express_no}&customer_name=${this.customer_name}&cover_pic=${this.cover_pic}`
-                    })
-                } else {
-                    uni.openLocation({
-                        latitude: parseFloat(this.store.latitude),
-	                    longitude: parseFloat(this.store.longitude),
-                        address: this.store.address,
-                        name: this.store.name,
-                    })
-                }
-            },
-	        
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	.logistics {
-		width: 100%;
-		background-color: #ffffff;
-		padding: #{28upx 24upx};
-		.icon {
-			width: #{12upx};
-			height: #{20upx};
-		}
-		.font {
-			font-size: #{24upx};
-		}
-		.margin {
-			margin-bottom: #{15upx};
-		}
-	}
-</style>

+ 0 - 71
src/plugins/gift/components/detail/order-information.vue

xqd
@@ -1,71 +0,0 @@
-<template>
-	<view class="order-information page-width">
-		<view class="page-width information">
-			<view class="top">
-				<view class="item">
-					<text class="gray">订单号:</text>
-					<text class="black">{{order_no}}</text>
-				</view>
-				<view class="item">
-					<text class="gray">付款时间:</text>
-					<text class="black">{{pay_time}}</text>
-				</view>
-			</view>
-			<view class="bottom">
-				<view class="item">
-					<text class="gray">礼物玩法:</text>
-					<text class="black">{{type === 'direct_open'? '直接领取' : type === 'time_open' ? '定时开奖' : '满人开奖'}}</text>
-				</view>
-				<view class="item" v-if="type === 'time_open'">
-					<text class="gray">开奖时间:</text>
-					<text class="black">{{open_time}}</text>
-				</view>
-				<view class="item" v-else-if="type === 'num_open'">
-					<text class="gray">开奖人数:</text>
-					<text class="black">满{{open_num}}人</text>
-				</view>
-				<view class="item">
-					<text class="gray">礼物状态:</text>
-					<text class="black">{{status}}</text>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'order-information',
-
-        props: [`status`, `order_no`, `type`, `pay_time`, `open_time`, `open_num`],
-    }
-</script>
-
-<style scoped lang="scss">
-	@import '../../css/gift.scss';
-	
-	/*订单信息*/
-	.order-information {
-		margin-top: #{24upx};
-		padding: #{0 24upx};
-		/*信息*/
-		.information {
-			background-color: #ffffff;
-			border-radius: #{16upx};
-			padding: #{28upx 24upx 12upx 24upx};
-			/*订单号 下单时间*/
-			.top {
-				border-bottom: #{1upx} solid #e2e2e2;
-			}
-			/*订单状态*/
-			.bottom {
-				margin-top: #{16upx};
-			}
-			.item {
-				font-size: #{24upx};
-				line-height: 1;
-				margin-bottom: #{16upx};
-			}
-		}
-	}
-</style>

+ 0 - 154
src/plugins/gift/components/detail/order.vue

xqd
@@ -1,154 +0,0 @@
-<template>
-	<view class="page-width order">
-		<view class="page-width order-content">
-			<view class="item dir-left-nowrap" v-for="(item, index) in order_list" :key="index">
-				<view class="image">
-					<image class="pic" :src="item.goods_info | getPicUrl"></image>
-					<text v-if="sign" :class="[`${theme}-background`, `sign`]">{{sign}}</text>
-				</view>
-				<view class="name-attr-price dir-top-nowrap main-left">
-					<view class="name">{{item.name}}</view>
-					<view class="attr">
-						<block
-							v-for="(name, key) in JSON.parse(item.goods_info).attr_list"
-							:key="key"
-						>
-							{{name.attr_group_name}}:{{name.attr_name}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-						</block>
-					</view>
-					<view class="number-price dir-left-nowrap main-between">
-						<text class="number gray">{{item.num}}</text>
-						<text class="price black">{{item.total_price}}</text>
-					</view>
-				</view>
-			</view>
-			<view class="total dir-left-nowrap main-right cross-center">
-				<text class="gray-word gray">合计</text>
-				<text class="black-word black">{{total_price}}</text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "order",
-	    
-	    props: {
-            order_list: Array,
-            sign: String,
-		    theme: String,
-            total_price: Number,
-	    },
-	    
-        filters: {
-            getPicUrl(data) {
-                let goods_attr = JSON.parse(data).goods_attr;
-                return goods_attr.pic_url ? goods_attr.pic_url : goods_attr.cover_pic;
-            }
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	@import "../../css/gift.scss";
-	
-	.order {
-		padding: #{0 24upx};
-		margin-top: #{24upx};
-		.order-content {
-			background-color: #ffffff;
-			padding: #{24upx 24upx 0 24upx};
-			overflow: hidden;
-		}
-	}
-	
-	/*订单*/
-	.item {
-		margin-bottom: #{24upx};
-		.image {
-			width: #{160upx};
-			height: #{160upx};
-			position: relative;
-			.pic {
-				border-radius: #{8upx};
-				width: #{160upx};
-				height: #{160upx};
-			}
-		}
-		.sign {
-			position: absolute;
-			top: 0;
-			left: 0;
-			border-top-left-radius: #{8upx};
-			font-size: #{24upx};
-			color: #ffffff;
-			padding: #{10upx};
-		}
-	}
-	
-	/*名字价格规格*/
-	.name-attr-price {
-		width: calc(100% - #{160upx});
-		padding-left: #{20upx};
-		.name {
-			font-size: #{24upx};
-			line-height: #{30upx};
-			height: #{60upx};
-			margin-top: #{5upx};
-			word-break: break-all;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 2;
-			overflow: hidden;
-			white-space: normal !important;
-		}
-		.attr {
-			font-size: #{24upx};
-			color: #999999;
-			margin-top: #{17upx};
-			word-break: break-all;
-			text-overflow: ellipsis;
-			display: -webkit-box;
-			-webkit-box-orient: vertical;
-			-webkit-line-clamp: 1;
-			overflow: hidden;
-			white-space: normal !important;
-		}
-		.number-price {
-			font-size: #{24upx};
-			line-height: 1;
-			margin-top: #{20upx};
-		
-			.number:before {
-				content: "×";
-				font-size: 80%;
-			}
-		
-			.price:before {
-				content: "¥";
-			}
-		}
-	}
-	
-	/*合计*/
-	.total {
-		padding: #{24upx 0};
-		/*灰字*/
-		.gray-word {
-			font-size: #{24upx};
-			line-height: 1;
-		}
-		/*黑字*/
-		.black-word {
-			font-size: #{28upx};
-			line-height: 1;
-		}
-		.black-word:before {
-			content: '¥';
-			font-size: 100%;
-		}
-	}
-	
-</style>

+ 0 - 76
src/plugins/gift/components/detail/receiving-status.vue

xqd
@@ -1,76 +0,0 @@
-<template>
-	<view class="safe-area-inset-bottom u-bottom-fixed">
-		<view class="page-width receiving-status dir-left-nowrap cross-center main-right">
-			<view class="item" @click="route_go(`/plugins/gift/receive/receive?gift_id=${gift_id}&status=${status}`)">
-				查看领取详情
-			</view>
-			<view class="item" v-if="status != 0 && status_num == 1 && !notPayOrder && getConvert(detail)" @click="setShare">
-				转赠礼物
-			</view>
-			<view class="item" v-if="status != 0 && status_num == 1 && !notPayOrder  && getConvert(detail)" @click="route_go(`/plugins/gift/address/address?id=${user_id}&status=${status}`)">
-				填写地址
-			</view>
-			<view class="item" v-if="status != 0 && status_num == 2  && getConvert(detail)" @click="receipt">
-				确认收货
-			</view>
-			<view class="item" v-if="notPayOrder && getConvert(detail)" @click="route_go(`/pages/order/index/index?status=1`)">
-				去支付
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: "receiving-status",
-	    props: [`theme`, `type`, `gift_id`, `status`, `status_num`, `user_id`, `order_id`, `notPayOrder`, `detail`],
-	    methods: {
-            route_go(data) {
-                uni.navigateTo({
-	                url: data,
-                })
-            },
-		    // 转赠礼物
-            setShare() {
-                this.$emit('setShare');
-            },
-            receipt() {
-                this.$emit('receipt', this.order_id);
-            },
-            getConvert(order_list){
-                let  is_convert = true;
-                for (let i = 0; i < order_list.length;i++) {
-                    if (order_list[i].is_convert == -1) {
-                        is_convert = false;
-                    }
-                }
-                return is_convert;
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	.receiving-status {
-		height: #{110upx};
-		padding: #{0 8upx};
-		.item {
-			padding: #{0 28upx};
-			margin-right: #{16upx};
-			height: #{62upx};
-			line-height: #{62upx};
-			font-size: #{24upx};
-			color: #353535;
-			border-radius: #{38upx};
-			border: #{1upx} solid #bbbbbb;
-		}
-	}
-    .u-bottom-fixed {
-        position: fixed;
-        bottom: 0;
-        left: 0;
-        width: 100%;
-        z-index: 1500;
-        background-color: #ffffff;
-    }
-</style>

+ 0 - 71
src/plugins/gift/components/detail/win-order-information.vue

xqd
@@ -1,71 +0,0 @@
-<template>
-	<view class="order-information page-width">
-		<view class="page-width information">
-			<view class="top">
-				<view class="item" v-if="order_no">
-					<text class="gray">订单号:</text>
-					<text class="black">{{order_no}}</text>
-				</view>
-				<view class="item">
-					<text class="gray">付款时间:</text>
-					<text class="black">{{pay_time}}</text>
-				</view>
-			</view>
-			<view class="bottom">
-				<view class="item">
-					<text class="gray">礼物玩法:</text>
-					<text class="black">{{type === 'direct_open'? '直接开奖' : type === 'time_open' ? '定时开奖' : '满人开奖'}}</text>
-				</view>
-				<view class="item" v-if="type === 'time_open'">
-					<text class="gray">开奖时间:</text>
-					<text class="black">{{open_time}}</text>
-				</view>
-				<view class="item" v-if="type === 'num_open'">
-					<text class="gray">开奖人数:</text>
-					<text class="black">满{{open_num}}人</text>
-				</view>
-				<view class="item">
-					<text class="gray">礼物状态:</text>
-					<text class="black">{{status}}</text>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'win-order-information',
-
-        props: [`status`, `order_no`, `type`, `pay_time`, `open_time`, `open_num`],
-    }
-</script>
-
-<style scoped lang="scss">
-	@import '../../css/gift.scss';
-	
-	/*订单信息*/
-	.order-information {
-		margin-top: #{24upx};
-		padding: #{0 24upx};
-		/*信息*/
-		.information {
-			background-color: #ffffff;
-			border-radius: #{16upx};
-			padding: #{28upx 24upx 12upx 24upx};
-			/*订单号 下单时间*/
-			.top {
-				border-bottom: #{1upx} solid #e2e2e2;
-			}
-			/*订单状态*/
-			.bottom {
-				margin-top: #{16upx};
-			}
-			.item {
-				font-size: #{24upx};
-				line-height: 1;
-				margin-bottom: #{16upx};
-			}
-		}
-	}
-</style>

+ 0 - 251
src/plugins/gift/components/detail/win-order.vue

xqd
@@ -1,251 +0,0 @@
-<template>
-    <view class="page-width order">
-        <view class="page-width order-content">
-            <view class="item dir-left-wrap " v-for="(item, index) in order_list" :key="index">
-                <view class="image">
-                    <image class="pic" :src="item | getPicUrl"></image>
-                    <image class="convert-pic" v-if="item.is_convert == -1" src="https://shop.9026.com/web/statics/img/mall/gift//convert.png"></image>
-                </view>
-                <view class="name-attr-price dir-top-nowrap main-left">
-                    <view class="name">{{item.name}}</view>
-                    <view class="attr">
-                        {{item.attr}}
-                    </view>
-                    <view class="number-price dir-left-nowrap main-between">
-                        <text class="number gray">{{item.num}}</text>
-                        <view v-if="item.refund === 1" @click="setSwitch(index)" class="refunding dir-left-nowrap cross-center">
-                            <text>
-                                申请售后中
-                            </text>
-                            <image class="icon" :src="item.switch ? 'https://shop.9026.com/web/statics/image/mall/static/icon/icon-up.png' : 'https://shop.9026.com/web/statics/image/mall/static/icon/icon-down.png'"></image>
-                        </view>
-                    </view>
-                    <view class="main-right">
-                        <view v-if="item.refund === 0 && item.is_confirm == 1 " class="btn" @click="route_go(`/pages/order/refund/select-refund-type?sign=gift&id=${item.detail_id}`)">
-                            申请售后
-                        </view>
-                    </view>
-                </view>
-                <view class="refund-content dir-top-nowrap" v-if="item.switch && item.orderRefund">
-                    <view class="item">
-                        <text class="gray">申请原因: </text>
-                        <text class="black">{{item.orderRefund.remark}}</text>
-                    </view>
-                    <view :class="{'item' : item.orderRefund.pic_list.length > 0}">
-                        <text class="gray">审核结果: </text>
-                        <text class="black">{{item.orderRefund.status == 1 ? '待商家处理' : item.orderRefund.status == 2 ? '同意' : item.orderRefund.status == 3 ? '拒绝' : ''}}</text>
-                    </view>
-                    <view class="dir-left-wrap " v-if="item.orderRefund.pic_list.length > 0">
-                        <image class="pic_url" @click="previewImage(item.orderRefund.pic_list, pic)" :src="pic" v-for="(pic,i) in item.orderRefund.pic_list" :key="i"></image>
-                    </view>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-<script>
-export default {
-    name: 'win-order',
-
-    props: ['order_list', 'status_num'],
-
-    methods: {
-        route_go(data) {
-            uni.navigateTo({
-                url: data,
-            })
-        },
-
-        setSwitch(index) {
-            this.$emit('setSwitch', index)
-        },
-
-        previewImage(pic_list, image) {
-            uni.previewImage({
-                urls: pic_list,
-                current: image,
-                longPressActions: {
-                    itemList: ['发送给朋友', '保存图片'],
-                    success: function() {},
-                    fail: function() {}
-                }
-            });
-        }
-    },
-
-    filters: {
-        getPicUrl(data) {
-            let goods_attr = Object.prototype.toString.call(data.goods_info) === '[object String]' ? JSON.parse(data.goods_info).goods_attr : data.goods_info.goods_attr;
-            return goods_attr.pic_url ? goods_attr.pic_url : data.cover_pic;
-        }
-    }
-}
-</script>
-<style scoped lang="scss">
-@import "../../css/gift.scss";
-
-.btn {
-    height: #{70upx};
-    width: #{166upx};
-    line-height: #{70upx};
-    border-radius: #{38upx};
-    font-size: #{26upx};
-    color: #353535;
-    border: #{1upx} solid #bbbbbb;
-    text-align: center;
-    margin-top: #{18upx};
-    position: relative;
-    right: 0;
-}
-
-.order {
-    padding: #{0 24upx};
-    margin-top: #{24upx};
-
-    .order-content {
-        background-color: #ffffff;
-        padding: #{24upx 24upx 0 24upx};
-        overflow: hidden;
-    }
-}
-
-/*订单*/
-.item {
-    margin-bottom: #{24upx};
-
-    .image {
-        width: #{160upx};
-        height: #{160upx};
-        position: relative;
-
-        .pic {
-            border-radius: #{8upx};
-            width: #{160upx};
-            height: #{160upx};
-        }
-
-        .convert-pic {
-            width: #{160upx};
-            height: #{160upx};
-            position: absolute;
-            top: 0;
-            left: 0;
-        }
-    }
-
-    .sign {
-        position: absolute;
-        top: 0;
-        left: 0;
-        border-top-left-radius: #{8upx};
-        font-size: #{24upx};
-        color: #ffffff;
-        padding: #{10upx};
-    }
-}
-
-/*名字价格规格*/
-.name-attr-price {
-    width: calc(100% - #{160upx});
-    padding-left: #{20upx};
-
-    .name {
-        font-size: #{24upx};
-        line-height: #{30upx};
-        height: #{60upx};
-        margin-top: #{5upx};
-        word-break: break-all;
-        text-overflow: ellipsis;
-        display: -webkit-box;
-        -webkit-box-orient: vertical;
-        -webkit-line-clamp: 2;
-        overflow: hidden;
-        white-space: normal !important;
-    }
-
-    .attr {
-        font-size: #{24upx};
-        color: #999999;
-        margin-top: #{17upx};
-        word-break: break-all;
-        text-overflow: ellipsis;
-        display: -webkit-box;
-        -webkit-box-orient: vertical;
-        -webkit-line-clamp: 1;
-        overflow: hidden;
-        white-space: normal !important;
-    }
-
-    .number-price {
-        font-size: #{24upx};
-        line-height: 1;
-        margin-top: #{20upx};
-
-        .number:before {
-            content: "×";
-            font-size: 80%;
-        }
-
-        .price:before {
-            content: "¥";
-        }
-    }
-}
-
-/*合计*/
-.total {
-    padding: #{24upx 0};
-
-    /*灰字*/
-    .gray-word {
-        font-size: #{24upx};
-        line-height: 1;
-    }
-
-    /*黑字*/
-    .black-word {
-        font-size: #{28upx};
-        line-height: 1;
-    }
-
-    .black-word:before {
-        content: '¥';
-        font-size: 100%;
-    }
-}
-
-.refund-content {
-    width: #{654upx};
-    padding: #{24upx};
-    border: #{1upx} solid #bbbbbb;
-    border-radius: #{15upx};
-    margin-top: #{16upx};
-
-    text {
-        font-size: #{24upx};
-        line-height: 1;
-    }
-}
-
-.refunding {
-    font-size: #{24upx};
-    color: #353535;
-
-}
-
-.icon {
-    width: #{18upx};
-    height: #{11upx};
-    margin-left: #{12upx};
-}
-
-.item {
-    margin-bottom: #{16upx};
-}
-
-.pic_url {
-    width: #{160upx};
-    height: #{160upx};
-    margin: #{0 16upx 16upx 0};
-}
-</style>

+ 0 - 79
src/plugins/gift/components/goods/bottom-button.vue

xqd
@@ -1,79 +0,0 @@
-<template>
-	<view class="bd-bottom dir-left-nowrap cross-center">
-		<view
-			v-if="!attr_bool"
-			@click="routeGo()"
-			class="bd-back box-grow-0 dir-top-nowrap main-center cross-center"
-		>
-			<image class="bd-icon" src="https://shop.9026.com/web/statics/image/mall/static/icon/index.png"></image>
-			<text class="bd-text">首页</text>
-		</view>
-        <bd-service :name="name" :url="url"></bd-service>
-		<view class="box-grow-1 bd-btn bd-oversell-btn bd-btn-color" v-if="goods_stock == 0">已售罄</view>
-		<button v-else :disabled="attr_bool && join_disabled" :style="{'background': theme.background_gradient_btn}" class="bd-btn box-grow-1 bd-btn-color" @click="joinGift">加入礼包</button>
-	</view>
-</template>
-
-<script>
-import bdService from '@/components/page-component/goods/bd-service.vue';
-
-export default {
-        name: 'bottom-button',
-	    
-	    props: [`theme`, `attr_bool`, `goods_stock`, `join_disabled`, `name`, `url`],
-	    
-	    methods: {
-            joinGift() {
-                this.$emit('attrSwitch', true);
-            },
-
-		    // 返回首页
-            routeGo() {
-                uni.reLaunch({
-	                url: `/pages/index/index`
-                })
-            }
-	    },
-        components: {
-            bdService
-        }
-    }
-</script>
-
-<style scoped lang="scss">
-	@import "../../css/gift.scss";
-
-    .bd-bottom {
-        width: 750upx;
-        height: 110upx;
-        padding: 20upx 24upx;
-    }
-    .bd-back {
-        width: 66upx;
-        height: 100%;
-        margin-right: 20upx;
-    }
-    .bd-icon {
-        width: 30upx;
-        height: 30upx;
-        margin-bottom: 8upx;
-    }
-    .bd-text {
-        font-size: 20upx;
-        color: #888888;
-        line-height: 1;
-    }
-    .bd-btn {
-        text-align: center;
-        line-height: 70upx;
-        height: 70upx;
-        font-size: 28upx;
-        border-radius: 35upx;
-    }
-    .bd-btn-color {
-        color: #ffffff;
-    }
-    .bd-oversell-btn {
-        background-color: #CDCDCD;
-    }
-</style>

+ 0 - 58
src/plugins/gift/components/index/blessing-message.vue

xqd
@@ -1,58 +0,0 @@
-<template>
-	<view class="page-width blessing-message">
-		<view class="title black">祝福留言</view>
-		<view class="page-width blessing-content">
-			<input
-				class="textarea"
-				:value="bless_word"
-				:placeholder="place_bless_word"
-				placeholder-class="gray"
-				maxlength="12"
-				@input="changeTextarea"
-				@confirm="changeTextarea"
-			/>
-		</view>
-	</view>
-</template>
-
-<script>
-    export default {
-        name: 'blessing-message',
-
-        props: [`bless_word`, `place_bless_word`],
-	    
-	    methods: {
-            changeTextarea(data) {
-                this.$emit('changeTextarea', data.detail.value);
-            }
-	    }
-    }
-</script>
-
-<style scoped lang="scss">
-	@import '../../css/gift.scss';
-	
-	/*祝福留言*/
-	.blessing-message {
-		padding: #{0 24upx};
-	}
-	
-	/*标题*/
-	.title {
-		font-size: #{26upx};
-		padding: #{38upx 0 14upx 0};
-	}
-	
-	/*留言区域*/
-	.blessing-content {
-		height: #{160upx};
-		border-radius: #{16upx};
-		background-color: #ffffff;
-		overflow: hidden;
-		.textarea {
-			width: #{670upx};
-			margin: #{32upx 0 0 32upx};
-			padding: 0;
-		}
-	}
-</style>

+ 0 - 91
src/plugins/gift/components/index/figure-rule.vue

xqd
@@ -1,91 +0,0 @@
-<template>
-	<view 
-		v-bind:class="['page-width', 'figure-rule', 'component-height', `${theme}-figure-rule`]"
-	>
-		<image 
-			class="page-width component-height background-image" 
-			src="/plugins/gift/image/head-texture-background.png"
-		></image>
-		<view class="page-width text-content component-height dir-left-nowrap">
-			<view class="figure box-grow-0 dir-top-nowrap">
-				<view class="box-grow-0 big-text text-color">表达心意新方式</view>
-				<view class="box-grow-0 small-text text-color">
-					·&nbsp;网上送礼&nbsp;&nbsp;&nbsp;·&nbsp;对方填地址&nbsp;&nbsp;&nbsp;·&nbsp;支持转赠
-				</view>
-			</view>
-			<view class="rule box-grow-0">
-				<view class="identification" @click="routeGo()">
-					规则
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	
-    export default {
-        name: 'figure-rule',
-
-        props: [`theme`],
-	    
-	    methods: {
-            routeGo() {
-                uni.navigateTo({
-	                url: `/plugins/gift/rule/rule`
-                })
-            }
-	    }
-
-    }
-</script>
-
-<style scoped lang="scss">
-	@import '../../css/gift.scss';
-	
-	/* 广告图 规则 */
-	.figure-rule {
-		position: relative;
-	}
-	
-	.text-content {
-		position: absolute;
-		top: 0;
-		left: 0;
-	}
-	
-	.rule {
-		width: 12.5%;
-		padding-top: #{40upx};
-		.identification {
-			width: 100%;
-			border-top-left-radius: #{30upx};
-			border-bottom-left-radius: #{30upx};
-			background-color: rgba(0,0,0,.3);
-			font-size: #{24upx};
-			color: #ffffff;
-			padding: #{12upx 24upx 12upx 20upx};
-		}
-	}
-	
-	.figure {
-		width: 87.5%;
-		padding-bottom: #{69upx};
-		.text-color {
-			color: #ffffff;
-		}
-		.big-text {
-			font-size: #{48upx};
-			padding: #{30upx 0 8upx 55upx};
-		}
-		.small-text {
-			font-size: #{26upx};
-			padding: #{8upx 0 52upx 48upx};
-		}
-	}
-	
-	.component-height {
-		height: #{260upx};
-	}
-	
-</style>

+ 0 - 122
src/plugins/gift/components/index/generate-package.vue

xqd
@@ -1,122 +0,0 @@
-<template>
-	<view class="page-width generate-package">
-        <view class="price black">{{newPrice}}</view>
-        <button  @click="generatePackage" :class="[theme, `button`]">
-            生成礼包
-        </button>
-		<view class="cart-empty"></view>
-    </view>
-</template>
-
-<script>
-    import { push } from '../../../../core/formId.js';
-
-    export default {
-        name: 'generate-package',
-
-        props: {
-            theme: String,
-            totalPrice: String,
-            template_message_captain: Array,
-        },
-        
-		computed: {
-            newPrice() {
-                if (Number(this.totalPrice) === 0) {
-                    return '0.00';
-                } else {
-                    return this.totalPrice;
-                }
-            }
-		},
-        methods: {
-            // 生成礼包
-            generatePackage(data) {
-                push(data.detail.formId);
-                // 按逻辑来讲支付后当前页面是要被删除的
-	            this.$storage.getStorageSync('GIFT_CART');
-	            if (this.$storage.getStorageSync('GIFT_CART') && Array.isArray(this.$storage.getStorageSync('GIFT_CART')) && this.$storage.getStorageSync('GIFT_CART').length > 0) {
-                    this.$subscribe(this.template_message_captain).then((e) => {
-                        this.$emit('click');
-                    }).catch((e) => {
-                        this.$emit('click');
-                    });
-	            } else {
-                    uni.showToast({
-                        mask: true,
-                        title: '请选择礼物',
-                        icon: 'none'
-                    });
-	            }
-            }
-        },
-    }
-</script>
-
-<style scoped lang="scss">
-	@import '../../css/gift.scss';
-
-    .generate-package {
-        // 价格
-        .price {
-            padding: #{50upx 0 26upx 0};
-            font-size: #{90upx};
-            text-align: center;
-            font-family: "DIN";
-        }
-        // 符号
-        .price:before{
-            content: "¥";
-            font-size: 36%;
-            font-family: "DIN";
-        }
-        /*按钮*/
-        .button {
-	        height: #{100upx};
-            width: #{560upx};
-            margin: #{0 95upx};
-            font-size: #{32upx};
-            text-align: center;
-            color: #ffffff;
-            border-radius: #{58upx};
-            line-height: #{100upx};
-	        border: none;
-        }
-    }
-	
-	.cart-empty {
-	
-	}
-	
-    // 主题色
-
-    /* 流光金 */
-    .streamer-gold-gift {
-        background: linear-gradient(45deg, $streamer-gold-deep, $streamer-gold-light);
-    }
-
-    /* 浪漫粉 */
-    .romantic-powder-gift {
-        background: linear-gradient(45deg, $romantic-powder-deep, $romantic-powder-light);
-    }
-
-    /* 品味红 */
-    .taste-red-gift {
-        background: linear-gradient(45deg, $taste-red-deep, $taste-red-light);
-    }
-
-    /* 优雅紫 */
-    .elegant-purple-gift {
-        background: linear-gradient(45deg, $elegant-purple-deep, $elegant-purple-light);
-    }
-
-    /* 清醒绿 */
-    .fresh-green-gift {
-        background: linear-gradient(45deg, $fresh-green-deep, $fresh-green-light);
-    }
-
-    /* 商务蓝 */
-    .business-blue-gift {
-        background: linear-gradient(45deg, $business-blue-deep, $business-blue-light);
-    }
-</style>

+ 0 - 227
src/plugins/gift/components/index/get-right-now.vue

xqd
@@ -1,227 +0,0 @@
-<template>
-	<view class="get-right-now">
-		<view class="card dir-top-nowrap main-between cross-center">
-			<view class="jump-card background-image"  @click="receiveGift">
-				<image class="card-image" @load="is_text = true" :src="background.bg_pic"></image>
-				<image class="avatar" :src="avatar"></image>
-				<view class="avatar audio" @click.stop="play" v-if="bless_music">
-					<image :src="music_play ? 'https://shop.9026.com/web/statics/img/mall/.9026.com/web/stahttps://shop.9026.com/web/statics/img/mall/l/play-big.png' : 'https://shop.9026.com/web/statics/img/mall/stop-big.png'"></image>
-				</view>
-				<view class="font" v-show="is_text" :style="{color: background.color, top: `${Number(background.top)}px`, left: `${Number(background.left)}px`}">
-					<view class="nickname">{{nickname}}</view>
-					<view>送你一份礼物,快来领取吧</view>
-					<view class="bless-word">{{bless_word}}</view>
-				</view>
-			</view>
-			<image class="icon-close" src="https://shop.9026.com/web/statics/img/mall/gift//gift-close.png"  @click="setGift"></image>
-		</view>
-	</view>
-</template>
-
-<script>
-	
-    export default {
-        name: 'figure-rule',
-
-	    data() {
-            return {
-                is_text: false,
-            }
-	    },
-        props: [`theme`, `gift_id`, `turn_no`, `background`, `bless_word`, `nickname`, `avatar`, `type`, `template_message`, `bless_music`, `music_play`],
-
-	    methods: {
-			setGift() {
-				this.$emit('setGift', false);
-			},
-
-			async submit() {
-				uni.showLoading({
-					title: '获取中'
-				});
-				if (this.turn_no) {
-					const res = await this.$request({
-						url: this.$api.gift.get_turn,
-						method: 'get',
-						data: {
-							turn_no: this.turn_no,
-						}
-					});
-					if (res.code === 0) {
-						let _this = this;
-						uni.navigateTo({
-							url: `/plugins/gift/receive/receive?gift_id=${this.gift_id}&status=1`,
-							success() {
-								_this.setGift();
-							}
-						})
-					} else {
-						uni.showModal({
-							title: '提示',
-							content: res.msg,
-						});
-						this.setGift();
-					}
-					uni.hideLoading();
-				} else {
-					const res = await  this.$request({
-						url: this.$api.gift.join,
-						method: 'get',
-						data: {
-							gift_id: this.gift_id
-						}
-					});
-					if (res.code === 0) {
-						this.loopAcquisition(res.data);
-					} else {
-						uni.showModal({
-							title: '提示',
-							content: res.msg,
-						});
-						this.setGift();
-					}
-				}
-			},
-
-			async receiveGift() {
-				if (this.type !== 'direct_open') {
-					this.$subscribe(this.template_message).then(() => {
-						this.submit();
-					}).catch(() => {
-						this.submit();
-					});
-				} else {
-					this.submit();
-				}
-				
-			},
-
-            loopAcquisition(data) {
-			    this.$request({
-				    url: this.$api.gift.join_status,
-				    data: {
-				        ...data,
-                        gift_id: this.gift_id,
-				    },
-				    method: 'get',
-			    }).then(res => {
-                    if (res.code === 0) {
-                        if (res.data.hasOwnProperty('list')) {
-                            uni.hideLoading();
-                            let _this = this;
-                            uni.navigateTo({
-                                url: `/plugins/gift/receive/receive?gift_id=${this.gift_id}&status=1`,
-                                success() {
-                                    _this.setGift();
-                                }
-                            });
-                            return res.data;
-                        } else {
-                            setTimeout(() => {
-                                this.loopAcquisition(data);
-                            }, 1000);
-                        }
-                    } else if (res.code === 1) {
-                        uni.hideLoading();
-                        let status = 2;
-                        if (this.type === 'direct_open') {
-                            status = 2;
-                        } else {
-                            status = 3;
-                        }
-                        uni.navigateTo({
-                            url: `/plugins/gift/receive/receive?gift_id=${this.gift_id}&status=${status}`
-                        });
-                        this.setGift();
-                    }
-			    });
-            },
-
-			play() {
-				if (this.music_play) {
-					this.$emit('music', false);
-				} else {
-					this.$emit('music', true, this.bless_music);
-				}
-			}
-		}
-    }
-</script>
-
-<style scoped lang="scss">
-	@import '../../css/gift.scss';
-	
-	/* 广告图 规则 */
-	.get-right-now {
-		position: fixed;
-		top: 0;
-		left: 0;
-		width: 100%;
-		height: 100%;
-		z-index: 1500;
-		background-color: rgba(0,0,0,.3);
-		.card {
-			position: absolute;
-			left: 50%;
-			top: 50%;
-			transform: translate(-50%, -50%);
-			width: #{600upx};
-			height: #{900upx};
-			.card-image {
-				width: #{600upx};
-				height: #{800upx};
-				position: absolute;
-				top: 0;
-				left: 0;
-			}
-			
-			.icon-close {
-				width: #{42upx};
-				height: #{42upx};
-				padding: #{8upx};
-				margin-top: #{48upx};
-			}
-
-			.jump-card {
-				width: #{600upx};
-				height: #{800upx};
-				position: relative;
-				.avatar {
-					width: #{128upx};
-					height: #{128upx};
-					position: absolute;
-					top: #{126upx};
-					left: 50%;
-					transform: translateX(-50%);
-					border-radius: 50%;
-				}
-				.audio {
-					z-index: 1000;
-					>image {
-						width: 100%;
-						height: 100%;
-					}
-				}
-				.font {
-					position: absolute;
-					text-align: center;
-					/*文字*/
-					view {
-						font-size: #{30upx};
-						line-height: 1;
-						white-space: nowrap;
-					}
-					/*用户名*/
-					.nickname {
-						margin-bottom: #{14upx};
-					}
-					/*祝福语*/
-					.bless-word {
-						margin-top: #{52upx};
-					}
-				}
-			}
-		}
-	}
-	
-</style>

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff