Browse Source

页面

clp
clp 3 years ago
parent
commit
9580abaab2

+ 8 - 1
app.json

@@ -34,7 +34,8 @@
     "components/step/step",
     "pages/integral/exchange",
     "pages/integral/instructions",
-    "pages/integral/success"
+    "pages/integral/success",
+    "pages/groupmeallist/storeGoods/storeGoods"
   ],
   "window": {
     "backgroundTextStyle": "light",
@@ -59,6 +60,12 @@
         "iconPath": "images/welfareMall/home.png"
       },
       {
+        "text": "套餐",
+        "pagePath": "pages/groupmeallist/storeGoods/storeGoods",
+        "selectedIconPath": "images/groupmeallist/selectionCombo.png",
+        "iconPath": "images/groupmeallist/combo.png"
+      },
+      {
         "text": "我的",
         "pagePath": "pages/welfareMall/personal/personal",
         "selectedIconPath": "images/welfareMall/user-active.png",

+ 12 - 0
app.wxss

@@ -34,5 +34,17 @@ display: -webkit-box;
 -webkit-box-orient: vertical;
 -webkit-line-clamp: 2;
 }
+.flex-column_start_center{
+  display: flex;
+  flex-flow: column nowrap;
+  justify-content: flex-start;
+  align-items: center;
+}
 
+.flex-row-between{
+  display: flex;
+  flex-flow: row nowrap;
+  justify-content: space-between;
+  align-items: center;
 
+}

+ 27 - 0
base/CustomPage.js

@@ -0,0 +1,27 @@
+import themeMixin from './behaviors/theme'
+
+const CustomPage = function (options) {
+	return Page(
+		Object.assign({}, options, {
+			behaviors: [themeMixin].concat(options.behaviors || []),
+			onLoad(query) {
+				const app = getApp()
+				if(this.themeChanged) {
+					this.themeChanged(app.globalData.theme)
+					app.watchThemeChange && app.watchThemeChange(this.themeChanged);
+					options.onLoad && options.onLoad.call(this, query)
+				}
+			},
+			onUnload() {
+				const app = getApp()
+				if(this.themeChanged) {
+					app.unWatchThemeChange && app.unWatchThemeChange(this.themeChanged)
+				options.onUnload && options.onUnload.call(this)
+				}
+				
+			}
+		})
+	)
+}
+
+export default CustomPage

+ 12 - 0
base/behaviors/theme.js

@@ -0,0 +1,12 @@
+module.exports = Behavior({
+    data: {
+        theme: 'light'
+    },
+    methods: {
+        themeChanged(theme) {
+            this.setData({
+                theme
+            })
+        }
+    }
+})

+ 134 - 0
common.wxss

@@ -0,0 +1,134 @@
+/*!
+ * WeUI v2.3.0 (https://github.com/weui/weui-wxss)
+ * Copyright 2020 Tencent, Inc.
+ * Licensed under the MIT license
+ */
+/* @import '../components/weui-wxss/dist/style/weui.wxss'; */
+
+page {
+  height: 100%;
+  display: flex;
+  justify-content: center;
+}
+
+.page {
+  min-height: 100%;
+  background-color: var(--weui-BG-1);
+  color: var(--weui-FG-0);
+  font-size: 16px;
+  font-family: -apple-system-font, Helvetica Neue, Helvetica, sans-serif;
+  max-width: 600px;
+}
+
+image {
+  max-width: 100%;
+  max-height: 100%
+}
+
+.link {
+  display: inline;
+  color: var(--weui-LINK)
+}
+
+.fadeIn {
+  -webkit-animation: a .3s forwards;
+  animation: a .3s forwards
+}
+
+.fadeOut {
+  -webkit-animation: b .3s forwards;
+  animation: b .3s forwards
+}
+
+@-webkit-keyframes a {
+  0% {
+    opacity: 0
+  }
+
+  to {
+    opacity: 1
+  }
+}
+
+@keyframes a {
+  0% {
+    opacity: 0
+  }
+
+  to {
+    opacity: 1
+  }
+}
+
+@-webkit-keyframes b {
+  0% {
+    opacity: 1
+  }
+
+  to {
+    opacity: 0
+  }
+}
+
+@keyframes b {
+  0% {
+    opacity: 1
+  }
+
+  to {
+    opacity: 0
+  }
+}
+
+.weui-msg__extra-area {
+  position: static
+}
+
+.page__hd {
+  padding: 40px
+}
+
+.page__bd {
+  padding-bottom: 40px
+}
+
+.page__bd_spacing {
+  padding-left: 15px;
+  padding-right: 15px
+}
+
+.page__ft {
+  padding-top: 40px;
+  padding-bottom: 10px;
+  padding-bottom: calc(10px + constant(safe-area-inset-bottom));
+  padding-bottom: calc(10px + env(safe-area-inset-bottom));
+  text-align: center
+}
+
+[data-weui-theme=dark] .page__ft image {
+  -webkit-filter: invert(100) hue-rotate(180deg);
+  filter: invert(100) hue-rotate(180deg)
+}
+
+.page__title {
+  text-align: left;
+  font-size: 20px;
+  font-weight: 400
+}
+
+.page__desc {
+  margin-top: 5px;
+  color: var(--weui-FG-1);
+  text-align: left;
+  font-size: 14px
+}
+
+.weui-cell_example:before {
+  left: 52px
+}
+
+@media (prefers-color-scheme: dark) {
+  page {
+    background-color: #1F1F1F;
+  }
+}

+ 127 - 0
components/vtabs-content/index.js

@@ -0,0 +1,127 @@
+module.exports =
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// define __esModule on exports
+/******/ 	__webpack_require__.r = function(exports) {
+/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 		}
+/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 	};
+/******/
+/******/ 	// create a fake namespace object
+/******/ 	// mode & 1: value is a module id, require it
+/******/ 	// mode & 2: merge all properties of value into the ns
+/******/ 	// mode & 4: return value when already ns object
+/******/ 	// mode & 8|1: behave like require
+/******/ 	__webpack_require__.t = function(value, mode) {
+/******/ 		if(mode & 1) value = __webpack_require__(value);
+/******/ 		if(mode & 8) return value;
+/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ 		var ns = Object.create(null);
+/******/ 		__webpack_require__.r(ns);
+/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ 		return ns;
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+/******/
+/******/
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(__webpack_require__.s = 7);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 7:
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Component({
+    options: {
+        addGlobalClass: true,
+        multipleSlots: true
+    },
+    properties: {
+        tabIndex: {
+            type: Number,
+            value: 0
+        }
+    },
+    relations: {
+        '../vtabs/index': {
+            type: 'parent'
+        }
+    },
+    lifetimes: {
+        attached: function attached() {}
+    },
+    methods: {
+        calcHeight: function calcHeight(callback) {
+            var query = this.createSelectorQuery();
+            query.select('.weui-vtabs-content__item').boundingClientRect(function (rect) {
+                callback && callback(rect);
+            }).exec();
+        }
+    }
+});
+
+/***/ })
+
+/******/ });

