Full Code of EastWorld/wechat-app-mall for AI

master 33102d02aa1b cached
911 files
2.3 MB
650.6k tokens
1479 symbols
1 requests
Download .txt
Showing preview only (2,583K chars total). Download the full file or copy to clipboard to get everything.
Repository: EastWorld/wechat-app-mall
Branch: master
Commit: 33102d02aa1b
Files: 911
Total size: 2.3 MB

Directory structure:
gitextract_l7xqrqgw/

├── .gitignore
├── LICENSE
├── README.md
├── app.js
├── app.json
├── app.wxss
├── components/
│   ├── bind-mobile/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── date-time-selecter/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── fuwuxieyi/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── goods-pop/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── login/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── payment/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   └── vip-success/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       └── index.wxss
├── config.js
├── jsconfig.json
├── miniprogram_npm/
│   ├── @vant/
│   │   └── weapp/
│   │       ├── action-sheet/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── area/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── button/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── calendar/
│   │       │   ├── calendar.wxml
│   │       │   ├── components/
│   │       │   │   ├── header/
│   │       │   │   │   ├── index.d.ts
│   │       │   │   │   ├── index.js
│   │       │   │   │   ├── index.json
│   │       │   │   │   ├── index.wxml
│   │       │   │   │   └── index.wxss
│   │       │   │   └── month/
│   │       │   │       ├── index.d.ts
│   │       │   │       ├── index.js
│   │       │   │       ├── index.json
│   │       │   │       ├── index.wxml
│   │       │   │       ├── index.wxs
│   │       │   │       └── index.wxss
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── utils.d.ts
│   │       │   ├── utils.js
│   │       │   └── utils.wxs
│   │       ├── card/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── cascader/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── cell/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── cell-group/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── checkbox/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── checkbox-group/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── circle/
│   │       │   ├── canvas.d.ts
│   │       │   ├── canvas.js
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── col/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── collapse/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── collapse-item/
│   │       │   ├── animate.d.ts
│   │       │   ├── animate.js
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── common/
│   │       │   ├── color.d.ts
│   │       │   ├── color.js
│   │       │   ├── component.d.ts
│   │       │   ├── component.js
│   │       │   ├── index.wxss
│   │       │   ├── relation.d.ts
│   │       │   ├── relation.js
│   │       │   ├── style/
│   │       │   │   ├── clearfix.wxss
│   │       │   │   ├── ellipsis.wxss
│   │       │   │   ├── hairline.wxss
│   │       │   │   ├── mixins/
│   │       │   │   │   ├── clearfix.wxss
│   │       │   │   │   ├── ellipsis.wxss
│   │       │   │   │   └── hairline.wxss
│   │       │   │   └── var.wxss
│   │       │   ├── utils.d.ts
│   │       │   ├── utils.js
│   │       │   ├── validator.d.ts
│   │       │   ├── validator.js
│   │       │   ├── version.d.ts
│   │       │   └── version.js
│   │       ├── config-provider/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxs
│   │       ├── count-down/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   ├── utils.d.ts
│   │       │   └── utils.js
│   │       ├── datetime-picker/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── definitions/
│   │       │   ├── index.d.ts
│   │       │   └── index.js
│   │       ├── dialog/
│   │       │   ├── dialog.d.ts
│   │       │   ├── dialog.js
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── divider/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── dropdown-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   ├── shared.d.ts
│   │       │   └── shared.js
│   │       ├── dropdown-menu/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── empty/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── field/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── input.wxml
│   │       │   ├── props.d.ts
│   │       │   ├── props.js
│   │       │   ├── textarea.wxml
│   │       │   ├── types.d.ts
│   │       │   └── types.js
│   │       ├── goods-action/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── goods-action-button/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── goods-action-icon/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── grid/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── grid-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── icon/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── image/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── index-anchor/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── index-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── info/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── loading/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── mixins/
│   │       │   ├── basic.d.ts
│   │       │   ├── basic.js
│   │       │   ├── button.d.ts
│   │       │   ├── button.js
│   │       │   ├── link.d.ts
│   │       │   ├── link.js
│   │       │   ├── page-scroll.d.ts
│   │       │   ├── page-scroll.js
│   │       │   ├── touch.d.ts
│   │       │   ├── touch.js
│   │       │   ├── transition.d.ts
│   │       │   └── transition.js
│   │       ├── nav-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── notice-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── notify/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── notify.d.ts
│   │       │   └── notify.js
│   │       ├── overlay/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   └── overlay.wxml
│   │       ├── panel/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── picker/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── shared.d.ts
│   │       │   ├── shared.js
│   │       │   └── toolbar.wxml
│   │       ├── picker-column/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── popup/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   └── popup.wxml
│   │       ├── progress/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── radio/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── radio-group/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── rate/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── row/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── search/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── share-sheet/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── options.d.ts
│   │       │   ├── options.js
│   │       │   ├── options.json
│   │       │   ├── options.wxml
│   │       │   ├── options.wxs
│   │       │   └── options.wxss
│   │       ├── sidebar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── sidebar-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── skeleton/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── slider/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── stepper/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── steps/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── sticky/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── submit-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── swipe-cell/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── switch/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── tab/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── tabbar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── tabbar-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── tabs/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── tag/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── toast/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   ├── toast.d.ts
│   │       │   └── toast.js
│   │       ├── transition/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── tree-select/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── uploader/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── shared.d.ts
│   │       │   ├── shared.js
│   │       │   ├── utils.d.ts
│   │       │   └── utils.js
│   │       └── wxs/
│   │           ├── add-unit.wxs
│   │           ├── array.wxs
│   │           ├── bem.wxs
│   │           ├── memoize.wxs
│   │           ├── object.wxs
│   │           ├── style.wxs
│   │           └── utils.wxs
│   ├── apifm-wxapi/
│   │   └── index.js
│   ├── dayjs/
│   │   └── index.js
│   ├── mp-html/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── node/
│   │   │   ├── node.js
│   │   │   ├── node.json
│   │   │   ├── node.wxml
│   │   │   └── node.wxss
│   │   └── parser.js
│   ├── wxa-plugin-canvas/
│   │   ├── index/
│   │   │   ├── index.js
│   │   │   ├── index.json
│   │   │   ├── index.wxml
│   │   │   └── index.wxss
│   │   └── poster/
│   │       ├── index.js
│   │       ├── index.json
│   │       ├── index.wxml
│   │       ├── index.wxss
│   │       └── poster.js
│   └── wxbarcode/
│       └── index.js
├── package.json
├── packageCps/
│   └── pages/
│       ├── goods-details/
│       │   ├── cps-jd.js
│       │   ├── cps-jd.json
│       │   ├── cps-jd.wxml
│       │   ├── cps-jd.wxss
│       │   ├── cps-pdd.js
│       │   ├── cps-pdd.json
│       │   ├── cps-pdd.wxml
│       │   ├── cps-pdd.wxss
│       │   ├── cps-taobao.js
│       │   ├── cps-taobao.json
│       │   ├── cps-taobao.wxml
│       │   └── cps-taobao.wxss
│       └── order-list/
│           ├── cps.js
│           ├── cps.json
│           ├── cps.wxml
│           └── cps.wxss
├── packageFx/
│   └── pages/
│       ├── apply/
│       │   ├── form.js
│       │   ├── form.json
│       │   ├── form.wxml
│       │   ├── form.wxss
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── commisionLog/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── hehuorenfenxiao/
│       │   ├── fxmember.js
│       │   ├── fxmember.json
│       │   ├── fxmember.wxml
│       │   ├── fxmember.wxss
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── index/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── myusers/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   ├── index.wxss
│       │   ├── myusers-detail.js
│       │   ├── myusers-detail.json
│       │   ├── myusers-detail.wxml
│       │   └── myusers-detail.wxss
│       └── report/
│           ├── city.js
│           ├── city.json
│           ├── city.wxml
│           ├── city.wxss
│           ├── team.js
│           ├── team.json
│           ├── team.wxml
│           └── team.wxss
├── packageStreamMedia/
│   ├── components/
│   │   ├── TRTCCalling/
│   │   │   ├── TRTCCalling.js
│   │   │   ├── TRTCCalling.json
│   │   │   ├── TRTCCalling.wxml
│   │   │   ├── TRTCCalling.wxss
│   │   │   ├── common/
│   │   │   │   └── constants.js
│   │   │   ├── controller/
│   │   │   │   └── user-controller.js
│   │   │   ├── libs/
│   │   │   │   └── mta_analysis.js
│   │   │   ├── model/
│   │   │   │   ├── stream.js
│   │   │   │   └── user.js
│   │   │   ├── template/
│   │   │   │   ├── audio-template/
│   │   │   │   │   ├── audio-template.wxml
│   │   │   │   │   └── audio-template.wxss
│   │   │   │   └── video-template/
│   │   │   │       ├── video-template.wxml
│   │   │   │       └── video-template.wxss
│   │   │   └── utils/
│   │   │       ├── compare-version.js
│   │   │       ├── environment.js
│   │   │       ├── event.js
│   │   │       └── tsignaling-wx.js
│   │   └── like-dz/
│   │       ├── like-dz.js
│   │       ├── like-dz.json
│   │       ├── like-dz.wxml
│   │       └── like-dz.wxss
│   └── pages/
│       ├── live-anchor/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   ├── index.wxss
│       │   ├── list.js
│       │   ├── list.json
│       │   ├── list.wxml
│       │   └── list.wxss
│       ├── live-client/
│       │   ├── client.js
│       │   ├── client.json
│       │   ├── client.wxml
│       │   ├── client.wxss
│       │   ├── list.js
│       │   ├── list.json
│       │   ├── list.wxml
│       │   └── list.wxss
│       └── videoCall/
│           ├── videoCall.js
│           ├── videoCall.json
│           ├── videoCall.wxml
│           └── videoCall.wxss
├── pages/
│   ├── about/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── address-add/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── asset/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── card/
│   │   ├── logs.js
│   │   ├── logs.json
│   │   ├── logs.wxml
│   │   └── logs.wxss
│   ├── category/
│   │   ├── category.js
│   │   ├── category.json
│   │   ├── category.wxml
│   │   └── category.wxss
│   ├── cms/
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── coupons/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── merge.js
│   │   ├── merge.json
│   │   ├── merge.wxml
│   │   └── merge.wxss
│   ├── deposit/
│   │   ├── pay.js
│   │   ├── pay.json
│   │   ├── pay.wxml
│   │   └── pay.wxss
│   ├── goods/
│   │   ├── fav.js
│   │   ├── fav.json
│   │   ├── fav.wxml
│   │   ├── fav.wxss
│   │   ├── his.js
│   │   ├── his.json
│   │   ├── his.wxml
│   │   ├── his.wxss
│   │   ├── list-vop.js
│   │   ├── list-vop.json
│   │   ├── list-vop.wxml
│   │   ├── list-vop.wxss
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── goods-details/
│   │   ├── day.js
│   │   ├── day.json
│   │   ├── day.wxml
│   │   ├── day.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── times01.js
│   │   ├── times01.json
│   │   ├── times01.wxml
│   │   ├── times01.wxss
│   │   ├── times02.js
│   │   ├── times02.json
│   │   ├── times02.wxml
│   │   ├── times02.wxss
│   │   ├── vop.js
│   │   ├── vop.json
│   │   ├── vop.wxml
│   │   └── vop.wxss
│   ├── help/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── idCheck/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── index/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── invoice/
│   │   ├── apply.js
│   │   ├── apply.json
│   │   ├── apply.wxml
│   │   ├── apply.wxss
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── live/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── login/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── maidan/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── my/
│   │   ├── feedback.js
│   │   ├── feedback.json
│   │   ├── feedback.wxml
│   │   ├── feedback.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── info-menu.js
│   │   ├── info-menu.json
│   │   ├── info-menu.wxml
│   │   ├── info-menu.wxss
│   │   ├── info.js
│   │   ├── info.json
│   │   ├── info.wxml
│   │   ├── info.wxss
│   │   ├── setting.js
│   │   ├── setting.json
│   │   ├── setting.wxml
│   │   ├── setting.wxss
│   │   ├── user-code.js
│   │   ├── user-code.json
│   │   ├── user-code.wxml
│   │   └── user-code.wxss
│   ├── notagree/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── notice/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── show.js
│   │   ├── show.json
│   │   ├── show.wxml
│   │   └── show.wxss
│   ├── order/
│   │   ├── refundApply.js
│   │   ├── refundApply.json
│   │   ├── refundApply.wxml
│   │   └── refundApply.wxss
│   ├── order-details/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── scan-result.js
│   │   ├── scan-result.json
│   │   ├── scan-result.wxml
│   │   └── scan-result.wxss
│   ├── order-list/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── peisong/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── orders.js
│   │   ├── orders.json
│   │   ├── orders.wxml
│   │   ├── orders.wxss
│   │   ├── statistics.js
│   │   ├── statistics.json
│   │   ├── statistics.wxml
│   │   └── statistics.wxss
│   ├── pwd-pay/
│   │   ├── modify.js
│   │   ├── modify.json
│   │   ├── modify.wxml
│   │   ├── modify.wxss
│   │   ├── reset.js
│   │   ├── reset.json
│   │   ├── reset.wxml
│   │   ├── reset.wxss
│   │   ├── set.js
│   │   ├── set.json
│   │   ├── set.wxml
│   │   └── set.wxss
│   ├── raffle/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── recharge/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── recycle/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── order-detail.js
│   │   ├── order-detail.json
│   │   ├── order-detail.wxml
│   │   ├── order-detail.wxss
│   │   ├── orders.js
│   │   ├── orders.json
│   │   ├── orders.wxml
│   │   └── orders.wxss
│   ├── score/
│   │   ├── growth.js
│   │   ├── growth.json
│   │   ├── growth.wxml
│   │   ├── growth.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── score-excharge/
│   │   ├── growth.js
│   │   ├── growth.json
│   │   ├── growth.wxml
│   │   ├── growth.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── search/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── select-address/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── shop/
│   │   ├── select.js
│   │   ├── select.json
│   │   ├── select.wxml
│   │   └── select.wxss
│   ├── shop-cart/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── sign/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── start/
│   │   ├── start.js
│   │   ├── start.json
│   │   ├── start.wxml
│   │   └── start.wxss
│   ├── template-cart/
│   │   ├── template-cart.js
│   │   ├── template-cart.wxml
│   │   └── template-cart.wxss
│   ├── test/
│   │   ├── wifi.js
│   │   ├── wifi.json
│   │   ├── wifi.wxml
│   │   └── wifi.wxss
│   ├── to-pay-order/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── vip/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── history.js
│   │   ├── history.json
│   │   ├── history.wxml
│   │   ├── history.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── withdraw/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   └── wuliu/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       └── index.wxss
├── project.config.json
├── project.private.config.json
├── sitemap.json
├── typings/
│   └── wx.d.ts
└── utils/
    ├── address_parse.js
    ├── auth.js
    ├── image.js
    ├── pay.js
    ├── tools.js
    └── tools.wxs

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

================================================
FILE: .gitignore
================================================
dist/
package-lock.json
node_modules/
.DS_Store

================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "{}"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright {yyyy} {name of copyright owner}

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# 微信小程序商城

微信小程序商城,微信小程序微店,长期维护版本,欢迎大家踊跃提交贡献代码;

使用说明和常见问题,可参阅下面的说明,如还有疑问,可访问工厂官网 [https://www.it120.cc/](https://www.it120.cc/) 寻求帮助!

新增直播带货支持,具体详见使用说明

# 今日头条/抖音小程序版本

本项目的今日头条/抖音小程序版本,请移步至下面的地址:

[https://github.com/EastWorld/tt-app-mall](https://github.com/EastWorld/tt-app-mall)

## 扫码体验

<img src="https://dcdn.it120.cc/2022/12/31/0215c085-d4d1-43e4-bd7d-0e7336eaa661.jpeg" width="200px">

## 详细配置/使用教程

[https://www.it120.cc/help/ikfe2k.html](https://www.it120.cc/help/ikfe2k.html)

**遇到使用问题?**

[点击这里找答案,可用关键词搜索](https://www.it120.cc/help/index.html)

## 其他优秀开源模板推荐
- [天使童装](https://github.com/EastWorld/wechat-app-mall)   /  [码云镜像](https://gitee.com/javazj/wechat-app-mall)  /  [GitCode镜像](https://gitcode.com/gooking2/wechat-app-mall)
- [天使童装(uni-app版本)](https://github.com/gooking/uni-app-mall)  /   [码云镜像](https://gitee.com/javazj/uni-app-mall)  /  [GitCode镜像](https://gitcode.com/gooking2/uni-app-mall)
- [简约精品商城(uni-app版本)](https://github.com/gooking/uni-app--mini-mall)  /   [码云镜像](https://gitee.com/javazj/uni-app--mini-mall)  /   [GitCode镜像](https://gitcode.com/gooking2/uni-app--mini-mall)
- [舔果果小铺(升级版)](https://github.com/gooking/TianguoguoXiaopu)
- [面馆风格小程序](https://gitee.com/javazj/noodle_shop_procedures)
- [AI名片](https://github.com/gooking/visitingCard)  /   [码云镜像](https://gitee.com/javazj/visitingCard)  /   [GitCode镜像](https://gitcode.com/gooking2/visitingCard)
- [仿海底捞订座排队 (uni-app)](https://github.com/gooking/dingzuopaidui)  /   [码云镜像](https://gitee.com/javazj/dingzuopaidui)  /   [GitCode镜像](https://gitcode.com/gooking2/dingzuopaidui)
- [H5版本商城/餐饮](https://github.com/gooking/vueMinishop)  /  [码云镜像](https://gitee.com/javazj/vueMinishop) /  [GitCode镜像](https://gitcode.com/gooking2/vueMinishop)
- [餐饮点餐](https://github.com/woniudiancang/bee)  / [码云镜像](https://gitee.com/woniudiancang/bee) / [GitCode镜像](https://gitcode.com/gooking2/bee)
- [企业微展](https://github.com/gooking/qiyeweizan)  / [码云镜像](https://gitee.com/javazj/qiyeweizan) / [GitCode镜像](https://gitcode.com/gooking2/qiyeweizan)
- [无人棋牌室](https://github.com/gooking/wurenqipai)  / [码云镜像](https://gitee.com/javazj/wurenqipai) / [GitCode镜像](https://gitcode.com/gooking2/wurenqipai)
- [酒店客房服务小程序](https://github.com/gooking/hotelRoomService)  / [码云镜像](https://gitee.com/javazj/hotelRoomService) / [GitCode镜像](https://gitcode.com/gooking2/hotelRoomService)
- [面包店风格小程序](https://github.com/gooking/bread)  / [码云镜像](https://gitee.com/javazj/bread) / [GitCode镜像](https://gitcode.com/gooking2/bread)
- [朋友圈发圈素材小程序](https://github.com/gooking/moments)  / [码云镜像](https://gitee.com/javazj/moments) / [GitCode镜像](https://gitcode.com/gooking2/moments)
- [小红书企业微展](https://github.com/gooking/xhs-qiyeweizan)  / [码云镜像](https://gitee.com/javazj/xhs-qiyeweizan) / [GitCode镜像](https://gitcode.com/gooking2/xhs-qiyeweizan)
- [旧物回收、废品回收](https://github.com/gooking/recycle)  / [码云镜像](https://gitee.com/javazj/recycle) / [GitCode镜像](https://gitcode.com/gooking2/recycle)
- [会员卡(饭卡)储值消费系统](https://github.com/gooking/mealcard)  / [码云镜像](https://gitee.com/javazj/mealcard) / [GitCode镜像](https://gitcode.com/gooking2/mealcard)

## 联系作者

| 微信好友 | QQ好友 |
| :------: | :------: |
| <img src="https://dcdn.it120.cc/2021/09/13/61a80363-9085-4a10-9447-e276a3d40ab3.jpeg" width="200px"> | <img src="https://dcdn.it120.cc/2021/09/13/08a598d8-8186-4159-9930-2e4908accc5e.png" width="200px"> |

## 本项目使用了下面的组件,在此鸣谢

- [接口 SDK](https://github.com/gooking/apifm-wxapi)

- [api工厂](https://admin.s2m.cc)

- [vant-weapp](https://youzan.github.io/vant-weapp)

- [小程序富文本插件(html 渲染)](https://github.com/jin-yufeng/mp-html)

- [小程序海报组件-生成朋友圈分享海报并生成图片](https://github.com/jasondu/wxa-plugin-canvas)

- [Apache ECharts](https://github.com/ecomfe/echarts-for-weixin)

底部ICON图标使用:
https://www.iconfont.cn/collections/detail?spm=a313x.7781069.0.da5a778a4&cid=18904

  
## 如何升级到最新版

- 小程序程序的修改和您后台的数据是独立的,所以不用担心您会丢失数据
- 先把你开发工具下的现有版本程序备份
- 下载最新版的程序,直接覆盖您本地的程序
- 用开发工具修改域名 mall 为你自己的域名
- 开发工具里面上传代码提交微信审核
- 审核通过后,小程序后台去发布新版本即可
- 用户无需重新扫码,关闭小程序重新打开就是新版本了


================================================
FILE: app.js
================================================
const WXAPI = require('apifm-wxapi')
const CONFIG = require('config.js')
const AUTH = require('utils/auth')
App({
  onLaunch: function() {
    const subDomain = wx.getExtConfigSync().subDomain
    if (subDomain) {
      WXAPI.init(subDomain)
    } else {
      WXAPI.init(CONFIG.subDomain)
      WXAPI.setMerchantId(CONFIG.merchantId)
    }
    const that = this;
    // 检测新版本
    const updateManager = wx.getUpdateManager()
    updateManager.onUpdateReady(function () {
      wx.showModal({
        title: '更新提示',
        content: '新版本已经准备好,是否重启应用?',
        success(res) {
          if (res.confirm) {
            // 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
            updateManager.applyUpdate()
          }
        }
      })
    })
    /**
     * 初次加载判断网络情况
     * 无网络状态下根据实际情况进行调整
     */
    wx.getNetworkType({
      success(res) {
        const networkType = res.networkType
        if (networkType === 'none') {
          that.globalData.isConnected = false
          wx.showToast({
            title: '当前无网络',
            icon: 'loading',
            duration: 2000
          })
        }
      }
    });
    /**
     * 监听网络状态变化
     * 可根据业务需求进行调整
     */
    wx.onNetworkStatusChange(function(res) {
      if (!res.isConnected) {
        that.globalData.isConnected = false
        wx.showToast({
          title: '网络已断开',
          icon: 'loading',
          duration: 2000
        })
      } else {
        that.globalData.isConnected = true
        wx.hideToast()
      }
    })
    WXAPI.queryConfigBatch('mallName,WITHDRAW_MIN,ALLOW_SELF_COLLECTION,order_hx_uids,subscribe_ids,share_profile,adminUserIds,goodsDetailSkuShowType,shopMod,needIdCheck,balance_pay_pwd,shipping_address_gps,shipping_address_region_level,shopping_cart_vop_open,cps_open,recycle_open,categoryMod,hide_reputation,show_seller_number,show_goods_echarts,show_buy_dynamic,goods_search_show_type,show_3_seller,show_quan_exchange_score,show_score_exchange_growth,show_score_sign,fx_subscribe_ids,share_pic,orderPeriod_open,order_pay_user_balance,wxpay_api_url,sphpay_open,fx_type,invoice_subscribe_ids,zt_open_hx,withdrawal,customerServiceChatCorpId,customerServiceChatUrl,invoice_open,alipay,comment_subscribe_ids,notice_subscribe_ids,hidden_goods_index,create_order_ext,needBindMobile,invoice_share_pic,hot_search_words').then(res => {
      if (res.code == 0) {
        res.data.forEach(config => {
          wx.setStorageSync(config.key, config.value)
        })
        if (this.configLoadOK) {
          this.configLoadOK()
        }
        // wx.setStorageSync('shopMod', '1') // 测试用,不要取消注释
      }
    })
    // ---------------检测navbar高度
    let menuButtonObject = wx.getMenuButtonBoundingClientRect();
    console.log("小程序胶囊信息",menuButtonObject)
    wx.getSystemInfo({
      success: res => {
        let statusBarHeight = res.statusBarHeight,
          navTop = menuButtonObject.top,//胶囊按钮与顶部的距离
          navHeight = statusBarHeight + menuButtonObject.height + (menuButtonObject.top - statusBarHeight)*2;//导航高度
        this.globalData.navHeight = navHeight;
        this.globalData.navTop = navTop;
        this.globalData.windowHeight = res.windowHeight;
        this.globalData.menuButtonObject = menuButtonObject;
        console.log("navHeight",navHeight);
      },
      fail(err) {
        console.log(err);
      }
    })
  },

  onShow (e) {
    // 保存邀请人
    if (e && e.query && e.query.inviter_id) {
      wx.setStorageSync('referrer', e.query.inviter_id)
      if (e.shareTicket) {
        wx.getShareInfo({
          shareTicket: e.shareTicket,
          success: res => {
            wx.login({
              success(loginRes) {
                if (loginRes.code) {
                  WXAPI.shareGroupGetScore(
                    loginRes.code,
                    e.query.inviter_id,
                    res.encryptedData,
                    res.iv
                  ).then(_res => {
                    console.log(_res)
                  }).catch(err => {
                    console.error(err)
                  })
                } else {
                  console.error('登录失败!' + loginRes.errMsg)
                }
              }
            })
          }
        })
      }
    }
    // 自动登录
    AUTH.checkHasLogined().then(isLogined => {
      if (!isLogined) {
        // 未登录
        if (CONFIG.openIdAutoRegister) {
          // 进行登陆,用户不存在则注册
          AUTH.authorize().then( aaa => {
            if (CONFIG.bindSeller) {
              AUTH.bindSeller()
            }
            this.getUserApiInfo().then(() => {
              if (this.loginOK) {
                this.loginOK()
              }
            })
          })
        } else {
          // 只是登陆
          AUTH.login20241025().then( res => {
            if (res.code == 0) {
              // 登陆成功
              if (CONFIG.bindSeller) {
                AUTH.bindSeller()
              }
              this.getUserApiInfo().then(() => {
                if (this.loginOK) {
                  this.loginOK()
                }
              })
            } else {
              // 用户没注册
              if (this.loginFail) {
                this.loginFail()
              }
            }
          })
        }
      } else {
        // 已登录
        if (CONFIG.bindSeller) {
          AUTH.bindSeller()
        }
        this.getUserApiInfo()
      }
    })
  },
  async getUserApiInfo() {
    const res = await WXAPI.userDetail(wx.getStorageSync('token'))
    if (res.code == 0) {
      this.globalData.apiUserInfoMap = res.data
    }
  },
  initNickAvatarUrlPOP(_this) {
    setTimeout(() => {
      if (this.globalData.apiUserInfoMap && (!this.globalData.apiUserInfoMap.base.nick || !this.globalData.apiUserInfoMap.base.avatarUrl)) {
        _this.setData({
          nickPopShow: true,
          popnick: this.globalData.apiUserInfoMap.base.nick ? this.globalData.apiUserInfoMap.base.nick : '',
          popavatarUrl: this.globalData.apiUserInfoMap.base.avatarUrl ? this.globalData.apiUserInfoMap.base.avatarUrl : '',
        })
      }
    }, 3000) // 3秒后弹出
  },
  globalData: {
    isConnected: true,
    sdkAppID: CONFIG.sdkAppID,
    apiUserInfoMap: undefined, // 当前登陆用户信息: base/ext/idcard/saleDistributionTeam
  }
})

================================================
FILE: app.json
================================================
{
  "pages": [
    "pages/start/start",
    "pages/test/wifi",
    "pages/shop/select",
    "pages/index/index",
    "pages/notice/index",
    "pages/notice/show",
    "pages/category/category",
    "pages/goods/list",
    "pages/goods/list-vop",
    "pages/goods/fav",
    "pages/goods/his",
    "pages/goods-details/index",
    "pages/goods-details/vop",
    "pages/goods-details/day",
    "pages/goods-details/times01",
    "pages/goods-details/times02",
    "pages/shop-cart/index",
    "pages/to-pay-order/index",
    "pages/select-address/index",
    "pages/address-add/index",
    "pages/order-list/index",
    "pages/order-details/index",
    "pages/order-details/scan-result",
    "pages/order/refundApply",
    "pages/wuliu/index",
    "pages/my/index",
    "pages/withdraw/index",
    "pages/score-excharge/index",
    "pages/score-excharge/growth",
    "pages/asset/index",
    "pages/recharge/index",
    "pages/score/index",
    "pages/score/growth",
    "pages/sign/index",
    "pages/maidan/index",
    "pages/coupons/index",
    "pages/coupons/merge",
    "pages/invoice/list",
    "pages/invoice/apply",
    "pages/deposit/pay",
    "pages/live/index",
    "pages/help/detail",
    "pages/help/index",
    "pages/cms/list",
    "pages/about/index",
    "pages/idCheck/index",
    "pages/peisong/detail",
    "pages/peisong/orders",
    "pages/peisong/statistics",
    "pages/pwd-pay/reset",
    "pages/pwd-pay/modify",
    "pages/pwd-pay/set",
    "pages/my/feedback",
    "pages/search/index",
    "pages/my/info",
    "pages/my/setting",
    "pages/my/info-menu",
    "pages/recycle/index",
    "pages/recycle/orders",
    "pages/recycle/order-detail",
    "pages/card/logs",
    "pages/notagree/index",
    "pages/my/user-code",
    "pages/raffle/index",
    "pages/login/index",
    "pages/vip/index",
    "pages/vip/detail",
    "pages/vip/history"
  ],
  "requiredPrivateInfos": [
    "getLocation",
    "chooseAddress",
    "chooseLocation"
  ],
  "subpackages": [
    {
      "root": "packageStreamMedia",
      "name": "packageStreamMedia",
      "pages": [
        "pages/videoCall/videoCall",
        "pages/live-anchor/index",
        "pages/live-anchor/list",
        "pages/live-client/list",
        "pages/live-client/client"
      ]
    },
    {
      "root": "packageCps",
      "name": "packageCps",
      "pages": [
        "pages/goods-details/cps-jd",
        "pages/goods-details/cps-pdd",
        "pages/goods-details/cps-taobao",
        "pages/order-list/cps"
      ]
    },
    {
      "root": "packageFx",
      "name": "packageFx",
      "pages": [
        "pages/index/index",
        "pages/hehuorenfenxiao/index",
        "pages/hehuorenfenxiao/fxmember",
        "pages/apply/index",
        "pages/apply/form",
        "pages/myusers/index",
        "pages/commisionLog/index",
        "pages/report/team",
        "pages/report/city",
        "pages/myusers/myusers-detail"
      ]
    }
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "",
    "navigationBarTextStyle": "black",
    "onReachBottomDistance": 50
  },
  "tabBar": {
    "color": "#6e6d6b",
    "selectedColor": "#e64340",
    "borderStyle": "white",
    "backgroundColor": "#fff",
    "list": [
      {
        "pagePath": "pages/index/index",
        "iconPath": "images/nav/home-off.png",
        "selectedIconPath": "images/nav/home-on.png",
        "text": "首页"
      },
      {
        "pagePath": "pages/category/category",
        "iconPath": "images/nav/fl-off.png",
        "selectedIconPath": "images/nav/fl-on.png",
        "text": "分类"
      },
      {
        "pagePath": "pages/coupons/index",
        "iconPath": "images/nav/coupon-off.png",
        "selectedIconPath": "images/nav/coupon-on.png",
        "text": "优惠券"
      },
      {
        "pagePath": "pages/shop-cart/index",
        "iconPath": "images/nav/cart-off.png",
        "selectedIconPath": "images/nav/cart-on.png",
        "text": "购物车"
      },
      {
        "pagePath": "pages/my/index",
        "iconPath": "images/nav/my-off.png",
        "selectedIconPath": "images/nav/my-on.png",
        "text": "我的"
      }
    ]
  },
  "permission": {
    "scope.userLocation": {
      "desc": "获取离你最近的门店"
    }
  },
  "usingComponents": {
    "fuwuxieyi": "/components/fuwuxieyi/index",
    "goods-pop": "/components/goods-pop/index",
    "login": "/components/login/index",
    "bind-mobile": "/components/bind-mobile/index",
    "payment": "/components/payment/index",
    "mp-html": "mp-html",
    "van-notice-bar": "@vant/weapp/notice-bar/index",
    "van-search": "@vant/weapp/search/index",
    "van-divider": "@vant/weapp/divider/index",
    "van-icon": "@vant/weapp/icon/index",
    "van-count-down": "@vant/weapp/count-down/index",
    "van-button": "@vant/weapp/button/index",
    "van-cell": "@vant/weapp/cell/index",
    "van-cell-group": "@vant/weapp/cell-group/index",
    "van-tag": "@vant/weapp/tag/index",
    "van-card": "@vant/weapp/card/index",
    "van-progress": "@vant/weapp/progress/index",
    "van-submit-bar": "@vant/weapp/submit-bar/index",
    "van-field": "@vant/weapp/field/index",
    "van-radio": "@vant/weapp/radio/index",
    "van-radio-group": "@vant/weapp/radio-group/index",
    "van-sidebar": "@vant/weapp/sidebar/index",
    "van-sidebar-item": "@vant/weapp/sidebar-item/index",
    "van-empty": "@vant/weapp/empty/index",
    "van-goods-action": "@vant/weapp/goods-action/index",
    "van-goods-action-icon": "@vant/weapp/goods-action-icon/index",
    "van-goods-action-button": "@vant/weapp/goods-action-button/index",
    "van-popup": "@vant/weapp/popup/index",
    "van-picker": "@vant/weapp/picker/index",
    "van-stepper": "@vant/weapp/stepper/index",
    "van-sticky": "@vant/weapp/sticky/index",
    "van-dialog": "@vant/weapp/dialog/index",
    "van-swipe-cell": "@vant/weapp/swipe-cell/index",
    "van-calendar": "@vant/weapp/calendar/index",
    "van-switch": "@vant/weapp/switch/index",
    "van-rate": "@vant/weapp/rate/index",
    "van-uploader": "@vant/weapp/uploader/index",
    "van-grid": "@vant/weapp/grid/index",
    "van-grid-item": "@vant/weapp/grid-item/index",
    "van-image": "@vant/weapp/image/index",
    "van-tab": "@vant/weapp/tab/index",
    "van-tabs": "@vant/weapp/tabs/index",
    "van-overlay": "@vant/weapp/overlay/index",
    "van-datetime-picker": "@vant/weapp/datetime-picker/index",
    "van-area": "@vant/weapp/area/index",
    "van-action-sheet": "@vant/weapp/action-sheet/index",
    "van-checkbox": "@vant/weapp/checkbox/index",
    "van-checkbox-group": "@vant/weapp/checkbox-group/index"
  },
  "sitemapLocation": "sitemap.json"
}

================================================
FILE: app.wxss
================================================
@import "/miniprogram_npm/@vant/weapp/common/index.wxss";

.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
}
.space {
  height:20rpx;
  background-color: #F2f2f2;
}
.safeAreaOldPaddingBttom {
  padding-bottom: env(safe-area-inset-bottom);
}
.safeAreaNewPaddingBttom{
  padding-bottom: constant(safe-area-inset-bottom);  
}

.safeAreaOldMarginBttom {
  margin-bottom: env(safe-area-inset-bottom);
}
.safeAreaNewMarginBttom{
  margin-bottom: constant(safe-area-inset-bottom);  
}

.no-data {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
.no-data .line {
  width:132rpx;
  height:2rpx;
  background: #999;
}
.no-data .txt {
  font-size:26rpx;
  color:rgba(153,153,153,1);
  margin: 0 16rpx;
}
.ad-img {
  width: 100vw;
}
.badge {
  position: absolute;
  top: 0;
  right: 0;
  box-sizing: border-box;
  padding: 6rpx;
  color: #fff;
  font-size: 18rpx;
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #e64340;
  border: 1rpx solid #fff;
  border-radius: 50%;
}
.vw100 {
  width: 100vw !important;
}

page {
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,
    Segoe UI, Arial, Roboto, 'PingFang SC', 'miui', 'Hiragino Sans GB', 'Microsoft Yahei',
    sans-serif;
}
.block-btn {
  padding: 0 32rpx;
}

.safe-bottom-box {
  position: fixed;
  bottom: calc(env(safe-area-inset-bottom) / 2);
  left: 0;
  width: 100vw;
}
.characteristic {
  padding: 0 24rpx;
  font-size: 24rpx;
  color: #999;
}

================================================
FILE: components/bind-mobile/index.js
================================================
const WXAPI = require('apifm-wxapi')
const AUTH = require('../../utils/auth')
Component({
  options: {
    addGlobalClass: true,
  },
  /**
   * 组件的对外属性,是属性名到属性设置的映射表
   */
  properties: {
    title: String,
    alarmText: String,
    show: Boolean,
  },

  /**
   * 组件的内部数据,和 properties 一同用于组件的模板渲染
   */
  data: {
    
  },
  // 组件数据字段监听器,用于监听 properties 和 data 的变化
  observers: {
  },
  lifetimes: {
    attached() {
      
    },
    detached() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    close() {
      this.triggerEvent('cancel')
    },
    async getPhoneNumber(e) {
      if (e.detail.errMsg.indexOf('privacy permission is not authorized') != -1) {
        wx.showModal({
          content: '请阅读并同意隐私条款以后才能继续本操作',
          confirmText: '阅读协议',
          cancelText: '取消',
          success (res) {
            if (res.confirm) {
              wx.requirePrivacyAuthorize() // 弹出用户隐私授权框
            }
          }
        })
        return
      }
      if (!e.detail.errMsg) {
        wx.showModal({
          content: 'getPhoneNumber异常',
          showCancel: false
        })
        return
      }
      if (e.detail.errMsg == "getPhoneNumber:fail user deny") {
        return
      }
      if (!e.detail.errMsg || e.detail.errMsg != "getPhoneNumber:ok") {
        wx.showModal({
          content: e.detail.errMsg,
          showCancel: false
        })
        return;
      }
      this._getPhoneNumber(e)
    },
    async _getPhoneNumber(e) {
      let res
      const extConfigSync = wx.getExtConfigSync()
      if (extConfigSync.subDomain) {
        // 服务商模式
        const code = await AUTH.wxaCode()
        res = await WXAPI.wxappServiceBindMobile({
          token: wx.getStorageSync('token'),
          code,
          encryptedData: e.detail.encryptedData,
          iv: e.detail.iv,
        })
      } else {
        res = await WXAPI.bindMobileWxappV2(wx.getStorageSync('token'), e.detail.code)
      }
      if (res.code == 0) {
        wx.showToast({
          title: '绑定成功'
        })
        this.data.mobile = res.data
        this.triggerEvent('ok', this.data)
      } else {
        wx.showModal({
          content: res.msg,
          showCancel: false
        })
      }
    },
  }
})

================================================
FILE: components/bind-mobile/index.json
================================================
{
  "component": true,
  "usingComponents": {
    
  }
}

================================================
FILE: components/bind-mobile/index.wxml
================================================
<van-popup
  show="{{ show }}"
  position="bottom"
  round
  closeable
  bind:close="close"
>
  <view class="pop-main">
    <view class="title">{{ title }}</view>
    <van-notice-bar
      wx:if="{{ alarmText }}"
      left-icon="volume-o"
      text="{{ alarmText }}"
    />
    <view class="btn-box">
      <van-button type="primary" block round open-type="getPhoneNumber" bind:getphonenumber="getPhoneNumber">立即绑定</van-button>
    </view>
  </view>
</van-popup>

================================================
FILE: components/bind-mobile/index.wxss
================================================
.pop-main {
  display: flex;
  flex-direction: column;
}
.title {
  padding: 32rpx;
  text-align: center;
}
.btn-box {
  padding: 32rpx;
}

================================================
FILE: components/bind-mobile/sn.txt
================================================
app.json usingComponents 加上
"bind-mobile": "/components/bind-mobile/index",


在需要的页面上加这句代码即可
<bind-mobile
  title="绑定手机号码"
  alarmText="为保障您的资金安全,请先绑定手机号码"
  show="{{ bindMobileShow }}"
  bind:cancel="bindMobileCancel"
  bind:ok="bindMobileOk"
/>

bindMobileOk(e) {
  console.log(e.detail); // 这里是组件里data的数据
  this.setData({
    bindMobileShow: false
  })
},
bindMobileCancel() {
  this.setData({
    bindMobileShow: false
  })
},

================================================
FILE: components/date-time-selecter/index.js
================================================
const dayjs = require("dayjs")
const weekStr = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
Component({
  options: {
    addGlobalClass: true,
  },
  /**
   * 组件的对外属性,是属性名到属性设置的映射表
   */
  properties: {
    maxDays: Number,
    title: String,
    alarmText: String,
    show: Boolean,
  },

  /**
   * 组件的内部数据,和 properties 一同用于组件的模板渲染
   */
  data: {
    activeKey: 0,
    days: undefined, // 左侧的日期列表
    day: undefined, // 选中的日期 YYYY-MM-DD
    times: undefined, // 右侧选中的时间列表
    timeSelectIndex: 0, // 选中的索引
    timeSelected: undefined, // 用于自动滚到到这个位置
  },
  // 组件数据字段监听器,用于监听 properties 和 data 的变化
  observers: {
  },
  lifetimes: {
    attached() {
      const days = []
      for (let index = 0; index < this.data.maxDays; index++) {
        const d = dayjs().add(index, 'day')
        days.push({
          d,
          isToday: index == 0,
          day: d.format('YYYY-MM-DD'),
          display: d.format('MM月DD日') + ' ' + weekStr[d.day()]
        })
      }
      this.setData({
        days,
        day: days[0].day
      })
      this.initTimes()
    },
    detached() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    initTimes() {
      const dayItem = this.data.days[this.data.activeKey]
      const times = []
      let curHour = dayItem.isToday ? dayjs().hour() : 0 // 当前时间
      for (let index = 0; index < 12; index++) {
        let beginHour = index*2
        if (beginHour < curHour) {
          continue
        }
        let endHour = index*2 + 2
        if (beginHour < 10) {
          beginHour = '0' + beginHour
        }
        if (endHour < 10) {
          endHour = '0' + endHour
        }
        times.push(beginHour + ':00-' + endHour + ':00')
      }
      this.setData({
        timeSelectIndex: 0,
        times,
        timeSelected: times[0]
      })
    },
    dayClick(e) {
      const activeKey = e.currentTarget.dataset.idx
      const dayItem = this.data.days[activeKey]
      this.setData({
        activeKey,
        day: dayItem.day,
      })
      this.initTimes()
    },
    timeClick(e) {
      const idx = e.currentTarget.dataset.idx
      const timeSelected = this.data.times[idx]
      this.setData({
        timeSelectIndex: idx,
        timeSelected,
      })
    },
    closeSku() {
      this.triggerEvent('cancel')
    },
    submit() {
      this.triggerEvent('ok', this.data)
    },
  }
})

================================================
FILE: components/date-time-selecter/index.json
================================================
{
  "component": true,
  "usingComponents": {
    
  }
}

================================================
FILE: components/date-time-selecter/index.wxml
================================================
<van-popup
  show="{{ show }}"
  position="bottom"
  round
  closeable
  bind:close="closeSku"
>
  <view class="pop-main">
    <view class="title">{{ title }}</view>
    <van-notice-bar
      wx:if="{{ alarmText }}"
      left-icon="volume-o"
      text="{{ alarmText }}"
    />
    <view class="main">
      <scroll-view class="l" scroll-y="true" scroll-with-animation="true" scroll-into-view="{{ day }}">
        <van-sidebar custom-class="ll" active-key="{{ activeKey }}">
          <van-sidebar-item wx:for="{{ days }}" wx:key="display" id="{{item.day}}" title="{{ item.display }}" data-idx="{{index}}" bindtap="dayClick" />
        </van-sidebar>
      </scroll-view>
      <scroll-view class="r" scroll-y="true" scroll-with-animation="true" scroll-into-view="{{ timeSelected }}">
        <view wx:for="{{ times }}" wx:key="*this" class="time-box" data-idx="{{ index }}" bindtap="timeClick">
          <view class="time-l {{ index == timeSelectIndex ? 'time-l-active' : '' }}">{{ item }}</view>
          <view wx:if="{{ index == timeSelectIndex }}" class="time-r"><van-icon name="checked" color="#07c160" /></view>
        </view>
      </scroll-view>
    </view>
    <view class="btn-box">
      <van-button type="primary" block round bind:click="submit">确定</van-button>
    </view>
  </view>
</van-popup>

================================================
FILE: components/date-time-selecter/index.wxss
================================================
.pop-main {
  height: 80vh;
  display: flex;
  flex-direction: column;
}
.title {
  padding: 32rpx;
  text-align: center;
}
.main {
  flex: 1;
  overflow: hidden;
  display: flex;
}
.l {
  width: 250rpx;
  height: 100%;
}
.ll {
  width: 250rpx;
}
.r {
  flex: 1;
}
.time-box {
  padding: 32rpx;
  display: flex;
  justify-content: space-between;
}
.time-l-active {
  font-weight: bold;
}
.btn-box {
  padding: 32rpx;
}

================================================
FILE: components/date-time-selecter/sn.txt
================================================
app.json usingComponents 加上
"date-time-selecter": "/components/date-time-selecter/index",


在需要的页面上加这句代码即可
<date-time-selecter
  maxDays="16"
  title="您期望的上门服务时间"
  alarmText="师傅上门前会与您确认最终上门时间"
  show="{{ show }}"
  bind:ok="dayTimeSelectOK"
  bind:cancel="dayTimeSelectCancel"
/>

dayTimeSelectOK(e) {
  console.log(e.detail); // 这里是组件里data的数据
  this.setData({
    show: false
  })
},
dayTimeSelectCancel() {
  this.setData({
    show: false
  })
},

================================================
FILE: components/fuwuxieyi/index.js
================================================
const App = getApp();

Component({
  options: {
    addGlobalClass: true,
  },
  /**
   * 组件的对外属性,是属性名到属性设置的映射表
   */
  properties: {
    k: String,    
  },

  /**
   * 组件的内部数据,和 properties 一同用于组件的模板渲染
   */
  data: {
    s: false
  },
  // 组件数据字段监听器,用于监听 properties 和 data 的变化
  observers: {

  },
  lifetimes: {
    attached: function () {
      if (!this.data.k) {
        this.setData({
          s: true
        })
        return
      }
      const agreeYxtk = wx.getStorageSync('agreeYxtk_' + this.data.k)
      if (!agreeYxtk) {
        this.setData({
          s: true
        })
      }
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    aggree(){
      if (this.data.k) {
        wx.setStorageSync('agreeYxtk_' + this.data.k, true)
      }
      this.setData({
        s: false
      })
    },
    notagree(){
      wx.navigateTo({
        url: '/pages/notagree/index'
      })
    },
    goYstk(e){
      const k = e.currentTarget.dataset.k
      wx.navigateTo({
        url: '/pages/about/index?key=' + k,
      })
    },
    navBack: function () {
      wx.navigateBack({
        delta: 1
      })
    },
    //回主页
    toIndex: function () {
      wx.navigateTo({
        url: '/pages/admin/home/index/index'
      })
    },
  }
})

================================================
FILE: components/fuwuxieyi/index.json
================================================
{
  "component": true,
  "usingComponents": {
    
  }
}

================================================
FILE: components/fuwuxieyi/index.wxml
================================================
<van-popup show="{{ s }}" custom-class="btn-add-box-popup" round close-on-click-overlay="{{ false }}">
  <view class="t">用户协议及隐私政策</view>
  <view class="content">
    您在使用我们的服务时,我们可能会收集和
    使用您的相关信息。我们希望通过本
    <text class="link" data-k="yhxy" bindtap="goYstk">《用户协议》</text>
    及<text class="link" data-k="ysxy" bindtap="goYstk">《隐私协议》</text>向您说明,在使用我
    们的服务时,我们如何收集、使用、储存和
    分享这些信息,以及我们为您提供的访问、
    更新、控制和保护这些信息的方式。本<text class="link" data-k="yhxy" bindtap="goYstk">《用户协议》</text>及
    <text class="link" data-k="ysxy" bindtap="goYstk">《隐私协议》</text>,希望您仔细闭读,
    充分理解协议中的内容后再点击同意。
  </view>
  <view class="btn-group">
    <van-button type="primary" block size="small" bind:click="aggree">同意</van-button>
    <van-button type="danger" block size="small" bind:click="notagree">不同意</van-button>
  </view>
</van-popup>

================================================
FILE: components/fuwuxieyi/index.wxss
================================================
.btn-add-box-popup .t {
  font-size: 36rpx;
  text-align: center;
  height: 88rpx;
  line-height: 88rpx;
  font-weight: bold;
}
.btn-add-box-popup .bd {
  padding: 0 32rpx;
  padding-bottom: 32rpx;
}
.btn-add-box-popup .del-btn {
  margin-top: 32rpx;
}

.content {
	width: 600rpx;
	padding: 32rpx;
	font-size: 32rpx;
	line-height: 54rpx;
}
.link {
	color: #10AEFF;
}
.btn-group {
  padding: 32rpx;
  display: flex;
  justify-content: space-around;
}
.mt32 {
	margin-top: 32rpx;
}

================================================
FILE: components/fuwuxieyi/sn.txt
================================================
在需要的页面上加这句代码即可
<fuwuxieyi k="invoice_apply" />
k 为页面唯一编号,随便命名即可
不传k,每次都会弹出

================================================
FILE: components/goods-pop/index.js
================================================
const WXAPI = require('apifm-wxapi')
const AUTH = require('../../utils/auth')
const TOOLS = require('../../utils/tools.js') // TOOLS.showTabBarBadge();

Component({
  behaviors: [],
  options: {
    addGlobalClass: true,
  },
  /**
   * 组件的对外属性,是属性名到属性设置的映射表
   */
  properties: {  
    skuCurGoodsBaseInfo: null,
  },

  /**
   * 组件的内部数据,和 properties 一同用于组件的模板渲染
   */
  data: {
    skuCurGoodsShow: false,
    skuCurGoods: undefined
  },
  // 组件数据字段监听器,用于监听 properties 和 data 的变化
  observers: {
    'skuCurGoodsBaseInfo': function(skuCurGoodsBaseInfo) {
      console.log('observers-skuCurGoodsBaseInfo', skuCurGoodsBaseInfo)
      if (!skuCurGoodsBaseInfo) {
        return
      }
      if (skuCurGoodsBaseInfo.stores <= 0) {
        wx.showToast({
          title: '已售罄~',
          icon: 'none'
        })
        return
      }
      this.initGoodsData(skuCurGoodsBaseInfo)
    }
  },
  lifetimes: {
    attached: function () {
      console.log('11', this.data.skuCurGoods);
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  pageLifetimes: {
    // 组件所在页面的生命周期函数
    show: function () { 
      console.log('22', this.data.skuCurGoods);
    },
    hide: function () { },
    resize: function () { },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    closeSku(){
      // 关闭弹窗
      this.setData({
        skuCurGoodsShow: false
      })
      wx.showTabBar()
    },
    async initGoodsData(skuCurGoodsBaseInfo) {
      const skuCurGoodsRes = await WXAPI.goodsDetail(skuCurGoodsBaseInfo.id)
      if (skuCurGoodsRes.code != 0) {
        wx.showToast({
          title: skuCurGoodsRes.msg,
          icon: 'none'
        })
        return
      }
      wx.hideTabBar()
      const skuCurGoods = skuCurGoodsRes.data
      skuCurGoods.basicInfo.storesBuy = 1
      // 处理可选配件
      skuCurGoods.basicInfo.hasAddition = skuCurGoodsBaseInfo.hasAddition
      let goodsAddition = []
      if (skuCurGoods.basicInfo.hasAddition) {
        const res = await WXAPI.goodsAddition(skuCurGoodsBaseInfo.id)
        if (res.code == 0) {
          goodsAddition = res.data
        }
      }
      console.log('abc:', skuCurGoods);
      this.setData({
        skuCurGoods,
        goodsAddition,
        skuGoodsPic: skuCurGoods.basicInfo.pic,
        selectSizePrice: skuCurGoods.basicInfo.minPrice,
        selectSizeOPrice: skuCurGoods.basicInfo.originalPrice,
        skuCurGoodsShow: true
      })
    },
    storesJia(){
      const skuCurGoods = this.data.skuCurGoods
      if (skuCurGoods.basicInfo.storesBuy < skuCurGoods.basicInfo.stores) {
        skuCurGoods.basicInfo.storesBuy++
        this.setData({
          skuCurGoods
        })
      }
    },
    storesJian(){
      const skuCurGoods = this.data.skuCurGoods
      if (skuCurGoods.basicInfo.storesBuy > 1) {
        skuCurGoods.basicInfo.storesBuy--
        this.setData({
          skuCurGoods
        })
      }
    },
    skuSelect(e){
      const skuCurGoods = this.data.skuCurGoods
      const propertyindex = e.currentTarget.dataset.propertyindex
      const propertychildindex = e.currentTarget.dataset.propertychildindex
      const property = this.data.skuCurGoods.properties[propertyindex]
      const child = property.childsCurGoods[propertychildindex]
      // 当前位置往下的所有sku取消选中状态
      for (let index = propertyindex; index < skuCurGoods.properties.length; index++) {
        const element = skuCurGoods.properties[index]
        element.optionValueId = null
        element.childsCurGoods.forEach(child => {
          child.active = false
        })
      }
      // 处理选中
      property.childsCurGoods.forEach(ele => {
        if (ele.id == child.id) {
          ele.active = true
        } else {
          ele.active = false
        }
      })
      // 隐藏没有的sku,不让选中
      let _skuList = skuCurGoods.skuList
      skuCurGoods.properties.forEach(p => {
        p.childsCurGoods.forEach(c => {
          // 处理当前选中的sku信息
          if (c.active) {
            _skuList = _skuList.filter(aaa => {
              return aaa.propertyChildIds.indexOf(p.id + ':' + c.id) != -1
            })
          } else if(!p.optionValueId) {
            const nextO = _skuList.find(aaa => {
              return aaa.propertyChildIds.indexOf(p.id + ':' + c.id) != -1
            })
            c.hidden = (nextO || p.id == property.id) ? false : true
          }
        })
      })
      // 显示图片
      let skuGoodsPic = this.data.skuGoodsPic
      if (skuCurGoods.subPics && skuCurGoods.subPics.length > 0) {
        const _subPic = skuCurGoods.subPics.find(ele => {
          return ele.optionValueId == child.id
        })
        if (_subPic) {
          skuGoodsPic = _subPic.pic
        }
      }
      this.setData({
        skuCurGoods,
        skuGoodsPic
      })
      // 计算价格
      this.calculateGoodsPrice()
    },
    /**
     * 选择可选配件
     */
    async additionSelect(e) {
      const propertyindex = e.currentTarget.dataset.propertyindex
      const propertychildindex = e.currentTarget.dataset.propertychildindex

      const goodsAddition = this.data.goodsAddition
      const property = goodsAddition[propertyindex]
      const child = property.items[propertychildindex]
      if (child.active) {
        // 该操作为取消选择
        child.active = false
        this.setData({
          goodsAddition
        })
        this.calculateGoodsPrice()
        return
      }
      // 单选配件取消所有子栏目选中状态
      if (property.type == 0) {
        property.items.forEach(child => {
          child.active = false
        })
      }
      // 设置当前选中状态
      child.active = true
      this.setData({
        goodsAddition
      })
      this.calculateGoodsPrice()
    },
    async calculateGoodsPrice() {
      // 计算最终的商品价格
      let price = this.data.skuCurGoods.basicInfo.minPrice
      let originalPrice = this.data.skuCurGoods.basicInfo.originalPrice
      let totalScoreToPay = this.data.skuCurGoods.basicInfo.minScore
      let buyNumMax = this.data.skuCurGoods.basicInfo.stores
      let buyNumber = this.data.skuCurGoods.basicInfo.minBuyNumber
      // 计算 sku 价格
      const needSelectNum = this.data.skuCurGoods.properties ? this.data.skuCurGoods.properties.length : 0
      let curSelectNum = 0;
      let propertyChildIds = "";
      let propertyChildNames = "";
      if (this.data.skuCurGoods.properties) {
        this.data.skuCurGoods.properties.forEach(p => {
          p.childsCurGoods.forEach(c => {
            if (c.active) {
              curSelectNum++;
              propertyChildIds = propertyChildIds + p.id + ":" + c.id + ",";
              propertyChildNames = propertyChildNames + p.name + ":" + c.name + "  ";
            }
          })
        })
      }
      let canSubmit = true;
      if (needSelectNum != curSelectNum) {
        canSubmit = false;
      }
      // 计算可选配件
      if (this.data.skuCurGoods.basicInfo.hasAddition && this.data.goodsAddition) {
        this.data.goodsAddition.forEach(ele => {
          if (ele.required) {
            const a = ele.items.find(item => {
              return item.active
            })
            if (!a) {
              canSubmit = false
            }
          }
        })
      }
      const token = wx.getStorageSync('token')
      if (canSubmit) {
        const res = await WXAPI.goodsPriceV2({
          token: token ? token : '',
          goodsId: this.data.skuCurGoods.basicInfo.id,
          propertyChildIds: propertyChildIds
        })
        if (res.code == 0) {
          price = res.data.price
          originalPrice = res.data.originalPrice
          totalScoreToPay = res.data.score
          buyNumMax = res.data.stores
        }
      }
      // 计算配件价格
      if (this.data.goodsAddition) {
        this.data.goodsAddition.forEach(big => {
          big.items.forEach(small => {
            if (small.active) {
              price = (price * 100 + small.price * 100) / 100
            }
          })
        })
      }
      this.setData({
        canSubmit,
        selectSizePrice: price,
        selectSizeOPrice: originalPrice,
        totalScoreToPay: totalScoreToPay,
        buyNumMax,
        buyNumber: (buyNumMax >= buyNumber) ? buyNumber : 0
      });
    },
    async addCarSku(){
      await this.calculateGoodsPrice()
      // 加入购物车
      if (!this.data.canSubmit) {
        wx.showToast({
          title: '请选择规格/配件',
          icon: 'none'
        })
        return
      }
      const skuCurGoods = this.data.skuCurGoods
      const sku = []
      if (skuCurGoods.properties) {
        skuCurGoods.properties.forEach(p => {
          const o = p.childsCurGoods.find(ele => {return ele.active})
          if (!o) {        
            return
          }
          sku.push({
            optionId: o.propertyId,
            optionValueId: o.id
          })
        })
      }
      const goodsAddition = []
      if (this.data.goodsAddition) {
        this.data.goodsAddition.forEach(ele => {
          ele.items.forEach(item => {
            if (item.active) {
              goodsAddition.push({
                id: item.id,
                pid: item.pid
              })
            }
          })
        })
      }
      const res = await WXAPI.shippingCarInfoAddItem(wx.getStorageSync('token'), skuCurGoods.basicInfo.id, skuCurGoods.basicInfo.storesBuy, sku, goodsAddition)
      if (res.code == 2000) {
        wx.navigateTo({
          url: '/pages/login/index',
        })
        return
      }
      if (res.code == 0) {
        wx.showToast({
          title: '加入成功',
          icon: 'success'
        })
        wx.showTabBar()
        TOOLS.showTabBarBadge() // 获取购物车数据,显示TabBarBadge
        this.setData({
          skuCurGoodsShow: false
        })
      } else {
        wx.showToast({
          title: res.msg,
          icon: 'none'
        })
      }
    },
  }
})

================================================
FILE: components/goods-pop/index.json
================================================
{
  "component": true,
  "usingComponents": {
    
  }
}

================================================
FILE: components/goods-pop/index.wxml
================================================
<van-popup
  show="{{ skuCurGoodsShow }}"
  position="bottom"
  round
  custom-style="padding-top:32rpx;max-height: 80%;"
  bind:close="closeSku"
>
  <van-card
    centered
    price="{{ selectSizePrice }}"
    origin-price="{{ selectSizePrice != selectSizePrice ? selectSizeOPrice : '' }}"
    title="{{ skuCurGoods.basicInfo.name }}"
    thumb="{{ skuGoodsPic }}"
  />
  <view class="sku-container">
    <view class="sku" wx:for="{{skuCurGoods.properties}}" wx:key="id" wx:for-index="idx">
      <view class="t">{{item.name}}</view>
      <view class="items">
        <text class="{{small.active? 'active' : ''}}" wx:for="{{item.childsCurGoods}}" wx:for-item="small" wx:key="id"  hidden="{{ small.hidden }}" data-propertyindex="{{idx}}" data-propertychildindex="{{index}}" bindtap="skuSelect">{{small.name}}</text>
      </view>
    </view>
    <view class="sku" wx:for="{{ goodsAddition }}" wx:key="id" wx:for-index="idx">
      <view class="t">{{item.name}}</view>
      <view class="items">
        <text class="{{small.active? 'active' : ''}}" wx:for="{{item.items}}" wx:for-item="small" wx:key="id" data-propertyindex="{{idx}}" data-propertychildindex="{{index}}" bindtap="additionSelect">{{small.name}}</text>
      </view>
    </view>
    <view class="num">
      <view class="t">购买数量</view>
      <van-stepper value="{{ skuCurGoods.basicInfo.storesBuy }}" bind:plus="storesJia" bind:minus="storesJian" />
    </view>
  </view>
  <view class="btn">
    <van-button type="danger" block round bind:click="addCarSku">加入购物车</van-button>
  </view>
</van-popup>

================================================
FILE: components/goods-pop/index.wxss
================================================
.sku-container {
  box-sizing: border-box;
  width: 100vw;
  padding: 32rpx 32rpx 0 32rpx;
}
.sku-container .sku {
  border-bottom: 1rpx solid #eee;
  padding-bottom: 24rpx;
  margin-bottom: 16rpx;
}
.sku-container .sku .t {
  color: #333;
}
.sku-container .sku .items {
  display: flex;
  flex-wrap: wrap;
}
.sku-container .sku .items text {
  padding: 8rpx 16rpx;
  border: 1rpx solid #eee;
  color: #666;
  margin: 24rpx 24rpx 0 0;
  font-size: 26rpx;
  border-radius: 8rpx;
}
.sku-container .sku .items text.active {
  border: 1rpx solid #e64340;
  color: #e64340;
}
.sku-container .num {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24rpx;
}
.sku-container .num .t {
  color: #333;
}
.btn {
  padding: 32rpx;
}

================================================
FILE: components/login/index.js
================================================
const WXAPI = require('apifm-wxapi')

Component({
  options: {
    // 样式隔离 https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html#%E7%BB%84%E4%BB%B6%E6%A0%B7%E5%BC%8F%E9%9A%94%E7%A6%BB
    styleIsolation: 'apply-shared',
  },
  /**
   * 组件的对外属性,是属性名到属性设置的映射表
   */
  properties: {
    avatarUrl: String,
    name: String,
    show: Boolean,
  },

  /**
   * 组件的内部数据,和 properties 一同用于组件的模板渲染
   */
  data: {
    nick: undefined
  },
  // 组件数据字段监听器,用于监听 properties 和 data 的变化
  observers: {

  },
  lifetimes: {
    attached() {
      this.setData({
        nick: this.data.name
      })
    },
    detached: function () {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    async _editNick() {
      if (!this.data.nick) {
        wx.showToast({
          title: '请填写昵称',
          icon: 'none'
        })
        return
      }
      const postData = {
        token: wx.getStorageSync('token'),
        nick: this.data.nick,
      }
      // https://www.yuque.com/apifm/nu0f75/ykr2zr
      const res = await WXAPI.modifyUserInfoV2(postData)
      if (res.code != 0) {
        wx.showToast({
          title: res.msg,
          icon: 'none'
        })
        return
      }
      wx.showToast({
        title: '保存成功',
      })
      this.setData({
        show: false
      })
      getApp().getUserApiInfo()
    },
    async onChooseAvatar(e) {
      let avatarUrl = e.detail.avatarUrl
      let res = await WXAPI.uploadFileV2(wx.getStorageSync('token'), avatarUrl)
      if (res.code != 0) {
        wx.showToast({
          title: res.msg,
          icon: 'none'
        })
        return
      }
      avatarUrl = res.data.url
      // https://www.yuque.com/apifm/nu0f75/ykr2zr
      res = await WXAPI.modifyUserInfoV2({
        token: wx.getStorageSync('token'),
        avatarUrl,
      })
      if (res.code != 0) {
        wx.showToast({
          title: res.msg,
          icon: 'none'
        })
        return
      }
      this.setData({
        avatarUrl
      })
    },
    jump() {
      this.setData({
        show: false
      })
    }
  }
})

================================================
FILE: components/login/index.json
================================================
{
  "component": true,
  "usingComponents": {
    
  }
}

================================================
FILE: components/login/index.wxml
================================================
<van-popup show="{{ show }}" custom-class="btn-add-box-popup" round close-on-click-overlay="{{ false }}">
  <view class="t-box">
    <view class="t">头像昵称填写</view>
    <view class="jump" bindtap="jump">跳过</view>
  </view>
  <view class="avatar-box">
    <button class="avatar" open-type="chooseAvatar" bind:chooseavatar="onChooseAvatar">
      <view class="abc-box">
        <image class="avatar-img" src="{{ avatarUrl ? avatarUrl : '/images/upload.png' }}" mode="aspectFill"></image>
        <view class="trip">设置头像</view>
      </view>
    </button>
  </view>
  <view class="nick-box">
    <van-field
      model:value="{{ nick }}"
      size="large"
      placeholder="请输入昵称"
      clearable
      type="nickname"
    />
  </view>
  <view class="btn-group">
    <van-button type="primary" block round bind:click="_editNick">保存</van-button>
  </view>
</van-popup>

================================================
FILE: components/login/index.wxss
================================================
.btn-add-box-popup {
  width: 600rpx;
}
.t-box {
  margin-top: 32rpx;
  height: 100rpx;
  position: relative;
}
.t {
  line-height: 100rpx;
  font-size: 32rpx;
  text-align: center;
}
.jump {
  position: absolute;
  top: 0;
  right: 48rpx;
  line-height: 100rpx;
  font-size: 28rpx;
  color: #bbb;
}
.avatar {
  margin-top: 32rpx;
  width: 240rpx;
  height: 240rpx;
  padding: 0;
  border-radius: 50%;
}
.avatar-img {
  width: 240rpx;
  height: 240rpx;
}
.nick-box {
  padding: 32rpx 0;
}
.btn-group {
  padding: 32rpx;
}
.abc-box {
  position: relative;
}
.abc-box .trip {
  position: absolute;
  width: 100%;
  bottom: 32rpx;
  left: 0;
  font-size: 24rpx;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
}

================================================
FILE: components/login/sn.txt
================================================
1. app.json, usingComponents "login": "/components/login/index",
2. 在需要的页面上加这句代码即可
    <login show="{{ true }}" avatarUrl="123.jpg" name="张三" />
    show 控制弹框是否显示
    avatarUrl 回显的头像
    name 回显的昵称

================================================
FILE: components/payment/index.js
================================================
const WXAPI = require('apifm-wxapi');
const { wxaCode } = require('../../utils/auth');
Component({
  options: {
    addGlobalClass: true,
  },
  /**
   * 组件的对外属性,是属性名到属性设置的映射表
   */
  properties: {
    money: Number,
    remark: String,
    nextAction: Object,
    extData: Object,
    show: Boolean,
  },

  /**
   * 组件的内部数据,和 properties 一同用于组件的模板渲染
   */
  data: {
    payType: 'wx',
    alipayOpenMod: '0'
  },
  // 组件数据字段监听器,用于监听 properties 和 data 的变化
  observers: {
    'show': function(show) {
      this.setData({
        alipayQrcode: null,
        alipayOpenMod: wx.getStorageSync('alipay')
      })
    }
  },
  lifetimes: {
    attached() {
      
    },
    detached() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    close() {
      this.triggerEvent('cancel')
    },
    payTypeChange(event) {
      this.setData({
        payType: event.detail,
        alipayQrcode: null,
      });
    },
    payTypeClick(event) {
      const { name } = event.currentTarget.dataset;
      this.setData({
        payType: name,
        alipayQrcode: null,
      });
    },
    async submit() {
      const postData = {
        token: wx.getStorageSync('token'),
        money: this.data.money,
        remark: this.data.remark,
      }
      if (this.data.extData) {
        postData = {
          ...postData,
          ...this.data.extData
        }
      }
      if (this.data.nextAction) {
        postData.nextAction = JSON.stringify(this.data.nextAction)
      }
      postData.payName = postData.remark
      const url = wx.getStorageSync('wxpay_api_url')
      let res
      if (this.data.payType == 'wx') {
        // https://www.yuque.com/apifm/nu0f75/ppadt8
        res = await WXAPI.payVariableUrl(url ? url : '/pay/wx/wxapp', postData)
      } else if (this.data.payType == 'alipay') {
        // https://www.yuque.com/apifm/nu0f75/hguh83ekxsh71cn7
        res = await WXAPI.alipayQrcode(postData)
      } else {
        wx.showModal({
          content: '暂不支持该支付方式',
          showCancel: false
        })
        this.close()
        return
      }
      if (res.code != 0) {
        wx.showModal({
          content: JSON.stringify(res),
          showCancel: false
        })
        this.close()
        return
      }
      if (this.data.payType == 'wx') {
        wx.requestPayment({
          timeStamp: res.data.timeStamp,
          nonceStr: res.data.nonceStr,
          package: res.data.package,
          signType: res.data.signType,
          paySign: res.data.paySign,
          fail: aaa => {
            console.error(aaa)
            wx.showToast({
              title: '支付失败:' + aaa,
              icon: 'none'
            })
          },
          success: () => {
            wx.showToast({
              title: '支付成功'
            })
            this.triggerEvent('ok', this.data)
          }
        })
      }
      if (this.data.payType == 'alipay') {
        const qrcodeRes = JSON.parse(res.data.qrcode)
        const alipayQrcode = qrcodeRes.alipay_trade_precreate_response.qr_code
        console.log(alipayQrcode);
        // 生成二维码 https://www.yuque.com/apifm/nu0f75/xrnyo9
        const resQrcode = await WXAPI.commonQrcode({
          content: alipayQrcode,
          width: 650
        })
        if (resQrcode.code != 0) {
          wx.showToast({
            title: '无法获取二维码',
            icon: 'none'
          })
          return
        }
        console.log(resQrcode.data);
        this.setData({
          alipayQrcode: resQrcode.data
        })
      }
    },
  }
})

================================================
FILE: components/payment/index.json
================================================
{
  "component": true,
  "usingComponents": {
    
  }
}

================================================
FILE: components/payment/index.wxml
================================================
<van-popup
  show="{{ show }}"
  position="bottom"
  round
  closeable
  bind:close="close"
>
  <view class="pop-main">
    <view class="title">{{ remark }}</view>
    <view class="amount"><text>¥</text>{{ money }}</view>
    <van-divider contentPosition="center">选择支付方式</van-divider>
    <van-radio-group value="{{ payType }}" bind:change="payTypeChange">
      <van-cell-group>
        <van-cell icon="https://dcdn.it120.cc/2024/08/29/b327bac1-bfe6-4083-8c56-e2628a7273df.png" title="微信支付" clickable data-name="wx" bind:click="payTypeClick">
          <van-radio slot="right-icon" name="wx" />
        </van-cell>
        <van-cell wx:if="{{ alipayOpenMod == '1' }}" icon="https://dcdn.it120.cc/2024/08/29/b6fdcdd9-bb24-46fd-b066-1a41c0ea8047.png" title="支付宝支付" clickable data-name="alipay" bind:click="payTypeClick">
          <van-radio slot="right-icon" name="alipay" />
        </van-cell>
      </van-cell-group>
    </van-radio-group>
    <block wx:if="{{ alipayQrcode }}">
      <image src="{{ alipayQrcode }}" mode="widthFix" class="alipayQrcode" show-menu-by-longpress></image>
      <view class="alipayQrcodeText">长按图片保存,然后使用支付宝扫一扫付款</view>
    </block>
    
    <view wx:if="{{ !alipayQrcode }}" class="btn-box">
      <van-button type="primary" block round bind:click="submit">立即支付</van-button>
    </view>
  </view>
</van-popup>

================================================
FILE: components/payment/index.wxss
================================================
.pop-main {
  display: flex;
  flex-direction: column;
}
.title {
  padding: 32rpx;
  text-align: center;
}
.btn-box {
  padding: 32rpx;
}
.alipayQrcode {
  margin-left: 50rpx;
}
.alipayQrcodeText {
  text-align: center;
  color: rgb(201, 25, 48);
  font-size: 24rpx;
}
.amount {
  padding: 16rpx;
  text-align: center;
  color: #e64340;
  font-weight: bold;
  font-size: 52rpx;
}
.amount text {
  font-weight: normal;
  font-size: 28rpx;
}

================================================
FILE: components/payment/sn.txt
================================================
app.json usingComponents 加上
"payment": "/components/payment/index",


在需要的页面上加这句代码即可
<payment
  money="100"
  remark="支付备注信息"
  nextAction=""
  extData="需要同时提交给接口的参数对象"
  show="{{ paymentShow }}"
  bind:cancel="paymentCancel"
  bind:ok="paymentOk"
/>

paymentOk(e) {
  console.log(e.detail); // 这里是组件里data的数据
  this.setData({
    paymentShow: false
  })
},
paymentCancel() {
  this.setData({
    paymentShow: false
  })
},

================================================
FILE: components/vip-success/index.js
================================================
Component({
  options: {
    addGlobalClass: true,
  },
  
  properties: {
    show: {
      type: Boolean,
      value: false
    },
    levelName: {
      type: String,
      value: ''
    },
    benefits: {
      type: Array,
      value: []
    }
  },

  data: {
    
  },

  methods: {
    handleMaskClick() {
      // 点击遮罩层不关闭,必须点击确定按钮
    },

    stopPropagation() {
      // 阻止事件冒泡
    },

    handleConfirm() {
      this.triggerEvent('confirm')
    }
  }
})


================================================
FILE: components/vip-success/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-icon": "@vant/weapp/icon/index"
  }
}


================================================
FILE: components/vip-success/index.wxml
================================================
<view class="success-modal" wx:if="{{show}}" catchtap="handleMaskClick">
  <view class="modal-content" catchtap="stopPropagation">
    <!-- 烟花效果背景 -->
    <view class="fireworks">
      <view class="firework" wx:for="{{[1,2,3,4,5]}}" wx:key="*this"></view>
    </view>
    
    <!-- 主内容 -->
    <view class="success-icon">
      <view class="icon-circle">
        <van-icon name="passed" color="#fff" size="60px" />
      </view>
    </view>
    
    <view class="success-title">🎉 恭喜您</view>
    <view class="success-desc">成功升级为</view>
    <view class="level-name">{{levelName}}</view>
    
    <view class="benefits-preview" wx:if="{{benefits.length > 0}}">
      <view class="benefit-tag" wx:for="{{benefits}}" wx:key="index">
        {{item}}
      </view>
    </view>
    
    <view class="confirm-btn" bindtap="handleConfirm">
      确定
    </view>
  </view>
</view>


================================================
FILE: components/vip-success/index.wxss
================================================
.success-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.modal-content {
  position: relative;
  width: 600rpx;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-radius: 32rpx;
  padding: 60rpx 40rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  animation: scaleIn 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

@keyframes scaleIn {
  from {
    transform: scale(0.5);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

.fireworks {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  overflow: hidden;
}

.firework {
  position: absolute;
  width: 10rpx;
  height: 10rpx;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.8);
  animation: explode 1.5s ease-out infinite;
}

.firework:nth-child(1) {
  top: 20%;
  left: 20%;
  animation-delay: 0s;
}

.firework:nth-child(2) {
  top: 30%;
  right: 20%;
  animation-delay: 0.3s;
}

.firework:nth-child(3) {
  top: 50%;
  left: 10%;
  animation-delay: 0.6s;
}

.firework:nth-child(4) {
  top: 60%;
  right: 15%;
  animation-delay: 0.9s;
}

.firework:nth-child(5) {
  top: 40%;
  left: 50%;
  animation-delay: 1.2s;
}

@keyframes explode {
  0% {
    transform: scale(0);
    opacity: 1;
  }
  50% {
    transform: scale(20);
    opacity: 0.5;
  }
  100% {
    transform: scale(40);
    opacity: 0;
  }
}

.success-icon {
  margin-bottom: 32rpx;
  animation: bounce 1s ease infinite;
}

@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-20rpx);
  }
}

.icon-circle {
  width: 160rpx;
  height: 160rpx;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(10rpx);
  border: 6rpx solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.2);
}

.success-title {
  font-size: 48rpx;
  font-weight: bold;
  color: #ffffff;
  margin-bottom: 16rpx;
  text-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.2);
}

.success-desc {
  font-size: 28rpx;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 12rpx;
}

.level-name {
  font-size: 40rpx;
  font-weight: bold;
  color: #ffffff;
  padding: 16rpx 48rpx;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 40rpx;
  backdrop-filter: blur(10rpx);
  margin-bottom: 32rpx;
}

.benefits-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 16rpx;
  justify-content: center;
  margin-bottom: 40rpx;
}

.benefit-tag {
  padding: 12rpx 24rpx;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 24rpx;
  font-size: 24rpx;
  color: #ffffff;
  backdrop-filter: blur(10rpx);
}

.confirm-btn {
  width: 100%;
  padding: 28rpx;
  background: #ffffff;
  color: #667eea;
  font-size: 32rpx;
  font-weight: bold;
  border-radius: 48rpx;
  text-align: center;
  box-shadow: 0 8rpx 24rpx rgba(0, 0, 0, 0.2);
  transition: all 0.3s;
}

.confirm-btn:active {
  transform: scale(0.95);
}


================================================
FILE: config.js
================================================
module.exports = {
  version: '26.3.13',
  note: '首页购买动态SDK升级', // 这个为版本描述,无需修改
  subDomain: 'tz', // 此处改成你自己的专属域名。什么是专属域名?请看教程 https://www.it120.cc/help/qr6l4m.html
  merchantId: 951, // 商户ID,可在后台工厂设置-->商户信息查看
  sdkAppID: 1400450467, // 腾讯实时音视频应用编号,请看教程 https://www.it120.cc/help/nxoqsl.html
  bindSeller: false, // true 开启三级分销抢客; false 为不开启
  customerServiceType: 'QW', // 客服类型,QW为企业微信,需要在后台系统参数配置企业ID和客服URL,XCX 为小程序的默认客服
  openIdAutoRegister: true, // 用户打开小程序的时候自动注册新用户【用户不存在的时候】
}

================================================
FILE: jsconfig.json
================================================
{
	"compilerOptions": {
		"target": "es2015",
		"module": "commonjs"
	}	
}

================================================
FILE: miniprogram_npm/@vant/weapp/action-sheet/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/action-sheet/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
var button_1 = require("../mixins/button");
(0, component_1.VantComponent)({
    classes: ['list-class'],
    mixins: [button_1.button],
    props: {
        show: Boolean,
        title: String,
        cancelText: String,
        description: String,
        round: {
            type: Boolean,
            value: true,
        },
        zIndex: {
            type: Number,
            value: 100,
        },
        actions: {
            type: Array,
            value: [],
        },
        overlay: {
            type: Boolean,
            value: true,
        },
        closeOnClickOverlay: {
            type: Boolean,
            value: true,
        },
        closeOnClickAction: {
            type: Boolean,
            value: true,
        },
        safeAreaInsetBottom: {
            type: Boolean,
            value: true,
        },
        rootPortal: {
            type: Boolean,
            value: false,
        },
    },
    methods: {
        onSelect: function (event) {
            var _this = this;
            var index = event.currentTarget.dataset.index;
            var _a = this.data, actions = _a.actions, closeOnClickAction = _a.closeOnClickAction, canIUseGetUserProfile = _a.canIUseGetUserProfile;
            var item = actions[index];
            if (item) {
                this.$emit('select', item);
                if (closeOnClickAction) {
                    this.onClose();
                }
                if (item.openType === 'getUserInfo' && canIUseGetUserProfile) {
                    wx.getUserProfile({
                        desc: item.getUserProfileDesc || '  ',
                        complete: function (userProfile) {
                            _this.$emit('getuserinfo', userProfile);
                        },
                    });
                }
            }
        },
        onCancel: function () {
            this.$emit('cancel');
        },
        onClose: function () {
            this.$emit('close');
        },
        onClickOverlay: function () {
            this.$emit('click-overlay');
            this.onClose();
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/action-sheet/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-icon": "../icon/index",
    "van-popup": "../popup/index",
    "van-loading": "../loading/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/action-sheet/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />

<van-popup
  show="{{ show }}"
  position="bottom"
  round="{{ round }}"
  z-index="{{ zIndex }}"
  overlay="{{ overlay }}"
  custom-class="van-action-sheet custom-class"
  safe-area-inset-bottom="{{ safeAreaInsetBottom }}"
  close-on-click-overlay="{{ closeOnClickOverlay }}"
  root-portal="{{ rootPortal }}"
  bind:close="onClickOverlay"
>
  <view wx:if="{{ title }}" class="van-action-sheet__header">
    {{ title }}
    <van-icon
      name="cross"
      custom-class="van-action-sheet__close"
      bind:click="onClose"
    />
  </view>
  <view wx:if="{{ description }}" class="van-action-sheet__description van-hairline--bottom">
    {{ description }}
  </view>
  <view wx:if="{{ actions && actions.length }}" class="list-class">
    <!-- button外包一层view,防止actions动态变化,导致渲染时button被打散 -->
    <button
      wx:for="{{ actions }}"
      wx:key="index"
      open-type="{{ item.disabled || item.loading || (canIUseGetUserProfile && item.openType === 'getUserInfo') ? '' : item.openType }}"
      style="{{ item.color ? 'color: ' + item.color : '' }}"
      class="{{ utils.bem('action-sheet__item', { disabled: item.disabled || item.loading }) }} {{ item.className || '' }}"
      hover-class="van-action-sheet__item--hover"
      data-index="{{ index }}"
      bindtap="{{ item.disabled || item.loading ? '' : 'onSelect' }}"
      bindgetuserinfo="onGetUserInfo"
      bindcontact="onContact"
      bindgetphonenumber="onGetPhoneNumber"
      binderror="onError"
      bindlaunchapp="onLaunchApp"
      bindopensetting="onOpenSetting"
      lang="{{ lang }}"
      session-from="{{ sessionFrom }}"
      send-message-title="{{ sendMessageTitle }}"
      send-message-path="{{ sendMessagePath }}"
      send-message-img="{{ sendMessageImg }}"
      show-message-card="{{ showMessageCard }}"
      app-parameter="{{ appParameter }}"
    >
      <block wx:if="{{ !item.loading }}">
        {{ item.name }}
        <view wx:if="{{ item.subname }}" class="van-action-sheet__subname" >{{ item.subname }}</view>
      </block>
      <van-loading wx:else custom-class="van-action-sheet__loading" size="22px" />
    </button>
  </view>
  <slot />
  <block wx:if="{{ cancelText }}">
    <view class="van-action-sheet__gap" />
    <view
      class="van-action-sheet__cancel"
      hover-class="van-action-sheet__cancel--hover"
      hover-stay-time="70"
      bind:tap="onCancel"
    >
      {{ cancelText }}
    </view>
  </block>
</van-popup>


================================================
FILE: miniprogram_npm/@vant/weapp/action-sheet/index.wxss
================================================
@import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--action-sheet-max-height,90%)!important}.van-action-sheet__cancel,.van-action-sheet__item{background-color:var(--action-sheet-item-background,#fff);font-size:var(--action-sheet-item-font-size,16px);line-height:var(--action-sheet-item-line-height,22px);padding:14px 16px;text-align:center}.van-action-sheet__cancel--hover,.van-action-sheet__item--hover{background-color:#f2f3f5}.van-action-sheet__cancel:after,.van-action-sheet__item:after{border-width:0}.van-action-sheet__cancel{color:var(--action-sheet-cancel-text-color,#646566)}.van-action-sheet__gap{background-color:var(--action-sheet-cancel-padding-color,#f7f8fa);display:block;height:var(--action-sheet-cancel-padding-top,8px)}.van-action-sheet__item--disabled{color:var(--action-sheet-item-disabled-text-color,#c8c9cc)}.van-action-sheet__item--disabled.van-action-sheet__item--hover{background-color:var(--action-sheet-item-background,#fff)}.van-action-sheet__subname{color:var(--action-sheet-subname-color,#969799);font-size:var(--action-sheet-subname-font-size,12px);line-height:var(--action-sheet-subname-line-height,20px);margin-top:var(--padding-xs,8px)}.van-action-sheet__header{font-size:var(--action-sheet-header-font-size,16px);font-weight:var(--font-weight-bold,500);line-height:var(--action-sheet-header-height,48px);text-align:center}.van-action-sheet__description{color:var(--action-sheet-description-color,#969799);font-size:var(--action-sheet-description-font-size,14px);line-height:var(--action-sheet-description-line-height,20px);padding:20px var(--padding-md,16px);text-align:center}.van-action-sheet__close{color:var(--action-sheet-close-icon-color,#c8c9cc);font-size:var(--action-sheet-close-icon-size,22px)!important;line-height:inherit!important;padding:var(--action-sheet-close-icon-padding,0 16px);position:absolute!important;right:0;top:0}.van-action-sheet__loading{display:flex!important}

================================================
FILE: miniprogram_npm/@vant/weapp/area/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/area/index.js
================================================
"use strict";
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
var shared_1 = require("../picker/shared");
var utils_1 = require("../common/utils");
var EMPTY_CODE = '000000';
(0, component_1.VantComponent)({
    classes: ['active-class', 'toolbar-class', 'column-class'],
    props: __assign(__assign({}, shared_1.pickerProps), { showToolbar: {
            type: Boolean,
            value: true,
        }, value: {
            type: String,
            observer: function (value) {
                this.code = value;
                this.setValues();
            },
        }, areaList: {
            type: Object,
            value: {},
            observer: 'setValues',
        }, columnsNum: {
            type: null,
            value: 3,
        }, columnsPlaceholder: {
            type: Array,
            observer: function (val) {
                this.setData({
                    typeToColumnsPlaceholder: {
                        province: val[0] || '',
                        city: val[1] || '',
                        county: val[2] || '',
                    },
                });
            },
        } }),
    data: {
        columns: [{ values: [] }, { values: [] }, { values: [] }],
        typeToColumnsPlaceholder: {},
    },
    mounted: function () {
        var _this = this;
        (0, utils_1.requestAnimationFrame)(function () {
            _this.setValues();
        });
    },
    methods: {
        getPicker: function () {
            if (this.picker == null) {
                this.picker = this.selectComponent('.van-area__picker');
            }
            return this.picker;
        },
        onCancel: function (event) {
            this.emit('cancel', event.detail);
        },
        onConfirm: function (event) {
            var index = event.detail.index;
            var value = event.detail.value;
            value = this.parseValues(value);
            this.emit('confirm', { value: value, index: index });
        },
        emit: function (type, detail) {
            detail.values = detail.value;
            delete detail.value;
            this.$emit(type, detail);
        },
        parseValues: function (values) {
            var columnsPlaceholder = this.data.columnsPlaceholder;
            return values.map(function (value, index) {
                if (value &&
                    (!value.code || value.name === columnsPlaceholder[index])) {
                    return __assign(__assign({}, value), { code: '', name: '' });
                }
                return value;
            });
        },
        onChange: function (event) {
            var _this = this;
            var _a;
            var _b = event.detail, index = _b.index, picker = _b.picker, value = _b.value;
            this.code = value[index].code;
            (_a = this.setValues()) === null || _a === void 0 ? void 0 : _a.then(function () {
                _this.$emit('change', {
                    picker: picker,
                    values: _this.parseValues(picker.getValues()),
                    index: index,
                });
            });
        },
        getConfig: function (type) {
            var areaList = this.data.areaList;
            return (areaList && areaList["".concat(type, "_list")]) || {};
        },
        getList: function (type, code) {
            if (type !== 'province' && !code) {
                return [];
            }
            var typeToColumnsPlaceholder = this.data.typeToColumnsPlaceholder;
            var list = this.getConfig(type);
            var result = Object.keys(list).map(function (code) { return ({
                code: code,
                name: list[code],
            }); });
            if (code != null) {
                // oversea code
                if (code[0] === '9' && type === 'city') {
                    code = '9';
                }
                result = result.filter(function (item) { return item.code.indexOf(code) === 0; });
            }
            if (typeToColumnsPlaceholder[type] && result.length) {
                // set columns placeholder
                var codeFill = type === 'province'
                    ? ''
                    : type === 'city'
                        ? EMPTY_CODE.slice(2, 4)
                        : EMPTY_CODE.slice(4, 6);
                result.unshift({
                    code: "".concat(code).concat(codeFill),
                    name: typeToColumnsPlaceholder[type],
                });
            }
            return result;
        },
        getIndex: function (type, code) {
            var compareNum = type === 'province' ? 2 : type === 'city' ? 4 : 6;
            var list = this.getList(type, code.slice(0, compareNum - 2));
            // oversea code
            if (code[0] === '9' && type === 'province') {
                compareNum = 1;
            }
            code = code.slice(0, compareNum);
            for (var i = 0; i < list.length; i++) {
                if (list[i].code.slice(0, compareNum) === code) {
                    return i;
                }
            }
            return 0;
        },
        setValues: function () {
            var picker = this.getPicker();
            if (!picker) {
                return;
            }
            var code = this.code || this.getDefaultCode();
            var provinceList = this.getList('province');
            var cityList = this.getList('city', code.slice(0, 2));
            var stack = [];
            var indexes = [];
            var columnsNum = this.data.columnsNum;
            if (columnsNum >= 1) {
                stack.push(picker.setColumnValues(0, provinceList, false));
                indexes.push(this.getIndex('province', code));
            }
            if (columnsNum >= 2) {
                stack.push(picker.setColumnValues(1, cityList, false));
                indexes.push(this.getIndex('city', code));
                if (cityList.length && code.slice(2, 4) === '00') {
                    code = cityList[0].code;
                }
            }
            if (columnsNum === 3) {
                stack.push(picker.setColumnValues(2, this.getList('county', code.slice(0, 4)), false));
                indexes.push(this.getIndex('county', code));
            }
            return Promise.all(stack)
                .catch(function () { })
                .then(function () { return picker.setIndexes(indexes); })
                .catch(function () { });
        },
        getDefaultCode: function () {
            var columnsPlaceholder = this.data.columnsPlaceholder;
            if (columnsPlaceholder.length) {
                return EMPTY_CODE;
            }
            var countyCodes = Object.keys(this.getConfig('county'));
            if (countyCodes[0]) {
                return countyCodes[0];
            }
            var cityCodes = Object.keys(this.getConfig('city'));
            if (cityCodes[0]) {
                return cityCodes[0];
            }
            return '';
        },
        getValues: function () {
            var picker = this.getPicker();
            if (!picker) {
                return [];
            }
            return this.parseValues(picker.getValues().filter(function (value) { return !!value; }));
        },
        getDetail: function () {
            var values = this.getValues();
            var area = {
                code: '',
                country: '',
                province: '',
                city: '',
                county: '',
            };
            if (!values.length) {
                return area;
            }
            var names = values.map(function (item) { return item.name; });
            area.code = values[values.length - 1].code;
            if (area.code[0] === '9') {
                area.country = names[1] || '';
                area.province = names[2] || '';
            }
            else {
                area.province = names[0] || '';
                area.city = names[1] || '';
                area.county = names[2] || '';
            }
            return area;
        },
        reset: function (code) {
            this.code = code || '';
            return this.setValues();
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/area/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-picker": "../picker/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/area/index.wxml
================================================
<wxs src="./index.wxs" module="computed" />

<van-picker
  class="van-area__picker"
  active-class="active-class"
  toolbar-class="toolbar-class"
  column-class="column-class"
  show-toolbar="{{ showToolbar }}"
  value-key="name"
  title="{{ title }}"
  loading="{{ loading }}"
  columns="{{ computed.displayColumns(columns, columnsNum) }}"
  item-height="{{ itemHeight }}"
  visible-item-count="{{ visibleItemCount }}"
  cancel-button-text="{{ cancelButtonText }}"
  confirm-button-text="{{ confirmButtonText }}"
  bind:change="onChange"
  bind:confirm="onConfirm"
  bind:cancel="onCancel"
/>


================================================
FILE: miniprogram_npm/@vant/weapp/area/index.wxs
================================================
/* eslint-disable */
function displayColumns(columns, columnsNum) {
  return columns.slice(0, +columnsNum);
}

module.exports = {
  displayColumns: displayColumns,
};


================================================
FILE: miniprogram_npm/@vant/weapp/area/index.wxss
================================================
@import '../common/index.wxss';

================================================
FILE: miniprogram_npm/@vant/weapp/button/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/button/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
var button_1 = require("../mixins/button");
var version_1 = require("../common/version");
var mixins = [button_1.button];
if ((0, version_1.canIUseFormFieldButton)()) {
    mixins.push('wx://form-field-button');
}
(0, component_1.VantComponent)({
    mixins: mixins,
    classes: ['hover-class', 'loading-class'],
    data: {
        baseStyle: '',
    },
    props: {
        formType: String,
        icon: String,
        classPrefix: {
            type: String,
            value: 'van-icon',
        },
        plain: Boolean,
        block: Boolean,
        round: Boolean,
        square: Boolean,
        loading: Boolean,
        hairline: Boolean,
        disabled: Boolean,
        loadingText: String,
        customStyle: String,
        loadingType: {
            type: String,
            value: 'circular',
        },
        type: {
            type: String,
            value: 'default',
        },
        dataset: null,
        size: {
            type: String,
            value: 'normal',
        },
        loadingSize: {
            type: String,
            value: '20px',
        },
        color: String,
    },
    methods: {
        onClick: function (event) {
            var _this = this;
            this.$emit('click', event);
            var _a = this.data, canIUseGetUserProfile = _a.canIUseGetUserProfile, openType = _a.openType, getUserProfileDesc = _a.getUserProfileDesc, lang = _a.lang;
            if (openType === 'getUserInfo' && canIUseGetUserProfile) {
                wx.getUserProfile({
                    desc: getUserProfileDesc || '  ',
                    lang: lang || 'en',
                    complete: function (userProfile) {
                        _this.$emit('getuserinfo', userProfile);
                    },
                });
            }
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/button/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-icon": "../icon/index",
    "van-loading": "../loading/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/button/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />
<wxs src="./index.wxs" module="computed" />

<button
  id="{{ id || buttonId }}"
  data-detail="{{ dataset }}"
  class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
  hover-class="{{ disabled || loading ? '' : 'van-button--active hover-class'}}"
  lang="{{ lang }}"
  form-type="{{ formType }}"
  style="{{ computed.rootStyle({ plain, color, customStyle }) }}"
  open-type="{{ disabled || loading || (canIUseGetUserProfile && openType === 'getUserInfo') ? '' : openType }}"
  business-id="{{ businessId }}"
  session-from="{{ sessionFrom }}"
  send-message-title="{{ sendMessageTitle }}"
  send-message-path="{{ sendMessagePath }}"
  send-message-img="{{ sendMessageImg }}"
  show-message-card="{{ showMessageCard }}"
  app-parameter="{{ appParameter }}"
  aria-label="{{ ariaLabel }}"
  bindtap="{{ disabled || loading ? '' : 'onClick' }}"
  bindgetuserinfo="onGetUserInfo"
  bindcontact="onContact"
  bindgetphonenumber="onGetPhoneNumber"
  bindgetrealtimephonenumber="onGetRealTimePhoneNumber"
  bindagreeprivacyauthorization="onAgreePrivacyAuthorization"
  binderror="onError"
  bindlaunchapp="onLaunchApp"
  bindopensetting="onOpenSetting"
  bindchooseavatar="onChooseAvatar"
>
  <block wx:if="{{ loading }}">
    <van-loading
      custom-class="loading-class"
      size="{{ loadingSize }}"
      type="{{ loadingType }}"
      color="{{ computed.loadingColor({ type, color, plain }) }}"
    />
    <view wx:if="{{ loadingText }}" class="van-button__loading-text">
      {{ loadingText }}
    </view>
  </block>
  <block wx:else>
    <van-icon
      wx:if="{{ icon }}"
      size="1.2em"
      name="{{ icon }}"
      class-prefix="{{ classPrefix }}"
      class="van-button__icon"
      custom-style="line-height: inherit;"
    />
    <view class="van-button__text">
      <slot />
    </view>
  </block>
</button>


================================================
FILE: miniprogram_npm/@vant/weapp/button/index.wxs
================================================
/* eslint-disable */
var style = require('../wxs/style.wxs');

function rootStyle(data) {
  if (!data.color) {
    return data.customStyle;
  }

  var properties = {
    color: data.plain ? data.color : '#fff',
    background: data.plain ? null : data.color,
  };

  // hide border when color is linear-gradient
  if (data.color.indexOf('gradient') !== -1) {
    properties.border = 0;
  } else {
    properties['border-color'] = data.color;
  }

  return style([properties, data.customStyle]);
}

function loadingColor(data) {
  if (data.plain) {
    return data.color ? data.color : '#c9c9c9';
  }

  if (data.type === 'default') {
    return '#c9c9c9';
  }

  return '#fff';
}

module.exports = {
  rootStyle: rootStyle,
  loadingColor: loadingColor,
};


================================================
FILE: miniprogram_npm/@vant/weapp/button/index.wxss
================================================
@import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;border-radius:var(--button-border-radius,2px);box-sizing:border-box;display:inline-flex;font-size:var(--button-default-font-size,16px);height:var(--button-default-height,44px);justify-content:center;line-height:var(--button-line-height,20px);padding:0;position:relative;text-align:center;transition:opacity .2s;vertical-align:middle}.van-button:before{background-color:#000;border:inherit;border-color:#000;border-radius:inherit;content:" ";height:100%;left:50%;opacity:0;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{background:var(--button-default-background-color,#fff);border:var(--button-border-width,1px) solid var(--button-default-border-color,#ebedf0);color:var(--button-default-color,#323233)}.van-button--primary{background:var(--button-primary-background-color,#07c160);border:var(--button-border-width,1px) solid var(--button-primary-border-color,#07c160);color:var(--button-primary-color,#fff)}.van-button--info{background:var(--button-info-background-color,#1989fa);border:var(--button-border-width,1px) solid var(--button-info-border-color,#1989fa);color:var(--button-info-color,#fff)}.van-button--danger{background:var(--button-danger-background-color,#ee0a24);border:var(--button-border-width,1px) solid var(--button-danger-border-color,#ee0a24);color:var(--button-danger-color,#fff)}.van-button--warning{background:var(--button-warning-background-color,#ff976a);border:var(--button-border-width,1px) solid var(--button-warning-border-color,#ff976a);color:var(--button-warning-color,#fff)}.van-button--plain{background:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:var(--button-warning-background-color,#ff976a)}.van-button--large{height:var(--button-large-height,50px);width:100%}.van-button--normal{font-size:var(--button-normal-font-size,14px);padding:0 15px}.van-button--small{font-size:var(--button-small-font-size,12px);height:var(--button-small-height,30px);min-width:var(--button-small-min-width,60px);padding:0 var(--padding-xs,8px)}.van-button--mini{display:inline-block;font-size:var(--button-mini-font-size,10px);height:var(--button-mini-height,22px);min-width:var(--button-mini-min-width,50px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:flex;width:100%}.van-button--round{border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{line-height:inherit!important;min-width:1em;vertical-align:top}.van-button--hairline{border-width:0;padding-top:1px}.van-button--hairline:after{border-color:inherit;border-radius:calc(var(--button-border-radius, 2px)*2);border-width:1px}.van-button--hairline.van-button--round:after{border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0}

================================================
FILE: miniprogram_npm/@vant/weapp/calendar/calendar.wxml
================================================
<wxs src="./index.wxs" module="computed" />
<wxs src="../wxs/utils.wxs" module="utils" />
<view class="van-calendar">
  <header
    title="{{ title }}"
    showTitle="{{ showTitle }}"
    subtitle="{{ subtitle }}"
    showSubtitle="{{ showSubtitle }}"
    firstDayOfWeek="{{ firstDayOfWeek }}"
    bind:click-subtitle="onClickSubtitle"
  >
    <slot name="title" slot="title"></slot>
  </header>

  <scroll-view
    class="van-calendar__body"
    scroll-y
    scroll-into-view="{{ scrollIntoView }}"
  >
    <month
      wx:for="{{ computed.getMonths(minDate, maxDate) }}"
      wx:key="index"
      id="month{{ index }}"
      class="month"
      data-date="{{ item }}"
      date="{{ item }}"
      type="{{ type }}"
      color="{{ color }}"
      minDate="{{ minDate }}"
      maxDate="{{ maxDate }}"
      showMark="{{ showMark }}"
      formatter="{{ formatter }}"
      rowHeight="{{ rowHeight }}"
      currentDate="{{ currentDate }}"
      showSubtitle="{{ showSubtitle }}"
      allowSameDay="{{ allowSameDay }}"
      showMonthTitle="{{ index !== 0 || !showSubtitle }}"
      firstDayOfWeek="{{ firstDayOfWeek }}"
      bind:click="onClickDay"
    />
  </scroll-view>

  <view
    class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}"
  >
    <slot name="footer"></slot>
  </view>

  <view
    class="{{ utils.bem('calendar__footer', { safeAreaInsetBottom }) }}"
  >
    <van-button
      wx:if="{{ showConfirm }}"
      round
      block
      type="danger"
      color="{{ color }}"
      custom-class="van-calendar__confirm"
      disabled="{{ computed.getButtonDisabled(type, currentDate, minRange) }}"
      nativeType="text"
      bind:click="onConfirm"
    >
      {{
        computed.getButtonDisabled(type, currentDate, minRange)
          ? confirmDisabledText
          : confirmText
      }}
    </van-button>
  </view>
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/header/index.js
================================================
"use strict";
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../../../common/component");
(0, component_1.VantComponent)({
    props: {
        title: {
            type: String,
            value: '日期选择',
        },
        subtitle: String,
        showTitle: Boolean,
        showSubtitle: Boolean,
        firstDayOfWeek: {
            type: Number,
            observer: 'initWeekDay',
        },
    },
    data: {
        weekdays: [],
    },
    created: function () {
        this.initWeekDay();
    },
    methods: {
        initWeekDay: function () {
            var defaultWeeks = ['日', '一', '二', '三', '四', '五', '六'];
            var firstDayOfWeek = this.data.firstDayOfWeek || 0;
            this.setData({
                weekdays: __spreadArray(__spreadArray([], defaultWeeks.slice(firstDayOfWeek, 7), true), defaultWeeks.slice(0, firstDayOfWeek), true),
            });
        },
        onClickSubtitle: function (event) {
            this.$emit('click-subtitle', event);
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/header/index.json
================================================
{
  "component": true
}


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml
================================================
<view class="van-calendar__header">
  <block wx:if="{{ showTitle }}">
    <view class="van-calendar__header-title"><slot name="title"></slot></view>
    <view class="van-calendar__header-title">{{ title }}</view>
  </block>

  <view wx:if="{{ showSubtitle }}" class="van-calendar__header-subtitle" bind:tap="onClickSubtitle">
    {{ subtitle }}
  </view>

  <view class="van-calendar__weekdays">
    <view wx:for="{{ weekdays }}" wx:key="index" class="van-calendar__weekday">
      {{ item }}
    </view>
  </view>
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss
================================================
@import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(220,1%,50%,.16));flex-shrink:0}.van-calendar__header-subtitle,.van-calendar__header-title{font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__header-title+.van-calendar__header-title,.van-calendar__header-title:empty{display:none}.van-calendar__header-title:empty+.van-calendar__header-title{display:block!important}.van-calendar__weekdays{display:flex}.van-calendar__weekday{flex:1;font-size:var(--calendar-weekdays-font-size,12px);line-height:var(--calendar-weekdays-height,30px);text-align:center}

================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts
================================================
export interface Day {
    date: Date;
    type: string;
    text: number;
    bottomInfo?: string;
}


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/month/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../../../common/component");
var utils_1 = require("../../utils");
(0, component_1.VantComponent)({
    props: {
        date: {
            type: null,
            observer: 'setDays',
        },
        type: {
            type: String,
            observer: 'setDays',
        },
        color: String,
        minDate: {
            type: null,
            observer: 'setDays',
        },
        maxDate: {
            type: null,
            observer: 'setDays',
        },
        showMark: Boolean,
        rowHeight: null,
        formatter: {
            type: null,
            observer: 'setDays',
        },
        currentDate: {
            type: null,
            observer: 'setDays',
        },
        firstDayOfWeek: {
            type: Number,
            observer: 'setDays',
        },
        allowSameDay: Boolean,
        showSubtitle: Boolean,
        showMonthTitle: Boolean,
    },
    data: {
        visible: true,
        days: [],
    },
    methods: {
        onClick: function (event) {
            var index = event.currentTarget.dataset.index;
            var item = this.data.days[index];
            if (item.type !== 'disabled') {
                this.$emit('click', item);
            }
        },
        setDays: function () {
            var days = [];
            var startDate = new Date(this.data.date);
            var year = startDate.getFullYear();
            var month = startDate.getMonth();
            var totalDay = (0, utils_1.getMonthEndDay)(startDate.getFullYear(), startDate.getMonth() + 1);
            for (var day = 1; day <= totalDay; day++) {
                var date = new Date(year, month, day);
                var type = this.getDayType(date);
                var config = {
                    date: date,
                    type: type,
                    text: day,
                    bottomInfo: this.getBottomInfo(type),
                };
                if (this.data.formatter) {
                    config = this.data.formatter(config);
                }
                days.push(config);
            }
            this.setData({ days: days });
        },
        getMultipleDayType: function (day) {
            var currentDate = this.data.currentDate;
            if (!Array.isArray(currentDate)) {
                return '';
            }
            var isSelected = function (date) {
                return currentDate.some(function (item) { return (0, utils_1.compareDay)(item, date) === 0; });
            };
            if (isSelected(day)) {
                var prevDay = (0, utils_1.getPrevDay)(day);
                var nextDay = (0, utils_1.getNextDay)(day);
                var prevSelected = isSelected(prevDay);
                var nextSelected = isSelected(nextDay);
                if (prevSelected && nextSelected) {
                    return 'multiple-middle';
                }
                if (prevSelected) {
                    return 'end';
                }
                return nextSelected ? 'start' : 'multiple-selected';
            }
            return '';
        },
        getRangeDayType: function (day) {
            var _a = this.data, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay;
            if (!Array.isArray(currentDate)) {
                return '';
            }
            var startDay = currentDate[0], endDay = currentDate[1];
            if (!startDay) {
                return '';
            }
            var compareToStart = (0, utils_1.compareDay)(day, startDay);
            if (!endDay) {
                return compareToStart === 0 ? 'start' : '';
            }
            var compareToEnd = (0, utils_1.compareDay)(day, endDay);
            if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) {
                return 'start-end';
            }
            if (compareToStart === 0) {
                return 'start';
            }
            if (compareToEnd === 0) {
                return 'end';
            }
            if (compareToStart > 0 && compareToEnd < 0) {
                return 'middle';
            }
            return '';
        },
        getDayType: function (day) {
            var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate;
            if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) {
                return 'disabled';
            }
            if (type === 'single') {
                return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : '';
            }
            if (type === 'multiple') {
                return this.getMultipleDayType(day);
            }
            /* istanbul ignore else */
            if (type === 'range') {
                return this.getRangeDayType(day);
            }
            return '';
        },
        getBottomInfo: function (type) {
            if (this.data.type === 'range') {
                if (type === 'start') {
                    return '开始';
                }
                if (type === 'end') {
                    return '结束';
                }
                if (type === 'start-end') {
                    return '开始/结束';
                }
            }
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/month/index.json
================================================
{
  "component": true
}


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml
================================================
<wxs src="./index.wxs" module="computed"></wxs>
<wxs src="../../../wxs/utils.wxs" module="utils" />

<view class="van-calendar__month" style="{{ computed.getMonthStyle(visible, date, rowHeight) }}">
  <view wx:if="{{ showMonthTitle }}" class="van-calendar__month-title">
    {{ computed.formatMonthTitle(date) }}
  </view>

  <view wx:if="{{ visible }}" class="van-calendar__days">
    <view wx:if="{{ showMark }}" class="van-calendar__month-mark">
      {{ computed.getMark(date) }}
    </view>

    <view
      wx:for="{{ days }}"
      wx:key="index"
      style="{{ computed.getDayStyle(item.type, index, date, rowHeight, color, firstDayOfWeek) }}"
      class="{{ utils.bem('calendar__day', [item.type]) }} {{ item.className }}"
      data-index="{{ index }}"
      bindtap="onClick"
    >
      <view wx:if="{{ item.type === 'selected' }}" class="van-calendar__selected-day" style="width: {{ rowHeight }}px; height: {{ rowHeight }}px; background: {{ color }}">
        <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view>
        {{ item.text }}
        <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info">
          {{ item.bottomInfo }}
        </view>
      </view>

      <view wx:else>
        <view wx:if="{{ item.topInfo }}" class="van-calendar__top-info">{{ item.topInfo }}</view>
        {{ item.text }}
        <view wx:if="{{ item.bottomInfo }}" class="van-calendar__bottom-info">
          {{ item.bottomInfo }}
        </view>
      </view>
    </view>
  </view>
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs
================================================
/* eslint-disable */
var utils = require('../../utils.wxs');

function getMark(date) {
  return getDate(date).getMonth() + 1;
}

var ROW_HEIGHT = 64;

function getDayStyle(type, index, date, rowHeight, color, firstDayOfWeek) {
  var style = [];
  var current = getDate(date).getDay() || 7;
  var offset = current < firstDayOfWeek ? (7 - firstDayOfWeek + current) :
               current === 7 && firstDayOfWeek === 0 ? 0 :
               (current - firstDayOfWeek);

  if (index === 0) {
    style.push(['margin-left', (100 * offset) / 7 + '%']);
  }

  if (rowHeight !== ROW_HEIGHT) {
    style.push(['height', rowHeight + 'px']);
  }

  if (color) {
    if (
      type === 'start' ||
      type === 'end' ||
      type === 'start-end' ||
      type === 'multiple-selected' ||
      type === 'multiple-middle'
    ) {
      style.push(['background', color]);
    } else if (type === 'middle') {
      style.push(['color', color]);
    }
  }

  return style
    .map(function(item) {
      return item.join(':');
    })
    .join(';');
}

function formatMonthTitle(date) {
  date = getDate(date);
  return date.getFullYear() + '年' + (date.getMonth() + 1) + '月';
}

function getMonthStyle(visible, date, rowHeight) {
  if (!visible) {
    date = getDate(date);

    var totalDay = utils.getMonthEndDay(
      date.getFullYear(),
      date.getMonth() + 1
    );
    var offset = getDate(date).getDay();
    var padding = Math.ceil((totalDay + offset) / 7) * rowHeight;

    return 'padding-bottom:' + padding + 'px';
  }
}

module.exports = {
  getMark: getMark,
  getDayStyle: getDayStyle,
  formatMonthTitle: formatMonthTitle,
  getMonthStyle: getMonthStyle
};


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss
================================================
@import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:100%}.van-calendar__month-title{font-size:var(--calendar-month-title-font-size,14px);font-weight:var(--font-weight-bold,500);height:var(--calendar-header-title-height,44px);line-height:var(--calendar-header-title-height,44px);text-align:center}.van-calendar__days{display:flex;flex-wrap:wrap;position:relative;-webkit-user-select:none;user-select:none}.van-calendar__month-mark{color:var(--calendar-month-mark-color,rgba(242,243,245,.8));font-size:var(--calendar-month-mark-font-size,160px);left:50%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:0}.van-calendar__day,.van-calendar__selected-day{align-items:center;display:flex;justify-content:center;text-align:center}.van-calendar__day{font-size:var(--calendar-day-font-size,16px);height:var(--calendar-day-height,64px);position:relative;width:14.285%}.van-calendar__day--end,.van-calendar__day--multiple-middle,.van-calendar__day--multiple-selected,.van-calendar__day--start,.van-calendar__day--start-end{background-color:var(--calendar-range-edge-background-color,#ee0a24);color:var(--calendar-range-edge-color,#fff)}.van-calendar__day--start{border-radius:4px 0 0 4px}.van-calendar__day--end{border-radius:0 4px 4px 0}.van-calendar__day--multiple-selected,.van-calendar__day--start-end{border-radius:4px}.van-calendar__day--middle{color:var(--calendar-range-middle-color,#ee0a24)}.van-calendar__day--middle:after{background-color:currentColor;bottom:0;content:"";left:0;opacity:var(--calendar-range-middle-background-opacity,.1);position:absolute;right:0;top:0}.van-calendar__day--disabled{color:var(--calendar-day-disabled-color,#c8c9cc);cursor:default}.van-calendar__bottom-info,.van-calendar__top-info{font-size:var(--calendar-info-font-size,10px);left:0;line-height:var(--calendar-info-line-height,14px);position:absolute;right:0}@media (max-width:350px){.van-calendar__bottom-info,.van-calendar__top-info{font-size:9px}}.van-calendar__top-info{top:6px}.van-calendar__bottom-info{bottom:6px}.van-calendar__selected-day{background-color:var(--calendar-selected-day-background-color,#ee0a24);border-radius:4px;color:var(--calendar-selected-day-color,#fff);height:var(--calendar-selected-day-size,54px);width:var(--calendar-selected-day-size,54px)}

================================================
FILE: miniprogram_npm/@vant/weapp/calendar/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/index.js
================================================
"use strict";
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
};
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
var utils_1 = require("./utils");
var toast_1 = __importDefault(require("../toast/toast"));
var utils_2 = require("../common/utils");
var initialMinDate = (0, utils_1.getToday)().getTime();
var initialMaxDate = (function () {
    var now = (0, utils_1.getToday)();
    return new Date(now.getFullYear(), now.getMonth() + 6, now.getDate()).getTime();
})();
var getTime = function (date) {
    return date instanceof Date ? date.getTime() : date;
};
(0, component_1.VantComponent)({
    props: {
        title: {
            type: String,
            value: '日期选择',
        },
        color: String,
        show: {
            type: Boolean,
            observer: function (val) {
                if (val) {
                    this.initRect();
                    this.scrollIntoView();
                }
            },
        },
        formatter: null,
        confirmText: {
            type: String,
            value: '确定',
        },
        confirmDisabledText: {
            type: String,
            value: '确定',
        },
        rangePrompt: String,
        showRangePrompt: {
            type: Boolean,
            value: true,
        },
        defaultDate: {
            type: null,
            value: (0, utils_1.getToday)().getTime(),
            observer: function (val) {
                this.setData({ currentDate: val });
                this.scrollIntoView();
            },
        },
        allowSameDay: Boolean,
        type: {
            type: String,
            value: 'single',
            observer: 'reset',
        },
        minDate: {
            type: Number,
            value: initialMinDate,
        },
        maxDate: {
            type: Number,
            value: initialMaxDate,
        },
        position: {
            type: String,
            value: 'bottom',
        },
        rowHeight: {
            type: null,
            value: utils_1.ROW_HEIGHT,
        },
        round: {
            type: Boolean,
            value: true,
        },
        poppable: {
            type: Boolean,
            value: true,
        },
        showMark: {
            type: Boolean,
            value: true,
        },
        showTitle: {
            type: Boolean,
            value: true,
        },
        showConfirm: {
            type: Boolean,
            value: true,
        },
        showSubtitle: {
            type: Boolean,
            value: true,
        },
        safeAreaInsetBottom: {
            type: Boolean,
            value: true,
        },
        closeOnClickOverlay: {
            type: Boolean,
            value: true,
        },
        maxRange: {
            type: null,
            value: null,
        },
        minRange: {
            type: Number,
            value: 1,
        },
        firstDayOfWeek: {
            type: Number,
            value: 0,
        },
        readonly: Boolean,
        rootPortal: {
            type: Boolean,
            value: false,
        },
    },
    data: {
        subtitle: '',
        currentDate: null,
        scrollIntoView: '',
    },
    watch: {
        minDate: function () {
            this.initRect();
        },
        maxDate: function () {
            this.initRect();
        },
    },
    created: function () {
        this.setData({
            currentDate: this.getInitialDate(this.data.defaultDate),
        });
    },
    mounted: function () {
        if (this.data.show || !this.data.poppable) {
            this.initRect();
            this.scrollIntoView();
        }
    },
    methods: {
        reset: function () {
            this.setData({ currentDate: this.getInitialDate(this.data.defaultDate) });
            this.scrollIntoView();
        },
        initRect: function () {
            var _this = this;
            if (this.contentObserver != null) {
                this.contentObserver.disconnect();
            }
            var contentObserver = this.createIntersectionObserver({
                thresholds: [0, 0.1, 0.9, 1],
                observeAll: true,
            });
            this.contentObserver = contentObserver;
            contentObserver.relativeTo('.van-calendar__body');
            contentObserver.observe('.month', function (res) {
                if (res.boundingClientRect.top <= res.relativeRect.top) {
                    // @ts-ignore
                    _this.setData({ subtitle: (0, utils_1.formatMonthTitle)(res.dataset.date) });
                }
            });
        },
        limitDateRange: function (date, minDate, maxDate) {
            if (minDate === void 0) { minDate = null; }
            if (maxDate === void 0) { maxDate = null; }
            minDate = minDate || this.data.minDate;
            maxDate = maxDate || this.data.maxDate;
            if ((0, utils_1.compareDay)(date, minDate) === -1) {
                return minDate;
            }
            if ((0, utils_1.compareDay)(date, maxDate) === 1) {
                return maxDate;
            }
            return date;
        },
        getInitialDate: function (defaultDate) {
            var _this = this;
            if (defaultDate === void 0) { defaultDate = null; }
            var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, allowSameDay = _a.allowSameDay;
            if (!defaultDate)
                return [];
            var now = (0, utils_1.getToday)().getTime();
            if (type === 'range') {
                if (!Array.isArray(defaultDate)) {
                    defaultDate = [];
                }
                var _b = defaultDate || [], startDay = _b[0], endDay = _b[1];
                var startDate = getTime(startDay || now);
                var start = this.limitDateRange(startDate, minDate, allowSameDay ? startDate : (0, utils_1.getPrevDay)(new Date(maxDate)).getTime());
                var date = getTime(endDay || now);
                var end = this.limitDateRange(date, allowSameDay ? date : (0, utils_1.getNextDay)(new Date(minDate)).getTime());
                return [start, end];
            }
            if (type === 'multiple') {
                if (Array.isArray(defaultDate)) {
                    return defaultDate.map(function (date) { return _this.limitDateRange(date); });
                }
                return [this.limitDateRange(now)];
            }
            if (!defaultDate || Array.isArray(defaultDate)) {
                defaultDate = now;
            }
            return this.limitDateRange(defaultDate);
        },
        scrollIntoView: function () {
            var _this = this;
            (0, utils_2.requestAnimationFrame)(function () {
                var _a = _this.data, currentDate = _a.currentDate, type = _a.type, show = _a.show, poppable = _a.poppable, minDate = _a.minDate, maxDate = _a.maxDate;
                if (!currentDate)
                    return;
                // @ts-ignore
                var targetDate = type === 'single' ? currentDate : currentDate[0];
                var displayed = show || !poppable;
                if (!targetDate || !displayed) {
                    return;
                }
                var months = (0, utils_1.getMonths)(minDate, maxDate);
                months.some(function (month, index) {
                    if ((0, utils_1.compareMonth)(month, targetDate) === 0) {
                        _this.setData({ scrollIntoView: "month".concat(index) });
                        return true;
                    }
                    return false;
                });
            });
        },
        onOpen: function () {
            this.$emit('open');
        },
        onOpened: function () {
            this.$emit('opened');
        },
        onClose: function () {
            this.$emit('close');
        },
        onClosed: function () {
            this.$emit('closed');
        },
        onClickDay: function (event) {
            if (this.data.readonly) {
                return;
            }
            var date = event.detail.date;
            var _a = this.data, type = _a.type, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay;
            if (type === 'range') {
                // @ts-ignore
                var startDay_1 = currentDate[0], endDay = currentDate[1];
                if (startDay_1 && !endDay) {
                    var compareToStart = (0, utils_1.compareDay)(date, startDay_1);
                    if (compareToStart === 1) {
                        var days_1 = this.selectComponent('.month').data.days;
                        days_1.some(function (day, index) {
                            var isDisabled = day.type === 'disabled' &&
                                getTime(startDay_1) < getTime(day.date) &&
                                getTime(day.date) < getTime(date);
                            if (isDisabled) {
                                (date = days_1[index - 1].date);
                            }
                            return isDisabled;
                        });
                        this.select([startDay_1, date], true);
                    }
                    else if (compareToStart === -1) {
                        this.select([date, null]);
                    }
                    else if (allowSameDay) {
                        this.select([date, date], true);
                    }
                }
                else {
                    this.select([date, null]);
                }
            }
            else if (type === 'multiple') {
                var selectedIndex_1;
                // @ts-ignore
                var selected = currentDate.some(function (dateItem, index) {
                    var equal = (0, utils_1.compareDay)(dateItem, date) === 0;
                    if (equal) {
                        selectedIndex_1 = index;
                    }
                    return equal;
                });
                if (selected) {
                    // @ts-ignore
                    var cancelDate = currentDate.splice(selectedIndex_1, 1);
                    this.setData({ currentDate: currentDate });
                    this.unselect(cancelDate);
                }
                else {
                    // @ts-ignore
                    this.select(__spreadArray(__spreadArray([], currentDate, true), [date], false));
                }
            }
            else {
                this.select(date, true);
            }
        },
        unselect: function (dateArray) {
            var date = dateArray[0];
            if (date) {
                this.$emit('unselect', (0, utils_1.copyDates)(date));
            }
        },
        select: function (date, complete) {
            if (complete && this.data.type === 'range') {
                var valid = this.checkRange(date);
                if (!valid) {
                    // auto selected to max range if showConfirm
                    if (this.data.showConfirm) {
                        this.emit([
                            date[0],
                            (0, utils_1.getDayByOffset)(date[0], this.data.maxRange - 1),
                        ]);
                    }
                    else {
                        this.emit(date);
                    }
                    return;
                }
            }
            this.emit(date);
            if (complete && !this.data.showConfirm) {
                this.onConfirm();
            }
        },
        emit: function (date) {
            this.setData({
                currentDate: Array.isArray(date) ? date.map(getTime) : getTime(date),
            });
            this.$emit('select', (0, utils_1.copyDates)(date));
        },
        checkRange: function (date) {
            var _a = this.data, maxRange = _a.maxRange, rangePrompt = _a.rangePrompt, showRangePrompt = _a.showRangePrompt;
            if (maxRange && (0, utils_1.calcDateNum)(date) > maxRange) {
                if (showRangePrompt) {
                    (0, toast_1.default)({
                        context: this,
                        message: rangePrompt || "\u9009\u62E9\u5929\u6570\u4E0D\u80FD\u8D85\u8FC7 ".concat(maxRange, " \u5929"),
                    });
                }
                this.$emit('over-range');
                return false;
            }
            return true;
        },
        onConfirm: function () {
            var _this = this;
            if (this.data.type === 'range' &&
                !this.checkRange(this.data.currentDate)) {
                return;
            }
            wx.nextTick(function () {
                // @ts-ignore
                _this.$emit('confirm', (0, utils_1.copyDates)(_this.data.currentDate));
            });
        },
        onClickSubtitle: function (event) {
            this.$emit('click-subtitle', event);
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "header": "./components/header/index",
    "month": "./components/month/index",
    "van-button": "../button/index",
    "van-popup": "../popup/index",
    "van-toast": "../toast/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/index.wxml
================================================
<wxs src="./index.wxs" module="computed" />
<wxs src="../wxs/utils.wxs" module="utils" />

<import src="./calendar.wxml" />

<van-popup
  wx:if="{{ poppable }}"
  custom-class="van-calendar__popup--{{ position }}"
  close-icon-class="van-calendar__close-icon"
  show="{{ show }}"
  round="{{ round }}"
  position="{{ position }}"
  closeable="{{ showTitle || showSubtitle }}"
  close-on-click-overlay="{{ closeOnClickOverlay }}"
  safe-area-inset-bottom="{{ safeAreaInsetBottom }}"
  root-portal="{{ rootPortal }}"
  bind:enter="onOpen"
  bind:close="onClose"
  bind:after-enter="onOpened"
  bind:after-leave="onClosed"
>
  <include src="./calendar.wxml" />
</van-popup>

<include wx:else src="./calendar.wxml" />

<van-toast id="van-toast" />


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/index.wxs
================================================
/* eslint-disable */
var utils = require('./utils.wxs');

function getMonths(minDate, maxDate) {
  var months = [];
  var cursor = getDate(minDate);

  cursor.setDate(1);

  do {
    months.push(cursor.getTime());
    cursor.setMonth(cursor.getMonth() + 1);
  } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1);

  return months;
}

function getButtonDisabled(type, currentDate, minRange) {
  if (currentDate == null) {
    return true;
  }

  if (type === 'range') {
    return !currentDate[0] || !currentDate[1];
  }

  if (type === 'multiple') {
    return currentDate.length < minRange;
  }

  return !currentDate;
}

module.exports = {
  getMonths: getMonths,
  getButtonDisabled: getButtonDisabled
};


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/index.wxss
================================================
@import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-direction:column;height:var(--calendar-height,100%)}.van-calendar__close-icon{top:11px}.van-calendar__popup--bottom,.van-calendar__popup--top{height:var(--calendar-popup-height,90%)}.van-calendar__popup--left,.van-calendar__popup--right{height:100%}.van-calendar__body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.van-calendar__footer{flex-shrink:0;padding:0 var(--padding-md,16px)}.van-calendar__footer--safe-area-inset-bottom{padding-bottom:env(safe-area-inset-bottom)}.van-calendar__footer+.van-calendar__footer,.van-calendar__footer:empty{display:none}.van-calendar__footer:empty+.van-calendar__footer{display:block!important}.van-calendar__confirm{height:var(--calendar-confirm-button-height,36px)!important;line-height:var(--calendar-confirm-button-line-height,34px)!important;margin:var(--calendar-confirm-button-margin,7px 0)!important}

================================================
FILE: miniprogram_npm/@vant/weapp/calendar/utils.d.ts
================================================
export declare const ROW_HEIGHT = 64;
export declare function formatMonthTitle(date: Date): string;
export declare function compareMonth(date1: Date | number, date2: Date | number): 0 | 1 | -1;
export declare function compareDay(day1: Date | number, day2: Date | number): 0 | 1 | -1;
export declare function getDayByOffset(date: Date, offset: number): Date;
export declare function getPrevDay(date: Date): Date;
export declare function getNextDay(date: Date): Date;
export declare function getToday(): Date;
export declare function calcDateNum(date: [Date, Date]): number;
export declare function copyDates(dates: Date | Date[]): Date | Date[];
export declare function getMonthEndDay(year: number, month: number): number;
export declare function getMonths(minDate: number, maxDate: number): number[];


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/utils.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getMonths = exports.getMonthEndDay = exports.copyDates = exports.calcDateNum = exports.getToday = exports.getNextDay = exports.getPrevDay = exports.getDayByOffset = exports.compareDay = exports.compareMonth = exports.formatMonthTitle = exports.ROW_HEIGHT = void 0;
exports.ROW_HEIGHT = 64;
function formatMonthTitle(date) {
    if (!(date instanceof Date)) {
        date = new Date(date);
    }
    return "".concat(date.getFullYear(), "\u5E74").concat(date.getMonth() + 1, "\u6708");
}
exports.formatMonthTitle = formatMonthTitle;
function compareMonth(date1, date2) {
    if (!(date1 instanceof Date)) {
        date1 = new Date(date1);
    }
    if (!(date2 instanceof Date)) {
        date2 = new Date(date2);
    }
    var year1 = date1.getFullYear();
    var year2 = date2.getFullYear();
    var month1 = date1.getMonth();
    var month2 = date2.getMonth();
    if (year1 === year2) {
        return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
    }
    return year1 > year2 ? 1 : -1;
}
exports.compareMonth = compareMonth;
function compareDay(day1, day2) {
    if (!(day1 instanceof Date)) {
        day1 = new Date(day1);
    }
    if (!(day2 instanceof Date)) {
        day2 = new Date(day2);
    }
    var compareMonthResult = compareMonth(day1, day2);
    if (compareMonthResult === 0) {
        var date1 = day1.getDate();
        var date2 = day2.getDate();
        return date1 === date2 ? 0 : date1 > date2 ? 1 : -1;
    }
    return compareMonthResult;
}
exports.compareDay = compareDay;
function getDayByOffset(date, offset) {
    date = new Date(date);
    date.setDate(date.getDate() + offset);
    return date;
}
exports.getDayByOffset = getDayByOffset;
function getPrevDay(date) {
    return getDayByOffset(date, -1);
}
exports.getPrevDay = getPrevDay;
function getNextDay(date) {
    return getDayByOffset(date, 1);
}
exports.getNextDay = getNextDay;
function getToday() {
    var today = new Date();
    today.setHours(0, 0, 0, 0);
    return today;
}
exports.getToday = getToday;
function calcDateNum(date) {
    var day1 = new Date(date[0]).getTime();
    var day2 = new Date(date[1]).getTime();
    return (day2 - day1) / (1000 * 60 * 60 * 24) + 1;
}
exports.calcDateNum = calcDateNum;
function copyDates(dates) {
    if (Array.isArray(dates)) {
        return dates.map(function (date) {
            if (date === null) {
                return date;
            }
            return new Date(date);
        });
    }
    return new Date(dates);
}
exports.copyDates = copyDates;
function getMonthEndDay(year, month) {
    return 32 - new Date(year, month - 1, 32).getDate();
}
exports.getMonthEndDay = getMonthEndDay;
function getMonths(minDate, maxDate) {
    var months = [];
    var cursor = new Date(minDate);
    cursor.setDate(1);
    do {
        months.push(cursor.getTime());
        cursor.setMonth(cursor.getMonth() + 1);
    } while (compareMonth(cursor, maxDate) !== 1);
    return months;
}
exports.getMonths = getMonths;


================================================
FILE: miniprogram_npm/@vant/weapp/calendar/utils.wxs
================================================
/* eslint-disable */
function getMonthEndDay(year, month) {
  return 32 -  getDate(year, month - 1, 32).getDate();
}

function compareMonth(date1, date2) {
  date1 = getDate(date1);
  date2 = getDate(date2);

  var year1 = date1.getFullYear();
  var year2 = date2.getFullYear();
  var month1 = date1.getMonth();
  var month2 = date2.getMonth();

  if (year1 === year2) {
    return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
  }

  return year1 > year2 ? 1 : -1;
}

module.exports = {
  getMonthEndDay: getMonthEndDay,
  compareMonth: compareMonth
};


================================================
FILE: miniprogram_npm/@vant/weapp/card/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/card/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var link_1 = require("../mixins/link");
var component_1 = require("../common/component");
(0, component_1.VantComponent)({
    classes: [
        'num-class',
        'desc-class',
        'thumb-class',
        'title-class',
        'price-class',
        'origin-price-class',
    ],
    mixins: [link_1.link],
    props: {
        tag: String,
        num: String,
        desc: String,
        thumb: String,
        title: String,
        price: {
            type: String,
            observer: 'updatePrice',
        },
        centered: Boolean,
        lazyLoad: Boolean,
        thumbLink: String,
        originPrice: String,
        thumbMode: {
            type: String,
            value: 'aspectFit',
        },
        currency: {
            type: String,
            value: '¥',
        },
    },
    methods: {
        updatePrice: function () {
            var price = this.data.price;
            var priceArr = price.toString().split('.');
            this.setData({
                integerStr: priceArr[0],
                decimalStr: priceArr[1] ? ".".concat(priceArr[1]) : '',
            });
        },
        onClickThumb: function () {
            this.jumpLink('thumbLink');
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/card/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-tag": "../tag/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/card/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />

<view class="custom-class van-card">
  <view class="{{ utils.bem('card__header', { center: centered }) }}">
    <view class="van-card__thumb" bind:tap="onClickThumb">
      <image
        wx:if="{{ thumb }}"
        src="{{ thumb }}"
        mode="{{ thumbMode }}"
        lazy-load="{{ lazyLoad }}"
        class="van-card__img thumb-class"
      />
      <slot wx:else name="thumb" />
      <van-tag
        wx:if="{{ tag }}"
        mark
        type="danger"
        custom-class="van-card__tag"
      >
        {{ tag }}
      </van-tag>
      <slot wx:else name="tag" />
    </view>

    <view class="van-card__content {{ utils.bem('card__content', { center: centered }) }}">
      <view>
        <view wx:if="{{ title }}" class="van-card__title title-class">{{ title }}</view>
        <slot wx:else name="title" />

        <view wx:if="{{ desc }}" class="van-card__desc desc-class">{{ desc }}</view>
        <slot wx:else name="desc" />

        <slot name="tags" />
      </view>

      <view class="van-card__bottom">
        <slot name="price-top" />
        <view wx:if="{{ price || price === 0 }}" class="van-card__price price-class">
          <text>{{ currency }}</text>
          <text class="van-card__price-integer">{{ integerStr }}</text>
          <text class="van-card__price-decimal">{{ decimalStr }}</text>
        </view>
        <slot wx:else name="price" />
        <view wx:if="{{ originPrice || originPrice === 0 }}" class="van-card__origin-price origin-price-class">{{ currency }} {{ originPrice }}</view>
        <slot wx:else name="origin-price" />
        <view wx:if="{{ num }}" class="van-card__num num-class">x {{ num }}</view>
        <slot wx:else  name="num" />
        <slot name="bottom" />
      </view>
    </view>
  </view>

  <view class="van-card__footer">
    <slot name="footer" />
  </view>
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/card/index.wxss
================================================
@import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;color:var(--card-text-color,#323233);font-size:var(--card-font-size,12px);padding:var(--card-padding,8px 16px);position:relative}.van-card__header{display:flex}.van-card__header--center{align-items:center;justify-content:center}.van-card__thumb{flex:none;height:var(--card-thumb-size,88px);margin-right:var(--padding-xs,8px);position:relative;width:var(--card-thumb-size,88px)}.van-card__thumb:empty{display:none}.van-card__img{border-radius:8px;height:100%;width:100%}.van-card__content{display:flex;flex:1;flex-direction:column;justify-content:space-between;min-height:var(--card-thumb-size,88px);min-width:0;position:relative}.van-card__content--center{justify-content:center}.van-card__desc,.van-card__title{word-wrap:break-word}.van-card__title{font-weight:700;line-height:var(--card-title-line-height,16px)}.van-card__desc{color:var(--card-desc-color,#646566);line-height:var(--card-desc-line-height,20px)}.van-card__bottom{line-height:20px}.van-card__price{color:var(--card-price-color,#ee0a24);display:inline-block;font-size:var(--card-price-font-size,12px);font-weight:700}.van-card__price-integer{font-size:var(--card-price-integer-font-size,16px)}.van-card__price-decimal,.van-card__price-integer{font-family:var(--card-price-font-family,Avenir-Heavy,PingFang SC,Helvetica Neue,Arial,sans-serif)}.van-card__origin-price{color:var(--card-origin-price-color,#646566);display:inline-block;font-size:var(--card-origin-price-font-size,10px);margin-left:5px;text-decoration:line-through}.van-card__num{float:right}.van-card__tag{left:0;position:absolute!important;top:2px}.van-card__footer{flex:none;text-align:right;width:100%}

================================================
FILE: miniprogram_npm/@vant/weapp/cascader/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/cascader/index.js
================================================
"use strict";
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
        if (ar || !(i in from)) {
            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
            ar[i] = from[i];
        }
    }
    return to.concat(ar || Array.prototype.slice.call(from));
};
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
var FieldName;
(function (FieldName) {
    FieldName["TEXT"] = "text";
    FieldName["VALUE"] = "value";
    FieldName["CHILDREN"] = "children";
})(FieldName || (FieldName = {}));
var defaultFieldNames = {
    text: FieldName.TEXT,
    value: FieldName.VALUE,
    children: FieldName.CHILDREN,
};
(0, component_1.VantComponent)({
    props: {
        title: String,
        value: {
            type: String,
        },
        placeholder: {
            type: String,
            value: '请选择',
        },
        activeColor: {
            type: String,
            value: '#1989fa',
        },
        options: {
            type: Array,
            value: [],
        },
        swipeable: {
            type: Boolean,
            value: false,
        },
        closeable: {
            type: Boolean,
            value: true,
        },
        ellipsis: {
            type: Boolean,
            value: true,
        },
        showHeader: {
            type: Boolean,
            value: true,
        },
        closeIcon: {
            type: String,
            value: 'cross',
        },
        fieldNames: {
            type: Object,
            value: defaultFieldNames,
            observer: 'updateFieldNames',
        },
        useTitleSlot: Boolean,
    },
    data: {
        tabs: [],
        activeTab: 0,
        textKey: FieldName.TEXT,
        valueKey: FieldName.VALUE,
        childrenKey: FieldName.CHILDREN,
        innerValue: '',
    },
    watch: {
        options: function () {
            this.updateTabs();
        },
        value: function (newVal) {
            this.updateValue(newVal);
        },
    },
    created: function () {
        this.updateTabs();
    },
    methods: {
        updateValue: function (val) {
            var _this = this;
            if (val !== undefined) {
                var values = this.data.tabs.map(function (tab) { return tab.selected && tab.selected[_this.data.valueKey]; });
                if (values.indexOf(val) > -1) {
                    return;
                }
            }
            this.innerValue = val;
            this.updateTabs();
        },
        updateFieldNames: function () {
            var _a = this.data.fieldNames || defaultFieldNames, _b = _a.text, text = _b === void 0 ? 'text' : _b, _c = _a.value, value = _c === void 0 ? 'value' : _c, _d = _a.children, children = _d === void 0 ? 'children' : _d;
            this.setData({
                textKey: text,
                valueKey: value,
                childrenKey: children,
            });
        },
        getSelectedOptionsByValue: function (options, value) {
            for (var i = 0; i < options.length; i++) {
                var option = options[i];
                if (option[this.data.valueKey] === value) {
                    return [option];
                }
                if (option[this.data.childrenKey]) {
                    var selectedOptions = this.getSelectedOptionsByValue(option[this.data.childrenKey], value);
                    if (selectedOptions) {
                        return __spreadArray([option], selectedOptions, true);
                    }
                }
            }
        },
        updateTabs: function () {
            var _this = this;
            var options = this.data.options;
            var innerValue = this.innerValue;
            if (!options.length) {
                return;
            }
            if (innerValue !== undefined) {
                var selectedOptions = this.getSelectedOptionsByValue(options, innerValue);
                if (selectedOptions) {
                    var optionsCursor_1 = options;
                    var tabs_1 = selectedOptions.map(function (option) {
                        var tab = {
                            options: optionsCursor_1,
                            selected: option,
                        };
                        var next = optionsCursor_1.find(function (item) { return item[_this.data.valueKey] === option[_this.data.valueKey]; });
                        if (next) {
                            optionsCursor_1 = next[_this.data.childrenKey];
                        }
                        return tab;
                    });
                    if (optionsCursor_1) {
                        tabs_1.push({
                            options: optionsCursor_1,
                            selected: null,
                        });
                    }
                    this.setData({
                        tabs: tabs_1,
                    });
                    wx.nextTick(function () {
                        _this.setData({
                            activeTab: tabs_1.length - 1,
                        });
                    });
                    return;
                }
            }
            this.setData({
                tabs: [
                    {
                        options: options,
                        selected: null,
                    },
                ],
                activeTab: 0,
            });
        },
        onClose: function () {
            this.$emit('close');
        },
        onClickTab: function (e) {
            var _a = e.detail, tabIndex = _a.index, title = _a.title;
            this.$emit('click-tab', { title: title, tabIndex: tabIndex });
            this.setData({
                activeTab: tabIndex,
            });
        },
        // 选中
        onSelect: function (e) {
            var _this = this;
            var _a = e.currentTarget.dataset, option = _a.option, tabIndex = _a.tabIndex;
            if (option && option.disabled) {
                return;
            }
            var _b = this.data, valueKey = _b.valueKey, childrenKey = _b.childrenKey;
            var tabs = this.data.tabs;
            tabs[tabIndex].selected = option;
            if (tabs.length > tabIndex + 1) {
                tabs = tabs.slice(0, tabIndex + 1);
            }
            if (option[childrenKey]) {
                var nextTab = {
                    options: option[childrenKey],
                    selected: null,
                };
                if (tabs[tabIndex + 1]) {
                    tabs[tabIndex + 1] = nextTab;
                }
                else {
                    tabs.push(nextTab);
                }
                wx.nextTick(function () {
                    _this.setData({
                        activeTab: tabIndex + 1,
                    });
                });
            }
            this.setData({
                tabs: tabs,
            });
            var selectedOptions = tabs.map(function (tab) { return tab.selected; }).filter(Boolean);
            var value = option[valueKey];
            var params = {
                value: value,
                tabIndex: tabIndex,
                selectedOptions: selectedOptions,
            };
            this.innerValue = value;
            this.$emit('change', params);
            if (!option[childrenKey]) {
                this.$emit('finish', params);
            }
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/cascader/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-icon": "../icon/index",
    "van-tab":  "../tab/index",
    "van-tabs": "../tabs/index"
  }
}

================================================
FILE: miniprogram_npm/@vant/weapp/cascader/index.wxml
================================================
<wxs src="./index.wxs" module="utils" />

<view wx:if="{{ showHeader }}" class="van-cascader__header">
  <slot name="title" wx:if="{{ useTitleSlot }}"></slot>
  <text class="van-cascader__title" wx:else>{{ title }}</text>
  <van-icon
    wx:if="{{ closeable }}"
    name="{{ closeIcon }}"
    class="van-cascader__close-icon"
    bind:tap="onClose"
  />
</view>

<van-tabs
  active="{{ activeTab }}"
  custom-class="van-cascader__tabs"
  wrap-class="van-cascader__tabs-wrap"
  tab-class="van-cascader__tab"
  color="{{ activeColor }}"
  border="{{ false }}"
  swipeable="{{ swipeable }}"
  ellipsis="{{ ellipsis }}"
  bind:click="onClickTab"
>
  <van-tab
    wx:for="{{ tabs }}"
    wx:for-item="tab"
    wx:for-index="tabIndex"
    wx:key="tabIndex"
    title="{{ tab.selected ? tab.selected[textKey] : placeholder }}"
    style="width: 100%;"
    title-style="{{ !tab.selected ? 'color: #969799;font-weight:normal;' : '' }}"
  >
    <!-- 暂不支持 -->
    <!-- <slot name="options-top"></slot> -->

    <view class="van-cascader__options">
      <view
        wx:for="{{ tab.options }}"
        wx:for-item="option"
        wx:key="index"
        class="{{ option.className }} {{ utils.optionClass(tab, valueKey, option) }}"
        style="{{ utils.optionStyle({ tab, valueKey, option, activeColor }) }}"
        data-option="{{ option }}"
        data-tab-index="{{ tabIndex }}"
        bind:tap="onSelect"
      >
        <text>{{ option[textKey] }}</text>
        <van-icon wx:if="{{ utils.isSelected(tab, valueKey, option) }}" name="success" size="18" />
      </view>
    </view>
    <!-- 暂不支持 -->
    <!-- <slot name="options-bottom"></slot> -->
  </van-tab>
</van-tabs>


================================================
FILE: miniprogram_npm/@vant/weapp/cascader/index.wxs
================================================
var utils = require('../wxs/utils.wxs');
var style = require('../wxs/style.wxs');

function isSelected(tab, valueKey, option) {
  return tab.selected && tab.selected[valueKey] === option[valueKey]
}

function optionClass(tab, valueKey, option) {
  return utils.bem('cascader__option', { selected: isSelected(tab, valueKey, option), disabled: option.disabled })
}

function optionStyle(data) {
  var color = data.option.color || (isSelected(data.tab, data.valueKey, data.option) ? data.activeColor : undefined);
  return style({
    color
  });
}


module.exports = {
  isSelected: isSelected,
  optionClass: optionClass,
  optionStyle: optionStyle,
};

================================================
FILE: miniprogram_npm/@vant/weapp/cascader/index.wxss
================================================
@import '../common/index.wxss';.van-cascader__header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 16px}.van-cascader__title{font-size:16px;font-weight:600;line-height:20px}.van-cascader__close-icon{color:#c8c9cc;font-size:22px;height:22px}.van-cascader__tabs-wrap{height:48px!important;padding:0 8px}.van-cascader__tab{color:#323233!important;flex:none!important;font-weight:600!important;padding:0 8px!important}.van-cascader__tab--unselected{color:#969799!important;font-weight:400!important}.van-cascader__option{align-items:center;cursor:pointer;display:flex;font-size:14px;justify-content:space-between;line-height:20px;padding:10px 16px}.van-cascader__option:active{background-color:#f2f3f5}.van-cascader__option--selected{color:#1989fa;font-weight:600}.van-cascader__option--disabled{color:#c8c9cc;cursor:not-allowed}.van-cascader__option--disabled:active{background-color:initial}.van-cascader__options{-webkit-overflow-scrolling:touch;box-sizing:border-box;height:384px;overflow-y:auto;padding-top:6px}

================================================
FILE: miniprogram_npm/@vant/weapp/cell/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/cell/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var link_1 = require("../mixins/link");
var component_1 = require("../common/component");
(0, component_1.VantComponent)({
    classes: [
        'title-class',
        'label-class',
        'value-class',
        'right-icon-class',
        'hover-class',
    ],
    mixins: [link_1.link],
    props: {
        title: null,
        value: null,
        icon: String,
        size: String,
        label: String,
        center: Boolean,
        isLink: Boolean,
        required: Boolean,
        clickable: Boolean,
        titleWidth: String,
        customStyle: String,
        arrowDirection: String,
        useLabelSlot: Boolean,
        border: {
            type: Boolean,
            value: true,
        },
        titleStyle: String,
    },
    methods: {
        onClick: function (event) {
            this.$emit('click', event.detail);
            this.jumpLink();
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/cell/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-icon": "../icon/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/cell/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />
<wxs src="./index.wxs" module="computed" />

<view
  class="custom-class {{ utils.bem('cell', [size, { center, required, borderless: !border, clickable: isLink || clickable }]) }}"
  hover-class="van-cell--hover hover-class"
  hover-stay-time="70"
  style="{{ customStyle }}"
  bind:tap="onClick"
>
  <van-icon
    wx:if="{{ icon }}"
    name="{{ icon }}"
    class="van-cell__left-icon-wrap"
    custom-class="van-cell__left-icon"
  />
  <slot wx:else name="icon" />

  <view
    style="{{ computed.titleStyle({ titleWidth, titleStyle }) }}"
    class="van-cell__title title-class"
  >

    <block wx:if="{{ title }}">{{ title }}</block>
    <slot wx:else name="title" />

    <view wx:if="{{ label || useLabelSlot }}" class="van-cell__label label-class">
      <slot wx:if="{{ useLabelSlot }}" name="label" />
      <block wx:elif="{{ label }}">{{ label }}</block>
    </view>
  </view>

  <view class="van-cell__value value-class">
    <block wx:if="{{ value || value === 0 }}">{{ value }}</block>
    <slot wx:else />
  </view>

  <van-icon
    wx:if="{{ isLink }}"
    name="{{ arrowDirection ? 'arrow' + '-' + arrowDirection : 'arrow' }}"
    class="van-cell__right-icon-wrap right-icon-class"
    custom-class="van-cell__right-icon"
  />
  <slot wx:else name="right-icon" />

  <slot name="extra" />
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/cell/index.wxs
================================================
/* eslint-disable */
var style = require('../wxs/style.wxs');
var addUnit = require('../wxs/add-unit.wxs');

function titleStyle(data) {
  return style([
    {
      'max-width': addUnit(data.titleWidth),
      'min-width': addUnit(data.titleWidth),
    },
    data.titleStyle,
  ]);
}

module.exports = {
  titleStyle: titleStyle,
};


================================================
FILE: miniprogram_npm/@vant/weapp/cell/index.wxss
================================================
@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:var(--cell-text-color,#323233);display:flex;font-size:var(--cell-font-size,14px);line-height:var(--cell-line-height,24px);padding:var(--cell-vertical-padding,10px) var(--cell-horizontal-padding,16px);position:relative;width:100%}.van-cell:after{border-bottom:1px solid #ebedf0;bottom:0;box-sizing:border-box;content:" ";left:16px;pointer-events:none;position:absolute;right:16px;transform:scaleY(.5);transform-origin:center}.van-cell--borderless:after{display:none}.van-cell-group{background-color:var(--cell-background-color,#fff)}.van-cell__label{color:var(--cell-label-color,#969799);font-size:var(--cell-label-font-size,12px);line-height:var(--cell-label-line-height,18px);margin-top:var(--cell-label-margin-top,3px)}.van-cell__value{color:var(--cell-value-color,#969799);overflow:hidden;text-align:right;vertical-align:middle}.van-cell__title,.van-cell__value{flex:1}.van-cell__title:empty,.van-cell__value:empty{display:none}.van-cell__left-icon-wrap,.van-cell__right-icon-wrap{align-items:center;display:flex;font-size:var(--cell-icon-size,16px);height:var(--cell-line-height,24px)}.van-cell__left-icon-wrap{margin-right:var(--padding-base,4px)}.van-cell__right-icon-wrap{color:var(--cell-right-icon-color,#969799);margin-left:var(--padding-base,4px)}.van-cell__left-icon{vertical-align:middle}.van-cell__left-icon,.van-cell__right-icon{line-height:var(--cell-line-height,24px)}.van-cell--clickable.van-cell--hover{background-color:var(--cell-active-color,#f2f3f5)}.van-cell--required{overflow:visible}.van-cell--required:before{color:var(--cell-required-color,#ee0a24);content:"*";font-size:var(--cell-font-size,14px);left:var(--padding-xs,8px);position:absolute}.van-cell--center{align-items:center}.van-cell--large{padding-bottom:var(--cell-large-vertical-padding,12px);padding-top:var(--cell-large-vertical-padding,12px)}.van-cell--large .van-cell__title{font-size:var(--cell-large-title-font-size,16px)}.van-cell--large .van-cell__value{font-size:var(--cell-large-value-font-size,16px)}.van-cell--large .van-cell__label{font-size:var(--cell-large-label-font-size,14px)}

================================================
FILE: miniprogram_npm/@vant/weapp/cell-group/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/cell-group/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
(0, component_1.VantComponent)({
    props: {
        title: String,
        border: {
            type: Boolean,
            value: true,
        },
        inset: Boolean,
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/cell-group/index.json
================================================
{
  "component": true
}


================================================
FILE: miniprogram_npm/@vant/weapp/cell-group/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />

<view
  wx:if="{{ title }}"
  class="{{ utils.bem('cell-group__title', { inset }) }}"
>
  {{ title }}
</view>
<view class="custom-class {{ utils.bem('cell-group', { inset }) }} {{ border ? 'van-hairline--top-bottom' : '' }}">
  <slot />
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/cell-group/index.wxss
================================================
@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var(--cell-group-inset-padding,0 16px);overflow:hidden}.van-cell-group__title{color:var(--cell-group-title-color,#969799);font-size:var(--cell-group-title-font-size,14px);line-height:var(--cell-group-title-line-height,16px);padding:var(--cell-group-title-padding,16px 16px 8px)}.van-cell-group__title--inset{padding:var(--cell-group-inset-title-padding,16px 16px 8px 32px)}

================================================
FILE: miniprogram_npm/@vant/weapp/checkbox/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var relation_1 = require("../common/relation");
var component_1 = require("../common/component");
function emit(target, value) {
    target.$emit('input', value);
    target.$emit('change', value);
}
(0, component_1.VantComponent)({
    field: true,
    relation: (0, relation_1.useParent)('checkbox-group'),
    classes: ['icon-class', 'label-class'],
    props: {
        value: Boolean,
        disabled: Boolean,
        useIconSlot: Boolean,
        checkedColor: String,
        labelPosition: {
            type: String,
            value: 'right',
        },
        labelDisabled: Boolean,
        shape: {
            type: String,
            value: 'round',
        },
        iconSize: {
            type: null,
            value: 20,
        },
    },
    data: {
        parentDisabled: false,
        direction: 'vertical',
    },
    methods: {
        emitChange: function (value) {
            if (this.parent) {
                this.setParentValue(this.parent, value);
            }
            else {
                emit(this, value);
            }
        },
        toggle: function () {
            var _a = this.data, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value;
            if (!disabled && !parentDisabled) {
                this.emitChange(!value);
            }
        },
        onClickLabel: function () {
            var _a = this.data, labelDisabled = _a.labelDisabled, parentDisabled = _a.parentDisabled, disabled = _a.disabled, value = _a.value;
            if (!disabled && !labelDisabled && !parentDisabled) {
                this.emitChange(!value);
            }
        },
        setParentValue: function (parent, value) {
            var parentValue = parent.data.value.slice();
            var name = this.data.name;
            var max = parent.data.max;
            if (value) {
                if (max && parentValue.length >= max) {
                    return;
                }
                if (parentValue.indexOf(name) === -1) {
                    parentValue.push(name);
                    emit(parent, parentValue);
                }
            }
            else {
                var index = parentValue.indexOf(name);
                if (index !== -1) {
                    parentValue.splice(index, 1);
                    emit(parent, parentValue);
                }
            }
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-icon": "../icon/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />
<wxs src="./index.wxs" module="computed" />

<view class="{{ utils.bem('checkbox', [{ horizontal: direction === 'horizontal' }]) }} custom-class">
  <view
    wx:if="{{ labelPosition === 'left' }}"
    class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
    bindtap="onClickLabel"
  >
    <slot />
  </view>
  <view class="van-checkbox__icon-wrap" bindtap="toggle">
    <slot wx:if="{{ useIconSlot }}" name="icon" />
    <van-icon
      wx:else
      name="success"
      size="0.8em"
      class="{{ utils.bem('checkbox__icon', [shape, { disabled: disabled || parentDisabled, checked: value }]) }}"
      style="{{ computed.iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) }}"
      custom-class="icon-class"
      custom-style="line-height: 1.25em;"
    />
  </view>
  <view
    wx:if="{{ labelPosition === 'right' }}"
    class="label-class {{ utils.bem('checkbox__label', [labelPosition, { disabled: disabled || parentDisabled }]) }}"
    bindtap="onClickLabel"
  >
    <slot />
  </view>
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox/index.wxs
================================================
/* eslint-disable */
var style = require('../wxs/style.wxs');
var addUnit = require('../wxs/add-unit.wxs');

function iconStyle(checkedColor, value, disabled, parentDisabled, iconSize) {
  var styles = {
    'font-size': addUnit(iconSize),
  };

  if (checkedColor && value && !disabled && !parentDisabled) {
    styles['border-color'] = checkedColor;
    styles['background-color'] = checkedColor;
  }

  return style(styles);
}

module.exports = {
  iconStyle: iconStyle,
};


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox/index.wxss
================================================
@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;user-select:none}.van-checkbox--horizontal{margin-right:12px}.van-checkbox__icon-wrap,.van-checkbox__label{line-height:var(--checkbox-size,20px)}.van-checkbox__icon-wrap{flex:none}.van-checkbox__icon{align-items:center;border:1px solid var(--checkbox-border-color,#c8c9cc);box-sizing:border-box;color:transparent;display:flex;font-size:var(--checkbox-size,20px);height:1em;justify-content:center;text-align:center;transition-duration:var(--checkbox-transition-duration,.2s);transition-property:color,border-color,background-color;width:1em}.van-checkbox__icon--round{border-radius:100%}.van-checkbox__icon--checked{background-color:var(--checkbox-checked-icon-color,#1989fa);border-color:var(--checkbox-checked-icon-color,#1989fa);color:#fff}.van-checkbox__icon--disabled{background-color:var(--checkbox-disabled-background-color,#ebedf0);border-color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__icon--disabled.van-checkbox__icon--checked{color:var(--checkbox-disabled-icon-color,#c8c9cc)}.van-checkbox__label{word-wrap:break-word;color:var(--checkbox-label-color,#323233);padding-left:var(--checkbox-label-margin,10px)}.van-checkbox__label--left{float:left;margin:0 var(--checkbox-label-margin,10px) 0 0}.van-checkbox__label--disabled{color:var(--checkbox-disabled-label-color,#c8c9cc)}.van-checkbox__label:empty{margin:0}

================================================
FILE: miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox-group/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var relation_1 = require("../common/relation");
var component_1 = require("../common/component");
(0, component_1.VantComponent)({
    field: true,
    relation: (0, relation_1.useChildren)('checkbox', function (target) {
        this.updateChild(target);
    }),
    props: {
        max: Number,
        value: {
            type: Array,
            observer: 'updateChildren',
        },
        disabled: {
            type: Boolean,
            observer: 'updateChildren',
        },
        direction: {
            type: String,
            value: 'vertical',
        },
    },
    methods: {
        updateChildren: function () {
            var _this = this;
            this.children.forEach(function (child) { return _this.updateChild(child); });
        },
        updateChild: function (child) {
            var _a = this.data, value = _a.value, disabled = _a.disabled, direction = _a.direction;
            child.setData({
                value: value.indexOf(child.data.name) !== -1,
                parentDisabled: disabled,
                direction: direction,
            });
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox-group/index.json
================================================
{
  "component": true
}


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox-group/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />

<view class="{{ utils.bem('checkbox-group', [{ horizontal: direction === 'horizontal' }]) }}">
  <slot />
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/checkbox-group/index.wxss
================================================
@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap}

================================================
FILE: miniprogram_npm/@vant/weapp/circle/canvas.d.ts
================================================
/// <reference types="miniprogram-api-typings" />
type CanvasContext = WechatMiniprogram.CanvasContext;
export declare function adaptor(ctx: CanvasContext & Record<string, unknown>): CanvasContext;
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/circle/canvas.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.adaptor = void 0;
function adaptor(ctx) {
    // @ts-ignore
    return Object.assign(ctx, {
        setStrokeStyle: function (val) {
            ctx.strokeStyle = val;
        },
        setLineWidth: function (val) {
            ctx.lineWidth = val;
        },
        setLineCap: function (val) {
            ctx.lineCap = val;
        },
        setFillStyle: function (val) {
            ctx.fillStyle = val;
        },
        setFontSize: function (val) {
            ctx.font = String(val);
        },
        setGlobalAlpha: function (val) {
            ctx.globalAlpha = val;
        },
        setLineJoin: function (val) {
            ctx.lineJoin = val;
        },
        setTextAlign: function (val) {
            ctx.textAlign = val;
        },
        setMiterLimit: function (val) {
            ctx.miterLimit = val;
        },
        setShadow: function (offsetX, offsetY, blur, color) {
            ctx.shadowOffsetX = offsetX;
            ctx.shadowOffsetY = offsetY;
            ctx.shadowBlur = blur;
            ctx.shadowColor = color;
        },
        setTextBaseline: function (val) {
            ctx.textBaseline = val;
        },
        createCircularGradient: function () { },
        draw: function () { },
    });
}
exports.adaptor = adaptor;


================================================
FILE: miniprogram_npm/@vant/weapp/circle/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/circle/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var color_1 = require("../common/color");
var component_1 = require("../common/component");
var utils_1 = require("../common/utils");
var validator_1 = require("../common/validator");
var version_1 = require("../common/version");
var canvas_1 = require("./canvas");
function format(rate) {
    return Math.min(Math.max(rate, 0), 100);
}
var PERIMETER = 2 * Math.PI;
var BEGIN_ANGLE = -Math.PI / 2;
var STEP = 1;
(0, component_1.VantComponent)({
    props: {
        text: String,
        lineCap: {
            type: String,
            value: 'round',
        },
        value: {
            type: Number,
            value: 0,
            observer: 'reRender',
        },
        speed: {
            type: Number,
            value: 50,
        },
        size: {
            type: Number,
            value: 100,
            observer: function () {
                this.drawCircle(this.currentValue);
            },
        },
        fill: String,
        layerColor: {
            type: String,
            value: color_1.WHITE,
        },
        color: {
            type: null,
            value: color_1.BLUE,
            observer: function () {
                var _this = this;
                this.setHoverColor().then(function () {
                    _this.drawCircle(_this.currentValue);
                });
            },
        },
        type: {
            type: String,
            value: '',
        },
        strokeWidth: {
            type: Number,
            value: 4,
        },
        clockwise: {
            type: Boolean,
            value: true,
        },
    },
    data: {
        hoverColor: color_1.BLUE,
    },
    methods: {
        getContext: function () {
            var _this = this;
            var _a = this.data, type = _a.type, size = _a.size;
            if (type === '' || !(0, version_1.canIUseCanvas2d)()) {
                var ctx = wx.createCanvasContext('van-circle', this);
                return Promise.resolve(ctx);
            }
            var dpr = (0, utils_1.getSystemInfoSync)().pixelRatio;
            return new Promise(function (resolve) {
                wx.createSelectorQuery()
                    .in(_this)
                    .select('#van-circle')
                    .node()
                    .exec(function (res) {
                    var canvas = res[0].node;
                    var ctx = canvas.getContext(type);
                    if (!_this.inited) {
                        _this.inited = true;
                        canvas.width = size * dpr;
                        canvas.height = size * dpr;
                        ctx.scale(dpr, dpr);
                    }
                    resolve((0, canvas_1.adaptor)(ctx));
                });
            });
        },
        setHoverColor: function () {
            var _this = this;
            var _a = this.data, color = _a.color, size = _a.size;
            if ((0, validator_1.isObj)(color)) {
                return this.getContext().then(function (context) {
                    if (!context)
                        return;
                    var LinearColor = context.createLinearGradient(size, 0, 0, 0);
                    Object.keys(color)
                        .sort(function (a, b) { return parseFloat(a) - parseFloat(b); })
                        .map(function (key) {
                        return LinearColor.addColorStop(parseFloat(key) / 100, color[key]);
                    });
                    _this.hoverColor = LinearColor;
                });
            }
            this.hoverColor = color;
            return Promise.resolve();
        },
        presetCanvas: function (context, strokeStyle, beginAngle, endAngle, fill) {
            var _a = this.data, strokeWidth = _a.strokeWidth, lineCap = _a.lineCap, clockwise = _a.clockwise, size = _a.size;
            var position = size / 2;
            var radius = position - strokeWidth / 2;
            context.setStrokeStyle(strokeStyle);
            context.setLineWidth(strokeWidth);
            context.setLineCap(lineCap);
            context.beginPath();
            context.arc(position, position, radius, beginAngle, endAngle, !clockwise);
            context.stroke();
            if (fill) {
                context.setFillStyle(fill);
                context.fill();
            }
        },
        renderLayerCircle: function (context) {
            var _a = this.data, layerColor = _a.layerColor, fill = _a.fill;
            this.presetCanvas(context, layerColor, 0, PERIMETER, fill);
        },
        renderHoverCircle: function (context, formatValue) {
            var clockwise = this.data.clockwise;
            // 结束角度
            var progress = PERIMETER * (formatValue / 100);
            var endAngle = clockwise
                ? BEGIN_ANGLE + progress
                : 3 * Math.PI - (BEGIN_ANGLE + progress);
            this.presetCanvas(context, this.hoverColor, BEGIN_ANGLE, endAngle);
        },
        drawCircle: function (currentValue) {
            var _this = this;
            var size = this.data.size;
            this.getContext().then(function (context) {
                if (!context)
                    return;
                context.clearRect(0, 0, size, size);
                _this.renderLayerCircle(context);
                var formatValue = format(currentValue);
                if (formatValue !== 0) {
                    _this.renderHoverCircle(context, formatValue);
                }
                context.draw();
            });
        },
        reRender: function () {
            var _this = this;
            // tofector 动画暂时没有想到好的解决方案
            var _a = this.data, value = _a.value, speed = _a.speed;
            if (speed <= 0 || speed > 1000) {
                this.drawCircle(value);
                return;
            }
            this.clearMockInterval();
            this.currentValue = this.currentValue || 0;
            var run = function () {
                _this.interval = setTimeout(function () {
                    if (_this.currentValue !== value) {
                        if (Math.abs(_this.currentValue - value) < STEP) {
                            _this.currentValue = value;
                        }
                        else if (_this.currentValue < value) {
                            _this.currentValue += STEP;
                        }
                        else {
                            _this.currentValue -= STEP;
                        }
                        _this.drawCircle(_this.currentValue);
                        run();
                    }
                    else {
                        _this.clearMockInterval();
                    }
                }, 1000 / speed);
            };
            run();
        },
        clearMockInterval: function () {
            if (this.interval) {
                clearTimeout(this.interval);
                this.interval = null;
            }
        },
    },
    mounted: function () {
        var _this = this;
        this.currentValue = this.data.value;
        this.setHoverColor().then(function () {
            _this.drawCircle(_this.currentValue);
        });
    },
    destroyed: function () {
        this.clearMockInterval();
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/circle/index.json
================================================
{
  "component": true
}


================================================
FILE: miniprogram_npm/@vant/weapp/circle/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />

<view class="van-circle">
  <canvas class="van-circle__canvas" type="{{ type }}" style="width: {{ utils.addUnit(size) }};height:{{ utils.addUnit(size) }}" id="van-circle" canvas-id="van-circle"></canvas>
  <view wx:if="{{ !text }}" class="van-circle__text">
    <slot></slot>
  </view>
  <cover-view wx:else class="van-circle__text">{{ text }}</cover-view>
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/circle/index.wxss
================================================
@import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{color:var(--circle-text-color,#323233);left:0;position:absolute;top:50%;transform:translateY(-50%);width:100%}

================================================
FILE: miniprogram_npm/@vant/weapp/col/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/col/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var relation_1 = require("../common/relation");
var component_1 = require("../common/component");
(0, component_1.VantComponent)({
    relation: (0, relation_1.useParent)('row'),
    props: {
        span: Number,
        offset: Number,
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/col/index.json
================================================
{
  "component": true
}


================================================
FILE: miniprogram_npm/@vant/weapp/col/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />
<wxs src="./index.wxs" module="computed" />

<view
  class="custom-class {{ utils.bem('col', [span]) }} {{ offset ? 'van-col--offset-' + offset : '' }}"
  style="{{ computed.rootStyle({ gutter }) }}"
>
  <slot />
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/col/index.wxs
================================================
/* eslint-disable */
var style = require('../wxs/style.wxs');
var addUnit = require('../wxs/add-unit.wxs');

function rootStyle(data) {
  if (!data.gutter) {
    return '';
  }

  return style({
    'padding-right': addUnit(data.gutter / 2),
    'padding-left': addUnit(data.gutter / 2),
  });
}

module.exports = {
  rootStyle: rootStyle,
};


================================================
FILE: miniprogram_npm/@vant/weapp/col/index.wxss
================================================
@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-1{margin-left:4.16666667%}.van-col--2{width:8.33333333%}.van-col--offset-2{margin-left:8.33333333%}.van-col--3{width:12.5%}.van-col--offset-3{margin-left:12.5%}.van-col--4{width:16.66666667%}.van-col--offset-4{margin-left:16.66666667%}.van-col--5{width:20.83333333%}.van-col--offset-5{margin-left:20.83333333%}.van-col--6{width:25%}.van-col--offset-6{margin-left:25%}.van-col--7{width:29.16666667%}.van-col--offset-7{margin-left:29.16666667%}.van-col--8{width:33.33333333%}.van-col--offset-8{margin-left:33.33333333%}.van-col--9{width:37.5%}.van-col--offset-9{margin-left:37.5%}.van-col--10{width:41.66666667%}.van-col--offset-10{margin-left:41.66666667%}.van-col--11{width:45.83333333%}.van-col--offset-11{margin-left:45.83333333%}.van-col--12{width:50%}.van-col--offset-12{margin-left:50%}.van-col--13{width:54.16666667%}.van-col--offset-13{margin-left:54.16666667%}.van-col--14{width:58.33333333%}.van-col--offset-14{margin-left:58.33333333%}.van-col--15{width:62.5%}.van-col--offset-15{margin-left:62.5%}.van-col--16{width:66.66666667%}.van-col--offset-16{margin-left:66.66666667%}.van-col--17{width:70.83333333%}.van-col--offset-17{margin-left:70.83333333%}.van-col--18{width:75%}.van-col--offset-18{margin-left:75%}.van-col--19{width:79.16666667%}.van-col--offset-19{margin-left:79.16666667%}.van-col--20{width:83.33333333%}.van-col--offset-20{margin-left:83.33333333%}.van-col--21{width:87.5%}.van-col--offset-21{margin-left:87.5%}.van-col--22{width:91.66666667%}.van-col--offset-22{margin-left:91.66666667%}.van-col--23{width:95.83333333%}.van-col--offset-23{margin-left:95.83333333%}.van-col--24{width:100%}.van-col--offset-24{margin-left:100%}

================================================
FILE: miniprogram_npm/@vant/weapp/collapse/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/collapse/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
var relation_1 = require("../common/relation");
(0, component_1.VantComponent)({
    relation: (0, relation_1.useChildren)('collapse-item'),
    props: {
        value: {
            type: null,
            observer: 'updateExpanded',
        },
        accordion: {
            type: Boolean,
            observer: 'updateExpanded',
        },
        border: {
            type: Boolean,
            value: true,
        },
    },
    methods: {
        updateExpanded: function () {
            this.children.forEach(function (child) {
                child.updateExpanded();
            });
        },
        switch: function (name, expanded) {
            var _a = this.data, accordion = _a.accordion, value = _a.value;
            var changeItem = name;
            if (!accordion) {
                name = expanded
                    ? (value || []).concat(name)
                    : (value || []).filter(function (activeName) { return activeName !== name; });
            }
            else {
                name = expanded ? name : '';
            }
            if (expanded) {
                this.$emit('open', changeItem);
            }
            else {
                this.$emit('close', changeItem);
            }
            this.$emit('change', name);
            this.$emit('input', name);
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/collapse/index.json
================================================
{
  "component": true
}


================================================
FILE: miniprogram_npm/@vant/weapp/collapse/index.wxml
================================================
<view class="custom-class van-collapse {{ border ? 'van-hairline--top-bottom' : '' }}">
  <slot />
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/collapse/index.wxss
================================================
@import '../common/index.wxss';

================================================
FILE: miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts
================================================
/// <reference types="miniprogram-api-typings" />
export declare function setContentAnimate(context: WechatMiniprogram.Component.TrivialInstance, expanded: boolean, mounted: boolean): void;


================================================
FILE: miniprogram_npm/@vant/weapp/collapse-item/animate.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.setContentAnimate = void 0;
var utils_1 = require("../common/utils");
function useAnimation(context, expanded, mounted, height) {
    var animation = wx.createAnimation({
        duration: 0,
        timingFunction: 'ease-in-out',
    });
    if (expanded) {
        if (height === 0) {
            animation.height('auto').top(1).step();
        }
        else {
            animation
                .height(height)
                .top(1)
                .step({
                duration: mounted ? 300 : 1,
            })
                .height('auto')
                .step();
        }
        context.setData({
            animation: animation.export(),
        });
        return;
    }
    animation.height(height).top(0).step({ duration: 1 }).height(0).step({
        duration: 300,
    });
    context.setData({
        animation: animation.export(),
    });
}
function setContentAnimate(context, expanded, mounted) {
    (0, utils_1.getRect)(context, '.van-collapse-item__content')
        .then(function (rect) { return rect.height; })
        .then(function (height) {
        useAnimation(context, expanded, mounted, height);
    });
}
exports.setContentAnimate = setContentAnimate;


================================================
FILE: miniprogram_npm/@vant/weapp/collapse-item/index.d.ts
================================================
export {};


================================================
FILE: miniprogram_npm/@vant/weapp/collapse-item/index.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var component_1 = require("../common/component");
var relation_1 = require("../common/relation");
var animate_1 = require("./animate");
(0, component_1.VantComponent)({
    classes: ['title-class', 'content-class'],
    relation: (0, relation_1.useParent)('collapse'),
    props: {
        size: String,
        name: null,
        title: null,
        value: null,
        icon: String,
        label: String,
        disabled: Boolean,
        clickable: Boolean,
        border: {
            type: Boolean,
            value: true,
        },
        isLink: {
            type: Boolean,
            value: true,
        },
    },
    data: {
        expanded: false,
        parentBorder: true,
    },
    mounted: function () {
        this.updateExpanded();
        this.mounted = true;
    },
    methods: {
        updateExpanded: function () {
            if (!this.parent) {
                return;
            }
            var _a = this.parent.data, value = _a.value, accordion = _a.accordion, border = _a.border;
            var _b = this.parent.children, children = _b === void 0 ? [] : _b;
            var name = this.data.name;
            var index = children.indexOf(this);
            var currentName = name == null ? index : name;
            var expanded = accordion
                ? value === currentName
                : (value || []).some(function (name) { return name === currentName; });
            if (expanded !== this.data.expanded) {
                (0, animate_1.setContentAnimate)(this, expanded, this.mounted);
            }
            this.setData({ index: index, expanded: expanded, parentBorder: border });
        },
        onClick: function () {
            if (this.data.disabled) {
                return;
            }
            var _a = this.data, name = _a.name, expanded = _a.expanded;
            var index = this.parent.children.indexOf(this);
            var currentName = name == null ? index : name;
            this.parent.switch(currentName, !expanded);
        },
    },
});


================================================
FILE: miniprogram_npm/@vant/weapp/collapse-item/index.json
================================================
{
  "component": true,
  "usingComponents": {
    "van-cell": "../cell/index"
  }
}


================================================
FILE: miniprogram_npm/@vant/weapp/collapse-item/index.wxml
================================================
<wxs src="../wxs/utils.wxs" module="utils" />

<view class="van-collapse-item custom-class {{ index !== 0 && parentBorder ? 'van-hairline--top' : '' }}">
  <van-cell
    size="{{ size }}"
    title="{{ title }}"
    title-class="title-class"
    icon="{{ icon }}"
    value="{{ value }}"
    label="{{ label }}"
    is-link="{{ isLink }}"
    clickable="{{ clickable }}"
    border="{{ border && expanded }}"
    class="{{ utils.bem('collapse-item__title', { disabled, expanded }) }}"
    right-icon-class="van-cell__right-icon"
    custom-class="van-cell"
    hover-class="van-cell--hover"
    bind:click="onClick"
  >
    <slot
      name="title"
      slot="title"
    />
    <slot
      name="icon"
      slot="icon"
    />
    <slot name="value" />
    <slot
      name="right-icon"
      slot="right-icon"
    />
  </van-cell>
  <view
    class="{{ utils.bem('collapse-item__wrapper') }}"
    style="height: 0;"
    animation="{{ animation }}"
  >
    <view
      class="van-collapse-item__content content-class"
    >
      <slot />
    </view>
  </view>
</view>


================================================
FILE: miniprogram_npm/@vant/weapp/collapse-item/index.wxss
================================================
@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{transform:rotate(90deg);transition:transform var(--collapse-item-transition-duration,.3s)}.van-collapse-item__title--expanded .van-cell__right-icon{transform:rotate(-90deg)}.van-collapse-item__title--disabled .van-cell,.van-collapse-item__title--disabled .van-cell__right-icon{color:var(--collapse-item-title-disabled-color,#c8c9cc)!important}.van-collapse-item__title--disabled .van-cell--hover{background-color:#fff!important}.van-collapse-item__wrapper{overflow:hidden}.van-collapse-item__content{background-color:var(--collapse-item-content-background-color,#fff);color:var(--collapse-item-content-text-color,#969799);font-size:var(--collapse-item-content-font-size,13px);line-height:var(--collapse-item-content-line-height,1.5);padding:var(--collapse-item-content-padding,15px)}

================================================
FILE: miniprogram_npm/@vant/weapp/common/color.d.ts
================================================
export declare const RED = "#ee0a24";
export declare const BLUE = "#1989fa";
export declare const WHITE = "#fff";
export declare const GREEN = "#07c160";
export declare const ORANGE = "#ff976a";
export declare const GRAY = "#323233";
export declare const GRAY_DARK = "#969799";


================================================
FILE: miniprogram_npm/@vant/weapp/common/color.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GRAY_DARK = exports.GRAY = exports.ORANGE = exports.GREEN = exports.WHITE = exports.BLUE = exports.RED = void 0;
exports.RED = '#ee0a24';
exports.BLUE = '#1989fa';
exports.WHITE = '#fff';
exports.GREEN = '#07c160';
exports.ORANGE = '#ff976a';
exports.GRAY = '#323233';
exports.GRAY_DARK = '#969799';


================================================
FILE: miniprogram_npm/@vant/weapp/common/component.d.ts
================================================
/// <reference types="miniprogram-api-typings" />
import { VantComponentOptions } from 'definitions/index';
declare function VantComponent<Data extends WechatMiniprogram.Component.DataOption, Props extends WechatMiniprogram.Component.PropertyOption, Methods extends WechatMiniprogram.Component.MethodOption>(vantOptions: VantComponentOptions<Data, Props, Methods>): void;
export { VantComponent };


================================================
FILE: miniprogram_npm/@vant/weapp/common/component.js
================================================
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.VantComponent = void 0;
var basic_1 = require("../mixins/basic");
function mapKeys(source, target, map) {
    Object.keys(map).forEach(function (key) {
 
Download .txt
gitextract_l7xqrqgw/

├── .gitignore
├── LICENSE
├── README.md
├── app.js
├── app.json
├── app.wxss
├── components/
│   ├── bind-mobile/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── date-time-selecter/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── fuwuxieyi/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── goods-pop/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── login/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   ├── payment/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   └── sn.txt
│   └── vip-success/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       └── index.wxss
├── config.js
├── jsconfig.json
├── miniprogram_npm/
│   ├── @vant/
│   │   └── weapp/
│   │       ├── action-sheet/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── area/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── button/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── calendar/
│   │       │   ├── calendar.wxml
│   │       │   ├── components/
│   │       │   │   ├── header/
│   │       │   │   │   ├── index.d.ts
│   │       │   │   │   ├── index.js
│   │       │   │   │   ├── index.json
│   │       │   │   │   ├── index.wxml
│   │       │   │   │   └── index.wxss
│   │       │   │   └── month/
│   │       │   │       ├── index.d.ts
│   │       │   │       ├── index.js
│   │       │   │       ├── index.json
│   │       │   │       ├── index.wxml
│   │       │   │       ├── index.wxs
│   │       │   │       └── index.wxss
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── utils.d.ts
│   │       │   ├── utils.js
│   │       │   └── utils.wxs
│   │       ├── card/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── cascader/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── cell/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── cell-group/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── checkbox/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── checkbox-group/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── circle/
│   │       │   ├── canvas.d.ts
│   │       │   ├── canvas.js
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── col/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── collapse/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── collapse-item/
│   │       │   ├── animate.d.ts
│   │       │   ├── animate.js
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── common/
│   │       │   ├── color.d.ts
│   │       │   ├── color.js
│   │       │   ├── component.d.ts
│   │       │   ├── component.js
│   │       │   ├── index.wxss
│   │       │   ├── relation.d.ts
│   │       │   ├── relation.js
│   │       │   ├── style/
│   │       │   │   ├── clearfix.wxss
│   │       │   │   ├── ellipsis.wxss
│   │       │   │   ├── hairline.wxss
│   │       │   │   ├── mixins/
│   │       │   │   │   ├── clearfix.wxss
│   │       │   │   │   ├── ellipsis.wxss
│   │       │   │   │   └── hairline.wxss
│   │       │   │   └── var.wxss
│   │       │   ├── utils.d.ts
│   │       │   ├── utils.js
│   │       │   ├── validator.d.ts
│   │       │   ├── validator.js
│   │       │   ├── version.d.ts
│   │       │   └── version.js
│   │       ├── config-provider/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxs
│   │       ├── count-down/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   ├── utils.d.ts
│   │       │   └── utils.js
│   │       ├── datetime-picker/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── definitions/
│   │       │   ├── index.d.ts
│   │       │   └── index.js
│   │       ├── dialog/
│   │       │   ├── dialog.d.ts
│   │       │   ├── dialog.js
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── divider/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── dropdown-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   ├── shared.d.ts
│   │       │   └── shared.js
│   │       ├── dropdown-menu/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── empty/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── field/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── input.wxml
│   │       │   ├── props.d.ts
│   │       │   ├── props.js
│   │       │   ├── textarea.wxml
│   │       │   ├── types.d.ts
│   │       │   └── types.js
│   │       ├── goods-action/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── goods-action-button/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── goods-action-icon/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── grid/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── grid-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── icon/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── image/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── index-anchor/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── index-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── info/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── loading/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── mixins/
│   │       │   ├── basic.d.ts
│   │       │   ├── basic.js
│   │       │   ├── button.d.ts
│   │       │   ├── button.js
│   │       │   ├── link.d.ts
│   │       │   ├── link.js
│   │       │   ├── page-scroll.d.ts
│   │       │   ├── page-scroll.js
│   │       │   ├── touch.d.ts
│   │       │   ├── touch.js
│   │       │   ├── transition.d.ts
│   │       │   └── transition.js
│   │       ├── nav-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── notice-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── notify/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── notify.d.ts
│   │       │   └── notify.js
│   │       ├── overlay/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   └── overlay.wxml
│   │       ├── panel/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── picker/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── shared.d.ts
│   │       │   ├── shared.js
│   │       │   └── toolbar.wxml
│   │       ├── picker-column/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── popup/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   └── popup.wxml
│   │       ├── progress/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── radio/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── radio-group/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── rate/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── row/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── search/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── share-sheet/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── options.d.ts
│   │       │   ├── options.js
│   │       │   ├── options.json
│   │       │   ├── options.wxml
│   │       │   ├── options.wxs
│   │       │   └── options.wxss
│   │       ├── sidebar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── sidebar-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── skeleton/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── slider/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── stepper/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── steps/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── sticky/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── submit-bar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── swipe-cell/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── switch/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── tab/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── tabbar/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── tabbar-item/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   └── index.wxss
│   │       ├── tabs/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── tag/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── toast/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxss
│   │       │   ├── toast.d.ts
│   │       │   └── toast.js
│   │       ├── transition/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── tree-select/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   └── index.wxss
│   │       ├── uploader/
│   │       │   ├── index.d.ts
│   │       │   ├── index.js
│   │       │   ├── index.json
│   │       │   ├── index.wxml
│   │       │   ├── index.wxs
│   │       │   ├── index.wxss
│   │       │   ├── shared.d.ts
│   │       │   ├── shared.js
│   │       │   ├── utils.d.ts
│   │       │   └── utils.js
│   │       └── wxs/
│   │           ├── add-unit.wxs
│   │           ├── array.wxs
│   │           ├── bem.wxs
│   │           ├── memoize.wxs
│   │           ├── object.wxs
│   │           ├── style.wxs
│   │           └── utils.wxs
│   ├── apifm-wxapi/
│   │   └── index.js
│   ├── dayjs/
│   │   └── index.js
│   ├── mp-html/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── node/
│   │   │   ├── node.js
│   │   │   ├── node.json
│   │   │   ├── node.wxml
│   │   │   └── node.wxss
│   │   └── parser.js
│   ├── wxa-plugin-canvas/
│   │   ├── index/
│   │   │   ├── index.js
│   │   │   ├── index.json
│   │   │   ├── index.wxml
│   │   │   └── index.wxss
│   │   └── poster/
│   │       ├── index.js
│   │       ├── index.json
│   │       ├── index.wxml
│   │       ├── index.wxss
│   │       └── poster.js
│   └── wxbarcode/
│       └── index.js
├── package.json
├── packageCps/
│   └── pages/
│       ├── goods-details/
│       │   ├── cps-jd.js
│       │   ├── cps-jd.json
│       │   ├── cps-jd.wxml
│       │   ├── cps-jd.wxss
│       │   ├── cps-pdd.js
│       │   ├── cps-pdd.json
│       │   ├── cps-pdd.wxml
│       │   ├── cps-pdd.wxss
│       │   ├── cps-taobao.js
│       │   ├── cps-taobao.json
│       │   ├── cps-taobao.wxml
│       │   └── cps-taobao.wxss
│       └── order-list/
│           ├── cps.js
│           ├── cps.json
│           ├── cps.wxml
│           └── cps.wxss
├── packageFx/
│   └── pages/
│       ├── apply/
│       │   ├── form.js
│       │   ├── form.json
│       │   ├── form.wxml
│       │   ├── form.wxss
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── commisionLog/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── hehuorenfenxiao/
│       │   ├── fxmember.js
│       │   ├── fxmember.json
│       │   ├── fxmember.wxml
│       │   ├── fxmember.wxss
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── index/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   └── index.wxss
│       ├── myusers/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   ├── index.wxss
│       │   ├── myusers-detail.js
│       │   ├── myusers-detail.json
│       │   ├── myusers-detail.wxml
│       │   └── myusers-detail.wxss
│       └── report/
│           ├── city.js
│           ├── city.json
│           ├── city.wxml
│           ├── city.wxss
│           ├── team.js
│           ├── team.json
│           ├── team.wxml
│           └── team.wxss
├── packageStreamMedia/
│   ├── components/
│   │   ├── TRTCCalling/
│   │   │   ├── TRTCCalling.js
│   │   │   ├── TRTCCalling.json
│   │   │   ├── TRTCCalling.wxml
│   │   │   ├── TRTCCalling.wxss
│   │   │   ├── common/
│   │   │   │   └── constants.js
│   │   │   ├── controller/
│   │   │   │   └── user-controller.js
│   │   │   ├── libs/
│   │   │   │   └── mta_analysis.js
│   │   │   ├── model/
│   │   │   │   ├── stream.js
│   │   │   │   └── user.js
│   │   │   ├── template/
│   │   │   │   ├── audio-template/
│   │   │   │   │   ├── audio-template.wxml
│   │   │   │   │   └── audio-template.wxss
│   │   │   │   └── video-template/
│   │   │   │       ├── video-template.wxml
│   │   │   │       └── video-template.wxss
│   │   │   └── utils/
│   │   │       ├── compare-version.js
│   │   │       ├── environment.js
│   │   │       ├── event.js
│   │   │       └── tsignaling-wx.js
│   │   └── like-dz/
│   │       ├── like-dz.js
│   │       ├── like-dz.json
│   │       ├── like-dz.wxml
│   │       └── like-dz.wxss
│   └── pages/
│       ├── live-anchor/
│       │   ├── index.js
│       │   ├── index.json
│       │   ├── index.wxml
│       │   ├── index.wxss
│       │   ├── list.js
│       │   ├── list.json
│       │   ├── list.wxml
│       │   └── list.wxss
│       ├── live-client/
│       │   ├── client.js
│       │   ├── client.json
│       │   ├── client.wxml
│       │   ├── client.wxss
│       │   ├── list.js
│       │   ├── list.json
│       │   ├── list.wxml
│       │   └── list.wxss
│       └── videoCall/
│           ├── videoCall.js
│           ├── videoCall.json
│           ├── videoCall.wxml
│           └── videoCall.wxss
├── pages/
│   ├── about/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── address-add/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── asset/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── card/
│   │   ├── logs.js
│   │   ├── logs.json
│   │   ├── logs.wxml
│   │   └── logs.wxss
│   ├── category/
│   │   ├── category.js
│   │   ├── category.json
│   │   ├── category.wxml
│   │   └── category.wxss
│   ├── cms/
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── coupons/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── merge.js
│   │   ├── merge.json
│   │   ├── merge.wxml
│   │   └── merge.wxss
│   ├── deposit/
│   │   ├── pay.js
│   │   ├── pay.json
│   │   ├── pay.wxml
│   │   └── pay.wxss
│   ├── goods/
│   │   ├── fav.js
│   │   ├── fav.json
│   │   ├── fav.wxml
│   │   ├── fav.wxss
│   │   ├── his.js
│   │   ├── his.json
│   │   ├── his.wxml
│   │   ├── his.wxss
│   │   ├── list-vop.js
│   │   ├── list-vop.json
│   │   ├── list-vop.wxml
│   │   ├── list-vop.wxss
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── goods-details/
│   │   ├── day.js
│   │   ├── day.json
│   │   ├── day.wxml
│   │   ├── day.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── times01.js
│   │   ├── times01.json
│   │   ├── times01.wxml
│   │   ├── times01.wxss
│   │   ├── times02.js
│   │   ├── times02.json
│   │   ├── times02.wxml
│   │   ├── times02.wxss
│   │   ├── vop.js
│   │   ├── vop.json
│   │   ├── vop.wxml
│   │   └── vop.wxss
│   ├── help/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── idCheck/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── index/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── invoice/
│   │   ├── apply.js
│   │   ├── apply.json
│   │   ├── apply.wxml
│   │   ├── apply.wxss
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── live/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── login/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── maidan/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── my/
│   │   ├── feedback.js
│   │   ├── feedback.json
│   │   ├── feedback.wxml
│   │   ├── feedback.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── info-menu.js
│   │   ├── info-menu.json
│   │   ├── info-menu.wxml
│   │   ├── info-menu.wxss
│   │   ├── info.js
│   │   ├── info.json
│   │   ├── info.wxml
│   │   ├── info.wxss
│   │   ├── setting.js
│   │   ├── setting.json
│   │   ├── setting.wxml
│   │   ├── setting.wxss
│   │   ├── user-code.js
│   │   ├── user-code.json
│   │   ├── user-code.wxml
│   │   └── user-code.wxss
│   ├── notagree/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── notice/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── show.js
│   │   ├── show.json
│   │   ├── show.wxml
│   │   └── show.wxss
│   ├── order/
│   │   ├── refundApply.js
│   │   ├── refundApply.json
│   │   ├── refundApply.wxml
│   │   └── refundApply.wxss
│   ├── order-details/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── scan-result.js
│   │   ├── scan-result.json
│   │   ├── scan-result.wxml
│   │   └── scan-result.wxss
│   ├── order-list/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── peisong/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── orders.js
│   │   ├── orders.json
│   │   ├── orders.wxml
│   │   ├── orders.wxss
│   │   ├── statistics.js
│   │   ├── statistics.json
│   │   ├── statistics.wxml
│   │   └── statistics.wxss
│   ├── pwd-pay/
│   │   ├── modify.js
│   │   ├── modify.json
│   │   ├── modify.wxml
│   │   ├── modify.wxss
│   │   ├── reset.js
│   │   ├── reset.json
│   │   ├── reset.wxml
│   │   ├── reset.wxss
│   │   ├── set.js
│   │   ├── set.json
│   │   ├── set.wxml
│   │   └── set.wxss
│   ├── raffle/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── recharge/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── recycle/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── order-detail.js
│   │   ├── order-detail.json
│   │   ├── order-detail.wxml
│   │   ├── order-detail.wxss
│   │   ├── orders.js
│   │   ├── orders.json
│   │   ├── orders.wxml
│   │   └── orders.wxss
│   ├── score/
│   │   ├── growth.js
│   │   ├── growth.json
│   │   ├── growth.wxml
│   │   ├── growth.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── score-excharge/
│   │   ├── growth.js
│   │   ├── growth.json
│   │   ├── growth.wxml
│   │   ├── growth.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── search/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── select-address/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── shop/
│   │   ├── select.js
│   │   ├── select.json
│   │   ├── select.wxml
│   │   └── select.wxss
│   ├── shop-cart/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── sign/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── start/
│   │   ├── start.js
│   │   ├── start.json
│   │   ├── start.wxml
│   │   └── start.wxss
│   ├── template-cart/
│   │   ├── template-cart.js
│   │   ├── template-cart.wxml
│   │   └── template-cart.wxss
│   ├── test/
│   │   ├── wifi.js
│   │   ├── wifi.json
│   │   ├── wifi.wxml
│   │   └── wifi.wxss
│   ├── to-pay-order/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── vip/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── history.js
│   │   ├── history.json
│   │   ├── history.wxml
│   │   ├── history.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── withdraw/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   └── wuliu/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       └── index.wxss
├── project.config.json
├── project.private.config.json
├── sitemap.json
├── typings/
│   └── wx.d.ts
└── utils/
    ├── address_parse.js
    ├── auth.js
    ├── image.js
    ├── pay.js
    ├── tools.js
    └── tools.wxs
Download .txt
SYMBOL INDEX (1479 symbols across 154 files)

FILE: app.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant CONFIG (line 2) | const CONFIG = require('config.js')
  constant AUTH (line 3) | const AUTH = require('utils/auth')
  method success (line 20) | success(res) {
  method success (line 33) | success(res) {
  method fail (line 87) | fail(err) {
  method onShow (line 93) | onShow (e) {
  method getUserApiInfo (line 169) | async getUserApiInfo() {
  method initNickAvatarUrlPOP (line 175) | initNickAvatarUrlPOP(_this) {

FILE: components/bind-mobile/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method attached (line 26) | attached() {
  method detached (line 29) | detached() {
  method close (line 37) | close() {
  method getPhoneNumber (line 40) | async getPhoneNumber(e) {
  method _getPhoneNumber (line 73) | async _getPhoneNumber(e) {

FILE: components/date-time-selecter/index.js
  method attached (line 32) | attached() {
  method detached (line 49) | detached() {
  method initTimes (line 57) | initTimes() {
  method dayClick (line 81) | dayClick(e) {
  method timeClick (line 90) | timeClick(e) {
  method closeSku (line 98) | closeSku() {
  method submit (line 101) | submit() {

FILE: components/fuwuxieyi/index.js
  method aggree (line 47) | aggree(){
  method notagree (line 55) | notagree(){
  method goYstk (line 60) | goYstk(e){

FILE: components/goods-pop/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  constant TOOLS (line 3) | const TOOLS = require('../../utils/tools.js') // TOOLS.showTabBarBadge();
  method closeSku (line 61) | closeSku(){
  method initGoodsData (line 68) | async initGoodsData(skuCurGoodsBaseInfo) {
  method storesJia (line 99) | storesJia(){
  method storesJian (line 108) | storesJian(){
  method skuSelect (line 117) | skuSelect(e){
  method additionSelect (line 176) | async additionSelect(e) {
  method calculateGoodsPrice (line 205) | async calculateGoodsPrice() {
  method addCarSku (line 278) | async addCarSku(){

FILE: components/login/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method attached (line 28) | attached() {
  method _editNick (line 41) | async _editNick() {
  method onChooseAvatar (line 70) | async onChooseAvatar(e) {
  method jump (line 97) | jump() {

FILE: components/payment/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi');
  method attached (line 35) | attached() {
  method detached (line 38) | detached() {
  method close (line 46) | close() {
  method payTypeChange (line 49) | payTypeChange(event) {
  method payTypeClick (line 55) | payTypeClick(event) {
  method submit (line 62) | async submit() {

FILE: components/vip-success/index.js
  method handleMaskClick (line 26) | handleMaskClick() {
  method stopPropagation (line 30) | stopPropagation() {
  method handleConfirm (line 34) | handleConfirm() {

FILE: miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts
  type Day (line 1) | interface Day {

FILE: miniprogram_npm/@vant/weapp/calendar/utils.js
  function formatMonthTitle (line 5) | function formatMonthTitle(date) {
  function compareMonth (line 12) | function compareMonth(date1, date2) {
  function compareDay (line 29) | function compareDay(day1, day2) {
  function getDayByOffset (line 45) | function getDayByOffset(date, offset) {
  function getPrevDay (line 51) | function getPrevDay(date) {
  function getNextDay (line 55) | function getNextDay(date) {
  function getToday (line 59) | function getToday() {
  function calcDateNum (line 65) | function calcDateNum(date) {
  function copyDates (line 71) | function copyDates(dates) {
  function getMonthEndDay (line 83) | function getMonthEndDay(year, month) {
  function getMonths (line 87) | function getMonths(minDate, maxDate) {

FILE: miniprogram_npm/@vant/weapp/checkbox/index.js
  function emit (line 5) | function emit(target, value) {

FILE: miniprogram_npm/@vant/weapp/circle/canvas.d.ts
  type CanvasContext (line 2) | type CanvasContext = WechatMiniprogram.CanvasContext;

FILE: miniprogram_npm/@vant/weapp/circle/canvas.js
  function adaptor (line 4) | function adaptor(ctx) {

FILE: miniprogram_npm/@vant/weapp/circle/index.js
  function format (line 9) | function format(rate) {

FILE: miniprogram_npm/@vant/weapp/collapse-item/animate.js
  function useAnimation (line 5) | function useAnimation(context, expanded, mounted, height) {
  function setContentAnimate (line 36) | function setContentAnimate(context, expanded, mounted) {

FILE: miniprogram_npm/@vant/weapp/common/component.js
  function mapKeys (line 5) | function mapKeys(source, target, map) {
  function VantComponent (line 12) | function VantComponent(vantOptions) {

FILE: miniprogram_npm/@vant/weapp/common/relation.d.ts
  type TrivialInstance (line 2) | type TrivialInstance = WechatMiniprogram.Component.TrivialInstance;

FILE: miniprogram_npm/@vant/weapp/common/relation.js
  function useParent (line 4) | function useParent(name, onEffect) {
  function useChildren (line 37) | function useChildren(name, onEffect) {

FILE: miniprogram_npm/@vant/weapp/common/utils.js
  function range (line 10) | function range(num, min, max) {
  function nextTick (line 14) | function nextTick(cb) {
  function addUnit (line 25) | function addUnit(value) {
  function requestAnimationFrame (line 33) | function requestAnimationFrame(cb) {
  function pickExclude (line 39) | function pickExclude(obj, keys) {
  function getRect (line 51) | function getRect(context, selector) {
  function getAllRect (line 64) | function getAllRect(context, selector) {
  function groupSetData (line 77) | function groupSetData(context, cb) {
  function toPromise (line 86) | function toPromise(promiseLike) {
  function addNumber (line 94) | function addNumber(num1, num2) {
  function getCurrentPage (line 102) | function getCurrentPage() {

FILE: miniprogram_npm/@vant/weapp/common/validator.js
  function isFunction (line 5) | function isFunction(val) {
  function isPlainObject (line 9) | function isPlainObject(val) {
  function isPromise (line 13) | function isPromise(val) {
  function isDef (line 17) | function isDef(value) {
  function isObj (line 21) | function isObj(x) {
  function isNumber (line 26) | function isNumber(value) {
  function isBoolean (line 30) | function isBoolean(value) {
  function isImageUrl (line 36) | function isImageUrl(url) {
  function isVideoUrl (line 40) | function isVideoUrl(url) {

FILE: miniprogram_npm/@vant/weapp/common/version.d.ts
  type WxWorkSystemInfo (line 2) | interface WxWorkSystemInfo extends WechatMiniprogram.SystemInfo {
  type SystemInfo (line 5) | interface SystemInfo extends WxWorkSystemInfo, WechatMiniprogram.SystemI...

FILE: miniprogram_npm/@vant/weapp/common/version.js
  function getSystemInfoSync (line 5) | function getSystemInfoSync() {
  function compareVersion (line 12) | function compareVersion(v1, v2) {
  function gte (line 34) | function gte(version) {
  function canIUseModel (line 38) | function canIUseModel() {
  function canIUseFormFieldButton (line 42) | function canIUseFormFieldButton() {
  function canIUseAnimate (line 46) | function canIUseAnimate() {
  function canIUseGroupSetData (line 50) | function canIUseGroupSetData() {
  function canIUseNextTick (line 54) | function canIUseNextTick() {
  function canIUseCanvas2d (line 63) | function canIUseCanvas2d() {
  function canIUseGetUserProfile (line 67) | function canIUseGetUserProfile() {

FILE: miniprogram_npm/@vant/weapp/count-down/index.js
  function simpleTick (line 5) | function simpleTick(fn) {

FILE: miniprogram_npm/@vant/weapp/count-down/utils.d.ts
  type TimeData (line 1) | type TimeData = {

FILE: miniprogram_npm/@vant/weapp/count-down/utils.js
  function padZero (line 4) | function padZero(num, targetLength) {
  function parseTimeData (line 16) | function parseTimeData(time) {
  function parseFormat (line 31) | function parseFormat(format, timeData) {
  function isSameSecond (line 61) | function isSameSecond(time1, time2) {

FILE: miniprogram_npm/@vant/weapp/datetime-picker/index.js
  function isValidDate (line 27) | function isValidDate(date) {
  function range (line 30) | function range(num, min, max) {
  function padZero (line 33) | function padZero(val) {
  function times (line 36) | function times(n, iteratee) {
  function getTrueValue (line 44) | function getTrueValue(formattedValue) {
  function getMonthEndDay (line 53) | function getMonthEndDay(year, month) {

FILE: miniprogram_npm/@vant/weapp/definitions/index.d.ts
  type VantComponentInstance (line 2) | interface VantComponentInstance {
  type VantComponentOptions (line 9) | type VantComponentOptions<Data extends WechatMiniprogram.Component.DataO...

FILE: miniprogram_npm/@vant/weapp/dialog/dialog.d.ts
  type Action (line 3) | type Action = 'confirm' | 'cancel' | 'overlay';
  type DialogContext (line 4) | type DialogContext = WechatMiniprogram.Page.TrivialInstance | WechatMini...
  type DialogOptions (line 5) | interface DialogOptions {

FILE: miniprogram_npm/@vant/weapp/dialog/dialog.js
  function getContext (line 39) | function getContext() {

FILE: miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts
  type Option (line 1) | interface Option {

FILE: miniprogram_npm/@vant/weapp/field/types.d.ts
  type InputDetails (line 1) | interface InputDetails {

FILE: miniprogram_npm/@vant/weapp/mixins/page-scroll.d.ts
  type IPageScrollOption (line 3) | type IPageScrollOption = WechatMiniprogram.Page.IPageScrollOption;
  type Scroller (line 4) | type Scroller = (this: WechatMiniprogram.Component.TrivialInstance, even...

FILE: miniprogram_npm/@vant/weapp/mixins/page-scroll.js
  function onPageScroll (line 6) | function onPageScroll(event) {
  function pageScrollMixin (line 15) | function pageScrollMixin(scroller) {

FILE: miniprogram_npm/@vant/weapp/mixins/touch.js
  function getDirection (line 6) | function getDirection(x, y) {

FILE: miniprogram_npm/@vant/weapp/mixins/transition.js
  function transition (line 13) | function transition(showDefaultValue) {

FILE: miniprogram_npm/@vant/weapp/notify/notify.d.ts
  type NotifyOptions (line 1) | interface NotifyOptions {

FILE: miniprogram_npm/@vant/weapp/notify/notify.js
  function parseOptions (line 30) | function parseOptions(message) {
  function getContext (line 36) | function getContext() {
  function Notify (line 40) | function Notify(options) {

FILE: miniprogram_npm/@vant/weapp/stepper/index.js
  function add (line 19) | function add(num1, num2) {
  function equal (line 23) | function equal(value1, value2) {

FILE: miniprogram_npm/@vant/weapp/toast/toast.d.ts
  type ToastMessage (line 3) | type ToastMessage = string | number;
  type ToastContext (line 4) | type ToastContext = WechatMiniprogram.Component.TrivialInstance | Wechat...
  type ToastOptions (line 5) | interface ToastOptions {

FILE: miniprogram_npm/@vant/weapp/toast/toast.js
  function parseOptions (line 29) | function parseOptions(message) {
  function getContext (line 32) | function getContext() {
  function Toast (line 36) | function Toast(toastOptions) {

FILE: miniprogram_npm/@vant/weapp/uploader/utils.d.ts
  type File (line 1) | interface File {

FILE: miniprogram_npm/@vant/weapp/uploader/utils.js
  function isImageFile (line 17) | function isImageFile(item) {
  function isVideoFile (line 30) | function isVideoFile(item) {
  function formatImage (line 43) | function formatImage(res) {
  function formatVideo (line 46) | function formatVideo(res) {
  function formatMedia (line 51) | function formatMedia(res) {
  function formatFile (line 54) | function formatFile(res) {
  function chooseFile (line 57) | function chooseFile(_a) {

FILE: miniprogram_npm/apifm-wxapi/index.js
  function __webpack_require__ (line 7) | function __webpack_require__(moduleId) {

FILE: miniprogram_npm/dayjs/index.js
  function M (line 8) | function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x|...

FILE: miniprogram_npm/mp-html/index.js
  function e (line 1) | function e(t){"@babel/helpers - typeof";return(e="function"==typeof Symb...
  function t (line 1) | function t(e,t,o){return(t=n(t))in e?Object.defineProperty(e,t,{value:o,...
  function n (line 1) | function n(t){var n=o(t,"string");return"symbol"==e(n)?n:n+""}
  function o (line 1) | function o(t,n){if("object"!=e(t)||!t)return t;var o=t[Symbol.toPrimitiv...

FILE: miniprogram_npm/mp-html/node/node.js
  function t (line 1) | function t(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){va...
  function e (line 1) | function e(e){for(var o=1;o<arguments.length;o++){var i=null!=arguments[...
  function r (line 1) | function r(t,e,r){return(e=o(e))in t?Object.defineProperty(t,e,{value:r,...
  function o (line 1) | function o(t){var e=i(t,"string");return"symbol"==n(e)?e:e+""}
  function i (line 1) | function i(t,e){if("object"!=n(t)||!t)return t;var r=t[Symbol.toPrimitiv...
  function n (line 1) | function n(t){"@babel/helpers - typeof";return(n="function"==typeof Symb...
  function a (line 1) | function a(t,e){var r="undefined"!=typeof Symbol&&t[Symbol.iterator]||t[...
  function s (line 1) | function s(t,e){if(t){if("string"==typeof t)return c(t,e);var r={}.toStr...
  function c (line 1) | function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,o=Array(...
  function e (line 1) | function e(t,o,i){var s=t.length;if(0===s||0===o.length)return void(r[i]...

FILE: miniprogram_npm/mp-html/parser.js
  function t (line 1) | function t(t,e){var s="undefined"!=typeof Symbol&&t[Symbol.iterator]||t[...
  function i (line 1) | function i(t,i){if(t){if("string"==typeof t)return e(t,i);var s={}.toStr...
  function e (line 1) | function e(t,i){(null==i||i>t.length)&&(i=t.length);for(var e=0,s=Array(...
  function s (line 1) | function s(t){for(var i=Object.create(null),e=t.split(","),s=e.length;s-...
  function n (line 1) | function n(t,i){for(var e=t.indexOf("&");-1!==e;){var s=t.indexOf(";",e+...
  function a (line 1) | function a(t){for(var i=t.length-1,e=i;e>=-1;e--)(-1===e||t[e].c||!t[e]....
  function r (line 1) | function r(t){this.options=t.data||{},this.tagStyle=Object.assign({},l.t...
  function o (line 1) | function o(t){this.handler=t}

FILE: miniprogram_npm/wxa-plugin-canvas/index/index.js
  method drawBlock (line 6) | drawBlock({ text, width = 0, height, x, y, paddingLeft = 0, paddingRight...
  method drawText (line 70) | drawText(params) {
  method drawImage (line 89) | drawImage(data) {
  method drawLine (line 112) | drawLine({ startX, startY, endX, endY, color, width }) {
  method downloadResource (line 123) | downloadResource({ images = [], pixelRatio = 1 }) {
  method initCanvas (line 129) | initCanvas(w, h, debug) {
  method _drawRadiusRect (line 143) | _drawRadiusRect(x, y, w, h, r) {
  method _getTextWidth (line 160) | _getTextWidth(text) {
  method _drawSingleText (line 178) | _drawSingleText({ x, y, fontSize, color, baseLine, textAlign = 'left', t...
  method _downloadImageAndInfo (line 266) | _downloadImageAndInfo(image, index, pixelRatio) {
  method _downImage (line 316) | _downImage(imageUrl) {
  method _getImageInfo (line 343) | _getImageInfo(imgPath, index) {
  method toPx (line 356) | toPx(rpx, int) {
  method toRpx (line 363) | toRpx(px, int) {
  method _mapHttpToHttps (line 373) | _mapHttpToHttps(rawUrl) {
  method created (line 390) | created() {
  method getHeight (line 400) | getHeight(config) {
  method create (line 447) | create(config) {

FILE: miniprogram_npm/wxa-plugin-canvas/poster/index.js
  method ready (line 16) | ready() {
  method trigger (line 30) | trigger(event, data) {
  method once (line 35) | once(event, fun) {
  method downloadResource (line 41) | downloadResource(reset) {
  method onCreate (line 64) | onCreate(reset = false) {
  method onCreateSuccess (line 78) | onCreateSuccess(e) {
  method onCreateFail (line 82) | onCreateFail(err) {

FILE: miniprogram_npm/wxa-plugin-canvas/poster/poster.js
  function Poster (line 5) | function Poster(options = {}, that) {

FILE: miniprogram_npm/wxbarcode/index.js
  function convert_length (line 14) | function convert_length(length) {
  function barc (line 18) | function barc(id, code, width, height) {
  function qrc (line 22) | function qrc(id, code, width, height) {
  function getBytes (line 60) | function getBytes(str) {
  function stringToCode128 (line 104) | function stringToCode128(text) {
  function codeValue (line 253) | function codeValue(chr1, chr2) {
  function charCompatible (line 262) | function charCompatible(chr, codeset) {
  function codeSetAllowedFor (line 272) | function codeSetAllowedFor(chr) {
  function setmask (line 558) | function setmask(x, y)
  function putalign (line 576) | function putalign(x, y)
  function modnn (line 598) | function modnn(x)
  function appendrs (line 610) | function appendrs(data, dlen, ecbuf, eclen)
  function ismasked (line 632) | function ismasked(x, y)
  function applymask (line 649) | function  applymask(m)
  function badruns (line 743) | function badruns(length)
  function badcheck (line 766) | function badcheck()
  function genframe (line 822) | function genframe(instring)
  method ecclevel (line 1151) | get ecclevel () {
  method ecclevel (line 1155) | set ecclevel (val) {
  method size (line 1159) | get size () {
  method size (line 1163) | set size (val) {
  method canvas (line 1167) | get canvas () {
  method canvas (line 1171) | set canvas (el) {

FILE: packageCps/pages/goods-details/cps-jd.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../../utils/auth')
  constant CONFIG (line 3) | const CONFIG = require('../../../config.js')
  method bindscroll (line 33) | bindscroll(e) {
  method onLoad (line 50) | onLoad(e) {
  method goodsDetail (line 67) | async goodsDetail() {
  method cpsJdGoodsDetail (line 77) | async cpsJdGoodsDetail(skuId) {
  method onShow (line 96) | onShow (){
  method getTopHeightFunction (line 114) | getTopHeightFunction() {
  method getTopHeight (line 122) | getTopHeight(viewId, index) {
  method goodsFavCheck (line 137) | async goodsFavCheck() {
  method addFav (line 149) | async addFav(){
  method tobuy (line 192) | async tobuy() {
  method stepChange (line 248) | stepChange(event) {
  method labelItemTap (line 256) | async labelItemTap(e) {
  method calculateGoodsPrice (line 306) | async calculateGoodsPrice() {
  method labelItemTap2 (line 355) | async labelItemTap2(e) {
  method onShareAppMessage (line 403) | onShareAppMessage() {
  method onShareTimeline (line 415) | onShareTimeline() {
  method joinKanjia (line 466) | joinKanjia(){
  method goIndex (line 504) | goIndex() {
  method helpKanjia (line 509) | helpKanjia() {
  method helpKanjiaDone (line 517) | helpKanjiaDone(){
  method closePop (line 538) | closePop(){
  method drawSharePic (line 543) | async drawSharePic() {
  method drawSharePicDone (line 576) | drawSharePicDone(picHeight, qrcode) {
  method onPosterSuccess (line 644) | onPosterSuccess(e) {
  method onPosterFail (line 651) | onPosterFail(e) {
  method savePosterPic (line 654) | savePosterPic() {
  method previewImage (line 708) | previewImage(e) {
  method onTabsChange (line 715) | onTabsChange(e) {
  method backToHome (line 727) | backToHome() {

FILE: packageCps/pages/goods-details/cps-pdd.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../../utils/auth')
  constant CONFIG (line 3) | const CONFIG = require('../../../config.js')
  method onLoad (line 10) | onLoad(e) {
  method cpsPddBeian (line 26) | async cpsPddBeian() {
  method goBeian (line 64) | goBeian() {
  method goodsDetail (line 70) | async goodsDetail() {
  method cpsPddGoodsDetail (line 80) | async cpsPddGoodsDetail(skuId) {
  method onShow (line 92) | onShow (){
  method goodsFavCheck (line 100) | async goodsFavCheck() {
  method addFav (line 112) | async addFav(){
  method tobuy (line 155) | async tobuy() {
  method stepChange (line 209) | stepChange(event) {
  method labelItemTap (line 217) | async labelItemTap(e) {
  method calculateGoodsPrice (line 267) | async calculateGoodsPrice() {
  method labelItemTap2 (line 316) | async labelItemTap2(e) {
  method onShareAppMessage (line 364) | onShareAppMessage() {
  method onShareTimeline (line 376) | onShareTimeline() {
  method joinKanjia (line 427) | joinKanjia(){
  method goIndex (line 465) | goIndex() {
  method helpKanjia (line 470) | helpKanjia() {
  method helpKanjiaDone (line 478) | helpKanjiaDone(){
  method closePop (line 499) | closePop(){
  method drawSharePic (line 504) | async drawSharePic() {
  method drawSharePicDone (line 537) | drawSharePicDone(picHeight, qrcode) {
  method onPosterSuccess (line 605) | onPosterSuccess(e) {
  method onPosterFail (line 612) | onPosterFail(e) {
  method savePosterPic (line 615) | savePosterPic() {
  method previewImage (line 669) | previewImage(e) {
  method onTabsChange (line 676) | onTabsChange(e) {
  method backToHome (line 682) | backToHome() {

FILE: packageCps/pages/goods-details/cps-taobao.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../../utils/auth')
  method onLoad (line 9) | onLoad(e) {
  method goodsDetail (line 26) | async goodsDetail() {
  method cpsTaobaoGoodsDetail (line 36) | async cpsTaobaoGoodsDetail(goodsId) {
  method onShow (line 49) | onShow (){
  method goodsFavCheck (line 56) | async goodsFavCheck() {
  method addFav (line 68) | async addFav(){
  method tobuy (line 111) | async tobuy() {
  method stepChange (line 165) | stepChange(event) {
  method labelItemTap (line 173) | async labelItemTap(e) {
  method calculateGoodsPrice (line 223) | async calculateGoodsPrice() {
  method labelItemTap2 (line 272) | async labelItemTap2(e) {
  method onShareAppMessage (line 320) | onShareAppMessage() {
  method onShareTimeline (line 332) | onShareTimeline() {
  method joinKanjia (line 383) | joinKanjia(){
  method goIndex (line 421) | goIndex() {
  method helpKanjia (line 426) | helpKanjia() {
  method helpKanjiaDone (line 434) | helpKanjiaDone(){
  method closePop (line 455) | closePop(){
  method drawSharePic (line 460) | async drawSharePic() {
  method drawSharePicDone (line 493) | drawSharePicDone(picHeight, qrcode) {
  method onPosterSuccess (line 561) | onPosterSuccess(e) {
  method onPosterFail (line 568) | onPosterFail(e) {
  method savePosterPic (line 571) | savePosterPic() {
  method previewImage (line 625) | previewImage(e) {
  method onTabsChange (line 632) | onTabsChange(e) {
  method backToHome (line 638) | backToHome() {
  method copyKouling (line 643) | async copyKouling() {
  method copyLink (line 661) | async copyLink() {

FILE: packageCps/pages/order-list/cps.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 8) | onLoad(e) {
  method onShow (line 11) | onShow() {
  method tabChange (line 14) | tabChange(e) {
  method cpsJdOrders (line 26) | async cpsJdOrders() {
  method cpsPddOrders (line 40) | async cpsPddOrders() {
  method onPullDownRefresh (line 54) | onPullDownRefresh() {
  method huishou (line 66) | huishou(e) {

FILE: packageFx/pages/apply/form.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 15) | onLoad(e) {
  method bindSave (line 30) | bindSave(){

FILE: packageFx/pages/apply/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../../utils/auth')
  method onShow (line 22) | onShow() {
  method initData (line 24) | async initData() {
  method setting (line 62) | async setting() {
  method buy (line 70) | async buy() {
  method paymentOk (line 108) | paymentOk(e) {
  method paymentCancel (line 117) | paymentCancel() {

FILE: packageFx/pages/commisionLog/index.js
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 13) | onLoad(options) {}
  method getCommisionLog (line 18) | async getCommisionLog() {
  method dateBeginCancel (line 68) | dateBeginCancel() {
  method dateBeginChange (line 73) | dateBeginChange(e) {
  method dateEndCancel (line 78) | dateEndCancel() {
  method dateEndChange (line 83) | dateEndChange(e) {

FILE: packageFx/pages/hehuorenfenxiao/fxmember.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../../utils/auth')
  method cancelLogin (line 89) | cancelLogin() {
  method processLogin (line 94) | processLogin(e) {
  method fxMembers (line 105) | async fxMembers(level){

FILE: packageFx/pages/hehuorenfenxiao/index.js
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../../utils/auth')
  constant APP (line 5) | const APP = getApp()
  method onLoad (line 69) | onLoad(options) {
  method onShow (line 106) | onShow() {
  method commision (line 109) | async commision() {
  method backto (line 170) | backto() {
  method getfxMoney (line 226) | async getfxMoney() {
  method payFx (line 236) | async payFx() {
  method fetchTabData (line 245) | fetchTabData(activeIndex) {
  method cashLogs (line 250) | cashLogs() {
  method cancelLogin (line 282) | cancelLogin() {
  method processLogin (line 287) | processLogin(e) {
  method getcashLogJD (line 298) | async getcashLogJD() { //获取金豆
  method getcashLogJDtx (line 322) | async getcashLogJDtx() { //获取金豆(已提现)
  method copyContent (line 341) | copyContent(e) {
  method getMembersStatistics (line 356) | async getMembersStatistics() { //团队情况
  method getTz (line 366) | async getTz(name) { //团长
  method getTy (line 380) | async getTy(name) { //团员
  method fxMembers (line 394) | async fxMembers() {
  method goFxmem (line 400) | goFxmem(e) {
  method goCommision (line 407) | goCommision() {
  method partnerBindTeamLeader (line 413) | async partnerBindTeamLeader() {
  method onChange (line 430) | onChange(e) {
  method fetchQrcode (line 435) | fetchQrcode() {
  method showCanvas (line 462) | showCanvas(qrcode) {
  method saveToMobile (line 486) | saveToMobile() { //下载二维码到手机
  method saveOri (line 542) | saveOri() {
  method savePhoto (line 580) | savePhoto() {
  method paymentOk (line 633) | paymentOk(e) {
  method paymentCancel (line 642) | paymentCancel() {

FILE: packageFx/pages/index/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../../utils/auth')
  constant APP (line 4) | const APP = getApp()
  method commision (line 69) | async commision() {
  method copyContent (line 171) | copyContent(e) {
  method doneShow2 (line 177) | async doneShow2() {
  method fetchQrcode (line 206) | fetchQrcode(){
  method showCanvas (line 236) | showCanvas(qrcode){
  method saveToMobile (line 258) | saveToMobile() {
  method fxCities (line 313) | async fxCities() {
  method adPosition (line 322) | async adPosition() {
  method goUrl (line 330) | goUrl(e) {
  method onShareAppMessage (line 338) | onShareAppMessage() {
  method onShareTimeline (line 351) | onShareTimeline() {
  method goApply (line 358) | goApply() {

FILE: packageFx/pages/myusers/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method fxMembersStatistics (line 22) | async fxMembersStatistics() {
  method fxMembers (line 31) | async fxMembers() {
  method tabChange (line 84) | tabChange(e) {

FILE: packageFx/pages/myusers/myusers-detail.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method userDetailSpreadUser (line 21) | async userDetailSpreadUser(uid) {

FILE: packageFx/pages/report/city.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 12) | onLoad(e) {
  method fxCityReport (line 20) | async fxCityReport() {

FILE: packageFx/pages/report/team.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 12) | onLoad(e) {
  method fxTeamReport (line 19) | async fxTeamReport() {

FILE: packageStreamMedia/components/TRTCCalling/TRTCCalling.js
  constant TAG_NAME (line 10) | const TAG_NAME = 'TRTCCalling-Component'
  method _initEventEmitter (line 66) | _initEventEmitter() {
  method login (line 299) | login() {
  method logout (line 316) | logout() {
  method on (line 332) | on(eventCode, handler, context) {
  method off (line 336) | off(eventCode, handler) {
  method call (line 346) | call({ userID, type }) {
  method groupCall (line 378) | groupCall(params) {
  method accept (line 397) | accept() {
  method reject (line 417) | reject() {
  method hangup (line 439) | hangup() {
  method _reset (line 471) | _reset() {
  method startRemoteView (line 508) | startRemoteView(userID) {
  method stopRemoteView (line 526) | stopRemoteView(userID) {
  method openCamera (line 542) | openCamera() {
  method closeCamera (line 554) | closeCamera() {
  method setMicMute (line 575) | setMicMute(isMute) {
  method switchCamera (line 585) | switchCamera(isFrontCamera) {
  method setHandsFree (line 593) | setHandsFree(isHandsFree) {
  method _toggleAudio (line 602) | _toggleAudio() {
  method _toggleSoundMode (line 610) | _toggleSoundMode() {
  method _getPushUrl (line 618) | _getPushUrl(roomId) {
  method _enterTRTCRoom (line 656) | _enterTRTCRoom() {
  method _hangUp (line 661) | _hangUp() {
  method _pusherStateChangeHandler (line 665) | _pusherStateChangeHandler(event) {
  method _playerStateChange (line 760) | _playerStateChange(event) {
  method _playerAudioVolumeNotify (line 765) | _playerAudioVolumeNotify(event) {
  method _pusherAudioVolumeNotify (line 784) | _pusherAudioVolumeNotify(event) {

FILE: packageStreamMedia/components/TRTCCalling/common/constants.js
  constant EVENT (line 1) | const EVENT = {
  constant TRTC_EVENT (line 20) | const TRTC_EVENT = {
  constant DEFAULT_PLAYER_CONFIG (line 34) | const DEFAULT_PLAYER_CONFIG = {

FILE: packageStreamMedia/components/TRTCCalling/controller/user-controller.js
  constant TAG_NAME (line 6) | const TAG_NAME = 'UserController'
  class UserController (line 10) | class UserController {
    method constructor (line 11) | constructor(componentContext) {
    method userEventHandler (line 21) | userEventHandler(event) {
    method addUser (line 88) | addUser(data) {
    method removeUser (line 114) | removeUser(data) {
    method updateUserVideo (line 143) | updateUserVideo(data) {
    method updateUserAudio (line 198) | updateUserAudio(data) {
    method getUser (line 261) | getUser(userID) {
    method getStream (line 264) | getStream({ userID, streamType }) {
    method getUserList (line 271) | getUserList() {
    method getStreamList (line 274) | getStreamList() {
    method reset (line 281) | reset() {
    method on (line 293) | on(eventCode, handler, context) {
    method off (line 296) | off(eventCode, handler) {
    method _removeUserAndStream (line 303) | _removeUserAndStream(userID) {
    method _addStream (line 311) | _addStream(stream) {
    method _removeStream (line 316) | _removeStream(stream) {

FILE: packageStreamMedia/components/TRTCCalling/libs/mta_analysis.js
  function getNetworkType (line 1) | function getNetworkType(a){wx.getNetworkType({success:function(b){a(b.ne...
  function getSystemInfo (line 2) | function getSystemInfo(){var a=wx.getSystemInfoSync();return{adt:encodeU...
  function getUID (line 2) | function getUID(){try{return wx.getStorageSync(MTA_CONFIG.prefix+"auid")...
  function setUID (line 2) | function setUID(){try{var a=getRandom();wx.setStorageSync(MTA_CONFIG.pre...
  function getSID (line 3) | function getSID(){try{return wx.getStorageSync(MTA_CONFIG.prefix+"ssid")...
  function setSID (line 3) | function setSID(){try{var a="s"+getRandom();wx.setStorageSync(MTA_CONFIG...
  function getRandom (line 3) | function getRandom(a){for(var b=[0,1,2,3,4,5,6,7,8,9],c=10;1<c;c--){var ...
  function getPagePath (line 4) | function getPagePath(){try{var a=getCurrentPages(),b="/";0<a.length&&(b=...
  function getMainInfo (line 4) | function getMainInfo(){var a={dm:"wechat.apps.xx",url:encodeURIComponent...
  function getBasicInfo (line 5) | function getBasicInfo(){var a=getSystemInfo();getNetworkType(function(a)...
  function getExtentInfo (line 5) | function getExtentInfo(){var a=MTA.Data.userInfo;var b=[],c;for(c in a)a...
  function getQuery (line 6) | function getQuery(a){if(!MTA_CONFIG.stat_param||!a)return"";a=ignorePara...
  function ignoreParams (line 6) | function ignoreParams(a){if(1>MTA_CONFIG.ignore_params.length)return a;v...
  function initOnload (line 7) | function initOnload(){var a=Page;Page=function(b){var c=b.onLoad;b.onLoa...

FILE: packageStreamMedia/components/TRTCCalling/model/stream.js
  class Stream (line 4) | class Stream {
    method constructor (line 5) | constructor(options) {
    method setProperty (line 17) | setProperty(options) {
    method reset (line 20) | reset() {

FILE: packageStreamMedia/components/TRTCCalling/model/user.js
  class User (line 1) | class User {
    method constructor (line 2) | constructor(options) {

FILE: packageStreamMedia/components/TRTCCalling/utils/compare-version.js
  function compareVersion (line 1) | function compareVersion(v1, v2) {

FILE: packageStreamMedia/components/TRTCCalling/utils/environment.js
  constant TAG_NAME (line 2) | const TAG_NAME = 'TRTC-ROOM'
  constant IS_TRTC (line 28) | const IS_TRTC = isNewVersion
  constant IS_QQ (line 29) | const IS_QQ = typeof qq !== 'undefined'
  constant IS_WX (line 30) | const IS_WX = typeof wx !== 'undefined'
  constant IS_IOS (line 31) | const IS_IOS = /iOS/i.test(systemInfo.system)
  constant IS_ANDROID (line 32) | const IS_ANDROID = /Android/i.test(systemInfo.system)
  constant IS_MAC (line 33) | const IS_MAC = /mac/i.test(systemInfo.system)
  constant APP_VERSION (line 34) | const APP_VERSION = systemInfo.version
  constant LIB_VERSION (line 35) | const LIB_VERSION = (function() {
  constant IS_FULLSCREEN_DEVICE (line 48) | const IS_FULLSCREEN_DEVICE = isFullscreenDevie

FILE: packageStreamMedia/components/TRTCCalling/utils/event.js
  class EventEmitter (line 1) | class EventEmitter {
    method on (line 2) | on(event, fn, ctx) {
    method emit (line 12) | emit(event) {
    method off (line 30) | off(event, fn) {

FILE: packageStreamMedia/components/TRTCCalling/utils/tsignaling-wx.js
  function n (line 1) | function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{...
  function a (line 1) | function a(){const e=new Date;return"TSignaling "+e.toLocaleTimeString("...
  method arguments2String (line 1) | arguments2String(e){let t;if(1===e.length)t=a()+e[0];else{t=a();for(let ...
  function n (line 1) | function n(e){return e=window.localStorage?localStorage.getItem(e)||sess...
  function o (line 1) | function o(e,t,n){if(window.localStorage)try{n?localStorage.setItem(e,t)...
  function r (line 1) | function r(e,t){var n,o={};if(void 0===t)var r=window.location,i=r.host,...
  function i (line 1) | function i(e){var t,i=r(e),a={dm:i.host,pvi:"",si:"",url:i.path,arg:enco...
  function s (line 1) | function s(e){for(var t=[0,1,2,3,4,5,6,7,8,9],n=10;1<n;n--){var o=Math.f...
    method constructor (line 1) | constructor(e=null,t=console){const n=i(this);return n._events=new Set...
    method _addCallback (line 1) | _addCallback(e,t,n,o){return this._getCallbacks(e).push({callback:t,co...
    method _getCallbacks (line 1) | _getCallbacks(e){return i(this)._callbacks[e]}
    method _getCallbackIndex (line 1) | _getCallbackIndex(e,t){return this._has(e)?this._getCallbacks(e).findI...
    method _achieveMaxListener (line 1) | _achieveMaxListener(e){return null!==i(this)._maxListeners&&i(this)._m...
    method _callbackIsExists (line 1) | _callbackIsExists(e,t,n){const o=this._getCallbackIndex(e,t),r=-1!==o?...
    method _has (line 1) | _has(e){return i(this)._events.has(e)}
    method on (line 1) | on(e,t,n=null,o=1){const r=i(this);if("function"!=typeof t)throw new T...
    method once (line 1) | once(e,t,n=null,r=1){const i=(...r)=>(this.off(e,i),o.call(t,n,r));ret...
    method off (line 1) | off(e,t=null){const n=i(this);let o;return this._has(e)&&(null===t?(n....
    method emit (line 1) | emit(e,...t){return this._has(e)&&this._getCallbacks(e).forEach(e=>o.c...
    method clear (line 1) | clear(){const e=i(this);return e._events.clear(),e._callbacks={},this}
    method listenersNumber (line 1) | listenersNumber(e){return this._has(e)?this._getCallbacks(e).length:null}
  function a (line 1) | function a(e){return{r2:e.sid}}
  function u (line 1) | function u(e){var t={};if(e){var n,o=[];for(n in e)e.hasOwnProperty(n)&&...
  function c (line 1) | function c(e){var t=r(e,document.referrer);return e=r(e),{rdm:t.host,rur...
  function l (line 1) | function l(){try{var e=navigator,t=screen||{width:"",height:"",colorDept...
  function s (line 1) | function s(e){try{u(o.next(e))}catch(e){i(e)}}
    method constructor (line 1) | constructor(e=null,t=console){const n=i(this);return n._events=new Set...
    method _addCallback (line 1) | _addCallback(e,t,n,o){return this._getCallbacks(e).push({callback:t,co...
    method _getCallbacks (line 1) | _getCallbacks(e){return i(this)._callbacks[e]}
    method _getCallbackIndex (line 1) | _getCallbackIndex(e,t){return this._has(e)?this._getCallbacks(e).findI...
    method _achieveMaxListener (line 1) | _achieveMaxListener(e){return null!==i(this)._maxListeners&&i(this)._m...
    method _callbackIsExists (line 1) | _callbackIsExists(e,t,n){const o=this._getCallbackIndex(e,t),r=-1!==o?...
    method _has (line 1) | _has(e){return i(this)._events.has(e)}
    method on (line 1) | on(e,t,n=null,o=1){const r=i(this);if("function"!=typeof t)throw new T...
    method once (line 1) | once(e,t,n=null,r=1){const i=(...r)=>(this.off(e,i),o.call(t,n,r));ret...
    method off (line 1) | off(e,t=null){const n=i(this);let o;return this._has(e)&&(null===t?(n....
    method emit (line 1) | emit(e,...t){return this._has(e)&&this._getCallbacks(e).forEach(e=>o.c...
    method clear (line 1) | clear(){const e=i(this);return e._events.clear(),e._callbacks={},this}
    method listenersNumber (line 1) | listenersNumber(e){return this._has(e)?this._getCallbacks(e).length:null}
  function a (line 1) | function a(e){try{u(o.throw(e))}catch(e){i(e)}}
  function u (line 1) | function u(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(...
  function a (line 1) | function a(i){return function(a){return function(i){if(n)throw new TypeE...
  function e (line 1) | function e(e){if(this._outerEmitter=null,this._safetyCallbackFactory=nul...
  function i (line 1) | function i(e){return r.has(e)||r.set(e,{}),r.get(e)}
  class s (line 1) | class s{constructor(e=null,t=console){const n=i(this);return n._events=n...
    method constructor (line 1) | constructor(e=null,t=console){const n=i(this);return n._events=new Set...
    method _addCallback (line 1) | _addCallback(e,t,n,o){return this._getCallbacks(e).push({callback:t,co...
    method _getCallbacks (line 1) | _getCallbacks(e){return i(this)._callbacks[e]}
    method _getCallbackIndex (line 1) | _getCallbackIndex(e,t){return this._has(e)?this._getCallbacks(e).findI...
    method _achieveMaxListener (line 1) | _achieveMaxListener(e){return null!==i(this)._maxListeners&&i(this)._m...
    method _callbackIsExists (line 1) | _callbackIsExists(e,t,n){const o=this._getCallbackIndex(e,t),r=-1!==o?...
    method _has (line 1) | _has(e){return i(this)._events.has(e)}
    method on (line 1) | on(e,t,n=null,o=1){const r=i(this);if("function"!=typeof t)throw new T...
    method once (line 1) | once(e,t,n=null,r=1){const i=(...r)=>(this.off(e,i),o.call(t,n,r));ret...
    method off (line 1) | off(e,t=null){const n=i(this);let o;return this._has(e)&&(null===t?(n....
    method emit (line 1) | emit(e,...t){return this._has(e)&&this._getCallbacks(e).forEach(e=>o.c...
    method clear (line 1) | clear(){const e=i(this);return e._events.clear(),e._callbacks={},this}
    method listenersNumber (line 1) | listenersNumber(e){return this._has(e)?this._getCallbacks(e).length:null}
  method constructor (line 1) | constructor(){this._funcMap=new Map}
  method defense (line 1) | defense(e,t,n){if("string"!=typeof e)return null;if(0===e.length)return ...
  method defenseOnce (line 1) | defenseOnce(e,t,n){return"function"!=typeof t?null:this._pack(e,t,n)}
  method find (line 1) | find(e,t){return"string"!=typeof e||0===e.length||"function"!=typeof t?n...
  method delete (line 1) | delete(e,t){return"function"==typeof t&&(!!this._funcMap.has(e)&&(!!this...
  method _pack (line 1) | _pack(e,t,n){return function(){try{t.apply(n,Array.from(arguments))}catc...
  function o (line 10) | function o(){var e=r._getRandomInt;this.timestamp=0,this.sequence=e(14),...
  function r (line 10) | function r(){}
  function o (line 10) | function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbo...
  function r (line 10) | function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a ...
  function i (line 10) | function i(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.en...
  function s (line 10) | function s(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}
    method constructor (line 1) | constructor(e=null,t=console){const n=i(this);return n._events=new Set...
    method _addCallback (line 1) | _addCallback(e,t,n,o){return this._getCallbacks(e).push({callback:t,co...
    method _getCallbacks (line 1) | _getCallbacks(e){return i(this)._callbacks[e]}
    method _getCallbackIndex (line 1) | _getCallbackIndex(e,t){return this._has(e)?this._getCallbacks(e).findI...
    method _achieveMaxListener (line 1) | _achieveMaxListener(e){return null!==i(this)._maxListeners&&i(this)._m...
    method _callbackIsExists (line 1) | _callbackIsExists(e,t,n){const o=this._getCallbackIndex(e,t),r=-1!==o?...
    method _has (line 1) | _has(e){return i(this)._events.has(e)}
    method on (line 1) | on(e,t,n=null,o=1){const r=i(this);if("function"!=typeof t)throw new T...
    method once (line 1) | once(e,t,n=null,r=1){const i=(...r)=>(this.off(e,i),o.call(t,n,r));ret...
    method off (line 1) | off(e,t=null){const n=i(this);let o;return this._has(e)&&(null===t?(n....
    method emit (line 1) | emit(e,...t){return this._has(e)&&this._getCallbacks(e).forEach(e=>o.c...
    method clear (line 1) | clear(){const e=i(this);return e._events.clear(),e._callbacks={},this}
    method listenersNumber (line 1) | listenersNumber(e){return this._has(e)?this._getCallbacks(e).length:null}
  function a (line 10) | function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enume...
  function u (line 10) | function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){va...
  function c (line 10) | function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[...
  function l (line 10) | function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("S...
  function p (line 10) | function p(e){return(p=Object.setPrototypeOf?Object.getPrototypeOf:funct...
  function h (line 10) | function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e._...
  function d (line 10) | function d(){if("undefined"==typeof Reflect||!Reflect.construct)return!1...
  function f (line 10) | function f(e,t,n){return(f=d()?Reflect.construct:function(e,t,n){var o=[...
  function g (line 10) | function g(e){var t="function"==typeof Map?new Map:void 0;return(g=funct...
  function m (line 10) | function m(e){if(void 0===e)throw new ReferenceError("this hasn't been i...
  function _ (line 10) | function _(e,t){return!t||"object"!=typeof t&&"function"!=typeof t?m(e):t}
  function v (line 10) | function v(e){return function(){var t,n=p(e);if(d()){var o=p(this).const...
  function y (line 10) | function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||fun...
  function I (line 10) | function I(e){return function(e){if(Array.isArray(e))return C(e)}(e)||fu...
  function M (line 10) | function M(e,t){if(e){if("string"==typeof e)return C(e,t);var n=Object.p...
  function C (line 10) | function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Ar...
  function E (line 10) | function E(e){if("undefined"==typeof Symbol||null==e[Symbol.iterator]){i...
  function e (line 10) | function e(){r(this,e),this.cache=[],this.options=null}
  function D (line 10) | function D(e,t){return e(t={exports:{}},t.exports),t.exports}
  function $ (line 10) | function $(){var e=new Date;return"TIM "+e.toLocaleTimeString("en-US",{h...
  function Ie (line 10) | function Ie(e,t){ee(e)&&ee(t)?t.forEach((function(t){var n=t.key,o=t.val...
  function Se (line 10) | function Se(e,t){var n={};return Object.keys(e).forEach((function(o){n[o...
  function ke (line 10) | function ke(e){if(null==e)return!0;if("boolean"==typeof e)return!1;if("n...
  function Ae (line 10) | function Ae(e,t,n){if(void 0===t)return!0;var o=!0;if("object"===N(t).to...
  function Re (line 10) | function Re(e,t,n,o){if(void 0===t)return!0;var r=!0;return t.required&&...
  function e (line 10) | function e(t){r(this,e),this.type=n.MSG_TEXT,this.content={text:t.text||...
  function e (line 10) | function e(t){r(this,e),this._imageMemoryURL="",this._file=t.file,O?this...
  function e (line 10) | function e(t){r(this,e),this.type=n.MSG_FACE,this.content=t||null}
  function e (line 10) | function e(t){r(this,e),this.type=n.MSG_AUDIO,this._percent=0,this.conte...
  function e (line 10) | function e(t){r(this,e),this.type=n.MSG_GRP_TIP,this.content={},this._in...
  function e (line 10) | function e(t){r(this,e),this.type=n.MSG_GRP_SYS_NOTICE,this.content={},t...
  function n (line 10) | function n(e){var o;return r(this,n),(o=t.call(this)).code=e.code,o.mess...
  function e (line 10) | function e(t){r(this,e);var o=this._check(t);if(o instanceof nt)throw o;...
  function e (line 10) | function e(t){r(this,e),this.type=n.MSG_CUSTOM,this.content={data:t.data...
  function e (line 10) | function e(t){r(this,e),this.type=n.MSG_VIDEO,this._percent=0,this.conte...
  function e (line 10) | function e(t){r(this,e),this.ID="",this.conversationID=t.conversationID|...
  function In (line 10) | function In(e,t){if("string"!=typeof e&&!Array.isArray(e))throw new Type...
  function Cn (line 10) | function Cn(e,t,n){var o=[],r=0,i=function e(t,n){if(++r>10)return r--,t...
  function e (line 10) | function e(t){var n=this;r(this,e),this.url="",this.requestData=null,thi...
  function Tn (line 10) | function Tn(e){this.mixin(e)}
  function e (line 10) | function e(t){r(this,e),Tn.mixin(this),this.tim=t}
  function e (line 10) | function e(t,n){r(this,e),this.data=t,this._innerEmitter=n,this.defaultD...
  function n (line 10) | function n(e){var o;r(this,n);var i=(o=t.call(this,e)).tim.loginInfo;ret...
  function e (line 10) | function e(){r(this,e),this.SDKAppID="",this.version="",this.tinyID="",t...
  function i (line 10) | function i(e){var t;return r(this,i),(t=o.call(this,e))._initializeListe...
  function Zn (line 10) | function Zn(e){return"[object Array]"===Qn.call(e)}
  function eo (line 10) | function eo(e){return void 0===e}
  function to (line 10) | function to(e){return null!==e&&"object"==typeof e}
  function no (line 10) | function no(e){return"[object Function]"===Qn.call(e)}
  function oo (line 10) | function oo(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),Zn(e))for(var...
  function n (line 10) | function n(n,o){"object"==typeof t[o]&&"object"==typeof n?t[o]=e(t[o],n)...
  function n (line 10) | function n(n,o){"object"==typeof t[o]&&"object"==typeof n?t[o]=e(t[o],n)...
  function io (line 10) | function io(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace...
  function ao (line 10) | function ao(){this.handlers=[]}
  function po (line 10) | function po(){throw new Error("setTimeout has not been defined")}
  function ho (line 10) | function ho(){throw new Error("clearTimeout has not been defined")}
  function mo (line 10) | function mo(e){if(fo===setTimeout)return setTimeout(e,0);if((fo===po||!f...
  function Mo (line 10) | function Mo(){yo&&_o&&(yo=!1,_o.length?vo=_o.concat(vo):Io=-1,vo.length&...
  function Co (line 10) | function Co(){if(!yo){var e=mo(Mo);yo=!0;for(var t=vo.length;t;){for(_o=...
  function Eo (line 10) | function Eo(e,t){this.fun=e,this.array=t}
  function To (line 10) | function To(){}
  function o (line 10) | function o(e){var o=e;return t&&(n.setAttribute("href",o),o=n.href),n.se...
  function Ko (line 10) | function Ko(e,t){!ro.isUndefined(e)&&ro.isUndefined(e["Content-Type"])&&...
  function Yo (line 10) | function Yo(e){e.cancelToken&&e.cancelToken.throwIfRequested()}
  function zo (line 10) | function zo(e){this.defaults=e,this.interceptors={request:new uo,respons...
  function Xo (line 10) | function Xo(e){this.message=e}
  function Zo (line 10) | function Zo(e){if("function"!=typeof e)throw new TypeError("executor mus...
  function tr (line 10) | function tr(e){var t=new Jo(e),n=Xn(Jo.prototype.request,t);return ro.ex...
  function e (line 10) | function e(){r(this,e)}
  function n (line 10) | function n(){var e;return r(this,n),(e=t.call(this)).retry=2,e}
  function dr (line 10) | function dr(){hr=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmno...
  function fr (line 10) | function fr(e,t,n){for(var o,r,i=[],s=t;s<n;s+=3)o=(e[s]<<16)+(e[s+1]<<8...
  function gr (line 10) | function gr(e){var t;hr||dr();for(var n=e.length,o=n%3,r="",i=[],s=0,a=n...
  function mr (line 10) | function mr(e,t,n,o,r){var i,s,a=8*r-o-1,u=(1<<a)-1,c=u>>1,l=-7,p=n?r-1:...
  function _r (line 10) | function _r(e,t,n,o,r,i){var s,a,u,c=8*i-r-1,l=(1<<c)-1,p=l>>1,h=23===r?...
  function Ir (line 10) | function Ir(){return Cr.TYPED_ARRAY_SUPPORT?2147483647:1073741823}
  function Mr (line 10) | function Mr(e,t){if(Ir()<t)throw new RangeError("Invalid typed array len...
  function Cr (line 10) | function Cr(e,t,n){if(!(Cr.TYPED_ARRAY_SUPPORT||this instanceof Cr))retu...
  function Er (line 10) | function Er(e,t,n,o){if("number"==typeof t)throw new TypeError('"value" ...
  function Tr (line 10) | function Tr(e){if("number"!=typeof e)throw new TypeError('"size" argumen...
  function Sr (line 10) | function Sr(e,t){if(Tr(t),e=Mr(e,t<0?0:0|kr(t)),!Cr.TYPED_ARRAY_SUPPORT)...
  function Dr (line 10) | function Dr(e,t){var n=t.length<0?0:0|kr(t.length);e=Mr(e,n);for(var o=0...
  function kr (line 10) | function kr(e){if(e>=Ir())throw new RangeError("Attempt to allocate Buff...
  function Ar (line 10) | function Ar(e){return!(null==e||!e._isBuffer)}
  function Rr (line 10) | function Rr(e,t){if(Ar(e))return e.length;if("undefined"!=typeof ArrayBu...
  function Nr (line 10) | function Nr(e,t,n){var o=!1;if((void 0===t||t<0)&&(t=0),t>this.length)re...
  function wr (line 10) | function wr(e,t,n){var o=e[t];e[t]=e[n],e[n]=o}
  function Or (line 10) | function Or(e,t,n,o,r){if(0===e.length)return-1;if("string"==typeof n?(o...
  function Lr (line 10) | function Lr(e,t,n,o,r){var i,s=1,a=e.length,u=t.length;if(void 0!==o&&("...
  function br (line 10) | function br(e,t,n,o){n=Number(n)||0;var r=e.length-n;o?(o=Number(o))>r&&...
  function Pr (line 10) | function Pr(e,t,n,o){return oi(ti(t,e.length-n),e,n,o)}
  function Gr (line 10) | function Gr(e,t,n,o){return oi(function(e){for(var t=[],n=0;n<e.length;+...
  function Ur (line 10) | function Ur(e,t,n,o){return Gr(e,t,n,o)}
  function xr (line 10) | function xr(e,t,n,o){return oi(ni(t),e,n,o)}
  function qr (line 10) | function qr(e,t,n,o){return oi(function(e,t){for(var n,o,r,i=[],s=0;s<e....
  function Fr (line 10) | function Fr(e,t,n){return 0===t&&n===e.length?gr(e):gr(e.slice(t,n))}
  function Vr (line 10) | function Vr(e,t,n){n=Math.min(e.length,n);for(var o=[],r=t;r<n;){var i,s...
  function Kr (line 10) | function Kr(e,t,n){var o="";n=Math.min(e.length,n);for(var r=t;r<n;++r)o...
  function Hr (line 10) | function Hr(e,t,n){var o="";n=Math.min(e.length,n);for(var r=t;r<n;++r)o...
  function Br (line 10) | function Br(e,t,n){var o=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>o)&&(n=o)...
  function jr (line 10) | function jr(e,t,n){for(var o=e.slice(t,n),r="",i=0;i<o.length;i+=2)r+=St...
  function Yr (line 10) | function Yr(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not ui...
  function $r (line 10) | function $r(e,t,n,o,r,i){if(!Ar(e))throw new TypeError('"buffer" argumen...
  function Wr (line 10) | function Wr(e,t,n,o){t<0&&(t=65535+t+1);for(var r=0,i=Math.min(e.length-...
  function zr (line 10) | function zr(e,t,n,o){t<0&&(t=4294967295+t+1);for(var r=0,i=Math.min(e.le...
  function Jr (line 10) | function Jr(e,t,n,o,r,i){if(n+o>e.length)throw new RangeError("Index out...
  function Xr (line 10) | function Xr(e,t,n,o,r){return r||Jr(e,0,n,4),_r(e,t,n,o,23,4),n+4}
  function Qr (line 10) | function Qr(e,t,n,o,r){return r||Jr(e,0,n,8),_r(e,t,n,o,52,8),n+8}
  function ei (line 10) | function ei(e){return e<16?"0"+e.toString(16):e.toString(16)}
  function ti (line 10) | function ti(e,t){var n;t=t||1/0;for(var o=e.length,r=null,i=[],s=0;s<o;+...
  function ni (line 10) | function ni(e){return function(e){var t,n,o,r,i,s;hr||dr();var a=e.lengt...
  function oi (line 10) | function oi(e,t,n,o){for(var r=0;r<o&&!(r+n>=t.length||r>=e.length);++r)...
  function ri (line 10) | function ri(e){return!!e.constructor&&"function"==typeof e.constructor.i...
  function n (line 10) | function n(){var e;return r(this,n),(e=t.call(this)).retry=2,e._request=...
  function e (line 10) | function e(){r(this,e),this.request=0,this.success=0,this.fail=0,this.re...
  function e (line 10) | function e(t){r(this,e),this._initializeOptions(t),this._initializeMembe...
  function e (line 10) | function e(t){r(this,e),this._initializeOptions(t),this._initializeMembe...
  function e (line 10) | function e(t){r(this,e),this.tim=t,this.httpConnection=O?new ii:new ur,t...
  function t (line 10) | function t(e){r(this,t),this.tim=e,this.tim.innerEmitter.on(pn,this._onE...
  function e (line 10) | function e(t){var o=this;r(this,e),ke(t)||(this.userID=t.userID||"",this...
  function t (line 10) | function t(e){r(this,t),this.userController=e,this.TAG="profile",this.Ac...
  function e (line 10) | function e(t){r(this,e),this.options=t?t.options:{enablePointer:!0},this...
  function e (line 10) | function e(t){r(this,e),this.userController=t,this.TAG="friend",this.Act...
  function t (line 10) | function t(e){r(this,t),this.userController=e,this.TAG="blacklist",this....
  function e (line 10) | function e(t){r(this,e),this.userController=t,this.TAG="applyC2C",this.A...
  function n (line 10) | function n(e){var o;return r(this,n),(o=t.call(this,e)).profileHandler=n...
  function e (line 10) | function e(t){r(this,e),this.groupID="",this.name="",this.avatar="",this...
  function e (line 10) | function e(t){r(this,e),this.conversationID=t.conversationID||"",this.un...
  function i (line 10) | function i(e){var t;return r(this,i),(t=o.call(this,e)).pagingStatus=xe,...
  function e (line 10) | function e(t){if(r(this,e),void 0===t)throw new nt({code:ot.MESSAGE_LIST...
  function e (line 10) | function e(t){r(this,e),this.tim=t}
  function e (line 10) | function e(t){var n=t.tim,o=t.messageController;r(this,e),this.tim=n,thi...
  function e (line 10) | function e(t){r(this,e),this.MAX_LENGTH=t,this.pTail=null,this.pNodeToDe...
  function e (line 10) | function e(t){r(this,e),this.tim=t}
  function i (line 10) | function i(e){var t;return r(this,i),(t=o.call(this,e))._initializeMembe...
  function e (line 10) | function e(t){r(this,e),this.userID="",this.avatar="",this.nick="",this....
  function e (line 10) | function e(t){r(this,e),this.tim=t.tim,this.groupController=t.groupContr...
  function t (line 10) | function t(e){r(this,t),this.groupController=e.groupController,this.tim=...
  function t (line 10) | function t(e){var n=e.tim,o=e.groupController;r(this,t),this.tim=n,this....
  function i (line 10) | function i(e){var t;return r(this,i),(t=o.call(this,e)).groupMap=new Map...
  function i (line 10) | function i(e){var t;r(this,i),(t=o.call(this,e)).REALTIME_MESSAGE_TIMEOU...
  function Ki (line 10) | function Ki(){return null}
  function e (line 10) | function e(t){r(this,e),this.tim=t,this.isWX=O,this.storageQueue=new Map...
  function o (line 10) | function o(){}
  function r (line 10) | function r(e,t,n){this.fn=e,this.context=t,this.once=n||!1}
  function i (line 10) | function i(e,t,o,i,s){if("function"!=typeof o)throw new TypeError("The l...
  function s (line 10) | function s(e,t){0==--e._eventsCount?e._events=new o:delete e._events[t]}
    method constructor (line 1) | constructor(e=null,t=console){const n=i(this);return n._events=new Set...
    method _addCallback (line 1) | _addCallback(e,t,n,o){return this._getCallbacks(e).push({callback:t,co...
    method _getCallbacks (line 1) | _getCallbacks(e){return i(this)._callbacks[e]}
    method _getCallbackIndex (line 1) | _getCallbackIndex(e,t){return this._has(e)?this._getCallbacks(e).findI...
    method _achieveMaxListener (line 1) | _achieveMaxListener(e){return null!==i(this)._maxListeners&&i(this)._m...
    method _callbackIsExists (line 1) | _callbackIsExists(e,t,n){const o=this._getCallbackIndex(e,t),r=-1!==o?...
    method _has (line 1) | _has(e){return i(this)._events.has(e)}
    method on (line 1) | on(e,t,n=null,o=1){const r=i(this);if("function"!=typeof t)throw new T...
    method once (line 1) | once(e,t,n=null,r=1){const i=(...r)=>(this.off(e,i),o.call(t,n,r));ret...
    method off (line 1) | off(e,t=null){const n=i(this);let o;return this._has(e)&&(null===t?(n....
    method emit (line 1) | emit(e,...t){return this._has(e)&&this._getCallbacks(e).forEach(e=>o.c...
    method clear (line 1) | clear(){const e=i(this);return e._events.clear(),e._callbacks={},this}
    method listenersNumber (line 1) | listenersNumber(e){return this._has(e)?this._getCallbacks(e).length:null}
  function a (line 10) | function a(){this._events=new o,this._eventsCount=0}
  function e (line 10) | function e(t){r(this,e),this.tim=t,this.tim.innerEmitter.on(Nt,this._upd...
  function n (line 10) | function n(e){var o;return r(this,n),(o=t.call(this,e))._initialization(...
  function n (line 10) | function n(e){var o;return r(this,n),(o=t.call(this,e)).COSSDK=null,o._c...
  function o (line 10) | function o(e){var n;return r(this,o),(n=t.call(this,e)).FILETYPE={SOUND:...
  function es (line 10) | function es(){try{var e="s"+ts();return wx.setStorageSync(Zi.prefix+"ssi...
  function ts (line 10) | function ts(e){for(var t=[0,1,2,3,4,5,6,7,8,9],n=10;1<n;n--){var o=Math....
  function ns (line 10) | function ns(){try{var e=getCurrentPages(),t="/";return 0<e.length&&(t=e....
  function os (line 10) | function os(){var e,t={dm:"wechat.apps.xx",url:encodeURIComponent(ns()+s...
  function rs (line 10) | function rs(){var e=function(){var e=wx.getSystemInfoSync();return{adt:e...
  function is (line 10) | function is(){var e,t=as.Data.userInfo,n=[];for(e in t)t.hasOwnProperty(...
  function ss (line 10) | function ss(e){if(!Zi.stat_param||!e)return"";e=function(e){if(1>Zi.igno...
  function e (line 10) | function e(){r(this,e),this.cache=[],this.MtaWX=null,this._init()}
  function n (line 10) | function n(e){var o;r(this,n),(o=t.call(this,e)).MTA=new cs;var i=o.tim....
  function e (line 10) | function e(t){r(this,e),this._table="timwebii",this._report=[]}
  function n (line 10) | function n(e){var o;return r(this,n),(o=t.call(this,e)).TAG="im-ssolog-e...
  function e (line 10) | function e(){r(this,e),this._networkType="",this.maxWaitTime=3e3}
  function e (line 10) | function e(t){var n=this;r(this,e),ee(t)?(this._map=new Map,t.forEach((f...
  function e (line 10) | function e(t){var n=this;r(this,e),ee(t)?(this._map=new Map,t.forEach((f...
  function n (line 10) | function n(e){var o;return r(this,n),(o=t.call(this,e)).TABLE="timwebsum...
  function e (line 10) | function e(){r(this,e),this._funcMap=new Map}
  function n (line 10) | function n(e){var o;return r(this,n),(o=t.call(this,e))._maybeLostSequen...
  function t (line 10) | function t(e){r(this,t);var n=new Bn;n.setMethod("sdkConstruct").setStar...
  function Es (line 10) | function Es(e,t){return!(!e.isReady()&&void 0===Cs[t]&&(e.innerEmitter.e...

FILE: packageStreamMedia/components/like-dz/like-dz.js
  method likeChange (line 25) | likeChange(newVal, oldVal) {
  method likeClick (line 31) | likeClick() {
  method getRandom (line 52) | getRandom(min, max) {
  method getRandomInt (line 56) | getRandomInt(min, max) {
  method generatePathData (line 60) | generatePathData() {
  method updatePath (line 82) | updatePath(data, factor) {
  method bubbleAnimate (line 107) | bubbleAnimate() {
  method ready (line 150) | ready() {
  method detached (line 155) | detached() {

FILE: packageStreamMedia/pages/live-anchor/index.js
  constant CONFIG (line 2) | const CONFIG = require('../../../config.js')
  constant WXAPI (line 3) | const WXAPI = require('apifm-wxapi')
  method showTips (line 34) | showTips(avatarurl, msg) {
  method setScrollTop (line 49) | setScrollTop() {
  method onLoad (line 71) | onLoad(options) {
  method toDetail (line 99) | async toDetail(e) {
  method preventDefault (line 132) | preventDefault() {
  method bindInput (line 136) | bindInput(e) {
  method onComment (line 145) | onComment() {
  method handleInteractionTap (line 161) | handleInteractionTap() {
  method navCart (line 177) | navCart() {
  method navPurchase (line 184) | async navPurchase(e) {
  method hideGoods (line 194) | hideGoods() {
  method hidePeoples (line 200) | hidePeoples() { //隐藏人员信息
  method hideSet (line 207) | hideSet() {
  method showPeoples (line 212) | async showPeoples() { //显示直播间人员
  method lahei (line 234) | lahei(e) { //拉黑用户
  method showGoods (line 255) | showGoods() {
  method onReady (line 267) | onReady(res) {
  method rotateTap (line 272) | rotateTap() {
  method backTap (line 283) | backTap() {
  method exit (line 287) | exit() {
  method onUnload (line 309) | onUnload() {
  method onShow (line 314) | onShow() { //进入页面链接
  method getUserInfo (line 329) | async getUserInfo() {
  method showBeautySelect (line 337) | showBeautySelect() {
  method select09 (line 342) | select09(e) {
  method myLiveRoomsInfo (line 349) | async myLiveRoomsInfo() {
  method bindstatechange (line 370) | bindstatechange(e) {
  method connectSocket (line 374) | connectSocket() {
  method initWebSocket (line 379) | initWebSocket() {
  method sendSocketMessage (line 420) | sendSocketMessage(msg) {
  method processSocketMessage (line 430) | processSocketMessage(res) {
  method getRandomFontColor (line 472) | getRandomFontColor() {

FILE: packageStreamMedia/pages/live-anchor/list.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method myLiveRooms (line 12) | async myLiveRooms() {
  method stop (line 22) | stop(e) {
  method _stop (line 33) | async _stop(e) {

FILE: packageStreamMedia/pages/live-client/client.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method showWarningOffAndExit (line 40) | showWarningOffAndExit() {
  method lahei (line 55) | lahei() {
  method showTips (line 69) | showTips(avatarurl, msg) {
  method setScrollTop (line 84) | setScrollTop() {
  method toDetail (line 126) | async toDetail(e) {
  method handleLikeClick (line 158) | async handleLikeClick() {
  method preventDefault (line 164) | preventDefault(e) {
  method getUserInfo (line 168) | getUserInfo() {
  method hideGoods (line 190) | hideGoods() {
  method showGoods (line 212) | showGoods() {
  method getGoodsList (line 223) | async getGoodsList() {
  method getLiveInfo (line 246) | async getLiveInfo() {
  method onComment (line 276) | onComment() {
  method bindInput (line 291) | bindInput(e) {
  method handleInteractionTap (line 297) | handleInteractionTap() {
  method followTap (line 326) | followTap() {
  method onReady (line 361) | onReady(res) {
  method statechange (line 364) | statechange(e) {
  method error (line 367) | error(e) {
  method onShow (line 370) | onShow() {//进入页面链接
  method backTap (line 373) | backTap() {
  method connectSocket (line 387) | connectSocket() {
  method initWebSocket (line 392) | initWebSocket() {
  method sendSocketMessage (line 433) | sendSocketMessage(msg) {
  method processSocketMessage (line 443) | processSocketMessage(res) {
  method getRandomFontColor (line 491) | getRandomFontColor() {

FILE: packageStreamMedia/pages/live-client/list.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method banners (line 54) | async banners() {
  method onShow (line 67) | onShow() {
  method bindChange (line 71) | bindChange(e) {
  method tapItem (line 81) | tapItem(e) {
  method toLive (line 123) | toLive(e) {
  method navDetail (line 138) | navDetail(e) {
  method onPullDownRefresh (line 155) | onPullDownRefresh() {
  method navTap (line 166) | navTap(e) {
  method queryLiveRoomInfo (line 188) | async queryLiveRoomInfo(){
  method getRandomNumber (line 213) | getRandomNumber() {
  method onReachBottom (line 218) | onReachBottom() {

FILE: packageStreamMedia/pages/videoCall/videoCall.js
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../../utils/auth')
  method initTrtc (line 147) | async initTrtc () {

FILE: pages/about/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method cmsPage (line 16) | async cmsPage() {
  method onShareTimeline (line 35) | onShareTimeline() {

FILE: pages/address-add/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method provinces (line 13) | async provinces(provinceId, cityId, districtId, streetId) {
  method provinceChange (line 36) | async provinceChange(e, cityId, districtId, streetId) {
  method cityChange (line 73) | async cityChange(e, districtId, streetId) {
  method areaChange (line 108) | async areaChange(e, streetId) {
  method streetChange (line 148) | async streetChange(e) {
  method bindSave (line 154) | async bindSave() {
  method onLoad (line 272) | async onLoad(e) {
  method initFromClipboard (line 304) | async initFromClipboard (str) {
  method readFromWx (line 341) | async readFromWx() {
  method chooseLocation (line 408) | chooseLocation() {

FILE: pages/asset/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 27) | onLoad(e) {
  method onShow (line 49) | onShow() {
  method onPullDownRefresh (line 51) | onPullDownRefresh() {
  method onReachBottom (line 56) | onReachBottom() {
  method initData (line 60) | async initData() {
  method fetchTabData (line 80) | fetchTabData(activeIndex){
  method cashLogs (line 91) | async cashLogs() {
  method withDrawlogs (line 121) | async withDrawlogs() {
  method depositlogs (line 149) | async depositlogs() {
  method cancelLogin (line 200) | cancelLogin(){
  method confirmTX (line 205) | async confirmTX(e) {
  method dateAddBeginChange (line 239) | dateAddBeginChange(e) {
  method dateAddEndChange (line 245) | dateAddEndChange(e) {
  method payStatusDepositV2 (line 251) | async payStatusDepositV2(e) {
  method depositBackApplyV2 (line 289) | async depositBackApplyV2(e) {

FILE: pages/card/logs.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method cardMyLogs (line 15) | async cardMyLogs(){
  method onReachBottom (line 53) | onReachBottom() {

FILE: pages/category/category.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  constant TOOLS (line 3) | const TOOLS = require('../../utils/tools.js') // TOOLS.showTabBarBadge();
  method categories (line 36) | async categories() {
  method getGoodsList (line 81) | async getGoodsList() {
  method onCategoryClick (line 132) | async onCategoryClick(e) {
  method onSecondCategoryClick (line 156) | onSecondCategoryClick(e) {
  method bindconfirm (line 169) | bindconfirm(e) {
  method onShareAppMessage (line 177) | onShareAppMessage() {
  method onShareTimeline (line 183) | onShareTimeline() {
  method onShow (line 190) | onShow() {
  method addShopCar (line 207) | async addShopCar(e) {
  method goodsGoBottom (line 265) | goodsGoBottom() {
  method adPositionClick (line 269) | adPositionClick(e) {
  method searchscan (line 277) | searchscan() {

FILE: pages/cms/list.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 6) | onLoad (options) {
  method cmsCategoryDetail (line 14) | async cmsCategoryDetail() {
  method articles (line 25) | async articles() {
  method onShareTimeline (line 49) | onShareTimeline() {

FILE: pages/coupons/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 10) | onLoad(e) {
  method onShow (line 13) | onShow() {
  method sysCoupons (line 42) | sysCoupons() { // 读取可领取券列表
  method getCounpon2 (line 62) | getCounpon2(){
  method getCounpon (line 80) | getCounpon(e) {
  method touse (line 217) | async touse(e) {
  method pwdCouponChange (line 259) | pwdCouponChange(e){
  method onPullDownRefresh (line 264) | onPullDownRefresh() {
  method closePwd (line 276) | closePwd() {
  method exchangeCoupons (line 281) | async exchangeCoupons() {
  method paymentOk (line 320) | paymentOk(e) {
  method paymentCancel (line 329) | paymentCancel() {

FILE: pages/coupons/merge.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method mergeCouponsRules (line 13) | async mergeCouponsRules() {
  method onPullDownRefresh (line 21) | onPullDownRefresh() {
  method merge (line 25) | async merge(e) {

FILE: pages/deposit/pay.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method bindSave (line 21) | async bindSave(e) {
  method paymentOk (line 67) | paymentOk(e) {
  method paymentCancel (line 76) | paymentCancel() {

FILE: pages/goods-details/day.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 9) | onLoad(options) {
  method onShow (line 15) | onShow() {
  method goodsPriceDaily (line 18) | async goodsPriceDaily() {
  method onSelect (line 32) | async onSelect(event) {
  method onConfirm (line 43) | async onConfirm(event) {
  method paymentOk (line 75) | paymentOk(e) {
  method paymentCancel (line 84) | paymentCancel() {

FILE: pages/goods-details/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant TOOLS (line 2) | const TOOLS = require('../../utils/tools.js')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  constant CONFIG (line 4) | const CONFIG = require('../../config.js')
  method bindscroll (line 25) | bindscroll(e) {
  method onLoad (line 50) | onLoad(e) {
  method readConfigVal (line 86) | readConfigVal() {
  method goodsAddition (line 124) | async goodsAddition() {
  method shippingCartInfo (line 133) | async shippingCartInfo() {
  method onShow (line 139) | onShow() {
  method getTopHeightFunction (line 158) | getTopHeightFunction() {
  method getTopHeight (line 166) | getTopHeight(viewId, index) {
  method goodsFavCheck (line 180) | async goodsFavCheck() {
  method addFav (line 192) | async addFav() {
  method getGoodsDetailAndKanjieInfo (line 213) | async getGoodsDetailAndKanjieInfo(goodsId) {
  method shopSubdetail (line 280) | async shopSubdetail(shopId) {
  method stepChange (line 340) | stepChange(event) {
  method checkHasSkuItems (line 346) | checkHasSkuItems(sk) {
  method labelItemTap (line 361) | async labelItemTap(e) {
  method calculateGoodsPrice (line 440) | async calculateGoodsPrice() {
  method labelItemTap2 (line 489) | async labelItemTap2(e) {
  method addShopCar (line 521) | async addShopCar() {
  method buyNow (line 606) | async buyNow(e) {
  method onShareAppMessage (line 753) | onShareAppMessage() {
  method onShareTimeline (line 770) | onShareTimeline() {
  method joinKanjia (line 835) | joinKanjia() {
  method goIndex (line 873) | goIndex() {
  method helpKanjia (line 878) | helpKanjia() {
  method helpKanjiaDone (line 886) | helpKanjiaDone() {
  method closePop (line 907) | closePop() {
  method drawSharePic (line 912) | async drawSharePic() {
  method drawSharePicDone (line 946) | drawSharePicDone(picHeight, qrcode) {
  method onPosterSuccess (line 1010) | onPosterSuccess(e) {
  method onPosterFail (line 1017) | onPosterFail(e) {
  method savePosterPic (line 1020) | savePosterPic() {
  method previewImage (line 1079) | previewImage(e) {
  method previewImage2 (line 1086) | previewImage2(e) {
  method onTabsChange (line 1097) | onTabsChange(e) {
  method backToHome (line 1109) | backToHome() {
  method customerService (line 1114) | customerService() {

FILE: pages/goods-details/times01.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 8) | onLoad(options) {
  method onShow (line 14) | onShow() {
  method goodsTimesDays (line 17) | async goodsTimesDays() {
  method onConfirm (line 32) | async onConfirm(event) {

FILE: pages/goods-details/times02.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 9) | onLoad(options) {
  method onShow (line 16) | onShow() {
  method goodsTimesDayItems (line 19) | async goodsTimesDayItems() {
  method submit (line 33) | async submit(event) {
  method paymentOk (line 65) | paymentOk(e) {
  method paymentCancel (line 74) | paymentCancel() {

FILE: pages/goods-details/vop.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant TOOLS (line 2) | const TOOLS = require('../../utils/tools.js')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  constant CONFIG (line 4) | const CONFIG = require('../../config.js')
  method bindscroll (line 34) | bindscroll(e) {
  method onLoad (line 51) | onLoad(e) {
  method initShippingAddress (line 98) | async initShippingAddress() {
  method shippingCartInfo (line 116) | async shippingCartInfo(){
  method checkCanBuy (line 122) | async checkCanBuy(){
  method onShow (line 147) | onShow (){
  method getTopHeightFunction (line 161) | getTopHeightFunction() {
  method getTopHeight (line 169) | getTopHeight(viewId, index) {
  method goodsFavCheck (line 184) | async goodsFavCheck() {
  method addFav (line 196) | async addFav(){
  method getGoodsDetailAndKanjieInfo (line 224) | async getGoodsDetailAndKanjieInfo(goodsId) {
  method skuImages (line 245) | async skuImages(goodsId) {
  method shopSubdetail (line 253) | async shopSubdetail(shopId){
  method stepChange (line 310) | stepChange(event) {
  method labelItemTap (line 318) | async labelItemTap(e) {
  method calculateGoodsPrice (line 368) | async calculateGoodsPrice() {
  method labelItemTap2 (line 417) | async labelItemTap2(e) {
  method addShopCar (line 449) | async addShopCar() {
  method buyNow (line 482) | buyNow(e) {
  method onShareAppMessage (line 523) | onShareAppMessage() {
  method onShareTimeline (line 535) | onShareTimeline() {
  method joinKanjia (line 586) | joinKanjia(){
  method goIndex (line 620) | goIndex() {
  method helpKanjia (line 625) | helpKanjia() {
  method helpKanjiaDone (line 628) | helpKanjiaDone(){
  method closePop (line 649) | closePop(){
  method drawSharePic (line 654) | async drawSharePic() {
  method drawSharePicDone (line 687) | drawSharePicDone(picHeight, qrcode) {
  method onPosterSuccess (line 755) | onPosterSuccess(e) {
  method onPosterFail (line 762) | onPosterFail(e) {
  method savePosterPic (line 765) | savePosterPic() {
  method previewImage (line 819) | previewImage(e) {
  method onTabsChange (line 826) | onTabsChange(e) {
  method backToHome (line 838) | backToHome() {
  method customerService (line 843) | customerService() {

FILE: pages/goods/fav.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method goodsFavList (line 20) | async goodsFavList() {
  method removeFav (line 47) | async removeFav(e){

FILE: pages/goods/his.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method readConfigVal (line 35) | readConfigVal() {
  method search2 (line 37) | search2(e) {
  method search3 (line 42) | search3() {
  method search (line 47) | async search(){
  method onReachBottom (line 80) | onReachBottom() {
  method categories (line 86) | async categories() {
  method categoryChange (line 101) | categoryChange(e) {
  method dayChange (line 109) | dayChange(e) {

FILE: pages/goods/list-vop.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method search (line 40) | async search(){
  method changeShowType (line 119) | changeShowType(){
  method bindinput (line 130) | bindinput(e){
  method bindconfirm (line 135) | bindconfirm(e){
  method filter (line 142) | filter(e){
  method addShopCar (line 149) | async addShopCar(e) {
  method addShopCarCheck (line 169) | async addShopCarCheck(options) {
  method addShopCarDone (line 172) | async addShopCarDone(options) {
  method storesJia (line 206) | storesJia() {
  method storesJian (line 215) | storesJian() {
  method closeSku (line 224) | closeSku() {
  method skuSelect (line 230) | skuSelect(e) {
  method addCarSku (line 247) | addCarSku() {

FILE: pages/goods/list.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant TOOLS (line 2) | const TOOLS = require('../../utils/tools.js') // TOOLS.showTabBarBadge();
  method readConfigVal (line 33) | readConfigVal() {
  method search (line 45) | async search(){
  method onReachBottom (line 85) | onReachBottom() {
  method changeShowType (line 91) | changeShowType(){
  method bindinput (line 102) | bindinput(e){
  method bindconfirm (line 107) | bindconfirm(e){
  method filter (line 114) | filter(e){
  method addShopCar (line 121) | async addShopCar(e) {

FILE: pages/help/detail.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method fetchDetail (line 14) | async fetchDetail() {
  method onShareTimeline (line 33) | onShareTimeline() {

FILE: pages/help/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method category (line 12) | async category() {
  method articles (line 26) | async articles(categoryId) {
  method categoryChange (line 44) | categoryChange(e) {
  method onShareTimeline (line 57) | onShareTimeline() {

FILE: pages/idCheck/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method submit (line 12) | async submit() {

FILE: pages/index/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant TOOLS (line 2) | const TOOLS = require('../../utils/tools.js')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  constant APP (line 4) | const APP = getApp()
  method tabClick (line 21) | tabClick(e) {
  method tabClickCms (line 37) | tabClickCms(e) {
  method tapBanner (line 71) | tapBanner(e) {
  method readConfigVal (line 148) | readConfigVal() {
  method miaoshaGoods (line 170) | async miaoshaGoods(){
  method initBanners (line 190) | async initBanners(){
  method goodsDynamicV2 (line 227) | async goodsDynamicV2(){
  method categories (line 237) | async categories(){
  method getGoodsList (line 252) | async getGoodsList(categoryId, append) {
  method onShareTimeline (line 309) | onShareTimeline() {
  method kanjiaGoods (line 340) | async kanjiaGoods(){
  method pingtuanGoods (line 372) | pingtuanGoods(){ // 获取团购商品列表
  method goSearch (line 385) | goSearch(){
  method goNotice (line 390) | goNotice(e) {
  method adPosition (line 396) | async adPosition() {
  method clickAdPositionIndexLive (line 410) | clickAdPositionIndexLive() {
  method closeAdPositionIndexPop (line 418) | closeAdPositionIndexPop() {
  method clickAdPositionIndexPop (line 423) | clickAdPositionIndexPop() {
  method cmsCategories (line 435) | async cmsCategories() {

FILE: pages/invoice/apply.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 14) | onLoad(e) {
  method onShow (line 22) | onShow() {
  method chooseInvoiceTitle (line 24) | chooseInvoiceTitle(){
  method onShareAppMessage (line 44) | onShareAppMessage() {
  method onShareTimeline (line 51) | onShareTimeline() {
  method bindSave (line 58) | async bindSave() {
  method _bindSave (line 77) | async _bindSave() {

FILE: pages/invoice/list.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method invoiceList (line 29) | async invoiceList() {
  method download (line 48) | download(e) {

FILE: pages/live/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant APP (line 2) | const APP = getApp()
  method wxaMpLiveRooms (line 46) | async wxaMpLiveRooms(){
  method goLiveRoom (line 73) | goLiveRoom(e) {
  method shouldUseFingerprintEmoji (line 84) | shouldUseFingerprintEmoji() {

FILE: pages/login/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 7) | onLoad(options) {
  method onShow (line 9) | onShow() {
  method xieyiChange (line 12) | xieyiChange(e) {
  method goxieyi (line 17) | goxieyi(e) {
  method showModal2 (line 22) | showModal2() {
  method showModal (line 37) | showModal(action) {
  method loginOne (line 55) | async loginOne() {
  method getPhoneNumber (line 77) | async getPhoneNumber(e) {
  method _getPhoneNumber (line 110) | async _getPhoneNumber(e) {

FILE: pages/maidan/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 7) | onLoad(e) {
  method onShow (line 15) | onShow () {
  method readConfigVal (line 24) | readConfigVal() {
  method payBillDiscounts (line 30) | async payBillDiscounts() {
  method userAmount (line 38) | async userAmount() {
  method bindSave (line 46) | async bindSave() {
  method goPay (line 102) | async goPay(amount, wxpayAmount){
  method payTypeChange (line 133) | payTypeChange(event) {
  method payTypeClick (line 138) | payTypeClick(event) {
  method bindMobileOk (line 144) | bindMobileOk(e) {
  method bindMobileCancel (line 150) | bindMobileCancel() {
  method paymentOk (line 155) | paymentOk(e) {
  method paymentCancel (line 164) | paymentCancel() {

FILE: pages/my/feedback.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method checkTodayComments (line 21) | async checkTodayComments() {
  method bindSave (line 33) | async bindSave() {
  method _bindSave (line 52) | async _bindSave() {
  method afterPicRead (line 122) | afterPicRead(e) {
  method afterPicDel (line 132) | afterPicDel(e) {

FILE: pages/my/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  constant TOOLS (line 3) | const TOOLS = require('../../utils/tools.js')
  constant CONFIG (line 4) | const CONFIG = require('../../config.js')
  method onLoad (line 31) | onLoad() {
  method onShow (line 38) | onShow() {
  method readConfigVal (line 57) | readConfigVal() {
  method getUserApiInfo (line 71) | async getUserApiInfo() {
  method memberCheckedChange (line 91) | async memberCheckedChange() {
  method scanOrderCode (line 151) | scanOrderCode(){
  method gogrowth (line 174) | gogrowth() {
  method cardMyList (line 179) | async cardMyList() {
  method editNick (line 190) | editNick() {
  method _editNick (line 195) | async _editNick() {
  method onChooseAvatar (line 222) | async onChooseAvatar(e) {
  method goUserCode (line 250) | goUserCode() {
  method customerService (line 255) | customerService() {
  method copyUid (line 265) | copyUid() {
  method login (line 270) | login() {
  method hideNickModal (line 275) | hideNickModal() {
  method toggleCards (line 280) | toggleCards() {

FILE: pages/my/info-menu.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method getUserApiInfo (line 13) | async getUserApiInfo() {
  method bindMobile (line 32) | bindMobile() {
  method bindMobileOk (line 37) | bindMobileOk(e) {
  method bindMobileCancel (line 44) | bindMobileCancel() {

FILE: pages/my/info.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 11) | onLoad(e) {
  method onShow (line 14) | onShow() {
  method bindMobile (line 16) | bindMobile() {
  method bindMobileOk (line 21) | bindMobileOk(e) {
  method bindMobileCancel (line 28) | bindMobileCancel() {
  method getUserApiInfo (line 33) | async getUserApiInfo() {
  method formSubmit (line 53) | async formSubmit() {
  method onChooseAvatar (line 84) | async onChooseAvatar(e) {

FILE: pages/my/setting.js
  constant CONFIG (line 1) | const CONFIG = require('../../config.js')
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  method getUserApiInfo (line 16) | async getUserApiInfo() {
  method clearStorage (line 35) | clearStorage(){
  method setEnableDebug (line 42) | setEnableDebug() {
  method openSetting (line 54) | openSetting() {
  method loginOut (line 59) | loginOut() {

FILE: pages/my/user-code.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 12) | onLoad(e) {
  method getUserAmount (line 18) | async getUserAmount() {
  method dynamicUserCode (line 29) | async dynamicUserCode() {
  method onPullDownRefresh (line 39) | onPullDownRefresh() {

FILE: pages/notice/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')

FILE: pages/notice/show.js
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method onShareAppMessage (line 17) | onShareAppMessage() {
  method onShareTimeline (line 19) | onShareTimeline() {
  method subscribe (line 26) | subscribe() {

FILE: pages/order-details/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onShow (line 19) | onShow() {
  method payLogs (line 22) | async payLogs() {
  method orderDetail (line 57) | async orderDetail() {
  method submitReputation (line 133) | async submitReputation(e) {
  method afterPicRead (line 183) | afterPicRead(e) {
  method afterPicDel (line 197) | afterPicDel(e) {
  method wxaQrcode (line 205) | async wxaQrcode(hxNumber) {
  method _shopIotDevices (line 228) | async _shopIotDevices() {
  method shopIotCmds (line 240) | async shopIotCmds(e) {
  method cmdClose (line 260) | cmdClose() {
  method cmdSelect (line 264) | async cmdSelect(event) {

FILE: pages/order-details/scan-result.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onShow (line 31) | onShow() {
  method orderDetail (line 33) | async orderDetail() {
  method doneHx (line 76) | async doneHx(){

FILE: pages/order-list/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method refundApply (line 61) | async refundApply (e) {
  method wxSphGetpaymentparams (line 135) | async wxSphGetpaymentparams(e) {
  method getOrderStatistics (line 214) | getOrderStatistics() {
  method onReachBottom (line 236) | onReachBottom() {
  method orderList (line 242) | async orderList(){
  method paymentOk (line 291) | paymentOk(e) {
  method paymentCancel (line 300) | paymentCancel() {
  method goOrderDetail (line 305) | goOrderDetail(e) {

FILE: pages/order/refundApply.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant CONFIG (line 2) | const CONFIG = require('../../config.js')
  method onShow (line 58) | onShow(){
  method orderDetail (line 60) | async orderDetail() {
  method refundApplyCancel (line 94) | async refundApplyCancel(){
  method typeChange (line 113) | typeChange(event) {
  method typeClick (line 118) | typeClick(event) {
  method logisticsStatusChange (line 124) | logisticsStatusChange(event) {
  method logisticsStatusClick (line 129) | logisticsStatusClick(event) {
  method reasonChange (line 135) | reasonChange(event) {
  method reasonClick (line 140) | reasonClick(event) {
  method afterPicRead (line 151) | afterPicRead(e) {
  method afterPicDel (line 161) | afterPicDel(e) {
  method bindSave (line 175) | async bindSave () {
  method goodsClick (line 232) | goodsClick(e) {
  method numberChange (line 244) | numberChange(e) {
  method refundDetail (line 256) | refundDetail(e) {
  method popClose (line 276) | popClose() {
  method previewImageimageList (line 281) | previewImageimageList(e) {
  method customerService (line 288) | customerService() {
  method showLogisticsDialog (line 299) | showLogisticsDialog() {
  method closeLogisticsDialog (line 307) | closeLogisticsDialog() {
  method submitLogistics (line 315) | async submitLogistics() {

FILE: pages/peisong/detail.js
  constant CONFIG (line 2) | const CONFIG = require('../../config.js')
  constant WXAPI (line 3) | const WXAPI = require('apifm-wxapi')
  method peisongOrderDetail (line 23) | async peisongOrderDetail() {
  method peisongMemberInfo (line 31) | async peisongMemberInfo() {
  method peisongMembers (line 42) | async peisongMembers() {
  method afterRead (line 127) | afterRead(event) {
  method deletePic (line 140) | deletePic(event) {
  method startService (line 147) | async startService() {
  method endService (line 174) | async endService() {
  method previewImage (line 205) | previewImage(e) {
  method paidan (line 228) | async paidan() {
  method callMobile (line 253) | callMobile() {
  method callMobile2 (line 258) | callMobile2() {
  method goMap (line 263) | goMap() {
  method estimatedCompletionTimeChange (line 273) | estimatedCompletionTimeChange(value) {
  method estimatedCompletionTime (line 276) | async estimatedCompletionTime(){
  method peisongOrderGrab (line 303) | async peisongOrderGrab(){

FILE: pages/peisong/orders.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant APP (line 2) | const APP = getApp()
  method onUnload (line 42) | onUnload() {
  method orders (line 47) | async orders() {
  method peisongOrdersGrabbing (line 87) | async peisongOrdersGrabbing() {
  method tabClick (line 117) | tabClick(e) {

FILE: pages/peisong/statistics.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 12) | onLoad(options) {
  method onShow (line 20) | onShow() {
  method onReachBottom (line 23) | onReachBottom() {
  method tabClick (line 27) | tabClick(e) {
  method peisongMemberStatistics (line 34) | async peisongMemberStatistics() {

FILE: pages/pwd-pay/modify.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method submit (line 13) | async submit() {

FILE: pages/pwd-pay/reset.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method getUserApiInfo (line 13) | async getUserApiInfo() {
  method sendSms (line 25) | async sendSms() {
  method countDown (line 47) | countDown() {
  method submit (line 62) | async submit() {
  method bindMobile (line 119) | bindMobile() {
  method bindMobileOk (line 124) | bindMobileOk(e) {
  method bindMobileCancel (line 131) | bindMobileCancel() {

FILE: pages/pwd-pay/set.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method submit (line 13) | async submit() {

FILE: pages/raffle/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi');
  method onLoad (line 17) | onLoad(e) {
  method onShow (line 22) | onShow() {}
  method onShareAppMessage (line 23) | onShareAppMessage() {
  method luckyInfo (line 26) | async luckyInfo() {
  method loadAnimation (line 67) | loadAnimation() {
  method getLuckyInfoJoin (line 86) | async getLuckyInfoJoin() { // 点击抽奖
  method clickLuck (line 123) | clickLuck() {
  method stop (line 158) | stop(which) {
  method stopLuck (line 181) | stopLuck(which, index, time, splittime) {

FILE: pages/recharge/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant CONFIG (line 2) | const CONFIG = require('../../config.js')
  method onLoad (line 7) | onLoad(e) {
  method readConfigVal (line 18) | readConfigVal() {
  method rechargeSendRules (line 28) | async rechargeSendRules() {
  method rechargeAmount (line 39) | async rechargeAmount(e) {
  method bindSave (line 58) | async bindSave() {
  method bindMobileOk (line 92) | bindMobileOk(e) {
  method bindMobileCancel (line 98) | bindMobileCancel() {
  method paymentOk (line 103) | paymentOk(e) {
  method paymentCancel (line 112) | paymentCancel() {

FILE: pages/recycle/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 9) | onLoad(e) {
  method onShow (line 34) | onShow() {
  method initData (line 37) | async initData() {
  method fetchShops (line 46) | async fetchShops(){
  method cpsJdOrderDetail (line 66) | async cpsJdOrderDetail() {
  method cpsPddOrderDetail (line 112) | async cpsPddOrderDetail() {
  method logisticsTypeChange (line 158) | logisticsTypeChange(e) {
  method logisticsTypeClick (line 163) | logisticsTypeClick(e) {
  method shopSelect (line 168) | shopSelect(e) {
  method callMobile (line 173) | callMobile() {
  method goMap (line 179) | goMap() {
  method submit (line 189) | async submit() {

FILE: pages/recycle/order-detail.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 10) | onLoad(e) {
  method onShow (line 15) | onShow() {
  method recycleOrderDetail (line 18) | async recycleOrderDetail() {
  method shopSubdetail (line 48) | async shopSubdetail(shopId) {
  method callMobile (line 56) | callMobile() {
  method goMap (line 61) | goMap() {
  method fahuo (line 71) | fahuo() {
  method popupClose (line 76) | popupClose() {
  method trackingNumberScan (line 81) | trackingNumberScan() {
  method submit (line 90) | async submit() {

FILE: pages/recycle/orders.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 7) | onLoad(e) {
  method onShow (line 10) | onShow() {
  method recycleOrders (line 13) | async recycleOrders() {
  method onPullDownRefresh (line 27) | onPullDownRefresh() {
  method detail (line 31) | detail(e) {
  method recycleOrderClose (line 37) | async recycleOrderClose(e) {
  method _recycleOrderClose (line 48) | async _recycleOrderClose(e) {
  method recycleOrderDelete (line 63) | async recycleOrderDelete(e) {
  method _recycleOrderDelete (line 74) | async _recycleOrderDelete(e) {

FILE: pages/score-excharge/growth.js
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  method initData (line 32) | async initData(){
  method bindSave (line 49) | async bindSave() {

FILE: pages/score-excharge/index.js
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  method bindSave (line 21) | bindSave(e) {

FILE: pages/score/growth.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 17) | onLoad(e) {
  method onReachBottom (line 32) | onReachBottom() {
  method userAmountV2 (line 36) | async userAmountV2() {
  method growthLogsV2 (line 45) | async growthLogsV2() {

FILE: pages/score/index.js
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  method initData (line 34) | initData() {
  method sign (line 76) | sign() {
  method exchange (line 81) | exchange() {

FILE: pages/search/index.js
  method search (line 15) | search(e) {
  method onClose (line 36) | onClose(e) {
  method go (line 45) | go(e) {
  method go2 (line 52) | go2(e) {
  method searchscan (line 59) | searchscan() {

FILE: pages/select-address/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 35) | onLoad() {
  method initShippingAddress (line 41) | async initShippingAddress() {
  method onPullDownRefresh (line 66) | onPullDownRefresh() {
  method deleteAddress (line 71) | deleteAddress(e) {

FILE: pages/shop-cart/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant TOOLS (line 2) | const TOOLS = require('../../utils/tools.js')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  method shippingCarInfo (line 45) | async shippingCarInfo() {
  method delItem (line 122) | async delItem(e) {
  method delItemDone (line 126) | async delItemDone(key) {
  method jiaBtnTap (line 144) | async jiaBtnTap(e) {
  method jianBtnTap (line 157) | async jianBtnTap(e) {
  method changeCarNumber (line 184) | changeCarNumber(e) {
  method radioClick (line 198) | async radioClick(e) {
  method onChange (line 212) | onChange(event) {
  method goDetail (line 218) | goDetail(e) {

FILE: pages/shop/select.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  constant APP (line 3) | const APP = getApp()
  method fail (line 39) | fail(e){
  method fetchShops (line 45) | async fetchShops(latitude, longitude, kw){
  method searchChange (line 91) | searchChange(event){
  method search (line 96) | search(event){
  method goShop (line 103) | goShop(e){

FILE: pages/sign/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method formatter (line 8) | formatter(day) {
  method scoreSignLogs (line 24) | async scoreSignLogs() {
  method sign (line 53) | async sign() {
  method shouldUseFingerprintEmoji (line 77) | shouldUseFingerprintEmoji() {

FILE: pages/start/start.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant CONFIG (line 2) | const CONFIG = require('../../config.js')
  method onLoad (line 8) | onLoad(e){
  method readConfigVal (line 20) | async readConfigVal() {
  method goLeft (line 68) | goLeft() {
  method goRight (line 79) | goRight() {
  method goShopSelectPage (line 114) | async goShopSelectPage() {

FILE: pages/test/wifi.js
  method onLoad (line 5) | onLoad(options) {
  method onShow (line 7) | onShow() {

FILE: pages/to-pay-order/index.js
  constant CONFIG (line 1) | const CONFIG = require('../../config.js')
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  method onShow (line 94) | onShow() {
  method doneShow (line 100) | async doneShow() {
  method onLoad (line 170) | onLoad(e) {
  method userAmount (line 194) | async userAmount() {
  method remarkChange (line 213) | remarkChange(e) {
  method goCreateOrder (line 216) | async goCreateOrder() {
  method createOrder (line 251) | async createOrder(e) {
  method processAfterCreateOrder (line 621) | async processAfterCreateOrder(res) {
  method initShippingAddress (line 726) | async initShippingAddress() {
  method processYunfei (line 739) | processYunfei() {
  method radioChange (line 826) | radioChange(e) {
  method dyChange (line 835) | dyChange(e) {
  method dyunitChange (line 840) | dyunitChange(e) {
  method cancelLogin (line 845) | cancelLogin() {
  method fetchShops (line 848) | async fetchShops() {
  method shopSelect (line 864) | shopSelect(e) {
  method goMap (line 869) | goMap() {
  method callMobile (line 880) | callMobile() {
  method getUserApiInfo (line 886) | async getUserApiInfo() {
  method bindMobile (line 900) | bindMobile() {
  method bindMobileOk (line 905) | bindMobileOk(e) {
  method bindMobileCancel (line 913) | bindMobileCancel() {
  method deductionScoreChange (line 918) | deductionScoreChange(event) {
  method deductionScoreClick (line 924) | deductionScoreClick(event) {
  method cardChange (line 933) | cardChange(event) {
  method cardClick (line 939) | cardClick(event) {
  method dateStartclick (line 948) | dateStartclick(e) {
  method dateStartconfirm (line 953) | dateStartconfirm(e) {
  method dateStartcancel (line 961) | dateStartcancel(e) {
  method cardMyList (line 966) | async cardMyList() {
  method paymentOk (line 977) | paymentOk(e) {
  method paymentCancel (line 986) | paymentCancel() {
  method extRequiredChange (line 991) | extRequiredChange(e) {
  method showCouponPicker (line 1004) | showCouponPicker() {
  method closeCouponPicker (line 1011) | closeCouponPicker() {
  method selectCoupon (line 1018) | selectCoupon(e) {
  method selectNoCoupon (line 1030) | selectNoCoupon() {
  method showCouponPickerShop (line 1040) | showCouponPickerShop(e) {
  method closeCouponPickerShop (line 1054) | closeCouponPickerShop() {
  method selectCouponShop (line 1061) | selectCouponShop(e) {
  method selectNoCouponShop (line 1080) | selectNoCouponShop() {
  method showExchangeCoupon (line 1097) | showExchangeCoupon() {
  method closeExchangeCoupon (line 1106) | closeExchangeCoupon() {
  method confirmExchangeCoupon (line 1113) | async confirmExchangeCoupon() {

FILE: pages/vip/detail.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 19) | onLoad(options) {
  method loadData (line 26) | async loadData() {
  method getLevelDetail (line 36) | async getLevelDetail() {
  method getPriceList (line 63) | async getPriceList() {
  method getUserBalance (line 80) | async getUserBalance() {
  method selectPrice (line 89) | selectPrice(e) {
  method handleBuy (line 96) | async handleBuy() {
  method buyWithBalance (line 117) | buyWithBalance() {
  method buyWithOnlinePay (line 148) | buyWithOnlinePay(price, balance) {
  method showSuccessModal (line 172) | showSuccessModal() {
  method handleSuccessConfirm (line 195) | handleSuccessConfirm() {
  method paymentOk (line 202) | paymentOk(e) {
  method paymentCancel (line 210) | paymentCancel() {

FILE: pages/vip/history.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 15) | onLoad(options) {
  method loadData (line 19) | async loadData() {
  method loadLevelList (line 29) | async loadLevelList() {
  method loadRecords (line 41) | async loadRecords() {
  method loadMore (line 76) | loadMore() {
  method onPullDownRefresh (line 85) | onPullDownRefresh() {
  method onReachBottom (line 93) | onReachBottom() {

FILE: pages/vip/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method onLoad (line 11) | onLoad(options) {
  method onShow (line 15) | onShow() {
  method loadData (line 25) | async loadData() {
  method getUserLevel (line 34) | async getUserLevel() {
  method getLevelList (line 43) | async getLevelList() {
  method goLevelDetail (line 55) | goLevelDetail(e) {
  method goBuyHistory (line 62) | goBuyHistory() {
  method onPullDownRefresh (line 68) | onPullDownRefresh() {

FILE: pages/withdraw/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method userAmount (line 30) | async userAmount() {
  method bindSave (line 38) | async bindSave() {

FILE: pages/wuliu/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method orderDetail (line 12) | async orderDetail() {

FILE: typings/wx.d.ts
  type IAnimation (line 11) | interface IAnimation {
  type ICanvasContext (line 126) | interface ICanvasContext {
  type IAudioContext (line 261) | interface IAudioContext {
  type IVideoContext (line 276) | interface IVideoContext {
  type IMapContext (line 295) | interface IMapContext {
  type Application (line 319) | interface Application {
  type AppConstructor (line 323) | interface AppConstructor {
  type Page (line 348) | interface Page {
  type PageConstructor (line 352) | interface PageConstructor {

FILE: utils/address_parse.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  function smart (line 10) | async function smart(event) {
  function smatrAddress (line 34) | async function smatrAddress(event) {
  function stripscript (line 306) | function stripscript(s) {
  function IdentityCodeValid (line 321) | function IdentityCodeValid(code) {

FILE: utils/auth.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant CONFIG (line 2) | const CONFIG = require('../config.js')
  function checkSession (line 3) | async function checkSession(){
  function bindSeller (line 16) | async function bindSeller() {
  function checkHasLogined (line 32) | async function checkHasLogined() {
  function wxaCode (line 50) | async function wxaCode(){
  function login (line 67) | async function login(page){
  function authorize (line 127) | async function authorize() {
  function login20241025 (line 190) | async function login20241025() {
  function loginOut (line 242) | function loginOut(){
  function checkAndAuthorize (line 249) | async function checkAndAuthorize (scope) {

FILE: utils/image.js
  function imageUtil (line 1) | function imageUtil (originalWidth, originalHeight) {

FILE: utils/pay.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  function wxpay (line 7) | function wxpay(type, money, orderId, redirectUrl, data, content) {

FILE: utils/tools.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  function showTabBarBadge (line 4) | async function showTabBarBadge(noTabBarPage){
Condensed preview — 911 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,589K chars).
[
  {
    "path": ".gitignore",
    "chars": 47,
    "preview": "dist/\npackage-lock.json\nnode_modules/\n.DS_Store"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 3996,
    "preview": "# 微信小程序商城\n\n微信小程序商城,微信小程序微店,长期维护版本,欢迎大家踊跃提交贡献代码;\n\n使用说明和常见问题,可参阅下面的说明,如还有疑问,可访问工厂官网 [https://www.it120.cc/](https://www.it"
  },
  {
    "path": "app.js",
    "chars": 6198,
    "preview": "const WXAPI = require('apifm-wxapi')\nconst CONFIG = require('config.js')\nconst AUTH = require('utils/auth')\nApp({\n  onLa"
  },
  {
    "path": "app.json",
    "chars": 6695,
    "preview": "{\n  \"pages\": [\n    \"pages/start/start\",\n    \"pages/test/wifi\",\n    \"pages/shop/select\",\n    \"pages/index/index\",\n    \"pa"
  },
  {
    "path": "app.wxss",
    "chars": 1586,
    "preview": "@import \"/miniprogram_npm/@vant/weapp/common/index.wxss\";\n\n.container {\n  display: flex;\n  flex-direction: column;\n  ali"
  },
  {
    "path": "components/bind-mobile/index.js",
    "chars": 2255,
    "preview": "const WXAPI = require('apifm-wxapi')\nconst AUTH = require('../../utils/auth')\nComponent({\n  options: {\n    addGlobalClas"
  },
  {
    "path": "components/bind-mobile/index.json",
    "chars": 56,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \n  }\n}"
  },
  {
    "path": "components/bind-mobile/index.wxml",
    "chars": 464,
    "preview": "<van-popup\n  show=\"{{ show }}\"\n  position=\"bottom\"\n  round\n  closeable\n  bind:close=\"close\"\n>\n  <view class=\"pop-main\">\n"
  },
  {
    "path": "components/bind-mobile/index.wxss",
    "chars": 138,
    "preview": ".pop-main {\n  display: flex;\n  flex-direction: column;\n}\n.title {\n  padding: 32rpx;\n  text-align: center;\n}\n.btn-box {\n "
  },
  {
    "path": "components/bind-mobile/sn.txt",
    "chars": 430,
    "preview": "app.json usingComponents 加上\n\"bind-mobile\": \"/components/bind-mobile/index\",\n\n\n在需要的页面上加这句代码即可\n<bind-mobile\n  title=\"绑定手机号"
  },
  {
    "path": "components/date-time-selecter/index.js",
    "chars": 2379,
    "preview": "const dayjs = require(\"dayjs\")\nconst weekStr = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']\nComponent({\n  options: {\n    a"
  },
  {
    "path": "components/date-time-selecter/index.json",
    "chars": 56,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \n  }\n}"
  },
  {
    "path": "components/date-time-selecter/index.wxml",
    "chars": 1312,
    "preview": "<van-popup\n  show=\"{{ show }}\"\n  position=\"bottom\"\n  round\n  closeable\n  bind:close=\"closeSku\"\n>\n  <view class=\"pop-main"
  },
  {
    "path": "components/date-time-selecter/index.wxss",
    "chars": 418,
    "preview": ".pop-main {\n  height: 80vh;\n  display: flex;\n  flex-direction: column;\n}\n.title {\n  padding: 32rpx;\n  text-align: center"
  },
  {
    "path": "components/date-time-selecter/sn.txt",
    "chars": 450,
    "preview": "app.json usingComponents 加上\n\"date-time-selecter\": \"/components/date-time-selecter/index\",\n\n\n在需要的页面上加这句代码即可\n<date-time-se"
  },
  {
    "path": "components/fuwuxieyi/index.js",
    "chars": 1311,
    "preview": "const App = getApp();\n\nComponent({\n  options: {\n    addGlobalClass: true,\n  },\n  /**\n   * 组件的对外属性,是属性名到属性设置的映射表\n   */\n  "
  },
  {
    "path": "components/fuwuxieyi/index.json",
    "chars": 56,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \n  }\n}"
  },
  {
    "path": "components/fuwuxieyi/index.wxml",
    "chars": 820,
    "preview": "<van-popup show=\"{{ s }}\" custom-class=\"btn-add-box-popup\" round close-on-click-overlay=\"{{ false }}\">\n  <view class=\"t\""
  },
  {
    "path": "components/fuwuxieyi/index.wxss",
    "chars": 479,
    "preview": ".btn-add-box-popup .t {\n  font-size: 36rpx;\n  text-align: center;\n  height: 88rpx;\n  line-height: 88rpx;\n  font-weight: "
  },
  {
    "path": "components/fuwuxieyi/sn.txt",
    "chars": 74,
    "preview": "在需要的页面上加这句代码即可\n<fuwuxieyi k=\"invoice_apply\" />\nk 为页面唯一编号,随便命名即可\n不传k,每次都会弹出"
  },
  {
    "path": "components/goods-pop/index.js",
    "chars": 9771,
    "preview": "const WXAPI = require('apifm-wxapi')\nconst AUTH = require('../../utils/auth')\nconst TOOLS = require('../../utils/tools.j"
  },
  {
    "path": "components/goods-pop/index.json",
    "chars": 56,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \n  }\n}"
  },
  {
    "path": "components/goods-pop/index.wxml",
    "chars": 1564,
    "preview": "<van-popup\n  show=\"{{ skuCurGoodsShow }}\"\n  position=\"bottom\"\n  round\n  custom-style=\"padding-top:32rpx;max-height: 80%;"
  },
  {
    "path": "components/goods-pop/index.wxss",
    "chars": 761,
    "preview": ".sku-container {\n  box-sizing: border-box;\n  width: 100vw;\n  padding: 32rpx 32rpx 0 32rpx;\n}\n.sku-container .sku {\n  bor"
  },
  {
    "path": "components/login/index.js",
    "chars": 2125,
    "preview": "const WXAPI = require('apifm-wxapi')\n\nComponent({\n  options: {\n    // 样式隔离 https://developers.weixin.qq.com/miniprogram/"
  },
  {
    "path": "components/login/index.json",
    "chars": 56,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \n  }\n}"
  },
  {
    "path": "components/login/index.wxml",
    "chars": 864,
    "preview": "<van-popup show=\"{{ show }}\" custom-class=\"btn-add-box-popup\" round close-on-click-overlay=\"{{ false }}\">\n  <view class="
  },
  {
    "path": "components/login/index.wxss",
    "chars": 715,
    "preview": ".btn-add-box-popup {\n  width: 600rpx;\n}\n.t-box {\n  margin-top: 32rpx;\n  height: 100rpx;\n  position: relative;\n}\n.t {\n  l"
  },
  {
    "path": "components/login/sn.txt",
    "chars": 197,
    "preview": "1. app.json, usingComponents \"login\": \"/components/login/index\",\n2. 在需要的页面上加这句代码即可\n    <login show=\"{{ true }}\" avatarUr"
  },
  {
    "path": "components/payment/index.js",
    "chars": 3553,
    "preview": "const WXAPI = require('apifm-wxapi');\nconst { wxaCode } = require('../../utils/auth');\nComponent({\n  options: {\n    addG"
  },
  {
    "path": "components/payment/index.json",
    "chars": 56,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \n  }\n}"
  },
  {
    "path": "components/payment/index.wxml",
    "chars": 1343,
    "preview": "<van-popup\n  show=\"{{ show }}\"\n  position=\"bottom\"\n  round\n  closeable\n  bind:close=\"close\"\n>\n  <view class=\"pop-main\">\n"
  },
  {
    "path": "components/payment/index.wxss",
    "chars": 440,
    "preview": ".pop-main {\n  display: flex;\n  flex-direction: column;\n}\n.title {\n  padding: 32rpx;\n  text-align: center;\n}\n.btn-box {\n "
  },
  {
    "path": "components/payment/sn.txt",
    "chars": 422,
    "preview": "app.json usingComponents 加上\n\"payment\": \"/components/payment/index\",\n\n\n在需要的页面上加这句代码即可\n<payment\n  money=\"100\"\n  remark=\"支付"
  },
  {
    "path": "components/vip-success/index.js",
    "chars": 468,
    "preview": "Component({\n  options: {\n    addGlobalClass: true,\n  },\n  \n  properties: {\n    show: {\n      type: Boolean,\n      value:"
  },
  {
    "path": "components/vip-success/index.json",
    "chars": 93,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-icon\": \"@vant/weapp/icon/index\"\n  }\n}\n"
  },
  {
    "path": "components/vip-success/index.wxml",
    "chars": 871,
    "preview": "<view class=\"success-modal\" wx:if=\"{{show}}\" catchtap=\"handleMaskClick\">\n  <view class=\"modal-content\" catchtap=\"stopPro"
  },
  {
    "path": "components/vip-success/index.wxss",
    "chars": 3226,
    "preview": ".success-modal {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background: rgba(0, 0, 0, 0.7);\n  di"
  },
  {
    "path": "config.js",
    "chars": 484,
    "preview": "module.exports = {\n  version: '26.3.13',\n  note: '首页购买动态SDK升级', // 这个为版本描述,无需修改\n  subDomain: 'tz', // 此处改成你自己的专属域名。什么是专属"
  },
  {
    "path": "jsconfig.json",
    "chars": 74,
    "preview": "{\n\t\"compilerOptions\": {\n\t\t\"target\": \"es2015\",\n\t\t\"module\": \"commonjs\"\n\t}\t\n}"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/action-sheet/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/action-sheet/index.js",
    "chars": 2251,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/action-sheet/index.json",
    "chars": 158,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-icon\": \"../icon/index\",\n    \"van-popup\": \"../popup/index\",\n    \"v"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/action-sheet/index.wxml",
    "chars": 2485,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<van-popup\n  show=\"{{ show }}\"\n  position=\"bottom\"\n  round=\"{{ round }}\"\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/action-sheet/index.wxss",
    "chars": 1988,
    "preview": "@import '../common/index.wxss';.van-action-sheet{color:var(--action-sheet-item-text-color,#323233);max-height:var(--acti"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/area/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/area/index.js",
    "chars": 8650,
    "preview": "\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n    "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/area/index.json",
    "chars": 88,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-picker\": \"../picker/index\"\n  }\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/area/index.wxml",
    "chars": 594,
    "preview": "<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<van-picker\n  class=\"van-area__picker\"\n  active-class=\"active-class\"\n  tool"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/area/index.wxs",
    "chars": 167,
    "preview": "/* eslint-disable */\nfunction displayColumns(columns, columnsNum) {\n  return columns.slice(0, +columnsNum);\n}\n\nmodule.ex"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/area/index.wxss",
    "chars": 31,
    "preview": "@import '../common/index.wxss';"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/button/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/button/index.js",
    "chars": 1953,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/button/index.json",
    "chars": 123,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-icon\": \"../icon/index\",\n    \"van-loading\": \"../loading/index\"\n  }"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/button/index.wxml",
    "chars": 2021,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<button\n  id=\"{{ id || button"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/button/index.wxs",
    "chars": 757,
    "preview": "/* eslint-disable */\nvar style = require('../wxs/style.wxs');\n\nfunction rootStyle(data) {\n  if (!data.color) {\n    retur"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/button/index.wxss",
    "chars": 3517,
    "preview": "@import '../common/index.wxss';.van-button{-webkit-text-size-adjust:100%;align-items:center;-webkit-appearance:none;bord"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/calendar.wxml",
    "chars": 1866,
    "preview": "<wxs src=\"./index.wxs\" module=\"computed\" />\n<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<view class=\"van-calendar\">\n  "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/header/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/header/index.js",
    "chars": 1437,
    "preview": "\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments."
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/header/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/header/index.wxml",
    "chars": 523,
    "preview": "<view class=\"van-calendar__header\">\n  <block wx:if=\"{{ showTitle }}\">\n    <view class=\"van-calendar__header-title\"><slot"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/header/index.wxss",
    "chars": 741,
    "preview": "@import '../../../common/index.wxss';.van-calendar__header{box-shadow:var(--calendar-header-box-shadow,0 2px 10px hsla(2"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/month/index.d.ts",
    "chars": 102,
    "preview": "export interface Day {\n    date: Date;\n    type: string;\n    text: number;\n    bottomInfo?: string;\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/month/index.js",
    "chars": 5363,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../../../common/"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/month/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/month/index.wxml",
    "chars": 1545,
    "preview": "<wxs src=\"./index.wxs\" module=\"computed\"></wxs>\n<wxs src=\"../../../wxs/utils.wxs\" module=\"utils\" />\n\n<view class=\"van-ca"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/month/index.wxs",
    "chars": 1664,
    "preview": "/* eslint-disable */\nvar utils = require('../../utils.wxs');\n\nfunction getMark(date) {\n  return getDate(date).getMonth()"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/components/month/index.wxss",
    "chars": 2390,
    "preview": "@import '../../../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;f"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/index.js",
    "chars": 13455,
    "preview": "\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments."
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/index.json",
    "chars": 242,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"header\": \"./components/header/index\",\n    \"month\": \"./components/mont"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/index.wxml",
    "chars": 744,
    "preview": "<wxs src=\"./index.wxs\" module=\"computed\" />\n<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<import src=\"./calendar.wxml\""
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/index.wxs",
    "chars": 717,
    "preview": "/* eslint-disable */\nvar utils = require('./utils.wxs');\n\nfunction getMonths(minDate, maxDate) {\n  var months = [];\n  va"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/index.wxss",
    "chars": 972,
    "preview": "@import '../common/index.wxss';.van-calendar{background-color:var(--calendar-background-color,#fff);display:flex;flex-di"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/utils.d.ts",
    "chars": 801,
    "preview": "export declare const ROW_HEIGHT = 64;\nexport declare function formatMonthTitle(date: Date): string;\nexport declare funct"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/utils.js",
    "chars": 3054,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getMonths = exports.getMonthEndDay "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/calendar/utils.wxs",
    "chars": 558,
    "preview": "/* eslint-disable */\nfunction getMonthEndDay(year, month) {\n  return 32 -  getDate(year, month - 1, 32).getDate();\n}\n\nfu"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/card/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/card/index.js",
    "chars": 1305,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar link_1 = require(\"../mixins/link\");\nvar"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/card/index.json",
    "chars": 82,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-tag\": \"../tag/index\"\n  }\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/card/index.wxml",
    "chars": 1894,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<view class=\"custom-class van-card\">\n  <view class=\"{{ utils.bem('card__h"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/card/index.wxss",
    "chars": 1750,
    "preview": "@import '../common/index.wxss';.van-card{background-color:var(--card-background-color,#fafafa);box-sizing:border-box;col"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cascader/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cascader/index.js",
    "chars": 7567,
    "preview": "\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments."
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cascader/index.json",
    "chars": 148,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-icon\": \"../icon/index\",\n    \"van-tab\":  \"../tab/index\",\n    \"van-"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cascader/index.wxml",
    "chars": 1674,
    "preview": "<wxs src=\"./index.wxs\" module=\"utils\" />\n\n<view wx:if=\"{{ showHeader }}\" class=\"van-cascader__header\">\n  <slot name=\"tit"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cascader/index.wxs",
    "chars": 651,
    "preview": "var utils = require('../wxs/utils.wxs');\nvar style = require('../wxs/style.wxs');\n\nfunction isSelected(tab, valueKey, op"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cascader/index.wxss",
    "chars": 1050,
    "preview": "@import '../common/index.wxss';.van-cascader__header{align-items:center;display:flex;height:48px;justify-content:space-b"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell/index.js",
    "chars": 981,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar link_1 = require(\"../mixins/link\");\nvar"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell/index.json",
    "chars": 84,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-icon\": \"../icon/index\"\n  }\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell/index.wxml",
    "chars": 1361,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<view\n  class=\"custom-class {"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell/index.wxs",
    "chars": 335,
    "preview": "/* eslint-disable */\nvar style = require('../wxs/style.wxs');\nvar addUnit = require('../wxs/add-unit.wxs');\n\nfunction ti"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell/index.wxss",
    "chars": 2201,
    "preview": "@import '../common/index.wxss';.van-cell{background-color:var(--cell-background-color,#fff);box-sizing:border-box;color:"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell-group/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell-group/index.js",
    "chars": 312,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell-group/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell-group/index.wxml",
    "chars": 292,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<view\n  wx:if=\"{{ title }}\"\n  class=\"{{ utils.bem('cell-group__title', { "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/cell-group/index.wxss",
    "chars": 490,
    "preview": "@import '../common/index.wxss';.van-cell-group--inset{border-radius:var(--cell-group-inset-border-radius,8px);margin:var"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox/index.js",
    "chars": 2478,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar relation_1 = require(\"../common/relatio"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox/index.json",
    "chars": 84,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-icon\": \"../icon/index\"\n  }\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox/index.wxml",
    "chars": 1127,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<view class=\"{{ utils.bem('ch"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox/index.wxs",
    "chars": 477,
    "preview": "/* eslint-disable */\nvar style = require('../wxs/style.wxs');\nvar addUnit = require('../wxs/add-unit.wxs');\n\nfunction ic"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox/index.wxss",
    "chars": 1456,
    "preview": "@import '../common/index.wxss';.van-checkbox{align-items:center;display:flex;overflow:hidden;-webkit-user-select:none;us"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox-group/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox-group/index.js",
    "chars": 1194,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar relation_1 = require(\"../common/relatio"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox-group/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox-group/index.wxml",
    "chars": 161,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<view class=\"{{ utils.bem('checkbox-group', [{ horizontal: direction === "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/checkbox-group/index.wxss",
    "chars": 91,
    "preview": "@import '../common/index.wxss';.van-checkbox-group--horizontal{display:flex;flex-wrap:wrap}"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/circle/canvas.d.ts",
    "chars": 209,
    "preview": "/// <reference types=\"miniprogram-api-typings\" />\ntype CanvasContext = WechatMiniprogram.CanvasContext;\nexport declare f"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/circle/canvas.js",
    "chars": 1363,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.adaptor = void 0;\nfunction adaptor("
  },
  {
    "path": "miniprogram_npm/@vant/weapp/circle/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/circle/index.js",
    "chars": 7328,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar color_1 = require(\"../common/color\");\nv"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/circle/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/circle/index.wxml",
    "chars": 412,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<view class=\"van-circle\">\n  <canvas class=\"van-circle__canvas\" type=\"{{ t"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/circle/index.wxss",
    "chars": 228,
    "preview": "@import '../common/index.wxss';.van-circle{display:inline-block;position:relative;text-align:center}.van-circle__text{co"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/col/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/col/index.js",
    "chars": 326,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar relation_1 = require(\"../common/relatio"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/col/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/col/index.wxml",
    "chars": 267,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<view\n  class=\"custom-class {"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/col/index.wxs",
    "chars": 343,
    "preview": "/* eslint-disable */\nvar style = require('../wxs/style.wxs');\nvar addUnit = require('../wxs/add-unit.wxs');\n\nfunction ro"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/col/index.wxss",
    "chars": 1773,
    "preview": "@import '../common/index.wxss';.van-col{box-sizing:border-box;float:left}.van-col--1{width:4.16666667%}.van-col--offset-"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse/index.js",
    "chars": 1463,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse/index.wxml",
    "chars": 107,
    "preview": "<view class=\"custom-class van-collapse {{ border ? 'van-hairline--top-bottom' : '' }}\">\n  <slot />\n</view>\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse/index.wxss",
    "chars": 31,
    "preview": "@import '../common/index.wxss';"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse-item/animate.d.ts",
    "chars": 190,
    "preview": "/// <reference types=\"miniprogram-api-typings\" />\nexport declare function setContentAnimate(context: WechatMiniprogram.C"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse-item/animate.js",
    "chars": 1284,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setContentAnimate = void 0;\nvar uti"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse-item/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse-item/index.js",
    "chars": 2112,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse-item/index.json",
    "chars": 84,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-cell\": \"../cell/index\"\n  }\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse-item/index.wxml",
    "chars": 1070,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<view class=\"van-collapse-item custom-class {{ index !== 0 && parentBorde"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/collapse-item/index.wxss",
    "chars": 862,
    "preview": "@import '../common/index.wxss';.van-collapse-item__title .van-cell__right-icon{transform:rotate(90deg);transition:transf"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/color.d.ts",
    "chars": 278,
    "preview": "export declare const RED = \"#ee0a24\";\nexport declare const BLUE = \"#1989fa\";\nexport declare const WHITE = \"#fff\";\nexport"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/color.js",
    "chars": 385,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GRAY_DARK = exports.GRAY = exports."
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/component.d.ts",
    "chars": 398,
    "preview": "/// <reference types=\"miniprogram-api-typings\" />\nimport { VantComponentOptions } from 'definitions/index';\ndeclare func"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/component.js",
    "chars": 1482,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.VantComponent = void 0;\nvar basic_1"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/index.wxss",
    "chars": 1180,
    "preview": ".van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.va"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/relation.d.ts",
    "chars": 568,
    "preview": "/// <reference types=\"miniprogram-api-typings\" />\ntype TrivialInstance = WechatMiniprogram.Component.TrivialInstance;\nex"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/relation.js",
    "chars": 2252,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useChildren = exports.useParent = v"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/style/clearfix.wxss",
    "chars": 56,
    "preview": ".van-clearfix:after{clear:both;content:\"\";display:table}"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/style/ellipsis.wxss",
    "chars": 297,
    "preview": ".van-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.va"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/style/hairline.wxss",
    "chars": 827,
    "preview": ".van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/style/mixins/clearfix.wxss",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/style/mixins/ellipsis.wxss",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/style/mixins/hairline.wxss",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/style/var.wxss",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/utils.d.ts",
    "chars": 1773,
    "preview": "/// <reference types=\"node\" />\n/// <reference types=\"miniprogram-api-typings\" />\n/// <reference types=\"miniprogram-api-t"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/utils.js",
    "chars": 3626,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWxWork = exports.isPC = exports.g"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/validator.d.ts",
    "chars": 605,
    "preview": "export declare function isFunction(val: unknown): val is Function;\nexport declare function isPlainObject(val: unknown): "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/validator.js",
    "chars": 1477,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isVideoUrl = exports.isImageUrl = e"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/version.d.ts",
    "chars": 671,
    "preview": "/// <reference types=\"miniprogram-api-typings\" />\ninterface WxWorkSystemInfo extends WechatMiniprogram.SystemInfo {\n    "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/common/version.js",
    "chars": 1954,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.canIUseGetUserProfile = exports.can"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/config-provider/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/config-provider/index.js",
    "chars": 265,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/config-provider/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/config-provider/index.wxml",
    "chars": 155,
    "preview": "<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<view class=\"van-config-provider\" style=\"{{ computed.mapThemeVarsToCSSVars("
  },
  {
    "path": "miniprogram_npm/@vant/weapp/config-provider/index.wxs",
    "chars": 641,
    "preview": "/* eslint-disable */\nvar object = require('../wxs/object.wxs');\nvar style = require('../wxs/style.wxs');\n\nfunction kebab"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/count-down/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/count-down/index.js",
    "chars": 2917,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/count-down/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/count-down/index.wxml",
    "chars": 115,
    "preview": "<view class=\"van-count-down\">\n  <slot wx:if=\"{{ useSlot }}\"/>\n  <block wx:else>{{ formattedTime }}</block>\n</view>\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/count-down/index.wxss",
    "chars": 180,
    "preview": "@import '../common/index.wxss';.van-count-down{color:var(--count-down-text-color,#323233);font-size:var(--count-down-fon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/count-down/utils.d.ts",
    "chars": 354,
    "preview": "export type TimeData = {\n    days: number;\n    hours: number;\n    minutes: number;\n    seconds: number;\n    milliseconds"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/count-down/utils.js",
    "chars": 1960,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSameSecond = exports.parseFormat "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/datetime-picker/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/datetime-picker/index.js",
    "chars": 12596,
    "preview": "\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n    "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/datetime-picker/index.json",
    "chars": 88,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-picker\": \"../picker/index\"\n  }\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/datetime-picker/index.wxml",
    "chars": 470,
    "preview": "<van-picker\n  class=\"van-datetime-picker\"\n  active-class=\"active-class\"\n  toolbar-class=\"toolbar-class\"\n  column-class=\""
  },
  {
    "path": "miniprogram_npm/@vant/weapp/datetime-picker/index.wxss",
    "chars": 31,
    "preview": "@import '../common/index.wxss';"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/definitions/index.d.ts",
    "chars": 1224,
    "preview": "/// <reference types=\"miniprogram-api-typings\" />\ninterface VantComponentInstance {\n    parent: WechatMiniprogram.Compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/definitions/index.js",
    "chars": 77,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dialog/dialog.d.ts",
    "chars": 1836,
    "preview": "/// <reference types=\"miniprogram-api-typings\" />\n/// <reference types=\"miniprogram-api-typings\" />\nexport type Action ="
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dialog/dialog.js",
    "chars": 2867,
    "preview": "\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n    "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dialog/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dialog/index.js",
    "chars": 3798,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dialog/index.json",
    "chars": 235,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-popup\": \"../popup/index\",\n    \"van-button\": \"../button/index\",\n  "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dialog/index.wxml",
    "chars": 4500,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<van-popup\n  show=\"{{ show }}\"\n  z-index=\"{{ zIndex }}\"\n  overlay=\"{{ ove"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dialog/index.wxss",
    "chars": 1659,
    "preview": "@import '../common/index.wxss';.van-dialog{background-color:var(--dialog-background-color,#fff);border-radius:var(--dial"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/divider/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/divider/index.js",
    "chars": 380,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/divider/index.json",
    "chars": 49,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {}\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/divider/index.wxml",
    "chars": 295,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<view\n  class=\"custom-class {"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/divider/index.wxs",
    "chars": 355,
    "preview": "/* eslint-disable */\nvar style = require('../wxs/style.wxs');\nvar addUnit = require('../wxs/add-unit.wxs');\n\nfunction ro"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/divider/index.wxss",
    "chars": 1011,
    "preview": "@import '../common/index.wxss';.van-divider{align-items:center;border:0 solid var(--divider-border-color,#ebedf0);color:"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-item/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-item/index.js",
    "chars": 4460,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar relation_1 = require(\"../common/relatio"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-item/index.json",
    "chars": 152,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-popup\": \"../popup/index\",\n    \"van-cell\": \"../cell/index\",\n    \"v"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-item/index.wxml",
    "chars": 1419,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n\n<view\n  wx:if=\"{{ showWrapper }}\"\n  class=\"{{ utils.bem('dropdown-item', "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-item/index.wxss",
    "chars": 437,
    "preview": "@import '../common/index.wxss';.van-dropdown-item{left:0;overflow:hidden;position:fixed;right:0}.van-dropdown-item__opti"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-item/shared.d.ts",
    "chars": 92,
    "preview": "export interface Option {\n    text: string;\n    value: string | number;\n    icon: string;\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-item/shared.js",
    "chars": 77,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-menu/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-menu/index.js",
    "chars": 4047,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-menu/index.json",
    "chars": 24,
    "preview": "{\n  \"component\": true\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-menu/index.wxml",
    "chars": 743,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<view class=\"van-dropdown-men"
  }
]

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

About this extraction

This page contains the full source code of the EastWorld/wechat-app-mall GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 911 files (2.3 MB), approximately 650.6k tokens, and a symbol index with 1479 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!