master 29e432312adc cached
394 files
2.9 MB
787.8k tokens
1258 symbols
1 requests
Download .txt
Showing preview only (3,336K chars total). Download the full file or copy to clipboard to get everything.
Repository: master-start/waimai-cps-uniapp
Branch: master
Commit: 29e432312adc
Files: 394
Total size: 2.9 MB

Directory structure:
gitextract_2qjozitc/

├── .hbuilderx/
│   └── launch.json
├── App.vue
├── README.md
├── components/
│   ├── auth/
│   │   └── login.vue
│   ├── js-base64/
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── base64.d.ts
│   │   ├── base64.js
│   │   ├── base64.mjs
│   │   └── package.json
│   ├── share_hb2/
│   │   └── share_hb2.vue
│   ├── share_img/
│   │   └── share_img.vue
│   └── v-tabs/
│       ├── readme.md
│       └── v-tabs.vue
├── config.js
├── http/
│   ├── api/
│   │   ├── index.js
│   │   └── user.js
│   ├── api.js
│   └── request.js
├── jweixin/
│   └── index.js
├── main.js
├── manifest.json
├── package.json
├── pages/
│   ├── ele/
│   │   └── ele.vue
│   ├── index/
│   │   ├── child1.vue
│   │   ├── child2.vue
│   │   ├── index.vue
│   │   └── url/
│   │       └── url.vue
│   ├── meituan/
│   │   └── meituan.vue
│   ├── user/
│   │   ├── binding.vue
│   │   ├── order.vue
│   │   ├── team.vue
│   │   └── user.vue
│   └── wallet/
│       └── wallet.vue
├── pages.json
├── static/
│   └── iconfont.css
├── store/
│   └── index.js
├── uni.scss
├── unpackage/
│   └── dist/
│       ├── build/
│       │   ├── .automator/
│       │   │   └── mp-weixin/
│       │   │       └── .automator.json
│       │   └── mp-weixin/
│       │       ├── app.js
│       │       ├── app.json
│       │       ├── app.wxss
│       │       ├── common/
│       │       │   ├── main.js
│       │       │   ├── main.wxss
│       │       │   ├── runtime.js
│       │       │   └── vendor.js
│       │       ├── components/
│       │       │   ├── auth/
│       │       │   │   ├── login.js
│       │       │   │   ├── login.json
│       │       │   │   ├── login.wxml
│       │       │   │   └── login.wxss
│       │       │   ├── share_hb2/
│       │       │   │   ├── share_hb2.js
│       │       │   │   ├── share_hb2.json
│       │       │   │   ├── share_hb2.wxml
│       │       │   │   └── share_hb2.wxss
│       │       │   └── share_img/
│       │       │       ├── share_img.js
│       │       │       ├── share_img.json
│       │       │       ├── share_img.wxml
│       │       │       └── share_img.wxss
│       │       ├── pages/
│       │       │   ├── ele/
│       │       │   │   ├── ele.js
│       │       │   │   ├── ele.json
│       │       │   │   ├── ele.wxml
│       │       │   │   └── ele.wxss
│       │       │   ├── index/
│       │       │   │   ├── child1.js
│       │       │   │   ├── child1.json
│       │       │   │   ├── child1.wxml
│       │       │   │   ├── child1.wxss
│       │       │   │   ├── child2.js
│       │       │   │   ├── child2.json
│       │       │   │   ├── child2.wxml
│       │       │   │   ├── child2.wxss
│       │       │   │   ├── index.js
│       │       │   │   ├── index.json
│       │       │   │   ├── index.wxml
│       │       │   │   ├── index.wxss
│       │       │   │   └── url/
│       │       │   │       ├── url.js
│       │       │   │       ├── url.json
│       │       │   │       └── url.wxml
│       │       │   ├── meituan/
│       │       │   │   ├── meituan.js
│       │       │   │   ├── meituan.json
│       │       │   │   ├── meituan.wxml
│       │       │   │   └── meituan.wxss
│       │       │   ├── user/
│       │       │   │   ├── binding.js
│       │       │   │   ├── binding.json
│       │       │   │   ├── binding.wxml
│       │       │   │   ├── binding.wxss
│       │       │   │   ├── order.js
│       │       │   │   ├── order.json
│       │       │   │   ├── order.wxml
│       │       │   │   ├── order.wxss
│       │       │   │   ├── team.js
│       │       │   │   ├── team.json
│       │       │   │   ├── team.wxml
│       │       │   │   ├── team.wxss
│       │       │   │   ├── user.js
│       │       │   │   ├── user.json
│       │       │   │   ├── user.wxml
│       │       │   │   └── user.wxss
│       │       │   └── wallet/
│       │       │       ├── wallet.js
│       │       │       ├── wallet.json
│       │       │       ├── wallet.wxml
│       │       │       └── wallet.wxss
│       │       ├── project.config.json
│       │       ├── sitemap.json
│       │       ├── static/
│       │       │   └── iconfont.css
│       │       └── uview-ui/
│       │           └── components/
│       │               ├── u-badge/
│       │               │   ├── u-badge.js
│       │               │   ├── u-badge.json
│       │               │   ├── u-badge.wxml
│       │               │   └── u-badge.wxss
│       │               ├── u-cell-group/
│       │               │   ├── u-cell-group.js
│       │               │   ├── u-cell-group.json
│       │               │   ├── u-cell-group.wxml
│       │               │   └── u-cell-group.wxss
│       │               ├── u-cell-item/
│       │               │   ├── u-cell-item.js
│       │               │   ├── u-cell-item.json
│       │               │   ├── u-cell-item.wxml
│       │               │   └── u-cell-item.wxss
│       │               ├── u-icon/
│       │               │   ├── u-icon.js
│       │               │   ├── u-icon.json
│       │               │   ├── u-icon.wxml
│       │               │   └── u-icon.wxss
│       │               ├── u-line/
│       │               │   ├── u-line.js
│       │               │   ├── u-line.json
│       │               │   ├── u-line.wxml
│       │               │   └── u-line.wxss
│       │               ├── u-loading/
│       │               │   ├── u-loading.js
│       │               │   ├── u-loading.json
│       │               │   ├── u-loading.wxml
│       │               │   └── u-loading.wxss
│       │               ├── u-loadmore/
│       │               │   ├── u-loadmore.js
│       │               │   ├── u-loadmore.json
│       │               │   ├── u-loadmore.wxml
│       │               │   └── u-loadmore.wxss
│       │               ├── u-navbar/
│       │               │   ├── u-navbar.js
│       │               │   ├── u-navbar.json
│       │               │   ├── u-navbar.wxml
│       │               │   └── u-navbar.wxss
│       │               ├── u-swiper/
│       │               │   ├── u-swiper.js
│       │               │   ├── u-swiper.json
│       │               │   ├── u-swiper.wxml
│       │               │   └── u-swiper.wxss
│       │               └── u-tabs/
│       │                   ├── u-tabs.js
│       │                   ├── u-tabs.json
│       │                   ├── u-tabs.wxml
│       │                   └── u-tabs.wxss
│       └── dev/
│           ├── .automator/
│           │   └── mp-weixin/
│           │       └── .automator.json
│           └── mp-weixin/
│               ├── app.js
│               ├── app.json
│               ├── app.wxss
│               ├── common/
│               │   ├── main.js
│               │   ├── main.wxss
│               │   ├── runtime.js
│               │   └── vendor.js
│               ├── components/
│               │   ├── auth/
│               │   │   ├── login.js
│               │   │   ├── login.json
│               │   │   ├── login.wxml
│               │   │   └── login.wxss
│               │   ├── share_hb2/
│               │   │   ├── share_hb2.js
│               │   │   ├── share_hb2.json
│               │   │   ├── share_hb2.wxml
│               │   │   └── share_hb2.wxss
│               │   └── share_img/
│               │       ├── share_img.js
│               │       ├── share_img.json
│               │       ├── share_img.wxml
│               │       └── share_img.wxss
│               ├── pages/
│               │   ├── ele/
│               │   │   ├── ele.js
│               │   │   ├── ele.json
│               │   │   ├── ele.wxml
│               │   │   └── ele.wxss
│               │   ├── index/
│               │   │   ├── child1.js
│               │   │   ├── child1.json
│               │   │   ├── child1.wxml
│               │   │   ├── child1.wxss
│               │   │   ├── child2.js
│               │   │   ├── child2.json
│               │   │   ├── child2.wxml
│               │   │   ├── child2.wxss
│               │   │   ├── index.js
│               │   │   ├── index.json
│               │   │   ├── index.wxml
│               │   │   ├── index.wxss
│               │   │   └── url/
│               │   │       ├── url.js
│               │   │       ├── url.json
│               │   │       └── url.wxml
│               │   ├── meituan/
│               │   │   ├── meituan.js
│               │   │   ├── meituan.json
│               │   │   ├── meituan.wxml
│               │   │   └── meituan.wxss
│               │   ├── user/
│               │   │   ├── binding.js
│               │   │   ├── binding.json
│               │   │   ├── binding.wxml
│               │   │   ├── binding.wxss
│               │   │   ├── order.js
│               │   │   ├── order.json
│               │   │   ├── order.wxml
│               │   │   ├── order.wxss
│               │   │   ├── team.js
│               │   │   ├── team.json
│               │   │   ├── team.wxml
│               │   │   ├── team.wxss
│               │   │   ├── user.js
│               │   │   ├── user.json
│               │   │   ├── user.wxml
│               │   │   └── user.wxss
│               │   └── wallet/
│               │       ├── wallet.js
│               │       ├── wallet.json
│               │       ├── wallet.wxml
│               │       └── wallet.wxss
│               ├── project.config.json
│               ├── project.private.config.json
│               ├── sitemap.json
│               ├── static/
│               │   └── iconfont.css
│               └── uview-ui/
│                   └── components/
│                       ├── u-badge/
│                       │   ├── u-badge.js
│                       │   ├── u-badge.json
│                       │   ├── u-badge.wxml
│                       │   └── u-badge.wxss
│                       ├── u-cell-group/
│                       │   ├── u-cell-group.js
│                       │   ├── u-cell-group.json
│                       │   ├── u-cell-group.wxml
│                       │   └── u-cell-group.wxss
│                       ├── u-cell-item/
│                       │   ├── u-cell-item.js
│                       │   ├── u-cell-item.json
│                       │   ├── u-cell-item.wxml
│                       │   └── u-cell-item.wxss
│                       ├── u-icon/
│                       │   ├── u-icon.js
│                       │   ├── u-icon.json
│                       │   ├── u-icon.wxml
│                       │   └── u-icon.wxss
│                       ├── u-line/
│                       │   ├── u-line.js
│                       │   ├── u-line.json
│                       │   ├── u-line.wxml
│                       │   └── u-line.wxss
│                       ├── u-loading/
│                       │   ├── u-loading.js
│                       │   ├── u-loading.json
│                       │   ├── u-loading.wxml
│                       │   └── u-loading.wxss
│                       ├── u-loadmore/
│                       │   ├── u-loadmore.js
│                       │   ├── u-loadmore.json
│                       │   ├── u-loadmore.wxml
│                       │   └── u-loadmore.wxss
│                       ├── u-navbar/
│                       │   ├── u-navbar.js
│                       │   ├── u-navbar.json
│                       │   ├── u-navbar.wxml
│                       │   └── u-navbar.wxss
│                       ├── u-swiper/
│                       │   ├── u-swiper.js
│                       │   ├── u-swiper.json
│                       │   ├── u-swiper.wxml
│                       │   └── u-swiper.wxss
│                       └── u-tabs/
│                           ├── u-tabs.js
│                           ├── u-tabs.json
│                           ├── u-tabs.wxml
│                           └── u-tabs.wxss
├── uview-ui/
│   ├── LICENSE
│   ├── README.md
│   ├── components/
│   │   ├── u-action-sheet/
│   │   │   └── u-action-sheet.vue
│   │   ├── u-alert-tips/
│   │   │   └── u-alert-tips.vue
│   │   ├── u-avatar/
│   │   │   └── u-avatar.vue
│   │   ├── u-avatar-cropper/
│   │   │   ├── u-avatar-cropper.vue
│   │   │   └── weCropper.js
│   │   ├── u-back-top/
│   │   │   └── u-back-top.vue
│   │   ├── u-badge/
│   │   │   └── u-badge.vue
│   │   ├── u-button/
│   │   │   └── u-button.vue
│   │   ├── u-calendar/
│   │   │   └── u-calendar.vue
│   │   ├── u-car-keyboard/
│   │   │   └── u-car-keyboard.vue
│   │   ├── u-card/
│   │   │   └── u-card.vue
│   │   ├── u-cell-group/
│   │   │   └── u-cell-group.vue
│   │   ├── u-cell-item/
│   │   │   └── u-cell-item.vue
│   │   ├── u-checkbox/
│   │   │   └── u-checkbox.vue
│   │   ├── u-checkbox-group/
│   │   │   └── u-checkbox-group.vue
│   │   ├── u-circle-progress/
│   │   │   └── u-circle-progress.vue
│   │   ├── u-col/
│   │   │   └── u-col.vue
│   │   ├── u-collapse/
│   │   │   └── u-collapse.vue
│   │   ├── u-collapse-item/
│   │   │   └── u-collapse-item.vue
│   │   ├── u-column-notice/
│   │   │   └── u-column-notice.vue
│   │   ├── u-count-down/
│   │   │   └── u-count-down.vue
│   │   ├── u-count-to/
│   │   │   └── u-count-to.vue
│   │   ├── u-divider/
│   │   │   └── u-divider.vue
│   │   ├── u-dropdown/
│   │   │   └── u-dropdown.vue
│   │   ├── u-dropdown-item/
│   │   │   └── u-dropdown-item.vue
│   │   ├── u-empty/
│   │   │   └── u-empty.vue
│   │   ├── u-field/
│   │   │   └── u-field.vue
│   │   ├── u-form/
│   │   │   └── u-form.vue
│   │   ├── u-form-item/
│   │   │   └── u-form-item.vue
│   │   ├── u-full-screen/
│   │   │   └── u-full-screen.vue
│   │   ├── u-gap/
│   │   │   └── u-gap.vue
│   │   ├── u-grid/
│   │   │   └── u-grid.vue
│   │   ├── u-grid-item/
│   │   │   └── u-grid-item.vue
│   │   ├── u-icon/
│   │   │   └── u-icon.vue
│   │   ├── u-image/
│   │   │   └── u-image.vue
│   │   ├── u-index-anchor/
│   │   │   └── u-index-anchor.vue
│   │   ├── u-index-list/
│   │   │   └── u-index-list.vue
│   │   ├── u-input/
│   │   │   └── u-input.vue
│   │   ├── u-keyboard/
│   │   │   └── u-keyboard.vue
│   │   ├── u-lazy-load/
│   │   │   └── u-lazy-load.vue
│   │   ├── u-line/
│   │   │   └── u-line.vue
│   │   ├── u-line-progress/
│   │   │   └── u-line-progress.vue
│   │   ├── u-link/
│   │   │   └── u-link.vue
│   │   ├── u-loading/
│   │   │   └── u-loading.vue
│   │   ├── u-loading-page/
│   │   │   └── u-loading-page.vue
│   │   ├── u-loadmore/
│   │   │   └── u-loadmore.vue
│   │   ├── u-mask/
│   │   │   └── u-mask.vue
│   │   ├── u-message-input/
│   │   │   └── u-message-input.vue
│   │   ├── u-modal/
│   │   │   └── u-modal.vue
│   │   ├── u-navbar/
│   │   │   └── u-navbar.vue
│   │   ├── u-no-network/
│   │   │   └── u-no-network.vue
│   │   ├── u-notice-bar/
│   │   │   └── u-notice-bar.vue
│   │   ├── u-number-box/
│   │   │   └── u-number-box.vue
│   │   ├── u-number-keyboard/
│   │   │   └── u-number-keyboard.vue
│   │   ├── u-parse/
│   │   │   ├── libs/
│   │   │   │   ├── CssHandler.js
│   │   │   │   ├── MpHtmlParser.js
│   │   │   │   ├── config.js
│   │   │   │   ├── handler.wxs
│   │   │   │   └── trees.vue
│   │   │   └── u-parse.vue
│   │   ├── u-picker/
│   │   │   └── u-picker.vue
│   │   ├── u-popup/
│   │   │   └── u-popup.vue
│   │   ├── u-radio/
│   │   │   └── u-radio.vue
│   │   ├── u-radio-group/
│   │   │   └── u-radio-group.vue
│   │   ├── u-rate/
│   │   │   └── u-rate.vue
│   │   ├── u-read-more/
│   │   │   └── u-read-more.vue
│   │   ├── u-row/
│   │   │   └── u-row.vue
│   │   ├── u-row-notice/
│   │   │   └── u-row-notice.vue
│   │   ├── u-search/
│   │   │   └── u-search.vue
│   │   ├── u-section/
│   │   │   └── u-section.vue
│   │   ├── u-select/
│   │   │   └── u-select.vue
│   │   ├── u-skeleton/
│   │   │   └── u-skeleton.vue
│   │   ├── u-slider/
│   │   │   └── u-slider.vue
│   │   ├── u-steps/
│   │   │   └── u-steps.vue
│   │   ├── u-sticky/
│   │   │   └── u-sticky.vue
│   │   ├── u-subsection/
│   │   │   └── u-subsection.vue
│   │   ├── u-swipe-action/
│   │   │   └── u-swipe-action.vue
│   │   ├── u-swiper/
│   │   │   └── u-swiper.vue
│   │   ├── u-switch/
│   │   │   └── u-switch.vue
│   │   ├── u-tabbar/
│   │   │   └── u-tabbar.vue
│   │   ├── u-table/
│   │   │   └── u-table.vue
│   │   ├── u-tabs/
│   │   │   └── u-tabs.vue
│   │   ├── u-tabs-swiper/
│   │   │   └── u-tabs-swiper.vue
│   │   ├── u-tag/
│   │   │   └── u-tag.vue
│   │   ├── u-td/
│   │   │   └── u-td.vue
│   │   ├── u-th/
│   │   │   └── u-th.vue
│   │   ├── u-time-line/
│   │   │   └── u-time-line.vue
│   │   ├── u-time-line-item/
│   │   │   └── u-time-line-item.vue
│   │   ├── u-toast/
│   │   │   └── u-toast.vue
│   │   ├── u-top-tips/
│   │   │   └── u-top-tips.vue
│   │   ├── u-tr/
│   │   │   └── u-tr.vue
│   │   ├── u-upload/
│   │   │   └── u-upload.vue
│   │   ├── u-verification-code/
│   │   │   └── u-verification-code.vue
│   │   └── u-waterfall/
│   │       └── u-waterfall.vue
│   ├── iconfont.css
│   ├── index.js
│   ├── index.scss
│   ├── libs/
│   │   ├── config/
│   │   │   ├── config.js
│   │   │   └── zIndex.js
│   │   ├── css/
│   │   │   ├── color.scss
│   │   │   ├── common.scss
│   │   │   ├── style.components.scss
│   │   │   ├── style.h5.scss
│   │   │   ├── style.mp.scss
│   │   │   ├── style.nvue.scss
│   │   │   └── style.vue.scss
│   │   ├── function/
│   │   │   ├── $parent.js
│   │   │   ├── addUnit.js
│   │   │   ├── bem.js
│   │   │   ├── color.js
│   │   │   ├── colorGradient.js
│   │   │   ├── debounce.js
│   │   │   ├── deepClone.js
│   │   │   ├── deepMerge.js
│   │   │   ├── getParent.js
│   │   │   ├── guid.js
│   │   │   ├── md5.js
│   │   │   ├── queryParams.js
│   │   │   ├── random.js
│   │   │   ├── randomArray.js
│   │   │   ├── route.js
│   │   │   ├── sys.js
│   │   │   ├── test.js
│   │   │   ├── throttle.js
│   │   │   ├── timeFormat.js
│   │   │   ├── timeFrom.js
│   │   │   ├── toast.js
│   │   │   ├── trim.js
│   │   │   └── type2icon.js
│   │   ├── mixin/
│   │   │   ├── mixin.js
│   │   │   └── mpShare.js
│   │   ├── request/
│   │   │   └── index.js
│   │   ├── store/
│   │   │   └── index.js
│   │   └── util/
│   │       ├── area.js
│   │       ├── async-validator.js
│   │       ├── city.js
│   │       ├── emitter.js
│   │       └── province.js
│   ├── package.json
│   └── theme.scss
└── wechat.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .hbuilderx/launch.json
================================================
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
  // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
    "version": "0.0",
    "configurations": [{
            "type": "uniCloud",
            "default": {
                "launchtype": "local"
            }
        }
    ]
}


================================================
FILE: App.vue
================================================
<script>
	export default {
		onLaunch: async function(e) {
			const that = this

			console.log('小程序App Launch', e)


			// #ifdef MP-WEIXIN
			that.$store.commit('setScene', e.scene)

			this.$http.index.getApp()
				.then(res => {
					console.log(res)
					this.$store.commit('setAppInfo', res.data)
				})
				
			uni.login({ //微信小程序登录取code
				provider: 'weixin',
				success: function(loginRes) {
					that.$http.user.wxlogin({
							code: loginRes.code
						}) //微信小程序登录取token
						.then(res => {
							uni.setStorageSync('token', res.data.token)
							uni.$emit('getuserinfo') //发送获取用户信息的全局请求
						})
						.catch(err => {
							console.log('请求登录接口出错', err)
						})
				},
				fail: function(err) {
					console.log(err);
				}
			});
			
			// #endif

			// #ifdef H5
			that.$store.commit('setScene', -1)

			this.$http.index.getApp()
				.then(AppInfo => {
					console.log('AppInfo', AppInfo)
					that.$store.commit('setAppInfo', AppInfo.data)
					uni.setStorageSync("office_appid", AppInfo.data.official_account_appid); //在localStorage中存储office_appid
					uni.setStorageSync("is_pay", AppInfo.data.is_pay);
				})

			let office_appid = uni.getStorageSync("office_appid");

			if (office_appid) {
				that.authorization(office_appid)
			} else {
				this.$http.index.getApp()
					.then(AppInfo => {
						console.log('AppInfo', AppInfo)
						that.$store.commit('setAppInfo', AppInfo.data)
						uni.setStorageSync("is_pay", AppInfo.data.is_pay);
						uni.setStorageSync("office_appid", AppInfo.data.official_account_appid); //在localStorage中存储office_appid
						office_appid = AppInfo.data.official_account_appid;
						that.authorization(office_appid)
					})
			}
			// #endif

			//监听getuserinfo事件执行获取用户信息并提交
			uni.$on('getuserinfo', () => {
				that.$http.user.getUserInfo()
					.then(res => { //获取用户信息
						that.$store.commit('setUserInfo', res.data)
						uni.$emit('binduser')
						// #ifdef MP-WEIXIN
						uni.$emit('login', res.data.mobile)
						// #endif
						uni.hideLoading()
					})
					.catch(err => {
						uni.hideLoading()
					})
			})
		},
		methods: {
			// #ifdef H5
			getUrlKey: function(name) { // 获取url参数
				//获取url 参数
				return (decodeURIComponent((new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec(location.href) || [,
					""
				])[1].replace(/\+/g, "%20")) || null);
			},
			authorization(office_appid) { //传入公众号appid,走授权
				/**
				 * 上线用此注释下代码
				 * @param {Object} 直接使用token,进行调试
				 * start
				 */
				var code = this.$route.query.code || this.getUrlKey("code");

				if (!code) { //授权获取openid
					let urlNow = encodeURIComponent(window.location.href);
					let scope = "snsapi_base"; //  snsapi_base snsapi_userinfo   //静默授权 用户无感知
					let appid = office_appid;
					let state = "123";
					let url =`https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${urlNow}&response_type=code&scope=${scope}&state=${state}#wechat_redirect`;

					window.location.href = url;
				} else {					
					this.$http.index.H5Login({
							code: code
						}) //微信小程序登录取token
						.then(res => {
							uni.setStorageSync('token', res.data.token)
							uni.$emit('getuserinfo') //发送获取用户信息的全局请求
						})
						.catch(err => {
							console.log('请求登录接口出错', err)
						})
						this.$wechat.share()
				}
				/**
				 * end
				 */


				/**
				 * @param {Object} 直接使用token,进行调试
				 * start
				 */
				let token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9pbGFuY2hvbmcuY24iLCJpYXQiOjE2MTE3MTYxMTUsIm5iZiI6MTYxMTcxNjExNSwiZXhwIjoxNjQzMjUyMTE1LCJkYXRhIjp7ImlkIjo3MTIsInRia19yX2lkIjowLCJ1c2VybmFtZSI6Ilx1NzUyOFx1NjIzNzMxODk2IiwidGJrX25hbWUiOm51bGwsIm1vYmlsZSI6IjAiLCJ3ZWNoYXQiOiIwIiwidGJrX3Nlc3Npb25rZXkiOm51bGwsImF2YWlsYWJsZV9tb25leSI6IjAuMDAiLCJkaXNhdmFpbGFibGVfbW9uZXkiOiIwLjAwIiwid3hfb3BlbmlkIjoib0ZTQzA1aVEwNE9YSlJIZEZaZ2IwV1cycTVtYyIsInZpcCI6MCwidmlwX2NvZGUiOjAsImpvaW5fdGVhbV90aW1lIjpudWxsLCJsdl8xX2lkIjotMSwibHZfMl9pZCI6LTEsImx2XzFfaW5jb21lIjoiMC4wMCIsImx2XzJfaW5jb21lIjoiMC4wMCIsImF2YXRhciI6Imh0dHBzOlwvXC9sYW5jaG9uZy5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb21cL2xhbmNob25nXC9sb2dvLnBuZyIsImdlbmRlciI6MSwiZW1haWwiOm51bGwsInN0YXR1cyI6MSwiYWRkX3RpbWUiOiIyMDIxLTAxLTI2IDE3OjQxOjExIn19.4qncKwzCtaowJ5yorFe26l_6y4ZRl8ArxNkmKowcDn4';
				uni.setStorageSync('token', token)
				uni.$emit('getuserinfo') //发送获取用户信息的全局请求
				//end

			},
			// #endif

		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		}
	}
</script>

<style lang="scss">
	@import "./static/iconfont.css";
	@import "uview-ui/index.scss";

	* {
		box-sizing: border-box;
	}

	.flex {
		display: flex;
	}

	.align-center {
		align-items: center;
	}

	.self-center {
		align-self: flex-center;
	}

	.justify-start {
		justify-content: flex-start;
	}

	.justify-end {
		justify-content: flex-end;
	}

	.justify-center {
		justify-content: center;
	}

	.justify-between {
		justify-content: space-between;
	}

	.justify-around {
		justify-content: space-around;
	}

	.ellipsis {
		/*文字溢出隐藏*/
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
	}
</style>


================================================
FILE: README.md
================================================
### 外卖CPS介绍

- 2021最新外卖霸王餐小程序、H5、微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩源码下载
- 2021外卖cps小程序项目|外卖红包cps带好友返利佣金分销系统程序|饿了么美团联盟源码
- 外卖cps带分销返利后端源码,Laravel8框架。

### 自动赚钱介绍
- 给用户发红包,自己可以获得订单6%的提成。

###功能介绍
1.领取美团和饿了么红包
2.分销功能,用户推荐给其他人,还能拿到下级的返利
3.公众号推送,每天提醒用户点餐
4.返利提现,订单的返利,用户可以直接提现到微信钱包
5.推广海报生成,用户可以生成自己的专属海报,实现分销,赚取佣金


### 系统架构
- 本源码前端uniapp、后端PHP+Laravel8.0+vue
- 前端小程序使用uniapp编写,可一键导入
- 后端使用laravel8.0框架编写,简洁、方便快速搭建

### 安装教程
- 【github地址】:[https://github.com/master-start/waimai-cps-uniapp.git](https://github.com/master-start/waimai-cps-uniapp.git)
- HBuilder 一键导入uniapp源码,修改config.js后端接口url路径,运行到小程序进行测试查看
- 后端【github地址】:[https://github.com/master-start/waimai-cps-laravel8.git](https://github.com/master-start/waimai-cps-laravel8.git)
- 第一步:git clone 下载源码
- 第二步:执行cp .env.example .env复制配置文件
- 第三步:在后端源码根目录执行 composer install 安装依赖包
- 第四步:执行php artisan key:generate 生成配置文件密钥
- 第五步:配置.env配置文件内的数据库链接及账号密码以及小程序APPID、SECRET配置
- 第六步:执行php artisan migrate 执行迁移安装数据库相关表和字段,如果迁移过程中发生错误可进行回滚迁移命令php artisan migrate:reset
- 第七步:执行php artisan db:seed --class=UserSeeder填充测试数据
- 第八步:执行php artisan serve运行后端代码,调试前端代码


### 程序截图
 ![f8cb58fb0969f80470d5b2efd9a833a.jpg](https://upload-images.jianshu.io/upload_images/11169333-e93543e1def43c79.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/200)![程序截图.jpg](https://upload-images.jianshu.io/upload_images/11169333-5e47fa02df797f72.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/200)![程序截图1.jpg](https://upload-images.jianshu.io/upload_images/11169333-28d6b450567d2e3e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/200)![程序截图2.jpg](https://upload-images.jianshu.io/upload_images/11169333-bd9c23e8c47a801d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/200)

### 关于作者
不多说,本源码长期“免费”更新,不收费不提供联系方式提供技术支持,有任何问题可在评论区留言,有空我会一一回复。

### 相关案例
后续更新

================================================
FILE: components/auth/login.vue
================================================
<template>
	<view class="login flex justify-center align-center" v-if="isshow">

		<view class="subject">
			<view  class="userAvatarUrl"><open-data type="userAvatarUrl" ></open-data></view>
			<view class="userNickName"><open-data type="userNickName"></open-data></view>
			<label for="userinfo"><view class="subject_item subject_login">微信一键登录</view></label>
			<view class="subject_item subject_item subject_nologin" @click="jumpindex">暂不登录</view>
		</view>
		
		
		
		
		<button v-show="false" id="userinfo" open-type="getUserInfo" @getuserinfo="getuserinfo"></button>
	</view>
</template>

<script>
	export default {
		props: {
			isshow: true,
			isauthuser: true,
		},
		data() {
			return {
				userinfo: null,
				code: null,
			};
		},
		created() {
			uni.login({
				success: (res) => {
					this.code = res.code
				}
			})
		},
		
		methods: {
			getuserinfo(e) {
				const that = this;
				console.log('授权用户信息', e)
				const data = e.detail.userInfo;

				that.$http.user.updateInfo(data)
					.then(res => {
						console.log('更新了用户信息', res)
						uni.$emit('getuserinfo')
					})
				
			},
		
			jumpindex(){
				uni.switchTab({
				    url: '/pages/index/index'
				});
			}
		},

	}
</script>

<style scoped lang="scss">
	.login {
		width: 100vw;
		height: 100vh;
		background-color: rgba($color:#000, $alpha:0.2);
		z-index: 99999;
		position: fixed;
		top: 0;
		left: 0;

		.subject {
			width: 500rpx;
			padding: 40rpx 20rpx;
			background-color: #fff;
			border-radius: 10rpx;
			font-size: 30rpx;

			.userAvatarUrl{
				width: 150rpx;
				height: 150rpx;
				margin: 0 auto;
				border-radius:50%;
				overflow: hidden;
								
			}
			
			.userNickName{
				text-align: center;
				margin-top: 20rpx;
			}
			
			.subject_item{
				width: 400rpx;
				text-align: center;
				padding: 20rpx 0;
				margin: 20rpx auto 0;
				border-radius:50rpx;
			}
			
			.subject_login{
					background-color: red;
					color: #fff;
			}
				

			}

	}
</style>


================================================
FILE: components/js-base64/LICENSE.md
================================================
Copyright (c) 2014, Dan Kogai
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of {{{project}}} nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: components/js-base64/README.md
================================================
[![build status](https://secure.travis-ci.org/dankogai/js-base64.png)](http://travis-ci.org/dankogai/js-base64)

# base64.js

Yet another [Base64] transcoder.

[Base64]: http://en.wikipedia.org/wiki/Base64

## HEADS UP

In version 3.0 `js-base64` switch to ES2015 module so it is no longer compatible with legacy browsers like IE (see below).  And since version 3.3 it is written in TypeScript.  Now `base64.mjs` is compiled from `base64.ts` then `base64.js` is generated from `base64.mjs`.

## Install

```shell
$ npm install --save js-base64
```

## Usage

### In Browser

Locally…

```html
<script src="base64.js"></script>
```

… or Directly from CDN.  In which case you don't even need to install.

```html
<script src="https://cdn.jsdelivr.net/npm/js-base64@3.5.2/base64.min.js"></script>
```

This good old way loads `Base64` in the global context (`window`).  Though `Base64.noConflict()` is made available, you should consider using ES6 Module to avoid tainting `window`.

### As an ES6 Module

locally…

```javascript
import { Base64 } from 'js-base64';
```

```javascript
// or if you prefer no Base64 namespace
import { encode, decode } from 'js-base64';
```

or even remotely.

```html
<script type="module">
// note jsdelivr.net does not automatically minify .mjs
import { Base64 } from 'https://cdn.jsdelivr.net/npm/js-base64@3.5.2/base64.mjs';
</script>
```

```html
<script type="module">
// or if you prefer no Base64 namespace
import { encode, decode } from 'https://cdn.jsdelivr.net/npm/js-base64@3.5.2/base64.mjs';
</script>
```

### node.js (commonjs)

```javascript
const {Base64} = require('js-base64');
```

Unlike the case above, the global context is no longer modified.

You can also use [esm] to `import` instead of `require`.

[esm]: https://github.com/standard-things/esm

```javascript
require=require('esm')(module);
import {Base64} from 'js-base64';
```

## SYNOPSIS

```javascript
let latin = 'dankogai';
let utf8  = '小飼弾'
let u8s   =  new Uint8Array([100,97,110,107,111,103,97,105]);
Base64.encode(latin);             // ZGFua29nYWk=
Base64.btoa(latin);               // ZGFua29nYWk=
Base64.btoa(utf8);                // raises exception
Base64.fromUint8Array(u8s);       // ZGFua29nYWk=
Base64.fromUint8Array(u8s, true); // ZGFua29nYW which is URI safe
Base64.encode(utf8);              // 5bCP6aO85by+
Base64.encode(utf8, true)         // 5bCP6aO85by-
Base64.encodeURI(utf8);           // 5bCP6aO85by-
```

```javascript
Base64.decode(      'ZGFua29nYWk=');// dankogai
Base64.atob(        'ZGFua29nYWk=');// dankogai
Base64.atob(        '5bCP6aO85by+');// '小飼弾' which is nonsense
Base64.toUint8Array('ZGFua29nYWk=');// u8s above
Base64.decode(      '5bCP6aO85by+');// 小飼弾
// note .decodeURI() is unnecessary since it accepts both flavors
Base64.decode(      '5bCP6aO85by-');// 小飼弾
```

### Built-in Extensions

By default `Base64` leaves built-in prototypes untouched.  But you can extend them as below.

```javascript
// you have to explicitly extend String.prototype
Base64.extendString();
// once extended, you can do the following
'dankogai'.toBase64();        // ZGFua29nYWk=
'小飼弾'.toBase64();           // 5bCP6aO85by+
'小飼弾'.toBase64(true);       // 5bCP6aO85by-
'小飼弾'.toBase64URI();        // 5bCP6aO85by- ab alias of .toBase64(true)
'小飼弾'.toBase64URL();        // 5bCP6aO85by- an alias of .toBase64URI()
'ZGFua29nYWk='.fromBase64();  // dankogai
'5bCP6aO85by+'.fromBase64();  // 小飼弾
'5bCP6aO85by-'.fromBase64();  // 小飼弾
'5bCP6aO85by-'.toUint8Array();// u8s above
```

```javascript
// you have to explicitly extend String.prototype
Base64.extendString();
// once extended, you can do the following
u8s.toBase64();     // 'ZGFua29nYWk='
u8s.toBase64URI();  // 'ZGFua29nYWk'
u8s.toBase64URL();  // 'ZGFua29nYWk' an alias of .toBase64URI()
```

```javascript
// extend all at once
Base64.extendBuiltins()
```

## `.decode()` vs `.atob` (and `.encode()` vs `btoa()`)

Suppose you have:

```
var pngBase64 = 
  "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
```

Which is a Base64-encoded 1x1 transparent PNG, **DO NOT USE** `Base64.decode(pngBase64)`.  Use `Base64.atob(pngBase64)` instead.  `Base64.decode()` decodes to UTF-8 string while `Base64.atob()` decodes to bytes, which is compatible to browser built-in `atob()` (Which is absent in node.js).  The same rule applies to the opposite direction.

Or even better, `Base64.toUint8Array(pngBase64)`.

### If you really, really need an ES5 version

You can transpiles to an ES5 that runs on IE11.  Do the following in your shell.

```shell
$ make base64.es5.js
```


================================================
FILE: components/js-base64/base64.d.ts
================================================
/**
 *  base64.ts
 *
 *  Licensed under the BSD 3-Clause License.
 *    http://opensource.org/licenses/BSD-3-Clause
 *
 *  References:
 *    http://en.wikipedia.org/wiki/Base64
 *
 * @author Dan Kogai (https://github.com/dankogai)
 */
declare const version = "3.5.2";
/**
 * @deprecated use lowercase `version`.
 */
declare const VERSION = "3.5.2";
/**
 * polyfill version of `btoa`
 */
declare const btoaPolyfill: (bin: string) => string;
/**
 * does what `window.btoa` of web browsers do.
 * @param {String} bin binary string
 * @returns {string} Base64-encoded string
 */
declare const _btoa: (bin: string) => string;
/**
 * converts a Uint8Array to a Base64 string.
 * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5
 * @returns {string} Base64 string
 */
declare const fromUint8Array: (u8a: Uint8Array, urlsafe?: boolean) => string;
/**
 * @deprecated should have been internal use only.
 * @param {string} src UTF-8 string
 * @returns {string} UTF-16 string
 */
declare const utob: (u: string) => string;
/**
 * converts a UTF-8-encoded string to a Base64 string.
 * @param {boolean} [urlsafe] if `true` make the result URL-safe
 * @returns {string} Base64 string
 */
declare const encode: (src: string, urlsafe?: boolean) => string;
/**
 * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.
 * @returns {string} Base64 string
 */
declare const encodeURI: (src: string) => string;
/**
 * @deprecated should have been internal use only.
 * @param {string} src UTF-16 string
 * @returns {string} UTF-8 string
 */
declare const btou: (b: string) => string;
/**
 * polyfill version of `atob`
 */
declare const atobPolyfill: (asc: string) => string;
/**
 * does what `window.atob` of web browsers do.
 * @param {String} asc Base64-encoded string
 * @returns {string} binary string
 */
declare const _atob: (asc: string) => string;
/**
 * converts a Base64 string to a Uint8Array.
 */
declare const toUint8Array: (a: string) => Uint8Array;
/**
 * converts a Base64 string to a UTF-8 string.
 * @param {String} src Base64 string.  Both normal and URL-safe are supported
 * @returns {string} UTF-8 string
 */
declare const decode: (src: string) => string;
/**
 * extend String.prototype with relevant methods
 */
declare const extendString: () => void;
/**
 * extend Uint8Array.prototype with relevant methods
 */
declare const extendUint8Array: () => void;
/**
 * extend Builtin prototypes with relevant methods
 */
declare const extendBuiltins: () => void;
declare const gBase64: {
    version: string;
    VERSION: string;
    atob: (asc: string) => string;
    atobPolyfill: (asc: string) => string;
    btoa: (bin: string) => string;
    btoaPolyfill: (bin: string) => string;
    fromBase64: (src: string) => string;
    toBase64: (src: string, urlsafe?: boolean) => string;
    encode: (src: string, urlsafe?: boolean) => string;
    encodeURI: (src: string) => string;
    encodeURL: (src: string) => string;
    utob: (u: string) => string;
    btou: (b: string) => string;
    decode: (src: string) => string;
    fromUint8Array: (u8a: Uint8Array, urlsafe?: boolean) => string;
    toUint8Array: (a: string) => Uint8Array;
    extendString: () => void;
    extendUint8Array: () => void;
    extendBuiltins: () => void;
};
export { version };
export { VERSION };
export { _atob as atob };
export { atobPolyfill };
export { _btoa as btoa };
export { btoaPolyfill };
export { decode as fromBase64 };
export { encode as toBase64 };
export { utob };
export { encode };
export { encodeURI };
export { encodeURI as encodeURL };
export { btou };
export { decode };
export { fromUint8Array };
export { toUint8Array };
export { extendString };
export { extendUint8Array };
export { extendBuiltins };
export { gBase64 as Base64 };


================================================
FILE: components/js-base64/base64.js
================================================


//
// THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND!
//
;(function(global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined'
        ? module.exports = factory()
        : typeof define === 'function' && define.amd
        ? define(factory) :
        // cf. https://github.com/dankogai/js-base64/issues/119
        (function() {
            // existing version for noConflict()
            const _Base64 = global.Base64;
            const gBase64 = factory();
            gBase64.noConflict = () => {
                global.Base64 = _Base64;
                return gBase64;
            };
            if (global.Meteor) { // Meteor.js
                Base64 = gBase64;
            }
            global.Base64 = gBase64;
        })();
}((typeof self !== 'undefined' ? self
        : typeof window !== 'undefined' ? window
        : typeof global !== 'undefined' ? global
        : this
), function() {
    'use strict';

/**
 *  base64.ts
 *
 *  Licensed under the BSD 3-Clause License.
 *    http://opensource.org/licenses/BSD-3-Clause
 *
 *  References:
 *    http://en.wikipedia.org/wiki/Base64
 *
 * @author Dan Kogai (https://github.com/dankogai)
 */
const version = '3.5.2';
/**
 * @deprecated use lowercase `version`.
 */
const VERSION = version;
const _hasatob = typeof atob === 'function';
const _hasbtoa = typeof btoa === 'function';
const _hasBuffer = typeof Buffer === 'function';
const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;
const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;
const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
const b64chs = [...b64ch];
const b64tab = ((a) => {
    let tab = {};
    a.forEach((c, i) => tab[c] = i);
    return tab;
})(b64chs);
const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
const _fromCC = String.fromCharCode.bind(String);
const _U8Afrom = typeof Uint8Array.from === 'function'
    ? Uint8Array.from.bind(Uint8Array)
    : (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));
const _mkUriSafe = (src) => src
    .replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_')
    .replace(/=+$/m, '');
const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, '');
/**
 * polyfill version of `btoa`
 */
const btoaPolyfill = (bin) => {
    // console.log('polyfilled');
    let u32, c0, c1, c2, asc = '';
    const pad = bin.length % 3;
    for (let i = 0; i < bin.length;) {
        if ((c0 = bin.charCodeAt(i++)) > 255 ||
            (c1 = bin.charCodeAt(i++)) > 255 ||
            (c2 = bin.charCodeAt(i++)) > 255)
            throw new TypeError('invalid character found');
        u32 = (c0 << 16) | (c1 << 8) | c2;
        asc += b64chs[u32 >> 18 & 63]
            + b64chs[u32 >> 12 & 63]
            + b64chs[u32 >> 6 & 63]
            + b64chs[u32 & 63];
    }
    return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc;
};
/**
 * does what `window.btoa` of web browsers do.
 * @param {String} bin binary string
 * @returns {string} Base64-encoded string
 */
const _btoa = _hasbtoa ? (bin) => btoa(bin)
    : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')
        : btoaPolyfill;
const _fromUint8Array = _hasBuffer
    ? (u8a) => Buffer.from(u8a).toString('base64')
    : (u8a) => {
        // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326
        const maxargs = 0x1000;
        let strs = [];
        for (let i = 0, l = u8a.length; i < l; i += maxargs) {
            strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));
        }
        return _btoa(strs.join(''));
    };
/**
 * converts a Uint8Array to a Base64 string.
 * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5
 * @returns {string} Base64 string
 */
const fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);
// This trick is found broken https://github.com/dankogai/js-base64/issues/130
// const utob = (src: string) => unescape(encodeURIComponent(src));
// reverting good old fationed regexp
const cb_utob = (c) => {
    if (c.length < 2) {
        var cc = c.charCodeAt(0);
        return cc < 0x80 ? c
            : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))
                + _fromCC(0x80 | (cc & 0x3f)))
                : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))
                    + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
                    + _fromCC(0x80 | (cc & 0x3f)));
    }
    else {
        var cc = 0x10000
            + (c.charCodeAt(0) - 0xD800) * 0x400
            + (c.charCodeAt(1) - 0xDC00);
        return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))
            + _fromCC(0x80 | ((cc >>> 12) & 0x3f))
            + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
            + _fromCC(0x80 | (cc & 0x3f)));
    }
};
const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
/**
 * @deprecated should have been internal use only.
 * @param {string} src UTF-8 string
 * @returns {string} UTF-16 string
 */
const utob = (u) => u.replace(re_utob, cb_utob);
//
const _encode = _hasBuffer
    ? (s) => Buffer.from(s, 'utf8').toString('base64')
    : _TE
        ? (s) => _fromUint8Array(_TE.encode(s))
        : (s) => _btoa(utob(s));
/**
 * converts a UTF-8-encoded string to a Base64 string.
 * @param {boolean} [urlsafe] if `true` make the result URL-safe
 * @returns {string} Base64 string
 */
const encode = (src, urlsafe = false) => urlsafe
    ? _mkUriSafe(_encode(src))
    : _encode(src);
/**
 * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.
 * @returns {string} Base64 string
 */
const encodeURI = (src) => encode(src, true);
// This trick is found broken https://github.com/dankogai/js-base64/issues/130
// const btou = (src: string) => decodeURIComponent(escape(src));
// reverting good old fationed regexp
const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
const cb_btou = (cccc) => {
    switch (cccc.length) {
        case 4:
            var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
                | ((0x3f & cccc.charCodeAt(1)) << 12)
                | ((0x3f & cccc.charCodeAt(2)) << 6)
                | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;
            return (_fromCC((offset >>> 10) + 0xD800)
                + _fromCC((offset & 0x3FF) + 0xDC00));
        case 3:
            return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)
                | ((0x3f & cccc.charCodeAt(1)) << 6)
                | (0x3f & cccc.charCodeAt(2)));
        default:
            return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)
                | (0x3f & cccc.charCodeAt(1)));
    }
};
/**
 * @deprecated should have been internal use only.
 * @param {string} src UTF-16 string
 * @returns {string} UTF-8 string
 */
const btou = (b) => b.replace(re_btou, cb_btou);
/**
 * polyfill version of `atob`
 */
const atobPolyfill = (asc) => {
    // console.log('polyfilled');
    asc = asc.replace(/\s+/g, '');
    if (!b64re.test(asc))
        throw new TypeError('malformed base64.');
    asc += '=='.slice(2 - (asc.length & 3));
    let u24, bin = '', r1, r2;
    for (let i = 0; i < asc.length;) {
        u24 = b64tab[asc.charAt(i++)] << 18
            | b64tab[asc.charAt(i++)] << 12
            | (r1 = b64tab[asc.charAt(i++)]) << 6
            | (r2 = b64tab[asc.charAt(i++)]);
        bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)
            : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)
                : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);
    }
    return bin;
};
/**
 * does what `window.atob` of web browsers do.
 * @param {String} asc Base64-encoded string
 * @returns {string} binary string
 */
const _atob = _hasatob ? (asc) => atob(_tidyB64(asc))
    : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')
        : atobPolyfill;
//
const _toUint8Array = _hasBuffer
    ? (a) => _U8Afrom(Buffer.from(a, 'base64'))
    : (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0));
/**
 * converts a Base64 string to a Uint8Array.
 */
const toUint8Array = (a) => _toUint8Array(_unURI(a));
//
const _decode = _hasBuffer
    ? (a) => Buffer.from(a, 'base64').toString('utf8')
    : _TD
        ? (a) => _TD.decode(_toUint8Array(a))
        : (a) => btou(_atob(a));
const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));
/**
 * converts a Base64 string to a UTF-8 string.
 * @param {String} src Base64 string.  Both normal and URL-safe are supported
 * @returns {string} UTF-8 string
 */
const decode = (src) => _decode(_unURI(src));
//
const _noEnum = (v) => {
    return {
        value: v, enumerable: false, writable: true, configurable: true
    };
};
/**
 * extend String.prototype with relevant methods
 */
const extendString = function () {
    const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));
    _add('fromBase64', function () { return decode(this); });
    _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });
    _add('toBase64URI', function () { return encode(this, true); });
    _add('toBase64URL', function () { return encode(this, true); });
    _add('toUint8Array', function () { return toUint8Array(this); });
};
/**
 * extend Uint8Array.prototype with relevant methods
 */
const extendUint8Array = function () {
    const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));
    _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });
    _add('toBase64URI', function () { return fromUint8Array(this, true); });
    _add('toBase64URL', function () { return fromUint8Array(this, true); });
};
/**
 * extend Builtin prototypes with relevant methods
 */
const extendBuiltins = () => {
    extendString();
    extendUint8Array();
};
const gBase64 = {
    version: version,
    VERSION: VERSION,
    atob: _atob,
    atobPolyfill: atobPolyfill,
    btoa: _btoa,
    btoaPolyfill: btoaPolyfill,
    fromBase64: decode,
    toBase64: encode,
    encode: encode,
    encodeURI: encodeURI,
    encodeURL: encodeURI,
    utob: utob,
    btou: btou,
    decode: decode,
    fromUint8Array: fromUint8Array,
    toUint8Array: toUint8Array,
    extendString: extendString,
    extendUint8Array: extendUint8Array,
    extendBuiltins: extendBuiltins,
};

    //
    // export Base64 to the namespace
    //
    // ES5 is yet to have Object.assign() that may make transpilers unhappy.
    // gBase64.Base64 = Object.assign({}, gBase64);
    gBase64.Base64 = {};
    Object.keys(gBase64).forEach(k => gBase64.Base64[k] = gBase64[k]);
    return gBase64;
}));




================================================
FILE: components/js-base64/base64.mjs
================================================
/**
 *  base64.ts
 *
 *  Licensed under the BSD 3-Clause License.
 *    http://opensource.org/licenses/BSD-3-Clause
 *
 *  References:
 *    http://en.wikipedia.org/wiki/Base64
 *
 * @author Dan Kogai (https://github.com/dankogai)
 */
const version = '3.5.2';
/**
 * @deprecated use lowercase `version`.
 */
const VERSION = version;
const _hasatob = typeof atob === 'function';
const _hasbtoa = typeof btoa === 'function';
const _hasBuffer = typeof Buffer === 'function';
const _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;
const _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;
const b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
const b64chs = [...b64ch];
const b64tab = ((a) => {
    let tab = {};
    a.forEach((c, i) => tab[c] = i);
    return tab;
})(b64chs);
const b64re = /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/;
const _fromCC = String.fromCharCode.bind(String);
const _U8Afrom = typeof Uint8Array.from === 'function'
    ? Uint8Array.from.bind(Uint8Array)
    : (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));
const _mkUriSafe = (src) => src
    .replace(/[+\/]/g, (m0) => m0 == '+' ? '-' : '_')
    .replace(/=+$/m, '');
const _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\+\/]/g, '');
/**
 * polyfill version of `btoa`
 */
const btoaPolyfill = (bin) => {
    // console.log('polyfilled');
    let u32, c0, c1, c2, asc = '';
    const pad = bin.length % 3;
    for (let i = 0; i < bin.length;) {
        if ((c0 = bin.charCodeAt(i++)) > 255 ||
            (c1 = bin.charCodeAt(i++)) > 255 ||
            (c2 = bin.charCodeAt(i++)) > 255)
            throw new TypeError('invalid character found');
        u32 = (c0 << 16) | (c1 << 8) | c2;
        asc += b64chs[u32 >> 18 & 63]
            + b64chs[u32 >> 12 & 63]
            + b64chs[u32 >> 6 & 63]
            + b64chs[u32 & 63];
    }
    return pad ? asc.slice(0, pad - 3) + "===".substring(pad) : asc;
};
/**
 * does what `window.btoa` of web browsers do.
 * @param {String} bin binary string
 * @returns {string} Base64-encoded string
 */
const _btoa = _hasbtoa ? (bin) => btoa(bin)
    : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')
        : btoaPolyfill;
const _fromUint8Array = _hasBuffer
    ? (u8a) => Buffer.from(u8a).toString('base64')
    : (u8a) => {
        // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326
        const maxargs = 0x1000;
        let strs = [];
        for (let i = 0, l = u8a.length; i < l; i += maxargs) {
            strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));
        }
        return _btoa(strs.join(''));
    };
/**
 * converts a Uint8Array to a Base64 string.
 * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5
 * @returns {string} Base64 string
 */
const fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);
// This trick is found broken https://github.com/dankogai/js-base64/issues/130
// const utob = (src: string) => unescape(encodeURIComponent(src));
// reverting good old fationed regexp
const cb_utob = (c) => {
    if (c.length < 2) {
        var cc = c.charCodeAt(0);
        return cc < 0x80 ? c
            : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))
                + _fromCC(0x80 | (cc & 0x3f)))
                : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))
                    + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
                    + _fromCC(0x80 | (cc & 0x3f)));
    }
    else {
        var cc = 0x10000
            + (c.charCodeAt(0) - 0xD800) * 0x400
            + (c.charCodeAt(1) - 0xDC00);
        return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))
            + _fromCC(0x80 | ((cc >>> 12) & 0x3f))
            + _fromCC(0x80 | ((cc >>> 6) & 0x3f))
            + _fromCC(0x80 | (cc & 0x3f)));
    }
};
const re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
/**
 * @deprecated should have been internal use only.
 * @param {string} src UTF-8 string
 * @returns {string} UTF-16 string
 */
const utob = (u) => u.replace(re_utob, cb_utob);
//
const _encode = _hasBuffer
    ? (s) => Buffer.from(s, 'utf8').toString('base64')
    : _TE
        ? (s) => _fromUint8Array(_TE.encode(s))
        : (s) => _btoa(utob(s));
/**
 * converts a UTF-8-encoded string to a Base64 string.
 * @param {boolean} [urlsafe] if `true` make the result URL-safe
 * @returns {string} Base64 string
 */
const encode = (src, urlsafe = false) => urlsafe
    ? _mkUriSafe(_encode(src))
    : _encode(src);
/**
 * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.
 * @returns {string} Base64 string
 */
const encodeURI = (src) => encode(src, true);
// This trick is found broken https://github.com/dankogai/js-base64/issues/130
// const btou = (src: string) => decodeURIComponent(escape(src));
// reverting good old fationed regexp
const re_btou = /[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}/g;
const cb_btou = (cccc) => {
    switch (cccc.length) {
        case 4:
            var cp = ((0x07 & cccc.charCodeAt(0)) << 18)
                | ((0x3f & cccc.charCodeAt(1)) << 12)
                | ((0x3f & cccc.charCodeAt(2)) << 6)
                | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;
            return (_fromCC((offset >>> 10) + 0xD800)
                + _fromCC((offset & 0x3FF) + 0xDC00));
        case 3:
            return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)
                | ((0x3f & cccc.charCodeAt(1)) << 6)
                | (0x3f & cccc.charCodeAt(2)));
        default:
            return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)
                | (0x3f & cccc.charCodeAt(1)));
    }
};
/**
 * @deprecated should have been internal use only.
 * @param {string} src UTF-16 string
 * @returns {string} UTF-8 string
 */
const btou = (b) => b.replace(re_btou, cb_btou);
/**
 * polyfill version of `atob`
 */
const atobPolyfill = (asc) => {
    // console.log('polyfilled');
    asc = asc.replace(/\s+/g, '');
    if (!b64re.test(asc))
        throw new TypeError('malformed base64.');
    asc += '=='.slice(2 - (asc.length & 3));
    let u24, bin = '', r1, r2;
    for (let i = 0; i < asc.length;) {
        u24 = b64tab[asc.charAt(i++)] << 18
            | b64tab[asc.charAt(i++)] << 12
            | (r1 = b64tab[asc.charAt(i++)]) << 6
            | (r2 = b64tab[asc.charAt(i++)]);
        bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)
            : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)
                : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);
    }
    return bin;
};
/**
 * does what `window.atob` of web browsers do.
 * @param {String} asc Base64-encoded string
 * @returns {string} binary string
 */
const _atob = _hasatob ? (asc) => atob(_tidyB64(asc))
    : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')
        : atobPolyfill;
//
const _toUint8Array = _hasBuffer
    ? (a) => _U8Afrom(Buffer.from(a, 'base64'))
    : (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0));
/**
 * converts a Base64 string to a Uint8Array.
 */
const toUint8Array = (a) => _toUint8Array(_unURI(a));
//
const _decode = _hasBuffer
    ? (a) => Buffer.from(a, 'base64').toString('utf8')
    : _TD
        ? (a) => _TD.decode(_toUint8Array(a))
        : (a) => btou(_atob(a));
const _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));
/**
 * converts a Base64 string to a UTF-8 string.
 * @param {String} src Base64 string.  Both normal and URL-safe are supported
 * @returns {string} UTF-8 string
 */
const decode = (src) => _decode(_unURI(src));
//
const _noEnum = (v) => {
    return {
        value: v, enumerable: false, writable: true, configurable: true
    };
};
/**
 * extend String.prototype with relevant methods
 */
const extendString = function () {
    const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));
    _add('fromBase64', function () { return decode(this); });
    _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });
    _add('toBase64URI', function () { return encode(this, true); });
    _add('toBase64URL', function () { return encode(this, true); });
    _add('toUint8Array', function () { return toUint8Array(this); });
};
/**
 * extend Uint8Array.prototype with relevant methods
 */
const extendUint8Array = function () {
    const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));
    _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });
    _add('toBase64URI', function () { return fromUint8Array(this, true); });
    _add('toBase64URL', function () { return fromUint8Array(this, true); });
};
/**
 * extend Builtin prototypes with relevant methods
 */
const extendBuiltins = () => {
    extendString();
    extendUint8Array();
};
const gBase64 = {
    version: version,
    VERSION: VERSION,
    atob: _atob,
    atobPolyfill: atobPolyfill,
    btoa: _btoa,
    btoaPolyfill: btoaPolyfill,
    fromBase64: decode,
    toBase64: encode,
    encode: encode,
    encodeURI: encodeURI,
    encodeURL: encodeURI,
    utob: utob,
    btou: btou,
    decode: decode,
    fromUint8Array: fromUint8Array,
    toUint8Array: toUint8Array,
    extendString: extendString,
    extendUint8Array: extendUint8Array,
    extendBuiltins: extendBuiltins,
};
// makecjs:CUT //
export { version };
export { VERSION };
export { _atob as atob };
export { atobPolyfill };
export { _btoa as btoa };
export { btoaPolyfill };
export { decode as fromBase64 };
export { encode as toBase64 };
export { utob };
export { encode };
export { encodeURI };
export { encodeURI as encodeURL };
export { btou };
export { decode };
export { fromUint8Array };
export { toUint8Array };
export { extendString };
export { extendUint8Array };
export { extendBuiltins };
// and finally,
export { gBase64 as Base64 };


================================================
FILE: components/js-base64/package.json
================================================
{
  "_from": "js-base64",
  "_id": "js-base64@3.5.2",
  "_inBundle": false,
  "_integrity": "sha512-VG2qfvV5rEQIVxq9UmAVyWIaOdZGt9M16BLu8vFkyWyhv709Hyg4nKUb5T+Ru+HmAr9RHdF+kQDKAhbJlcdKeQ==",
  "_location": "/js-base64",
  "_phantomChildren": {},
  "_requested": {
    "type": "tag",
    "registry": true,
    "raw": "js-base64",
    "name": "js-base64",
    "escapedName": "js-base64",
    "rawSpec": "",
    "saveSpec": null,
    "fetchSpec": "latest"
  },
  "_requiredBy": [
    "#USER",
    "/"
  ],
  "_resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.5.2.tgz",
  "_shasum": "3cc800e4f10812b55fb5ec53e7cabaef35dc6d3c",
  "_spec": "js-base64",
  "_where": "E:\\work\\alumni",
  "author": {
    "name": "Dan Kogai"
  },
  "bugs": {
    "url": "https://github.com/dankogai/js-base64/issues"
  },
  "bundleDependencies": false,
  "deprecated": false,
  "description": "Yet another Base64 transcoder in pure-JS",
  "devDependencies": {
    "@types/node": "^14.0.26",
    "esm": "^3.2.25",
    "mocha": "^8.0.0",
    "typescript": "^3.9.7"
  },
  "files": [
    "base64.js",
    "base64.mjs",
    "base64.d.ts"
  ],
  "homepage": "https://github.com/dankogai/js-base64#readme",
  "keywords": [
    "base64",
    "binary"
  ],
  "license": "BSD-3-Clause",
  "main": "base64.js",
  "module": "base64.mjs",
  "name": "js-base64",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/dankogai/js-base64.git"
  },
  "scripts": {
    "test": "make clean && make test"
  },
  "types": "base64.d.ts",
  "version": "3.5.2"
}


================================================
FILE: components/share_hb2/share_hb2.vue
================================================
<template>
	<view class="share_img flex justify-center align-center" @touchmove.stop.prevent="clear">
		<view class="content" v-if="imgSrc != null">
			<view class="top">
				<view>
					<image :src="imgSrc" 
					:show-menu-by-longpress="true" 
					mode="widthFix"></image>
				</view>
				<view>长按图片发送朋友或保存</view>
			</view>
			<view class="bottom" @click="cloose_share_img">关闭</view>
		</view>

		<canvas :style="{width:widthIn*zoom+'px', height:heightIn*zoom+'px'}" canvas-id="graceCanvas" class="grace-canvas"></canvas>


	</view>
</template>

<script>
	export default {
		props: {
			bgImg: String, //背景图片
			ewmImg: String, //二维码图片
		},
		data() {
			return {
				imgSrc: null,
				widthIn: 650,
				heightIn: 1150,
				qrCodeWidth: 200, //二维码的宽度
				qrCodeX: 230, //二维码x坐标
				qrCodeY: 870, //二维码y坐标
				zoom: 1, //实际绘画出来的图片和界面上的规格比例
			}
		},
		created() {
			console.log('打开了分享海报传入的参数',this.bgImg,this.ewmImg);
		},
		// #ifdef MP-WEIXIN
		onReady() {
			console.log('分享海报开始生成');
			uni.showLoading({
				title: '海报生成中',
				mask: false
			});
			// 画布初始化
			this.context = uni.createCanvasContext('graceCanvas', this);
			this.draw();

		},
		// #endif
		// #ifdef H5
		mounted() {
			console.log('分享海报开始生成');
			uni.showLoading({
				title: '海报生成中',
				mask: false
			});
			// 画布初始化
			this.context = uni.createCanvasContext('graceCanvas', this);
			this.draw();
		
		},
		// #endif
		
		
		methods: {
			// 关闭
			cloose_share_img() {
				this.$emit('cloose_share_img')
			},
			// 阻止冒泡
			clear(e) {
				// TODO nvue 取消冒泡
				e.stopPropagation()
			},

			// 绘图相关

			// 海报绘制代码
			draw: function() {
				// 步骤 01. 绘制背景颜色
				this.step01();
				// 步骤 02. 绘制背景图片(如果需要,条件结构)
				if (this.bgImg != '') {
					console.log('this.bgImg', this.bgImg);
					this.drawBGIMG(this.bgImg, () => {
						// 步骤 03
						this.step03();
					});
				} else {
					this.step03();
				}
			},
			// 步骤 01 : 绘制背景颜色
			step01: function() {
				//如果有背景色就绘制
				if (this.bgColor) {
					this.context.setFillStyle(this.bgColor);
					this.context.fillRect(0, 0, this.widthIn, this.heightIn);
				}
			},

			// 绘制图片,参数 : 图片地址, 绘制完成后执行的回调函数
			drawBGIMG: function(img, callback) {
				console.log('步骤1:绘制背景图片');
				const that = this
				var zoom = this.zoom
				
				uni.downloadFile({
					url: img,
					success: (res) => {
						console.log('背景图下载成功', res.tempFilePath);
						if (res.statusCode == 200) {
							// 绘制
							uni.getImageInfo({
								src: res.tempFilePath,
								success: (res2) => {
									var bgImgHeight = (this.widthIn / res2.width) * res2.height;
									this.heightIn = parseInt(bgImgHeight)
									console.log('背景图信息及将要设置宽高', res2, this.widthIn, bgImgHeight);
									this.context.drawImage(res.tempFilePath, 0, 0, this.widthIn * zoom, bgImgHeight * zoom);
									callback();
								},
								fail(err) {
									console.log('背景图下载失败');
									uni.hideLoading()
								}
							});
						}
					},
					fail(err) {
						uni.hideLoading()
					}
				});
			
			
			},


			// 步骤 03 : 绘制二维码
			step03: function() {
				console.log("步骤 02. 绘制二维码")
				var that = this
				var zoom = this.zoom
				uni.downloadFile({
						url: that.ewmImg,
						success: (res) => {
							console.log('二维码下载成功', res.tempFilePath);
							if (res.statusCode == 200) {
								// 绘制
								uni.getImageInfo({
									src: res.tempFilePath,
									success: (res2) => {
										that.context.drawImage(res.tempFilePath, that.qrCodeX * zoom, that.qrCodeY * zoom, that.qrCodeWidth * zoom, that.qrCodeWidth *
											zoom);
										that.drawIt();
									},
									fail(err) {
										console.log('二维码下载失败');
										uni.hideLoading()
									}
								});
							}
						},
						fail(err) {
							uni.hideLoading()
						}
					});
			},


			// 最终绘制函数
			drawIt: function() {
				const that = this
				var zoom = this.zoom
				console.log("步骤3,最终绘制,渲染页面")
				
				// #ifdef MP-WEIXIN
				
				this.context.draw(true,
					setTimeout(() => {
						console.log("进入了回调")
						uni.canvasToTempFilePath({
							x: 0,
							y: 0,
							width: this.widthIn * zoom,
							height: this.heightIn * zoom,
							destWidth: this.widthIn * zoom,
							destHeight: this.heightIn * zoom,
							fileType: 'png',
							canvasId: 'graceCanvas',
							success: (res) => {
								// 在H5平台下,tempFilePath 为 base64
								uni.hideLoading()
								that.imgSrc = res.tempFilePath;
								console.log("最终绘制完成", res.tempFilePath)
							},
							fail: (err) => {
								console.log("最终绘制失败", err)
								uni.hideLoading()
							}
						}, that);
					}, 2000)


				);
			
			// #endif
			// #ifdef H5
			this.context.draw(true,() => {
				uni.canvasToTempFilePath({
					x: 0,
					y: 0,
					width: this.widthIn * zoom,
					height: this.heightIn * zoom,
					destWidth: this.widthIn * zoom,
					destHeight: this.heightIn * zoom,
					fileType: 'png',
					canvasId: 'graceCanvas',
					success: (res) => {
						// 在H5平台下,tempFilePath 为 base64
						uni.hideLoading()
						that.imgSrc = res.tempFilePath;
						console.log("最终绘制完成", res.tempFilePath)
					},
					fail: (err) => {
						console.log("最终绘制失败", err)
						uni.hideLoading()
					}
				});
			})
			
			// #endif
			
			
			},




			// 绘图相关


		}
	}
</script>


<style scoped lang="scss">
	.share_img {
		position: absolute;
		top: 0;
		left: 0;
		z-index: 9999;
		width: 100vw;
		height: 100vh;
		background-color: rgba($color: #000, $alpha:0.3);

		.content {
			width: 630rpx;
			text-align: center;
			background-color: #fff;

			.top {
				padding-bottom: 20rpx;
				border-bottom: 1px solid #C0C4CC;
				color: #e84d00;

				image {
					margin-top: 40rpx;
					width: 500rpx;
					height: 800rpx;
				}
			}

			.bottom {
				width: 100%;
				padding: 30rpx 0;
				letter-spacing: 4rpx;
				font-size: 36rpx;
				color: #b3b3b3;
			}

		}

	}

	.grace-canvas {
		z-index: 99;
		top: 0;
		font-size: 0;
		display: flex;
		position: fixed;
		left: 9000px;

	}
</style>


================================================
FILE: components/share_img/share_img.vue
================================================
<template>
	<view class="share_img flex justify-center align-center" @touchmove.stop.prevent="clear">
		<view class="content" v-if="imgSrc != null">
			<view class="top">
				<view>
					<image :src="imgSrc" 
					:show-menu-by-longpress="true" 
					mode="widthFix"></image>
				</view>
				<view>长按图片发送朋友或保存</view>
			</view>
			<view class="bottom" @click="cloose_share_img">关闭</view>
		</view>

		<canvas :style="{width:widthIn*zoom+'px', height:heightIn*zoom+'px'}" canvas-id="graceCanvas" class="grace-canvas"></canvas>


	</view>
</template>

<script>
	export default {
		props: {
			bgImg: String, //背景图片
			ewmImg: String, //二维码图片
		},
		data() {
			return {
				imgSrc: null,
				widthIn: 650,
				heightIn: 1150,
				qrCodeWidth: 250, //二维码的宽度
				qrCodeX: 205, //二维码x坐标
				qrCodeY: 870, //二维码y坐标
				zoom: 2, //实际绘画出来的图片和界面上的规格比例
			}
		},
		created() {
			console.log('打开了分享海报传入的参数',this.bgImg,this.ewmImg);
		},
		// #ifdef MP-WEIXIN
		onReady() {
			console.log('分享海报开始生成');
			uni.showLoading({
				title: '海报生成中',
				mask: false
			});
			// 画布初始化
			this.context = uni.createCanvasContext('graceCanvas', this);
			this.draw();

		},
		// #endif
		// #ifdef H5
		mounted() {
			console.log('分享海报开始生成');
			uni.showLoading({
				title: '海报生成中',
				mask: false
			});
			// 画布初始化
			this.context = uni.createCanvasContext('graceCanvas', this);
			this.draw();
		
		},
		// #endif
		
		
		methods: {
			// 关闭
			cloose_share_img() {
				this.$emit('cloose_share_img')
			},
			// 阻止冒泡
			clear(e) {
				// TODO nvue 取消冒泡
				e.stopPropagation()
			},

			// 绘图相关

			// 海报绘制代码
			draw: function() {
				// 步骤 01. 绘制背景颜色
				this.step01();
				// 步骤 02. 绘制背景图片(如果需要,条件结构)
				if (this.bgImg != '') {
					console.log('this.bgImg', this.bgImg);
					this.drawBGIMG(this.bgImg, () => {
						// 步骤 03
						this.step03();
					});
				} else {
					this.step03();
				}
			},
			// 步骤 01 : 绘制背景颜色
			step01: function() {
				//如果有背景色就绘制
				if (this.bgColor) {
					this.context.setFillStyle(this.bgColor);
					this.context.fillRect(0, 0, this.widthIn, this.heightIn);
				}
			},

			// 绘制图片,参数 : 图片地址, 绘制完成后执行的回调函数
			drawBGIMG: function(img, callback) {
				console.log('步骤1:绘制背景图片');
				const that = this
				var zoom = this.zoom
				
				// #ifdef MP-WEIXIN
				uni.downloadFile({
					url: img,
					success: (res) => {
						console.log('背景图下载成功', res.tempFilePath);
						if (res.statusCode == 200) {
							// 绘制
							uni.getImageInfo({
								src: res.tempFilePath,
								success: (res2) => {
									var bgImgHeight = (this.widthIn / res2.width) * res2.height;
									this.heightIn = parseInt(bgImgHeight)
									console.log('背景图信息及将要设置宽高', res2, this.widthIn, bgImgHeight);
									this.context.drawImage(res.tempFilePath, 0, 0, this.widthIn * zoom, bgImgHeight * zoom);
									callback();
								},
								fail(err) {
									console.log('背景图下载失败');
									uni.hideLoading()
								}
							});
						}
					},
					fail(err) {
						uni.hideLoading()
					}
				});
			
				// #endif
				
				
				// #ifdef H5
				uni.getImageInfo({
					src: img,
					success: (res2) => {
						var bgImgHeight = (this.widthIn / res2.width) * res2.height;
						this.heightIn = parseInt(bgImgHeight)
						console.log('背景图信息及将要设置宽高', res2, this.widthIn, bgImgHeight);
								
						that.context.drawImage(img, 0, 0, this.widthIn * zoom, bgImgHeight * zoom);
						callback();
						
					},
					fail(err) {
						console.log('背景图下载失败');
						uni.hideLoading()
					}
				});
				// #endif
			
			},


			// 步骤 03 : 绘制二维码
			step03: function() {
				console.log("步骤 02. 绘制二维码")
				var that = this
				var zoom = this.zoom

		// #ifdef MP-WEIXIN
		
			var temp_path = wx.env.USER_DATA_PATH + '/temp_qrcode.png'
		
				// 绘制二维码
				uni.getFileSystemManager().writeFile({
					filePath: temp_path, //创建一个临时文件名
					data: that.ewmImg, //写入的文本或二进制数据
					encoding: 'base64', //写入当前文件的字符编码
					success: res => {
						//二维码宽度
						that.context.drawImage(temp_path, that.qrCodeX * zoom, that.qrCodeY * zoom, that.qrCodeWidth * zoom, that.qrCodeWidth *
							zoom);
						that.drawIt();

					},
					fail: err => {
						console.log(err);
						uni.hideLoading()
					}
				})

		// #endif
		// #ifdef H5
		
		
			that.context.drawImage(that.ewmImg, that.qrCodeX * zoom, that.qrCodeY * zoom, that.qrCodeWidth * zoom, that.qrCodeWidth *
				zoom);
			that.drawIt();
		
		
		// #endif

			},


			// 最终绘制函数
			drawIt: function() {
				const that = this
				var zoom = this.zoom
				console.log("步骤3,最终绘制,渲染页面")
				
				// #ifdef MP-WEIXIN
				
				this.context.draw(true,
					setTimeout(() => {
						console.log("进入了回调")
						uni.canvasToTempFilePath({
							x: 0,
							y: 0,
							width: this.widthIn * zoom,
							height: this.heightIn * zoom,
							destWidth: this.widthIn * zoom,
							destHeight: this.heightIn * zoom,
							fileType: 'png',
							canvasId: 'graceCanvas',
							success: (res) => {
								// 在H5平台下,tempFilePath 为 base64
								uni.hideLoading()
								that.imgSrc = res.tempFilePath;
								console.log("最终绘制完成", res.tempFilePath)
							},
							fail: (err) => {
								console.log("最终绘制失败", err)
								uni.hideLoading()
							}
						}, that);
					}, 2000)


				);
			
			// #endif
			// #ifdef H5
			this.context.draw(true,() => {
				uni.canvasToTempFilePath({
					x: 0,
					y: 0,
					width: this.widthIn * zoom,
					height: this.heightIn * zoom,
					destWidth: this.widthIn * zoom,
					destHeight: this.heightIn * zoom,
					fileType: 'png',
					canvasId: 'graceCanvas',
					success: (res) => {
						// 在H5平台下,tempFilePath 为 base64
						uni.hideLoading()
						that.imgSrc = res.tempFilePath;
						console.log("最终绘制完成", res.tempFilePath)
					},
					fail: (err) => {
						console.log("最终绘制失败", err)
						uni.hideLoading()
					}
				});
			})
			
			// #endif
			
			
			},




			// 绘图相关


		}
	}
</script>


<style scoped lang="scss">
	.share_img {
		position: absolute;
		top: 0;
		left: 0;
		z-index: 9999;
		width: 100vw;
		height: 100vh;
		background-color: rgba($color: #000, $alpha:0.3);

		.content {
			width: 630rpx;
			text-align: center;
			background-color: #fff;

			.top {
				padding-bottom: 20rpx;
				border-bottom: 1px solid #C0C4CC;
				color: #e84d00;

				image {
					margin-top: 40rpx;
					width: 500rpx;
					height: 800rpx;
				}
			}

			.bottom {
				width: 100%;
				padding: 30rpx 0;
				letter-spacing: 4rpx;
				font-size: 36rpx;
				color: #b3b3b3;
			}

		}

	}

	.grace-canvas {
		z-index: 99;
		top: 0;
		font-size: 0;
		display: flex;
		position: fixed;
		left: 9000px;

	}
</style>


================================================
FILE: components/v-tabs/readme.md
================================================
## 插件说明

> 这是 `v-tabs` 插件的升级版本,参数上有很大变动,支持 `H5` `小程序` `手机端`,如果是在之前的插件上升级的话,请注意参数的变更,触发的事件没有变更。

## 使用说明

### 1、最基本用法

- 视图文件

```html
<v-tabs v-model="current" :tabs="tabs" @change="changeTab"></v-tabs>
```

- 脚本文件

```js
export default {
  data() {
    return {
      current: 0,
      tabs: ['军事', '国内', '新闻新闻', '军事', '国内', '新闻', '军事', '国内', '新闻']
    }
  },
  methods: {
    changeTab(index) {
      console.log('当前选中的项:' + index)
    }
  }
}
```

### 2、平铺整个屏幕

- 视图文件

```html
<v-tabs v-model="activeTab" :scroll="false" :tabs="['全部', '进行中', '已完成']"></v-tabs>
```

- 脚本文件

```js
export default {
  data() {
    return {
      activeTab: 0
    }
  }
}
```

### 3、胶囊用法

- 视图文件

```html
<v-tabs v-model="current" :tabs="tabs" :pills="true" line-height="0" activeColor="#fff" @change="changeTab"></v-tabs>
```

- 脚本文件

```js
data() {
  return {
    current: 2,
    tabs: [
        '军事',
        '国内',
        '新闻新闻',
        '军事',
        '国内',
        '新闻',
        '军事',
        '国内',
        '新闻',
      ],
  },
  methods: {
    changeTab(index) {
      console.log('当前选中索引:' + index)
    }
  }
}
```

## 文档说明

### 1、属性说明

|       参数        |  类型   |  默认值   |                    说明                    |
| :---------------: | :-----: | :-------: | :----------------------------------------: |
|       value       | Number  |     0     |             必传(双向绑定的值)             |
|       color       | String  |  '#333'   |                默认文字颜色                |
|    activeColor    | String  | '#2979ff' |               选中文字的颜色               |
|     fontSize      | String  |  '28rpx'  |          默认文字大小(rpx 或 px)           |
|       bold        | Boolean |   true    |               是否加粗选中项               |
|      scroll       | Boolean |   true    |       是否显示滚动条,平铺设置 false       |
|      height       | String  |  '70rpx'  |            tab 高度(rpx 或 px)             |
|    lineHeight     | String  |  '10rpx'  |            滑块高度(rpx 或 px)             |
|     lineColor     | String  | '#2979ff' |                 滑块的颜色                 |
|     lineScale     | Number  |    0.5    |               滑块宽度缩放值               |
|    lineRadius     | String  |  '10rpx'  |          滑块圆角宽度(rpx 或 px)           |
|       pills       | Boolean |   false   |                是否开启胶囊                |
|    pillsColor     | String  | '#2979ff' |          胶囊背景颜色(rpx 或 px)           |
| pillsBorderRadius | String  |  '10rpx'  |          胶囊圆角宽度(rpx 或 px)           |
|       field       | String  |    ''     |  如果 tabs 子项是对象,输入需要展示的键名  |
|      bgColor      | String  |  '#fff'   |     背景色,支持 linear-gradient 渐变      |
|      padding      | String  |    '0'    |           整个 tab padding 属性            |
|       fixed       | Boolean |   false   |               是否固定在顶部               |
|    paddingItem    | String  | '0 22rpx' | 选项的边距(设置上下不生效,需要设置高度) |

### 2、事件说明

|  名称  | 参数  |                说明                |
| :----: | :---: | :--------------------------------: |
| change | index | 改变选中项触发, index 选中项的下标 |

## 更新日志

### 2020-09-21

1. 修复添加 `fixed` 属性后,滚动条无效
2. 修复选项很少的情况下,下划线计算计算错误
3. 新增 `paddingItem` 属性,设置选项左右边距(上下边距需要设置 `height` 属性,或者设置 `padding` 属性)

**写在最后:**
欢迎各位老铁反馈 bug ,本人后端 PHP 一枚,只是应为感兴趣前端,自己琢磨,自己搞。如果你在使用的过程中有什么不合理,需要优化的,都可以在下面评论(或加我 QQ: 1207791534),本人看见后回复、修正,感谢。

### 2020-09-17

1. 紧急修复 bug,横向滑动不了的情况

### 2020-09-16

1. 新增 `fixed` 属性,是否固定在顶部,示例地址:`pages/tabs/tabs-static`
2. 优化之前的页面结构

**注意:**

1. 使用 `padding` 属性的时候,尽量不要左右边距,会导致下划线位置不对
2. 如果不绑定 `v-model` 会导致 `change` 事件改变的时候,下划线不跟随问题

### 2020-09-09

1. 修复 `width` 错误,dom 加载的时候没有及时获取到 `data` 属性导致的。

### 2020-08-29

1. 优化异步改变 `tabs` 后,下划线不初始化问题
2. `github` 地址上有图 2 的源码,需要的自行下载,页面路径:`pages/tabs/order`

### 2020-08-20

1. 优化 `节点查询` 和 `选中渲染`
2. 优化支付宝中 `createSelectorQuery()` 的影响

### 2020-08-19

1. 优化 `change` 事件触发机制

### 2020-08-16

1. 修改默认高度为 `70rpx`
2. 新增属性 `bgColor`,可设置背景颜色,默认 `#fff`
3. 新增整个 `tab` 的 `padding` 属性,默认 `0`

### 2020-08-13

1. 全新的 `v-tabs 2.0`
2. 支持 `H5` `小程序` `APP`
3. 属性高度可配置

## 预览

![v-tabs 2.0.1.gif](https://tva1.sinaimg.cn/large/007S8ZIlgy1ghsv40mj76g30ai0i2tsd.gif)
![v-tabs 2.0.2.gif](https://img-cdn-aliyun.dcloud.net.cn/stream/plugin_screens/42f3a920-a674-11ea-8a24-ffee00625e2e_1.png?v=1597912963)


================================================
FILE: components/v-tabs/v-tabs.vue
================================================
<template>
  <view :id="elId" class="v-tabs">
    <scroll-view
      :scroll-x="scroll"
      :scroll-left="scroll ? scrollLeft : 0"
      :scroll-with-animation="scroll"
      :style="{ position: fixed ? 'fixed' : 'relative', zIndex: 1993 }"
    >
      <view
        class="v-tabs__container"
        :style="{
          display: scroll ? 'inline-flex' : 'flex',
          whiteSpace: scroll ? 'nowrap' : 'normal',
          background: bgColor,
          padding
        }"
      >
        <view
          class="v-tabs__container-item"
          v-for="(v, i) in tabs"
          :key="i"
          :style="{
            color: current == i ? activeColor : color,
            fontSize: current == i ? fontSize : fontSize
          }"
          @click="change(i)"
        >
		<image :src="v.icon" mode=""></image>
        <view>{{ v.text }}</view>
        </view>
        <view
          v-if="!pills"
          class="v-tabs__container-line"
          :style="{
            background: lineColor,
            width: lineWidth + 'px',
            height: lineHeight,
            borderRadius: lineRadius,
            left: lineLeft + 'px',
            transform: `translateX(-${lineWidth / 2}px)`
          }"
        ></view>
        <view
          v-else
          class="v-tabs__container-pills"
          :style="{
            background: pillsColor,
            borderRadius: pillsBorderRadius,
            left: pillsLeft + 'px',
            width: currentWidth + 'px',
            height
          }"
        ></view>
      </view>
    </scroll-view>
    <view
      class="v-tabs__placeholder"
      :style="{
        height: fixed ? height : '0',
        padding
      }"
    ></view>
  </view>
</template>

<script>
/**
 * v-tabs
 * @property {Number} value 选中的下标
 * @property {Array} tabs tabs 列表
 * @property {String} bgColor = '#fff' 背景颜色
 * @property {String} color = '#333' 默认颜色
 * @property {String} activeColor = '#2979ff' 选中文字颜色
 * @property {String} fontSize = '28rpx' 默认文字大小
 * @property {String} activeFontSize = '28rpx' 选中文字大小
 * @property {Boolean} bold = [true | false] 选中文字是否加粗
 * @property {Boolean} scroll = [true | false] 是否滚动
 * @property {String} height = '60rpx' tab 的高度
 * @property {String} lineHeight = '10rpx' 下划线的高度
 * @property {String} lineColor = '#2979ff' 下划线的颜色
 * @property {Number} lineScale = 0.5 下划线的宽度缩放比例
 * @property {String} lineRadius = '10rpx' 下划线圆角
 * @property {Boolean} pills = [true | false] 是否胶囊样式
 * @property {String} pillsColor = '#2979ff' 胶囊背景色
 * @property {String} pillsBorderRadius = '10rpx' 胶囊圆角大小
 * @property {String} field 如果是对象,显示的键名
 * @property {Boolean} fixed = [true | false] 是否固定
 * @property {String} paddingItem = '0 22rpx' 选项的边距
 *
 * @event {Function(current)} change 改变标签触发
 */
export default {
  props: {
    value: {
      type: Number,
      default: 0
    },
    tabs: {
      type: Array,
      default() {
        return []
      }
    },
    bgColor: {
      type: String,
      default: '#fff'
    },
    padding: {
      type: String,
      default: '0'
    },
    color: {
      type: String,
      default: '#333'
    },
    activeColor: {
      type: String,
      default: '#2979ff'
    },
    fontSize: {
      type: String,
      default: '28rpx'
    },
    activeFontSize: {
      type: String,
      default: '32rpx'
    },
    bold: {
      type: Boolean,
      default: true
    },
    scroll: {
      type: Boolean,
      default: true
    },
    height: {
      type: String,
      default: '70rpx'
    },
    lineColor: {
      type: String,
      default: '#2979ff'
    },
    lineHeight: {
      type: String,
      default: '10rpx'
    },
    lineScale: {
      type: Number,
      default: 0.5
    },
    lineRadius: {
      type: String,
      default: '10rpx'
    },
    pills: {
      type: Boolean,
      deafult: false
    },
    pillsColor: {
      type: String,
      default: '#2979ff'
    },
    pillsBorderRadius: {
      type: String,
      default: '10rpx'
    },
    field: {
      type: String,
      default: ''
    },
    fixed: {
      type: Boolean,
      default: false
    },
    paddingItem: {
      type: String,
      default: '0 22rpx'
    }
  },
  data() {
    return {
      elId: '',
      lineWidth: 30,
      currentWidth: 0, // 当前选项的宽度
      lineLeft: 0, // 滑块距离左侧的位置
      pillsLeft: 0, // 胶囊距离左侧的位置
      scrollLeft: 0, // 距离左边的位置
      containerWidth: 0, // 容器的宽度
      current: 0 // 当前选中项
    }
  },
  watch: {
    value(newVal) {
      this.current = newVal
      this.$nextTick(() => {
        this.getTabItemWidth()
      })
    },
    current(newVal) {
      this.$emit('input', newVal)
    },
    tabs(newVal) {
      this.$nextTick(() => {
        this.getTabItemWidth()
      })
    }
  },
  methods: {
    // 产生随机字符串
    randomString(len) {
      len = len || 32
      let $chars =
        'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678' /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/
      let maxPos = $chars.length
      let pwd = ''
      for (let i = 0; i < len; i++) {
        pwd += $chars.charAt(Math.floor(Math.random() * maxPos))
      }
      return pwd
    },
    // 切换事件
    change(index) {
      if (this.current !== index) {
        this.current = index

        this.$emit('change', index)
      }
    },
    // 获取左移动位置
    getTabItemWidth() {
      let query = uni
        .createSelectorQuery()
        // #ifndef MP-ALIPAY
        .in(this)
      // #endif
      // 获取容器的宽度
      query
        .select(`#${this.elId}`)
        .boundingClientRect((data) => {
          if (!this.containerWidth && data) {
            this.containerWidth = data.width
          }
        })
        .exec()
      // 获取所有的 tab-item 的宽度
      query
        .selectAll('.v-tabs__container-item')
        .boundingClientRect((data) => {
          if (!data) {
            return
          }
          let lineLeft = 0
          let currentWidth = 0
          if (data) {
            for (let i = 0; i < data.length; i++) {
              if (i < this.current) {
                lineLeft += data[i].width
              } else if (i == this.current) {
                currentWidth = data[i].width
              } else {
                break
              }
            }
          }
          // 当前滑块的宽度
          this.currentWidth = currentWidth
          // 缩放后的滑块宽度
          this.lineWidth = currentWidth * this.lineScale * 1
          // 滑块作移动的位置
          this.lineLeft = lineLeft + currentWidth / 2
          // 胶囊距离左侧的位置
          this.pillsLeft = lineLeft
          // 计算滚动的距离左侧的位置
          if (this.scroll) {
            this.scrollLeft = this.lineLeft - this.containerWidth / 2
          }
        })
        .exec()
    }
  },
  mounted() {
    this.elId = 'xfjpeter_' + this.randomString()
    this.current = this.value
    this.$nextTick(() => {
      this.getTabItemWidth()
    })
  }
}
</script>

<style lang="scss" scoped>
.v-tabs {
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
  height: 200rpx;
  display: flex;
  align-items: center;
  background-color: #ffffff;
  scroll-view{
	  width: 750rpx;
  }
  &__container {
    min-width: 100%;
    position: relative;
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
    overflow: hidden;

    &-item {
      display: flex;
	  flex-direction:column;
      align-items: center;
      height: 100%;
      position: relative;
      z-index: 10;
      // padding: 0 11px;
      transition: all 0.2s;
      white-space: nowrap;
	  flex-wrap: wrap;
	  justify-content: center;
	  padding: 0 35rpx;
	  padding-bottom: 10rpx;
	  image{
		  width: 80rpx;
		  height: 80rpx;
		  display: block;
	  }
    }

    &-line {
      position: absolute;
      bottom: 0;
      transition: all 0.2s linear;
    }

    &-pills {
      position: absolute;
      transition: all 0.2s linear;
      z-index: 9;
    }
  }
}

/* /deep/ ::-webkit-scrollbar {
  display: none;
} */
</style>


================================================
FILE: config.js
================================================

module.exports = {
	
 // baseUrl:'http://127.0.0.1:8000/',
 baseUrl:'https://cps.open-shop.cn/',
 // baseUrl:'https://waimai.ilanchong.cn/',
	
}

================================================
FILE: http/api/index.js
================================================
import request from '../request.js';

//  h5获取签名
function getSignature(data){
	return request({
		url:'user/wx/getSignature',
		data,
		istoken:0
	})
}


//  h5登录
function H5Login(data){
	return request({
		url:`user/wx/officialAccountLogin`,
		istoken:0,
		data
	})
}


// 获取首页活动数据
function getactivelist(data) {
	return request({
		url:'user/index/index',
		data,
		method:'POST',
		
	})
}
// 获取首页活动数据2无token
function getactivelist2(data) {
	return request({
		url:'user/index/index2',
		data,
		method:'POST',
		istoken:0
		
	})
}


// 获取首页banner
function getBannerlist(data) {
	return request({
		url:'user/index/banner',
		data,
		istoken:0
		
	})
}

// 获取首页ad
function getAdlist(data){
	return request({
		url:'user/index/ad',
		data,
		istoken:0
	})
}

// 获取app活动数据
function getApp(data) {
	return request({
		url:'user/setting/index',
		data,
		istoken:0
		
	})
}


// 获取饿了么跳转链接
function getItemLink(data) {
	return request({
		url:'user/index/get_url',
		data
		
	})
}

// 获取美团跳转链接
function get_meituan_url(data) {
	return request({
		url:'user/index/get_meituan_url',
		data
		
	})
}


// 获取美团二维码
function get_meituan_ewm(data) {
	return request({
		url:'user/index/get_meituan_qrcode',
		data
		
	})
}





export default {
	getSignature,
	H5Login,
	getactivelist,
	getactivelist2,
	getApp,
	getItemLink,
	getBannerlist,
	getAdlist,
	get_meituan_url,
	get_meituan_ewm
}


================================================
FILE: http/api/user.js
================================================
import request from '../request.js';


// 登录
function wxlogin(data) {
	return request({
		url:'user/login/wxlogin',
		data,
		istoken:0,
		method:'POST',
		
	})
}

// 获取个人信息
function getUserInfo(data) {
	return request({
		url:'user/user/info',
		data
		
	})
}


// 更新个人信息
function updateInfo(data) {
	return request({
		url:'user/user/update',
		data,
		method:'POST',
		
	})
}


// 更新手机号
function updatephone(data) {
	return request({
		url:'user/user/wxBindMobile',
		data,
		method:'POST',
		
	})
}


// 绑定推荐人
function bindPromoter(data) {
	return request({
		url:'user/user/bindPromoter',
		data,
		method:'POST',
		
	})
}


// 查询订单
function getOrderList(data) {
	return request({
		url:'user/order/index',
		data
		
	})
}

// 获取资金记录列表
function getPayOrderList(data) {
	return request({
		url:'user/money/log',
		data,
		method:'POST',
		
	})
}


// 获取下级列表
function getTeamsList(data) {
	return request({
		url:'user/user/teams',
		data,
		method:'POST',
		
	})
}


// 申请提现
function withdrawal(data) {
	return request({
		url:'user/pay_order/takeOutMoney',
		data,
		method:'POST',
		
	})
}


// 兑换码使用
function pointsfor(data) {
	return request({
		url:'user/redeem_code/exchange',
		data,
		method:'POST',
		
	})
}

// 饿了么绑定授权
function eleauth_url(data) {
	return request({
		url:'user/tbk/auth_url',
		data,
		
	})
}



// 获取个人分享二维码(小程序码)
function getwxqrcode(data) {
	return request({
		url:'user/user/wxQrcode',
		data
	})
}


// 获取个人分享二维码(公众号二维码)
function getOffQrcode(data) {
	return request({
		url:'user/user/offQrcode',
		data
	})
}





export default {
	wxlogin,
	getUserInfo,
	updateInfo,
	updatephone,
	bindPromoter,
	getOrderList,
	getPayOrderList,
	getTeamsList,
	withdrawal,
	eleauth_url,
	getwxqrcode,
	getOffQrcode,
	pointsfor
}


================================================
FILE: http/api.js
================================================
import request from './request.js'
import config from '../config.js'

import index from './api/index.js'
import user from './api/user.js'


/**
 function (data) {
 	return request({
 		url:'school/schoolList',//请求地址
 		data,//数据
 		method:'POST',//请求方式GET可忽略
 		istoken:0,//是否需要携带token,0为不携带,1为携带,默认1
 	})
 }
 */


module.exports = {
	index,
	user
}

================================================
FILE: http/request.js
================================================
import config from '../config.js'
import store from '../store/index.js'

const url_ = config.baseUrl

function request(res) {

	// url,data = {},istoken = 1
	const that = this
	const url = res.url;
	const data = res.data;
	const method = res.method;
	const istoken = res.istoken == 0 ? res.istoken:1;
	
	return new Promise((resolve, rejectd) => {
		let token, 
		req_hea,
		req_data, 
		full_path = url;
		req_data = { ...data};
		
		
		// 判断需不需要token验证
		if (istoken == 1) {
			// token = uni.getStorageSync('token')//获取本地数据缓存的token
			req_data.token = uni.getStorageSync('token')
			// 判断token是否存在,不存在更改状态rejectd
			// if (!req_data.token) {
			// 	return rejectd('token不存在')
			// }
		}
		// 判断url是不是完整路径
		if (url.indexOf('https') == -1) {
			full_path = url_ + url
		}
		
		// 判断是不是post,添加请求头
		if (method == 'POST') {
			req_hea = {
				header: {
					'content-type': 'application/x-www-form-urlencoded'
				},
				method: 'POST'
			}
		}
		

		uni.request({
			url: full_path,
			data: req_data,
			...req_hea,
			success(res) {
				if (res.data.code == 200) {
					resolve(res.data)
										
				} else if (res.statusCode == 500 || res.statusCode == 404) {
					rejectd(res.statusCode)
				} else if (res.data.code == 300) {
					console.log('token300了')					
					
					uni.showToast({
						title: "请先授权",
						icon: "none"
					})
					
				} else {
					rejectd(res.data)
					uni.showToast({
						title: res.data.msg,
						icon: 'none'
					})
				}
			},
			fail(err) {
				uni.showToast({
					icon: "none",
					title: "网络连接错误"
				})
				console.log('err', err)
				rejectd(err)
			}
		})
	})
}

export default request


================================================
FILE: jweixin/index.js
================================================
! function(e, n) {
	"function" == typeof define && (define.amd || define.cmd) ? define(function() {
		return n(e)
	}) : n(e, !0)
}(window, function(o, e) {
	if (!o.jWeixin) {
		var n, c = {
				config: "preVerifyJSAPI",
				onMenuShareTimeline: "menu:share:timeline",
				onMenuShareAppMessage: "menu:share:appmessage",
				onMenuShareQQ: "menu:share:qq",
				onMenuShareWeibo: "menu:share:weiboApp",
				onMenuShareQZone: "menu:share:QZone",
				previewImage: "imagePreview",
				getLocation: "geoLocation",
				openProductSpecificView: "openProductViewWithPid",
				addCard: "batchAddCard",
				openCard: "batchViewCard",
				chooseWXPay: "getBrandWCPayRequest",
				openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
				startSearchBeacons: "startMonitoringBeacons",
				stopSearchBeacons: "stopMonitoringBeacons",
				onSearchBeacons: "onBeaconsInRange",
				consumeAndShareCard: "consumedShareCard",
				openAddress: "editAddress"
			},
			a = function() {
				var e = {};
				for (var n in c) e[c[n]] = n;
				return e
			}(),
			i = o.document,
			t = i.title,
			r = navigator.userAgent.toLowerCase(),
			s = navigator.platform.toLowerCase(),
			d = !(!s.match("mac") && !s.match("win")),
			u = -1 != r.indexOf("wxdebugger"),
			l = -1 != r.indexOf("micromessenger"),
			p = -1 != r.indexOf("android"),
			f = -1 != r.indexOf("iphone") || -1 != r.indexOf("ipad"),
			m = (n = r.match(/micromessenger\/(\d+\.\d+\.\d+)/) || r.match(/micromessenger\/(\d+\.\d+)/)) ? n[1] : "",
			g = {
				initStartTime: L(),
				initEndTime: 0,
				preVerifyStartTime: 0,
				preVerifyEndTime: 0
			},
			h = {
				version: 1,
				appId: "",
				initTime: 0,
				preVerifyTime: 0,
				networkType: "",
				isPreVerifyOk: 1,
				systemType: f ? 1 : p ? 2 : -1,
				clientVersion: m,
				url: encodeURIComponent(location.href)
			},
			v = {},
			S = {
				_completes: []
			},
			y = {
				state: 0,
				data: {}
			};
		O(function() {
			g.initEndTime = L()
		});
		var I = !1,
			_ = [],
			w = {
				config: function(e) {
					B("config", v = e);
					var t = !1 !== v.check;
					O(function() {
						if (t) M(c.config, {
							verifyJsApiList: C(v.jsApiList),
							verifyOpenTagList: C(v.openTagList)
						}, function() {
							S._complete = function(e) {
								g.preVerifyEndTime = L(), y.state = 1, y.data = e
							}, S.success = function(e) {
								h.isPreVerifyOk = 0
							}, S.fail = function(e) {
								S._fail ? S._fail(e) : y.state = -1
							};
							var t = S._completes;
							return t.push(function() {
								! function() {
									if (!(d || u || v.debug || m < "6.0.2" || h.systemType < 0)) {
										var i = new Image;
										h.appId = v.appId, h.initTime = g.initEndTime - g.initStartTime, h.preVerifyTime = g.preVerifyEndTime -
											g.preVerifyStartTime, w.getNetworkType({
												isInnerInvoke: !0,
												success: function(e) {
													h.networkType = e.networkType;
													var n = "https://open.weixin.qq.com/sdk/report?v=" + h.version + "&o=" + h.isPreVerifyOk + "&s=" +
														h.systemType + "&c=" + h.clientVersion + "&a=" + h.appId + "&n=" + h.networkType + "&i=" + h.initTime +
														"&p=" + h.preVerifyTime + "&u=" + h.url;
													i.src = n
												}
											})
									}
								}()
							}), S.complete = function(e) {
								for (var n = 0, i = t.length; n < i; ++n) t[n]();
								S._completes = []
							}, S
						}()), g.preVerifyStartTime = L();
						else {
							y.state = 1;
							for (var e = S._completes, n = 0, i = e.length; n < i; ++n) e[n]();
							S._completes = []
						}
					}), w.invoke || (w.invoke = function(e, n, i) {
						o.WeixinJSBridge && WeixinJSBridge.invoke(e, x(n), i)
					}, w.on = function(e, n) {
						o.WeixinJSBridge && WeixinJSBridge.on(e, n)
					})
				},
				ready: function(e) {
					0 != y.state ? e() : (S._completes.push(e), !l && v.debug && e())
				},
				error: function(e) {
					m < "6.0.2" || (-1 == y.state ? e(y.data) : S._fail = e)
				},
				checkJsApi: function(e) {
					M("checkJsApi", {
						jsApiList: C(e.jsApiList)
					}, (e._complete = function(e) {
						if (p) {
							var n = e.checkResult;
							n && (e.checkResult = JSON.parse(n))
						}
						e = function(e) {
							var n = e.checkResult;
							for (var i in n) {
								var t = a[i];
								t && (n[t] = n[i], delete n[i])
							}
							return e
						}(e)
					}, e))
				},
				onMenuShareTimeline: function(e) {
					P(c.onMenuShareTimeline, {
						complete: function() {
							M("shareTimeline", {
								title: e.title || t,
								desc: e.title || t,
								img_url: e.imgUrl || "",
								link: e.link || location.href,
								type: e.type || "link",
								data_url: e.dataUrl || ""
							}, e)
						}
					}, e)
				},
				onMenuShareAppMessage: function(n) {
					P(c.onMenuShareAppMessage, {
						complete: function(e) {
							"favorite" === e.scene ? M("sendAppMessage", {
								title: n.title || t,
								desc: n.desc || "",
								link: n.link || location.href,
								img_url: n.imgUrl || "",
								type: n.type || "link",
								data_url: n.dataUrl || ""
							}) : M("sendAppMessage", {
								title: n.title || t,
								desc: n.desc || "",
								link: n.link || location.href,
								img_url: n.imgUrl || "",
								type: n.type || "link",
								data_url: n.dataUrl || ""
							}, n)
						}
					}, n)
				},
				onMenuShareQQ: function(e) {
					P(c.onMenuShareQQ, {
						complete: function() {
							M("shareQQ", {
								title: e.title || t,
								desc: e.desc || "",
								img_url: e.imgUrl || "",
								link: e.link || location.href
							}, e)
						}
					}, e)
				},
				onMenuShareWeibo: function(e) {
					P(c.onMenuShareWeibo, {
						complete: function() {
							M("shareWeiboApp", {
								title: e.title || t,
								desc: e.desc || "",
								img_url: e.imgUrl || "",
								link: e.link || location.href
							}, e)
						}
					}, e)
				},
				onMenuShareQZone: function(e) {
					P(c.onMenuShareQZone, {
						complete: function() {
							M("shareQZone", {
								title: e.title || t,
								desc: e.desc || "",
								img_url: e.imgUrl || "",
								link: e.link || location.href
							}, e)
						}
					}, e)
				},
				updateTimelineShareData: function(e) {
					M("updateTimelineShareData", {
						title: e.title,
						link: e.link,
						imgUrl: e.imgUrl
					}, e)
				},
				updateAppMessageShareData: function(e) {
					M("updateAppMessageShareData", {
						title: e.title,
						desc: e.desc,
						link: e.link,
						imgUrl: e.imgUrl
					}, e)
				},
				startRecord: function(e) {
					M("startRecord", {}, e)
				},
				stopRecord: function(e) {
					M("stopRecord", {}, e)
				},
				onVoiceRecordEnd: function(e) {
					P("onVoiceRecordEnd", e)
				},
				playVoice: function(e) {
					M("playVoice", {
						localId: e.localId
					}, e)
				},
				pauseVoice: function(e) {
					M("pauseVoice", {
						localId: e.localId
					}, e)
				},
				stopVoice: function(e) {
					M("stopVoice", {
						localId: e.localId
					}, e)
				},
				onVoicePlayEnd: function(e) {
					P("onVoicePlayEnd", e)
				},
				uploadVoice: function(e) {
					M("uploadVoice", {
						localId: e.localId,
						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
					}, e)
				},
				downloadVoice: function(e) {
					M("downloadVoice", {
						serverId: e.serverId,
						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
					}, e)
				},
				translateVoice: function(e) {
					M("translateVoice", {
						localId: e.localId,
						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
					}, e)
				},
				chooseImage: function(e) {
					M("chooseImage", {
						scene: "1|2",
						count: e.count || 9,
						sizeType: e.sizeType || ["original", "compressed"],
						sourceType: e.sourceType || ["album", "camera"]
					}, (e._complete = function(e) {
						if (p) {
							var n = e.localIds;
							try {
								n && (e.localIds = JSON.parse(n))
							} catch (e) {}
						}
					}, e))
				},
				getLocation: function(e) {},
				previewImage: function(e) {
					M(c.previewImage, {
						current: e.current,
						urls: e.urls
					}, e)
				},
				uploadImage: function(e) {
					M("uploadImage", {
						localId: e.localId,
						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
					}, e)
				},
				downloadImage: function(e) {
					M("downloadImage", {
						serverId: e.serverId,
						isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
					}, e)
				},
				getLocalImgData: function(e) {
					!1 === I ? (I = !0, M("getLocalImgData", {
						localId: e.localId
					}, (e._complete = function(e) {
						if (I = !1, 0 < _.length) {
							var n = _.shift();
							wx.getLocalImgData(n)
						}
					}, e))) : _.push(e)
				},
				getNetworkType: function(e) {
					M("getNetworkType", {}, (e._complete = function(e) {
						e = function(e) {
							var n = e.errMsg;
							e.errMsg = "getNetworkType:ok";
							var i = e.subtype;
							if (delete e.subtype, i) e.networkType = i;
							else {
								var t = n.indexOf(":"),
									o = n.substring(t + 1);
								switch (o) {
									case "wifi":
									case "edge":
									case "wwan":
										e.networkType = o;
										break;
									default:
										e.errMsg = "getNetworkType:fail"
								}
							}
							return e
						}(e)
					}, e))
				},
				openLocation: function(e) {
					M("openLocation", {
						latitude: e.latitude,
						longitude: e.longitude,
						name: e.name || "",
						address: e.address || "",
						scale: e.scale || 28,
						infoUrl: e.infoUrl || ""
					}, e)
				},
				getLocation: function(e) {
					M(c.getLocation, {
						type: (e = e || {}).type || "wgs84"
					}, (e._complete = function(e) {
						delete e.type
					}, e))
				},
				hideOptionMenu: function(e) {
					M("hideOptionMenu", {}, e)
				},
				showOptionMenu: function(e) {
					M("showOptionMenu", {}, e)
				},
				closeWindow: function(e) {
					M("closeWindow", {}, e = e || {})
				},
				hideMenuItems: function(e) {
					M("hideMenuItems", {
						menuList: e.menuList
					}, e)
				},
				showMenuItems: function(e) {
					M("showMenuItems", {
						menuList: e.menuList
					}, e)
				},
				hideAllNonBaseMenuItem: function(e) {
					M("hideAllNonBaseMenuItem", {}, e)
				},
				showAllNonBaseMenuItem: function(e) {
					M("showAllNonBaseMenuItem", {}, e)
				},
				scanQRCode: function(e) {
					M("scanQRCode", {
						needResult: (e = e || {}).needResult || 0,
						scanType: e.scanType || ["qrCode", "barCode"]
					}, (e._complete = function(e) {
						if (f) {
							var n = e.resultStr;
							if (n) {
								var i = JSON.parse(n);
								e.resultStr = i && i.scan_code && i.scan_code.scan_result
							}
						}
					}, e))
				},
				openAddress: function(e) {
					M(c.openAddress, {}, (e._complete = function(e) {
						e = function(e) {
							return e.postalCode = e.addressPostalCode, delete e.addressPostalCode, e.provinceName = e.proviceFirstStageName,
								delete e.proviceFirstStageName, e.cityName = e.addressCitySecondStageName, delete e.addressCitySecondStageName,
								e.countryName = e.addressCountiesThirdStageName, delete e.addressCountiesThirdStageName, e.detailInfo = e
								.addressDetailInfo, delete e.addressDetailInfo, e
						}(e)
					}, e))
				},
				openProductSpecificView: function(e) {
					M(c.openProductSpecificView, {
						pid: e.productId,
						view_type: e.viewType || 0,
						ext_info: e.extInfo
					}, e)
				},
				addCard: function(e) {
					for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
						var r = n[t],
							a = {
								card_id: r.cardId,
								card_ext: r.cardExt
							};
						i.push(a)
					}
					M(c.addCard, {
						card_list: i
					}, (e._complete = function(e) {
						var n = e.card_list;
						if (n) {
							for (var i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
								var o = n[i];
								o.cardId = o.card_id, o.cardExt = o.card_ext, o.isSuccess = !!o.is_succ, delete o.card_id, delete o.card_ext,
									delete o.is_succ
							}
							e.cardList = n, delete e.card_list
						}
					}, e))
				},
				chooseCard: function(e) {
					M("chooseCard", {
						app_id: v.appId,
						location_id: e.shopId || "",
						sign_type: e.signType || "SHA1",
						card_id: e.cardId || "",
						card_type: e.cardType || "",
						card_sign: e.cardSign,
						time_stamp: e.timestamp + "",
						nonce_str: e.nonceStr
					}, (e._complete = function(e) {
						e.cardList = e.choose_card_info, delete e.choose_card_info
					}, e))
				},
				openCard: function(e) {
					for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
						var r = n[t],
							a = {
								card_id: r.cardId,
								code: r.code
							};
						i.push(a)
					}
					M(c.openCard, {
						card_list: i
					}, e)
				},
				consumeAndShareCard: function(e) {
					M(c.consumeAndShareCard, {
						consumedCardId: e.cardId,
						consumedCode: e.code
					}, e)
				},
				chooseWXPay: function(e) {
					M(c.chooseWXPay, V(e), e)
				},
				openEnterpriseRedPacket: function(e) {
					M(c.openEnterpriseRedPacket, V(e), e)
				},
				startSearchBeacons: function(e) {
					M(c.startSearchBeacons, {
						ticket: e.ticket
					}, e)
				},
				stopSearchBeacons: function(e) {
					M(c.stopSearchBeacons, {}, e)
				},
				onSearchBeacons: function(e) {
					P(c.onSearchBeacons, e)
				},
				openEnterpriseChat: function(e) {
					M("openEnterpriseChat", {
						useridlist: e.userIds,
						chatname: e.groupName
					}, e)
				},
				launchMiniProgram: function(e) {
					M("launchMiniProgram", {
						targetAppId: e.targetAppId,
						path: function(e) {
							if ("string" == typeof e && 0 < e.length) {
								var n = e.split("?")[0],
									i = e.split("?")[1];
								return n += ".html", void 0 !== i ? n + "?" + i : n
							}
						}(e.path),
						envVersion: e.envVersion
					}, e)
				},
				openBusinessView: function(e) {
					M("openBusinessView", {
						businessType: e.businessType,
						queryString: e.queryString || "",
						envVersion: e.envVersion
					}, (e._complete = function(n) {
						if (p) {
							var e = n.extraData;
							if (e) try {
								n.extraData = JSON.parse(e)
							} catch (e) {
								n.extraData = {}
							}
						}
					}, e))
				},
				miniProgram: {
					navigateBack: function(e) {
						e = e || {}, O(function() {
							M("invokeMiniProgramAPI", {
								name: "navigateBack",
								arg: {
									delta: e.delta || 1
								}
							}, e)
						})
					},
					navigateTo: function(e) {
						O(function() {
							M("invokeMiniProgramAPI", {
								name: "navigateTo",
								arg: {
									url: e.url
								}
							}, e)
						})
					},
					redirectTo: function(e) {
						O(function() {
							M("invokeMiniProgramAPI", {
								name: "redirectTo",
								arg: {
									url: e.url
								}
							}, e)
						})
					},
					switchTab: function(e) {
						O(function() {
							M("invokeMiniProgramAPI", {
								name: "switchTab",
								arg: {
									url: e.url
								}
							}, e)
						})
					},
					reLaunch: function(e) {
						O(function() {
							M("invokeMiniProgramAPI", {
								name: "reLaunch",
								arg: {
									url: e.url
								}
							}, e)
						})
					},
					postMessage: function(e) {
						O(function() {
							M("invokeMiniProgramAPI", {
								name: "postMessage",
								arg: e.data || {}
							}, e)
						})
					},
					getEnv: function(e) {
						O(function() {
							e({
								miniprogram: "miniprogram" === o.__wxjs_environment
							})
						})
					}
				}
			},
			T = 1,
			k = {};
		return i.addEventListener("error", function(e) {
			if (!p) {
				var n = e.target,
					i = n.tagName,
					t = n.src;
				if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i)
					if (-1 != t.indexOf("wxlocalresource://")) {
						e.preventDefault(), e.stopPropagation();
						var o = n["wx-id"];
						if (o || (o = T++, n["wx-id"] = o), k[o]) return;
						k[o] = !0, wx.ready(function() {
							wx.getLocalImgData({
								localId: t,
								success: function(e) {
									n.src = e.localData
								}
							})
						})
					}
			}
		}, !0), i.addEventListener("load", function(e) {
			if (!p) {
				var n = e.target,
					i = n.tagName;
				n.src;
				if ("IMG" == i || "VIDEO" == i || "AUDIO" == i || "SOURCE" == i) {
					var t = n["wx-id"];
					t && (k[t] = !1)
				}
			}
		}, !0), e && (o.wx = o.jWeixin = w), w
	}

	function M(n, e, i) {
		o.WeixinJSBridge ? WeixinJSBridge.invoke(n, x(e), function(e) {
			A(n, e, i)
		}) : B(n, i)
	}

	function P(n, i, t) {
		o.WeixinJSBridge ? WeixinJSBridge.on(n, function(e) {
			t && t.trigger && t.trigger(e), A(n, e, i)
		}) : B(n, t || i)
	}

	function x(e) {
		return (e = e || {}).appId = v.appId, e.verifyAppId = v.appId, e.verifySignType = "sha1", e.verifyTimestamp = v.timestamp +
			"", e.verifyNonceStr = v.nonceStr, e.verifySignature = v.signature, e
	}

	function V(e) {
		return {
			timeStamp: e.timestamp + "",
			nonceStr: e.nonceStr,
			package: e.package,
			paySign: e.paySign,
			signType: e.signType || "SHA1"
		}
	}

	function A(e, n, i) {
		"openEnterpriseChat" != e && "openBusinessView" !== e || (n.errCode = n.err_code), delete n.err_code, delete n.err_desc,
			delete n.err_detail;
		var t = n.errMsg;
		t || (t = n.err_msg, delete n.err_msg, t = function(e, n) {
				var i = e,
					t = a[i];
				t && (i = t);
				var o = "ok";
				if (n) {
					var r = n.indexOf(":");
					"confirm" == (o = n.substring(r + 1)) && (o = "ok"), "failed" == o && (o = "fail"), -1 != o.indexOf("failed_") &&
						(o = o.substring(7)), -1 != o.indexOf("fail_") && (o = o.substring(5)), "access denied" != (o = (o = o.replace(
							/_/g, " ")).toLowerCase()) && "no permission to execute" != o || (o = "permission denied"), "config" == i &&
						"function not exist" == o && (o = "ok"), "" == o && (o = "fail")
				}
				return n = i + ":" + o
			}(e, t), n.errMsg = t), (i = i || {})._complete && (i._complete(n), delete i._complete), t = n.errMsg || "", v.debug &&
			!i.isInnerInvoke && alert(JSON.stringify(n));
		var o = t.indexOf(":");
		switch (t.substring(o + 1)) {
			case "ok":
				i.success && i.success(n);
				break;
			case "cancel":
				i.cancel && i.cancel(n);
				break;
			default:
				i.fail && i.fail(n)
		}
		i.complete && i.complete(n)
	}

	function C(e) {
		if (e) {
			for (var n = 0, i = e.length; n < i; ++n) {
				var t = e[n],
					o = c[t];
				o && (e[n] = o)
			}
			return e
		}
	}

	function B(e, n) {
		if (!(!v.debug || n && n.isInnerInvoke)) {
			var i = a[e];
			i && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || "")
		}
	}

	function L() {
		return (new Date).getTime()
	}

	function O(e) {
		l && (o.WeixinJSBridge ? e() : i.addEventListener && i.addEventListener("WeixinJSBridgeReady", e, !1))
	}
});


================================================
FILE: main.js
================================================
import Vue from 'vue'
import App from './App'
import store from './store'
import Api from './http/api.js'
let base64 = require('./components/js-base64/base64.js').Base64

Vue.config.productionTip = false

import uView from 'uview-ui';
Vue.use(uView);

Vue.prototype.$decode = base64.decode

Vue.prototype.$http = Api

// #ifdef H5
import wechat from './wechat.js'
if(wechat.isWechat()){
    Vue.prototype.$wechat = wechat;
}

// #endif

App.mpType = 'app'

const app = new Vue({
    ...App,
		store
})
app.$mount()


================================================
FILE: manifest.json
================================================
{
    "name" : "外卖cps",
    "appid" : "__UNI__EB9A07C",
    "description" : "",
    "versionName" : "1.0.0",
    "versionCode" : "100",
    "transformPx" : false,
    "app-plus" : {
        "usingComponents" : true,
        "nvueCompiler" : "uni-app",
        "compilerVersion" : 3,
        "splashscreen" : {
            "alwaysShowBeforeRender" : true,
            "waiting" : true,
            "autoclose" : true,
            "delay" : 0
        },
        "modules" : {},
        "distribute" : {
            "android" : {
                "permissions" : [
                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
                    "<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
                    "<uses-feature android:name=\"android.hardware.camera\"/>",
                    "<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
                ]
            },
            "ios" : {},
            "sdkConfigs" : {}
        }
    },
    "quickapp" : {},
    "mp-weixin" : {
        "appid" : "wx65e70999b424c341",
        "setting" : {
            "urlCheck" : false,
            "postcss" : true,
            "es6" : true
        },
        "usingComponents" : true
    },
    "mp-alipay" : {
        "usingComponents" : true
    },
    "mp-baidu" : {
        "usingComponents" : true
    },
    "mp-toutiao" : {
        "usingComponents" : true
    },
    "uniStatistics" : {
        "enable" : false
    },
    "h5" : {
        "title" : "懒虫外卖劵",
        "domain" : "http://waimai.ilanchong.cn/",
        "router" : {
            "base" : "/h5/"
        }
    }
}


================================================
FILE: package.json
================================================
{
    "id": "luke-waimai-cps",
    "name": "外卖cps、外卖红包、外卖优惠券小程序(包含分销、公众号、返利等功能)",
    "version": "1.1",
    "description": "本项目为外卖cps项目,项目前后端全开源",
    "keywords": [
        "外卖优惠券"
    ]
}

================================================
FILE: pages/ele/ele.vue
================================================
<template>
	<view class="meituan" :style="zt_bg.bgc">
		<u-navbar :is-back="false" :border-bottom="false" title=" " :background="background">
			<view class="slot-wrap">
				<view class="center">
					<u-tabs name="cate_name" count="cate_count" :list="list" :is-scroll="false" :current="current" @change="change"
					 bg-color="background.backgroundColor" inactive-color="#FFF" active-color="#FFF"></u-tabs>
				</view>
			</view>
		</u-navbar>

		<view class="content">
			<!-- 正文内容 -->
			<view class="top">
				<image :src="zt_bg.top_bg" mode="widthFix"></image>
			</view>
			<view class="center">
				<!-- 导购三标栏 -->
				<view class="cen-top">
					<image :src="zt_bg.dh_bg" mode="widthFix"></image>
					<view class="y y1" :style="zt_bg.bgc"></view>
					<view class="y y2" :style="zt_bg.bgc"></view>
				</view>
				<!-- 二维码 -->
				<view class="cen-cen">
					<image :src="current_data[current].ewm" :show-menu-by-longpress="true"></image>
				</view>
				<view v-if="is_pay">
					<view class="cen-bottom" :style="zt_bg.topbtn_sls" @click="jump">领红包点外卖</view>
				</view>
				<view v-else>
					<view class="cen-bottom" :style="zt_bg.topbtn_sls">长按二维码保存到相册</view>
				</view>
				
			</view>
			<view class="bottom">
				<view class="btn flex justify-between">
					<view :style="zt_bg.bombtn1_sls" @click="share_img_click">分享赚钱</view>
					<view :style="zt_bg.bombtn2_sls" @click="cp_clipboard">复制文案</view>
				</view>
				<view class="bttext">
					返利注意事项:<br />
					1.领券下单均有返利,返利按照订单实际支付金额为准;<br />
					2.必须使用从本页获得的红包码领券,领券后使用红包下单才有返利;<br />
					3.领券后在红包有效期内下单均有返利;<br />
					4.饿了么绑定的手机号,需与领券登录的手机号—致;<br />
					5.下单后30分钟内会有订单返现提醒;<br />
					6.无论饿了么新老用户,每个手机号每天可领一次,红包金额随机发放;
				</view>
			</view>
		</view>

		<share-hb :bgImg="appInfo.poster_bg" :ewmImg="current_data[current].ewm" :isshow="isshow_share" @cloose_share_img="clooseShare"
		 v-if="isshow_share"></share-hb>



	</view>
</template>

<script>
	import shareHb from '../../components/share_hb2/share_hb2.vue'

	export default {
		components: {
			shareHb
		},
		data() {
			return {
				notitle: '',
				list: [{
					name: '外卖',
					activity_material_id: '20150318020002597'
				}, {
					name: '果蔬',
					activity_material_id: '1585018034441'
				}],
				current: 0,
				background: {},
				zt_bg: {},
				current_data: [{
					ewm: '',
					url: ''
				}, {
					ewm: '',
					url: ''
				}],
				shuju0: { //美团外卖颜色
					backgroundColor: '#027ed8',
					bgc: 'background-color:#027ed8',
					top_bg: '../../static/ele_bg_hb.jpg',
					dh_bg: '../../static/ele1_ydl.jpg',
					topbtn_sls: 'background-color: #1280d9;color: #fff;',
					bombtn1_sls: 'color: #0f5195;background-color: #fadca0;',
					bombtn2_sls: 'color: #194a5d;background-color: #fff;',
				},
				shuju1: { //美团商超颜色
					backgroundColor: '#12c293',
					bgc: 'background-color:#4edba6',
					top_bg: '../../static/ele2_bg_hb.jpg',
					dh_bg: '../../static/ele2_ydl.jpg',
					topbtn_sls: 'background-color: #11c296;color: #fff;',
					bombtn1_sls: 'color: #0f5195;background-color: #fadca0;',
					bombtn2_sls: 'color: #194a5d;background-color: #fff;',
				},
				isshow_share: false,
				is_pay:0,
			}
		},
		computed: {
			appInfo() {
				return this.$store.state.appInfo
			}
		},
		onShow(e) {
			this.current = this.$store.state.ele_currentid
			this.change(this.current)
			this.is_pay = this.appInfo.is_pay
		},
		onLoad() {
			this.is_pay = this.appInfo.is_pay
		},
		methods: {
			//打开分享图文
			share_img_click() {
				this.isshow_share = true
			},
			// 关闭
			clooseShare() {
				this.isshow_share = false
			},

			// 复制到剪切板
			cp_clipboard() {
				uni.setClipboardData({
					data: this.appInfo.share_content_ele,
					success: function() {
						uni.showToast({
							title: '内容已复制'
						})
						console.log('剪切板内容设置成功');
					}
				});
			},

			// 切换
			change(index) {
				this.current = index;
				this.$store.commit('setele_currentid', index);
				if (this.current == 0) {
					this.background.backgroundColor = this.shuju0.backgroundColor
					this.zt_bg = this.shuju0
				} else {
					this.background.backgroundColor = this.shuju1.backgroundColor
					this.zt_bg = this.shuju1
				}
				this.getactivi()
			},
			// 数据请求
			getactivi() {

				if (!this.current_data[this.current].ewm) {
					uni.showLoading({
						title: '加载中',
						mask: true
					})
					const that = this
					let data = {
						activity_material_id: this.list[this.current].activity_material_id
					}
					this.$http.index.getItemLink(data)
						.then(res => {
							console.log('饿了么获取', res);
							that.$set(that.current_data[that.current], 'ewm', res.data.data.wx_qrcode_url)
							that.$set(that.current_data[that.current], 'url', res.data.data.wx_miniprogram_path)
							uni.hideLoading()
						})
					uni.hideLoading();
				}

			},
			//小程序跳转
			jump() {
				uni.navigateToMiniProgram({
					appId: 'wxece3a9a4c82f58c9',
					path: this.current_data[this.current].url
				})
				console.log('我点击了跳转');
			},
		},
	}
</script>

<style scoped lang="scss">
	.meituan {
		// height: 100vh;

		.content {
			.top {
				width: 750rpx;

				image {
					width: 100%;
					vertical-align: bottom;
				}
			}

			.center {
				background-color: #fff;
				width: 650rpx;
				margin: 0 auto;
				padding-bottom: 50rpx;
				border-radius: 20rpx;
				text-align: center;

				.cen-top {
					padding: 20rpx;
					border-bottom: dashed 1px rgba($color: #ccc, $alpha: 1);
					position: relative;

					image {
						width: 100%;
					}

					.y {
						width: 60rpx;
						height: 60rpx;
						position: absolute;
						bottom: 0;
						border-radius: 50%;
					}

					.y1 {
						left: 0;
						transform: translate(-50%, 50%);
					}

					.y2 {
						right: 0;
						transform: translate(50%, 50%);
					}

				}

				.cen-cen {
					margin: 40rpx 0 20rpx;

					image {
						width: 340rpx;
						height: 340rpx;
					}
				}

				.cen-bottom {
					width: 550rpx;
					margin: 10rpx auto 0;
					font-size: 42rpx;
					height: 100rpx;
					line-height: 100rpx;
					text-align: center;
					border-radius: 100rpx;
				}


			}

			.bottom {
				width: 650rpx;
				margin: 30rpx auto 0;
				padding-bottom: 100rpx;

				.btn {
					view {
						width: 47%;
						text-align: center;
						line-height: 80rpx;
						font-size: 36rpx;
						letter-spacing: 4rpx;
						border-radius: 10rpx;
					}

				}

				.bttext {
					color: #fff;
					line-height: 50rpx;
					margin-top: 40rpx;

					text {
						color: rgb(236, 76, 21)
					}
				}
			}
		}

	}

	.slot-wrap {
		display: flex;
		align-items: center;
		width: 750rpx;

		.center {
			width: 300rpx;
			margin:  0 auto;
		}

	}
</style>


================================================
FILE: pages/index/child1.vue
================================================
<template>
	<view class="child">
		<text>
			<text class="boldccc">怎样用最少的钱,吃到KFC?
				1,肯德基APP</text>
			如果你是第一次登陆
			<text class="boldccc">任意消费后,能免费得到一杯拿铁</text>
			免费送的,不拿白不拿啊~
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/1.jpg" mode="widthFix"></image>
		
		<text>
			除了免费咖啡,还有皮蛋瘦肉粥
			只能选一样,你可以根据自己喜欢去选择
			<text class="boldccc">优惠券就在“我的卡包”里
				自领券日起,7日内有效</text>
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/2.jpg" mode="widthFix"></image>
		
		<text>
			<text class="boldccc">连续签到7天,吃免费葡挞</text>
			泊这个活动每个月都不同的
			下次就可能换成咖啡了
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/3.jpg" mode="widthFix"></image>
		
		<text>
			记得平时多积累K金
			消费时出示你的会员码即可
			<text class="boldccc">每消费1元可以获得100K金</text>
			APP上,还可兑换土豆泥,鸡块、薯条呢
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/4.jpg" mode="widthFix"></image>
		
		<text>
			<text class="boldccc">2,万能的淘宝</text>
			<text class="boldccc">①搜索关键词:肯德基优惠券</text>
			(藏在很下面,要手指不断往下翻)
			某宝有多便宜?
			原价7.5元1只的葡挞
			5.5元就可以买到2个
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/5.jpg" mode="widthFix"></image>
		
		<text>
			有多少吃货着迷于
			KFC的蛋挞不能自拔的?
			我就是其中一一个!
			<text class="boldccc">
				简直就是良心之作啊,奶味浓香
				还蛋液嫩滑,蛋挞亮酥脆得心都要化了
			</text>
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/6.jpg" mode="widthFix"></image>
		
		<text>
			使用方法很简单
			下单后,商家会秒回你链接
			<text class="boldccc">
				凭着条形码到店即可,仅限当天使用哦
			</text>
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/7.jpg" mode="widthFix"></image>
		
		<text>
			同样的,还有4.5元吃早餐大法
			[冬菇滑鸡粥+太阳蛋]
			<text class="boldccc">
				②搜索关键词:肯德基宅急送免运费
			</text>
			(藏在很下面,需要手指不断往下翻)
			
			宅急送的运费高达9元
			但在某宝上,只要1元拍下
			<text class="boldccc">
				就能得到一个免运费的代码
			</text>
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/8.jpg" mode="widthFix"></image>
		
		<text>下单时输入代码即可使用</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/9.jpg" mode="widthFix"></image>
		


		<text>
			<text class="boldccc">
				③搜索关键词:肯德基50元代金券
			</text>
			
			40元就能买到50元代金券
			如果刚好买到50元的商品,<text class="boldccc">相当于打个8折</text>
			同样的,15元能买到20元代金券
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/10.jpg" mode="widthFix"></image>
		

		<text>
			<text class="boldccc">
				3,隐藏秘密的原味鸡
			</text>
			
			KFC的原味鸡主要有4个部位
			鸡胸、鸡腿、膀肋、鸡翅
			不喜欢吃鸡胸肉?
			
			<text class="boldccc">和店员说明即可,都会帮你换过来</text>
			才不要花钱吃自己不喜欢的肉呀~
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/11.jpg" mode="widthFix"></image>
		

		<text>
			吃鸡腿肉就是爽
			那个汁呀,都在嘴里
			都是嫩嫩的肉~
		</text>
		<image src="https://waimai.ilanchong.cn/static/child/1/11.jpg" mode="widthFix"></image>
		
		<text>
			都get到了吗? 484很简单~
			主动开口的孩纸,才配有最好吃的肉
		</text>
	</view>
</template>

<script>
</script>

<style lang="scss" scoped>
	.child {
		font-size: 32rpx;
		line-height: 60rpx;
		padding:50rpx 12rpx;

		.boldccc {
			display: block;
			font-weight: bold;
			color: #626262;
		}

		image {
			width: 100%;
		}
	}
</style>


================================================
FILE: pages/index/child2.vue
================================================
<template>
	<view class="child">
		<view>吃奈雪的人都知道</view>	
		<view>茶饮动辄就30+,欧包20+</view>	
		<view>如今的装逼成本,越来越高。</view>	
		<view class="m4">但其实我想告诉你</view>	
		<view>只要方法用对,也不一定贵</view>	
		<view class="m4 u-font-xl boldccc">现在就教你,7.5元吃他们家的欧包!</view>	
		<view class="m4">而这个隐藏优惠</view>	
		<view>	你不问,-般员工都不会告诉你的!</view>
		<view>但当你买单了,他们才悄悄给打折</view>	
		<view class="m4">我当时差点没忍住惊呼!</view>	
		<view class="  boldccc">2个欧包,总共40元</view>	
		<view class="  boldccc">可我只给了15元! !</view>	
		
		<image src="https://waimai.ilanchong.cn/static/child/2/1.jpg" mode="widthFix"></image>
		<view>问为什么</view>	
		<view>员工才会小心翼翼的回答</view>	
		<view>原来,奈雪<text class="  boldccc">每晚9点后,有时9点半</text></view>	
		<view >会根据当天情况,决定是否打折的!</view>	
		
		<image src="https://waimai.ilanchong.cn/static/child/2/2.jpg" mode="widthFix"></image>

		<view>也就是说,只要当天9点后</view>	
		<view class="  boldccc">还剩下很多欧包,就会出现5折优惠!</view>	
		
		<image src="https://waimai.ilanchong.cn/static/child/2/3.jpg" mode="widthFix"></image>
		
		
		<view class=" m4">我那次去的新店</view>
		<view>知道的人还不多,当晚剩余的欧包巨多</view>
		<view>于是,不止5折了,还减5元</view>
		<view>优惠力度劲足,厉害了!</view>
		
		<view class=" m4">但为避免误会</view>
		<view  class=" boldccc">最好每次去,都先问一下店员</view>
		<view>有的话,- -般都会小声BB告诉你的</view>
		<view class=" m4">亲身经历,说的都是干货!</view>

		
	</view>
</template>

<script>
</script>

<style lang="scss" scoped>
	.child {
		font-size: 32rpx;
		line-height: 60rpx;
		padding:60rpx 14rpx;

		.boldccc {
			display: block;
			font-weight: bold;
			color: #626262;
		}

		image {
			width: 100%;
		}
		.m4{
			margin-top: 50rpx;
		}
	}
</style>


================================================
FILE: pages/index/index.vue
================================================
<template>
	<page-meta background-color-top="#f33f5c" background-color="#FFFFFF"></page-meta>
	<view class="container">

		<!-- #ifdef H5 -->
		<u-navbar :is-back="false" :title="appInfo.app_name" title-color="#fff" :background="background" :border-bottom="false"></u-navbar>
		<!-- #endif -->

		<view class="my_bg"></view>
		<view class="ho_swiper">
			<u-swiper :list="swiper_list" border-radius="10" name="img" bgColor="#fff" height="250" img-mode="widthFix"></u-swiper>
		</view>


		<view class="coupon" ref="coupon">

			<view class="tabs flex justify-around">
				<view class="tabs-item" @click="jump(projectList[2],1)">
					<view>
						<image src="../../static/tub1.png" mode=""></image>
					</view>
					<view>饿了么果蔬</view>
				</view>
				<view class="tabs-item" @click="jump(projectList[1],1)">
					<view>
						<image src="../../static/tub2.png" mode=""></image>
					</view>
					<view>美团商超</view>
				</view>
				<view class="tabs-item" @click="share_img_click">
					<view>
						<image src="../../static/tub3.png" mode=""></image>
					</view>
					<view>发送图文</view>
				</view>
				<label for="share">
					<view class="tabs-item">
						<view>
							<image src="../../static/tub4.png" mode=""></image>
						</view>
						<view>分享好友</view>
					</view>
				</label>
			</view>
			<button hidden id="share" type="default" open-type="share"></button>


			<view class="item" v-for="(v, i) in projectList" :key="i" @click="jump(v)">
				<view class="top flex align-center justify-between">
					<view class="left">
						<view class="title">{{v.title}}</view>
						<view class="info flex justify-start">
							<view class="price"><text class="p1">{{v.price}}</text>元</view>
							<view class="number">今日仅剩{{v.number}}个</view>
						</view>
						<view class="y y1"></view>
						<view class="y y2"></view>
					</view>
					<view class="right">免费领取</view>
				</view>

				<view class="logotext logotext2" v-if=" v.platform == 'meituan'">美团<br />外卖</view><!-- 左上角背景 -->
				<view class="logotext logotext2" v-if="v.platform == 'meituancard'">美团<br />信用卡</view>
				<view class="logotext logotext1" v-if="v.platform == 'ele'">饿了么</view><!-- 左上角背景 -->
				<view class="logotext logotext1" v-if="v.platform == 'elecard'">饿了么</view><!-- 左上角背景 -->
				
				<view class="logobg logobg2" v-if=" v.platform == 'meituan'">
					<image src="../../static/mtlogobg.png" mode=""></image>
				</view><!-- 左下角背景 -->
				
				<view class="logobg logobg2" v-if=" v.platform == 'meituancard'">
					<image src="../../static/mtlogobg.png" mode=""></image>
				</view><!-- 左下角背景 -->
				
				<view class="logobg logobg1" v-if=" v.platform == 'ele'">
					<image src="../../static/elmlogobg.png" mode=""></image>
				</view><!-- 左下角背景 -->
				
				<view class="logobg logobg1" v-if=" v.platform == 'elecard'">
					<image src="../../static/elmlogobg.png" mode=""></image>
				</view><!-- 左下角背景 -->
			</view>

			<share-img :bgImg="appInfo.poster_bg" :ewmImg="ewmImg" :isshow="isshow_share" @cloose_share_img="clooseShare" v-if="isshow_share"></share-img>
			
			<share-img :bgImg="mtcard_img" :isshow="ismtcard_show_share" @cloose_share_img="clooseShare" v-if="ismtcard_show_share"></share-img>
		
			<share-img :bgImg="elecard_img" :isshow="iselecard_show_share" @cloose_share_img="clooseShare" v-if="iselecard_show_share"></share-img>
		</view>
		
		
		<!-- 电影部分 -->
		<view class="movie">
			<view class="movie-head">
				<view class="movie-title">
					热映电影
				</view>
				<view class="movie-count">
					全部46部
				</view>
			</view>
			<view class="movie-list">
				<view class="item">
					<image class="cover" src="https://lanchong.oss-cn-beijing.aliyuncs.com/waimai/1.jpg" mode=""></image>
					<view class="name">
						寻龙传说
					</view>
					<view class="buy">
						已售空
					</view>
				</view>
				<view class="item">
					<image class="cover" src="https://lanchong.oss-cn-beijing.aliyuncs.com/waimai/2.png" mode=""></image>
					<view class="name">
						无依之地
					</view>
					<view class="buy">
						已售空
					</view>
				</view>
				<view class="item">
					<image class="cover" src="https://lanchong.oss-cn-beijing.aliyuncs.com/waimai/3.png" mode=""></image>
					<view class="name">
						唐人街探案3
					</view>
					<view class="buy">
						已售空
					</view>
				</view>
				<view class="item">
					<image class="cover" src="https://lanchong.oss-cn-beijing.aliyuncs.com/waimai/4.jpg" mode=""></image>
					<view class="name">
						送你一朵小红花
					</view>
					<view class="buy">
						已售空
					</view>
				</view>
			</view>
		</view>
		
		<view v-for="(item,index) in ad_list" :key="item.id">
			<view class="ad-view" v-if="item.img" v-on:click="webview(item.url)">
				<image :src="item.img"></image>
			</view>
		</view>

	</view>
</template>

<script>
	import shareImg from '../../components/share_img/share_img.vue'
	export default {
		components: {
			shareImg
		},
		data() {
			return {
				// #ifdef H5
				background: {
					backgroundColor: '#f33f5c'
				},
				// #endif
				swiper_list: [], //banner图列表
				projectList: [
					{
						title: '美团外卖红包',
						price: '48',
						number: '102',
						platform: 'meituan',
						path: '/pages/meituan/meituan'
					},
					{
						title: '天天减6元,周周享五折',
						price: '6',
						number: '57',
						platform: 'meituancard',
						path: '/pages/meituan/meituan'
					},
					{
						title: '饿了么外卖红包',
						price: '66',
						number: '237',
						platform: 'ele',
						path: '/pages/ele/ele'
					},
					{
						title: '天天扫码活动',
						price: '10',
						number: '320',
						platform: 'elecard',
						path: '/pages/ele/ele'
					},
					
				], //列表
				lv_1_id: null,
				isshow_share: false,
				ismtcard_show_share:false,
				iselecard_show_share:false,
				mtcard_img:'https://cps.open-shop.cn/img/1622012673265.png',
				elecard_img:'https://cps.open-shop.cn/img/k7vXsdQxmI7zItg67rj6V1kSgyvkJJ.jpg',
				ewmImg: '', //推广二维码
				ad_list:[], //ad图列表
			};
		},
		computed: {
			userInfo() {
				return this.$store.state.userInfo
			},
			scene() {
				return this.$store.state.scene
			},
			appInfo() {
				if(this.$store.state.appInfo && this.$store.state.appInfo.app_name){
					uni.setNavigationBarTitle({
						title:this.$store.state.appInfo.app_name
					})
				}
				return this.$store.state.appInfo
			}
		},
		onLoad(e) {
			const that = this
			let is_rodom = uni.getStorageSync("rodom_num");
			
			if (!is_rodom) {
				this.assignment()
			} else {
				let assig = JSON.parse(is_rodom)
				if ((new Date()).getTime() - assig.timestamp > 60 * 60 * 1000) {
					this.assignment()
				} else {
					this.$set(this.projectList[1], 'number', assig.meituan_num)
					this.$set(this.projectList[2], 'number', assig.ele_num)

				}
				console.log('assig', assig, new Date().getTime());
			}

			uni.$once('binduser', () => { //绑定推荐人
				if (that.userInfo.lv_1_id == 0) {

					if (Object.keys(e).length > 0) {
						if (e.scene) { //扫描二维码参数
							let da = JSON.parse(that.$decode(decodeURIComponent(e.scene)))
							that.lv_1_id = da.lv_1_id
							console.log("扫描二维码初始加载", that.lv_1_id)
						}
						if (e.lv_1_id) { //分享卡片参数
							that.lv_1_id = e.lv_1_id
							console.log('分享卡片初始加载', that.lv_1_id)
						}
					} else { //不通过分享,无上级,不再绑定
						// #ifdef MP-WEIXIN
						let ruLaunch = wx.getLaunchOptionsSync()
						that.lv_1_id = ruLaunch.scene * -1;
						// #endif
						// #ifdef H5
						that.lv_1_id = -1;
						// #endif
						console.log("不通过分享初始加载", that.lv_1_id)
					}

					that.$http.user.bindPromoter({
							lv_1_id: that.lv_1_id
						})
						.then(res => {
							console.log('绑定', res)
						})
				}
			})

			this.getwxqrcode()
			//请求ad
			this.getAdlist()
			// 请球banner
			this.getBannerlist()
			
		},

		onShow() {
			this.$store.commit('setele_currentid', 0);
			this.$store.commit('setmeituan_currentid', 0);
		},
		// 分享好友
		onShareAppMessage(res) {

			if (res.from === 'button') { // 来自页面内分享按钮
				console.log(res.target)
			}
			if (this.userInfo && this.userInfo.id) {
				let lv_1_id = this.userInfo.id
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index?lv_1_id=${lv_1_id}`
				}
			} else {
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index`
				}
			}
		},
		// 分享朋友圈
		onShareTimeline(res) {
			if (res.from === 'button') { // 来自页面内分享按钮
				console.log(res.target)
			}
			if (this.userInfo && this.userInfo.id) {
				let lv_1_id = this.userInfo.id
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index?lv_1_id=${lv_1_id}`
				}
			} else {
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index`
				}
			}

		},
		methods: {
			jump(item, currenid) {
				console.log("item",item)
				if(item.platform == 'meituancard'){
					this.mtcard_show_share();
					return;
				}
				if(item.platform == 'elecard'){
					this.elecard_show_share();
					return;
				}
				console.log('currenid', currenid);
				if (currenid) {
					console.log('真');
					item.platform == 'ele' ? this.$store.commit('setele_currentid', currenid) : this.$store.commit(
						'setmeituan_currentid', currenid);
				} else {
					console.log('假');
					item.platform == 'ele' ? this.$store.commit('setele_currentid', 0) : this.$store.commit('setmeituan_currentid', 0);
				}
				uni.switchTab({
					url: item.path
				});
			},
			
			webview(url){
				uni.reLaunch({
					url:"url/url?url=" + url
				})
			},

			//打开分享图文
			share_img_click() {
				this.isshow_share = true
			},
			
			mtcard_show_share(){
				this.ismtcard_show_share = true
			},
			elecard_show_share(){
				this.iselecard_show_share = true
			},
			// 关闭
			clooseShare() {
				this.isshow_share = false
				this.ismtcard_show_share = false
				this.iselecard_show_share = false
			},
			// 获取分享图片
			getwxqrcode() {
				const that = this
				let istoken1 = uni.getStorageSync('token')

				if (!istoken1) { //判断有没有token,没有token,跳过本次请求,延时0.1s重新请求
					clearTimeout(that.ewmtimer);
					this.ewmtimer = setTimeout(() => {
						console.log("请求二维码")
						that.getwxqrcode();
					}, 500)
					return;
				}

				this.$http.user.getwxqrcode()
					.then(res => {
						console.log("生成的二维码",res.data.img)
						that.ewmImg = res.data.img
					})
			},


			// 获取banner
			getBannerlist() {
				const that = this
				that.$http.index.getBannerlist()
					.then(res => {
						console.log("请求banner成功", res)
						that.swiper_list = res.data
					})
					.catch(err => {
						console.log("请求失败", err)
					})
			},
			
			//ad
			getAdlist(){
				const that = this
				that.$http.index.getAdlist()
					.then(res => {
						console.log("请求ad成功", res)
						that.ad_list = res.data
					})
					.catch(err => {
						console.log("请求失败", err)
					})
			},
			
			// 赋值
			assignment() {
				let rodom_num = {
					meituan_num: this.random_number(100, 500),
					ele_num: this.random_number(100, 500),
					timestamp: (new Date()).getTime()
				}
				this.$set(this.projectList[1], 'number', rodom_num.meituan_num)
				this.$set(this.projectList[2], 'number', rodom_num.ele_num)
				uni.setStorageSync('rodom_num', JSON.stringify(rodom_num))
				console.log('rodom_num', rodom_num);
			},

			//随机函数
			random_number(start, end) {
				let differ = end - start
				let random = Math.random()
				return (start + differ * random).toFixed(0)
			},

			// 截取字符串加省略号
			showText(text, numSub) {
				if (text == null) {
					return "";
				}
				if (text.length > numSub) {
					return text.substring(0, numSub - 1) + "...";
				}
				return text;
			}
		}
	};
</script>

<style lang="scss">
	page {
		background-color: #f7f5f5;
	}

	.container {
		font-size: 14px;
		line-height: 24px;
		position: relative;
		
		// 电影
		.movie{
			display: block;
			width: 700rpx;
			margin: 20rpx auto;
			background-color: white;
			border-radius: 20rpx;
			padding: 20rpx;
			.movie-head{
				display: flex;
				width: 700rpx;
				
				.movie-title{
					width: 350rpx;
					text-align: left;
					font-size: 30rpx;
					font-weight: 700;
				}
				.movie-count{
					width: 310rpx;
					text-align: right;
					font-size: 24rpx;
				}
			}
			.movie-list::-webkit-scrollbar {
				display:none;
			}
			.movie-list{
				display: block;
				margin-top: 20rpx;
				white-space: nowrap;
				overflow-x: scroll;

				.item{
					display: inline-block;
					width: 170rpx;
					margin-right: 10rpx;
					.cover{
						display: blcok;
						width: 160rpx;
						height: 250rpx;
						border-radius: 8rpx;
					}
					.name{
						font-size: 28rpx;
						font-weight: 700;
						width: 170rpx;
						text-overflow: hidden;
						white-space: nowrap;
					}
					.buy{
						width: 120rpx;
						height: 54rpx;
						line-height: 54rpx;
						// background-color: #EA5858;
						 background-color: #d8d8d8;
						border-radius: 40rpx;
						color: white;
						font-size: 26rpx;
						text-align: center;
						
					}
				}
			}
		}

		.my_bg {
			position: absolute;
			top: 0;
			left: 0;
			width: 750rpx;
			padding: 30rpx 20rpx;
		}

		.my_bg:after {
			width: 100%;
			height: 90px;
			position: absolute;
			left: 0;
			top: 0;
			content: '';
			border-radius: 0 0 10% 10%;
			background-color: #f33f5c;
		}

		.ho_swiper {
			padding: 30rpx;
			background-color: #ffffff;

			image {
				width: 100%;
			}

		}


		.coupon {
			margin-top: 20rpx;

			.tabs {
				padding: 30rpx 0;
				background-color: #fff;
				text-align: center;

				.tabs-item {
					image {
						width: 90rpx;
						height: 90rpx;
					}
				}

			}

			.item {
				position: relative;
				background-color: #ffffff;
				margin: 30rpx;
				border-radius: 26rpx;
				padding: 20rpx;
				overflow: hidden;

				.top {
					height: 156rpx;
					position: relative;
					z-index: 99;

					.left {
						width: 400rpx;
						height: 100%;
						line-height: 50rpx;
						border-right: 1px dashed #ebebeb;
						padding: 16rpx 14rpx 0 0;
						position: relative;
						left: 70rpx;
						font-size: 24rpx;

						.title {
							font-size: 30rpx;
							margin-bottom: 6rpx;
							color: #000;
							font-weight: bold;
						}

						.price {
							color: #F0394B;
							margin-right: 4px;

							.p1 {
								font-size: 54rpx;
								font-weight: bold;
								margin-right: 6rpx;
								position: relative;
								top: 8rpx;
							}
						}

						.number {
							margin-top: 12rpx;
							color: #8f525d;
							padding: 0 10rpx;
							height: 48rpx;
							line-height: 48rpx;
							background-color: #ffe7e3;
							border-radius: 10rpx;
						}


						image {
							width: 52rpx;
							height: auto;
							vertical-align: bottom;
						}



						.y {
							position: absolute;
							right: 0;
							background-color: #f7f5f5;
							width: 40rpx;
							height: 40rpx;
							border-radius: 50%;
						}

						.y1 {
							transform: translate(50%, -100%);
							top: 0;
						}

						.y2 {
							transform: translate(50%, 100%);
							bottom: 0;
						}
					}

					.right {
						width: 170rpx;
						height: 66rpx;
						border-radius: 30rpx;
						background: linear-gradient(100deg, #ec6f43, #ea4a36);
						color: #fff;
						font-size: 28rpx;
						line-height: 66rpx;
						text-align: center;
					}


				}

				.logotext {
					position: absolute;
					top: -18rpx;
					left: -56rpx;
					width: 170rpx;
					height: 90rpx;
					font-size: 22rpx;
					text-align: center;
					padding-top: 34rpx;
					padding-right: 6rpx;
					transform: rotate(-45deg);

				}

				.logotext1 {
					color: #fff;
					background: linear-gradient(180deg, #43AAF9, #4997DC);
					// background-color: #5FA6F5;

				}

				.logotext2 {
					line-height: 28rpx;
					padding-top: 28rpx;
					color: #7d6c2e;
					font-weight: bold;
					background: linear-gradient(180deg, #FEF17A, #F2D727);
				}


				.logobg {
					position: absolute;
					z-index: 9;


					image {
						width: 90rpx;
						height: 90rpx;
					}
				}

				.logobg1 {
					bottom: -30rpx;
					left: 0rpx;
				}

				.logobg2 {
					transform: rotate(-10deg);
					opacity: 0.2;

					image {
						width: 180rpx;
						height: 180rpx;
					}

					bottom: -80rpx;
					left: -50rpx;

				}


			}
		}
		
		.bomlist{
			padding-bottom: 40rpx;
			.item{
				background-color: #fff;
				width: 700rpx;
				border-radius: 30rpx;
				margin: 30rpx auto 0;
				padding: 30rpx;
				image{
					    height: 340rpx;
					    border-radius: 40rpx;
				}
				.f19{
					font-size: 38rpx;
				}
				.f17_c88{
					 font-size: 34rpx;
					 color: #888;
				}
			}
		}
		


		.ad-view {
			background-color: #fff;
			width: 700rpx;
			border-radius: 30rpx;
			margin:30rpx auto;
			text-align: center;
			image {
				width: 100%;
				height: 360rpx;
				margin: 0 auto;
				text-align: center;
				border-radius: 30rpx;
			}
		}
	}
</style>


================================================
FILE: pages/index/url/url.vue
================================================
<template>
	<view>
		<web-view :src="url"></web-view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				url:'https://www.baidu.com'
			}
		},
		onLoad(res) {
			console.log("载入的数据",res)
			this.url = res.url;
		},
		methods: {
			
		}
	}
</script>

<style>

</style>


================================================
FILE: pages/meituan/meituan.vue
================================================
<template>
	<view class="meituan" :style="zt_bg.bgc">
		<u-navbar :is-back="false" :border-bottom="false" title=" " :background="background">
			<view class="slot-wrap">
				<view class="center">
					<u-tabs name="cate_name" count="cate_count" :list="list" :is-scroll="false" :current="current" @change="change"
					 bg-color="background.backgroundColor" inactive-color="#FFF" active-color="#FFF"></u-tabs>
				</view>
			</view>
		</u-navbar>

		<view class="content">
			<!-- 正文内容 -->
			<view class="top">
				<image :src="zt_bg.top_bg" mode="widthFix"></image>
			</view>
			<view class="center">
				<!-- 导购三标栏 -->
				<view class="cen-top">
					<image :src="zt_bg.dh_bg" mode="widthFix"></image>
					<view class="y y1" :style="zt_bg.bgc"></view>
					<view class="y y2" :style="zt_bg.bgc"></view>
				</view>
				<!-- 二维码 -->
				<view class="cen-cen">
					<image :src="current_data[current].ewm" :show-menu-by-longpress="true"></image>
				</view>
				<view v-if="is_pay">
				<view class="cen-bottom" :style="zt_bg.topbtn_sls" @click="jump">领红包点外卖</view>
				</view>
				<view v-else>
					<view class="cen-bottom" :style="zt_bg.topbtn_sls">长按二维码保存到相册</view>
				</view>
			</view>
			<view class="bottom">
				<view class="btn flex justify-between">
					<view :style="zt_bg.bombtn1_sls" @click="share_img_click">分享赚钱</view>
					<view :style="zt_bg.bombtn2_sls" @click="cp_clipboard">复制文案</view>
				</view>
				<view class="bttext">
					返利注意事项:<br />
					1.美团外卖,必须使用带有渠道专享标记的优惠卷才有返利<br />
					2.领券后在红包有效期内下单均有返利;<br />
					3.美团绑定的手机号,需与领券登录的手机号—致;<br />
					4.下单后第二天上午10点会有订单返现提醒<br />
					5.无论美团新老用户,每个手机号每天可领一次,红包金额随机发放;
				</view>
			</view>
		</view>

		<share-hb :bgImg="appInfo.poster_bg" :ewmImg="current_data[current].ewm" :isshow="isshow_share" @cloose_share_img="clooseShare"
		 v-if="isshow_share"></share-hb>



	</view>
</template>

<script>
	import shareHb from '../../components/share_hb2/share_hb2.vue'

	export default {
		components: {
			shareHb
		},
		data() {
			return {
				notitle: '',
				list: [{
					name: '外卖',
					actId: '2'
				}, {
					name: '商超',
					actId: '4'
				}],
				current: 0,
				background: {},
				zt_bg: {},
				current_data: [{
					ewm: '',
					url: ''
				}, {
					ewm: '',
					url: ''
				}],
				shuju1: { //美团商超颜色
					backgroundColor: '#5ddd24',
					bgc: 'background-color:#5ddd24',
					top_bg: '../../static/meituan1_bg_hb.jpg',
					dh_bg: '../../static/meituan1_ydl.jpg',
					topbtn_sls: 'background-color: #32b766;color: #fff;',
					bombtn1_sls: 'color: #9e7b45;background-image: linear-gradient( #fdf0c3,#f7c882);',
					bombtn2_sls: 'color: #45a61b;background-color: #fff;',
				},
				shuju0: { //美团外卖颜色
					backgroundColor: '#feac00',
					bgc: 'background-color:#fdc413',
					top_bg: '../../static/meituan2_bg_hb.jpg',
					dh_bg: '../../static/meituan2_ydl.jpg',
					topbtn_sls: 'background-color: #ff6100;color: #fff;',
					bombtn1_sls: 'color: #fff;background-color: #ff4401;',
					bombtn2_sls: 'color: #1c4c60;background-color: #fff;',
				},
				isshow_share: false,
				is_pay:0,
			}
		},
		computed: {
			appInfo() {
				return this.$store.state.appInfo
			}
		},
		onShow(e) {
			this.is_pay = this.appInfo.is_pay
			this.current = this.$store.state.meituan_currentid
			this.change(this.current)
		},
		onLoad() {
			this.is_pay = this.appInfo.is_pay
		},
		methods: {
			//打开分享图文
			share_img_click() {
				this.isshow_share = true
			},
			// 关闭
			clooseShare() {
				this.isshow_share = false
			},


			// 复制到剪切板
			cp_clipboard() {
				uni.setClipboardData({
					data: this.appInfo.share_content_meituan,
					success: function() {
						uni.showToast({
							title: '内容已复制'
						})
						console.log('剪切板内容设置成功');
					}
				});
			},

			// 切换
			change(index) {
				this.current = index
				this.$store.commit('setmeituan_currentid', index)
				if (this.current == 0) {
					this.background.backgroundColor = this.shuju0.backgroundColor
					this.zt_bg = this.shuju0
				} else {
					this.background.backgroundColor = this.shuju1.backgroundColor
					this.zt_bg = this.shuju1
				}
				this.getactivi()
			},
			// 数据请求
			getactivi() {

				if (!this.current_data[this.current].ewm) {
					uni.showLoading({
						title: '加载中',
						mask: true
					})
					const that = this
					let data = {
						actId: this.list[this.current].actId
					}
					this.$http.index.get_meituan_ewm(data)
						.then(res => {
							let ewmSrc = res.data;
							that.$set(that.current_data[that.current], 'ewm', ewmSrc)
							uni.hideLoading()
							console.log('美团获取二维码', ewmSrc);
						})
					this.$http.index.get_meituan_url({
							actId: this.list[this.current].actId,
							linkType: 4
						})
						.then(res => {
							that.$set(that.current_data[that.current], 'url', res.data)
							console.log('美团获取跳转链接', res);
						})
				}

			},
			//小程序跳转
			jump() {
				uni.navigateToMiniProgram({
					appId: 'wxde8ac0a21135c07d',
					path: this.current_data[this.current].url
				})
				console.log('我点击了跳转');
			},
		},
	}
</script>

<style scoped lang="scss">
	.meituan {
		// height: 100vh;

		.content {
			.top {
				width: 750rpx;

				image {
					width: 100%;
					vertical-align: bottom;
				}
			}

			.center {
				background-color: #fff;
				width: 650rpx;
				margin: 0 auto;
				padding-bottom: 50rpx;
				border-radius: 20rpx;
				text-align: center;

				.cen-top {
					padding: 20rpx;
					border-bottom: dashed 1px rgba($color: #ccc, $alpha: 1);
					position: relative;

					image {
						width: 100%;
					}

					.y {
						width: 60rpx;
						height: 60rpx;
						position: absolute;
						bottom: 0;
						border-radius: 50%;
					}

					.y1 {
						left: 0;
						transform: translate(-50%, 50%);
					}

					.y2 {
						right: 0;
						transform: translate(50%, 50%);
					}

				}

				.cen-cen {
					margin: 40rpx 0 20rpx;

					image {
						width: 340rpx;
						height: 340rpx;
					}
				}

				.cen-bottom {
					width: 550rpx;
					margin: 10rpx auto 0;
					font-size: 42rpx;
					height: 100rpx;
					line-height: 100rpx;
					text-align: center;
					border-radius: 100rpx;
				}


			}

			.bottom {
				width: 650rpx;
				margin: 30rpx auto 0;
				padding-bottom: 100rpx;

				.btn {
					view {
						width: 47%;
						text-align: center;
						line-height: 80rpx;
						font-size: 36rpx;
						letter-spacing: 4rpx;
						border-radius: 10rpx;
					}

				}

				.bttext {
					color: #fff;
					line-height: 50rpx;
					margin-top: 40rpx;

					text {
						color: rgb(236, 76, 21)
					}
				}
			}
		}

	}
	.slot-wrap {
		display: flex;
		align-items: center;
		width: 750rpx;

		.center {
			width: 300rpx;
			margin:  0 auto;
		}

	}
</style>


================================================
FILE: pages/user/binding.vue
================================================
<template>
	<view class="binding">
		<view class="bdsuccess" v-if="userInfo.tbk_r_id" >已绑定 {{userInfo.tbk_name}} 的饿了么账号</view>
		<view class="bdsuccess" v-else >请绑定饿了么账号</view>
		
		<view class="ewm_img">
			<image :src="'https://api.pwmqr.com/qrcode/create/?url='+encode_auth_url" :show-menu-by-longpress="true"></image>
		</view>
		<view class="content">
			【绑定步骤】</br>
			1.长按保存二维码到手机</br>
			2.打开饿了么,扫描二维码</br>
			3.点击授权,完成绑定</br>
		</view>
	</view>
</template>
<script>
	export default {
		data() {
			return {
				encode_auth_url: '', // 要生成的二维码值
			}
		},
		computed: {
			userInfo() {
				return this.$store.state.userInfo
			},
		},
		onLoad() {			
			uni.showLoading({
				title: '稍等一下'
			});
			this.getUrl()
		},
		methods: {
			getUrl(){
				const that = this
				this.$http.user.eleauth_url()
					.then(res => {
						console.log(res)
						uni.hideLoading()
						that.encode_auth_url = res.data.encode_auth_url
						
						
					})
			}

		},
	}
</script>

<style scoped lang="scss">
	.binding{
		.bdsuccess{
			    color: #00aaff;
			    margin-top: 50rpx;
			    font-size: 34rpx;
			    text-align: center;
		}
		.ewm_img {
			

			margin:  50rpx auto ;
			text-align: center;
			image{
				padding: 4rpx;
				border: 1px solid #000;
				width: 300rpx;
				height: 300rpx;
				vertical-align: middle;
			}
		}
		.content{
			padding: 40rpx;
			line-height: 70rpx;
			font-size: 36rpx;
		}
	}
</style>


================================================
FILE: pages/user/order.vue
================================================
<template>
	<view>
		<view class="order">
			<!-- #ifdef H5 -->
			<u-navbar back-icon-color="#fff" title="我的订单" title-color="#fff" :background="background" :border-bottom="false"></u-navbar>
			<!-- #endif -->

			<!-- 导航tabs -->
			<view class="tabs-box1">
				<u-tabs activeColor="#f29100" :list="list" :is-scroll="false" :current="current" @change="clitbs"></u-tabs>
			</view>

			<navigator v-if="userInfo.tbk_r_id == 0" url="/pages/user/binding">
				<view class="tis" v-if="userInfo.tbk_r_id == 0">因未进行账号绑定,饿了么订单无法返佣</view>
			</navigator>

			<!-- 内容 -->
			<view>
				<!-- 总 -->
				<view class="content-title flex justify-around u-flex-1">
					<view>
						<view>总订单</view>
						<view>{{userInfo.count_order ||'0'}}</view>
					</view>
					<view>
						<view>待结算收益</view>
						<view>{{userInfo.disavailable_money || '0' | zeroize}}</view>
					</view>
					<view>
						<view>已结算收益</view>
						<view>{{userInfo.sum_order_money || '0' | zeroize}}</view>
					</view>
				</view>

				<!-- 列表 -->
				<view class="page-box" v-if="dataList.length!=0">
					<!-- 有订单的情况 -->

					<view class="order_content flex justify-between" v-for="(item, index) in dataList" :key="res.id">
						<view class="left flex align-center">
							<image v-if="item.platform == 'meituan'" src="../../static/mt-logo.png" mode="aspectFill"></image>
							<image v-if="item.platform == 'ele'" src="../../static/ele-logo.png" mode="aspectFill"></image>
						</view>
						<view class="right u-flex-1">
							<view>{{item.smstitle}}</view>
							<view class="tj">用户:{{item.promoter_name}}</view>
							<view class="time">
								{{item.add_time}}下单
								<text class="cr" v-if="item.status == 1 && item.platform == 'ele'">已付款</text>
								<text class="cr" v-if="item.status == 1 && item.platform == 'meituan'">已付款</text>
								<text class="cr" v-if="item.status == 8">已完成</text>
								<text class="cr" style="background-color: #C8C9CC;" v-if="item.status == 9">已退款</text>
							</view>
							<view class="right_item flex justify-around">
								<view>
									<view class="r_i_c">订单金额</view>
									<view>¥{{item.direct | zeroize}}</view>
								</view>
								<view>
									<view class="r_i_c">订单佣金</view>
									<view>¥{{item.my_commission | zeroize}}</view>
								</view>
								<view>
									<view class="r_i_c">订单平台</view>
									<view v-if="item.platform == 'meituan'">美团</view>
									<view v-if="item.platform == 'ele'">饿了么</view>
								</view>
							</view>
						</view>
						<view class="bj bj_w" v-if="item.commission_status == 1 && item.status != 9">待结算</view>
						<view class="bj" v-if="item.commission_status == 2 && item.status != 9">已结算</view>
					</view>


					<!-- //加载提示 -->
					<view>
						<u-loadmore :status="loadStatus[current]" bgColor="#f2f2f2"></u-loadmore>
					</view>

				</view>
				<!-- 没订单的情况 -->
				<view class="page-box" v-else>
					<view class="centre">
						<view class="explain">
							您还没有相关的订单数据
							<view class="tips">可以去看看有那些想买的</view>
						</view>
						<navigator url="/pages/index/index" open-type="switchTab">
							<view class="btn">随便逛逛</view>
						</navigator>
					</view>
				</view>
			</view>


		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				// #ifdef H5
				background: {
					backgroundColor: '#f33f5c'
				},
				// #endif
				dataList: [],
				list: [{
						name: '全部',
						id: 0
					},
					{
						name: '待结算',
						id: 1
					},
					{
						name: '已结算',
						id: 2
					}
				], //tabs列表
				current: 0, //当前选中tabs
				page: 1,
				loadStatus: ['loadmore', 'loadmore', 'loadmore'],
			};
		},
		computed: {
			userInfo() {
				return this.$store.state.userInfo
			}
		},
		onLoad() {
			this.getOrderList();
		},
		// 下拉刷新事件
		onPullDownRefresh() {

			this.getOrderList();
		},
		// 上拉加载事件
		onReachBottom() {
			console.log("触发了到底")
			this.getOrderList();
			this.loadStatus[this.current] = 'loading';

		},
		methods: {
			// 页面数据
			getOrderList() {
				const that = this
				uni.showLoading({
					title: '获取订单中'
				});
				const data = {
					page: this.page,
					status: 0,
					commission_status: this.list[this.current].id
				}
				this.$http.user.getOrderList(data)
					.then(res => {
						console.log(res)
						uni.stopPullDownRefresh();
						if (res.data.length != 0) {
							that.loadStatus[that.current] = 'loadmore';
							that.page++;
							that.dataList = [...that.dataList, ...res.data]
						} else {
							that.loadStatus[that.current] = 'nomore';
						}
						uni.hideLoading()
					})
					.catch(err => {
						console.log(err)
						uni.hideLoading()
					})
			},

			// tab栏切换
			clitbs(index) {
				this.current = index;
				this.page = 1;
				this.dataList = []
				this.getOrderList()
			},
		},
		filters: {
			zeroize(val) {
				return parseFloat(val).toFixed(2)
			}
		}
	};
</script>


<style lang="scss" scoped>
	.order {
		// display: flex;
		// flex-direction: column;
		height: calc(100vh - var(--window-top));
		background-color: $uni-bg-color;
		width: 100%;

		.tabs-box1 {
			color: #303133;
			position: sticky;
			top: var(--window-top);
			z-index: 99;
			background-color: #fff;
		}

	}

	.tis {
		width: 100%;
		height: 80rpx;
		color: #fff;
		letter-spacing: 4rpx;
		background-color: rgba($color: #000000, $alpha: 0.4);
		line-height: 80rpx;
		font-size: 28rpx;
		text-align: center;
	}

	.order_content {
		background-color: #ffffff;
		margin: 20rpx 0;
		border-radius: 20rpx;
		padding: 20rpx;
		font-size: 28rpx;
		overflow: hidden;
		position: relative;

		.bj {
			position: absolute;
			right: -55rpx;
			top: 24rpx;
			width: 200rpx;
			height: 40rpx;
			text-align: center;
			background-color: #2B85E4;
			color: #fff;
			transform: rotate(45deg);
		}

		.bj_w {
			background-color: #888;
			color: #fff;

		}

		.left {
			image {
				width: 200rpx;
				height: 200rpx;
				border-radius: 10rpx;
			}
		}

		.right {
			margin-left: 20rpx;
			font-size: 26rpx;

			.time {
				color: #C0C0C0;
				margin: 16rpx 0;

				.cr {
					text-align: center;
					margin-left: 10rpx;
					background-color: #FF642D;
					padding: 4rpx 10rpx;
					border-radius: 20rpx;
					color: #fff;
				}
			}

			.tj {
				margin: 10rpx 0;
			}

			.right_item {
				text-align: left;

				.r_i_c {
					margin-bottom: 10rpx;
					color: #C0C0C0;
				}

				>view {
					flex: 1;
				}

			}

		}

	}

	.centre {
		text-align: center;
		margin: 200rpx auto;
		font-size: 32rpx;

		.tips {
			font-size: 24rpx;
			color: #999999;
			margin-top: 20rpx;
		}

		.btn {
			margin: 80rpx auto;
			width: 200rpx;
			border-radius: 32rpx;
			line-height: 64rpx;
			color: #ffffff;
			font-size: 26rpx;
			background: linear-gradient(270deg, rgba(249, 116, 90, 1) 0%, rgba(255, 158, 1, 1) 100%);
		}
	}

	.content-title {
		line-height: 50rpx;
		padding-top: 20rpx;
		// background-color: rgba($color: #999, $alpha: 0.1);
		text-align: center;

		>view {
			flex: 1;
		}
	}
</style>


================================================
FILE: pages/user/team.vue
================================================
<template>
	<view class="team">
		<!-- #ifdef H5 -->
		<u-navbar back-icon-color="#fff" title="我的团队" title-color="#fff" :background="background" :border-bottom="false"></u-navbar>
		<!-- #endif -->
		
		<!-- 导航 -->
		<view class="tabs-box1">
			<u-tabs activeColor="#f29100" :list="list" :is-scroll="false" :current="current" @change="clitbs"></u-tabs>
		</view>

		<!-- 列表 -->
		<view class="page-box">
			<!-- 有订单的情况 -->
			<view class="tb1 flex justify-around align-center">
				<view>用户信息</view>
				<view>邀请时间</view>
			</view>

			<view class="team_content flex justify-between align-center" v-for="(item, index) in dataList" :key="res.id">
				<view class="tm_left flex justify-start align-center">
					<view>
						<image :src="item.avatar" mode=""></image>
					</view>
					<view class="u-m-l-20">
						<view class="usertitle ellipsis">{{item.username}}</view>
						<view class="userid">id:{{item.id}}</view>
					</view>
				</view>
				<view class="usertime u-font-14">
					{{item.join_team_time}}
				</view>

			</view>

			<!-- //加载提示 -->
			<view>
				<u-loadmore :status="loadStatus[current]" bgColor="#f2f2f2"></u-loadmore>
			</view>

		</view>



	</view>
</template>

<script>
	export default {
		name: 'team',
		data() {
			return {
				// #ifdef H5
					background: {
						backgroundColor:'#f33f5c'
					},
				// #endif
				
				dataList: [],
				list: [{
						name: '直接团队',
						id: 1
					},
					{
						name: '间接团队',
						id: 2
					}
				], //tabs列表
				a: '直接团队',
				b: '间接团队',
				current: 0, //当前选中tabs
				page: 1,
				loadStatus: ['loadmore', 'loadmore'],
			};
		},
		onLoad() {
			this.getTeamsList()
		},

		// 上拉加载事件
		onReachBottom() {
			console.log("触发了到底")
			// if (this.loadStatus[this.current] == 'nomore') {
			// 	uni.showToast({
			// 		title: '没有更多了'
			// 	});
			// 	return;
			// }
			this.loadStatus[this.current] = 'loading';
			this.getTeamsList();
			
		},
		methods: {

			// tab栏切换
			clitbs(index) {
				this.loadStatus[this.current] = 'loadmore';
				this.current = index;
				this.page = 1;
				this.dataList = []
				this.getTeamsList()
			},
			// 获取下级
			getTeamsList() {
								
				const that = this
				const data = {
					lv: this.list[this.current].id,
					page: this.page
				}
				
				this.$http.user.getTeamsList(data)
					.then(res => {
						if(res.data.list){
							that.page++;
							that.list[0].name = that.a + '(' + res.data.lv_1_count + ')'
							that.list[1].name = that.b + '(' + res.data.lv_2_count + ')'
							that.dataList = [...that.dataList, ...res.data.list]
							
							if (res.data.list.length < 20) {
								that.loadStatus[that.current] = 'nomore'
							}
						}
						console.log('获取下级', res)
					})
			},

		}
	}
</script>

<style scoped lang="scss">
	.team {
		height: calc(100vh - var(--window-top));
		background-color: $uni-bg-color;
		width: 100%;

		.tabs-box1 {
			color: #303133;
			position: sticky;
			top: var(--window-top);
			z-index: 99;
			background-color: #fff;
		}

		.page-box {
			.tb1 {
				background-color: #fff;
				font-size: 34rpx;
				padding: 20rpx 0;
			}

			.team_content {
				background-color: #fff;
				font-size: 28rpx;
				padding: 20rpx 40rpx 20rpx 60rpx;
				border-bottom: 1px solid rgba($color: #ccc, $alpha: 0.3);

				.tm_left {
					.usertitle {
						max-width: 260rpx;
						margin-top: -2px;
						font-size: 26rpx;
					}

					.userid {
						margin-top: 3px;
						font-size: 26rpx;
						color: #878787;
					}

					image {
						width: 80rpx;
						height: 80rpx;
					}
				}


				.usertime {
					color: #878787;
				}
			}
		}

	}
</style>


================================================
FILE: pages/user/user.vue
================================================
<template>
	<page-meta background-color-top="#f33f5c" background-color="#FFFFFF"></page-meta>
	<view class="my">
		<!-- 导航头部 -->
		<u-navbar :is-back="false" title="个人中心" title-color="#fff" :background="background" :border-bottom="false"></u-navbar>

		<view class="my_bg"></view>


		<!-- 头部个人信息栏 -->
		<view class="flex user-box topinfo">
			<view class="head-picture u-m-r-20">
				<!-- #ifdef MP-WEIXIN -->
				<!-- <image :src="userInfo.avatar"></image> -->
				<open-data type="userAvatarUrl"></open-data>
				<!-- #endif -->
				<!-- #ifdef H5 -->
				<image :src="userInfo.avatar"></image>
				<!-- #endif -->
			</view>
			<view class="u-flex-1">
				
				<!-- #ifdef MP-WEIXIN -->
				<open-data type="userNickName"></open-data>
				<!-- #endif -->
				
				<!-- #ifdef H5 -->
				<view class="u-font-14 u-p-t-10">{{ userInfo.username || "0758923"}}</view>
				<!-- #endif -->
				
			<!-- 	<view v-if="appid!='wxf86d40ecd6914158'" class="u-font-12 u-p-t-10">ID:{{userInfo.id}}</view>
				<view v-if="appid=='wxf86d40ecd6914158'" class="u-font-12 u-p-t-10">微信公众号【外卖很忙】ID:{{userInfo.id}}</view> -->
				<view class="u-font-12 u-p-t-10">【我的外卖人生】ID:{{userInfo.id}}</view>
			</view>
		</view>
		<!-- 功能区域 -->
		<view class="fc">
			<!-- 中部余额表 -->

			<view class="price">
				<view class="top flex justify-between" style="border-bottom: 4px solid rgba($color:#ccc, $alpha:0.7);">
					<view>
						<view class="u-font-12">账户余额(元)</view>
						<view class="u-m-t-10">{{userInfo.available_money||'0'}}</view>
					</view>
					
					<view v-if="is_pay">
						<view class="right-1" @click="jumpwallet">提现</view>
					</view>
				</view>
				<view class="bottom flex justify-between">
					<view>
						<view class="u-font-12">待结算订单(单)</view>
						<view class="u-m-t-10">{{userInfo.count_pending_order || '0'}}</view>
					</view>
					<view>
						<view class="u-font-12">待结算佣金(元)</view>
						<view class="u-m-t-10">{{userInfo.disavailable_money || '0' | zeroize}}</view>
					</view>
					<view>
						<view class="u-font-12">累计提现(元)</view>
						<view class="u-m-t-10">{{userInfo.sum_take_out_money || '0' | zeroize}}</view>
					</view>
				</view>
			</view>

			<view class="ho_share flex">
				<view @click="share_img_click" class="share">
					<view>
						<image src="../../static/share_img.png" mode="widthFix"></image>
					</view>
					<view>发送图文</view>
				</view>
				<view>
					<navigator v-if="appInfo.open_share == 1" url="./team">
						<view>
							<image src="../../static/td.png" mode="widthFix"></image>
						</view>
						<view>团队列表</view>
					</navigator>
				</view>
				<view>
					<label for="share">
						<view>
							<image src="../../static/share.png" mode="widthFix"></image>
						</view>
						<view>分享好友</view>
					</label>
				</view>

				<button hidden id="share" type="default" open-type="share"></button>
			</view>

			<!-- 个人功能栏 -->
			<view class="u-m-t-10 fclist">
				<u-cell-group>
					<navigator url="/pages/wallet/wallet?currentid=0" v-if="is_pay">
						<u-cell-item title="积分兑换" :title-style="{'margin-left':'20rpx','font-weight': 'bold'}">
							<u-icon slot="icon" name="duihuan" custom-prefix="custom-icon" color="#d51539" size="40"></u-icon>
						</u-cell-item>
					</navigator>
					<navigator url="./order">
						<u-cell-item title="订单业绩" :title-style="{'margin-left':'20rpx','font-weight': 'bold'}">
							<u-icon slot="icon" name="file-text-fill" color="#7F8DD5" size="40"></u-icon>
							<u-icon name="backspace" custom-prefix="custom-icon" size="30" color="#888888"></u-icon>
						</u-cell-item>
					</navigator>
					<navigator url="/pages/wallet/wallet" v-if="is_pay">
						<u-cell-item title="钱包明细" :title-style="{'margin-left':'20rpx','font-weight': 'bold'}">
							<u-icon slot="icon" name="qianbao" custom-prefix="custom-icon" color="#25b5da" size="40"></u-icon>
						</u-cell-item>
					</navigator>

					<navigator url="./binding">
						
						<u-cell-item title="账号绑定" :title-style="{'margin-left':'20rpx','font-weight': 'bold'}">
							<!-- <u-icon slot="icon" name="rmb-circle-fill"  color="#25b5da" size="40"></u-icon> -->
							<u-icon slot="icon" name="binding" custom-prefix="custom-icon" color="#25b5da" size="34"></u-icon>
						</u-cell-item>
					</navigator>

					<!-- #ifdef MP-WEIXIN -->
					<label for="contact">
						<u-cell-item title="我的客服" :title-style="{'margin-left':'20rpx','font-weight': 'bold'}">
							<u-icon slot="icon" name="weixin-fill" color="#15D26E" size="40"></u-icon>
						</u-cell-item>
					</label>
					<!-- #endif -->

					<u-cell-item title="福利社群" :title-style="{'margin-left':'20rpx','font-weight': 'bold'}" @click="onshow_group">
						<u-icon slot="icon" name="red-packet-fill" color="#d51539" size="40"></u-icon>
					</u-cell-item>


				</u-cell-group>
			</view>


			<!-- 隐藏按钮 -->
			<button hidden id="contact" type="default" open-type="contact" @getphonenumber="decryptPhoneNumber">联系客服</button>

		</view>

		<!-- #ifdef MP-WEIXIN -->
		<auth :isshow="isshow" :isauthuser="isauthuser" :isauthphone="isauthphone"></auth>
		<!-- #endif -->

		<share-img :bgImg="appInfo.poster_bg" :ewmImg="ewmImg" :isshow="isshow_share" @cloose_share_img="clooseShare" v-if="isshow_share"></share-img>

		<!-- 二维码弹出层 -->
		<template v-if="show_group">
			<view class="mask" @touchmove.stop.prevent="clear" @click.stop="clear">
				<view class="kf" @longpress='longpress'>
					<view class="ewm_bg" @longpress='longpress'>
						<image class="qrcode" src="../../static/1.png"></image>
					</view>
					<view class="content">

						<!-- <image class="qrcode" @longpress='longpress' :src="qrcode"></image> -->
						<image class="qrcode" :src="appInfo.official_account_qrcode" :show-menu-by-longpress="true" @longpress='longpress'></image>
						<view class="tips" style="color: #DB0E19;">长按保存图片到相册</view>
						<view class="close">
							<icon color='white' size="32" type="cancel" @click="show_group=false" />
						</view>
					</view>
				</view>

			</view>

		</template>


	</view>
</template>

<script>
	// #ifdef MP-WEIXIN
	import auth from '../../components/auth/login.vue'
	// #endif
	import shareImg from '../../components/share_img/share_img.vue'

	export default {
		name: 'user',
		components: {
			// #ifdef MP-WEIXIN
			auth,
			// #endif
			shareImg
		},
		data() {
			return {
				background: {
					// backgroundImage: 'linear-gradient(45deg, rgb(243, 63, 92), rgb(254, 107, 64))',
					backgroundColor: 'rgba(0,0,0,0)'
				},
				// #ifdef MP-WEIXIN
				isshow: false,
				isauthuser: false,
				isauthphone: false,
				// #endif
				show_group: false,
				ewmtimer: null,
				isshow_share: false,
				appid:'',		//小程序的appid
				ewmImg: '', //推广二维码
				is_pay:0,
			}
		},
		computed: {
			userInfo() {
				return this.$store.state.userInfo
			},
			appInfo() {
				return this.$store.state.appInfo
			}
		},
		onLoad() {
			const that = this
			uni.showLoading({
				title: '加载中'
			});
			
			this.appid=this.appInfo.appid
			this.is_pay = this.appInfo.is_pay
			
			// #ifdef MP-WEIXIN
			
			uni.$on('login', () => { //监听app login登录然后获取授权状态
				uni.getSetting({
					success(res) {
						let au = res.authSetting
						that.isauthuser = au['scope.userInfo'];
			
						if (!(that.isauthuser)) {
							that.isshow = true
						} else {
							that.isshow = false
							uni.$off('login')
						}
						console.log('用户授权', that.isshow)
					}
				})
			})
			// #endif

			this.getwxqrcode()

		},
		onShow() {
			uni.$emit('getuserinfo')
		},

		// 分享好友
		onShareAppMessage(res) {

			if (res.from === 'button') { // 来自页面内分享按钮
				console.log(res.target)
			}
			if (this.userInfo && this.userInfo.id) {
				let lv_1_id = this.userInfo.id
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index?lv_1_id=${lv_1_id}`
				}
			} else {
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index`
				}
			}
		},
		// 分享朋友圈
		onShareTimeline(res) {
			if (res.from === 'button') { // 来自页面内分享按钮
				console.log(res.target)
			}
			if (this.userInfo && this.userInfo.id) {
				let lv_1_id = this.userInfo.id
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index?lv_1_id=${lv_1_id}`
				}
			} else {
				return {
					title: this.appInfo.share_title,
					path: `/pages/index/index`
				}
			}

		},
		methods: {
			//打开分享图文
			share_img_click() {
				this.isshow_share = true
			},
			// 关闭
			clooseShare() {
				this.isshow_share = false
			},
			// 获取分享图片
			getwxqrcode() {
				const that = this
				let istoken1 = uni.getStorageSync('token')

				if (!istoken1) { //判断有没有token,没有token,跳过本次请求,延时0.1s重新请求
					clearTimeout(that.ewmtimer);
					this.ewmtimer = setTimeout(() => {
						console.log("请求二维码")
						that.getwxqrcode();
					}, 500)
					return;
				}
				// 海报显示小程序码
				this.$http.user.getwxqrcode()
					.then(res => {
						that.ewmImg = res.data.img
					})
					
				// //海报显示公众号二维码
				// this.$http.user.getOffQrcode()
				// 	.then(res => {
				// 		that.ewmImg = res.data.img
				// 	})
			},
			// 去提现跳转
			jumpwallet() {
				uni.navigateTo({
					url: '../wallet/wallet?currentid=2',
				});
			},
			onshow_group() {
				this.show_group = true
			},
			// 阻止冒泡
			clear(e) {
				// TODO nvue 取消冒泡
				e.stopPropagation()
			},
			//长按
			longpress() {
				var res = wx.getSystemInfoSync()
				if (res.platform != 'ios') {
					return
				}
				var that = this
				var data = this.ewmSrc
				uni.downloadFile({
					url: data, //获取需要保存的二维码
					success(res) {
						// 只要服务器有响应数据,就会把响应内容写入文件并进入 success 回调,业务需要自行判断是否下载到了想要的内容
						if (res.statusCode === 200) {
							uni.saveImageToPhotosAlbum({
								filePath: res.tempFilePath,
								success(res) {
									uni.showToast({
										title: '保存成功',
									})
								},
								fail(err) {
									console.log(err)
								}
							})

						}
					},
					fail(err) {
						console.log(err);
					}
				})

			},
		},
		filters: {
			zeroize(val) {
				return parseFloat(val).toFixed(2)
			}
		}
	}
</script>

<style lang="scss" scoped>
	.my {
		height: 100vh;
		background-color: $uni-bg-color;
		position: relative;

		.my_bg {
			position: absolute;
			top: 0;
			left: 0;
			width: 750rpx;
		}

		.my_bg:after {

			width: 100%;
			height: 450rpx;
			position: absolute;
			left: 0;
			top: 0;
			content: '';
			border-radius: 0 0 5% 5%;
			background-image: linear-gradient(110deg, rgb(243, 63, 92), rgb(254, 107, 64));
		}

		.topinfo {
			position: relative;
			z-index: 999;
			color: #fff;
			padding: 20rpx;

			.head-picture {
				height: 50px;
				width: 50px;
				margin-left: 20rpx;
				background: #fff;
				border: 5upx solid #fff;
				border-radius: 50%;
				overflow: hidden;

				image {
					height: 100%;
					width: 100%;

				}
			}

			.auth {
				width: 100rpx;
				height: 50rpx;
				padding-top: 6rpx;
				margin-top: 30rpx;
				text-align: center;
				color: #626262;
				border-radius: 50rpx;
				background-color: rgba($color: #fff, $alpha: 0.7);
			}


		}



		.fc {
			position: relative;
			// top: -150rpx;

			.price {
				color: rgb(222, 224, 203);
				background-image: linear-gradient(180deg, rgb(73, 73, 70), rgb(28, 30, 29));
				border-radius: 15rpx;
				padding: 40rpx 50rpx;
				margin: 10rpx 20rpx;
				font-size: 40rpx;
				box-shadow: 1px 1px 5px #C8C9CC;

				.bottom {
					margin-top: 40rpx;
				}

			}

			.ho_share {
				font-size: 28rpx;
				padding: 30rpx 0;
				margin: 16rpx 0;
				background-color: #ffffff;


				image {
					width: 60rpx;
					height: 60rpx;
					margin-bottom: 20rpx;
					vertical-align: middle;
					// margin-right: 20rpx;
				}

				&>view {
					flex: 1;
					text-align: center;
				}
			}

			.my-info-1 {
				background-color: #494949;
				color: #fff;
				border-top-left-radius: 15rpx;
				border-top-right-radius: 15rpx;
			}

			.my-info-2 {
				background-color: #494949;
				color: #fff;
				border-bottom-left-radius: 15rpx;
				border-bottom-right-radius: 15rpx;
			}

		}

		.fclist {
			// border-top: 4px solid rgba($color:#ccc, $alpha:0.7);
		}

		.right-1 {
			width: 170rpx;
			height: 60rpx;
			border-radius: 30rpx;
			margin: 0 auto;
			background: linear-gradient(90deg, #F6445D, #ec6f43);
			color: #fff;
			font-size: 28rpx;
			line-height: 60rpx;
			text-align: center;
		}


		.show_group {
			position: absolute;
			top: 0;
			left: 0;
			z-index: 999999;
			width: 100vw;
			height: 100vh;
			background-color: rgba($color: #000000, $alpha: 0.6);


		}

		.mask {
			position: fixed;
			height: 100vh;
			width: 100vw;
			background-color: rgba(0, 0, 0, 0.4);
			top: 0;
			left: 0;
			z-index: 99999;
			display: flex;
			align-items: center;
			justify-content: center;


			.kf {
				width: 600rpx;
				height: 680rpx;
				background-color: #fff;
				text-align: center;
				position: relative;

				.ewm_bg {
					position: absolute;
					top: 45%;
					left: 50%;
					transform: translate(-50%, -50%);

					image {
						width: 500rpx;
						height: 500rpx;
					}

				}

				.content {
					position: relative;
					top: 23%;

					.qrcode {
						width: 330rpx;
						height: 330rpx;
					}

					.tips {
						display: block;
						font-size: 28rpx;
						text-align: center;
						margin-top: 96rpx;
					}

					.close {
						position: absolute;
						bottom: -230rpx;
						left: 50%;
						transform: translate(-50%, -50%);
						/* 50%为自身尺寸的一半 */
						padding: 14rpx 20rpx;
						text-align: center;
					}

				}
			}


		}


	}
</style>


================================================
FILE: pages/wallet/wallet.vue
================================================
<template>
	<view class="wallet">
		<!-- #ifdef H5 -->
		<u-navbar back-icon-color="#fff" title="我的钱包" title-color="#fff" :background="background" :border-bottom="false"></u-navbar>
		<!-- #endif -->

		<!-- 导航tabs -->
		<view class="tabs-box1">
			<u-tabs activeColor="#f29100" :list="list" :is-scroll="false" :offset="[0,0]" :current="current" @change="clitbs"></u-tabs>
		</view>


		<!-- 积分兑换表单 -->
		<view v-if="current == 0" class="awal">
			<view class="awal_top u-p-40">
				<view>请输入积分兑换码</view>
				<view class="int"><input v-model.trim="Rcode" /></view>
				<view class="out" @click="clickdh">兑换</view>
			</view>

		</view>

		<!-- 提现记录内容 -->
		<view v-if="current == 1" class="recordlist">
			<view class="content_top">
				账户剩余<text class="g">{{userInfo.available_money || '0' | zeroize}}</text>元,累计提现<text class="o">{{userInfo.sum_take_out_money || '0' | zeroize}}</text>元
			</view>

			<!-- 列表 -->
			<view class="wt_list" v-if="true">

				<view class="wt_item flex justify-between align-center" v-for="(item, index) in walletList" :key="index">
					<view class="time">
						{{item.add_time | time_filter}}
					</view>
					<view class="u-flex-1">
						<view class="flex justify-between align-center">
							<view :class="{'g':iszf(item.money) , 'o':!iszf(item.money)}" style="font-size: 32rpx;">{{item.money | money_filter}}</view>
							<view class="u-font-12">余额{{item.changed_balance}}</view>
						</view>
						<view class="u-font-12">{{item.desc}}</view>
					</view>
				</view>
			</view>
			<!-- 没有数据提示 -->
			<view class="page-box" v-else>
				您还没有相关的收益数据数据
			</view>
			<!-- //加载提示 -->
			<view>
				<u-loadmore :status="loadStatus"></u-loadmore>
			</view>

		</view>

		<!-- 提现申请表单 -->
		<view v-if="current == 2" class="awal">
			<view class="awal_top u-p-40">
				<view>请输入提现金额,满1元可提现</view>
				<view class="int"><input v-model.trim="money" type="number" /></view>
				<view class="inter" v-if="money_inter">提现手续费{{money_inter}}元</view>
				<view class="out" @click="withdrawal">申请提现</view>
			</view>
			<view class="awal_bom">
				<view class="title">提现规则</view>
				<view class="awcontent">
					1.提现到当前微信<br />
					2.最低提现金额1元<br />
					3.提现实时到账
				</view>
			</view>
		</view>


	</view>
</template>

<script>
	export default {
		data() {
			return {
				// #ifdef H5
				background: {
					backgroundColor: '#f33f5c'
				},
				// #endif

				walletList: [],
				list: [{
						name: '兑换',
						id: 0
					},
					{
						name: '明细',
						id: 1
					},
					{
						name: '提现',
						id: 2
					}
				], //tabs列表
				money: null, //提现金额
				Rcode: null, //积分兑换码
				current: null, //当前选中tabs
				page: 1,
				loadStatus: 'loadmore',
			};
		},
		computed: {
			money_inter() { //提现手续费
				return parseFloat(this.money * this.appInfo.take_out_ratio).toFixed(2)
			},
			userInfo() {
				return this.$store.state.userInfo
			},
			appInfo() {
				return this.$store.state.appInfo
			}
		},
		onLoad(e) {
			console.log(e)
			if (e && e.currentid) { //有进入路径,转变
				this.current = e.currentid
			} else { //没有进入路径,设置默认1,并触发数据请求
				this.current = 1
			}

		},
		onReachBottom() {
			console.log("触发了到底")
			this.loadStatus = 'loading';
			this.getwalletlist()


		},

		methods: {
			// 获取提现列表数据
			getwalletlist() {
				const that = this

				uni.$emit('getuserinfo')

				console.log("页面数据")
				this.$http.user.getPayOrderList({
						page: this.page
					})
					.then(res => {

						that.page++;
						that.walletList = [...that.walletList, ...res.data]


						if (res.data.length < 20) {
							that.loadStatus = 'nomore'
						} else {
							that.loadStatus = 'loadmore';
						}

					})
			},
			// tab栏切换
			clitbs(index) {
				this.loadStatus = 'loadmore';
				this.page = 1;
				this.walletList = [];
				this.current = index;

			},

			// 申请提现
			withdrawal() {
				uni.showLoading({
					title: '请稍等'
				})
				if (!this.money) {
					uni.showToast({
						title: '请输入提现金额',
						icon: 'none',
						duration: 1500
					});
					return;
				}

				let sum = parseFloat(this.money_inter) + parseFloat(this.money)
				if (sum > this.userInfo.available_money) {
					uni.showToast({
						title: '账户余额不足,无法提现',
						icon: 'none',
						duration: 1500
					});
					return;
				}

				this.$http.user.withdrawal({
						money: this.money
					})
					.then(res => {
						console.log('提现成功', res)
						uni.showToast({
							title: '提现成功',
							icon: 'success',
							duration: 1500
						});
					})
					.catch(err => {
						console.log('提现失败', err)
						uni.showToast({
							title: err.msg,
							icon: 'none',
							duration: 1500
						});
					})
				this.money = null
			},

			// 兑换码使用
			clickdh() {
				const that = this
				uni.showLoading({
					title: '请稍等'
				})
				if (!this.Rcode) {
					uni.showToast({
						title: '请输入兑换码',
						icon: 'none',
						duration: 1500
					});
					return;
				}

				this.$http.user.pointsfor({
						code: this.Rcode
					})
					.then(res => {
						console.log('兑换码使用成功', res)
						uni.showToast({
							title: '兑换码使用成功',
							icon: 'success',
							duration: 1500
						});
						that.codepage = 1;
						that.RecodeList = [];
						that.getRecodelist()

					})
					.catch(err => {
						console.log('兑换码使用失败', err)
						uni.showToast({
							title: err.msg,
							icon: 'none',
							duration: 1500
						});
					})
				this.Rcode = null


			},

			iszf(val) {
				if (parseFloat(val) > 0) {
					return true
				} else {
					return false
				}
			},

		},
		watch: {
			current(val) {
				if (val == 1) {
					this.getwalletlist()
				}
			}
		},
		filters: {
			money_filter(val) {
				if (parseFloat(val) > 0) {
					return '+' + val
				} else {
					return val
				}
			},
			time_filter(val) {
				return val.substring(val.indexOf('-') + 1, val.length - 3)
			},
			zeroize(val) {
				return parseFloat(val).toFixed(2)
			}
		}
	};
</script>


<style lang="scss" scoped>
	.wallet {
		display: flex;
		flex-direction: column;
		height: calc(100vh - var(--window-top));
		width: 100%;
		background-color: $uni-bg-color;

		.tabs-box1 {
			position: fixed;
			top: var(--window-top);
			width: 750rpx;
			color: #303133;
			z-index: 99;
			background-color: #fff;
		}

	}

	// 没有提现数据样式
	.page-box {
		text-align: center;
		padding-top: 200rpx;
		margin: 0 auto;
		font-size: 32rpx;
		height: calc(100vh - var(--window-top) - 5px - 40px);

	}

	.recode_page-box {
		text-align: center;
		padding-top: 200rpx;
		margin: 0 auto;
		font-size: 32rpx;
		min-height: calc(100vh - var(--window-top) - 640rpx);

	}

	// 共头部样式
	.content-title {
		line-height: 80rpx;
		font-size: 24rpx;
		text-align: center;

	}

	.content_top {
		padding: 20rpx 0;
		text-align: center;
		background-color: #F2F2F2;
		color: #303133;

	}

	.recordlist {
		margin-top: 40px;
		background-color: #fff;
	}

	// 列表样式
	.wt_list {
		min-height: calc(100vh - var(--window-top) - 10rpx - 160rpx - 40rpx);

		.wt_item {
			border-bottom: 1px solid rgba($color: #ccc, $alpha: 0.3);
			padding: 16rpx 20rpx;
			text-align: center;
			text-align: left;
			line-height: 44rpx;
			color: #ccc;

			.time {
				line-height: 50rpx;
				text-align: center;
				width: 130rpx;
				margin-right: 20rpx;
				border-right: solid 1px rgba($color: #ccc, $alpha: 0.3);
			}



		}
	}

	.g {
		color: #f29100;
	}

	.o {
		color: #4dc891;
	}


	// 提现表单样式
	.awal {
		margin-top: 50px;

		.awal_top {
			background-color: #fff;
			margin-bottom: 30rpx;
			height: 306rpx;

			.int {
				font-size: 28rpx;
				color: #888;
				padding: 20rpx 0;
				border-bottom: 1px solid rgba($color: #C0C0C0, $alpha: 0.7);
			}

			.inter {
				font-size: 26rpx;
				color: #ccc;
			}

			.out {
				width: 100%;
				margin-top: 30rpx;
				line-height: 70rpx;
				text-align: center;
				color: #fff;
				background-color: #f4c242;
			}
		}

		.awal_bom {
			background-color: #fff;
			padding: 0 40rpx 30rpx;

			// margin-top: 30rpx;
			.title {
				color: #b69031;
				text-align: center;
				line-height: 80rpx;
				border-bottom: 1px solid rgba($color: #C0C0C0, $alpha: 0.7);
			}

			.awcontent {
				margin-top: 20rpx;
				line-height: 50rpx;
			}
		}


	}
</style>


================================================
FILE: pages.json
================================================
{
	"easycom": {
		// 下载安装的方式需要前面的"@/",npm安装的方式无需"@/"
		"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
	},
	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
		
		{
			"path": "pages/index/index",
			"style": {
				"navigationBarTitleText": "首页"
				// "navigationBarTitleText": "外卖很忙"
			}
		},
		{
			"path": "pages/index/child1",
			"style": {
				"navigationBarTitleText": "肯德基怎样吃便宜"
			}
		},
		{
			"path": "pages/index/child2",
			"style": {
				"navigationBarTitleText": "奈雪隐藏优惠"
			}
		},
		{
			"path": "pages/ele/ele",
			"style": {
				"navigationStyle": "custom", // 隐藏系统导航栏
				"navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
			}
		},
		{
			"path": "pages/meituan/meituan",
			"style": {
				"navigationStyle": "custom", // 隐藏系统导航栏
				"navigationBarTextStyle": "white" // 状态栏字体为白色,只能为 white-白色,black-黑色 二选一
			}
		},
		{
			"path": "pages/wallet/wallet",
			"style": {
				"navigationBarTitleText": "我的钱包"
			}
		},
		{
			"path": "pages/user/binding",
			"style": {
				"navigationBarTitleText": "账号绑定"
			}
		},
		{
			"path": "pages/user/user",
			"style": {
				"navigationBarTitleText": "个人中心",
				"navigationStyle": "custom" // 隐藏系统导航栏,

			}
		},
		{
			"path": "pages/user/order",
			"style": {
				"enablePullDownRefresh":true,
				"navigationBarTitleText": "我的订单"
			}
		}, 
		{
			"path": "pages/user/team",
			"style": {
				"navigationBarTitleText": "我的团队"
			}
		}
	    ,{
            "path" : "pages/index/url/url",
            "style" :                                                                                    
            {
                "navigationBarTitleText": "",
                "enablePullDownRefresh": false
            }
            
        }
    ],
	"globalStyle": {
		"navigationBarTextStyle": "white",
		"navigationBarTitleText": "红包优惠券天天领",
		// "navigationBarBackgroundColor": "#f4c242",
		"navigationBarBackgroundColor": "#F33F5C",
		"backgroundColor": "#FFFFFF",
		"titleView": false,
		"h5": {
			"titleNView": false
		}
	},
	"tabBar": {
		"borderStyle": "black",
		"backgroundColor": "#FFFFFF",
		"color": "#333333",
		"fontSize": "24upx",
		"selectedColor": "#000",
		"list": [{
				"pagePath": "pages/index/index",
				"text": "首页",
				"iconPath": "static/home.png",
				"selectedIconPath": "static/home-active.png"
			},{
				"pagePath": "pages/ele/ele",
				"text": "饿了么",
				"iconPath": "static/ele.png",
				"selectedIconPath": "static/ele-active.png"
			},{
				"pagePath": "pages/meituan/meituan",
				"text": "美团",
				"iconPath": "static/meituan.png",
				"selectedIconPath": "static/meituan-active.png"
			},{
				"pagePath": "pages/user/user",
				"text": "个人中心",
				"iconPath": "static/my.png",
				"selectedIconPath": "static/my-active.png"
			}
		]

	}
}


================================================
FILE: static/iconfont.css
================================================
@font-face {
	font-family: "custom-icon";
  src:url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPEAAsAAAAACEwAAAN2AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDHAqDZIMPATYCJAMQCwoABCAFhREHRRsiBxEVnPnIfiRkpzJ3VVioQvnROBMEVGdVT/dkhwvxbCQn8CXqZb2yOOccGRVhhvIWPfpC2g6zp+khAKa/n/pjwwk+GwBUU0VR0oTyPM+jiwcy3UAmyFMYXh3ybq2GACwSyYeoVqNeMwwUVicBiH69e3bGyPFQDcECA4EHjFSFxAJ0DG2mdh2YH35efKSIMEBDl1hrNepRvRuV3hT/slt6/V7aSR/e6SSAMA4kkA9QIHpBWRdkbMuHxNJ+oygBGBho8Kb425Zfdvv9lHoUtmH/5YFAooHwYAU6ABRjWPLCKC4eAt62xEPCl90BaAAfpL0BmMASYBeDjX8DDYlyneyQsGDTcsZawtYDlYujh6hRQbojXBWs21hjly8XYt3dEoH7b8fjXRpx4I73drElS2DtneJBh+4lCd+yyINnfef6uS2Wrd6+NaL50hXhzrJlvuWdnUSzxJoVWXlwlDt7qXfJ2OAtx6PVyhMZIdtPxemrTrZ3Lj5M3fyopttpZOJos7ii06xtq1bv3r51Jd4dtTi9oZLd6XUlKlU63el0LUFCCK/aQNnGbwavMpd5inZ62KmoZ5mxe3BPq7HVc/Buo3ycuXpQq/+N/1f3FCxVu1eaW6Rnq6Gzn73uuuFF5Iv+x8k5I7qZzuhWQ2Zf+2bslxEvKVU00rNAGPsNsYCGpaRXvdO4YXy8+6o7VUoWqFRND1DVKpU6mTHNLT+tZPCwXuedkB4MAsDvVaelD0Be0r6A/4M8JSP/ZSv2TDVmdwwq99uwnyXjefV+41n6MPIPoXSm/DkPdRrAp+k0ylcKsQmp3fUo6mW6ogEWFuCnqlBeTsGN0AJBYBORAo0AkoHEJgtW2CKwji0Pe7C1gEUeTcfbhDEBiVAmkMtCAgSRHAMagdwBkkhewQr7G9JxwoY92BRg0UKUnNEmU0DmVkdGJWhB/2E0tDknWiqTotBa54vf0KdFsRibmF/IcaSZ0DcdcF5xQ56uT/z4QcSBY1rhMvJ6uCwEO9OERpogsh/a1qEnNYbWrOLIqAQt6D+MhjbnT5cKk6LQWjd9zw19WhQ3pwAsL2SRPTLVgb7pusFX9tY14Rb7x48fRBw4ljRMAZdNS3CxbQQ7bjahkSYMsOyHlknnurKbZbnrOy8ALKxeSmhCCiV08i7jZp2aPrdpDElt+Xv0rFpRlgEAAA==') format('woff2');
  }

.custom-icon {
  font-family: "custom-icon" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.custom-icon-binding:before {
  content: "\e635";
}

.custom-icon-duihuan:before {
  content: "\eeab";
}

.custom-icon-qianbao:before {
  content: "\e757";
}



================================================
FILE: store/index.js
================================================
import Vue from 'vue'
import Vuex from 'vuex'
import config from '../config.js'
Vue.use(Vuex)

const store = new Vuex.Store({
	state: {
		userInfo:{},//用户信息
		appInfo:{},
		ele_currentid:0,
		meituan_currentid:0,
		scene:null,//进入场景值
	},


	mutations: {
		setUserInfo(state,userinfo){
			state.userInfo = userinfo
		},
		setAppInfo(state,appInfo){
			state.appInfo = appInfo
		},
		setScene(state,scene){
			state.scene = scene
		},
		setele_currentid(state,ele_currentid){
			state.ele_currentid = ele_currentid
		},
		setmeituan_currentid(state,meituan_currentid){
			state.meituan_currentid = meituan_currentid
		}
	},

	getters: {

	},

	actions: {

	}
})

export default store


================================================
FILE: uni.scss
================================================
/**
 * 这里是uni-app内置的常用样式变量
 *
 * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
 * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
 *
 */
@import "uview-ui/theme.scss";
/**
 * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
 *
 * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
 */

/* 颜色变量 */

/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;

/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;

/* 背景颜色 */
$uni-tabbg-color:rgb(244, 194, 66);	
$uni-bg-color:#F2F2F2;	
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色

/* 边框颜色 */
$uni-border-color:#c8c7cc;

/* 尺寸变量 */

/* 文字尺寸 */
$uni-font-size-sm:24rpx;
$uni-font-size-base:28rpx;
$uni-font-size-lg:32rpx;

/* 图片尺寸 */
$uni-img-size-sm:40rpx;
$uni-img-size-base:52rpx;
$uni-img-size-lg:80rpx;

/* Border Radius */
$uni-border-radius-sm: 4rpx;
$uni-border-radius-base: 6rpx;
$uni-border-radius-lg: 12rpx;
$uni-border-radius-circle: 50%;

/* 水平间距 */
$uni-spacing-row-sm: 10px;
$uni-spacing-row-base: 20rpx;
$uni-spacing-row-lg: 30rpx;

/* 垂直间距 */
$uni-spacing-col-sm: 8rpx;
$uni-spacing-col-base: 16rpx;
$uni-spacing-col-lg: 24rpx;

/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度

/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:40rpx;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:36rpx;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:30rpx;

================================================
FILE: unpackage/dist/build/.automator/mp-weixin/.automator.json
================================================


================================================
FILE: unpackage/dist/build/mp-weixin/app.js
================================================

require('./common/runtime.js')
require('./common/vendor.js')
require('./common/main.js')

================================================
FILE: unpackage/dist/build/mp-weixin/app.json
================================================
{
  "pages": [
    "pages/index/index",
    "pages/index/child1",
    "pages/index/child2",
    "pages/ele/ele",
    "pages/meituan/meituan",
    "pages/wallet/wallet",
    "pages/user/binding",
    "pages/user/user",
    "pages/user/order",
    "pages/user/team",
    "pages/index/url/url"
  ],
  "subPackages": [],
  "window": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "红包优惠券天天领",
    "navigationBarBackgroundColor": "#F33F5C",
    "backgroundColor": "#FFFFFF",
    "titleView": false
  },
  "tabBar": {
    "borderStyle": "black",
    "backgroundColor": "#FFFFFF",
    "color": "#333333",
    "fontSize": "24upx",
    "selectedColor": "#000",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "static/home.png",
        "selectedIconPath": "static/home-active.png"
      },
      {
        "pagePath": "pages/ele/ele",
        "text": "饿了么",
        "iconPath": "static/ele.png",
        "selectedIconPath": "static/ele-active.png"
      },
      {
        "pagePath": "pages/meituan/meituan",
        "text": "美团",
        "iconPath": "static/meituan.png",
        "selectedIconPath": "static/meituan-active.png"
      },
      {
        "pagePath": "pages/user/user",
        "text": "个人中心",
        "iconPath": "static/my.png",
        "selectedIconPath": "static/my-active.png"
      }
    ]
  },
  "usingComponents": {},
  "sitemapLocation": "sitemap.json"
}

================================================
FILE: unpackage/dist/build/mp-weixin/app.wxss
================================================
@import './common/main.wxss';

[data-custom-hidden="true"],[bind-data-custom-hidden="true"]{display: none !important;}

================================================
FILE: unpackage/dist/build/mp-weixin/common/main.js
================================================
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["common/main"],{"0096":function(e,t,n){"use strict";(function(e){n("8e1f");var t=i(n("66fd")),o=i(n("a6d0")),r=i(n("9e08")),u=i(n("2851")),c=i(n("9459"));function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var s=n("3209").Base64;t.default.config.productionTip=!1,t.default.use(c.default),t.default.prototype.$decode=s.decode,t.default.prototype.$http=u.default,o.default.mpType="app";var d=new t.default(f(f({},o.default),{},{store:r.default}));e(d).$mount()}).call(this,n("543d")["createApp"])},"0435":function(e,t,n){"use strict";n.r(t);var o=n("1df6"),r=n.n(o);for(var u in o)"default"!==u&&function(e){n.d(t,e,(function(){return o[e]}))}(u);t["default"]=r.a},"1df6":function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=r(n("a34a"));function r(e){return e&&e.__esModule?e:{default:e}}function u(e,t,n,o,r,u,c){try{var i=e[u](c),a=i.value}catch(f){return void n(f)}i.done?t(a):Promise.resolve(a).then(o,r)}function c(e){return function(){var t=this,n=arguments;return new Promise((function(o,r){var c=e.apply(t,n);function i(e){u(c,o,r,i,a,"next",e)}function a(e){u(c,o,r,i,a,"throw",e)}i(void 0)}))}}var i={onLaunch:function(){var t=c(o.default.mark((function t(n){var r,u=this;return o.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:r=this,console.log("小程序App Launch",n),r.$store.commit("setScene",n.scene),this.$http.index.getApp().then((function(e){console.log(e),u.$store.commit("setAppInfo",e.data)})),e.login({provider:"weixin",success:function(t){r.$http.user.wxlogin({code:t.code}).then((function(t){e.setStorageSync("token",t.data.token),e.$emit("getuserinfo")})).catch((function(e){console.log("请求登录接口出错",e)}))},fail:function(e){console.log(e)}}),e.$on("getuserinfo",(function(){r.$http.user.getUserInfo().then((function(t){r.$store.commit("setUserInfo",t.data),e.$emit("binduser"),e.$emit("login",t.data.mobile),e.hideLoading()})).catch((function(t){e.hideLoading()}))}));case 6:case"end":return t.stop()}}),t,this)})));function n(e){return t.apply(this,arguments)}return n}(),methods:{},onShow:function(){console.log("App Show")},onHide:function(){console.log("App Hide")}};t.default=i}).call(this,n("543d")["default"])},a6d0:function(e,t,n){"use strict";n.r(t);var o=n("0435");for(var r in o)"default"!==r&&function(e){n.d(t,e,(function(){return o[e]}))}(r);n("b8fb");var u,c,i,a,f=n("f0c5"),l=Object(f["a"])(o["default"],u,c,!1,null,null,null,!1,i,a);t["default"]=l.exports},b8fb:function(e,t,n){"use strict";var o=n("bf8d"),r=n.n(o);r.a},bf8d:function(e,t,n){}},[["0096","common/runtime","common/vendor"]]]);

================================================
FILE: unpackage/dist/build/mp-weixin/common/main.wxss
================================================
@font-face{font-family:custom-icon;src:url("data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPEAAsAAAAACEwAAAN2AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCDHAqDZIMPATYCJAMQCwoABCAFhREHRRsiBxEVnPnIfiRkpzJ3VVioQvnROBMEVGdVT/dkhwvxbCQn8CXqZb2yOOccGRVhhvIWPfpC2g6zp+khAKa/n/pjwwk+GwBUU0VR0oTyPM+jiwcy3UAmyFMYXh3ybq2GACwSyYeoVqNeMwwUVicBiH69e3bGyPFQDcECA4EHjFSFxAJ0DG2mdh2YH35efKSIMEBDl1hrNepRvRuV3hT/slt6/V7aSR/e6SSAMA4kkA9QIHpBWRdkbMuHxNJ+oygBGBho8Kb425Zfdvv9lHoUtmH/5YFAooHwYAU6ABRjWPLCKC4eAt62xEPCl90BaAAfpL0BmMASYBeDjX8DDYlyneyQsGDTcsZawtYDlYujh6hRQbojXBWs21hjly8XYt3dEoH7b8fjXRpx4I73drElS2DtneJBh+4lCd+yyINnfef6uS2Wrd6+NaL50hXhzrJlvuWdnUSzxJoVWXlwlDt7qXfJ2OAtx6PVyhMZIdtPxemrTrZ3Lj5M3fyopttpZOJos7ii06xtq1bv3r51Jd4dtTi9oZLd6XUlKlU63el0LUFCCK/aQNnGbwavMpd5inZ62KmoZ5mxe3BPq7HVc/Buo3ycuXpQq/+N/1f3FCxVu1eaW6Rnq6Gzn73uuuFF5Iv+x8k5I7qZzuhWQ2Zf+2bslxEvKVU00rNAGPsNsYCGpaRXvdO4YXy8+6o7VUoWqFRND1DVKpU6mTHNLT+tZPCwXuedkB4MAsDvVaelD0Be0r6A/4M8JSP/ZSv2TDVmdwwq99uwnyXjefV+41n6MPIPoXSm/DkPdRrAp+k0ylcKsQmp3fUo6mW6ogEWFuCnqlBeTsGN0AJBYBORAo0AkoHEJgtW2CKwji0Pe7C1gEUeTcfbhDEBiVAmkMtCAgSRHAMagdwBkkhewQr7G9JxwoY92BRg0UKUnNEmU0DmVkdGJWhB/2E0tDknWiqTotBa54vf0KdFsRibmF/IcaSZ0DcdcF5xQ56uT/z4QcSBY1rhMvJ6uCwEO9OERpogsh/a1qEnNYbWrOLIqAQt6D+MhjbnT5cKk6LQWjd9zw19WhQ3pwAsL2SRPTLVgb7pusFX9tY14Rb7x48fRBw4ljRMAZdNS3CxbQQ7bjahkSYMsOyHlknnurKbZbnrOy8ALKxeSmhCCiV08i7jZp2aPrdpDElt+Xv0rFpRlgEAAA==") format("woff2")}.custom-icon{font-family:custom-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.custom-icon-binding:before{content:"\e635"}.custom-icon-duihuan:before{content:"\eeab"}.custom-icon-qianbao:before{content:"\e757"}.u-relative,
.u-rela{position:relative}.u-absolute,
.u-abso{position:absolute}image{display:inline-block}view,
text{box-sizing:border-box}.u-font-xs{font-size:22rpx}.u-font-sm{font-size:26rpx}.u-font-md{font-size:28rpx}.u-font-lg{font-size:30rpx}.u-font-xl{font-size:34rpx}.u-flex{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.u-flex-wrap{-webkit-flex-wrap:wrap;flex-wrap:wrap}.u-flex-nowrap{-webkit-flex-wrap:nowrap;flex-wrap:nowrap}.u-col-center{-webkit-box-align:center;-webkit-align-items:center;align-items:center}.u-col-top{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.u-col-bottom{-webkit-box-align:end;-webkit-align-items:flex-end;align-items:flex-end}.u-row-center{-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.u-row-left{-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start}.u-row-right{-webkit-box-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end}.u-row-between{-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between}.u-row-around{-webkit-justify-content:space-around;justify-content:space-around}.u-text-left{text-align:left}.u-text-center{text-align:center}.u-text-right{text-align:right}.u-flex-col{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.u-flex-0{-webkit-box-flex:0;-webkit-flex:0;flex:0}.u-flex-1{-webkit-box-flex:1;-webkit-flex:1;flex:1}.u-flex-2{-webkit-box-flex:2;-webkit-flex:2;flex:2}.u-flex-3{-webkit-box-flex:3;-webkit-flex:3;flex:3}.u-flex-4{-webkit-box-flex:4;-webkit-flex:4;flex:4}.u-flex-5{-webkit-box-flex:5;-webkit-flex:5;flex:5}.u-flex-6{-webkit-box-flex:6;-webkit-flex:6;flex:6}.u-flex-7{-webkit-box-flex:7;-webkit-flex:7;flex:7}.u-flex-8{-webkit-box-flex:8;-webkit-flex:8;flex:8}.u-flex-9{-webkit-box-flex:9;-webkit-flex:9;flex:9}.u-flex-10{-webkit-box-flex:10;-webkit-flex:10;flex:10}.u-flex-11{-webkit-box-flex:11;-webkit-flex:11;flex:11}.u-flex-12{-webkit-box-flex:12;-webkit-flex:12;flex:12}.u-font-9{font-size:9px}.u-font-10{font-size:10px}.u-font-11{font-size:11px}.u-font-12{font-size:12px}.u-font-13{font-size:13px}.u-font-14{font-size:14px}.u-font-15{font-size:15px}.u-font-16{font-size:16px}.u-font-17{font-size:17px}.u-font-18{font-size:18px}.u-font-19{font-size:19px}.u-font-20{font-size:20rpx}.u-font-21{font-size:21rpx}.u-font-22{font-size:22rpx}.u-font-23{font-size:23rpx}.u-font-24{font-size:24rpx}.u-font-25{font-size:25rpx}.u-font-26{font-size:26rpx}.u-font-27{font-size:27rpx}.u-font-28{font-size:28rpx}.u-font-29{font-size:29rpx}.u-font-30{font-size:30rpx}.u-font-31{font-size:31rpx}.u-font-32{font-size:32rpx}.u-font-33{font-size:33rpx}.u-font-34{font-size:34rpx}.u-font-35{font-size:35rpx}.u-font-36{font-size:36rpx}.u-font-37{font-size:37rpx}.u-font-38{font-size:38rpx}.u-font-39{font-size:39rpx}.u-font-40{font-size:40rpx}.u-margin-0, .u-m-0{margin:0rpx!important}.u-padding-0, .u-p-0{padding:0rpx!important}.u-m-l-0{margin-left:0rpx!important}.u-p-l-0{padding-left:0rpx!important}.u-margin-left-0{margin-left:0rpx!important}.u-padding-left-0{padding-left:0rpx!important}.u-m-t-0{margin-top:0rpx!important}.u-p-t-0{padding-top:0rpx!important}.u-margin-top-0{margin-top:0rpx!important}.u-padding-top-0{padding-top:0rpx!important}.u-m-r-0{margin-right:0rpx!important}.u-p-r-0{padding-right:0rpx!important}.u-margin-right-0{margin-right:0rpx!important}.u-padding-right-0{padding-right:0rpx!important}.u-m-b-0{margin-bottom:0rpx!important}.u-p-b-0{padding-bottom:0rpx!important}.u-margin-bottom-0{margin-bottom:0rpx!important}.u-padding-bottom-0{padding-bottom:0rpx!important}.u-margin-2, .u-m-2{margin:2rpx!important}.u-padding-2, .u-p-2{padding:2rpx!important}.u-m-l-2{margin-left:2rpx!important}.u-p-l-2{padding-left:2rpx!important}.u-margin-left-2{margin-left:2rpx!important}.u-padding-left-2{padding-left:2rpx!important}.u-m-t-2{margin-top:2rpx!important}.u-p-t-2{padding-top:2rpx!important}.u-margin-top-2{margin-top:2rpx!important}.u-padding-top-2{padding-top:2rpx!important}.u-m-r-2{margin-right:2rpx!important}.u-p-r-2{padding-right:2rpx!important}.u-margin-right-2{margin-right:2rpx!important}.u-padding-right-2{padding-right:2rpx!important}.u-m-b-2{margin-bottom:2rpx!important}.u-p-b-2{padding-bottom:2rpx!important}.u-margin-bottom-2{margin-bottom:2rpx!important}.u-padding-bottom-2{padding-bottom:2rpx!important}.u-margin-4, .u-m-4{margin:4rpx!important}.u-padding-4, .u-p-4{padding:4rpx!important}.u-m-l-4{margin-left:4rpx!important}.u-p-l-4{padding-left:4rpx!important}.u-margin-left-4{margin-left:4rpx!important}.u-padding-left-4{padding-left:4rpx!important}.u-m-t-4{margin-top:4rpx!important}.u-p-t-4{padding-top:4rpx!important}.u-margin-top-4{margin-top:4rpx!important}.u-padding-top-4{padding-top:4rpx!important}.u-m-r-4{margin-right:4rpx!important}.u-p-r-4{padding-right:4rpx!important}.u-margin-right-4{margin-right:4rpx!important}.u-padding-right-4{padding-right:4rpx!important}.u-m-b-4{margin-bottom:4rpx!important}.u-p-b-4{padding-bottom:4rpx!important}.u-margin-bottom-4{margin-bottom:4rpx!important}.u-padding-bottom-4{padding-bottom:4rpx!important}.u-margin-5, .u-m-5{margin:5rpx!important}.u-padding-5, .u-p-5{padding:5rpx!important}.u-m-l-5{margin-left:5rpx!important}.u-p-l-5{padding-left:5rpx!important}.u-margin-left-5{margin-left:5rpx!important}.u-padding-left-5{padding-left:5rpx!important}.u-m-t-5{margin-top:5rpx!important}.u-p-t-5{padding-top:5rpx!important}.u-margin-top-5{margin-top:5rpx!important}.u-padding-top-5{padding-top:5rpx!important}.u-m-r-5{margin-right:5rpx!important}.u-p-r-5{padding-right:5rpx!important}.u-margin-right-5{margin-right:5rpx!important}.u-padding-right-5{padding-right:5rpx!important}.u-m-b-5{margin-bottom:5rpx!important}.u-p-b-5{padding-bottom:5rpx!important}.u-margin-bottom-5{margin-bottom:5rpx!important}.u-padding-bottom-5{padding-bottom:5rpx!important}.u-margin-6, .u-m-6{margin:6rpx!important}.u-padding-6, .u-p-6{padding:6rpx!important}.u-m-l-6{margin-left:6rpx!important}.u-p-l-6{padding-left:6rpx!important}.u-margin-left-6{margin-left:6rpx!important}.u-padding-left-6{padding-left:6rpx!important}.u-m-t-6{margin-top:6rpx!important}.u-p-t-6{padding-top:6rpx!important}.u-margin-top-6{margin-top:6rpx!important}.u-padding-top-6{padding-top:6rpx!important}.u-m-r-6{margin-right:6rpx!important}.u-p-r-6{padding-right:6rpx!important}.u-margin-right-6{margin-right:6rpx!important}.u-padding-right-6{padding-right:6rpx!important}.u-m-b-6{margin-bottom:6rpx!important}.u-p-b-6{padding-bottom:6rpx!important}.u-margin-bottom-6{margin-bottom:6rpx!important}.u-padding-bottom-6{padding-bottom:6rpx!important}.u-margin-8, .u-m-8{margin:8rpx!important}.u-padding-8, .u-p-8{padding:8rpx!important}.u-m-l-8{margin-left:8rpx!important}.u-p-l-8{padding-left:8rpx!important}.u-margin-left-8{margin-left:8rpx!important}.u-padding-left-8{padding-left:8rpx!important}.u-m-t-8{margin-top:8rpx!important}.u-p-t-8{padding-top:8rpx!important}.u-margin-top-8{margin-top:8rpx!important}.u-padding-top-8{padding-top:8rpx!important}.u-m-r-8{margin-right:8rpx!important}.u-p-r-8{padding-right:8rpx!important}.u-margin-right-8{margin-right:8rpx!important}.u-padding-right-8{padding-right:8rpx!important}.u-m-b-8{margin-bottom:8rpx!important}.u-p-b-8{padding-bottom:8rpx!important}.u-margin-bottom-8{margin-bottom:8rpx!important}.u-padding-bottom-8{padding-bottom:8rpx!important}.u-margin-10, .u-m-10{margin:10rpx!important}.u-padding-10, .u-p-10{padding:10rpx!important}.u-m-l-10{margin-left:10rpx!important}.u-p-l-10{padding-left:10rpx!important}.u-margin-left-10{margin-left:10rpx!important}.u-padding-left-10{padding-left:10rpx!important}.u-m-t-10{margin-top:10rpx!important}.u-p-t-10{padding-top:10rpx!important}.u-margin-top-10{margin-top:10rpx!important}.u-padding-top-10{padding-top:10rpx!important}.u-m-r-10{margin-right:10rpx!important}.u-p-r-10{padding-right:10rpx!important}.u-margin-right-10{margin-right:10rpx!important}.u-padding-right-10{padding-right:10rpx!important}.u-m-b-10{margin-bottom:10rpx!important}.u-p-b-10{padding-bottom:10rpx!important}.u-margin-bottom-10{margin-bottom:10rpx!important}.u-padding-bottom-10{padding-bottom:10rpx!important}.u-margin-12, .u-m-12{margin:12rpx!important}.u-padding-12, .u-p-12{padding:12rpx!important}.u-m-l-12{margin-left:12rpx!important}.u-p-l-12{padding-left:12rpx!important}.u-margin-left-12{margin-left:12rpx!important}.u-padding-left-12{padding-left:12rpx!important}.u-m-t-12{margin-top:12rpx!important}.u-p-t-12{padding-top:12rpx!important}.u-margin-top-12{margin-top:12rpx!important}.u-padding-top-12{padding-top:12rpx!important}.u-m-r-12{margin-right:12rpx!important}.u-p-r-12{padding-right:12rpx!important}.u-margin-right-12{margin-right:12rpx!important}.u-padding-right-12{padding-right:12rpx!important}.u-m-b-12{margin-bottom:12rpx!important}.u-p-b-12{padding-bottom:12rpx!important}.u-margin-bottom-12{margin-bottom:12rpx!important}.u-padding-bottom-12{padding-bottom:12rpx!important}.u-margin-14, .u-m-14{margin:14rpx!important}.u-padding-14, .u-p-14{padding:14rpx!important}.u-m-l-14{margin-left:14rpx!important}.u-p-l-14{padding-left:14rpx!important}.u-margin-left-14{margin-left:14rpx!important}.u-padding-left-14{padding-left:14rpx!important}.u-m-t-14{margin-top:14rpx!important}.u-p-t-14{padding-top:14rpx!important}.u-margin-top-14{margin-top:14rpx!important}.u-padding-top-14{padding-top:14rpx!important}.u-m-r-14{margin-right:14rpx!important}.u-p-r-14{padding-right:14rpx!important}.u-margin-right-14{margin-right:14rpx!important}.u-padding-right-14{padding-right:14rpx!important}.u-m-b-14{margin-bottom:14rpx!important}.u-p-b-14{padding-bottom:14rpx!important}.u-margin-bottom-14{margin-bottom:14rpx!important}.u-padding-bottom-14{padding-bottom:14rpx!important}.u-margin-15, .u-m-15{margin:15rpx!important}.u-padding-15, .u-p-15{padding:15rpx!important}.u-m-l-15{margin-left:15rpx!important}.u-p-l-15{padding-left:15rpx!important}.u-margin-left-15{margin-left:15rpx!important}.u-padding-left-15{padding-left:15rpx!important}.u-m-t-15{margin-top:15rpx!important}.u-p-t-15{padding-top:15rpx!important}.u-margin-top-15{margin-top:15rpx!important}.u-padding-top-15{padding-top:15rpx!important}.u-m-r-15{margin-right:15rpx!important}.u-p-r-15{padding-right:15rpx!important}.u-margin-right-15{margin-right:15rpx!important}.u-padding-right-15{padding-right:15rpx!important}.u-m-b-15{margin-bottom:15rpx!important}.u-p-b-15{padding-bottom:15rpx!important}.u-margin-bottom-15{margin-bottom:15rpx!important}.u-padding-bottom-15{padding-bottom:15rpx!important}.u-margin-16, .u-m-16{margin:16rpx!important}.u-padding-16, .u-p-16{padding:16rpx!important}.u-m-l-16{margin-left:16rpx!important}.u-p-l-16{padding-left:16rpx!important}.u-margin-left-16{margin-left:16rpx!important}.u-padding-left-16{padding-left:16rpx!important}.u-m-t-16{margin-top:16rpx!important}.u-p-t-16{padding-top:16rpx!important}.u-margin-top-16{margin-top:16rpx!important}.u-padding-top-16{padding-top:16rpx!important}.u-m-r-16{margin-right:16rpx!important}.u-p-r-16{padding-right:16rpx!important}.u-margin-right-16{margin-right:16rpx!important}.u-padding-right-16{padding-right:16rpx!important}.u-m-b-16{margin-bottom:16rpx!important}.u-p-b-16{padding-bottom:16rpx!important}.u-margin-bottom-16{margin-bottom:16rpx!important}.u-padding-bottom-16{padding-bottom:16rpx!important}.u-margin-18, .u-m-18{margin:18rpx!important}.u-padding-18, .u-p-18{padding:18rpx!important}.u-m-l-18{margin-left:18rpx!important}.u-p-l-18{padding-left:18rpx!important}.u-margin-left-18{margin-left:18rpx!important}.u-padding-left-18{padding-left:18rpx!important}.u-m-t-18{margin-top:18rpx!important}.u-p-t-18{padding-top:18rpx!important}.u-margin-top-18{margin-top:18rpx!important}.u-padding-top-18{padding-top:18rpx!important}.u-m-r-18{margin-right:18rpx!important}.u-p-r-18{padding-right:18rpx!important}.u-margin-right-18{margin-right:18rpx!important}.u-padding-right-18{padding-right:18rpx!important}.u-m-b-18{margin-bottom:18rpx!important}.u-p-b-18{padding-bottom:18rpx!important}.u-margin-bottom-18{margin-bottom:18rpx!important}.u-padding-bottom-18{padding-bottom:18rpx!important}.u-margin-20, .u-m-20{margin:20rpx!important}.u-padding-20, .u-p-20{padding:20rpx!important}.u-m-l-20{margin-left:20rpx!important}.u-p-l-20{padding-left:20rpx!important}.u-margin-left-20{margin-left:20rpx!important}.u-padding-left-20{padding-left:20rpx!important}.u-m-t-20{margin-top:20rpx!important}.u-p-t-20{padding-top:20rpx!important}.u-margin-top-20{margin-top:20rpx!important}.u-padding-top-20{padding-top:20rpx!important}.u-m-r-20{margin-right:20rpx!important}.u-p-r-20{padding-right:20rpx!important}.u-margin-right-20{margin-right:20rpx!important}.u-padding-right-20{padding-right:20rpx!important}.u-m-b-20{margin-bottom:20rpx!important}.u-p-b-20{padding-bottom:20rpx!important}.u-margin-bottom-20{margin-bottom:20rpx!important}.u-padding-bottom-20{padding-bottom:20rpx!important}.u-margin-22, .u-m-22{margin:22rpx!important}.u-padding-22, .u-p-22{padding:22rpx!important}.u-m-l-22{margin-left:22rpx!important}.u-p-l-22{padding-left:22rpx!important}.u-margin-left-22{margin-left:22rpx!important}.u-padding-left-22{padding-left:22rpx!important}.u-m-t-22{margin-top:22rpx!important}.u-p-t-22{padding-top:22rpx!important}.u-margin-top-22{margin-top:22rpx!important}.u-padding-top-22{padding-top:22rpx!important}.u-m-r-22{margin-right:22rpx!important}.u-p-r-22{padding-right:22rpx!important}.u-margin-right-22{margin-right:22rpx!important}.u-padding-right-22{padding-right:22rpx!important}.u-m-b-22{margin-bottom:22rpx!important}.u-p-b-22{padding-bottom:22rpx!important}.u-margin-bottom-22{margin-bottom:22rpx!important}.u-padding-bottom-22{padding-bottom:22rpx!important}.u-margin-24, .u-m-24{margin:24rpx!important}.u-padding-24, .u-p-24{padding:24rpx!important}.u-m-l-24{margin-left:24rpx!important}.u-p-l-24{padding-left:24rpx!important}.u-margin-left-24{margin-left:24rpx!important}.u-padding-left-24{padding-left:24rpx!important}.u-m-t-24{margin-top:24rpx!important}.u-p-t-24{padding-top:24rpx!important}.u-margin-top-24{margin-top:24rpx!important}.u-padding-top-24{padding-top:24rpx!important}.u-m-r-24{margin-right:24rpx!important}.u-p-r-24{padding-right:24rpx!important}.u-margin-right-24{margin-right:24rpx!important}.u-padding-right-24{padding-right:24rpx!important}.u-m-b-24{margin-bottom:24rpx!important}.u-p-b-24{padding-bottom:24rpx!important}.u-margin-bottom-24{margin-bottom:24rpx!important}.u-padding-bottom-24{padding-bottom:24rpx!important}.u-margin-25, .u-m-25{margin:25rpx!important}.u-padding-25, .u-p-25{padding:25rpx!important}.u-m-l-25{margin-left:25rpx!important}.u-p-l-25{padding-left:25rpx!important}.u-margin-left-25{margin-left:25rpx!important}.u-padding-left-25{padding-left:25rpx!important}.u-m-t-25{margin-top:25rpx!important}.u-p-t-25{padding-top:25rpx!important}.u-margin-top-25{margin-top:25rpx!important}.u-padding-top-25{padding-top:25rpx!important}.u-m-r-25{margin-right:25rpx!important}.u-p-r-25{padding-right:25rpx!important}.u-margin-right-25{margin-right:25rpx!important}.u-padding-right-25{padding-right:25rpx!important}.u-m-b-25{margin-bottom:25rpx!important}.u-p-b-25{padding-bottom:25rpx!important}.u-margin-bottom-25{margin-bottom:25rpx!important}.u-padding-bottom-25{padding-bottom:25rpx!important}.u-margin-26, .u-m-26{margin:26rpx!important}.u-padding-26, .u-p-26{padding:26rpx!important}.u-m-l-26{margin-left:26rpx!important}.u-p-l-26{padding-left:26rpx!important}.u-margin-left-26{margin-left:26rpx!important}.u-padding-left-26{padding-left:26rpx!important}.u-m-t-26{margin-top:26rpx!important}.u-p-t-26{padding-top:26rpx!important}.u-margin-top-26{margin-top:26rpx!important}.u-padding-top-26{padding-top:26rpx!important}.u-m-r-26{margin-right:26rpx!important}.u-p-r-26{padding-right:26rpx!important}.u-margin-right-26{margin-right:26rpx!important}.u-padding-right-26{padding-right:26rpx!important}.u-m-b-26{margin-bottom:26rpx!important}.u-p-b-26{padding-bottom:26rpx!important}.u-margin-bottom-26{margin-bottom:26rpx!important}.u-padding-bottom-26{padding-bottom:26rpx!important}.u-margin-28, .u-m-28{margin:28rpx!important}.u-padding-28, .u-p-28{padding:28rpx!important}.u-m-l-28{margin-left:28rpx!important}.u-p-l-28{padding-left:28rpx!important}.u-margin-left-28{margin-left:28rpx!important}.u-padding-left-28{padding-left:28rpx!important}.u-m-t-28{margin-top:28rpx!important}.u-p-t-28{padding-top:28rpx!important}.u-margin-top-28{margin-top:28rpx!important}.u-padding-top-28{padding-top:28rpx!important}.u-m-r-28{margin-right:28rpx!important}.u-p-r-28{padding-right:28rpx!important}.u-margin-right-28{margin-right:28rpx!important}.u-padding-right-28{padding-right:28rpx!important}.u-m-b-28{margin-bottom:28rpx!important}.u-p-b-28{padding-bottom:28rpx!important}.u-margin-bottom-28{margin-bottom:28rpx!important}.u-padding-bottom-28{padding-bottom:28rpx!important}.u-margin-30, .u-m-30{margin:30rpx!important}.u-padding-30, .u-p-30{padding:30rpx!important}.u-m-l-30{margin-left:30rpx!important}.u-p-l-30{padding-left:30rpx!important}.u-margin-left-30{margin-left:30rpx!important}.u-padding-left-30{padding-left:30rpx!important}.u-m-t-30{margin-top:30rpx!important}.u-p-t-30{padding-top:30rpx!important}.u-margin-top-30{margin-top:30rpx!important}.u-padding-top-30{padding-top:30rpx
Download .txt
gitextract_2qjozitc/

├── .hbuilderx/
│   └── launch.json
├── App.vue
├── README.md
├── components/
│   ├── auth/
│   │   └── login.vue
│   ├── js-base64/
│   │   ├── LICENSE.md
│   │   ├── README.md
│   │   ├── base64.d.ts
│   │   ├── base64.js
│   │   ├── base64.mjs
│   │   └── package.json
│   ├── share_hb2/
│   │   └── share_hb2.vue
│   ├── share_img/
│   │   └── share_img.vue
│   └── v-tabs/
│       ├── readme.md
│       └── v-tabs.vue
├── config.js
├── http/
│   ├── api/
│   │   ├── index.js
│   │   └── user.js
│   ├── api.js
│   └── request.js
├── jweixin/
│   └── index.js
├── main.js
├── manifest.json
├── package.json
├── pages/
│   ├── ele/
│   │   └── ele.vue
│   ├── index/
│   │   ├── child1.vue
│   │   ├── child2.vue
│   │   ├── index.vue
│   │   └── url/
│   │       └── url.vue
│   ├── meituan/
│   │   └── meituan.vue
│   ├── user/
│   │   ├── binding.vue
│   │   ├── order.vue
│   │   ├── team.vue
│   │   └── user.vue
│   └── wallet/
│       └── wallet.vue
├── pages.json
├── static/
│   └── iconfont.css
├── store/
│   └── index.js
├── uni.scss
├── unpackage/
│   └── dist/
│       ├── build/
│       │   ├── .automator/
│       │   │   └── mp-weixin/
│       │   │       └── .automator.json
│       │   └── mp-weixin/
│       │       ├── app.js
│       │       ├── app.json
│       │       ├── app.wxss
│       │       ├── common/
│       │       │   ├── main.js
│       │       │   ├── main.wxss
│       │       │   ├── runtime.js
│       │       │   └── vendor.js
│       │       ├── components/
│       │       │   ├── auth/
│       │       │   │   ├── login.js
│       │       │   │   ├── login.json
│       │       │   │   ├── login.wxml
│       │       │   │   └── login.wxss
│       │       │   ├── share_hb2/
│       │       │   │   ├── share_hb2.js
│       │       │   │   ├── share_hb2.json
│       │       │   │   ├── share_hb2.wxml
│       │       │   │   └── share_hb2.wxss
│       │       │   └── share_img/
│       │       │       ├── share_img.js
│       │       │       ├── share_img.json
│       │       │       ├── share_img.wxml
│       │       │       └── share_img.wxss
│       │       ├── pages/
│       │       │   ├── ele/
│       │       │   │   ├── ele.js
│       │       │   │   ├── ele.json
│       │       │   │   ├── ele.wxml
│       │       │   │   └── ele.wxss
│       │       │   ├── index/
│       │       │   │   ├── child1.js
│       │       │   │   ├── child1.json
│       │       │   │   ├── child1.wxml
│       │       │   │   ├── child1.wxss
│       │       │   │   ├── child2.js
│       │       │   │   ├── child2.json
│       │       │   │   ├── child2.wxml
│       │       │   │   ├── child2.wxss
│       │       │   │   ├── index.js
│       │       │   │   ├── index.json
│       │       │   │   ├── index.wxml
│       │       │   │   ├── index.wxss
│       │       │   │   └── url/
│       │       │   │       ├── url.js
│       │       │   │       ├── url.json
│       │       │   │       └── url.wxml
│       │       │   ├── meituan/
│       │       │   │   ├── meituan.js
│       │       │   │   ├── meituan.json
│       │       │   │   ├── meituan.wxml
│       │       │   │   └── meituan.wxss
│       │       │   ├── user/
│       │       │   │   ├── binding.js
│       │       │   │   ├── binding.json
│       │       │   │   ├── binding.wxml
│       │       │   │   ├── binding.wxss
│       │       │   │   ├── order.js
│       │       │   │   ├── order.json
│       │       │   │   ├── order.wxml
│       │       │   │   ├── order.wxss
│       │       │   │   ├── team.js
│       │       │   │   ├── team.json
│       │       │   │   ├── team.wxml
│       │       │   │   ├── team.wxss
│       │       │   │   ├── user.js
│       │       │   │   ├── user.json
│       │       │   │   ├── user.wxml
│       │       │   │   └── user.wxss
│       │       │   └── wallet/
│       │       │       ├── wallet.js
│       │       │       ├── wallet.json
│       │       │       ├── wallet.wxml
│       │       │       └── wallet.wxss
│       │       ├── project.config.json
│       │       ├── sitemap.json
│       │       ├── static/
│       │       │   └── iconfont.css
│       │       └── uview-ui/
│       │           └── components/
│       │               ├── u-badge/
│       │               │   ├── u-badge.js
│       │               │   ├── u-badge.json
│       │               │   ├── u-badge.wxml
│       │               │   └── u-badge.wxss
│       │               ├── u-cell-group/
│       │               │   ├── u-cell-group.js
│       │               │   ├── u-cell-group.json
│       │               │   ├── u-cell-group.wxml
│       │               │   └── u-cell-group.wxss
│       │               ├── u-cell-item/
│       │               │   ├── u-cell-item.js
│       │               │   ├── u-cell-item.json
│       │               │   ├── u-cell-item.wxml
│       │               │   └── u-cell-item.wxss
│       │               ├── u-icon/
│       │               │   ├── u-icon.js
│       │               │   ├── u-icon.json
│       │               │   ├── u-icon.wxml
│       │               │   └── u-icon.wxss
│       │               ├── u-line/
│       │               │   ├── u-line.js
│       │               │   ├── u-line.json
│       │               │   ├── u-line.wxml
│       │               │   └── u-line.wxss
│       │               ├── u-loading/
│       │               │   ├── u-loading.js
│       │               │   ├── u-loading.json
│       │               │   ├── u-loading.wxml
│       │               │   └── u-loading.wxss
│       │               ├── u-loadmore/
│       │               │   ├── u-loadmore.js
│       │               │   ├── u-loadmore.json
│       │               │   ├── u-loadmore.wxml
│       │               │   └── u-loadmore.wxss
│       │               ├── u-navbar/
│       │               │   ├── u-navbar.js
│       │               │   ├── u-navbar.json
│       │               │   ├── u-navbar.wxml
│       │               │   └── u-navbar.wxss
│       │               ├── u-swiper/
│       │               │   ├── u-swiper.js
│       │               │   ├── u-swiper.json
│       │               │   ├── u-swiper.wxml
│       │               │   └── u-swiper.wxss
│       │               └── u-tabs/
│       │                   ├── u-tabs.js
│       │                   ├── u-tabs.json
│       │                   ├── u-tabs.wxml
│       │                   └── u-tabs.wxss
│       └── dev/
│           ├── .automator/
│           │   └── mp-weixin/
│           │       └── .automator.json
│           └── mp-weixin/
│               ├── app.js
│               ├── app.json
│               ├── app.wxss
│               ├── common/
│               │   ├── main.js
│               │   ├── main.wxss
│               │   ├── runtime.js
│               │   └── vendor.js
│               ├── components/
│               │   ├── auth/
│               │   │   ├── login.js
│               │   │   ├── login.json
│               │   │   ├── login.wxml
│               │   │   └── login.wxss
│               │   ├── share_hb2/
│               │   │   ├── share_hb2.js
│               │   │   ├── share_hb2.json
│               │   │   ├── share_hb2.wxml
│               │   │   └── share_hb2.wxss
│               │   └── share_img/
│               │       ├── share_img.js
│               │       ├── share_img.json
│               │       ├── share_img.wxml
│               │       └── share_img.wxss
│               ├── pages/
│               │   ├── ele/
│               │   │   ├── ele.js
│               │   │   ├── ele.json
│               │   │   ├── ele.wxml
│               │   │   └── ele.wxss
│               │   ├── index/
│               │   │   ├── child1.js
│               │   │   ├── child1.json
│               │   │   ├── child1.wxml
│               │   │   ├── child1.wxss
│               │   │   ├── child2.js
│               │   │   ├── child2.json
│               │   │   ├── child2.wxml
│               │   │   ├── child2.wxss
│               │   │   ├── index.js
│               │   │   ├── index.json
│               │   │   ├── index.wxml
│               │   │   ├── index.wxss
│               │   │   └── url/
│               │   │       ├── url.js
│               │   │       ├── url.json
│               │   │       └── url.wxml
│               │   ├── meituan/
│               │   │   ├── meituan.js
│               │   │   ├── meituan.json
│               │   │   ├── meituan.wxml
│               │   │   └── meituan.wxss
│               │   ├── user/
│               │   │   ├── binding.js
│               │   │   ├── binding.json
│               │   │   ├── binding.wxml
│               │   │   ├── binding.wxss
│               │   │   ├── order.js
│               │   │   ├── order.json
│               │   │   ├── order.wxml
│               │   │   ├── order.wxss
│               │   │   ├── team.js
│               │   │   ├── team.json
│               │   │   ├── team.wxml
│               │   │   ├── team.wxss
│               │   │   ├── user.js
│               │   │   ├── user.json
│               │   │   ├── user.wxml
│               │   │   └── user.wxss
│               │   └── wallet/
│               │       ├── wallet.js
│               │       ├── wallet.json
│               │       ├── wallet.wxml
│               │       └── wallet.wxss
│               ├── project.config.json
│               ├── project.private.config.json
│               ├── sitemap.json
│               ├── static/
│               │   └── iconfont.css
│               └── uview-ui/
│                   └── components/
│                       ├── u-badge/
│                       │   ├── u-badge.js
│                       │   ├── u-badge.json
│                       │   ├── u-badge.wxml
│                       │   └── u-badge.wxss
│                       ├── u-cell-group/
│                       │   ├── u-cell-group.js
│                       │   ├── u-cell-group.json
│                       │   ├── u-cell-group.wxml
│                       │   └── u-cell-group.wxss
│                       ├── u-cell-item/
│                       │   ├── u-cell-item.js
│                       │   ├── u-cell-item.json
│                       │   ├── u-cell-item.wxml
│                       │   └── u-cell-item.wxss
│                       ├── u-icon/
│                       │   ├── u-icon.js
│                       │   ├── u-icon.json
│                       │   ├── u-icon.wxml
│                       │   └── u-icon.wxss
│                       ├── u-line/
│                       │   ├── u-line.js
│                       │   ├── u-line.json
│                       │   ├── u-line.wxml
│                       │   └── u-line.wxss
│                       ├── u-loading/
│                       │   ├── u-loading.js
│                       │   ├── u-loading.json
│                       │   ├── u-loading.wxml
│                       │   └── u-loading.wxss
│                       ├── u-loadmore/
│                       │   ├── u-loadmore.js
│                       │   ├── u-loadmore.json
│                       │   ├── u-loadmore.wxml
│                       │   └── u-loadmore.wxss
│                       ├── u-navbar/
│                       │   ├── u-navbar.js
│                       │   ├── u-navbar.json
│                       │   ├── u-navbar.wxml
│                       │   └── u-navbar.wxss
│                       ├── u-swiper/
│                       │   ├── u-swiper.js
│                       │   ├── u-swiper.json
│                       │   ├── u-swiper.wxml
│                       │   └── u-swiper.wxss
│                       └── u-tabs/
│                           ├── u-tabs.js
│                           ├── u-tabs.json
│                           ├── u-tabs.wxml
│                           └── u-tabs.wxss
├── uview-ui/
│   ├── LICENSE
│   ├── README.md
│   ├── components/
│   │   ├── u-action-sheet/
│   │   │   └── u-action-sheet.vue
│   │   ├── u-alert-tips/
│   │   │   └── u-alert-tips.vue
│   │   ├── u-avatar/
│   │   │   └── u-avatar.vue
│   │   ├── u-avatar-cropper/
│   │   │   ├── u-avatar-cropper.vue
│   │   │   └── weCropper.js
│   │   ├── u-back-top/
│   │   │   └── u-back-top.vue
│   │   ├── u-badge/
│   │   │   └── u-badge.vue
│   │   ├── u-button/
│   │   │   └── u-button.vue
│   │   ├── u-calendar/
│   │   │   └── u-calendar.vue
│   │   ├── u-car-keyboard/
│   │   │   └── u-car-keyboard.vue
│   │   ├── u-card/
│   │   │   └── u-card.vue
│   │   ├── u-cell-group/
│   │   │   └── u-cell-group.vue
│   │   ├── u-cell-item/
│   │   │   └── u-cell-item.vue
│   │   ├── u-checkbox/
│   │   │   └── u-checkbox.vue
│   │   ├── u-checkbox-group/
│   │   │   └── u-checkbox-group.vue
│   │   ├── u-circle-progress/
│   │   │   └── u-circle-progress.vue
│   │   ├── u-col/
│   │   │   └── u-col.vue
│   │   ├── u-collapse/
│   │   │   └── u-collapse.vue
│   │   ├── u-collapse-item/
│   │   │   └── u-collapse-item.vue
│   │   ├── u-column-notice/
│   │   │   └── u-column-notice.vue
│   │   ├── u-count-down/
│   │   │   └── u-count-down.vue
│   │   ├── u-count-to/
│   │   │   └── u-count-to.vue
│   │   ├── u-divider/
│   │   │   └── u-divider.vue
│   │   ├── u-dropdown/
│   │   │   └── u-dropdown.vue
│   │   ├── u-dropdown-item/
│   │   │   └── u-dropdown-item.vue
│   │   ├── u-empty/
│   │   │   └── u-empty.vue
│   │   ├── u-field/
│   │   │   └── u-field.vue
│   │   ├── u-form/
│   │   │   └── u-form.vue
│   │   ├── u-form-item/
│   │   │   └── u-form-item.vue
│   │   ├── u-full-screen/
│   │   │   └── u-full-screen.vue
│   │   ├── u-gap/
│   │   │   └── u-gap.vue
│   │   ├── u-grid/
│   │   │   └── u-grid.vue
│   │   ├── u-grid-item/
│   │   │   └── u-grid-item.vue
│   │   ├── u-icon/
│   │   │   └── u-icon.vue
│   │   ├── u-image/
│   │   │   └── u-image.vue
│   │   ├── u-index-anchor/
│   │   │   └── u-index-anchor.vue
│   │   ├── u-index-list/
│   │   │   └── u-index-list.vue
│   │   ├── u-input/
│   │   │   └── u-input.vue
│   │   ├── u-keyboard/
│   │   │   └── u-keyboard.vue
│   │   ├── u-lazy-load/
│   │   │   └── u-lazy-load.vue
│   │   ├── u-line/
│   │   │   └── u-line.vue
│   │   ├── u-line-progress/
│   │   │   └── u-line-progress.vue
│   │   ├── u-link/
│   │   │   └── u-link.vue
│   │   ├── u-loading/
│   │   │   └── u-loading.vue
│   │   ├── u-loading-page/
│   │   │   └── u-loading-page.vue
│   │   ├── u-loadmore/
│   │   │   └── u-loadmore.vue
│   │   ├── u-mask/
│   │   │   └── u-mask.vue
│   │   ├── u-message-input/
│   │   │   └── u-message-input.vue
│   │   ├── u-modal/
│   │   │   └── u-modal.vue
│   │   ├── u-navbar/
│   │   │   └── u-navbar.vue
│   │   ├── u-no-network/
│   │   │   └── u-no-network.vue
│   │   ├── u-notice-bar/
│   │   │   └── u-notice-bar.vue
│   │   ├── u-number-box/
│   │   │   └── u-number-box.vue
│   │   ├── u-number-keyboard/
│   │   │   └── u-number-keyboard.vue
│   │   ├── u-parse/
│   │   │   ├── libs/
│   │   │   │   ├── CssHandler.js
│   │   │   │   ├── MpHtmlParser.js
│   │   │   │   ├── config.js
│   │   │   │   ├── handler.wxs
│   │   │   │   └── trees.vue
│   │   │   └── u-parse.vue
│   │   ├── u-picker/
│   │   │   └── u-picker.vue
│   │   ├── u-popup/
│   │   │   └── u-popup.vue
│   │   ├── u-radio/
│   │   │   └── u-radio.vue
│   │   ├── u-radio-group/
│   │   │   └── u-radio-group.vue
│   │   ├── u-rate/
│   │   │   └── u-rate.vue
│   │   ├── u-read-more/
│   │   │   └── u-read-more.vue
│   │   ├── u-row/
│   │   │   └── u-row.vue
│   │   ├── u-row-notice/
│   │   │   └── u-row-notice.vue
│   │   ├── u-search/
│   │   │   └── u-search.vue
│   │   ├── u-section/
│   │   │   └── u-section.vue
│   │   ├── u-select/
│   │   │   └── u-select.vue
│   │   ├── u-skeleton/
│   │   │   └── u-skeleton.vue
│   │   ├── u-slider/
│   │   │   └── u-slider.vue
│   │   ├── u-steps/
│   │   │   └── u-steps.vue
│   │   ├── u-sticky/
│   │   │   └── u-sticky.vue
│   │   ├── u-subsection/
│   │   │   └── u-subsection.vue
│   │   ├── u-swipe-action/
│   │   │   └── u-swipe-action.vue
│   │   ├── u-swiper/
│   │   │   └── u-swiper.vue
│   │   ├── u-switch/
│   │   │   └── u-switch.vue
│   │   ├── u-tabbar/
│   │   │   └── u-tabbar.vue
│   │   ├── u-table/
│   │   │   └── u-table.vue
│   │   ├── u-tabs/
│   │   │   └── u-tabs.vue
│   │   ├── u-tabs-swiper/
│   │   │   └── u-tabs-swiper.vue
│   │   ├── u-tag/
│   │   │   └── u-tag.vue
│   │   ├── u-td/
│   │   │   └── u-td.vue
│   │   ├── u-th/
│   │   │   └── u-th.vue
│   │   ├── u-time-line/
│   │   │   └── u-time-line.vue
│   │   ├── u-time-line-item/
│   │   │   └── u-time-line-item.vue
│   │   ├── u-toast/
│   │   │   └── u-toast.vue
│   │   ├── u-top-tips/
│   │   │   └── u-top-tips.vue
│   │   ├── u-tr/
│   │   │   └── u-tr.vue
│   │   ├── u-upload/
│   │   │   └── u-upload.vue
│   │   ├── u-verification-code/
│   │   │   └── u-verification-code.vue
│   │   └── u-waterfall/
│   │       └── u-waterfall.vue
│   ├── iconfont.css
│   ├── index.js
│   ├── index.scss
│   ├── libs/
│   │   ├── config/
│   │   │   ├── config.js
│   │   │   └── zIndex.js
│   │   ├── css/
│   │   │   ├── color.scss
│   │   │   ├── common.scss
│   │   │   ├── style.components.scss
│   │   │   ├── style.h5.scss
│   │   │   ├── style.mp.scss
│   │   │   ├── style.nvue.scss
│   │   │   └── style.vue.scss
│   │   ├── function/
│   │   │   ├── $parent.js
│   │   │   ├── addUnit.js
│   │   │   ├── bem.js
│   │   │   ├── color.js
│   │   │   ├── colorGradient.js
│   │   │   ├── debounce.js
│   │   │   ├── deepClone.js
│   │   │   ├── deepMerge.js
│   │   │   ├── getParent.js
│   │   │   ├── guid.js
│   │   │   ├── md5.js
│   │   │   ├── queryParams.js
│   │   │   ├── random.js
│   │   │   ├── randomArray.js
│   │   │   ├── route.js
│   │   │   ├── sys.js
│   │   │   ├── test.js
│   │   │   ├── throttle.js
│   │   │   ├── timeFormat.js
│   │   │   ├── timeFrom.js
│   │   │   ├── toast.js
│   │   │   ├── trim.js
│   │   │   └── type2icon.js
│   │   ├── mixin/
│   │   │   ├── mixin.js
│   │   │   └── mpShare.js
│   │   ├── request/
│   │   │   └── index.js
│   │   ├── store/
│   │   │   └── index.js
│   │   └── util/
│   │       ├── area.js
│   │       ├── async-validator.js
│   │       ├── city.js
│   │       ├── emitter.js
│   │       └── province.js
│   ├── package.json
│   └── theme.scss
└── wechat.js
Download .txt
SYMBOL INDEX (1258 symbols across 70 files)

FILE: components/js-base64/base64.mjs
  constant VERSION (line 16) | const VERSION = version;

FILE: http/api/index.js
  function getSignature (line 4) | function getSignature(data){
  function H5Login (line 14) | function H5Login(data){
  function getactivelist (line 24) | function getactivelist(data) {
  function getactivelist2 (line 33) | function getactivelist2(data) {
  function getBannerlist (line 45) | function getBannerlist(data) {
  function getAdlist (line 55) | function getAdlist(data){
  function getApp (line 64) | function getApp(data) {
  function getItemLink (line 75) | function getItemLink(data) {
  function get_meituan_url (line 84) | function get_meituan_url(data) {
  function get_meituan_ewm (line 94) | function get_meituan_ewm(data) {

FILE: http/api/user.js
  function wxlogin (line 5) | function wxlogin(data) {
  function getUserInfo (line 16) | function getUserInfo(data) {
  function updateInfo (line 26) | function updateInfo(data) {
  function updatephone (line 37) | function updatephone(data) {
  function bindPromoter (line 48) | function bindPromoter(data) {
  function getOrderList (line 59) | function getOrderList(data) {
  function getPayOrderList (line 68) | function getPayOrderList(data) {
  function getTeamsList (line 79) | function getTeamsList(data) {
  function withdrawal (line 90) | function withdrawal(data) {
  function pointsfor (line 101) | function pointsfor(data) {
  function eleauth_url (line 111) | function eleauth_url(data) {
  function getwxqrcode (line 122) | function getwxqrcode(data) {
  function getOffQrcode (line 131) | function getOffQrcode(data) {

FILE: http/request.js
  function request (line 6) | function request(res) {

FILE: jweixin/index.js
  function M (line 629) | function M(n, e, i) {
  function P (line 635) | function P(n, i, t) {
  function x (line 641) | function x(e) {
  function V (line 646) | function V(e) {
  function A (line 656) | function A(e, n, i) {
  function C (line 689) | function C(e) {
  function B (line 700) | function B(e, n) {
  function L (line 707) | function L() {
  function O (line 711) | function O(e) {

FILE: store/index.js
  method setUserInfo (line 17) | setUserInfo(state,userinfo){
  method setAppInfo (line 20) | setAppInfo(state,appInfo){
  method setScene (line 23) | setScene(state,scene){
  method setele_currentid (line 26) | setele_currentid(state,ele_currentid){
  method setmeituan_currentid (line 29) | setmeituan_currentid(state,meituan_currentid){

FILE: unpackage/dist/build/mp-weixin/common/main.js
  function i (line 1) | function i(e){return e&&e.__esModule?e:{default:e}}
  function a (line 1) | function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){va...
  function f (line 1) | function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[...
  function l (line 1) | function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enume...
  function r (line 1) | function r(e){return e&&e.__esModule?e:{default:e}}
  function u (line 1) | function u(e,t,n,o,r,u,c){try{var i=e[u](c),a=i.value}catch(f){return vo...
  function c (line 1) | function c(e){return function(){var t=this,n=arguments;return new Promis...
  function n (line 1) | function n(e){return t.apply(this,arguments)}

FILE: unpackage/dist/build/mp-weixin/common/runtime.js
  function n (line 3) | function n(n){for(var t,u,a=n[0],c=n[1],s=n[2],l=0,p=[];l<a.length;l++)u...
  function o (line 3) | function o(){for(var e,n=0;n<i.length;n++){for(var o=i[n],t=!0,u=1;u<o.l...
  function a (line 3) | function a(e){return c.p+""+e+".js"}
  function c (line 3) | function c(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{...

FILE: unpackage/dist/build/mp-weixin/common/vendor.js
  function i (line 1) | function i(t){return t&&t.__esModule?t:{default:t}}
  function a (line 1) | function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a ...
  function u (line 1) | function u(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.en...
  function s (line 1) | function s(t,e,n){return e&&u(t.prototype,e),n&&u(t,n),t}
  function e (line 1) | function e(){var t=this;a(this,e),this.config={baseUrl:"",header:{},meth...
  function n (line 1) | function n(){return t.getSystemInfoSync().platform}
  function r (line 1) | function r(){return t.getSystemInfoSync()}
  function r (line 1) | function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function r (line 1) | function r(t){return/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-...
  function o (line 1) | function o(t){return/^1[23456789]\d{9}$/.test(t)}
  function i (line 1) | function i(t){return/http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w-.\/?%&=]*)?/.t...
  function a (line 1) | function a(t){return!/Invalid|NaN/.test(new Date(t).toString())}
  function u (line 1) | function u(t){return/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9...
  function s (line 1) | function s(t){return/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)}
  function c (line 1) | function c(t){return/^\d+$/.test(t)}
  function f (line 1) | function f(t){return/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3...
  function l (line 1) | function l(t){var e=/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(...
  function p (line 1) | function p(t){return/^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(t)}
  function h (line 1) | function h(t){var e=/^[\u4e00-\u9fa5]+$/gi;return e.test(t)}
  function d (line 1) | function d(t){return/^[a-zA-Z]*$/.test(t)}
  function v (line 1) | function v(t){var e=/^[0-9a-zA-Z]*$/g;return e.test(t)}
  function y (line 1) | function y(t,e){return t.indexOf(e)>=0}
  function g (line 1) | function g(t,e){return t>=e[0]&&t<=e[1]}
  function _ (line 1) | function _(t,e){return t.length>=e[0]&&t.length<=e[1]}
  function m (line 1) | function m(t){var e=/^\d{3,4}-\d{7,8}(-\d{3,4})?$/;return e.test(t)}
  function b (line 1) | function b(t){switch(typeof t){case"undefined":return!0;case"string":if(...
  function w (line 1) | function w(t){if("string"==typeof t)try{var e=JSON.parse(t);return!("obj...
  function A (line 1) | function A(t){return"function"===typeof Array.isArray?Array.isArray(t):"...
  function O (line 1) | function O(t){return"[object Object]"===Object.prototype.toString.call(t)}
  function $ (line 1) | function $(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function o (line 1) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 1) | function i(t){return(0,r.default)({url:"user/login/wxlogin",data:t,istok...
  function a (line 1) | function a(t){return(0,r.default)({url:"user/user/info",data:t})}
  function u (line 1) | function u(t){return(0,r.default)({url:"user/user/update",data:t,method:...
  function s (line 1) | function s(t){return(0,r.default)({url:"user/user/wxBindMobile",data:t,m...
  function c (line 1) | function c(t){return(0,r.default)({url:"user/user/bindPromoter",data:t,m...
  function f (line 1) | function f(t){return(0,r.default)({url:"user/order/index",data:t})}
  function l (line 1) | function l(t){return(0,r.default)({url:"user/money/log",data:t,method:"P...
  function p (line 1) | function p(t){return(0,r.default)({url:"user/user/teams",data:t,method:"...
  function h (line 1) | function h(t){return(0,r.default)({url:"user/pay_order/takeOutMoney",dat...
  function d (line 1) | function d(t){return(0,r.default)({url:"user/redeem_code/exchange",data:...
  function v (line 1) | function v(t){return(0,r.default)({url:"user/tbk/auth_url",data:t})}
  function y (line 1) | function y(t){return(0,r.default)({url:"user/user/wxQrcode",data:t})}
  function g (line 1) | function g(t){return(0,r.default)({url:"user/user/offQrcode",data:t})}
  function c (line 1) | function c(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. L...
  function f (line 1) | function f(t){var e=c(t),n=e[0],r=e[1];return 3*(n+r)/4-r}
  function l (line 1) | function l(t,e,n){return 3*(e+n)/4-n}
  function p (line 1) | function p(t){var e,n,r=c(t),a=r[0],u=r[1],s=new i(l(t,a,u)),f=0,p=u>0?a...
  function h (line 1) | function h(t){return r[t>>18&63]+r[t>>12&63]+r[t>>6&63]+r[63&t]}
  function d (line 1) | function d(t,e,n){for(var r,o=[],i=e;i<n;i+=3)r=(t[i]<<16&16711680)+(t[i...
  function v (line 1) | function v(t){for(var e,n=t.length,o=n%3,i=[],a=16383,u=0,s=n-o;u<s;u+=a...
  function o (line 1) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 1) | function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function r (line 1) | function r(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function i (line 1) | function i(t){return t&&t.__esModule?t:{default:t}}
  function o (line 1) | function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function r (line 7) | function r(t){var e=Number(t.version.split(".")[0]);if(e>=2)t.mixin({bef...
  function a (line 7) | function a(t){i&&(t._devtoolHook=i,i.emit("vuex:init",t),i.on("vuex:trav...
  function u (line 7) | function u(t,e){Object.keys(t).forEach((function(n){return e(t[n],n)}))}
  function s (line 7) | function s(t){return null!==t&&"object"===typeof t}
  function c (line 7) | function c(t){return t&&"function"===typeof t.then}
  function f (line 7) | function f(t,e){return function(){return t(e)}}
  function d (line 7) | function d(t,e,n){if(e.update(n),n.modules)for(var r in n.modules){if(!e...
  function _ (line 7) | function _(t,e,n){return e.indexOf(t)<0&&(n&&n.prepend?e.unshift(t):e.pu...
  function m (line 7) | function m(t,e){t._actions=Object.create(null),t._mutations=Object.creat...
  function b (line 7) | function b(t,e,n){var r=t._vm;t.getters={},t._makeLocalGettersCache=Obje...
  function w (line 7) | function w(t,e,n,r,o){var i=!n.length,a=t._modules.getNamespace(n);if(r....
  function A (line 7) | function A(t,e,n){var r=""===e,o={dispatch:r?t.dispatch:function(n,r,o){...
  function O (line 7) | function O(t,e){if(!t._makeLocalGettersCache[e]){var n={},r=e.length;Obj...
  function $ (line 7) | function $(t,e,n,r){var o=t._mutations[e]||(t._mutations[e]=[]);o.push((...
  function x (line 7) | function x(t,e,n,r){var o=t._actions[e]||(t._actions[e]=[]);o.push((func...
  function P (line 7) | function P(t,e,n,r){t._wrappedGetters[e]||(t._wrappedGetters[e]=function...
  function S (line 7) | function S(t){t._vm.$watch((function(){return this._data.$$state}),(func...
  function E (line 7) | function E(t,e){return e.reduce((function(t,e){return t[e]}),t)}
  function j (line 7) | function j(t,e,n){return s(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payloa...
  function k (line 7) | function k(t){v&&t===v||(v=t,r(v))}
  function D (line 7) | function D(t){return U(t)?Array.isArray(t)?t.map((function(t){return{key...
  function U (line 7) | function U(t){return Array.isArray(t)||s(t)}
  function L (line 7) | function L(t){return function(e,n){return"string"!==typeof e?(n=e,e=""):...
  function B (line 7) | function B(t,e,n){var r=t._modulesNamespaceMap[n];return r}
  function r (line 7) | function r(t){return u(t)||a(t)||i(t)||o()}
  function o (line 7) | function o(){throw new TypeError("Invalid attempt to spread non-iterable...
  function i (line 7) | function i(t,e){if(t){if("string"===typeof t)return s(t,e);var n=Object....
  function a (line 7) | function a(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(...
  function u (line 7) | function u(t){if(Array.isArray(t))return s(t)}
  function s (line 7) | function s(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Ar...
  function o (line 7) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 7) | function i(t){return(0,r.default)({url:"user/wx/getSignature",data:t,ist...
  function a (line 7) | function a(t){return(0,r.default)({url:"user/wx/officialAccountLogin",is...
  function u (line 7) | function u(t){return(0,r.default)({url:"user/index/index",data:t,method:...
  function s (line 7) | function s(t){return(0,r.default)({url:"user/index/index2",data:t,method...
  function c (line 7) | function c(t){return(0,r.default)({url:"user/index/banner",data:t,istoke...
  function f (line 7) | function f(t){return(0,r.default)({url:"user/index/ad",data:t,istoken:0})}
  function l (line 7) | function l(t){return(0,r.default)({url:"user/setting/index",data:t,istok...
  function p (line 7) | function p(t){return(0,r.default)({url:"user/index/get_url",data:t})}
  function h (line 7) | function h(t){return(0,r.default)({url:"user/index/get_meituan_url",data...
  function d (line 7) | function d(t){return(0,r.default)({url:"user/index/get_meituan_qrcode",d...
  function o (line 7) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 7) | function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function o (line 7) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 7) | function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){va...
  function a (line 7) | function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[...
  function u (line 7) | function u(t,e){return f(t)||c(t,e)||d(t,e)||s()}
  function s (line 7) | function s(){throw new TypeError("Invalid attempt to destructure non-ite...
  function c (line 7) | function c(t,e){if("undefined"!==typeof Symbol&&Symbol.iterator in Objec...
  function f (line 7) | function f(t){if(Array.isArray(t))return t}
  function l (line 7) | function l(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enume...
  function p (line 7) | function p(t){return y(t)||v(t)||d(t)||h()}
  function h (line 7) | function h(){throw new TypeError("Invalid attempt to spread non-iterable...
  function d (line 7) | function d(t,e){if(t){if("string"===typeof t)return g(t,e);var n=Object....
  function v (line 7) | function v(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(...
  function y (line 7) | function y(t){if(Array.isArray(t))return g(t)}
  function g (line 7) | function g(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Ar...
  function b (line 7) | function b(t){return"function"===typeof t}
  function w (line 7) | function w(t){return"string"===typeof t}
  function A (line 7) | function A(t){return"[object Object]"===_.call(t)}
  function O (line 7) | function O(t,e){return m.call(t,e)}
  function $ (line 7) | function $(){}
  function x (line 7) | function x(t){var e=Object.create(null);return function(n){var r=e[n];re...
  function T (line 7) | function T(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n?...
  function C (line 7) | function C(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.pu...
  function R (line 7) | function R(t,e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}
  function M (line 7) | function M(t,e){Object.keys(e).forEach((function(n){-1!==E.indexOf(n)&&b...
  function I (line 7) | function I(t,e){t&&e&&Object.keys(e).forEach((function(n){-1!==E.indexOf...
  function D (line 7) | function D(t,e){"string"===typeof t&&A(e)?M(k[t]||(k[t]={}),e):A(t)&&M(j...
  function U (line 7) | function U(t,e){"string"===typeof t?A(e)?I(k[t],e):delete k[t]:A(t)&&I(j...
  function L (line 7) | function L(t){return function(e){return t(e)||e}}
  function B (line 7) | function B(t){return!!t&&("object"===typeof t||"function"===typeof t)&&"...
  function N (line 7) | function N(t,e){for(var n=!1,r=0;r<t.length;r++){var o=t[r];if(n)n=Promi...
  function F (line 7) | function F(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function V (line 7) | function V(t,e){var n=[];Array.isArray(j.returnValue)&&n.push.apply(n,p(...
  function Y (line 7) | function Y(t){var e=Object.create(null);Object.keys(j).forEach((function...
  function G (line 7) | function G(t,e,n){for(var r=arguments.length,o=new Array(r>3?r-3:0),i=3;...
  function K (line 7) | function K(t){return q.test(t)&&-1===Z.indexOf(t)}
  function X (line 7) | function X(t){return z.test(t)&&-1===J.indexOf(t)}
  function Q (line 7) | function Q(t){return W.test(t)&&"onPush"!==t}
  function tt (line 7) | function tt(t){return t.then((function(t){return[null,t]})).catch((funct...
  function et (line 7) | function et(t){return!(K(t)||X(t)||Q(t))}
  function nt (line 7) | function nt(t,e){return et(t)?function(){for(var n=arguments.length>0&&v...
  function st (line 7) | function st(){var t=wx.getSystemInfoSync(),e=t.platform,n=t.pixelRatio,r...
  function ct (line 7) | function ct(t,e){if(0===at&&st(),t=Number(t),0===t)return 0;var n=t/ot*(...
  function pt (line 7) | function pt(t){var e=getCurrentPages(),n=e.length;while(n--){var r=e[n];...
  function gt (line 7) | function gt(t){ht=ht||wx.getStorageSync(yt),ht||(ht=Date.now()+""+Math.f...
  function _t (line 7) | function _t(t){if(t.safeArea){var e=t.safeArea;t.safeAreaInsets={top:e.t...
  function $t (line 7) | function $t(t,e,n){return function(r){return e(Pt(t,r,n))}}
  function xt (line 7) | function xt(t,e){var n=arguments.length>2&&void 0!==arguments[2]?argumen...
  function Pt (line 7) | function Pt(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]&&argu...
  function St (line 7) | function St(t,e){if(O(bt,t)){var n=bt[t];return n?function(e,r){var o=n;...
  function kt (line 7) | function kt(t){return function(e){var n=e.fail,r=e.complete,o={errMsg:""...
  function Ct (line 7) | function Ct(t){var e=t.service,n=t.success,r=t.fail,o=t.complete,i=!1;Tt...
  function It (line 7) | function It(t,e,n){return t[e].apply(t,n)}
  function Dt (line 7) | function Dt(){return It(Mt(),"$on",Array.prototype.slice.call(arguments))}
  function Ut (line 7) | function Ut(){return It(Mt(),"$off",Array.prototype.slice.call(arguments))}
  function Lt (line 7) | function Lt(){return It(Mt(),"$once",Array.prototype.slice.call(argument...
  function Bt (line 7) | function Bt(){return It(Mt(),"$emit",Array.prototype.slice.call(argument...
  function zt (line 7) | function zt(t){if(wx.canIUse&&wx.canIUse("nextTick")){var e=t.triggerEve...
  function qt (line 7) | function qt(t,e){var n=e[t];e[t]=n?function(){zt(this);for(var t=argumen...
  function Jt (line 7) | function Jt(t,e){var n=t.$mp[t.mpType];e.forEach((function(e){O(n,e)&&(t...
  function Wt (line 7) | function Wt(t,e){if(!e)return!0;if(r.default.options&&Array.isArray(r.de...
  function Kt (line 7) | function Kt(t,e,n){e.forEach((function(e){Wt(e,n)&&(t[e]=function(t){ret...
  function Xt (line 7) | function Xt(t,e){var n;return e=e.default||e,n=b(e)?e:t.extend(e),e=n.op...
  function Qt (line 7) | function Qt(t,e){if(Array.isArray(e)&&e.length){var n=Object.create(null...
  function te (line 7) | function te(t,e){t=(t||"").split(",");var n=t.length;1===n?e._$vueId=t[0...
  function ee (line 7) | function ee(t,e){var n=t.data||{},r=t.methods||{};if("function"===typeof...
  function re (line 7) | function re(t){return function(e,n){this.$vm&&(this.$vm[t]=e)}}
  function oe (line 7) | function oe(t,e){var n=t.behaviors,r=t.extends,o=t.mixins,i=t.props;i||(...
  function ie (line 7) | function ie(t,e,n,r){return Array.isArray(e)&&1===e.length?e[0]:e}
  function ae (line 7) | function ae(t){var e=arguments.length>1&&void 0!==arguments[1]&&argument...
  function ue (line 7) | function ue(t){try{t.mp=JSON.parse(JSON.stringify(t))}catch(e){}return t...
  function se (line 7) | function se(t,e){var n=t;return e.forEach((function(e){var r=e[0],o=e[2]...
  function ce (line 7) | function ce(t,e,n){var r={};return Array.isArray(e)&&e.length&&e.forEach...
  function fe (line 7) | function fe(t){for(var e={},n=1;n<t.length;n++){var r=t[n];e[r[0]]=r[1]}...
  function le (line 7) | function le(t,e){var n=arguments.length>2&&void 0!==arguments[2]?argumen...
  function de (line 7) | function de(t,e){return t===e||"regionchange"===e&&("begin"===t||"end"==...
  function ve (line 7) | function ve(t){var e=t.$parent;while(e&&e.$parent&&(e.$options.generic||...
  function ye (line 7) | function ye(t){var e=this;t=ue(t);var n=(t.currentTarget||t.target).data...
  function me (line 7) | function me(t){if(t){var e=ge[t];return delete ge[t],e}return _e.shift()}
  function we (line 7) | function we(){r.default.prototype.getOpenerEventChannel=function(){retur...
  function Ae (line 7) | function Ae(){var t={},e={};r.default.prototype.$hasScopedSlotsParams=fu...
  function Oe (line 7) | function Oe(t,e){var n=e.mocks,o=e.initRefs;we(),Ae(),t.$options.store&&...
  function xe (line 7) | function xe(t,e){for(var n,r=t.$children,o=r.length-1;o>=0;o--){var i=r[...
  function Pe (line 7) | function Pe(t){return Behavior(t)}
  function Se (line 7) | function Se(){return!!this.route}
  function Ee (line 7) | function Ee(t){this.triggerEvent("__l",t)}
  function je (line 7) | function je(t,e,n){var r=t.selectAllComponents(e);r.forEach((function(t)...
  function ke (line 7) | function ke(t){var e=t.$scope;Object.defineProperty(t,"$refs",{get:funct...
  function Te (line 7) | function Te(t){var e,n=t.detail||t.value,r=n.vuePid,o=n.vueOptions;r&&(e...
  function Ce (line 7) | function Ce(t){return Oe(t,{mocks:$e,initRefs:ke})}
  function Re (line 7) | function Re(t){return App(Ce(t)),t}
  function Le (line 7) | function Le(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments...
  function Be (line 7) | function Be(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments...
  function Ne (line 7) | function Ne(t){return Be(t,{isPage:Se,initRelation:Ee})}
  function Ve (line 7) | function Ve(t,e){e.isPage,e.initRelation;var n=Ne(t);return Kt(n.methods...
  function Ye (line 7) | function Ye(t){return Ve(t,{isPage:Se,initRelation:Ee})}
  function Ge (line 7) | function Ge(t){return Component(Ye(t))}
  function He (line 7) | function He(t){return Component(Ne(t))}
  function ze (line 7) | function ze(t){var e=Ce(t),n=getApp({allowDefault:!0}),r=n.globalData;if...
  function qe (line 7) | function qe(t){var e=Ce(t);if(b(e.onShow)&&wx.onAppShow&&wx.onAppShow((f...
  function r (line 7) | function r(t,e){if(t>=0&&e>0&&e>=t){var n=e-t+1;return Math.floor(Math.r...
  function n (line 7) | function n(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function r (line 13) | function r(t){return void 0===t||null===t}
  function o (line 13) | function o(t){return void 0!==t&&null!==t}
  function i (line 13) | function i(t){return!0===t}
  function a (line 13) | function a(t){return!1===t}
  function u (line 13) | function u(t){return"string"===typeof t||"number"===typeof t||"symbol"==...
  function s (line 13) | function s(t){return null!==t&&"object"===typeof t}
  function f (line 13) | function f(t){return"[object Object]"===c.call(t)}
  function l (line 13) | function l(t){return"[object RegExp]"===c.call(t)}
  function p (line 13) | function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e...
  function h (line 13) | function h(t){return o(t)&&"function"===typeof t.then&&"function"===type...
  function d (line 13) | function d(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===c?J...
  function v (line 13) | function v(t){var e=parseFloat(t);return isNaN(e)?t:e}
  function y (line 13) | function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.len...
  function _ (line 13) | function _(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(...
  function b (line 13) | function b(t,e){return m.call(t,e)}
  function w (line 13) | function w(t){var e=Object.create(null);return function(n){var r=e[n];re...
  function S (line 13) | function S(t,e){function n(n){var r=arguments.length;return r?r>1?t.appl...
  function E (line 13) | function E(t,e){return t.bind(e)}
  function k (line 13) | function k(t,e){e=e||0;var n=t.length-e,r=new Array(n);while(n--)r[n]=t[...
  function T (line 13) | function T(t,e){for(var n in e)t[n]=e[n];return t}
  function C (line 13) | function C(t){for(var e={},n=0;n<t.length;n++)t[n]&&T(e,t[n]);return e}
  function R (line 13) | function R(t,e,n){}
  function D (line 13) | function D(t,e){if(t===e)return!0;var n=s(t),r=s(e);if(!n||!r)return!n&&...
  function U (line 13) | function U(t,e){for(var n=0;n<t.length;n++)if(D(t[n],e))return n;return-1}
  function L (line 13) | function L(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments...
  function Y (line 13) | function Y(t){var e=(t+"").charCodeAt(0);return 36===e||95===e}
  function G (line 13) | function G(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,wr...
  function z (line 13) | function z(t){if(!H.test(t)){var e=t.split(".");return function(t){for(v...
  function at (line 13) | function at(t){return"function"===typeof t&&/native code/.test(t.toStrin...
  function t (line 13) | function t(){this.set=Object.create(null)}
  function pt (line 13) | function pt(t){lt.SharedObject.targetStack.push(t),lt.SharedObject.targe...
  function ht (line 13) | function ht(){lt.SharedObject.targetStack.pop(),lt.SharedObject.target=l...
  function gt (line 13) | function gt(t){return new dt(void 0,void 0,void 0,String(t))}
  function _t (line 13) | function _t(t){var e=new dt(t.tag,t.data,t.children&&t.children.slice(),...
  function $t (line 13) | function $t(t){Ot=t}
  function Pt (line 13) | function Pt(t,e){t.__proto__=e}
  function St (line 13) | function St(t,e,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];G(t,i,e[i])}}
  function Et (line 13) | function Et(t,e){var n;if(s(t)&&!(t instanceof dt))return b(t,"__ob__")&...
  function jt (line 13) | function jt(t,e,n,r,o){var i=new lt,a=Object.getOwnPropertyDescriptor(t,...
  function kt (line 13) | function kt(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t....
  function Tt (line 13) | function Tt(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__...
  function Ct (line 13) | function Ct(t){for(var e=void 0,n=0,r=t.length;n<r;n++)e=t[n],e&&e.__ob_...
  function Mt (line 13) | function Mt(t,e){if(!e)return t;for(var n,r,o,i=st?Reflect.ownKeys(e):Ob...
  function It (line 13) | function It(t,e,n){return n?function(){var r="function"===typeof e?e.cal...
  function Dt (line 13) | function Dt(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n...
  function Ut (line 13) | function Ut(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.p...
  function Lt (line 13) | function Lt(t,e,n,r){var o=Object.create(t||null);return e?T(o,e):o}
  function Nt (line 13) | function Nt(t,e){var n=t.props;if(n){var r,o,i,a={};if(Array.isArray(n))...
  function Ft (line 13) | function Ft(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray...
  function Vt (line 13) | function Vt(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"funct...
  function Yt (line 13) | function Yt(t,e,n){if("function"===typeof e&&(e=e.options),Nt(e,n),Ft(e,...
  function Gt (line 13) | function Gt(t,e,n,r){if("string"===typeof n){var o=t[e];if(b(o,n))return...
  function Ht (line 13) | function Ht(t,e,n,r){var o=e[t],i=!b(n,t),a=n[t],u=Jt(Boolean,o.type);if...
  function zt (line 13) | function zt(t,e,n){if(b(e,"default")){var r=e.default;return t&&t.$optio...
  function qt (line 13) | function qt(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return ...
  function Zt (line 13) | function Zt(t,e){return qt(t)===qt(e)}
  function Jt (line 13) | function Jt(t,e){if(!Array.isArray(e))return Zt(e,t)?0:-1;for(var n=0,r=...
  function Wt (line 13) | function Wt(t,e,n){pt();try{if(e){var r=e;while(r=r.$parent){var o=r.$op...
  function Kt (line 13) | function Kt(t,e,n,r,o){var i;try{i=n?t.apply(e,n):t.call(e),i&&!i._isVue...
  function Xt (line 13) | function Xt(t,e,n){if(F.errorHandler)try{return F.errorHandler.call(null...
  function Qt (line 13) | function Qt(t,e,n){if(!J&&!W||"undefined"===typeof console)throw t;conso...
  function re (line 13) | function re(){ne=!1;var t=ee.slice(0);ee.length=0;for(var e=0;e<t.length...
  function se (line 13) | function se(t,e){var n;if(ee.push((function(){if(t)try{t.call(e)}catch(n...
  function fe (line 13) | function fe(t){le(t,ce),ce.clear()}
  function le (line 13) | function le(t,e){var n,r,o=Array.isArray(t);if(!(!o&&!s(t)||Object.isFro...
  function he (line 13) | function he(t,e){function n(){var t=arguments,r=n.fns;if(!Array.isArray(...
  function de (line 13) | function de(t,e,n,o,a,u){var s,c,f,l;for(s in t)c=t[s],f=e[s],l=pe(s),r(...
  function ve (line 13) | function ve(t,e,n,i){var a=e.options.mpOptions&&e.options.mpOptions.prop...
  function ye (line 13) | function ye(t,e,n,i){var a=e.options.props;if(r(a))return ve(t,e,{},i);v...
  function ge (line 13) | function ge(t,e,n,r,i){if(o(e)){if(b(e,n))return t[n]=e[n],i||delete e[n...
  function _e (line 13) | function _e(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return ...
  function me (line 13) | function me(t){return u(t)?[gt(t)]:Array.isArray(t)?we(t):void 0}
  function be (line 13) | function be(t){return o(t)&&o(t.text)&&a(t.isComment)}
  function we (line 13) | function we(t,e){var n,a,s,c,f=[];for(n=0;n<t.length;n++)a=t[n],r(a)||"b...
  function Ae (line 13) | function Ae(t){var e=t.$options.provide;e&&(t._provided="function"===typ...
  function Oe (line 13) | function Oe(t){var e=$e(t.$options.inject,t);e&&($t(!1),Object.keys(e).f...
  function $e (line 13) | function $e(t,e){if(t){for(var n=Object.create(null),r=st?Reflect.ownKey...
  function xe (line 13) | function xe(t,e){if(!t||!t.length)return{};for(var n={},r=0,o=t.length;r...
  function Pe (line 13) | function Pe(t){return t.isComment&&!t.asyncFactory||" "===t.text}
  function Se (line 13) | function Se(t,e,r){var o,i=Object.keys(e).length>0,a=t?!!t.$stable:!i,u=...
  function Ee (line 13) | function Ee(t,e,n){var r=function(){var t=arguments.length?n.apply(null,...
  function je (line 13) | function je(t,e){return function(){return t[e]}}
  function ke (line 13) | function ke(t,e){var n,r,i,a,u;if(Array.isArray(t)||"string"===typeof t)...
  function Te (line 13) | function Te(t,e,n,r){var o,i=this.$scopedSlots[t];i?(n=n||{},r&&(n=T(T({...
  function Ce (line 13) | function Ce(t){return Gt(this.$options,"filters",t,!0)||I}
  function Re (line 13) | function Re(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}
  function Me (line 13) | function Me(t,e,n,r,o){var i=F.keyCodes[e]||n;return o&&r&&!F.keyCodes[e...
  function Ie (line 13) | function Ie(t,e,n,r,o){if(n)if(s(n)){var i;Array.isArray(n)&&(n=C(n));va...
  function De (line 13) | function De(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];...
  function Ue (line 13) | function Ue(t,e,n){return Le(t,"__once__"+e+(n?"_"+n:""),!0),t}
  function Le (line 13) | function Le(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&...
  function Be (line 13) | function Be(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}
  function Ne (line 13) | function Ne(t,e){if(e)if(f(e)){var n=t.on=t.on?T({},t.on):{};for(var r i...
  function Fe (line 13) | function Fe(t,e,n,r){e=e||{$stable:!n};for(var o=0;o<t.length;o++){var i...
  function Ve (line 13) | function Ve(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"===type...
  function Ye (line 13) | function Ye(t,e){return"string"===typeof t?e+t:t}
  function Ge (line 13) | function Ge(t){t._o=Ue,t._n=v,t._s=d,t._l=ke,t._t=Te,t._q=D,t._i=U,t._m=...
  function He (line 13) | function He(t,e,r,o,a){var u,s=this,c=a.options;b(o,"_uid")?(u=Object.cr...
  function ze (line 13) | function ze(t,e,r,i,a){var u=t.options,s={},c=u.props;if(o(c))for(var f ...
  function qe (line 13) | function qe(t,e,n,r,o){var i=_t(t);return i.fnContext=n,i.fnOptions=r,e....
  function Ze (line 13) | function Ze(t,e){for(var n in e)t[O(n)]=e[n]}
  function Ke (line 13) | function Ke(t,e,n,a,u){if(!r(t)){var c=n.$options._base;if(s(t)&&(t=c.ex...
  function Xe (line 13) | function Xe(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.dat...
  function Qe (line 13) | function Qe(t){for(var e=t.hook||(t.hook={}),n=0;n<We.length;n++){var r=...
  function tn (line 13) | function tn(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}
  function en (line 13) | function en(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model...
  function on (line 13) | function on(t,e,n,r,o,a){return(Array.isArray(n)||u(n))&&(o=r,r=n,n=void...
  function an (line 13) | function an(t,e,n,r,i){if(o(n)&&o(n.__ob__))return yt();if(o(n)&&o(n.is)...
  function un (line 13) | function un(t,e,n){if(t.ns=e,"foreignObject"===t.tag&&(e=void 0,n=!0),o(...
  function sn (line 13) | function sn(t){s(t.style)&&fe(t.style),s(t.class)&&fe(t.class)}
  function cn (line 13) | function cn(t){t._vnode=null,t._staticTrees=null;var e=t.$options,r=t.$v...
  function pn (line 13) | function pn(t){Ge(t.prototype),t.prototype.$nextTick=function(t){return ...
  function hn (line 13) | function hn(t,e){return(t.__esModule||st&&"Module"===t[Symbol.toStringTa...
  function dn (line 13) | function dn(t,e,n,r,o){var i=yt();return i.asyncFactory=t,i.asyncMeta={d...
  function vn (line 13) | function vn(t,e){if(i(t.error)&&o(t.errorComp))return t.errorComp;if(o(t...
  function yn (line 13) | function yn(t){return t.isComment&&t.asyncFactory}
  function gn (line 13) | function gn(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e...
  function _n (line 13) | function _n(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t....
  function mn (line 13) | function mn(t,e){fn.$on(t,e)}
  function bn (line 13) | function bn(t,e){fn.$off(t,e)}
  function wn (line 13) | function wn(t,e){var n=fn;return function r(){var o=e.apply(null,argumen...
  function An (line 13) | function An(t,e,n){fn=t,de(e,n||{},mn,bn,wn,t),fn=void 0}
  function On (line 13) | function On(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;i...
  function xn (line 13) | function xn(t){var e=$n;return $n=t,function(){$n=e}}
  function Pn (line 13) | function Pn(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){while(n.$o...
  function Sn (line 13) | function Sn(t){t.prototype._update=function(t,e){var n=this,r=n.$el,o=n....
  function En (line 13) | function En(t,e,r,o,i){var a=o.data.scopedSlots,u=t.$scopedSlots,s=!!(a&...
  function jn (line 13) | function jn(t){while(t&&(t=t.$parent))if(t._inactive)return!0;return!1}
  function kn (line 13) | function kn(t,e){if(e){if(t._directInactive=!1,jn(t))return}else if(t._d...
  function Tn (line 13) | function Tn(t,e){if((!e||(t._directInactive=!0,!jn(t)))&&!t._inactive){t...
  function Cn (line 13) | function Cn(t,e){pt();var n=t.$options[e],r=e+" hook";if(n)for(var o=0,i...
  function Bn (line 13) | function Bn(){Ln=Rn.length=Mn.length=0,In={},Dn=Un=!1}
  function Vn (line 13) | function Vn(){var t,e;for(Nn(),Un=!0,Rn.sort((function(t,e){return t.id-...
  function Yn (line 13) | function Yn(t){var e=t.length;while(e--){var n=t[e],r=n.vm;r._watcher===...
  function Gn (line 13) | function Gn(t){t._inactive=!1,Mn.push(t)}
  function Hn (line 13) | function Hn(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,kn(t[e],!0)}
  function zn (line 13) | function zn(t){var e=t.id;if(null==In[e]){if(In[e]=!0,Un){var n=Rn.lengt...
  function Wn (line 13) | function Wn(t,e,n){Jn.get=function(){return this[e][n]},Jn.set=function(...
  function Kn (line 13) | function Kn(t){t._watchers=[];var e=t.$options;e.props&&Xn(t,e.props),e....
  function Xn (line 13) | function Xn(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$optio...
  function Qn (line 13) | function Qn(t){var e=t.$options.data;e=t._data="function"===typeof e?tr(...
  function tr (line 13) | function tr(t,e){pt();try{return t.call(e,e)}catch(no){return Wt(no,e,"d...
  function nr (line 13) | function nr(t,e){var n=t._computedWatchers=Object.create(null),r=ot();fo...
  function rr (line 13) | function rr(t,e,n){var r=!ot();"function"===typeof n?(Jn.get=r?or(e):ir(...
  function or (line 13) | function or(t){return function(){var e=this._computedWatchers&&this._com...
  function ir (line 13) | function ir(t){return function(){return t.call(this,this)}}
  function ar (line 13) | function ar(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeo...
  function ur (line 13) | function ur(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var ...
  function sr (line 13) | function sr(t,e,n,r){return f(n)&&(r=n,n=n.handler),"string"===typeof n&...
  function cr (line 13) | function cr(t){var e={get:function(){return this._data}},n={get:function...
  function lr (line 13) | function lr(t){t.prototype._init=function(t){var e=this;e._uid=fr++,e._i...
  function pr (line 13) | function pr(t,e){var n=t.$options=Object.create(t.constructor.options),r...
  function hr (line 13) | function hr(t){var e=t.options;if(t.super){var n=hr(t.super),r=t.superOp...
  function dr (line 13) | function dr(t){var e,n=t.options,r=t.sealedOptions;for(var o in n)n[o]!=...
  function vr (line 13) | function vr(t){this._init(t)}
  function yr (line 13) | function yr(t){t.use=function(t){var e=this._installedPlugins||(this._in...
  function gr (line 13) | function gr(t){t.mixin=function(t){return this.options=Yt(this.options,t...
  function _r (line 13) | function _r(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r...
  function mr (line 13) | function mr(t){var e=t.options.props;for(var n in e)Wn(t.prototype,"_pro...
  function br (line 13) | function br(t){var e=t.options.computed;for(var n in e)rr(t.prototype,n,...
  function wr (line 13) | function wr(t){B.forEach((function(e){t[e]=function(t,n){return n?("comp...
  function Ar (line 13) | function Ar(t){return t&&(t.Ctor.options.name||t.tag)}
  function Or (line 13) | function Or(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===type...
  function $r (line 13) | function $r(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a...
  function xr (line 13) | function xr(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstanc...
  function jr (line 13) | function jr(t){var e={get:function(){return F}};Object.defineProperty(t,...
  function Cr (line 13) | function Cr(t,e){var n={};return Rr(t,e),Mr(t,e,"",n),n}
  function Rr (line 13) | function Rr(t,e){if(t!==e){var n=Dr(t),r=Dr(e);if(n==Tr&&r==Tr){if(Objec...
  function Mr (line 13) | function Mr(t,e,n,r){if(t!==e){var o=Dr(t),i=Dr(e);if(o==Tr)if(i!=Tr||Ob...
  function Ir (line 13) | function Ir(t,e,n){t[e]=n}
  function Dr (line 13) | function Dr(t){return Object.prototype.toString.call(t)}
  function Ur (line 13) | function Ur(t){if(t.__next_tick_callbacks&&t.__next_tick_callbacks.lengt...
  function Lr (line 13) | function Lr(t){return Rn.find((function(e){return t._watcher===e}))}
  function Br (line 13) | function Br(t,e){if(!t.__next_tick_pending&&!Lr(t)){if(Object({NODE_ENV:...
  function Nr (line 13) | function Nr(t){var e=Object.create(null),n=[].concat(Object.keys(t._data...
  function Vr (line 13) | function Vr(){}
  function Yr (line 13) | function Yr(t,e,n){if(!t.mpType)return t;"app"===t.mpType&&(t.$options.r...
  function Gr (line 13) | function Gr(t,e){return o(t)||o(e)?Hr(t,zr(e)):""}
  function Hr (line 13) | function Hr(t,e){return t?e?t+" "+e:t:e||""}
  function zr (line 13) | function zr(t){return Array.isArray(t)?qr(t):s(t)?Zr(t):"string"===typeo...
  function qr (line 13) | function qr(t){for(var e,n="",r=0,i=t.length;r<i;r++)o(e=zr(t[r]))&&""!=...
  function Zr (line 13) | function Zr(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}
  function Wr (line 13) | function Wr(t){return Array.isArray(t)?C(t):"string"===typeof t?Jr(t):t}
  function Xr (line 13) | function Xr(t,e){var n=e.split("."),r=n[0];return 0===r.indexOf("__$n")&...
  function Qr (line 13) | function Qr(t){t.config.errorHandler=function(e,n,r){t.util.warn("Error ...
  function eo (line 13) | function eo(t){var e=t.extend;t.extend=function(t){t=t||{};var n=t.metho...
  function o (line 13) | function o(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[...
  function r (line 13) | function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function o (line 13) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 13) | function i(t,e,n,r,o,i,a){try{var u=t[i](a),s=u.value}catch(c){return vo...
  function a (line 13) | function a(t){return function(){var e=this,n=arguments;return new Promis...
  function u (line 13) | function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a ...
  function s (line 13) | function s(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.en...
  function c (line 13) | function c(t,e,n){return e&&s(t.prototype,e),n&&s(t,n),t}
  function e (line 13) | function e(){u(this,e),this.config={type:"navigateTo",url:"",delta:1,par...
  function n (line 13) | function n(){return e.apply(this,arguments)}
  function E (line 13) | function E(t){return t&&t.__esModule?t:{default:t}}
  function j (line 13) | function j(t){0}
  function r (line 13) | function r(r,o){return u.type="throw",u.arg=t,e.next=r,o&&(e.method="nex...
  function b (line 13) | function b(t,e,n,r){var o=e&&e.prototype instanceof A?e:A,i=Object.creat...
  function w (line 13) | function w(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(r){ret...
  function A (line 13) | function A(){}
  function O (line 13) | function O(){}
  function $ (line 13) | function $(){}
  function x (line 13) | function x(t){["next","throw","return"].forEach((function(e){t[e]=functi...
  function P (line 13) | function P(t){function e(n,r,i,a){var u=w(t[n],t,r);if("throw"!==u.type)...
  function S (line 13) | function S(t,e,n){var r=l;return function(o,i){if(r===h)throw new Error(...
  function E (line 13) | function E(t,e){var r=t.iterator[e.method];if(r===n){if(e.delegate=null,...
  function j (line 13) | function j(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.f...
  function k (line 13) | function k(t){var e=t.completion||{};e.type="normal",delete e.arg,t.comp...
  function T (line 13) | function T(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(j,this),this.r...
  function C (line 13) | function C(t){if(t){var e=t[a];if(e)return e.call(t);if("function"===typ...
  function R (line 13) | function R(){return{value:n,done:!0}}
  function i (line 13) | function i(t){return t&&t.__esModule?t:{default:t}}
  function r (line 13) | function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function o (line 13) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 13) | function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){va...
  function a (line 13) | function a(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[...
  function u (line 13) | function u(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enume...
  function c (line 13) | function c(e){var n=e.url,r=e.data,o=e.method,i=0==e.istoken?e.istoken:1...
  function r (line 13) | function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function a (line 20) | function a(){try{var t=new Uint8Array(1);return t.__proto__={__proto__:U...
  function u (line 20) | function u(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}
  function s (line 20) | function s(t,e){if(u()<e)throw new RangeError("Invalid typed array lengt...
  function c (line 20) | function c(t,e,n){if(!c.TYPED_ARRAY_SUPPORT&&!(this instanceof c))return...
  function f (line 20) | function f(t,e,n,r){if("number"===typeof e)throw new TypeError('"value" ...
  function l (line 20) | function l(t){if("number"!==typeof t)throw new TypeError('"size" argumen...
  function p (line 20) | function p(t,e,n,r){return l(e),e<=0?s(t,e):void 0!==n?"string"===typeof...
  function h (line 20) | function h(t,e){if(l(e),t=s(t,e<0?0:0|_(e)),!c.TYPED_ARRAY_SUPPORT)for(v...
  function d (line 20) | function d(t,e,n){if("string"===typeof n&&""!==n||(n="utf8"),!c.isEncodi...
  function v (line 20) | function v(t,e){var n=e.length<0?0:0|_(e.length);t=s(t,n);for(var r=0;r<...
  function y (line 20) | function y(t,e,n,r){if(e.byteLength,n<0||e.byteLength<n)throw new RangeE...
  function g (line 20) | function g(t,e){if(c.isBuffer(e)){var n=0|_(e.length);return t=s(t,n),0=...
  function _ (line 20) | function _(t){if(t>=u())throw new RangeError("Attempt to allocate Buffer...
  function m (line 20) | function m(t){return+t!=t&&(t=0),c.alloc(+t)}
  function b (line 20) | function b(t,e){if(c.isBuffer(t))return t.length;if("undefined"!==typeof...
  function w (line 20) | function w(t,e,n){var r=!1;if((void 0===e||e<0)&&(e=0),e>this.length)ret...
  function A (line 20) | function A(t,e,n){var r=t[e];t[e]=t[n],t[n]=r}
  function O (line 20) | function O(t,e,n,r,o){if(0===t.length)return-1;if("string"===typeof n?(r...
  function $ (line 20) | function $(t,e,n,r,o){var i,a=1,u=t.length,s=e.length;if(void 0!==r&&(r=...
  function x (line 20) | function x(t,e,n,r){n=Number(n)||0;var o=t.length-n;r?(r=Number(r),r>o&&...
  function P (line 20) | function P(t,e,n,r){return tt(W(e,t.length-n),t,n,r)}
  function S (line 20) | function S(t,e,n,r){return tt(K(e),t,n,r)}
  function E (line 20) | function E(t,e,n,r){return S(t,e,n,r)}
  function j (line 20) | function j(t,e,n,r){return tt(Q(e),t,n,r)}
  function k (line 20) | function k(t,e,n,r){return tt(X(e,t.length-n),t,n,r)}
  function T (line 20) | function T(t,e,n){return 0===e&&n===t.length?r.fromByteArray(t):r.fromBy...
  function C (line 20) | function C(t,e,n){n=Math.min(t.length,n);var r=[],o=e;while(o<n){var i,a...
  function M (line 20) | function M(t){var e=t.length;if(e<=R)return String.fromCharCode.apply(St...
  function I (line 20) | function I(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+...
  function D (line 20) | function D(t,e,n){var r="";n=Math.min(t.length,n);for(var o=e;o<n;++o)r+...
  function U (line 20) | function U(t,e,n){var r=t.length;(!e||e<0)&&(e=0),(!n||n<0||n>r)&&(n=r);...
  function L (line 20) | function L(t,e,n){for(var r=t.slice(e,n),o="",i=0;i<r.length;i+=2)o+=Str...
  function B (line 20) | function B(t,e,n){if(t%1!==0||t<0)throw new RangeError("offset is not ui...
  function N (line 20) | function N(t,e,n,r,o,i){if(!c.isBuffer(t))throw new TypeError('"buffer" ...
  function F (line 20) | function F(t,e,n,r){e<0&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-n...
  function V (line 20) | function V(t,e,n,r){e<0&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.len...
  function Y (line 20) | function Y(t,e,n,r,o,i){if(n+r>t.length)throw new RangeError("Index out ...
  function G (line 20) | function G(t,e,n,r,i){return i||Y(t,e,n,4,34028234663852886e22,-34028234...
  function H (line 20) | function H(t,e,n,r,i){return i||Y(t,e,n,8,17976931348623157e292,-1797693...
  function q (line 20) | function q(t){if(t=Z(t).replace(z,""),t.length<2)return"";while(t.length...
  function Z (line 20) | function Z(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}
  function J (line 20) | function J(t){return t<16?"0"+t.toString(16):t.toString(16)}
  function W (line 20) | function W(t,e){var n;e=e||1/0;for(var r=t.length,o=null,i=[],a=0;a<r;++...
  function K (line 20) | function K(t){for(var e=[],n=0;n<t.length;++n)e.push(255&t.charCodeAt(n)...
  function X (line 20) | function X(t,e){for(var n,r,o,i=[],a=0;a<t.length;++a){if((e-=2)<0)break...
  function Q (line 20) | function Q(t){return r.toByteArray(q(t))}
  function tt (line 20) | function tt(t,e,n,r){for(var o=0;o<r;++o){if(o+n>=e.length||o>=t.length)...
  function et (line 20) | function et(t){return t!==t}
  function r (line 20) | function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function o (line 20) | function o(t){return t&&t.__esModule?t:{default:t}}
  function i (line 20) | function i(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function r (line 20) | function r(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0...
  function r (line 20) | function r(t,e){var n=this.$parent;while(n)if(n.$options.name!==t)n=n.$p...
  function r (line 20) | function r(t){return"[object Array]"===Object.prototype.toString.call(t)}
  function o (line 20) | function o(t){if([null,void 0,NaN,!1].includes(t))return t;if("object"!=...
  function r (line 20) | function r(t,e,n,r,o,i,a,u,s,c){var f,l="function"===typeof t?t.options:...
  function r (line 20) | function r(){for(var t=arguments.length>0&&void 0!==arguments[0]?argumen...
  function o (line 20) | function o(t){var e=!(arguments.length>1&&void 0!==arguments[1])||argume...
  function i (line 20) | function i(t){var e=t,n=/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;if(/^(rgb|R...
  function a (line 20) | function a(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[...

FILE: unpackage/dist/build/mp-weixin/pages/ele/ele.js
  function e (line 1) | function e(t){return t&&t.__esModule?t:{default:t}}

FILE: unpackage/dist/build/mp-weixin/pages/index/child1.js
  function u (line 1) | function u(n){return n&&n.__esModule?n:{default:n}}

FILE: unpackage/dist/build/mp-weixin/pages/index/child2.js
  function f (line 1) | function f(n){return n&&n.__esModule?n:{default:n}}

FILE: unpackage/dist/build/mp-weixin/pages/index/index.js
  function i (line 1) | function i(e){return e&&e.__esModule?e:{default:e}}

FILE: unpackage/dist/build/mp-weixin/pages/index/url/url.js
  function e (line 1) | function e(n){return n&&n.__esModule?n:{default:n}}

FILE: unpackage/dist/build/mp-weixin/pages/meituan/meituan.js
  function e (line 1) | function e(t){return t&&t.__esModule?t:{default:t}}

FILE: unpackage/dist/build/mp-weixin/pages/user/binding.js
  function u (line 1) | function u(t){return t&&t.__esModule?t:{default:t}}

FILE: unpackage/dist/build/mp-weixin/pages/user/order.js
  function n (line 1) | function n(t){return i(t)||a(t)||o(t)||r()}
  function r (line 1) | function r(){throw new TypeError("Invalid attempt to spread non-iterable...
  function o (line 1) | function o(t,e){if(t){if("string"===typeof t)return u(t,e);var n=Object....
  function a (line 1) | function a(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(...
  function i (line 1) | function i(t){if(Array.isArray(t))return u(t)}
  function u (line 1) | function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Ar...
  function r (line 1) | function r(t){return t&&t.__esModule?t:{default:t}}

FILE: unpackage/dist/build/mp-weixin/pages/user/team.js
  function a (line 1) | function a(t){return t&&t.__esModule?t:{default:t}}
  function a (line 1) | function a(t){return u(t)||i(t)||o(t)||r()}
  function r (line 1) | function r(){throw new TypeError("Invalid attempt to spread non-iterable...
  function o (line 1) | function o(t,e){if(t){if("string"===typeof t)return c(t,e);var n=Object....
  function i (line 1) | function i(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(...
  function u (line 1) | function u(t){if(Array.isArray(t))return c(t)}
  function c (line 1) | function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=new Ar...

FILE: unpackage/dist/build/mp-weixin/pages/user/user.js
  function o (line 1) | function o(t){return t&&t.__esModule?t:{default:t}}

FILE: unpackage/dist/build/mp-weixin/pages/wallet/wallet.js
  function o (line 1) | function o(t){return t&&t.__esModule?t:{default:t}}
  function e (line 1) | function e(t){return a(t)||r(t)||i(t)||o()}
  function o (line 1) | function o(){throw new TypeError("Invalid attempt to spread non-iterable...
  function i (line 1) | function i(t,n){if(t){if("string"===typeof t)return u(t,n);var e=Object....
  function r (line 1) | function r(t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(...
  function a (line 1) | function a(t){if(Array.isArray(t))return u(t)}
  function u (line 1) | function u(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,o=new Ar...

FILE: unpackage/dist/build/mp-weixin/uview-ui/components/u-tabs/u-tabs.js
  function i (line 1) | function i(t){return t&&t.__esModule?t:{default:t}}
  function a (line 1) | function a(t,e,n,r,i,a,u){try{var o=t[a](u),c=o.value}catch(l){return vo...
  function u (line 1) | function u(t){return function(){var e=this,n=arguments;return new Promis...

FILE: unpackage/dist/dev/mp-weixin/common/main.js
  function _interopRequireDefault (line 18) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function ownKeys (line 18) | function ownKeys(object, enumerableOnly) {var keys = Object.keys(object)...
  function _objectSpread (line 18) | function _objectSpread(target) {for (var i = 1; i < arguments.length; i+...
  function _defineProperty (line 18) | function _defineProperty(obj, key, value) {if (key in obj) {Object.defin...
  function _interopRequireDefault (line 109) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function asyncGeneratorStep (line 109) | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, ar...
  function _asyncToGenerator (line 109) | function _asyncToGenerator(fn) {return function () {var self = this,args...
  function onLaunch (line 189) | function onLaunch(_x) {return _onLaunch.apply(this, arguments);}

FILE: unpackage/dist/dev/mp-weixin/common/runtime.js
  function webpackJsonpCallback (line 5) | function webpackJsonpCallback(data) {
  function checkDeferredModules (line 37) | function checkDeferredModules() {
  function jsonpScriptSrc (line 73) | function jsonpScriptSrc(chunkId) {
  function __webpack_require__ (line 78) | function __webpack_require__(moduleId) {

FILE: unpackage/dist/dev/mp-weixin/common/vendor.js
  function _interopRequireDefault (line 11) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function ownKeys (line 11) | function ownKeys(object, enumerableOnly) {var keys = Object.keys(object)...
  function _objectSpread (line 11) | function _objectSpread(target) {for (var i = 1; i < arguments.length; i+...
  function _slicedToArray (line 11) | function _slicedToArray(arr, i) {return _arrayWithHoles(arr) || _iterabl...
  function _nonIterableRest (line 11) | function _nonIterableRest() {throw new TypeError("Invalid attempt to des...
  function _iterableToArrayLimit (line 11) | function _iterableToArrayLimit(arr, i) {if (typeof Symbol === "undefined...
  function _arrayWithHoles (line 11) | function _arrayWithHoles(arr) {if (Array.isArray(arr)) return arr;}
  function _defineProperty (line 11) | function _defineProperty(obj, key, value) {if (key in obj) {Object.defin...
  function _toConsumableArray (line 11) | function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _ite...
  function _nonIterableSpread (line 11) | function _nonIterableSpread() {throw new TypeError("Invalid attempt to s...
  function _unsupportedIterableToArray (line 11) | function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (type...
  function _iterableToArray (line 11) | function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Sy...
  function _arrayWithoutHoles (line 11) | function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayL...
  function _arrayLikeToArray (line 11) | function _arrayLikeToArray(arr, len) {if (len == null || len > arr.lengt...
  function isFn (line 16) | function isFn(fn) {
  function isStr (line 20) | function isStr(str) {
  function isPlainObject (line 24) | function isPlainObject(obj) {
  function hasOwn (line 28) | function hasOwn(obj, key) {
  function noop (line 32) | function noop() {}
  function cached (line 37) | function cached(fn) {
  function mergeHook (line 64) | function mergeHook(parentVal, childVal) {
  function dedupeHooks (line 76) | function dedupeHooks(hooks) {
  function removeHook (line 86) | function removeHook(hooks, hook) {
  function mergeInterceptorHook (line 93) | function mergeInterceptorHook(interceptor, option) {
  function removeInterceptorHook (line 101) | function removeInterceptorHook(interceptor, option) {
  function addInterceptor (line 112) | function addInterceptor(method, option) {
  function removeInterceptor (line 120) | function removeInterceptor(method, option) {
  function wrapperHook (line 132) | function wrapperHook(hook) {
  function isPromise (line 138) | function isPromise(obj) {
  function queue (line 142) | function queue(hooks, data) {
  function wrapperOptions (line 167) | function wrapperOptions(interceptor) {var options = arguments.length > 1...
  function wrapperReturnValue (line 182) | function wrapperReturnValue(method, returnValue) {
  function getApiInterceptorHooks (line 197) | function getApiInterceptorHooks(method) {
  function invokeApi (line 215) | function invokeApi(method, api, options) {for (var _len = arguments.leng...
  function isContextApi (line 256) | function isContextApi(name) {
  function isSyncApi (line 259) | function isSyncApi(name) {
  function isCallbackApi (line 263) | function isCallbackApi(name) {
  function handlePromise (line 267) | function handlePromise(promise) {
  function shouldPromise (line 274) | function shouldPromise(name) {
  function promisify (line 298) | function promisify(name, api) {
  function checkDeviceWidth (line 321) | function checkDeviceWidth() {var _wx$getSystemInfoSync =
  function upx2px (line 333) | function upx2px(number, newDeviceWidth) {
  function findExistsPageIndex (line 369) | function findExistsPageIndex(url) {
  function addUuid (line 437) | function addUuid(result) {
  function addSafeAreaInsets (line 449) | function addSafeAreaInsets(result) {
  function processCallback (line 487) | function processCallback(methodName, method, returnValue) {
  function processArgs (line 493) | function processArgs(methodName, fromArgs) {var argsOption = arguments.l...
  function processReturnValue (line 529) | function processReturnValue(methodName, res, returnValue) {var keepRetur...
  function wrapper (line 536) | function wrapper(methodName, method) {
  function createTodoApi (line 582) | function createTodoApi(name) {
  function getProvider (line 606) | function getProvider(_ref2)
  function apply (line 644) | function apply(ctx, method, args) {
  function $on (line 648) | function $on() {
  function $off (line 651) | function $off() {
  function $once (line 654) | function $once() {
  function $emit (line 657) | function $emit() {
  function initTriggerEvent (line 682) | function initTriggerEvent(mpInstance) {
  function initHook (line 694) | function initHook(name, options) {
  function initMocks (line 732) | function initMocks(vm, mocks) {
  function hasHook (line 741) | function hasHook(hook, vueOptions) {
  function initHooks (line 773) | function initHooks(mpOptions, hooks, vueOptions) {
  function initVueComponent (line 783) | function initVueComponent(Vue, vueOptions) {
  function initSlots (line 795) | function initSlots(vm, vueSlots) {
  function initVueIds (line 805) | function initVueIds(vueIds, mpInstance) {
  function initData (line 817) | function initData(vueOptions, context) {
  function createObserver (line 851) | function createObserver(name) {
  function initBehaviors (line 859) | function initBehaviors(vueOptions, initBehavior) {
  function parsePropType (line 912) | function parsePropType(key, type, defaultValue, file) {
  function initProperties (line 920) | function initProperties(props) {var isBehavior = arguments.length > 1 &&...
  function wrapper$1 (line 981) | function wrapper$1(event) {
  function getExtraValue (line 1008) | function getExtraValue(vm, dataPathsArray) {
  function processEventExtra (line 1056) | function processEventExtra(vm, extra, event) {
  function getObjByArray (line 1099) | function getObjByArray(arr) {
  function processEventArgs (line 1108) | function processEventArgs(vm, event) {var args = arguments.length > 2 &&...
  function isMatchEventType (line 1153) | function isMatchEventType(eventType, optType) {
  function getContextVm (line 1164) | function getContextVm(vm) {
  function handleEvent (line 1173) | function handleEvent(event) {var _this = this;
  function getEventChannel (line 1263) | function getEventChannel(id) {
  function initEventChannel (line 1281) | function initEventChannel() {
  function initScopedSlotsParams (line 1298) | function initScopedSlotsParams() {
  function parseBaseApp (line 1347) | function parseBaseApp(vm, _ref3)
  function findVmByVueId (line 1436) | function findVmByVueId(vm, vuePid) {
  function initBehavior (line 1455) | function initBehavior(options) {
  function isPage (line 1459) | function isPage() {
  function initRelation (line 1463) | function initRelation(detail) {
  function selectAllComponents (line 1467) | function selectAllComponents(mpInstance, selector, $refs) {
  function initRefs (line 1482) | function initRefs(vm) {
  function handleLink (line 1502) | function handleLink(event) {var _ref4 =
  function parseApp (line 1521) | function parseApp(vm) {
  function createApp (line 1528) | function createApp(vm) {
  function stringifyQuery (line 1544) | function stringifyQuery(obj) {var encodeStr = arguments.length > 1 && ar...
  function parseBaseComponent (line 1576) | function parseBaseComponent(vueComponentOptions)
  function parseComponent (line 1675) | function parseComponent(vueComponentOptions) {
  function parseBasePage (line 1690) | function parseBasePage(vuePageOptions, _ref6)
  function parsePage (line 1712) | function parsePage(vuePageOptions) {
  function createPage (line 1719) | function createPage(vuePageOptions) {
  function createComponent (line 1725) | function createComponent(vueOptions) {
  function createSubpackageApp (line 1731) | function createSubpackageApp(vm) {
  function createPlugin (line 1766) | function createPlugin(vm) {
  function isUndef (line 1892) | function isUndef (v) {
  function isDef (line 1896) | function isDef (v) {
  function isTrue (line 1900) | function isTrue (v) {
  function isFalse (line 1904) | function isFalse (v) {
  function isPrimitive (line 1911) | function isPrimitive (value) {
  function isObject (line 1926) | function isObject (obj) {
  function toRawType (line 1935) | function toRawType (value) {
  function isPlainObject (line 1943) | function isPlainObject (obj) {
  function isRegExp (line 1947) | function isRegExp (v) {
  function isValidArrayIndex (line 1954) | function isValidArrayIndex (val) {
  function isPromise (line 1959) | function isPromise (val) {
  function toString (line 1970) | function toString (val) {
  function toNumber (line 1982) | function toNumber (val) {
  function makeMap (line 1991) | function makeMap (
  function remove (line 2018) | function remove (arr, item) {
  function hasOwn (line 2031) | function hasOwn (obj, key) {
  function cached (line 2038) | function cached (fn) {
  function polyfillBind (line 2078) | function polyfillBind (fn, ctx) {
  function nativeBind (line 2092) | function nativeBind (fn, ctx) {
  function toArray (line 2103) | function toArray (list, start) {
  function extend (line 2116) | function extend (to, _from) {
  function toObject (line 2126) | function toObject (arr) {
  function noop (line 2143) | function noop (a, b, c) {}
  function looseEqual (line 2161) | function looseEqual (a, b) {
  function looseIndexOf (line 2201) | function looseIndexOf (arr, val) {
  function once (line 2211) | function once (fn) {
  function isReserved (line 2352) | function isReserved (str) {
  function def (line 2360) | function def (obj, key, val, enumerable) {
  function parsePath (line 2373) | function parsePath (path) {
  function isNative (line 2440) | function isNative (Ctor) {
  function Set (line 2456) | function Set () {
  function pushTarget (line 2620) | function pushTarget (target) {
  function popTarget (line 2626) | function popTarget () {
  function createTextVNode (line 2688) | function createTextVNode (val) {
  function cloneVNode (line 2696) | function cloneVNode (vnode) {
  function toggleObserving (line 2779) | function toggleObserving (value) {
  function protoAugment (line 2839) | function protoAugment (target, src) {
  function copyAugment (line 2850) | function copyAugment (target, src, keys) {
  function observe (line 2862) | function observe (value, asRootData) {
  function defineReactive$$1 (line 2887) | function defineReactive$$1 (
  function set (line 2953) | function set (target, key, val) {
  function del (line 2988) | function del (target, key) {
  function dependArray (line 3020) | function dependArray (value) {
  function mergeData (line 3057) | function mergeData (to, from) {
  function mergeDataOrFn (line 3087) | function mergeDataOrFn (
  function mergeHook (line 3154) | function mergeHook (
  function dedupeHooks (line 3170) | function dedupeHooks (hooks) {
  function mergeAssets (line 3191) | function mergeAssets (
  function checkComponents (line 3281) | function checkComponents (options) {
  function validateComponentName (line 3287) | function validateComponentName (name) {
  function normalizeProps (line 3306) | function normalizeProps (options, vm) {
  function normalizeInject (line 3343) | function normalizeInject (options, vm) {
  function normalizeDirectives (line 3370) | function normalizeDirectives (options) {
  function assertObjectType (line 3382) | function assertObjectType (name, value, vm) {
  function mergeOptions (line 3396) | function mergeOptions (
  function resolveAsset (line 3450) | function resolveAsset (
  function validateProp (line 3482) | function validateProp (
  function getPropDefaultValue (line 3526) | function getPropDefaultValue (vm, prop, key) {
  function assertProp (line 3559) | function assertProp (
  function assertType (line 3610) | function assertType (value, type) {
  function getType (line 3638) | function getType (fn) {
  function isSameType (line 3643) | function isSameType (a, b) {
  function getTypeIndex (line 3647) | function getTypeIndex (type, expectedTypes) {
  function getInvalidTypeMessage (line 3659) | function getInvalidTypeMessage (name, value, expectedTypes) {
  function styleValue (line 3680) | function styleValue (value, type) {
  function isExplicable (line 3690) | function isExplicable (value) {
  function isBoolean (line 3695) | function isBoolean () {
  function handleError (line 3704) | function handleError (err, vm, info) {
  function invokeWithErrorHandling (line 3731) | function invokeWithErrorHandling (
  function globalHandleError (line 3753) | function globalHandleError (err, vm, info) {
  function logError (line 3768) | function logError (err, vm, info) {
  function flushCallbacks (line 3785) | function flushCallbacks () {
  function nextTick (line 3857) | function nextTick (cb, ctx) {
  function traverse (line 3981) | function traverse (val) {
  function _traverse (line 3986) | function _traverse (val, seen) {
  function createFnInvoker (line 4049) | function createFnInvoker (fns, vm) {
  function updateListeners (line 4068) | function updateListeners (
  function extractPropertiesFromVNodeData (line 4112) | function extractPropertiesFromVNodeData(data, Ctor, res, context) {
  function extractPropsFromVNodeData (line 4140) | function extractPropsFromVNodeData (
  function checkProp (line 4184) | function checkProp (
  function simpleNormalizeChildren (line 4223) | function simpleNormalizeChildren (children) {
  function normalizeChildren (line 4236) | function normalizeChildren (children) {
  function isTextNode (line 4244) | function isTextNode (node) {
  function normalizeArrayChildren (line 4248) | function normalizeArrayChildren (children, nestedIndex) {
  function initProvide (line 4298) | function initProvide (vm) {
  function initInjections (line 4307) | function initInjections (vm) {
  function resolveInject (line 4328) | function resolveInject (inject, vm) {
  function resolveSlots (line 4371) | function resolveSlots (
  function isWhitespace (line 4416) | function isWhitespace (node) {
  function normalizeScopedSlots (line 4422) | function normalizeScopedSlots (
  function normalizeScopedSlot (line 4472) | function normalizeScopedSlot(normalSlots, key, fn) {
  function proxyNormalSlot (line 4497) | function proxyNormalSlot(slots, key) {
  function renderList (line 4506) | function renderList (
  function renderSlot (line 4551) | function renderSlot (
  function resolveFilter (line 4589) | function resolveFilter (id) {
  function isKeyNotMatch (line 4595) | function isKeyNotMatch (expect, actual) {
  function checkKeyCodes (line 4608) | function checkKeyCodes (
  function bindObjectProps (line 4630) | function bindObjectProps (
  function renderStatic (line 4686) | function renderStatic (
  function markOnce (line 4711) | function markOnce (
  function markStatic (line 4720) | function markStatic (
  function markStaticNode (line 4736) | function markStaticNode (node, key, isOnce) {
  function bindObjectListeners (line 4744) | function bindObjectListeners (data, value) {
  function resolveScopedSlots (line 4765) | function resolveScopedSlots (
  function bindDynamicKeys (line 4793) | function bindDynamicKeys (baseObj, values) {
  function prependModifier (line 4812) | function prependModifier (value, symbol) {
  function installRenderHelpers (line 4818) | function installRenderHelpers (target) {
  function FunctionalRenderContext (line 4840) | function FunctionalRenderContext (
  function createFunctionalComponent (line 4916) | function createFunctionalComponent (
  function cloneAndMarkFunctionalResult (line 4957) | function cloneAndMarkFunctionalResult (vnode, data, contextVm, options, ...
  function mergeProps (line 4973) | function mergeProps (to, from) {
  function createComponent (line 5056) | function createComponent (
  function createComponentInstanceForVnode (line 5155) | function createComponentInstanceForVnode (
  function installComponentHooks (line 5173) | function installComponentHooks (data) {
  function mergeHook$1 (line 5185) | function mergeHook$1 (f1, f2) {
  function transformModel (line 5197) | function transformModel (options, data) {
  function createElement (line 5224) | function createElement (
  function _createElement (line 5243) | function _createElement (
  function applyNS (line 5334) | function applyNS (vnode, ns, force) {
  function registerDeepBindings (line 5355) | function registerDeepBindings (data) {
  function initRender (line 5366) | function initRender (vm) {
  function renderMixin (line 5400) | function renderMixin (Vue) {
  function ensureCtor (line 5474) | function ensureCtor (comp, base) {
  function createAsyncPlaceholder (line 5486) | function createAsyncPlaceholder (
  function resolveAsyncComponent (line 5499) | function resolveAsyncComponent (
  function isAsyncPlaceholder (line 5625) | function isAsyncPlaceholder (node) {
  function getFirstComponentChild (line 5631) | function getFirstComponentChild (children) {
  function initEvents (line 5646) | function initEvents (vm) {
  function add (line 5658) | function add (event, fn) {
  function remove$1 (line 5662) | function remove$1 (event, fn) {
  function createOnceHandler (line 5666) | function createOnceHandler (event, fn) {
  function updateComponentListeners (line 5676) | function updateComponentListeners (
  function eventsMixin (line 5686) | function eventsMixin (Vue) {
  function setActiveInstance (line 5784) | function setActiveInstance(vm) {
  function initLifecycle (line 5792) | function initLifecycle (vm) {
  function lifecycleMixin (line 5818) | function lifecycleMixin (Vue) {
  function updateChildComponent (line 5901) | function updateChildComponent (
  function isInInactiveTree (line 5984) | function isInInactiveTree (vm) {
  function activateChildComponent (line 5991) | function activateChildComponent (vm, direct) {
  function deactivateChildComponent (line 6009) | function deactivateChildComponent (vm, direct) {
  function callHook (line 6025) | function callHook (vm, hook) {
  function resetSchedulerState (line 6056) | function resetSchedulerState () {
  function flushSchedulerQueue (line 6099) | function flushSchedulerQueue () {
  function callUpdatedHooks (line 6158) | function callUpdatedHooks (queue) {
  function queueActivatedComponent (line 6173) | function queueActivatedComponent (vm) {
  function callActivatedHooks (line 6180) | function callActivatedHooks (queue) {
  function queueWatcher (line 6192) | function queueWatcher (watcher) {
  function proxy (line 6439) | function proxy (target, sourceKey, key) {
  function initState (line 6449) | function initState (vm) {
  function initProps (line 6465) | function initProps (vm, propsOptions) {
  function initData (line 6536) | function initData (vm) {
  function getData (line 6578) | function getData (data, vm) {
  function initComputed (line 6593) | function initComputed (vm, computed) {
  function defineComputed (line 6634) | function defineComputed (
  function createComputedGetter (line 6665) | function createComputedGetter (key) {
  function createGetterInvoker (line 6680) | function createGetterInvoker(fn) {
  function initMethods (line 6686) | function initMethods (vm, methods) {
  function initWatch (line 6714) | function initWatch (vm, watch) {
  function createWatcher (line 6727) | function createWatcher (
  function stateMixin (line 6743) | function stateMixin (Vue) {
  function initMixin (line 6798) | function initMixin (Vue) {
  function initInternalComponent (line 6855) | function initInternalComponent (vm, options) {
  function resolveConstructorOptions (line 6874) | function resolveConstructorOptions (Ctor) {
  function resolveModifiedOptions (line 6898) | function resolveModifiedOptions (Ctor) {
  function Vue (line 6911) | function Vue (options) {
  function initUse (line 6928) | function initUse (Vue) {
  function initMixin$1 (line 6950) | function initMixin$1 (Vue) {
  function initExtend (line 6959) | function initExtend (Vue) {
  function initProps$1 (line 7035) | function initProps$1 (Comp) {
  function initComputed$1 (line 7042) | function initComputed$1 (Comp) {
  function initAssetRegisters (line 7051) | function initAssetRegisters (Vue) {
  function getComponentName (line 7085) | function getComponentName (opts) {
  function matches (line 7089) | function matches (pattern, name) {
  function pruneCache (line 7101) | function pruneCache (keepAliveInstance, filter) {
  function pruneCacheEntry (line 7116) | function pruneCacheEntry (
  function initGlobalAPI (line 7217) | function initGlobalAPI (Vue) {
  function diff (line 7294) | function diff(current, pre) {
  function syncKeys (line 7301) | function syncKeys(current, pre) {
  function _diff (line 7325) | function _diff(current, pre, path, result) {
  function setResult (line 7384) | function setResult(result, k, v) {
  function type (line 7390) | function type(obj) {
  function flushCallbacks$1 (line 7396) | function flushCallbacks$1(vm) {
  function hasRenderWatcher (line 7411) | function hasRenderWatcher(vm) {
  function nextTick$1 (line 7415) | function nextTick$1(vm, cb) {
  function cloneWithData (line 7457) | function cloneWithData(vm) {
  function createEmptyRender (line 7530) | function createEmptyRender() {
  function mountComponent$1 (line 7534) | function mountComponent$1(
  function renderClass (line 7588) | function renderClass (
  function concat (line 7599) | function concat (a, b) {
  function stringifyClass (line 7603) | function stringifyClass (value) {
  function stringifyArray (line 7617) | function stringifyArray (value) {
  function stringifyObject (line 7629) | function stringifyObject (value) {
  function normalizeStyleBinding (line 7656) | function normalizeStyleBinding (bindingStyle) {
  function getTarget (line 7670) | function getTarget(obj, path) {
  function internalMixin (line 7682) | function internalMixin(Vue) {
  function lifecycleMixin$1 (line 7867) | function lifecycleMixin$1(Vue) {
  function wrap (line 8061) | function wrap(innerFn, outerFn, self, tryLocsList) {
  function tryCatch (line 8085) | function tryCatch(fn, obj, arg) {
  function Generator (line 8106) | function Generator() {}
  function GeneratorFunction (line 8107) | function GeneratorFunction() {}
  function GeneratorFunctionPrototype (line 8108) | function GeneratorFunctionPrototype() {}
  function defineIteratorMethods (line 8136) | function defineIteratorMethods(prototype) {
  function AsyncIterator (line 8175) | function AsyncIterator(generator) {
  function makeInvokeMethod (line 8263) | function makeInvokeMethod(innerFn, self, context) {
  function maybeInvokeDelegate (line 8345) | function maybeInvokeDelegate(delegate, context) {
  function pushTryEntry (line 8442) | function pushTryEntry(locs) {
  function resetTryEntry (line 8457) | function resetTryEntry(entry) {
  function Context (line 8464) | function Context(tryLocsList) {
  function values (line 8500) | function values(iterable) {
  function doneResult (line 8536) | function doneResult() {
  function handle (line 8587) | function handle(loc, caught) {
  function normalizeComponent (line 8768) | function normalizeComponent (
  function _interopRequireDefault (line 8890) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function applyMixin (line 8954) | function applyMixin (Vue) {
  function devtoolPlugin (line 8997) | function devtoolPlugin (store) {
  function forEachValue (line 9029) | function forEachValue (obj, fn) {
  function isObject (line 9033) | function isObject (obj) {
  function isPromise (line 9037) | function isPromise (val) {
  function assert (line 9041) | function assert (condition, msg) {
  function partial (line 9045) | function partial (fn, arg) {
  function update (line 9185) | function update (path, targetModule, newModule) {
  function assertRawModule (line 9231) | function assertRawModule (path, rawModule) {
  function makeAssertionMessage (line 9246) | function makeAssertionMessage (path, key, type, value, expected) {
  function genericSubscribe (line 9519) | function genericSubscribe (fn, subs, options) {
  function resetStore (line 9533) | function resetStore (store, hot) {
  function resetStoreVM (line 9545) | function resetStoreVM (store, state, hot) {
  function installModule (line 9595) | function installModule (store, rootState, path, module, hot) {
  function makeLocalContext (line 9650) | function makeLocalContext (store, namespace, path) {
  function makeLocalGetters (line 9705) | function makeLocalGetters (store, namespace) {
  function registerMutation (line 9730) | function registerMutation (store, type, handler, local) {
  function registerAction (line 9737) | function registerAction (store, type, handler, local) {
  function registerGetter (line 9762) | function registerGetter (store, type, rawGetter, local) {
  function enableStrictMode (line 9779) | function enableStrictMode (store) {
  function getNestedState (line 9787) | function getNestedState (state, path) {
  function unifyObjectStyle (line 9791) | function unifyObjectStyle (type, payload, options) {
  function install (line 9805) | function install (_Vue) {
  function normalizeMap (line 9978) | function normalizeMap (map) {
  function isValidMap (line 9992) | function isValidMap (map) {
  function normalizeNamespace (line 10001) | function normalizeNamespace (fn) {
  function getModuleByNamespace (line 10020) | function getModuleByNamespace (store, helper, namespace) {
  function _interopRequireDefault (line 10073) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function _interopRequireDefault (line 10102) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function ownKeys (line 10102) | function ownKeys(object, enumerableOnly) {var keys = Object.keys(object)...
  function _objectSpread (line 10102) | function _objectSpread(target) {for (var i = 1; i < arguments.length; i+...
  function _defineProperty (line 10102) | function _defineProperty(obj, key, value) {if (key in obj) {Object.defin...
  function request (line 10106) | function request(res) {
  function _interopRequireDefault (line 10198) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function getSignature (line 10201) | function getSignature(data) {
  function H5Login (line 10211) | function H5Login(data) {
  function getactivelist (line 10221) | function getactivelist(data) {
  function getactivelist2 (line 10230) | function getactivelist2(data) {
  function getBannerlist (line 10242) | function getBannerlist(data) {
  function getAdlist (line 10252) | function getAdlist(data) {
  function getApp (line 10261) | function getApp(data) {
  function getItemLink (line 10272) | function getItemLink(data) {
  function get_meituan_url (line 10281) | function get_meituan_url(data) {
  function get_meituan_ewm (line 10291) | function get_meituan_ewm(data) {
  function _interopRequireDefault (line 10324) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function wxlogin (line 10328) | function wxlogin(data) {
  function getUserInfo (line 10339) | function getUserInfo(data) {
  function updateInfo (line 10349) | function updateInfo(data) {
  function updatephone (line 10360) | function updatephone(data) {
  function bindPromoter (line 10371) | function bindPromoter(data) {
  function getOrderList (line 10382) | function getOrderList(data) {
  function getPayOrderList (line 10391) | function getPayOrderList(data) {
  function getTeamsList (line 10402) | function getTeamsList(data) {
  function withdrawal (line 10413) | function withdrawal(data) {
  function pointsfor (line 10424) | function pointsfor(data) {
  function eleauth_url (line 10434) | function eleauth_url(data) {
  function getwxqrcode (line 10445) | function getwxqrcode(data) {
  function getOffQrcode (line 10454) | function getOffQrcode(data) {
  function _interopRequireDefault (line 10564) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function wranning (line 10568) | function wranning(str) {// 开发环境进行信息输出,主要是一些报错信息
  function _interopRequireDefault (line 10700) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function _classCallCheck (line 10700) | function _classCallCheck(instance, Constructor) {if (!(instance instance...
  function _defineProperties (line 10700) | function _defineProperties(target, props) {for (var i = 0; i < props.len...
  function _createClass (line 10700) | function _createClass(Constructor, protoProps, staticProps) {if (protoPr...
  function Request (line 10800) | function Request() {var _this2 = this;_classCallCheck(this, Request);
  function _interopRequireDefault (line 10879) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function deepMerge (line 10882) | function deepMerge() {var target = arguments.length > 0 && arguments[0] ...
  function isArray (line 10920) | function isArray(arr) {
  function deepClone (line 10925) | function deepClone(obj) {
  function email (line 10955) | function email(value) {
  function mobile (line 10962) | function mobile(value) {
  function url (line 10969) | function url(value) {
  function date (line 10976) | function date(value) {
  function dateISO (line 10983) | function dateISO(value) {
  function number (line 10990) | function number(value) {
  function digits (line 10997) | function digits(value) {
  function idCard (line 11004) | function idCard(value) {
  function carNo (line 11012) | function carNo(value) {
  function amount (line 11029) | function amount(value) {
  function chinese (line 11037) | function chinese(value) {
  function letter (line 11045) | function letter(value) {
  function enOrNum (line 11052) | function enOrNum(value) {
  function contains (line 11061) | function contains(value, param) {
  function range (line 11068) | function range(value, param) {
  function rangeLength (line 11075) | function rangeLength(value, param) {
  function landline (line 11082) | function landline(value) {
  function empty (line 11090) | function empty(value) {
  function jsonString (line 11116) | function jsonString(value) {
  function array (line 11136) | function array(value) {
  function object (line 11147) | function object(value) {
  function code (line 11154) | function code(value) {var len = arguments.length > 1 && arguments[1] !==...
  function queryParams (line 11198) | function queryParams() {var data = arguments.length > 0 && arguments[0] ...
  function _interopRequireDefault (line 11261) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function asyncGeneratorStep (line 11261) | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, ar...
  function _asyncToGenerator (line 11261) | function _asyncToGenerator(fn) {return function () {var self = this,args...
  function _classCallCheck (line 11261) | function _classCallCheck(instance, Constructor) {if (!(instance instance...
  function _defineProperties (line 11261) | function _defineProperties(target, props) {for (var i = 0; i < props.len...
  function _createClass (line 11261) | function _createClass(Constructor, protoProps, staticProps) {if (protoPr...
  function Router (line 11267) | function Router() {_classCallCheck(this, Router);
  function route (line 11338) | function route() {return _route.apply(this, arguments);}
  function timeFormat (line 11419) | function timeFormat() {var dateTime = arguments.length > 0 && arguments[...
  function _interopRequireDefault (line 11455) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function timeFrom (line 11463) | function timeFrom() {var dateTime = arguments.length > 0 && arguments[0]...
  function colorGradient (line 11518) | function colorGradient() {var startColor = arguments.length > 0 && argum...
  function hexToRgb (line 11543) | function hexToRgb(sColor) {var str = arguments.length > 1 && arguments[1...
  function rgbToHex (line 11573) | function rgbToHex(rgb) {
  function colorToRgba (line 11613) | function colorToRgba(color) {var alpha = arguments.length > 1 && argumen...
  function guid (line 11665) | function guid() {var len = arguments.length > 0 && arguments[0] !== unde...
  function type2icon (line 11758) | function type2icon() {var type = arguments.length > 0 && arguments[0] !=...
  function randomArray (line 11799) | function randomArray() {var array = arguments.length > 0 && arguments[0]...
  function _interopRequireDefault (line 11815) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function addUnit (line 11818) | function addUnit() {var value = arguments.length > 0 && arguments[0] !==...
  function random (line 11833) | function random(min, max) {
  function trim (line 11853) | function trim(str) {var pos = arguments.length > 1 && arguments[1] !== u...
  function toast (line 11878) | function toast(title) {var duration = arguments.length > 1 && arguments[...
  function getParent (line 11900) | function getParent(name, keys) {
  function $parent (line 11959) | function $parent() {var name = arguments.length > 0 && arguments[0] !== ...
  function os (line 11983) | function os() {
  function sys (line 11987) | function sys() {
  function debounce (line 12011) | function debounce(func) {var wait = arguments.length > 1 && arguments[1]...
  function throttle (line 12049) | function throttle(func) {var wait = arguments.length > 1 && arguments[1]...
  function _toConsumableArray (line 12133) | function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _ite...
  function _nonIterableSpread (line 12133) | function _nonIterableSpread() {throw new TypeError("Invalid attempt to s...
  function _unsupportedIterableToArray (line 12133) | function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (type...
  function _iterableToArray (line 12133) | function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Sy...
  function _arrayWithoutHoles (line 12133) | function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayL...
  function _arrayLikeToArray (line 12133) | function _arrayLikeToArray(arr, len) {if (len == null || len > arr.lengt...
  function typedArraySupport (line 12484) | function typedArraySupport () {
  function kMaxLength (line 12496) | function kMaxLength () {
  function createBuffer (line 12502) | function createBuffer (that, length) {
  function Buffer (line 12531) | function Buffer (arg, encodingOrOffset, length) {
  function from (line 12556) | function from (that, value, encodingOrOffset, length) {
  function assertSize (line 12597) | function assertSize (size) {
  function alloc (line 12605) | function alloc (that, size, fill, encoding) {
  function allocUnsafe (line 12629) | function allocUnsafe (that, size) {
  function fromString (line 12653) | function fromString (that, string, encoding) {
  function fromArrayLike (line 12677) | function fromArrayLike (that, array) {
  function fromArrayBuffer (line 12686) | function fromArrayBuffer (that, array, byteOffset, length) {
  function fromObject (line 12716) | function fromObject (that, obj) {
  function checked (line 12746) | function checked (length) {
  function SlowBuffer (line 12756) | function SlowBuffer (length) {
  function byteLength (line 12839) | function byteLength (string, encoding) {
  function slowToString (line 12884) | function slowToString (encoding, start, end) {
  function swap (line 12958) | function swap (b, n, m) {
  function bidirectionalIndexOf (line 13092) | function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
  function arrayIndexOf (line 13149) | function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
  function hexWrite (line 13217) | function hexWrite (buf, string, offset, length) {
  function utf8Write (line 13244) | function utf8Write (buf, string, offset, length) {
  function asciiWrite (line 13248) | function asciiWrite (buf, string, offset, length) {
  function latin1Write (line 13252) | function latin1Write (buf, string, offset, length) {
  function base64Write (line 13256) | function base64Write (buf, string, offset, length) {
  function ucs2Write (line 13260) | function ucs2Write (buf, string, offset, length) {
  function base64Slice (line 13343) | function base64Slice (buf, start, end) {
  function utf8Slice (line 13351) | function utf8Slice (buf, start, end) {
  function decodeCodePointsArray (line 13429) | function decodeCodePointsArray (codePoints) {
  function asciiSlice (line 13447) | function asciiSlice (buf, start, end) {
  function latin1Slice (line 13457) | function latin1Slice (buf, start, end) {
  function hexSlice (line 13467) | function hexSlice (buf, start, end) {
  function utf16leSlice (line 13480) | function utf16leSlice (buf, start, end) {
  function checkOffset (line 13528) | function checkOffset (offset, ext, length) {
  function checkInt (line 13689) | function checkInt (buf, value, offset, ext, max, min) {
  function objectWriteUInt16 (line 13742) | function objectWriteUInt16 (buf, value, offset, littleEndian) {
  function objectWriteUInt32 (line 13776) | function objectWriteUInt32 (buf, value, offset, littleEndian) {
  function checkIEEE754 (line 13926) | function checkIEEE754 (buf, value, offset, ext, max, min) {
  function writeFloat (line 13931) | function writeFloat (buf, value, offset, littleEndian, noAssert) {
  function writeDouble (line 13947) | function writeDouble (buf, value, offset, littleEndian, noAssert) {
  function base64clean (line 14080) | function base64clean (str) {
  function stringtrim (line 14092) | function stringtrim (str) {
  function toHex (line 14097) | function toHex (n) {
  function utf8ToBytes (line 14102) | function utf8ToBytes (string, units) {
  function asciiToBytes (line 14182) | function asciiToBytes (str) {
  function utf16leToBytes (line 14191) | function utf16leToBytes (str, units) {
  function base64ToBytes (line 14207) | function base64ToBytes (str) {
  function blitBuffer (line 14211) | function blitBuffer (src, dst, offset, length) {
  function isnan (line 14219) | function isnan (val) {
  function getLens (line 14255) | function getLens (b64) {
  function byteLength (line 14275) | function byteLength (b64) {
  function _byteLength (line 14282) | function _byteLength (b64, validLen, placeHoldersLen) {
  function toByteArray (line 14286) | function toByteArray (b64) {
  function tripletToBase64 (line 14332) | function tripletToBase64 (num) {
  function encodeChunk (line 14339) | function encodeChunk (uint8, start, end) {
  function fromByteArray (line 14352) | function fromByteArray (uint8) {

FILE: unpackage/dist/dev/mp-weixin/pages/ele/ele.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/index/child1.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/index/child2.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/index/index.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/index/url/url.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/meituan/meituan.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/user/binding.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/user/order.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function _toConsumableArray (line 189) | function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _ite...
  function _nonIterableSpread (line 189) | function _nonIterableSpread() {throw new TypeError("Invalid attempt to s...
  function _unsupportedIterableToArray (line 189) | function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (type...
  function _iterableToArray (line 189) | function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Sy...
  function _arrayWithoutHoles (line 189) | function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayL...
  function _arrayLikeToArray (line 189) | function _arrayLikeToArray(arr, len) {if (len == null || len > arr.lengt...

FILE: unpackage/dist/dev/mp-weixin/pages/user/team.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function _toConsumableArray (line 159) | function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _ite...
  function _nonIterableSpread (line 159) | function _nonIterableSpread() {throw new TypeError("Invalid attempt to s...
  function _unsupportedIterableToArray (line 159) | function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (type...
  function _iterableToArray (line 159) | function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Sy...
  function _arrayWithoutHoles (line 159) | function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayL...
  function _arrayLikeToArray (line 159) | function _arrayLikeToArray(arr, len) {if (len == null || len > arr.lengt...

FILE: unpackage/dist/dev/mp-weixin/pages/user/user.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...

FILE: unpackage/dist/dev/mp-weixin/pages/wallet/wallet.js
  function _interopRequireDefault (line 13) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function _toConsumableArray (line 198) | function _toConsumableArray(arr) {return _arrayWithoutHoles(arr) || _ite...
  function _nonIterableSpread (line 198) | function _nonIterableSpread() {throw new TypeError("Invalid attempt to s...
  function _unsupportedIterableToArray (line 198) | function _unsupportedIterableToArray(o, minLen) {if (!o) return;if (type...
  function _iterableToArray (line 198) | function _iterableToArray(iter) {if (typeof Symbol !== "undefined" && Sy...
  function _arrayWithoutHoles (line 198) | function _arrayWithoutHoles(arr) {if (Array.isArray(arr)) return _arrayL...
  function _arrayLikeToArray (line 198) | function _arrayLikeToArray(arr, len) {if (len == null || len > arr.lengt...

FILE: unpackage/dist/dev/mp-weixin/uview-ui/components/u-tabs/u-tabs.js
  function _interopRequireDefault (line 161) | function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj...
  function asyncGeneratorStep (line 161) | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, ar...
  function _asyncToGenerator (line 161) | function _asyncToGenerator(fn) {return function () {var self = this,args...

FILE: uview-ui/components/u-avatar-cropper/weCropper.js
  function firstLetterUpper (line 16) | function firstLetterUpper(str) {
  function setTouchState (line 20) | function setTouchState(instance) {
  function validator (line 32) | function validator(instance, o) {
  function getDevice (line 36) | function getDevice() {
  function prepare (line 200) | function prepare() {
  function createCommonjsModule (line 247) | function createCommonjsModule(fn, module) {
  function observer (line 337) | function observer() {
  function wxPromise (line 354) | function wxPromise(fn) {
  function draw (line 373) | function draw(ctx, reserve) {
  function makeURI (line 552) | function makeURI(strData, type) {
  function fixType (line 556) | function fixType(type) {
  function encodeData (line 562) | function encodeData(data) {
  function getImageData (line 583) | function getImageData(canvasId, x, y, width, height, done) {
  function genBitmapImage (line 605) | function genBitmapImage(oData) {
  function convertToImage (line 719) | function convertToImage(canvasId, x, y, width, height, type, done) {
  function methods (line 760) | function methods() {
  function update (line 952) | function update() {
  function cut (line 1082) | function cut() {

FILE: uview-ui/components/u-parse/libs/CssHandler.js
  function CssHandler (line 4) | function CssHandler(tagStyle) {
  function parser (line 27) | function parser(data, init) {

FILE: uview-ui/components/u-parse/libs/MpHtmlParser.js
  function MpHtmlParser (line 14) | function MpHtmlParser(data, options = {}) {

FILE: uview-ui/components/u-parse/libs/config.js
  function makeMap (line 58) | function makeMap(str) {

FILE: uview-ui/index.js
  function wranning (line 8) | function wranning(str) {

FILE: uview-ui/libs/function/$parent.js
  function $parent (line 5) | function $parent(name = undefined) {

FILE: uview-ui/libs/function/addUnit.js
  function addUnit (line 4) | function addUnit(value = 'auto', unit = 'rpx') {

FILE: uview-ui/libs/function/bem.js
  function bem (line 1) | function bem(name, conf) {

FILE: uview-ui/libs/function/colorGradient.js
  function colorGradient (line 7) | function colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255,...
  function hexToRgb (line 32) | function hexToRgb(sColor, str = true) {
  function rgbToHex (line 62) | function rgbToHex(rgb) {
  function colorToRgba (line 102) | function colorToRgba(color, alpha = 0.3) {

FILE: uview-ui/libs/function/debounce.js
  function debounce (line 11) | function debounce(func, wait = 500, immediate = false) {

FILE: uview-ui/libs/function/deepClone.js
  function isArray (line 2) | function isArray (arr) {
  function deepClone (line 7) | function deepClone (obj) {

FILE: uview-ui/libs/function/deepMerge.js
  function deepMerge (line 4) | function deepMerge(target = {}, source = {}) {

FILE: uview-ui/libs/function/getParent.js
  function getParent (line 3) | function getParent(name, keys) {

FILE: uview-ui/libs/function/guid.js
  function guid (line 11) | function guid(len = 32, firstU = true, radix = null) {

FILE: uview-ui/libs/function/md5.js
  function hex_md5 (line 21) | function hex_md5(s)    { return rstr2hex(rstr_md5(str2rstr_utf8(s))); }
  function b64_md5 (line 22) | function b64_md5(s)    { return rstr2b64(rstr_md5(str2rstr_utf8(s))); }
  function any_md5 (line 23) | function any_md5(s, e) { return rstr2any(rstr_md5(str2rstr_utf8(s)), e); }
  function hex_hmac_md5 (line 24) | function hex_hmac_md5(k, d)
  function b64_hmac_md5 (line 26) | function b64_hmac_md5(k, d)
  function any_hmac_md5 (line 28) | function any_hmac_md5(k, d, e)
  function md5_vm_test (line 34) | function md5_vm_test()
  function rstr_md5 (line 42) | function rstr_md5(s)
  function rstr_hmac_md5 (line 50) | function rstr_hmac_md5(key, data)
  function rstr2hex (line 69) | function rstr2hex(input)
  function rstr2b64 (line 87) | function rstr2b64(input)
  function rstr2any (line 110) | function rstr2any(input, encoding)
  function str2rstr_utf8 (line 159) | function str2rstr_utf8(input)
  function str2rstr_utf16le (line 198) | function str2rstr_utf16le(input)
  function str2rstr_utf16be (line 207) | function str2rstr_utf16be(input)
  function rstr2binl (line 220) | function rstr2binl(input)
  function binl2rstr (line 233) | function binl2rstr(input)
  function binl_md5 (line 244) | function binl_md5(x, len)
  function md5_cmn (line 341) | function md5_cmn(q, a, b, x, s, t)
  function md5_ff (line 345) | function md5_ff(a, b, c, d, x, s, t)
  function md5_gg (line 349) | function md5_gg(a, b, c, d, x, s, t)
  function md5_hh (line 353) | function md5_hh(a, b, c, d, x, s, t)
  function md5_ii (line 357) | function md5_ii(a, b, c, d, x, s, t)
  function safe_add (line 366) | function safe_add(x, y)
  function bit_rol (line 376) | function bit_rol(num, cnt)

FILE: uview-ui/libs/function/queryParams.js
  function queryParams (line 6) | function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets...

FILE: uview-ui/libs/function/random.js
  function random (line 1) | function random(min, max) {

FILE: uview-ui/libs/function/randomArray.js
  function randomArray (line 2) | function randomArray(array = []) {

FILE: uview-ui/libs/function/route.js
  class Router (line 6) | class Router {
    method constructor (line 7) | constructor() {
    method addRootPath (line 24) | addRootPath(url) {
    method mixinParam (line 29) | mixinParam(url, params) {
    method route (line 48) | async route(options = {}, params = {}) {
    method openPage (line 83) | openPage(config) {

FILE: uview-ui/libs/function/sys.js
  function os (line 1) | function os() {
  function sys (line 5) | function sys() {

FILE: uview-ui/libs/function/test.js
  function email (line 4) | function email(value) {
  function mobile (line 11) | function mobile(value) {
  function url (line 18) | function url(value) {
  function date (line 25) | function date(value) {
  function dateISO (line 32) | function dateISO(value) {
  function number (line 39) | function number(value) {
  function digits (line 46) | function digits(value) {
  function idCard (line 53) | function idCard(value) {
  function carNo (line 61) | function carNo(value) {
  function amount (line 78) | function amount(value) {
  function chinese (line 86) | function chinese(value) {
  function letter (line 94) | function letter(value) {
  function enOrNum (line 101) | function enOrNum(value) {
  function contains (line 110) | function contains(value, param) {
  function range (line 117) | function range(value, param) {
  function rangeLength (line 124) | function rangeLength(value, param) {
  function landline (line 131) | function landline(value) {
  function empty (line 139) | function empty(value) {
  function jsonString (line 165) | function jsonString(value) {
  function array (line 185) | function array(value) {
  function object (line 196) | function object(value) {
  function code (line 203) | function code(value, len = 6) {

FILE: uview-ui/libs/function/throttle.js
  function throttle (line 10) | function throttle(func, wait = 500, immediate = true) {

FILE: uview-ui/libs/function/timeFormat.js
  function timeFormat (line 26) | function timeFormat(dateTime = null, fmt = 'yyyy-mm-dd') {

FILE: uview-ui/libs/function/timeFrom.js
  function timeFrom (line 9) | function timeFrom(dateTime = null, format = 'yyyy-mm-dd') {

FILE: uview-ui/libs/function/toast.js
  function toast (line 1) | function toast(title, duration = 1500) {

FILE: uview-ui/libs/function/trim.js
  function trim (line 1) | function trim(str, pos = 'both') {

FILE: uview-ui/libs/function/type2icon.js
  function type2icon (line 6) | function type2icon(type = 'success', fill = false) {

FILE: uview-ui/libs/mixin/mixin.js
  method data (line 2) | data() {
  method onLoad (line 5) | onLoad() {
  method $uGetRect (line 13) | $uGetRect(selector, all) {
  method getParentData (line 28) | getParentData(parentName = '') {
  method preventEvent (line 43) | preventEvent(e) {
  method onReachBottom (line 47) | onReachBottom() {

FILE: uview-ui/libs/mixin/mpShare.js
  method onLoad (line 2) | onLoad() {
  method onShareAppMessage (line 10) | onShareAppMessage() {
  method onShareTimeline (line 14) | onShareTimeline() {

FILE: uview-ui/libs/request/index.js
  class Request (line 3) | class Request {
    method setConfig (line 5) | setConfig(customConfig) {
    method request (line 11) | request(options = {}) {
    method constructor (line 102) | constructor() {

FILE: uview-ui/libs/store/index.js
  method $uStore (line 4) | $uStore({rootState}, params) {

FILE: uview-ui/libs/util/async-validator.js
  function _extends (line 1) | function _extends() {
  function convertFieldsError (line 36) | function convertFieldsError(errors) {
  function format (line 47) | function format() {
  function isNativeStringType (line 101) | function isNativeStringType(type) {
  function isEmptyValue (line 105) | function isEmptyValue(value, type) {
  function asyncParallelArray (line 121) | function asyncParallelArray(arr, func, callback) {
  function asyncSerialArray (line 140) | function asyncSerialArray(arr, func, callback) {
  function flattenObjArr (line 163) | function flattenObjArr(objArr) {
  function asyncMap (line 171) | function asyncMap(objArr, option, func, callback) {
  function complementError (line 238) | function complementError(rule) {
  function deepMerge (line 252) | function deepMerge(target, source) {
  function required (line 282) | function required(rule, value, source, errors, options, type) {
  function whitespace (line 300) | function whitespace(rule, value, source, errors, options) {
  function type (line 377) | function type(rule, value, source, errors, options) {
  function range (line 408) | function range(rule, value, source, errors, options) {
  function enumerable (line 470) | function enumerable(rule, value, source, errors, options) {
  function pattern$1 (line 490) | function pattern$1(rule, value, source, errors, options) {
  function string (line 531) | function string(rule, value, callback, source, options) {
  function method (line 567) | function method(rule, value, callback, source, options) {
  function number (line 597) | function number(rule, value, callback, source, options) {
  function _boolean (line 632) | function _boolean(rule, value, callback, source, options) {
  function regexp (line 662) | function regexp(rule, value, callback, source, options) {
  function integer (line 692) | function integer(rule, value, callback, source, options) {
  function floatFn (line 723) | function floatFn(rule, value, callback, source, options) {
  function array (line 754) | function array(rule, value, callback, source, options) {
  function object (line 785) | function object(rule, value, callback, source, options) {
  function enumerable$1 (line 816) | function enumerable$1(rule, value, callback, source, options) {
  function pattern$2 (line 849) | function pattern$2(rule, value, callback, source, options) {
  function date (line 868) | function date(rule, value, callback, source, options) {
  function required$1 (line 899) | function required$1(rule, value, callback, source, options) {
  function type$1 (line 906) | function type$1(rule, value, callback, source, options) {
  function any (line 937) | function any(rule, value, callback, source, options) {
  function newMessages (line 972) | function newMessages() {
  function Schema (line 1035) | function Schema(descriptor) {
  function complete (line 1097) | function complete(results) {
  function addFullfield (line 1191) | function addFullfield(key, schema) {
  function cb (line 1197) | function cb(e) {

FILE: uview-ui/libs/util/emitter.js
  function broadcast (line 7) | function broadcast(componentName, eventName, params) {
  method dispatch (line 25) | dispatch(componentName, eventName, params) {
  method broadcast (line 47) | broadcast(componentName, eventName, params) {

FILE: wechat.js
  method initjssdk (line 28) | initjssdk() {
  method share (line 55) | share() {
Condensed preview — 394 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,489K chars).
[
  {
    "path": ".hbuilderx/launch.json",
    "chars": 360,
    "preview": "{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/\n  "
  },
  {
    "path": "App.vue",
    "chars": 5106,
    "preview": "<script>\n\texport default {\n\t\tonLaunch: async function(e) {\n\t\t\tconst that = this\n\n\t\t\tconsole.log('小程序App Launch', e)\n\n\n\t\t"
  },
  {
    "path": "README.md",
    "chars": 1774,
    "preview": "### 外卖CPS介绍\n\n- 2021最新外卖霸王餐小程序、H5、微信公众号版外系统源码|霸王餐美团/饿了么系统 粉丝裂变玩源码下载\n- 2021外卖cps小程序项目|外卖红包cps带好友返利佣金分销系统程序|饿了么美团联盟源码\n- 外卖c"
  },
  {
    "path": "components/auth/login.vue",
    "chars": 1975,
    "preview": "<template>\n\t<view class=\"login flex justify-center align-center\" v-if=\"isshow\">\n\n\t\t<view class=\"subject\">\n\t\t\t<view  clas"
  },
  {
    "path": "components/js-base64/LICENSE.md",
    "chars": 1480,
    "preview": "Copyright (c) 2014, Dan Kogai\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nm"
  },
  {
    "path": "components/js-base64/README.md",
    "chars": 4615,
    "preview": "[![build status](https://secure.travis-ci.org/dankogai/js-base64.png)](http://travis-ci.org/dankogai/js-base64)\n\n# base6"
  },
  {
    "path": "components/js-base64/base64.d.ts",
    "chars": 3757,
    "preview": "/**\n *  base64.ts\n *\n *  Licensed under the BSD 3-Clause License.\n *    http://opensource.org/licenses/BSD-3-Clause\n *\n "
  },
  {
    "path": "components/js-base64/base64.js",
    "chars": 10717,
    "preview": "\n\n//\n// THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND!\n//\n;(function(global, factory) {\n    typeof exports ="
  },
  {
    "path": "components/js-base64/base64.mjs",
    "chars": 9984,
    "preview": "/**\n *  base64.ts\n *\n *  Licensed under the BSD 3-Clause License.\n *    http://opensource.org/licenses/BSD-3-Clause\n *\n "
  },
  {
    "path": "components/js-base64/package.json",
    "chars": 1547,
    "preview": "{\n  \"_from\": \"js-base64\",\n  \"_id\": \"js-base64@3.5.2\",\n  \"_inBundle\": false,\n  \"_integrity\": \"sha512-VG2qfvV5rEQIVxq9UmAV"
  },
  {
    "path": "components/share_hb2/share_hb2.vue",
    "chars": 5968,
    "preview": "<template>\n\t<view class=\"share_img flex justify-center align-center\" @touchmove.stop.prevent=\"clear\">\n\t\t<view class=\"con"
  },
  {
    "path": "components/share_img/share_img.vue",
    "chars": 6621,
    "preview": "<template>\n\t<view class=\"share_img flex justify-center align-center\" @touchmove.stop.prevent=\"clear\">\n\t\t<view class=\"con"
  },
  {
    "path": "components/v-tabs/readme.md",
    "chars": 4187,
    "preview": "## 插件说明\n\n> 这是 `v-tabs` 插件的升级版本,参数上有很大变动,支持 `H5` `小程序` `手机端`,如果是在之前的插件上升级的话,请注意参数的变更,触发的事件没有变更。\n\n## 使用说明\n\n### 1、最基本用法\n\n- "
  },
  {
    "path": "components/v-tabs/v-tabs.vue",
    "chars": 7911,
    "preview": "<template>\n  <view :id=\"elId\" class=\"v-tabs\">\n    <scroll-view\n      :scroll-x=\"scroll\"\n      :scroll-left=\"scroll ? scr"
  },
  {
    "path": "config.js",
    "chars": 145,
    "preview": "\nmodule.exports = {\n\t\n // baseUrl:'http://127.0.0.1:8000/',\n baseUrl:'https://cps.open-shop.cn/',\n // baseUrl:'https://w"
  },
  {
    "path": "http/api/index.js",
    "chars": 1381,
    "preview": "import request from '../request.js';\n\n//  h5获取签名\nfunction getSignature(data){\n\treturn request({\n\t\turl:'user/wx/getSignat"
  },
  {
    "path": "http/api/user.js",
    "chars": 1753,
    "preview": "import request from '../request.js';\n\n\n// 登录\nfunction wxlogin(data) {\n\treturn request({\n\t\turl:'user/login/wxlogin',\n\t\tda"
  },
  {
    "path": "http/api.js",
    "chars": 349,
    "preview": "import request from './request.js'\nimport config from '../config.js'\n\nimport index from './api/index.js'\nimport user fro"
  },
  {
    "path": "http/request.js",
    "chars": 1641,
    "preview": "import config from '../config.js'\nimport store from '../store/index.js'\n\nconst url_ = config.baseUrl\n\nfunction request(r"
  },
  {
    "path": "jweixin/index.js",
    "chars": 18991,
    "preview": "! function(e, n) {\n\t\"function\" == typeof define && (define.amd || define.cmd) ? define(function() {\n\t\treturn n(e)\n\t}) : "
  },
  {
    "path": "main.js",
    "chars": 515,
    "preview": "import Vue from 'vue'\nimport App from './App'\nimport store from './store'\nimport Api from './http/api.js'\nlet base64 = r"
  },
  {
    "path": "manifest.json",
    "chars": 3342,
    "preview": "{\n    \"name\" : \"外卖cps\",\n    \"appid\" : \"__UNI__EB9A07C\",\n    \"description\" : \"\",\n    \"versionName\" : \"1.0.0\",\n    \"versio"
  },
  {
    "path": "package.json",
    "chars": 188,
    "preview": "{\n    \"id\": \"luke-waimai-cps\",\n    \"name\": \"外卖cps、外卖红包、外卖优惠券小程序(包含分销、公众号、返利等功能)\",\n    \"version\": \"1.1\",\n    \"description"
  },
  {
    "path": "pages/ele/ele.vue",
    "chars": 6651,
    "preview": "<template>\n\t<view class=\"meituan\" :style=\"zt_bg.bgc\">\n\t\t<u-navbar :is-back=\"false\" :border-bottom=\"false\" title=\" \" :bac"
  },
  {
    "path": "pages/index/child1.vue",
    "chars": 3028,
    "preview": "<template>\n\t<view class=\"child\">\n\t\t<text>\n\t\t\t<text class=\"boldccc\">怎样用最少的钱,吃到KFC?\n\t\t\t\t1,肯德基APP</text>\n\t\t\t如果你是第一次登陆\n\t\t\t<t"
  },
  {
    "path": "pages/index/child2.vue",
    "chars": 1573,
    "preview": "<template>\n\t<view class=\"child\">\n\t\t<view>吃奈雪的人都知道</view>\t\n\t\t<view>茶饮动辄就30+,欧包20+</view>\t\n\t\t<view>如今的装逼成本,越来越高。</view>\t\n\t"
  },
  {
    "path": "pages/index/index.vue",
    "chars": 16890,
    "preview": "<template>\n\t<page-meta background-color-top=\"#f33f5c\" background-color=\"#FFFFFF\"></page-meta>\n\t<view class=\"container\">\n"
  },
  {
    "path": "pages/index/url/url.vue",
    "chars": 293,
    "preview": "<template>\n\t<view>\n\t\t<web-view :src=\"url\"></web-view>\n\t</view>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\tret"
  },
  {
    "path": "pages/meituan/meituan.vue",
    "chars": 6713,
    "preview": "<template>\n\t<view class=\"meituan\" :style=\"zt_bg.bgc\">\n\t\t<u-navbar :is-back=\"false\" :border-bottom=\"false\" title=\" \" :bac"
  },
  {
    "path": "pages/user/binding.vue",
    "chars": 1423,
    "preview": "<template>\n\t<view class=\"binding\">\n\t\t<view class=\"bdsuccess\" v-if=\"userInfo.tbk_r_id\" >已绑定 {{userInfo.tbk_name}} 的饿了么账号<"
  },
  {
    "path": "pages/user/order.vue",
    "chars": 6976,
    "preview": "<template>\n\t<view>\n\t\t<view class=\"order\">\n\t\t\t<!-- #ifdef H5 -->\n\t\t\t<u-navbar back-icon-color=\"#fff\" title=\"我的订单\" title-c"
  },
  {
    "path": "pages/user/team.vue",
    "chars": 3614,
    "preview": "<template>\n\t<view class=\"team\">\n\t\t<!-- #ifdef H5 -->\n\t\t<u-navbar back-icon-color=\"#fff\" title=\"我的团队\" title-color=\"#fff\" "
  },
  {
    "path": "pages/user/user.vue",
    "chars": 13497,
    "preview": "<template>\n\t<page-meta background-color-top=\"#f33f5c\" background-color=\"#FFFFFF\"></page-meta>\n\t<view class=\"my\">\n\t\t<!-- "
  },
  {
    "path": "pages/wallet/wallet.vue",
    "chars": 8155,
    "preview": "<template>\n\t<view class=\"wallet\">\n\t\t<!-- #ifdef H5 -->\n\t\t<u-navbar back-icon-color=\"#fff\" title=\"我的钱包\" title-color=\"#fff"
  },
  {
    "path": "pages.json",
    "chars": 2795,
    "preview": "{\n\t\"easycom\": {\n\t\t// 下载安装的方式需要前面的\"@/\",npm安装的方式无需\"@/\"\n\t\t\"^u-(.*)\": \"@/uview-ui/components/u-$1/u-$1.vue\"\n\t},\n\t\"pages\": [ "
  },
  {
    "path": "static/iconfont.css",
    "chars": 1753,
    "preview": "@font-face {\n\tfont-family: \"custom-icon\";\n  src:url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPE"
  },
  {
    "path": "store/index.js",
    "chars": 682,
    "preview": "import Vue from 'vue'\nimport Vuex from 'vuex'\nimport config from '../config.js'\nVue.use(Vuex)\n\nconst store = new Vuex.St"
  },
  {
    "path": "uni.scss",
    "chars": 1696,
    "preview": "/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果你是插件开发者,建议你使用scss预"
  },
  {
    "path": "unpackage/dist/build/.automator/mp-weixin/.automator.json",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "unpackage/dist/build/mp-weixin/app.js",
    "chars": 89,
    "preview": "\nrequire('./common/runtime.js')\nrequire('./common/vendor.js')\nrequire('./common/main.js')"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/app.json",
    "chars": 1450,
    "preview": "{\n  \"pages\": [\n    \"pages/index/index\",\n    \"pages/index/child1\",\n    \"pages/index/child2\",\n    \"pages/ele/ele\",\n    \"pa"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/app.wxss",
    "chars": 118,
    "preview": "@import './common/main.wxss';\n\n[data-custom-hidden=\"true\"],[bind-data-custom-hidden=\"true\"]{display: none !important;}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/common/main.js",
    "chars": 3356,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"common/main\"],{\"0096\":function(e,t,n){\"use strict\";(function"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/common/main.wxss",
    "chars": 48560,
    "preview": "@font-face{font-family:custom-icon;src:url(\"data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPEAAsAAAAAC"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/common/runtime.js",
    "chars": 5027,
    "preview": "\n  !function(){try{var a=Function(\"return this\")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/common/vendor.js",
    "chars": 144153,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"common/vendor\"],{\"01a0\":function(t,e,n){\"use strict\";(functi"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/auth/login.js",
    "chars": 1788,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"components/auth/login\"],{\"511c\":function(n,t,e){\"use strict\""
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/auth/login.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/auth/login.wxml",
    "chars": 863,
    "preview": "<block wx:if=\"{{isshow}}\"><view class=\"login flex justify-center align-center data-v-f464c6ce\"><view class=\"subject data"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/auth/login.wxss",
    "chars": 660,
    "preview": ".login.data-v-f464c6ce{width:100vw;height:100vh;background-color:rgba(0,0,0,.2);z-index:99999;position:fixed;top:0;left:"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_hb2/share_hb2.js",
    "chars": 3559,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"components/share_hb2/share_hb2\"],{2385:function(t,e,n){\"use "
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_hb2/share_hb2.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_hb2/share_hb2.wxml",
    "chars": 765,
    "preview": "<view data-event-opts=\"{{[['touchmove',[['clear',['$event']]]]]}}\" class=\"share_img flex justify-center align-center dat"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_hb2/share_hb2.wxss",
    "chars": 677,
    "preview": ".share_img.data-v-8d945558{position:absolute;top:0;left:0;z-index:9999;width:100vw;height:100vh;background-color:rgba(0,"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_img/share_img.js",
    "chars": 3486,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"components/share_img/share_img\"],{\"2b9c\":function(t,e,n){\"us"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_img/share_img.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_img/share_img.wxml",
    "chars": 765,
    "preview": "<view data-event-opts=\"{{[['touchmove',[['clear',['$event']]]]]}}\" class=\"share_img flex justify-center align-center dat"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/components/share_img/share_img.wxss",
    "chars": 677,
    "preview": ".share_img.data-v-e82a522e{position:absolute;top:0;left:0;z-index:9999;width:100vw;height:100vh;background-color:rgba(0,"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/ele/ele.js",
    "chars": 3690,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/ele/ele\"],{3203:function(t,n,o){\"use strict\";o.r(n);va"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/ele/ele.json",
    "chars": 258,
    "preview": "{\n  \"navigationStyle\": \"custom\",\n  \"navigationBarTextStyle\": \"white\",\n  \"usingComponents\": {\n    \"u-navbar\": \"/uview-ui/"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/ele/ele.wxml",
    "chars": 2632,
    "preview": "<view class=\"meituan data-v-6b610f1d\" style=\"{{(zt_bg.bgc)}}\"><u-navbar vue-id=\"0f7c9e7c-1\" is-back=\"{{false}}\" border-b"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/ele/ele.wxss",
    "chars": 1818,
    "preview": ".meituan .content .top.data-v-6b610f1d{width:750rpx}.meituan .content .top image.data-v-6b610f1d{width:100%;vertical-ali"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child1.js",
    "chars": 1087,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/index/child1\"],{\"0ef5\":function(n,t,e){\"use strict\";va"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child1.json",
    "chars": 67,
    "preview": "{\n  \"navigationBarTitleText\": \"肯德基怎样吃便宜\",\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child1.wxml",
    "chars": 3250,
    "preview": "<view class=\"child data-v-915d27f4\"><text class=\"data-v-915d27f4\"><text class=\"boldccc data-v-915d27f4\">怎样用最少的钱,吃到KFC?\n\t"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child1.wxss",
    "chars": 193,
    "preview": ".child.data-v-915d27f4{font-size:32rpx;line-height:60rpx;padding:50rpx 12rpx}.child .boldccc.data-v-915d27f4{display:blo"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child2.js",
    "chars": 1087,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/index/child2\"],{\"06c2\":function(n,t,c){\"use strict\";va"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child2.json",
    "chars": 65,
    "preview": "{\n  \"navigationBarTitleText\": \"奈雪隐藏优惠\",\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child2.wxml",
    "chars": 1779,
    "preview": "<view class=\"child data-v-7824c081\"><view class=\"data-v-7824c081\">吃奈雪的人都知道</view><view class=\"data-v-7824c081\">茶饮动辄就30+,"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/child2.wxss",
    "chars": 237,
    "preview": ".child.data-v-7824c081{font-size:32rpx;line-height:60rpx;padding:60rpx 14rpx}.child .boldccc.data-v-7824c081{display:blo"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/index.js",
    "chars": 5800,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/index/index\"],{\"0e7d\":function(e,t,n){\"use strict\";var"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/index.json",
    "chars": 173,
    "preview": "{\n  \"navigationBarTitleText\": \"首页\",\n  \"usingComponents\": {\n    \"u-swiper\": \"/uview-ui/components/u-swiper/u-swiper\",\n   "
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/index.wxml",
    "chars": 4771,
    "preview": "<page-meta vue-id=\"8dd740cc-1\" background-color-top=\"#f33f5c\" background-color=\"#FFFFFF\" bind:__l=\"__l\"></page-meta><vie"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/index.wxss",
    "chars": 4736,
    "preview": "page{background-color:#f7f5f5}.container{font-size:14px;line-height:24px;position:relative}.container .movie{display:blo"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/url/url.js",
    "chars": 1209,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/index/url/url\"],{5230:function(n,t,u){\"use strict\";u.r"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/url/url.json",
    "chars": 93,
    "preview": "{\n  \"navigationBarTitleText\": \"\",\n  \"enablePullDownRefresh\": false,\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/index/url/url.wxml",
    "chars": 48,
    "preview": "<view><web-view src=\"{{url}}\"></web-view></view>"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/meituan/meituan.js",
    "chars": 3774,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/meituan/meituan\"],{\"2bec\":function(t,n,o){},\"48f2\":fun"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/meituan/meituan.json",
    "chars": 258,
    "preview": "{\n  \"navigationStyle\": \"custom\",\n  \"navigationBarTextStyle\": \"white\",\n  \"usingComponents\": {\n    \"u-navbar\": \"/uview-ui/"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/meituan/meituan.wxml",
    "chars": 2560,
    "preview": "<view class=\"meituan data-v-8574b440\" style=\"{{(zt_bg.bgc)}}\"><u-navbar vue-id=\"58da7980-1\" is-back=\"{{false}}\" border-b"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/meituan/meituan.wxss",
    "chars": 1818,
    "preview": ".meituan .content .top.data-v-8574b440{width:750rpx}.meituan .content .top image.data-v-8574b440{width:100%;vertical-ali"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/binding.js",
    "chars": 1574,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/user/binding\"],{\"24d9\":function(t,n,e){\"use strict\";va"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/binding.json",
    "chars": 63,
    "preview": "{\n  \"navigationBarTitleText\": \"账号绑定\",\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/binding.wxml",
    "chars": 692,
    "preview": "<view class=\"binding data-v-4bcc28da\"><block wx:if=\"{{userInfo.tbk_r_id}}\"><view class=\"bdsuccess data-v-4bcc28da\">{{\"已绑"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/binding.wxss",
    "chars": 374,
    "preview": ".binding .bdsuccess.data-v-4bcc28da{color:#0af;margin-top:50rpx;font-size:34rpx;text-align:center}.binding .ewm_img.data"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/order.js",
    "chars": 3578,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/user/order\"],{\"117a\":function(t,e,n){\"use strict\";(fun"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/order.json",
    "chars": 214,
    "preview": "{\n  \"enablePullDownRefresh\": true,\n  \"navigationBarTitleText\": \"我的订单\",\n  \"usingComponents\": {\n    \"u-tabs\": \"/uview-ui/c"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/order.wxml",
    "chars": 3816,
    "preview": "<view class=\"data-v-c6b9641e\"><view class=\"order data-v-c6b9641e\"><view class=\"tabs-box1 data-v-c6b9641e\"><u-tabs vue-id"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/order.wxss",
    "chars": 2058,
    "preview": ".order.data-v-c6b9641e{height:calc(100vh - 0px);background-color:#f2f2f2;width:100%}.order .tabs-box1.data-v-c6b9641e{co"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/team.js",
    "chars": 2993,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/user/team\"],{\"083d\":function(t,e,n){\"use strict\";var a"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/team.json",
    "chars": 181,
    "preview": "{\n  \"navigationBarTitleText\": \"我的团队\",\n  \"usingComponents\": {\n    \"u-tabs\": \"/uview-ui/components/u-tabs/u-tabs\",\n    \"u-"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/team.wxml",
    "chars": 1306,
    "preview": "<view class=\"team data-v-11e3c9b6\"><view class=\"tabs-box1 data-v-11e3c9b6\"><u-tabs vue-id=\"194a068e-1\" activeColor=\"#f29"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/team.wxss",
    "chars": 837,
    "preview": ".team.data-v-11e3c9b6{height:calc(100vh - 0px);background-color:#f2f2f2;width:100%}.team .tabs-box1.data-v-11e3c9b6{colo"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/user.js",
    "chars": 4617,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/user/user\"],{\"189d\":function(t,e,n){\"use strict\";(func"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/user.json",
    "chars": 433,
    "preview": "{\n  \"navigationBarTitleText\": \"个人中心\",\n  \"navigationStyle\": \"custom\",\n  \"usingComponents\": {\n    \"u-navbar\": \"/uview-ui/c"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/user.wxml",
    "chars": 7545,
    "preview": "<page-meta vue-id=\"380011e0-1\" background-color-top=\"#f33f5c\" background-color=\"#FFFFFF\" class=\"data-v-2f4dcdf6\" bind:__"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/user/user.wxss",
    "chars": 3329,
    "preview": ".my.data-v-2f4dcdf6{height:100vh;background-color:#f2f2f2;position:relative}.my .my_bg.data-v-2f4dcdf6{position:absolute"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/wallet/wallet.js",
    "chars": 4840,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"pages/wallet/wallet\"],{\"3af0\":function(t,n,e){\"use strict\";e"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/wallet/wallet.json",
    "chars": 181,
    "preview": "{\n  \"navigationBarTitleText\": \"我的钱包\",\n  \"usingComponents\": {\n    \"u-tabs\": \"/uview-ui/components/u-tabs/u-tabs\",\n    \"u-"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/wallet/wallet.wxml",
    "chars": 2931,
    "preview": "<view class=\"wallet data-v-4aa660a4\"><view class=\"tabs-box1 data-v-4aa660a4\"><u-tabs vue-id=\"ce6f9bc0-1\" activeColor=\"#f"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/pages/wallet/wallet.wxss",
    "chars": 2077,
    "preview": ".wallet.data-v-4aa660a4{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-di"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/project.config.json",
    "chars": 1328,
    "preview": "{\n  \"description\": \"项目配置文件。\",\n  \"packOptions\": {\n    \"ignore\": []\n  },\n  \"setting\": {\n    \"urlCheck\": true,\n    \"es6\": t"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/sitemap.json",
    "chars": 159,
    "preview": "{\n  \"desc\": \"关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html\",\n  \"rules\": [{\n  "
  },
  {
    "path": "unpackage/dist/build/mp-weixin/static/iconfont.css",
    "chars": 1753,
    "preview": "@font-face {\n\tfont-family: \"custom-icon\";\n  src:url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAPE"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-badge/u-badge.js",
    "chars": 2564,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-badge/u-badge\"],{\"3d59\":function(t,e,o"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-badge/u-badge.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-badge/u-badge.wxml",
    "chars": 207,
    "preview": "<block wx:if=\"{{show}}\"><view class=\"{{['u-badge data-v-a4d28fac',isDot?'u-badge-dot':'',size=='mini'?'u-badge-mini':'',"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-badge/u-badge.wxss",
    "chars": 920,
    "preview": ".u-badge.data-v-a4d28fac{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;-webkit-box-pack:cen"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-group/u-cell-group.js",
    "chars": 1695,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-cell-group/u-cell-group\"],{5377:functi"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-group/u-cell-group.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-group/u-cell-group.wxml",
    "chars": 284,
    "preview": "<view class=\"u-cell-box data-v-7dabc9b4\"><block wx:if=\"{{title}}\"><view class=\"u-cell-title data-v-7dabc9b4\" style=\"{{$r"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-group/u-cell-group.wxss",
    "chars": 307,
    "preview": ".u-cell-box.data-v-7dabc9b4{width:100%}.u-cell-title.data-v-7dabc9b4{padding:30rpx 32rpx 10rpx 32rpx;font-size:30rpx;tex"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-item/u-cell-item.js",
    "chars": 2932,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-cell-item/u-cell-item\"],{\"0d09\":functi"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-item/u-cell-item.json",
    "chars": 102,
    "preview": "{\n  \"usingComponents\": {\n    \"u-icon\": \"/uview-ui/components/u-icon/u-icon\"\n  },\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-item/u-cell-item.wxml",
    "chars": 1606,
    "preview": "<view class=\"{{['u-cell data-v-fd599ece',(borderBottom)?'u-border-bottom':'',(borderTop)?'u-border-top':'',(center)?'u-c"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-cell-item/u-cell-item.wxss",
    "chars": 1993,
    "preview": ".u-cell.data-v-fd599ece{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-icon/u-icon.js",
    "chars": 4646,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-icon/u-icon\"],{\"0cf7\":function(t,i,e){"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-icon/u-icon.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-icon/u-icon.wxml",
    "chars": 1080,
    "preview": "<view data-event-opts=\"{{[['tap',[['click',['$event']]]]]}}\" class=\"{{['u-icon data-v-9e9bab12','u-icon--'+labelPos]}}\" "
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-icon/u-icon.wxss",
    "chars": 49159,
    "preview": "@font-face{font-family:uicon-iconfont;src:url(//at.alicdn.com/t/font_1529455_k4s6di1d1.eot?t=1596960292384);src:url(//at"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-line/u-line.js",
    "chars": 2110,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-line/u-line\"],{\"235c\":function(t,e,n){"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-line/u-line.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-line/u-line.wxml",
    "chars": 65,
    "preview": "<view class=\"u-line data-v-6b54d216\" style=\"{{$root.s0}}\"></view>"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-line/u-line.wxss",
    "chars": 46,
    "preview": ".u-line.data-v-6b54d216{vertical-align:middle}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loading/u-loading.js",
    "chars": 1869,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-loading/u-loading\"],{\"281e\":function(e"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loading/u-loading.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loading/u-loading.wxml",
    "chars": 161,
    "preview": "<block wx:if=\"{{show}}\"><view class=\"{{['u-loading data-v-1983c2a8',mode=='circle'?'u-loading-circle':'u-loading-flower'"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loading/u-loading.wxss",
    "chars": 2995,
    "preview": ".u-loading-circle.data-v-1983c2a8{display:-webkit-inline-box;display:-webkit-inline-flex;display:inline-flex;vertical-al"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loadmore/u-loadmore.js",
    "chars": 2869,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-loadmore/u-loadmore\"],{\"7dba\":function"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loadmore/u-loadmore.json",
    "chars": 163,
    "preview": "{\n  \"usingComponents\": {\n    \"u-line\": \"/uview-ui/components/u-line/u-line\",\n    \"u-loading\": \"/uview-ui/components/u-lo"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loadmore/u-loadmore.wxml",
    "chars": 1012,
    "preview": "<view class=\"u-load-more-wrap data-v-f8168008\" style=\"{{'background-color:'+(bgColor)+';'+('margin-bottom:'+(marginBotto"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-loadmore/u-loadmore.wxss",
    "chars": 1491,
    "preview": "u-line.data-v-f8168008{-webkit-box-flex:0;-webkit-flex:none;flex:none}.u-load-more-wrap.data-v-f8168008{display:-webkit-"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-navbar/u-navbar.js",
    "chars": 3525,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-navbar/u-navbar\"],{1365:function(t,e,n"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-navbar/u-navbar.json",
    "chars": 102,
    "preview": "{\n  \"usingComponents\": {\n    \"u-icon\": \"/uview-ui/components/u-icon/u-icon\"\n  },\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-navbar/u-navbar.wxml",
    "chars": 1476,
    "preview": "<view class=\"data-v-12b09b2d\"><view class=\"{{['u-navbar data-v-12b09b2d',(isFixed)?'u-navbar-fixed':'',(borderBottom)?'u"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-navbar/u-navbar.wxss",
    "chars": 2331,
    "preview": ".u-navbar.data-v-12b09b2d{width:100%}.u-navbar-fixed.data-v-12b09b2d{position:fixed;left:0;right:0;top:0;z-index:991}.u-"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-swiper/u-swiper.js",
    "chars": 3340,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-swiper/u-swiper\"],{\"24c9\":function(t,e"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-swiper/u-swiper.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-swiper/u-swiper.wxml",
    "chars": 2815,
    "preview": "<view class=\"u-swiper-wrap data-v-5e4985c8\" style=\"{{'border-radius:'+(borderRadius+'rpx')+';'}}\"><swiper style=\"{{'heig"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-swiper/u-swiper.wxss",
    "chars": 2140,
    "preview": ".u-swiper-wrap.data-v-5e4985c8{position:relative;overflow:hidden;-webkit-transform:translateY(0);transform:translateY(0)"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-tabs/u-tabs.js",
    "chars": 5198,
    "preview": "(global[\"webpackJsonp\"]=global[\"webpackJsonp\"]||[]).push([[\"uview-ui/components/u-tabs/u-tabs\"],{1982:function(t,e,n){\"u"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-tabs/u-tabs.json",
    "chars": 105,
    "preview": "{\n  \"usingComponents\": {\n    \"u-badge\": \"/uview-ui/components/u-badge/u-badge\"\n  },\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-tabs/u-tabs.wxml",
    "chars": 969,
    "preview": "<view class=\"u-tabs data-v-dd7dcb4c\" style=\"{{'background:'+(bgColor)+';'}}\"><view id=\"{{id}}\" class=\"data-v-dd7dcb4c\"><"
  },
  {
    "path": "unpackage/dist/build/mp-weixin/uview-ui/components/u-tabs/u-tabs.wxss",
    "chars": 925,
    "preview": "view.data-v-dd7dcb4c,\nscroll-view.data-v-dd7dcb4c{box-sizing:border-box}.data-v-dd7dcb4c::-webkit-scrollbar,.data-v-dd7d"
  },
  {
    "path": "unpackage/dist/dev/.automator/mp-weixin/.automator.json",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/app.js",
    "chars": 89,
    "preview": "\nrequire('./common/runtime.js')\nrequire('./common/vendor.js')\nrequire('./common/main.js')"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/app.json",
    "chars": 1450,
    "preview": "{\n  \"pages\": [\n    \"pages/index/index\",\n    \"pages/index/child1\",\n    \"pages/index/child2\",\n    \"pages/ele/ele\",\n    \"pa"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/app.wxss",
    "chars": 118,
    "preview": "@import './common/main.wxss';\n\n[data-custom-hidden=\"true\"],[bind-data-custom-hidden=\"true\"]{display: none !important;}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/common/main.js",
    "chars": 28183,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"common/main\"],[\n/* 0 */\n/*!*****************************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/common/main.wxss",
    "chars": 59593,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/common/runtime.js",
    "chars": 13367,
    "preview": "\n  !function(){try{var a=Function(\"return this\")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/common/vendor.js",
    "chars": 426059,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"common/vendor\"],[\n/* 0 */,\n/* 1 */\n/*!******************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/auth/login.js",
    "chars": 34857,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"components/auth/login\"],{\n\n/***/ 201:\n/*!***************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/auth/login.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/auth/login.wxml",
    "chars": 863,
    "preview": "<block wx:if=\"{{isshow}}\"><view class=\"login flex justify-center align-center data-v-23dbdabd\"><view class=\"subject data"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/auth/login.wxss",
    "chars": 1283,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_hb2/share_hb2.js",
    "chars": 39037,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"components/share_hb2/share_hb2\"],{\n\n/***/ 166:\n/*!******"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_hb2/share_hb2.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_hb2/share_hb2.wxml",
    "chars": 765,
    "preview": "<view data-event-opts=\"{{[['touchmove',[['clear',['$event']]]]]}}\" class=\"share_img flex justify-center align-center dat"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_hb2/share_hb2.wxss",
    "chars": 1312,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_img/share_img.js",
    "chars": 38905,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"components/share_img/share_img\"],{\n\n/***/ 145:\n/*!******"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_img/share_img.json",
    "chars": 48,
    "preview": "{\n  \"usingComponents\": {},\n  \"component\": true\n}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_img/share_img.wxml",
    "chars": 765,
    "preview": "<view data-event-opts=\"{{[['touchmove',[['clear',['$event']]]]]}}\" class=\"share_img flex justify-center align-center dat"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/components/share_img/share_img.wxss",
    "chars": 1312,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/ele/ele.js",
    "chars": 39141,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/ele/ele\"],{\n\n/***/ 76:\n/*!************************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/ele/ele.json",
    "chars": 258,
    "preview": "{\n  \"navigationStyle\": \"custom\",\n  \"navigationBarTextStyle\": \"white\",\n  \"usingComponents\": {\n    \"u-navbar\": \"/uview-ui/"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/ele/ele.wxml",
    "chars": 2852,
    "preview": "<view class=\"meituan data-v-21882e78\" style=\"{{(zt_bg.bgc)}}\"><u-navbar vue-id=\"0f7c9e7c-1\" is-back=\"{{false}}\" border-b"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/ele/ele.wxss",
    "chars": 2632,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child1.js",
    "chars": 34645,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/index/child1\"],{\n\n/***/ 60:\n/*!*******************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child1.json",
    "chars": 67,
    "preview": "{\n  \"navigationBarTitleText\": \"肯德基怎样吃便宜\",\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child1.wxml",
    "chars": 3250,
    "preview": "<view class=\"child data-v-454a7b2a\"><text class=\"data-v-454a7b2a\"><text class=\"boldccc data-v-454a7b2a\">怎样用最少的钱,吃到KFC?\n\t"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child1.wxss",
    "chars": 725,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child2.js",
    "chars": 34396,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/index/child2\"],{\n\n/***/ 68:\n/*!*******************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child2.json",
    "chars": 65,
    "preview": "{\n  \"navigationBarTitleText\": \"奈雪隐藏优惠\",\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child2.wxml",
    "chars": 1779,
    "preview": "<view class=\"child data-v-452e4c28\"><view class=\"data-v-452e4c28\">吃奈雪的人都知道</view><view class=\"data-v-452e4c28\">茶饮动辄就30+,"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/child2.wxss",
    "chars": 777,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/index.js",
    "chars": 42611,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/index/index\"],{\n\n/***/ 52:\n/*!********************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/index.json",
    "chars": 173,
    "preview": "{\n  \"navigationBarTitleText\": \"首页\",\n  \"usingComponents\": {\n    \"u-swiper\": \"/uview-ui/components/u-swiper/u-swiper\",\n   "
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/index.wxml",
    "chars": 4771,
    "preview": "<page-meta vue-id=\"8dd740cc-1\" background-color-top=\"#f33f5c\" background-color=\"#FFFFFF\" bind:__l=\"__l\"></page-meta><vie"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/index.wxss",
    "chars": 6195,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/url/url.js",
    "chars": 20979,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/index/url/url\"],{\n\n/***/ 132:\n/*!*****************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/url/url.json",
    "chars": 93,
    "preview": "{\n  \"navigationBarTitleText\": \"\",\n  \"enablePullDownRefresh\": false,\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/index/url/url.wxml",
    "chars": 48,
    "preview": "<view><web-view src=\"{{url}}\"></web-view></view>"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/meituan/meituan.js",
    "chars": 39633,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/meituan/meituan\"],{\n\n/***/ 84:\n/*!****************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/meituan/meituan.json",
    "chars": 258,
    "preview": "{\n  \"navigationStyle\": \"custom\",\n  \"navigationBarTextStyle\": \"white\",\n  \"usingComponents\": {\n    \"u-navbar\": \"/uview-ui/"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/meituan/meituan.wxml",
    "chars": 2780,
    "preview": "<view class=\"meituan data-v-385f8e86\" style=\"{{(zt_bg.bgc)}}\"><u-navbar vue-id=\"58da7980-1\" is-back=\"{{false}}\" border-b"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/meituan/meituan.wxss",
    "chars": 2632,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/binding.js",
    "chars": 35270,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/user/binding\"],{\n\n/***/ 100:\n/*!******************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/binding.json",
    "chars": 63,
    "preview": "{\n  \"navigationBarTitleText\": \"账号绑定\",\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/binding.wxml",
    "chars": 692,
    "preview": "<view class=\"binding data-v-492ae8ba\"><block wx:if=\"{{userInfo.tbk_r_id}}\"><view class=\"bdsuccess data-v-492ae8ba\">{{\"已绑"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/binding.wxss",
    "chars": 940,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/order.js",
    "chars": 39462,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/user/order\"],{\n\n/***/ 116:\n/*!********************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/order.json",
    "chars": 214,
    "preview": "{\n  \"enablePullDownRefresh\": true,\n  \"navigationBarTitleText\": \"我的订单\",\n  \"usingComponents\": {\n    \"u-tabs\": \"/uview-ui/c"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/order.wxml",
    "chars": 3816,
    "preview": "<view class=\"data-v-0f0c1843\"><view class=\"order data-v-0f0c1843\"><view class=\"tabs-box1 data-v-0f0c1843\"><u-tabs vue-id"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/order.wxss",
    "chars": 2990,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/team.js",
    "chars": 38222,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/user/team\"],{\n\n/***/ 124:\n/*!*********************"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/team.json",
    "chars": 181,
    "preview": "{\n  \"navigationBarTitleText\": \"我的团队\",\n  \"usingComponents\": {\n    \"u-tabs\": \"/uview-ui/components/u-tabs/u-tabs\",\n    \"u-"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/team.wxml",
    "chars": 1306,
    "preview": "<view class=\"team data-v-6c2ba978\"><view class=\"tabs-box1 data-v-6c2ba978\"><u-tabs vue-id=\"194a068e-1\" activeColor=\"#f29"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/team.wxss",
    "chars": 1469,
    "preview": "@charset \"UTF-8\";\n/**\n * 这里是uni-app内置的常用样式变量\n *\n * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量\n * 如果"
  },
  {
    "path": "unpackage/dist/dev/mp-weixin/pages/user/user.js",
    "chars": 42162,
    "preview": "(global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || []).push([[\"pages/user/user\"],{\n\n/***/ 108:\n/*!*********************"
  }
]

// ... and 194 more files (download for full content)

About this extraction

This page contains the full source code of the master-start/waimai-cps-uniapp GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 394 files (2.9 MB), approximately 787.8k tokens, and a symbol index with 1258 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!