+ 4 - 0
components/vtabs-content/index.json

@@ -0,0 +1,4 @@
+{
+    "component": true,
+    "usingComponents": {}
+}

+ 3 - 0
components/vtabs-content/index.wxml

@@ -0,0 +1,3 @@
+<view class="weui-vtabs-content__item" id="weui-vtabs-content__{{tabIndex}}">
+  <slot ></slot>
+</view>

+ 1 - 0
components/vtabs-content/index.wxss

@@ -0,0 +1 @@
+.weui-tabs-content__item{width:100%;height:100%}

+ 203 - 0
components/vtabs/index.js

@@ -0,0 +1,203 @@
+module.exports =
+/******/ (function(modules) { // webpackBootstrap
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// define __esModule on exports
+/******/ 	__webpack_require__.r = function(exports) {
+/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 		}
+/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 	};
+/******/
+/******/ 	// create a fake namespace object
+/******/ 	// mode & 1: value is a module id, require it
+/******/ 	// mode & 2: merge all properties of value into the ns
+/******/ 	// mode & 4: return value when already ns object
+/******/ 	// mode & 8|1: behave like require
+/******/ 	__webpack_require__.t = function(value, mode) {
+/******/ 		if(mode & 1) value = __webpack_require__(value);
+/******/ 		if(mode & 8) return value;
+/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ 		var ns = Object.create(null);
+/******/ 		__webpack_require__.r(ns);
+/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ 		return ns;
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "";
+/******/
+/******/
+/******/ 	// Load entry module and return exports
+/******/ 	return __webpack_require__(__webpack_require__.s = 6);
+/******/ })
+/************************************************************************/
+/******/ ({
+
+/***/ 6:
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+Component({
+    options: {
+        addGlobalClass: true,
+        pureDataPattern: /^_/,
+        multipleSlots: true
+    },
+    properties: {
+        vtabs: { type: Array, value: [] },
+        tabBarClass: { type: String, value: '' },
+        activeClass: { type: String, value: '' },
+        tabLineColor: { type: String, value: '#ff0000' },
+        tabInactiveTextColor: { type: String, value: '#000000' },
+        tabActiveTextColor: { type: String, value: '#ff0000' },
+        tabInactiveBgColor: { type: String, value: '#eeeeee' },
+        tabActiveBgColor: { type: String, value: '#ffffff' },
+        activeTab: { type: Number, value: 0 },
+        animation: { type: Boolean, value: true },
+        tabActiveTextColordiv: { type: String, value: '#FEFFFE' }
+    },
+    data: {
+        currentView: 0,
+        contentScrollTop: 0,
+        _heightRecords: [],
+        _contentHeight: {}
+    },
+    observers: {
+        activeTab: function activeTab(_activeTab) {
+            this.scrollTabBar(_activeTab);
+        }
+    },
+    relations: {
+        '../vtabs-content/index': {
+            type: 'child',
+            linked: function linked(target) {
+                var _this = this;
+
+                target.calcHeight(function (rect) {
+                    _this.data._contentHeight[target.data.tabIndex] = rect.height;
+                    if (_this._calcHeightTimer) {
+                        clearTimeout(_this._calcHeightTimer);
+                    }
+                    _this._calcHeightTimer = setTimeout(function () {
+                        _this.calcHeight();
+                    }, 100);
+                });
+            },
+            unlinked: function unlinked(target) {
+                delete this.data._contentHeight[target.data.tabIndex];
+            }
+        }
+    },
+    lifetimes: {
+        attached: function attached() {}
+    },
+    methods: {
+        calcHeight: function calcHeight() {
+            var length = this.data.vtabs.length;
+            var _contentHeight = this.data._contentHeight;
+            var _heightRecords = [];
+            var temp = 0;
+            for (var i = 0; i < length; i++) {
+                _heightRecords[i] = temp + (_contentHeight[i] || 0);
+                temp = _heightRecords[i];
+            }
+            this.data._heightRecords = _heightRecords;
+        },
+        scrollTabBar: function scrollTabBar(index) {
+            var len = this.data.vtabs.length;
+            if (len === 0) return;
+            var currentView = index < 6 ? 0 : index - 5;
+            if (currentView >= len) currentView = len - 1;
+            this.setData({ currentView: currentView });
+        },
+        handleTabClick: function handleTabClick(e) {
+            var _heightRecords = this.data._heightRecords;
+            var index = e.currentTarget.dataset.index;
+            var contentScrollTop = _heightRecords[index - 1] || 0;
+            this.triggerEvent('tabclick', { index: index });
+            this.setData({
+                activeTab: index,
+                contentScrollTop: contentScrollTop
+            });
+        },
+        handleContentScroll: function handleContentScroll(e) {
+            var _heightRecords = this.data._heightRecords;
+            if (_heightRecords.length === 0) return;
+            var length = this.data.vtabs.length;
+            var scrollTop = e.detail.scrollTop;
+            var index = 0;
+            if (scrollTop >= _heightRecords[0]) {
+                for (var i = 1; i < length; i++) {
+                    if (scrollTop >= _heightRecords[i - 1] && scrollTop < _heightRecords[i]) {
+                        index = i;
+                        break;
+                    }
+                }
+            }
+            if (index !== this.data.activeTab) {
+                this.triggerEvent('change', { index: index });
+                this.setData({ activeTab: index });
+            }
+        }
+    }
+});
+
+/***/ })
+
+/******/ });

+ 4 - 0
components/vtabs/index.json

@@ -0,0 +1,4 @@
+{
+    "component": true,
+    "usingComponents": {}
+}

+ 45 - 0
components/vtabs/index.wxml

@@ -0,0 +1,45 @@
+<view class="weui-vtabs">
+  <view class="weui-vtabs-bar__wrp {{tabBarClass}}">
+    <scroll-view 
+      scroll-y
+      class="weui-vtabs-bar__scrollview"
+      scroll-into-view="weui-vtabs-item__{{currentView}}"
+    >
+      <view class="weui-vtabs-bar__content">
+        <block wx:for="{{vtabs}}" wx:key="title">
+          <view 
+            id="weui-vtabs-item__{{index}}"
+            class="weui-vtabs-bar__item"
+            data-index="{{index}}"
+          
+            bindtap="handleTabClick"
+          >
+            <view class="weui-vtabs-bar__title {{activeTab === index ? activeClass : ''}}"
+            style="background-color: {{activeTab === index ? 'white' : '#F6F6F6'}};"
+            >
+            <!-- 左邊icon -->
+            <image src="{{item.img}}" class="icon" />
+
+              <text class=""
+              style="color: {{activeTab === index ? '#BEDA70' : 'gray'}};margin-top: 16rpx;"
+              >{{item.title}}</text>
+            </view>
+          </view>
+        </block>
+      </view>
+    </scroll-view>
+  </view>
+  <view class="weui-vtabs-content__wrp">
+    <scroll-view 
+      scroll-y
+      class="weui-vtabs-content__scrollview" 
+      scroll-top="{{contentScrollTop}}"
+      scroll-with-animation="{{animation}}"
+      bindscroll="handleContentScroll"
+    >
+      <view class="weui-vtabs-content">
+        <slot ></slot>
+      </view>
+    </scroll-view>
+  </view>
+</view>

+ 61 - 0
components/vtabs/index.wxss

@@ -0,0 +1,61 @@
+.weui-vtabs {
+	width: 100%;
+	height: 100%;
+	display: flex
+}
+
+.weui-vtabs-bar__wrp {
+	width: 110px;
+	height: 100%
+}
+
+.weui-vtabs-bar__scrollview {
+	height: 100%
+}
+
+.weui-vtabs-bar__content {
+	width: 110px;
+	height: 100%
+}
+
+.weui-vtabs-bar__item {
+	/* display: inline-block;
+	width: 110px;
+	height: 55px;
+	border-left: 4px solid transparent */
+}
+
+.weui-vtabs-bar__title {
+	box-sizing: border-box;
+	width: 178rpx;
+	height: 152rpx;
+	display: flex;
+    flex-flow: column nowrap;
+    justify-content: center;
+    align-items: center;
+    font-size: 24rpx;
+	text-align: center;
+	position: relative;
+
+
+
+
+ 
+}
+.icon{
+	width: 42rpx;
+height: 42rpx;
+}
+.weui-vtabs-content__wrp {
+	overflow: hidden;
+	flex: 1;
+	height: 100%
+}
+
+.weui-vtabs-content__scrollview {
+	height: 100%
+}
+
+.weui-vtabs-content {
+	height: 100%
+}

BIN
images/groupmeallist/PositionDiv_icon.png


BIN
images/groupmeallist/combo.png


BIN
images/groupmeallist/distance.png


BIN
images/groupmeallist/left_icon.png


BIN
images/groupmeallist/selectionCombo.png


BIN
images/groupmeallist/shop_car.png


+ 118 - 0
pages/groupmeallist/storeGoods/storeGoods.js

@@ -0,0 +1,118 @@
+import CustomPage from '../../../base/CustomPage'
+
+CustomPage({
+  onShareAppMessage() {
+    return {
+      title: 'vtabs',
+      path: 'page/weui/example/vtabs/vtabs'
+    }
+  },
+  data: {
+    vtabs: [],
+    activeTab: 0,
+    totalPrice:2,
+    isShowCartPannel: true,
+    cartSkuMapData:[{}]
+  },
+    // 弹窗购物车面板
+    popCartPannel: function () {
+      if (this.data.isShowCartPannel) {
+          this.closeCartPannel()
+          return
+      }
+      if (this.data.allNum == 0) {
+          return
+      }
+      this.showCartPannel();
+  },
+   // 详情和收起
+   changeCollapseOrDetail :function (e){
+    let idx = e.currentTarget.dataset.idx;
+    var that = this;
+    that.data.cartSkuMapData[idx].show = !that.data.cartSkuMapData[idx].show
+    that.setData({
+        cartSkuMapData:that.data.cartSkuMapData
+    });
+    console.log("购物车详情");
+    console.log(that.data.cartSkuMapData);
+},
+//关闭购物车面板
+  closeCartPannel: function() {
+    this.setData({
+        isShowCartPannel: false
+    })
+},
+  //显示对话框
+  showCartPannel: function () {
+    // 显示遮罩层
+    var animation = wx.createAnimation({
+        duration: 100,
+        timingFunction: "linear",
+        delay: 0
+    })
+    this.animation = animation
+    animation.translateY(300).step()
+    this.setData({
+        animationData: animation.export(),
+        isShowCartPannel: true
+    })
+    setTimeout(function () {
+        animation.translateY(0).step()
+        this.setData({
+            animationData: animation.export()
+        })
+    }.bind(this), 100)
+},
+  onLoad() {
+    const tabs = [
+      {
+        title: '技术开发',
+        title2: '小程序开发进阶',
+        img: 'https://cdn1.shpr.top/saas1/hsay/publicPath/228aaa1e-450f-4d52-a61a-e4f32b1c9bc0.jpg',
+        desc: '本视频系列课程,由腾讯课堂NEXT学院与微信团队联合出品,通过实战案例,深入浅出地进行讲解。',
+      },
+      {
+        title: '产品解析',
+        title2: '微信小程序直播',
+        img: 'http://mmbiz.qpic.cn/sz_mmbiz_png/GEWVeJPFkSHALb0g5rCc4Jf5IqDfdwhWJ43I1IvriaV5uFr9fLAuv3uxHR7DQstbIxhNXFoQEcxGzWwzQUDBd6Q/0?wx_fmt=png',
+        desc: '微信小程序直播系列课程持续更新中,帮助大家更好地理解、应用微信小程序直播功能。',
+      },
+      {
+        title: '运营规范',
+        title2: '常见问题和解决方案',
+        img: 'http://mmbiz.qpic.cn/sz_mmbiz_jpg/GEWVeJPFkSGqys4ibO2a8L9nnIgH0ibjNXfbicNbZQQYfxxUpmicQglAEYQ2btVXjOhY9gRtSTCxKvAlKFek7sRUFA/0?wx_fmt=jpeg',
+        desc: '提高审核质量',
+      },
+      {
+        title: '营销经验',
+        title2: '流量主小程序',
+        img: 'http://mmbiz.qpic.cn/sz_mmbiz_jpg/GEWVeJPFkSH2Eic4Lt0HkZeEN08pWXTticVRgyNGgBVHMJwMtRhmB0hE4m4alSuwsBk3uBBOhdCr91bZlSFbYhFg/0?wx_fmt=jpeg',
+        desc: '本课程共四节,将分阶段为开发者展示如何开通流量主功能、如何接入广告组件、不同类型小程序接入的建议。',
+      },
+      {
+        title: '高校大赛',
+        title2:'2020中国高校计算机大赛',
+        img: 'http://mmbiz.qpic.cn/mmbiz_jpg/TcDuyasB5T3Eg34AYwjMw7xbEK2n01ekiaicPiaMInEMTkOQtuv1yke5KziaYF4MLia4IAbxlm0m5NxkibicFg4IZ92EA/0?wx_fmt=jpeg',
+        desc: '微信小程序应用开发赛',
+      },
+    ]
+    this.setData({ vtabs: tabs })
+  },
+
+
+  onTabClick(e) {
+    const index = e.detail.index
+    console.log('tabClick', index)
+  },
+
+  onChange(e) {
+    const index = e.detail.index
+    console.log('change', index)
+  },
+  handleClick() {
+    wx.navigateTo({
+      url: '../tabs/webview',
+    })
+  }
+
+})

+ 11 - 0
pages/groupmeallist/storeGoods/storeGoods.json

@@ -0,0 +1,11 @@
+{
+  "usingComponents": {
+    "mp-vtabs": "/components/vtabs",
+    "mp-vtabs-content": "/components/vtabs-content"
+  },
+  "navigationBarBackgroundColor": "#F7F7F7",
+  "navigationBarTextStyle": "black",
+  "navigationBarTitleText": "商品列表",
+  "backgroundColor": "#F7F7F7",
+  "backgroundTextStyle": "light"
+}

+ 107 - 0
pages/groupmeallist/storeGoods/storeGoods.wxml

@@ -0,0 +1,107 @@
+<view class="page_background">
+    <!-- 门店定位地址 -->
+    <view class="storePositioning flex-column">
+        <view class="storeName">上海浦东金高路店
+        <image src="/images/groupmeallist/left_icon.png" style="width: 10rpx;height: 19rpx;"></image>
+        </view>
+        <view class="storedistance">
+        <image src="/images/groupmeallist/distance.png" style="width: 18rpx;height: 23rpx;"></image>
+        距离您1.03km
+     </view>
+
+     <view class="goods_scroll_content">
+     <mp-vtabs 
+  vtabs="{{vtabs}}" 
+  activeTab="{{activeTab}}" 
+  bindtabclick="onTabClick"
+  bindchange="onChange"
+  class="test"
+>
+  <block wx:for="{{vtabs}}" wx:key="title" >
+    <mp-vtabs-content tabIndex="{{index}}">
+      <view class="classify_title">{{item.title}}</view>
+
+        <!-- 商品列表 -->
+        <!-- <view wx:for="{{item.goodsList}}" wx:key="goodsKey" wx:for-item="goods" class="goods_item"> -->
+      <view class="vtabs-content-item">
+        <image src="{{item.img}}" class="itemimg"></image>
+        <view class="PositionDiv">
+          <view class="PositionDiv_title">清爽夏日套餐</view>
+          <view class="PositionDiv_detail">订单满188元,立减38元</view>
+          <view class="PositionDiv_addAndicon flex-row">
+            <view style="font-weight: 700;font-size:32rpx">¥ 58.8 起</view>
+            <view class="PositionDiv_icon"><image src="/images/groupmeallist/PositionDiv_icon.png"></image></view>
+          </view>
+          
+        
+        
+        </view>
+      </view>
+      
+<!-- </view> -->
+
+    </mp-vtabs-content>
+  </block>
+ 
+
+</mp-vtabs>
+<view class="bottom_div flex-row" style="display: {{totalPrice >0 ? 'bloack':'none'  }};">
+  <view style="margin-left: 89rpx;" class="flex-row" catchtap="popCartPannel">
+    <image src="/images/groupmeallist/shop_car.png" style="width: 53rpx;height: 53rpx;"></image>
+    <view class="sum_shop">1</view>
+  </view>
+  <view style="font-size: 47rpx;font-weight: 700;">
+    <text style="font-size: 37rpx;font-weight: 700;margin-left: 34rpx;">¥</text>58.8
+  </view>
+  <view style="margin-left: 292rpx;font-size: 32rpx;font-weight: 700;color: #444444;">去结算</view>
+  
+  
+</view>
+</view>
+
+<!--购物车弹出框  -->
+<view class="cart-pannel" wx:if="{{isShowCartPannel}}">
+    <!-- 遮罩背景 -->
+    <view class="make-layer-bg" catchtap="closeCartPannel"></view>
+    <view style="opacity: 1;height: 750rpx;">
+    <view animation="{{animationData}}" class="commodity_attr_box flex-column">
+        <view class="shop_car_detail flex-row-between">
+            <view class="shop_car_num">我的套餐</view>
+            <view class="del_icaon" bindtap="onChangeShowStateDelFalse"></view>
+        </view>
+        
+        <view class="cart-goods-list">
+            <!-- 循环购物车 -->
+          
+            <view    wx:for="{{cartSkuMapData}}" wx:key="index" class="shop_car_foods">
+                <view class="flex-column">
+                    <view class="shop_car_foods_title flex-row">
+                        <!-- 可能存在优惠标识 -->
+                        <view class="shop_car_foods_title_left flex-row">
+                        <view style="max-width: 370rpx;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;margin-left: 28rpx;"> 清爽夏日套餐</view>
+                        <view catchtap="changeCollapseOrDetail" class="Collapse_and_details">{{cartSkuMapData[index].show == true ? '收起' : '详情'}}</view>
+
+                        <view class="shop-cart-price-wrap">
+
+                        </view>
+                      </view>
+                    </view>
+                       
+</view>
+</view>
+
+        </view>
+    </view>
+</view>
+</view>
+</view>
+
+
+
+
+
+
+
+
+
+</view>

+ 312 - 0
pages/groupmeallist/storeGoods/storeGoods.wxss

@@ -0,0 +1,312 @@
+@import '../../../common.wxss';
+
+.page_background{
+
+    background-color: #FFFFFF;
+    overflow-y: hidden;
+    height: 100vh;
+    width: 100vw;
+    box-sizing: border-box;
+}
+.goods_scroll_content {
+    height: calc(100vh - 188rpx);
+    width: 100vw;
+    margin-top: 14rpx;
+  }
+.storePositioning{
+    width: 100%;
+    height: 80rpx;
+    margin-left: 19rpx;
+}
+.storeName{
+height: 48rpx;
+font-size: 36rpx;
+font-weight: 700;
+text-align: left;
+color: #000000;
+}
+
+.storedistance{
+    /* width: 149rpx; */
+height: 32rpx;
+font-size: 24rpx;
+font-weight: 400;
+text-align: left;
+color: #8b8b8b;
+margin-top: 7rpx;
+}
+
+
+
+.mp-vtabspage{
+
+}
+
+.vtabs-content-item {
+    width: 515rpx;
+    height: 242rpx;
+    display: flex;
+    flex-direction: column;
+    justify-content: space-between;
+    box-sizing: border-box;
+    /* border-bottom: 1px solid #ccc; */
+    padding-bottom: 20px;
+  
+    margin-bottom: 12rpx;
+}
+
+
+.itemimg{
+    width: 536rpx;
+height: 212rpx;
+border-radius: 15rpx;
+}
+
+.classify_title{
+    height: 32rpx;
+    font-size: 24rpx;
+    font-weight: 400;
+    text-align: left;
+    color: #8b8b8b;
+
+}
+.item-title {
+    font-size: 18px;
+    margin: 0 10px;
+}
+.item-desc {
+    margin: 0 10px;
+
+    color: var(--weui-FG-1)
+}
+
+.weui-vtabs-bar__wrp {
+    background-color: var(--weui-BG-0) !important;
+}
+
+.weui-vtabs-bar__item {
+    background-color: var(--weui-BG-0);
+    color: var(--weui-FG-0);
+    border-left-color: var(--weui-FG-0);
+
+}
+
+.weui-vtabs-bar__activeitem {
+    background-color: var(--weui-BG-2) !important;
+    color: var(--weui-FG-0)!important;
+    border-left-color: #07c160 !important;
+}
+.PositionDiv{
+    width: 260rpx;
+    /* height: 100rpx; */
+    /* border: 1px black solid; */
+    position: absolute;
+    z-index: 10;
+    right: 40rpx;
+    margin-top: 32rpx;
+
+
+}
+.PositionDiv_title{
+    width: 258rpx;
+    height: 37rpx;
+    font-size: 28rpx;
+    font-weight: 700;
+    text-align: left;
+    color: #000000;
+   
+overflow:hidden;
+text-overflow:ellipsis;
+-o-text-overflow:ellipsis;
+white-space:nowrap;
+}
+
+
+.PositionDiv_detail{
+    width: 250rpx;
+height: 32rpx;
+font-size: 24rpx;
+font-weight: 400;
+text-align: left;
+color: #000000;
+margin-top: 7rpx;
+
+}
+.PositionDiv_addAndicon{
+    margin-top: 38rpx;
+    /* width: 250rpx; */
+    justify-content: space-between;
+    
+}
+.PositionDiv_icon{
+    width: 38rpx;
+    height: 38rpx;
+   margin-left: 10rpx;
+}
+.bottom_div{
+    width: 750px;
+    margin-left: -20rpx;
+    height: 102rpx;
+    background: #afd250;
+    position: fixed;
+    left: 0;
+    bottom: 0;
+    z-index:30;
+}
+.sum_shop{
+    width: 28rpx;
+    height: 28rpx;
+    background: #ff0000;
+    border-radius: 50%;
+    margin-top: -45rpx;
+    margin-left: -15rpx;
+    text-align: center;
+    line-height: 28rpx;
+    font-size: 20rpx;
+    color: #ffffff;
+
+}
+.cart-pannel {
+    width: 100vw;
+    height: 100vh;
+    position: fixed;
+    left: 0;
+    top: 0;
+    z-index: 19;
+  }
+  .make-layer-bg {
+    width: 100vw;
+    height: 100vh;
+    background: #000;
+    opacity: 0.8;
+    position: fixed;
+    left: 0;
+    top: 0;
+  }
+  /*对话框 */
+  .commodity_attr_box {
+    max-height: 60%;
+    min-height: 40%;
+    width: 750rpx;
+    overflow: hidden;
+    position: fixed;
+    bottom: 100rpx;
+    left: 0;
+    z-index: 200;
+    background: #fff;
+    padding-top: 20rpx;
+    border-radius: 20px 20px 0 0;
+  }
+  .shop_car_num{
+    width: 112rpx;
+    height: 37rpx;
+    font-size: 28rpx;
+    font-weight: 400;
+    text-align: left;
+    color: #9b9b9b;
+    margin-left: 28rpx;
+    margin-top: 20rpx;
+  }
+  .del_icaon{
+    width: 27rpx;
+    height: 36rpx;
+    margin-right: 20rpx;
+    background-image: url(https://cdn1.overseasdragon.com.cn/xcx-smdd/order_del.png);
+    background-size: 100% 100%;
+  }
+  .shop_car_detail{
+    width: 718rpx;
+    height: 80rpx;
+    border-bottom: 2rpx solid #e9e9e9;
+}
+.cart-goods-list .shop_car_foods:last-child {
+    border-bottom: none;
+  }
+.shop_car_foods_title{
+    width: 100%;
+    height: 45rpx;
+    
+    font-size: 32rpx;
+    font-weight: bold;
+    line-height: 45rpx;
+    color: #000;
+    padding-top: 40rpx;
+  }
+  .shop-cart-price-wrap {
+    display: flex;
+    flex-flow: row nowrap;
+    justify-content: left;
+    flex-direction: row;
+    /* padding-top: 40rpx; */
+  }
+  .shop-cart-price-wrap .flex-row {
+    align-items: baseline;
+  }
+
+  .shop_car_foods_title{
+    height: 45rpx;
+    
+    font-size: 32rpx;
+    font-weight: bold;
+    line-height: 45rpx;
+    color: #000;
+    padding-top: 40rpx;
+  }
+
+  .shop_car_foods_price{
+    height: 45rpx;
+    font-size: 32rpx;
+    font-weight: bold;
+    line-height: 45rpx;
+    color: #000;
+    margin-right: 12rpx;
+  }
+
+  .shop_car_foods_icon{
+    padding-top: 4rpx;
+  }
+
+  .shop_car_foods_icon_reduce{
+    width: 39rpx;
+    height: 39rpx;
+    background-image: url(https://cdn1.overseasdragon.com.cn/xcx-smdd/order_reduce.png);
+    background-size: 100% 100%;
+  }
+  .shop_car_foods_icon_num{
+    font-size: 28rpx;
+    color: #FE7253;
+    padding: 0 6rpx;
+    vertical-align: middle;
+    display: inline-block;
+    position: relative;
+    top: -8rpx;
+  }
+
+  .spec_sku_num {
+    font-size: 28rpx;
+    color: #FE7253;
+    padding: 0 10rpx;
+    vertical-align: middle;
+    display: inline-block;
+    position: relative;
+  }
+
+
+  .shop_car_foods_icon_add{
+    width: 39rpx;
+    height: 39rpx;
+    background-image: url(https://cdn1.overseasdragon.com.cn/xcx-smdd/order_add.png);
+    background-size: 100% 100%;
+  }
+  .shop_car_foods_title_left{
+      /* width:400rpx ; */
+  }
+  .Collapse_and_details{
+    width: 48rpx;
+    height: 32rpx;
+    font-size: 24rpx;
+    font-weight: 400;
+    text-align: left;
+    color: #9b9b9b;
+    margin-left: 12rpx;
+  }

+ 60 - 127
pages/welfareMall/activityList/activityList.js

@@ -1,133 +1,66 @@
 // pages/welfareMall/activityList/activityList.js
-
-import WelfareMall from '../../../api/welfareMall';
-const app = getApp();
 Page({
 
-  /**
-   * 页面的初始数据
-   */
-  data: {
-      type:2, //1免费 2 收费
-      page:1,
-      pageSize:10,
-      list:[],
-      init:true,
-      config:{},
-      noResult:false
-  },
-
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad: function (options) {
-    this.data.page = 1;
-    this.data.type = 2;
-    this.getActivityList()
-  },
-
-  /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady: function () {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow: function () {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面隐藏
-   */
-  onHide: function () {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面卸载
-   */
-  onUnload: function () {
-
-  },
-
-  /**
-   * 页面相关事件处理函数--监听用户下拉动作
-   */
-  onPullDownRefresh: function () {
-
-  },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  onReachBottom: function () {
-      console.log(this.data.noMore)
-      if (this.data.noMore) {
-        return
-      }
-      console.log(1231233)
-      this.setData({
-        page: this.data.page + 1
-      })
-      this.getActivityList()
-  },
-
-  /**
-   * 用户点击右上角分享
-   */
-  onShareAppMessage: function () {
-
-  },
-  gotoFree:function () {
-    this.setData({
-      type:1,
-      page:1,
-      noMore: false,
-      noResult:false,
-    })
-    this.getActivityList();
-  },
-  gotoPay:function () {
-    this.setData({
-      type:2,
-      page:1,
-      noMore: false,
-      noResult:false,
-    })
-    this.getActivityList();
-  },
-  goCouponDetail:function(e){
-    let activityId = e.currentTarget.dataset.id   
-    wx.navigateTo({
-      url: '/pages/welfareMall/activityInfo/activityInfo?activityId='+ activityId,
-    })
-  },
-
-  // 1是免费,2是收费
-   getActivityList: async function() {
-    let res = await WelfareMall.getActivityList(this.data.type,this.data.page,this.data.pageSize)
-    let init = true;
-    if(res.data.list.length==0){
-      init = false;
-      this.setData({
-        init: init,
-        noMore: this.data.page == 1 ? false: true,
-        noResult:this.data.page == 1 ? true: false,
-      })
-    }
+    /**
+     * 页面的初始数据
+     */
+    data: {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面加载
+     */
+    onLoad: function (options) {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面初次渲染完成
+     */
+    onReady: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面显示
+     */
+    onShow: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面隐藏
+     */
+    onHide: function () {
+
+    },
+
+    /**
+     * 生命周期函数--监听页面卸载
+     */
+    onUnload: function () {
+
+    },
+
+    /**
+     * 页面相关事件处理函数--监听用户下拉动作
+     */
+    onPullDownRefresh: function () {
+
+    },
+
+    /**
+     * 页面上拉触底事件的处理函数
+     */
+    onReachBottom: function () {
+
+    },
+
+    /**
+     * 用户点击右上角分享
+     */
+    onShareAppMessage: function () {
 
-    if(this.data.page!=1){
-      var list = this.data.list.concat(...res.data.list)
-    }else{
-      var list = res.data.list
     }
-    this.setData({
-      list:list,
-      config:res.data.config
-    })
-  }
 })

+ 0 - 10
pages/welfareMall/activityList/activityList.json

@@ -1,10 +0,0 @@
-{
-  "usingComponents": {
-    
-  },
-  "navigationBarBackgroundColor": "#fff",
-  "navigationBarTextStyle": "black",
-  "navigationBarTitleText": "超值券包",
-  "backgroundColor": "#fff",
-  "backgroundTextStyle": "light"
-}

+ 2 - 41
pages/welfareMall/activityList/activityList.wxml

@@ -1,41 +1,2 @@
-<page-wrap id="Page">
-  <view class="top_banner flex-row">
-    <view class="top_banner_item flex-column" bindtap="gotoPay">
-      <view class="t_b_i_title">特惠券包</view>
-      <view class="t_b_i_border {{type==2?'active':''}}"></view>
-    </view>
-
-    <view class="top_banner_item flex-column" bindtap="gotoFree">
-      <view class="t_b_i_title">免费券包</view>
-      <view class="t_b_i_border {{type==1?'active':''}}"></view>
-    </view>
-
-  </view>
-
-  <view class="coupon-list">
-    <view class="coupon_item flex-row" wx:for="{{list}}" wx:key="unique"  bindtap="goCouponDetail" data-id="{{item.activityId}}">
-        <image src="{{item.coverImg}}" class="coupon_item_img"></image>
-        <view class="coupon_item_right flex-column">
-        <view class="flex-column">
-          <view class="coupon_name over-ellipsis-two">{{item.name}}</view>
-          <view class="coupon_num" wx:if="{{item.cashCouponNum > 0 && item.discountCouponNum > 0}}">含{{item.cashCouponNum}}张代金券、{{item.discountCouponNum}}张折扣券</view>
-          <view class="coupon_num" wx:if="{{item.cashCouponNum ==0 && item.discountCouponNum > 0}}">含{{item.discountCouponNum}}张折扣券</view>
-          <view class="coupon_num" wx:if="{{item.cashCouponNum > 0 && item.discountCouponNum == 0}}">含{{item.cashCouponNum}}张代金券</view>
-          <view class="coupon_num" wx:if="{{item.cashCouponNum ==0 && item.discountCouponNum ==0}}"></view>
-        
-        </view>
-          <view class="coupon_i_r_bottom flex-row">
-            <view class="coupon_price" style="color: {{config.secColor?config.secColor:'#B01717'}};">价值 ¥{{item.formatShowPrice}}</view>
-            <view class="coupon_buy" style="background-color: {{config.mainColor?config.mainColor:'#B01717'}}" wx:if="{{item.isPay!=0}}">{{item.formatPrice}}元抢</view>
-            <view class="coupon_buy"  style="background-color: {{config.mainColor?config.mainColor:'#B01717'}}" wx:else>免费领取</view>
-          </view>
-        </view>
-    </view>
-    <view class="no_result" wx:if="{{noResult}}">——— 抱歉,暂无券包 ———</view>
-    <view class="no_result" wx:if="{{noMore}}">—— 人家也是有底线的 ——</view>
-  </view>
-
-
-
-
-</page-wrap>
+<!--pages/welfareMall/activityList/activityList.wxml-->
+<text>pages/welfareMall/activityList/activityList.wxml</text>

+ 0 - 106
pages/welfareMall/activityList/activityList.wxss

@@ -1,106 +0,0 @@
-Page {
-  width: 100%;
-  height: 100%;
-  box-sizing: border-box;
-  display: flex;
-  flex-flow: column nowrap;
-  justify-content: flex-start;
-  align-items: center;
-  background-color: #F7F7F7;
-}
-.top_banner{
-  width: 750rpx;
-  height: 98rpx;
-  background: #FFFFFF;
-  justify-content: space-around!important;
-  align-items: flex-end!important;
-}
-.top_banner_item{
-  width: 60px;
-  font-size: 14px;
-  font-weight: 700;
-  text-align: center;
-  color: #000000;
-  justify-content: end!important;
-  align-items: center!important;
-  margin-bottom: 8px;
-}
-
-.t_b_i_border{
-  width: 45px;
-  height: 2px;
-  margin-top: 5px;
-}
-.active{
-  background: #B01717;
-  border-radius: 1px;
-}
-
-.coupon_item{
-  height: 238rpx;
-  width: 716rpx;
-  margin-top: 24rpx;
-  background-color: #FFFFFF;
-  border-radius: 10rpx;
-  margin: 24rpx auto 0;
-}
-
-.coupon_item_img{
-  width: 240rpx;
-  height: 91px;
-  border-radius: 5px;
-  margin-left: 13px;
-}
-.coupon_item_right{
-  width: 398rpx;
-  height: 182rpx;
-  margin-left: 13px;
-  box-sizing: border-box;
-  padding-top: 5px;
-  justify-content: space-between!important;
-}
-.coupon_name{
-font-size: 14px;
-font-weight: 700;
-color: #010101;
-line-height:15px ;
-}
-.coupon_num{
-height: 11px;
-font-size: 11px;
-font-weight: 500;
-color: #A0A0A0;
-margin-top: 6px;
-}
-
-.coupon_i_r_bottom{
-  justify-content: space-between!important;
-}
-.coupon_price{
-font-size: 22rpx;
-font-weight: 500;
-color: #B01717;
-}
-.coupon_buy{
-width: 160rpx;
-height: 58rpx;
-line-height: 58rpx;
-background: #B01717;
-border-radius: 28rpx;
-color: #ffffff;
-text-align: center;
-font-size: 30rpx;
-}
-
-.no_result {
-  font-size: 24rpx;
-  color: #B1B1B1;
-  line-height: 100rpx;
-  font-weight: 1000;
-  text-align: center;
-  padding: 50rpx 0;
-}
-
-.coupon-list {
-  padding-bottom: 50rpx;
-}

+ 252 - 236
project.private.config.json

@@ -1,240 +1,256 @@
 {
-  "setting": {},
-  "condition": {
-    "miniprogram": {
-      "list": [
-        {
-          "name": "pages/activityInfo/activityInfo",
-          "pathName": "pages/activityInfo/activityInfo",
-          "query": "id=Bg5740r78w&mobile=18636653274",
-          "scene": null
-        },
-        {
-          "name": "pages/couponReceive/couponReceive",
-          "pathName": "pages/couponReceive/couponReceive",
-          "query": "codeId=JyZmVzKm0D-47",
-          "scene": null
-        },
-        {
-          "name": "pages/myCoupons/myCoupons",
-          "pathName": "pages/myCoupons/myCoupons",
-          "query": "mobile=18636653274",
-          "scene": null
-        },
-        {
-          "name": "pages/receiveCoupon/receiveCoupon",
-          "pathName": "pages/receiveCoupon/receiveCoupon",
-          "query": "",
-          "scene": 1013
-        },
-        {
-          "name": "pages/welfareMall/personal/personal",
-          "pathName": "pages/welfareMall/personal/personal",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "pages/welfareMall/historical/historical",
-          "pathName": "pages/welfareMall/historical/historical",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "pages/welfareMall/refund/refund",
-          "pathName": "pages/welfareMall/refund/refund",
-          "query": "id=undefined",
-          "scene": null
-        },
-        {
-          "name": "福利go ",
-          "pathName": "pages/welfareMall/index/index",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "超值券包",
-          "pathName": "pages/welfareMall/activityList/activityList",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "券包详情",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=dl5v9NpmWQ",
-          "scene": null
-        },
-        {
-          "name": "pages/luckDraw/detail",
-          "pathName": "pages/luckDraw/detail",
-          "query": "id=8",
-          "scene": null
-        },
-        {
-          "name": "pages/luckDraw/index",
-          "pathName": "pages/luckDraw/index",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "pages/luckDraw/profile",
-          "pathName": "pages/luckDraw/profile",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "pages/signIn/activity/activity",
-          "pathName": "pages/signIn/activity/activity",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "pages/signIn/record/record",
-          "pathName": "pages/signIn/record/record",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "pages/signIn/activity/activity",
-          "pathName": "pages/signIn/activity/activity",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/signIn/activity/activity",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=0zVqEyWqDn",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/order/orderCompletion",
-          "query": "ordersn=640950757739862",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/order/orderCompletion",
-          "query": "ordersn=640940250652495",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/order/orderCompletion",
-          "query": "ordersn=640230958639293",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/coupon/coupon",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/couponFitStore/index",
-          "query": "couponId=1PmexHzevy-1300",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/couponFitFood/index",
-          "query": "couponId=1PmexHzevy-1300&couponName=9%E6%8A%98%E5%88%B8",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/signIn/record/record",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/luckDraw/profile",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/feedback/feedback",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/refundInfo/refundInfo",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/buyInfo/buyInfo",
-          "query": "",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=wGxvdw5qLa-132",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/couponFitFood/index",
-          "query": "couponId=V0746sZKv1-164&couponName=%E8%96%AF%E6%9D%A1%E4%BB%A3%E9%87%91%E5%88%B842%EF%BC%88%E9%83%A8%E5%88%86%E9%97%A8%E5%BA%97-%E6%B5%8B%E8%AF%95%EF%BC%89",
-          "scene": null
-        },
-        {
-          "name": "pages/welfareMall/activityInfo/activityInfo",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=ZBJvj407nG-142",
-          "scene": null
-        },
-        {
-          "name": "pages/welfareMall/activityInfo/activityInfo",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=AYy7AEO7zJ-145",
-          "scene": null
-        },
-        {
-          "name": "pages/welfareMall/activityInfo/activityInfo",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=N6bmw5BqQw-146",
-          "scene": null
-        },
-        {
-          "name": "pages/welfareMall/activityInfo/activityInfo",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=o2QmB3G7Pk-143",
-          "scene": null
-        },
-        {
-          "name": "pages/welfareMall/activityInfo/activityInfo",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=GzYqbLGmj3-125&channel=1111",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/coupon/coupon",
-          "query": "",
-          "launchMode": "default",
-          "scene": null
-        },
-        {
-          "name": "",
-          "pathName": "pages/welfareMall/activityInfo/activityInfo",
-          "query": "activityId=o2QmBRGmPk-187",
-          "scene": null,
-          "launchMode": "default"
+    "setting": {},
+    "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
+    "condition": {
+        "plugin": {
+            "list": []
+        },
+        "game": {
+            "list": []
+        },
+        "gamePlugin": {
+            "list": []
+        },
+        "miniprogram": {
+            "list": [
+                {
+                    "name": "pages/activityInfo/activityInfo",
+                    "pathName": "pages/activityInfo/activityInfo",
+                    "query": "id=Bg5740r78w&mobile=18636653274",
+                    "scene": null
+                },
+                {
+                    "name": "pages/couponReceive/couponReceive",
+                    "pathName": "pages/couponReceive/couponReceive",
+                    "query": "codeId=JyZmVzKm0D-47",
+                    "scene": null
+                },
+                {
+                    "name": "pages/myCoupons/myCoupons",
+                    "pathName": "pages/myCoupons/myCoupons",
+                    "query": "mobile=18636653274",
+                    "scene": null
+                },
+                {
+                    "name": "pages/receiveCoupon/receiveCoupon",
+                    "pathName": "pages/receiveCoupon/receiveCoupon",
+                    "query": "",
+                    "scene": 1013
+                },
+                {
+                    "name": "pages/welfareMall/personal/personal",
+                    "pathName": "pages/welfareMall/personal/personal",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "pages/welfareMall/historical/historical",
+                    "pathName": "pages/welfareMall/historical/historical",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "pages/welfareMall/refund/refund",
+                    "pathName": "pages/welfareMall/refund/refund",
+                    "query": "id=undefined",
+                    "scene": null
+                },
+                {
+                    "name": "福利go ",
+                    "pathName": "pages/welfareMall/index/index",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "超值券包",
+                    "pathName": "pages/welfareMall/activityList/activityList",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "券包详情",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=dl5v9NpmWQ",
+                    "scene": null
+                },
+                {
+                    "name": "pages/luckDraw/detail",
+                    "pathName": "pages/luckDraw/detail",
+                    "query": "id=8",
+                    "scene": null
+                },
+                {
+                    "name": "pages/luckDraw/index",
+                    "pathName": "pages/luckDraw/index",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "pages/luckDraw/profile",
+                    "pathName": "pages/luckDraw/profile",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "pages/signIn/activity/activity",
+                    "pathName": "pages/signIn/activity/activity",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "pages/signIn/record/record",
+                    "pathName": "pages/signIn/record/record",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "pages/signIn/activity/activity",
+                    "pathName": "pages/signIn/activity/activity",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/signIn/activity/activity",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=0zVqEyWqDn",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/order/orderCompletion",
+                    "query": "ordersn=640950757739862",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/order/orderCompletion",
+                    "query": "ordersn=640940250652495",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/order/orderCompletion",
+                    "query": "ordersn=640230958639293",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/coupon/coupon",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/couponFitStore/index",
+                    "query": "couponId=1PmexHzevy-1300",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/couponFitFood/index",
+                    "query": "couponId=1PmexHzevy-1300&couponName=9%E6%8A%98%E5%88%B8",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/signIn/record/record",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/luckDraw/profile",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/feedback/feedback",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/refundInfo/refundInfo",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/buyInfo/buyInfo",
+                    "query": "",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=wGxvdw5qLa-132",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/couponFitFood/index",
+                    "query": "couponId=V0746sZKv1-164&couponName=%E8%96%AF%E6%9D%A1%E4%BB%A3%E9%87%91%E5%88%B842%EF%BC%88%E9%83%A8%E5%88%86%E9%97%A8%E5%BA%97-%E6%B5%8B%E8%AF%95%EF%BC%89",
+                    "scene": null
+                },
+                {
+                    "name": "pages/welfareMall/activityInfo/activityInfo",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=ZBJvj407nG-142",
+                    "scene": null
+                },
+                {
+                    "name": "pages/welfareMall/activityInfo/activityInfo",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=AYy7AEO7zJ-145",
+                    "scene": null
+                },
+                {
+                    "name": "pages/welfareMall/activityInfo/activityInfo",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=N6bmw5BqQw-146",
+                    "scene": null
+                },
+                {
+                    "name": "pages/welfareMall/activityInfo/activityInfo",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=o2QmB3G7Pk-143",
+                    "scene": null
+                },
+                {
+                    "name": "pages/welfareMall/activityInfo/activityInfo",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=GzYqbLGmj3-125&channel=1111",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/coupon/coupon",
+                    "query": "",
+                    "launchMode": "default",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/welfareMall/activityInfo/activityInfo",
+                    "query": "activityId=o2QmBRGmPk-187",
+                    "launchMode": "default",
+                    "scene": null
+                },
+                {
+                    "name": "",
+                    "pathName": "pages/groupmeallist/storeGoods/storeGoods",
+                    "query": "",
+                    "scene": null,
+                    "launchMode": "default"
+                }
+            ]
         }
-      ]
     }
-  },
-  "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html"
 }