Full Code of woniudiancang/bee for AI

master d26ceea613c7 cached
653 files
1.2 MB
389.9k tokens
562 symbols
1 requests
Download .txt
Showing preview only (1,424K chars total). Download the full file or copy to clipboard to get everything.
Repository: woniudiancang/bee
Branch: master
Commit: d26ceea613c7
Files: 653
Total size: 1.2 MB

Directory structure:
gitextract_db_bu7mz/

├── .gitignore
├── LICENSE
├── README.md
├── app.js
├── app.json
├── app.wxss
├── components/
│   ├── parser.20200731.min/
│   │   ├── libs/
│   │   │   ├── CssHandler.js
│   │   │   ├── MpHtmlParser.js
│   │   │   └── config.js
│   │   ├── parser.js
│   │   ├── parser.json
│   │   ├── parser.wxml
│   │   ├── parser.wxss
│   │   └── trees/
│   │       ├── trees.js
│   │       ├── trees.json
│   │       ├── trees.wxml
│   │       └── trees.wxss
│   └── payment/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       ├── index.wxss
│       └── sn.txt
├── config.js
├── i18n/
│   ├── en.js
│   ├── index.js
│   └── zh_CN.js
├── 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
│   ├── 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
├── pages/
│   ├── about/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── ad/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── all-orders/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── asset/
│   │   ├── cash-log.js
│   │   ├── cash-log.json
│   │   ├── cash-log.wxml
│   │   ├── cash-log.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── recharge-log.js
│   │   ├── recharge-log.json
│   │   ├── recharge-log.wxml
│   │   └── recharge-log.wxss
│   ├── booking/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── card/
│   │   ├── exchange.js
│   │   ├── exchange.json
│   │   ├── exchange.wxml
│   │   ├── exchange.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── logs.js
│   │   ├── logs.json
│   │   ├── logs.wxml
│   │   ├── logs.wxss
│   │   ├── receive.js
│   │   ├── receive.json
│   │   ├── receive.wxml
│   │   ├── receive.wxss
│   │   ├── send.js
│   │   ├── send.json
│   │   ├── send.wxml
│   │   └── send.wxss
│   ├── cart/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── order.js
│   │   ├── order.json
│   │   ├── order.wxml
│   │   └── order.wxss
│   ├── coupons/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── goods/
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── goods-details/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── home/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── index/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── member-center/
│   │   ├── 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
│   │   ├── user-code.js
│   │   ├── user-code.json
│   │   ├── user-code.wxml
│   │   └── user-code.wxss
│   ├── notice/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   └── detail.wxss
│   ├── order-details/
│   │   ├── doing.js
│   │   ├── doing.json
│   │   ├── doing.wxml
│   │   ├── doing.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── scan-result.js
│   │   ├── scan-result.json
│   │   ├── scan-result.wxml
│   │   └── scan-result.wxss
│   ├── pay/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── queue/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── score/
│   │   ├── logs.js
│   │   ├── logs.json
│   │   ├── logs.wxml
│   │   └── logs.wxss
│   ├── shop/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── join-apply.js
│   │   ├── join-apply.json
│   │   ├── join-apply.wxml
│   │   ├── join-apply.wxss
│   │   ├── select.js
│   │   ├── select.json
│   │   ├── select.wxml
│   │   └── select.wxss
│   ├── sign/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   └── youhui-pay/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       └── index.wxss
├── project.config.json
├── project.private.config.json
├── sitemap.json
└── utils/
    ├── auth.js
    ├── image.js
    ├── pay.js
    ├── runtime.js
    ├── tools.js
    └── util.js

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

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

================================================
FILE: LICENSE
================================================
                     木兰宽松许可证, 第2版

   木兰宽松许可证, 第2版 
   2020年1月 http://license.coscl.org.cn/MulanPSL2


   您对“软件”的复制、使用、修改及分发受木兰宽松许可证,第2版(“本许可证”)的如下条款的约束:

   0. 定义

      “软件”是指由“贡献”构成的许可在“本许可证”下的程序和相关文档的集合。

      “贡献”是指由任一“贡献者”许可在“本许可证”下的受版权法保护的作品。

      “贡献者”是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。

      “法人实体”是指提交贡献的机构及其“关联实体”。

      “关联实体”是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的控制是指有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。

   1. 授予版权许可

      每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、分发其“贡献”,不论修改与否。

   2. 授予专利许可

      每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销除外)专利许可,供您制造、委托制造、使用、许诺销售、销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”本身或其“贡献”与许可“贡献”时的“软件”结合而将必然会侵犯的专利权利要求,不包括对“贡献”的修改或包含“贡献”的其他结合。如果您或您的“关联实体”直接或间接地,就“软件”或其中的“贡献”对任何人发起专利侵权诉讼(包括反诉或交叉诉讼)或其他专利维权行动,指控其侵犯专利权,则“本许可证”授予您对“软件”的专利许可自您提起诉讼或发起维权行动之日终止。

   3. 无商标许可

      “本许可证”不提供对“贡献者”的商品名称、商标、服务标志或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用除外。

   4. 分发限制

      您可以在任何媒介中将“软件”以源程序形式或可执行形式重新分发,不论修改与否,但您必须向接收者提供“本许可证”的副本,并保留“软件”中的版权、商标、专利及免责声明。

   5. 免责声明与责任限制

      “软件”及其中的“贡献”在提供时不带任何明示或默示的担保。在任何情况下,“贡献者”或版权所有者不对任何人因使用“软件”或其中的“贡献”而引发的任何直接或间接损失承担责任,不论因何种原因导致或者基于何种法律理论,即使其曾被建议有此种损失的可能性。 

   6. 语言
      “本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何冲突不一致,以中文版为准。

   条款结束 

   如何将木兰宽松许可证,第2版,应用到您的软件
   
   如果您希望将木兰宽松许可证,第2版,应用到您的新软件,为了方便接收者查阅,建议您完成如下三步:

      1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字;

      2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中;

      3, 请将如下声明文本放入每个源文件的头部注释中。

   Copyright (c) [Year] [name of copyright holder]
   [Software Name] is licensed under Mulan PSL v2.
   You can use this software according to the terms and conditions of the Mulan PSL v2. 
   You may obtain a copy of Mulan PSL v2 at:
            http://license.coscl.org.cn/MulanPSL2 
   THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.  
   See the Mulan PSL v2 for more details.  


                     Mulan Permissive Software License,Version 2

   Mulan Permissive Software License,Version 2 (Mulan PSL v2)
   January 2020 http://license.coscl.org.cn/MulanPSL2

   Your reproduction, use, modification and distribution of the Software shall be subject to Mulan PSL v2 (this License) with the following terms and conditions: 
   
   0. Definition
   
      Software means the program and related documents which are licensed under this License and comprise all Contribution(s). 
   
      Contribution means the copyrightable work licensed by a particular Contributor under this License.
   
      Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License.
   
      Legal Entity means the entity making a Contribution and all its Affiliates.
   
      Affiliates means entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity.

   1. Grant of Copyright License

      Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or distribute its Contribution, with modification or not.

   2. Grant of Patent License 

      Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to make, have made, use, offer for sale, sell, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, or by combination of the Contribution with the Software to which the Contribution was contributed. The patent license shall not apply to any modification of the Contribution, and any other combination which includes the Contribution. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that the Software or any Contribution in it infringes patents, then any patent license granted to you under this License for the Software shall terminate as of the date such litigation or activity is filed or taken.

   3. No Trademark License

      No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4.

   4. Distribution Restriction

      You may distribute the Software in any medium with or without modification, whether in source or executable forms, provided that you provide recipients with a copy of this License and retain copyright, patent, trademark and disclaimer statements in the Software.

   5. Disclaimer of Warranty and Limitation of Liability

      THE SOFTWARE AND CONTRIBUTION IN IT ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE OR THE CONTRIBUTION IN IT, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

   6. Language

      THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL.

   END OF THE TERMS AND CONDITIONS

   How to Apply the Mulan Permissive Software License,Version 2 (Mulan PSL v2) to Your Software

      To apply the Mulan PSL v2 to your work, for easy identification by recipients, you are suggested to complete following three steps:

      i Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; 

      ii Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package;

      iii Attach the statement to the appropriate annotated syntax at the beginning of each source file.


   Copyright (c) [Year] [name of copyright holder]
   [Software Name] is licensed under Mulan PSL v2.
   You can use this software according to the terms and conditions of the Mulan PSL v2. 
   You may obtain a copy of Mulan PSL v2 at:
               http://license.coscl.org.cn/MulanPSL2 
   THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.  
   See the Mulan PSL v2 for more details.  


================================================
FILE: README.md
================================================
# 微信小程序——餐饮点餐商城

微信小程序——餐饮点餐商城,是针对餐饮行业推出的一套完整的餐饮解决方案,实现了用户在线点餐下单、外卖、叫号排队、支付、配送等功能,完美的使餐饮行业更高效便捷!

大家如果在使用过程有什么问题,欢迎通过lssues与我们交流!

如果本项目对您有所帮助或者启发,请给我们 Star 吧,您的鼓励是我们最大对动力~

# 加微信联系我

<img src="https://dcdn.it120.cc/2022/09/19/7b884d58-541a-404b-a805-457540d7f87f.jpeg" width="200px">


# 自提/外卖 扫码体验

<img src="https://dcdn.it120.cc/2021/01/19/b388b014-7ae0-4b3a-9d6f-30c8b3082fe6.jpg" width="200px">


# 扫码点餐演示

| 座号A1 | 座号A2 | 座号A3 | 座号A4 | 座号A5 |
| :------: | :------: | :------: | :------: | :------: |
| <img src="https://dcdn.it120.cc/cuser/27/2021/09/26/cbb91217-47b1-4af1-a0e5-55df0efd3566.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/cbb30b43-15df-4564-87ef-3416f58ab0c8.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/150cd47b-e769-49fc-bca6-be8c5fe84f49.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/b5a44d1f-cea4-437f-802d-a36c728ff459.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/99c47ba3-50ba-4431-93c6-e10f527a5e28.png" width="200px"> |


| 座号A6 | 座号A7 | 座号A8 | 座号A9 | 座号A10 |
| :------: | :------: | :------: | :------: | :------: |
| <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/aca7a7fd-72c9-4d89-a903-d82e6b8b8f83.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/77f16752-656f-4218-99df-c82c5db1921a.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/e3be04c4-9c0f-41c8-9482-b645699d1df4.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/352c7e84-56ec-4961-9e7d-cc4e752cf154.png" width="200px"> | <img src="https://dcdn.it120.cc/cuser/27/2023/01/04/78adb196-231d-41b7-be8d-51febc022bac.png" width="200px"> |

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

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

- [小程序在线接口-SDK](https://github.com/gooking/apifm-wxapi)

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

- [FMUI-轻松活泼-icon](https://www.iconfont.cn/collections/detail?spm=a313x.7781069.0.da5a778a4&cid=17041)

- [小程序HTML解析组件](https://github.com/jin-yufeng/Parser)

- [生成条码和二维码](https://github.com/alsey/wxbarcode)

# 其他优秀开源模板推荐
- [天使童装](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)

# 使用教程

## 注册开通小程序账号
https://mp.weixin.qq.com/
根据自己的实际情况选择 “企业”、“个体工商户”身份,注册小程序账号,商城类小程序不支持个人用户上线,所以一定要选择企业或者个体户,获得你自己小程序的 appid 和 secret 信息,保存好,下面会用到:
- [如何查看小程序的AppID和AppSecret](https://jingyan.baidu.com/article/642c9d340305e3644a46f795.html)
你需要设置小程序的合法域名,否则开发工具上运行正常,手机访问的时候将看不到数据
- [设置合法服务器域名](https://www.yuque.com/apifm/doc/tvpou9)
## 注册开通后台账号
https://admin.s2m.cc/
免费注册开通新后台后登录,登录后的首页,请记下你的专属域名,后面会用到
左侧菜单 “工厂设置” --> “数据克隆” --> “将别人的数据克隆给我”
对方商户ID填写 27
点击 “立即克隆”,克隆成功后,F5 刷新一下后台
## 配置小程序APPID/SECRET
左侧菜单,微信设置,填写配置上一步获得的 appid 和 secret
这一步很重要!!!
如果没有正确配置,下面步骤中打开小程序将无法连接你的后台
## 配置微信支付
左侧菜单,系统设置 -->  在线支付配置,填写您自己的微信支付的信息
## 下载安装开发工具
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
## 运行小程序看效果
双击运行第一步安装的小程序开发工具,打开看效果:

<img src="https://dcdn.it120.cc/yuque/0/2019/png/572726/1575349127431-00ff2059-dd5e-4e4b-99a7-e1d605db02c7.png?x-oss-process=image%2Fresize%2Cw_1500 " width="200px">

导入项目这里,目录选择你 “第二步” 中下载并加压的小程序代码所在目录

APPID 务必要改成你自己的小程序的 APPID
APPID 务必要改成你自己的小程序的 APPID
APPID 务必要改成你自己的小程序的 APPID

然后点击导入按钮

- [如何查看小程序的AppID和AppSecret](https://jingyan.baidu.com/article/642c9d340305e3644a46f795.html)

## 配置对接你自己的后台
在开发工具中 config.js 中的subDomain 改成你自己专属域名, ctrl + s 保存

<img src="https://dcdn.it120.cc/yuque/0/2020/png/572726/1581236703094-ce5c7f32-c60d-4e1b-bacb-21439e1d2721.png?x-oss-process=image%2Fresize%2Cw_1500 " width="200px">

- [如何查看自己的subDomain](https://www.yuque.com/apifm/doc/qr6l4m)

## 用户自提的订单如何扫码核销

用户选择自提的订单,会在底部取餐菜单界面显示订单信息以及取餐码,商家可通过 “我的” --> “扫码核销” 菜单,点击以后调起手机相机,扫用户出示的取餐码完成核销

但是默认情况下,是看不见  “我的” --> “扫码核销” 菜单的,需要在后台 “系统设置” --> “系统参数” ,添加文本类型的参数:

- 参数名 order_hx_uids
- 参数值,具有核销权限的用户的用户编号,多个用户编号,使用英文的逗号分隔

重新进入小程序以后,就可以看见 “扫码核销” 的菜单了

## 桌号管理

    登录后台,左侧菜单 “桌号管理”,添加并管理你的桌号信息,添加以后在列表你将可以看到 ID 和 密钥,这两个数据用来生成桌子的二维码

<img src="https://dcdn.it120.cc/2022/12/30/e76a0320-992a-4932-9d58-dec3fd6630b8.png">

## 生成桌子二维码

    例如上面的ID为 308,密钥为 d3PiIY,那么现在去左侧菜单微信设置 -> 小程序设置 -> 获取小程序二维码(圆形码),即可获取小程序码:
    填写信息如下:
- 页面路径: pages/index/index
- scene参数: 12879,308,d3PiIY
- 其中 12879 为门店ID,逗号一定是英文的逗号,而且不要有空格,注意检查下

其中 shopId 为你对应的门店ID,其他参数默认就可以了

<img src="https://dcdn.it120.cc/2022/12/30/6c807326-8db9-465a-912e-58847b28658c.png">

## 如何修改小程序首页标题

登录后台,左侧菜单 “系统设置” --> “系统参数” ,添加一个文本类型的参数: mallName (注意大小写),小程序即可显示你后台填的名称

## 根据选择的不同门店,区分显示商品(只显示当前门店的商品)

登录后台,左侧菜单 “系统设置” --> “系统参数” ,添加一个开关类型的参数: shop_goods_split,开启为区分,关闭为不区分

## 如何设置服务范围(多少公里)

后台 “商场管理” --> “门店管理” ,编辑门店,服务距离处,填写你希望配送的距离即可

## 如何显示销量

商品列表接口、商品详情接口,都会返回商品的销量数据,分别是 numberOrders 和 numberSells 两个字段,你可以在界面上任何希望显示销量的地方,进行展示即可

- numberOrders 订单数量
- numberSells 商品数量

假如说用户下了一个订单一次性购买10份这个商品,那么 numberOrders = 1 ,numberSells = 10

## 如何区分门店显示商品

后台左侧菜单“系统设置” -> “系统参数”,增加一个开关类型的参数: shop_goods_split

开启则只会显示当前门店的商品,关闭则显示所有门店的商品

## 在线订座如何配置

1. 左侧菜单 “预约报名” --> “项目设置” ,添加一个项目,添加完以后会得到一个编号
2. 左侧菜单 “系统设置” --> “系统参数”, 修改编号为 `zxdz` 的参数,将你的编号填进去即可

## 配置达达配送

1. [如何对接达达配送,先按这个教程完成配置](https://www.yuque.com/apifm/doc/gxk08t)
2. 后台 “商城管理” --> “门店管理”, 编辑,门店编号填写你达达对应的门店编号,生鲜配送输入框填写 `dada`

## 二次开发如何使用国际化实现多语言

1. `js` 文件中,onload 方法中,加入: `getApp().initLanguage(this)` ;注意这里的路径要填正确,否则提示文件找不到;
2. 页面中可以直接显示语言包中的内容: `{{ $t.test.name }}`;
3. 语言内容,直接修改 `i18n` 文件夹中对应的语言的文件即可;

## 打印机配置自动出票

1. [打印机配置教程](https://www.it120.cc/help/ggrun8.html)
2. [打印机模板变量详细说明](https://www.it120.cc/help/wtviya.html)
3. 小票机模板: [小票机模版①](https://www.it120.cc/help/xc2hk2q4yrop12ll.html) [小票机模版②](https://www.it120.cc/help/taan6w2wvt6d00mg.html) [小票机模版③](https://www.it120.cc/help/vn7l4p2m28x7x30h.html)
3. 杯贴机模板: [杯贴机模版①](https://www.it120.cc/help/nl0frezogy8uunet.html) [杯贴机模版②](https://www.it120.cc/help/mlcqigcmz1ggydw2.html) 

# 常见问题

## 无法登陆 / 无法获取 openid

1. 请检查 config.js 文件中的 subDomain 是否已经修改成你自己的专属域名了
    
    [如何查看自己的subDomain](https://www.yuque.com/apifm/doc/qr6l4m)

2. 确保下面3个地方的 appID 你填的是一样的

    - 登录你的小程序商户后台(https://mp.weixin.qq.com)左侧菜单 “开发” --> “开发设置” 中的 appid
    - 点击你的小程序开发工具 右上角 的“详情” --> “基本信息” 中的 appid
    - 登录你的 api工厂 后台(https://admin.s2m.cc),左侧菜单平台设置,微信小程序中的 appid

## 获取手机号码失败,提示没权限

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html

官方文档有说明,获取手机号码的前提条件是:非个人开发者,且完成了认证的小程序开放(不包含海外主体)

## wx.getLocation 改为 wx.getFuzzyLocation (getLocation的接口权限太难申请了)

微信申请 getLocation 接口的审核比较严格,可能比较难申请到这个接口,可以用 wx.getFuzzyLocation 来代替: https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getFuzzyLocation.html


开发工具,全局替换以下代码:

需要替换3次

`scope.userLocation` 替换为 `scope.userFuzzyLocation`

如图:


<img src="https://dcdn.it120.cc/yuque/0/2023/png/572726/1680937230066-f31f9661-7c15-4ffe-86b1-9d70ce5a6062.png">


再全局替换代码:

`wx.getLocation` 替换为 `wx.getFuzzyLocation`

再全局替换代码:

`"getLocation"` 替换为 `"getFuzzyLocation"`

## 小程序订单中心path 怎么填

请填写 `pages/all-orders/index`

## 小程序订单发货的地址怎么填

小程序订单管理 -> 订单信息录入 -> 小程序商品订单详情path

`pages/order-details/index?payOrderNo=${商品订单号}`

直接一模一样复制上面的这个填进去就行

## 微信支付MA授权(appid和mch_id不匹配)

[微信支付MA授权(appid和mch_id不匹配)](https://www.yuque.com/apifm/doc/zrui8q)

## 使用国际化多语言,切换语言后底部菜单显示不对

`/i18n/index.js` 文件里面的菜单内容估计忘记修改了

## 商家入驻申请页面

1. app.json 中,添加一个页面路径: `pages/shop/join-apply`
2. pages/shop/select 页面最下面的入口代码放开


================================================
FILE: app.js
================================================
const WXAPI = require('apifm-wxapi')
const CONFIG = require('config.js')
const AUTH = require('utils/auth')
const i18n = require("i18n/index")
App({
  onLaunch: function() {
    i18n.getLanguage()
    this.setTabBarLanguage()
    const $t = i18n.$t()
    WXAPI.init(CONFIG.subDomain)
    WXAPI.setMerchantId(CONFIG.merchantId)
    const that = this;
    // 检测新版本
    const updateManager = wx.getUpdateManager()
    updateManager.onUpdateReady(function () {
      wx.showModal({
        confirmText: $t.common.confirm,
        cancelText: $t.common.cancel,
        content: $t.common.upgrade,
        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: $t.common.noNetwork,
            icon: 'loading'
          })
        }
      }
    });
    /**
     * 监听网络状态变化
     * 可根据业务需求进行调整
     */
    wx.onNetworkStatusChange(function(res) {
      if (!res.isConnected) {
        that.globalData.isConnected = false
        wx.showToast({
          title: $t.common.networkDown,
          icon: 'loading'
        })
      } else {
        that.globalData.isConnected = true
        wx.hideToast()
      }
    })
    WXAPI.queryConfigBatch('mallName,myBg,mapPos,order_hx_uids,subscribe_ids,share_profile,zxdz,admin_uids,shop_goods_split,QQ_MAP_KEY,shop_join_open,create_order_select_time,packaging_fee,customerServiceChatCorpId,customerServiceChatUrl,alipay,share_pic,tihuodianOpen').then(res => {
      if (res.code == 0) {
        res.data.forEach(config => {
          wx.setStorageSync(config.key, config.value);
        })
        if (this.configLoadOK) {
          this.configLoadOK()
        }
      }
    })
  },
  onShow (e) {
    if (e && e.query && e.query.scene) {
      const scene = decodeURIComponent(e.query.scene) // 处理扫码进商品详情页面的逻辑
      if (scene && scene.split(',').length == 3) {
        // 扫码点餐
      } else {
        AUTH.checkHasLogined().then(isLogined => {
          if (!isLogined) {
            AUTH.authorize().then(() => {
              this.getUserApiInfo()
            })
          } else {
            this.getUserApiInfo()
          }
        })
      }
    } else {
      AUTH.checkHasLogined().then(isLogined => {
        if (!isLogined) {
          AUTH.authorize().then(() => {
            this.getUserApiInfo()
          })
        } else {
          this.getUserApiInfo()
        }
      })
    }
    // 保存邀请人
    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 => {
            console.log(res)
            console.log({
              referrer: e.query.inviter_id,
              encryptedData: res.encryptedData,
              iv: res.iv
            })
            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)
                }
              }
            })
          }
        })
      }
    }
    this.refreshStorageShopInfo()
  },
  async refreshStorageShopInfo() {
    // 刷新本地缓存的门店信息 https://www.yuque.com/apifm/nu0f75/cu4cfi
    let shopInfo = wx.getStorageSync('shopInfo')
    if (!shopInfo) {
      return
    }
    const res = await WXAPI.shopSubdetail(shopInfo.id)
    if (res.code == 0) {
      const distance = shopInfo.distance
      shopInfo = res.data.info
      shopInfo.distance = distance
      wx.setStorageSync('shopInfo',  shopInfo)
    }
  },
  initLanguage(_this) {
    _this.setData({
      language: i18n.getLanguage(),
      $t: i18n.$t(),
    })
  },
  changeLang(_this) {
    const langs = i18n.langs
    const nameArray = []
    langs.forEach(ele => nameArray.push(ele.name))
    wx.showActionSheet({
      itemList: nameArray,
      success: (e) => {
        const lang = langs[e.tapIndex]
        wx.setStorageSync('Language', lang.code)
        _this.setData({
          language: i18n.getLanguage(),
          $t: i18n.$t(),
        })
        this.setTabBarLanguage()
      }
    })
  },
  setTabBarLanguage() {
    i18n.setTabBarLanguage()
  },
  async getUserApiInfo() {
    const token = wx.getStorageSync('token')
    if (!token) {
      return null
    }
    // https://www.yuque.com/apifm/nu0f75/zgf8pu
    const res = await WXAPI.userDetail(token)
    if (res.code == 0) {
      this.globalData.apiUserInfoMap = res.data
      if (this.getUserDetailOK) {
        this.getUserDetailOK(res.data)
      }
      return res.data
    }
  },
  globalData: {
    isConnected: true
  }
})

================================================
FILE: app.json
================================================
{
  "pages": [
    "pages/home/index",
    "pages/index/index",
    "pages/all-orders/index",
    "pages/my/index",
    "pages/my/feedback",
    "pages/my/user-code",
    "pages/ad/index",
    "pages/pay/index",
    "pages/shop/select",
    "pages/shop/detail",
    "pages/shop/join-apply",
    "pages/youhui-pay/index",
    "pages/member-center/index",
    "pages/order-details/index",
    "pages/order-details/scan-result",
    "pages/order-details/doing",
    "pages/about/index",
    "pages/coupons/index",
    "pages/booking/index",
    "pages/asset/index",
    "pages/asset/recharge-log",
    "pages/asset/cash-log",
    "pages/sign/index",
    "pages/score/logs",
    "pages/notice/detail",
    "pages/queue/index",
    "pages/cart/index",
    "pages/cart/order",
    "pages/goods-details/index",
    "pages/goods/list",
    "pages/card/index",
    "pages/card/logs",
    "pages/card/exchange",
    "pages/card/send",
    "pages/card/receive"
  ],
  "requiredPrivateInfos": [
    "getLocation",
    "chooseLocation",
    "chooseAddress"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "WeChat",
    "navigationBarTextStyle": "black"
  },
  "tabBar": {
    "color": "#6e6d6b",
    "selectedColor": "#e64340",
    "backgroundColor": "#fff",
    "list": [
      {
        "pagePath": "pages/home/index",
        "iconPath": "images/nav/home-off.png",
        "selectedIconPath": "images/nav/home-on.png",
        "text": "首页"
      },
      {
        "pagePath": "pages/index/index",
        "iconPath": "images/nav/index-off.png",
        "selectedIconPath": "images/nav/index-on.png",
        "text": "点餐"
      },
      {
        "pagePath": "pages/queue/index",
        "iconPath": "images/nav/qh-off.png",
        "selectedIconPath": "images/nav/qh-on.png",
        "text": "取号"
      },
      {
        "pagePath": "pages/order-details/doing",
        "iconPath": "images/nav/qc-off.png",
        "selectedIconPath": "images/nav/qc-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": {
    "parser":"/components/parser.20200731.min/parser",
    "payment": "/components/payment/index",
    "van-button": "@vant/weapp/button/index",
    "van-sidebar": "@vant/weapp/sidebar/index",
    "van-sidebar-item": "@vant/weapp/sidebar-item/index",
    "van-swipe-cell": "@vant/weapp/swipe-cell/index",
    "van-card": "@vant/weapp/card/index",
    "van-submit-bar": "@vant/weapp/submit-bar/index",
    "van-popup": "@vant/weapp/popup/index",
    "van-stepper": "@vant/weapp/stepper/index",
    "van-row": "@vant/weapp/row/index",
    "van-col": "@vant/weapp/col/index",
    "van-divider": "@vant/weapp/divider/index",
    "van-icon": "@vant/weapp/icon/index",
    "van-empty": "@vant/weapp/empty/index",
    "van-field": "@vant/weapp/field/index",
    "van-cell": "@vant/weapp/cell/index",
    "van-cell-group": "@vant/weapp/cell-group/index",
    "van-dialog": "@vant/weapp/dialog/index",
    "van-overlay": "@vant/weapp/overlay/index",
    "van-tab": "@vant/weapp/tab/index",
    "van-tabs": "@vant/weapp/tabs/index",
    "van-datetime-picker": "@vant/weapp/datetime-picker/index",
    "van-calendar": "@vant/weapp/calendar/index",
    "van-notice-bar": "@vant/weapp/notice-bar/index",
    "van-tabbar": "@vant/weapp/tabbar/index",
    "van-tabbar-item": "@vant/weapp/tabbar-item/index",
    "van-tag": "@vant/weapp/tag/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-uploader": "@vant/weapp/uploader/index",
    "van-grid": "@vant/weapp/grid/index",
    "van-grid-item": "@vant/weapp/grid-item/index",
    "van-count-down": "@vant/weapp/count-down/index",
    "van-progress": "@vant/weapp/progress/index",
    "van-radio": "@vant/weapp/radio/index",
    "van-radio-group": "@vant/weapp/radio-group/index",
    "van-sticky": "@vant/weapp/sticky/index"
  },
  "sitemapLocation": "sitemap.json"
}

================================================
FILE: app.wxss
================================================
page {
  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,
    Segoe UI, Arial, Roboto, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft Yahei',
    sans-serif;
}
page,view,image,input {
  display: block;
  box-sizing: border-box;
}
.badge {
  position: absolute;
  top: 0;
  right: 0;
  box-sizing: border-box;
  width: 38rpx;
  height: 38rpx;
  line-height: 38rpx;
  color: #fff;
  font-size: 20rpx;
  text-align: center;
  background-color: #e64340;
  border: 1rpx solid #fff;
  border-radius: 50%;
}
.block-btn {
  padding: 0 32rpx;
}

================================================
FILE: components/parser.20200731.min/libs/CssHandler.js
================================================
function t(t){var s=Object.assign(Object.create(null),i.userAgentStyles);for(var h in t)s[h]=(s[h]?s[h]+";":"")+t[h];this.styles=s}function s(t,s){this.data=t,this.floor=0,this.i=0,this.list=[],this.res=s,this.state=this.Space}var i=require("./config.js"),h=function(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"};t.prototype.getStyle=function(t){this.styles=new s(t,this.styles).parse()},t.prototype.match=function(t,s){var i,h=(i=this.styles[t])?i+";":"";if(s.class)for(var e,a=s.class.split(" "),o=0;e=a[o];o++)(i=this.styles["."+e])&&(h+=i+";");return(i=this.styles["#"+s.id])&&(h+=i+";"),h},module.exports=t,s.prototype.parse=function(){for(var t;t=this.data[this.i];this.i++)this.state(t);return this.res},s.prototype.section=function(){return this.data.substring(this.start,this.i)},s.prototype.Space=function(t){"."==t||"#"==t||h(t)?(this.start=this.i,this.state=this.Name):"/"==t&&"*"==this.data[this.i+1]?this.Comment():i.blankChar[t]||";"==t||(this.state=this.Ignore)},s.prototype.Comment=function(){this.i=this.data.indexOf("*/",this.i)+1,this.i||(this.i=this.data.length),this.state=this.Space},s.prototype.Ignore=function(t){"{"==t?this.floor++:"}"!=t||--this.floor||(this.state=this.Space)},s.prototype.Name=function(t){i.blankChar[t]?(this.list.push(this.section()),this.state=this.NameSpace):"{"==t?(this.list.push(this.section()),this.Content()):","==t?(this.list.push(this.section()),this.Comma()):!h(t)&&(t<"0"||t>"9")&&"-"!=t&&"_"!=t&&(this.state=this.Ignore)},s.prototype.NameSpace=function(t){"{"==t?this.Content():","==t?this.Comma():i.blankChar[t]||(this.state=this.Ignore)},s.prototype.Comma=function(){for(;i.blankChar[this.data[++this.i]];);"{"==this.data[this.i]?this.Content():(this.start=this.i--,this.state=this.Name)},s.prototype.Content=function(){this.start=++this.i,-1==(this.i=this.data.indexOf("}",this.i))&&(this.i=this.data.length);for(var t,s=this.section(),i=0;t=this.list[i++];)this.res[t]?this.res[t]+=";"+s:this.res[t]=s;this.list=[],this.state=this.Space}

================================================
FILE: components/parser.20200731.min/libs/MpHtmlParser.js
================================================
// 小程序富文本插件 https://github.com/jin-yufeng/Parser
var emoji;function t(t){var s=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.attrs={},this.CssHandler=new e(r.tagStyle,a),this.data=t,this.domain=r.domain,this.DOM=[],this.i=this.start=this.audioNum=this.imgNum=this.videoNum=0,r.prot=(this.domain||"").includes("://")?this.domain.split("://")[0]:"http",this.options=r,this.state=this.Text,this.STACK=[],this.bubble=function(){for(var t,e=s.STACK.length;t=s.STACK[--e];){if(i.richOnlyTags[t.name])return"table"!=t.name||Object.hasOwnProperty.call(t,"c")||(t.c=1),!1;t.c=1}return!0},this.decode=function(t,s){for(var e,a,r=-1;;){if(-1==(r=t.indexOf("&",r+1)))break;if(-1==(e=t.indexOf(";",r+2)))break;"#"==t[r+1]?(a=parseInt(("x"==t[r+2]?"0":"")+t.substring(r+2,e)),isNaN(a)||(t=t.substr(0,r)+String.fromCharCode(a)+t.substr(e+1))):(a=t.substring(r+1,e),(i.entities[a]||a==s)&&(t=t.substr(0,r)+(i.entities[a]||"&")+t.substr(e+1)))}return t},this.getUrl=function(t){return"/"==t[0]?"/"==t[1]?t=s.options.prot+":"+t:s.domain&&(t=s.domain+t):s.domain&&0!=t.indexOf("data:")&&!t.includes("://")&&(t=s.domain+"/"+t),t},this.isClose=function(){return">"==s.data[s.i]||"/"==s.data[s.i]&&">"==s.data[s.i+1]},this.section=function(){return s.data.substring(s.start,s.i)},this.parent=function(){return s.STACK[s.STACK.length-1]},this.siblings=function(){return s.STACK.length?s.parent().children:s.DOM}}var i=require("./config.js"),s=i.blankChar,e=require("./CssHandler.js"),a=wx.getSystemInfoSync().windowWidth;t.prototype.parse=function(){emoji&&(this.data=emoji.parseEmoji(this.data));for(var t;t=this.data[this.i];this.i++)this.state(t);for(this.state==this.Text&&this.setText();this.STACK.length;)this.popNode(this.STACK.pop());return this.DOM},t.prototype.setAttr=function(){var t=this.attrName.toLowerCase(),e=this.attrVal;for(i.boolAttrs[t]?this.attrs[t]="T":e&&("src"==t||"data-src"==t&&!this.attrs.src?this.attrs.src=this.getUrl(this.decode(e,"amp")):"href"==t||"style"==t?this.attrs[t]=this.decode(e,"amp"):"data-"!=t.substr(0,5)&&(this.attrs[t]=e)),this.attrVal="";s[this.data[this.i]];)this.i++;this.isClose()?this.setNode():(this.start=this.i,this.state=this.AttrName)},t.prototype.setText=function(){var t,e=this.section();if(e)if(e=i.onText&&i.onText(e,function(){return t=!0})||e,t){this.data=this.data.substr(0,this.start)+e+this.data.substr(this.i);var a=this.start+e.length;for(this.i=this.start;this.i<a;this.i++)this.state(this.data[this.i])}else{if(!this.pre){for(var r,h,n=[],o=e.length;h=e[--o];)s[h]?(" "!=n[0]&&n.unshift(" "),"\n"==h&&void 0==r&&(r=0)):(n.unshift(h),r||(r=1));if(0==r)return;e=n.join("")}this.siblings().push({type:"text",text:this.decode(e)})}},t.prototype.setNode=function(){var t={name:this.tagName.toLowerCase(),attrs:this.attrs},e=i.selfClosingTags[t.name];if(this.attrs={},i.ignoreTags[t.name])if(e)if("source"==t.name){var r=this.parent();r&&("video"==r.name||"audio"==r.name)&&t.attrs.src&&r.attrs.source.push(t.attrs.src)}else"base"!=t.name||this.domain||(this.domain=t.attrs.href);else this.remove(t);else{var h=t.attrs,n=this.CssHandler.match(t.name,h,t)+(h.style||""),o={};switch(h.id&&(1&this.options.compress?h.id=void 0:this.options.useAnchor&&this.bubble()),2&this.options.compress&&h.class&&(h.class=void 0),t.name){case"a":case"ad":this.bubble();break;case"font":if(h.color&&(o.color=h.color,h.color=void 0),h.face&&(o["font-family"]=h.face,h.face=void 0),h.size){var l=parseInt(h.size);l<1?l=1:l>7&&(l=7);var d=["xx-small","x-small","small","medium","large","x-large","xx-large"];o["font-size"]=d[l-1],h.size=void 0}break;case"embed":var u=t.attrs.src||"",c=t.attrs.type||"";if(c.includes("video")||u.includes(".mp4")||u.includes(".3gp")||u.includes(".m3u8"))t.name="video";else{if(!(c.includes("audio")||u.includes(".m4a")||u.includes(".wav")||u.includes(".mp3")||u.includes(".aac")))break;t.name="audio"}t.attrs.autostart&&(t.attrs.autoplay="T"),t.attrs.controls="T";/*fallsthrough*/case"video":case"audio":h.id?this[t.name+"Num"]++:h.id=t.name+ ++this[t.name+"Num"],"video"==t.name&&(this.videoNum>3&&(t.lazyLoad=1),h.width&&(o.width=parseFloat(h.width)+(h.width.includes("%")?"%":"px"),h.width=void 0),h.height&&(o.height=parseFloat(h.height)+(h.height.includes("%")?"%":"px"),h.height=void 0)),h.controls||h.autoplay||(h.controls="T"),h.source=[],h.src&&(h.source.push(h.src),h.src=void 0),this.bubble();break;case"td":case"th":if(h.colspan||h.rowspan)for(var f,p=this.STACK.length;f=this.STACK[--p];)if("table"==f.name){f.c=void 0;break}}h.align&&(o["text-align"]=h.align,h.align=void 0);var m=n.split(";");n="";for(var g=0,v=m.length;g<v;g++){var b=m[g].split(":");if(!(b.length<2)){var x=b[0].trim().toLowerCase(),y=b.slice(1).join(":").trim();"-"==y[0]||y.includes("safe")?n+=";"+x+":"+y:o[x]&&!y.includes("import")&&o[x].includes("import")||(o[x]=y)}}if("img"==t.name){h.src&&!h.ignore&&(this.bubble()?h.i=(this.imgNum++).toString():h.ignore="T"),h.ignore&&(n+=";-webkit-touch-callout:none",o["max-width"]="100%");var C;o.width?C=o.width:h.width&&(C=h.width.includes("%")?h.width:h.width+"px"),C&&(o.width=C,h.width="100%",parseInt(C)>a&&(o.height="",h.height&&(h.height=void 0))),o.height?(h.height=o.height,o.height=""):h.height&&!h.height.includes("%")&&(h.height+="px")}for(var T in o){var w=o[T];if(w){if((T.includes("flex")||"order"==T||"self-align"==T)&&(t.c=1),w.includes("url")){var A=w.indexOf("(");if(-1!=A++){for(;'"'==w[A]||"'"==w[A]||s[w[A]];)A++;w=w.substr(0,A)+this.getUrl(w.substr(A))}}else w.includes("rpx")?w=w.replace(/[0-9.]+\s*rpx/g,function(t){return parseFloat(t)*a/750+"px"}):"white-space"==T&&w.includes("pre")&&!e&&(this.pre=t.pre=!0);n+=";"+T+":"+w}}n=n.substr(1),n&&(h.style=n),e?i.filter&&0==i.filter(t,this)||this.siblings().push(t):(t.children=[],"pre"==t.name&&i.highlight&&(this.remove(t),this.pre=t.pre=!0),this.siblings().push(t),this.STACK.push(t))}"/"==this.data[this.i]&&this.i++,this.start=this.i+1,this.state=this.Text},t.prototype.remove=function(t){var e=this,a=t.name,r=this.i,h=function(){var i=e.data.substring(r,e.i+1);t.attrs.xmlns||(i=' xmlns="http://www.w3.org/2000/svg"'+i);for(var s=r;"<"!=e.data[r];)r--;i=e.data.substring(r,s).replace("viewbox","viewBox")+i;var a=e.parent();"100%"==t.attrs.width&&a&&(a.attrs.style||"").includes("inline")&&(a.attrs.style="width:300px;max-width:100%;"+a.attrs.style),e.siblings().push({name:"img",attrs:{src:"data:image/svg+xml;utf8,"+i.replace(/#/g,"%23"),style:(/vertical[^;]+/.exec(t.attrs.style)||[]).shift(),ignore:"T"}})};if("svg"==t.name&&"/"==this.data[r])return h(this.i++);for(;;){if(-1==(this.i=this.data.indexOf("</",this.i+1)))return void(this.i="pre"==a||"svg"==a?r:this.data.length);for(this.start=this.i+=2;!s[this.data[this.i]]&&!this.isClose();)this.i++;if(this.section().toLowerCase()==a)return"pre"==a?(this.data=this.data.substr(0,r+1)+i.highlight(this.data.substring(r+1,this.i-5),t.attrs)+this.data.substr(this.i-5),this.i=r):("style"==a?this.CssHandler.getStyle(this.data.substring(r+1,this.i-7)):"title"==a&&(this.DOM.title=this.data.substring(r+1,this.i-7)),-1==(this.i=this.data.indexOf(">",this.i))&&(this.i=this.data.length),void("svg"==a&&h()))}},t.prototype.popNode=function(t){if(t.pre){t.pre=this.pre=void 0;for(var s=this.STACK.length;s--;)this.STACK[s].pre&&(this.pre=!0)}var e=this.siblings(),a=e.length,r=t.children;if("head"==t.name||i.filter&&0==i.filter(t,this))return e.pop();var h=t.attrs;if(i.blockTags[t.name]?t.name="div":i.trustTags[t.name]||(t.name="span"),t.c&&("ul"==t.name||"ol"==t.name))if((t.attrs.style||"").includes("list-style:none"))for(var n,o=0;n=r[o++];)"li"==n.name&&(n.name="div");else if("ul"==t.name){for(var l=1,d=this.STACK.length;d--;)"ul"==this.STACK[d].name&&l++;if(1!=l)for(var u=r.length;u--;)r[u].floor=l}else for(var c,f=0,p=1;c=r[f++];)"li"==c.name&&(c.type="ol",c.num=function(t,i){if("a"==i)return String.fromCharCode(97+(t-1)%26);if("A"==i)return String.fromCharCode(65+(t-1)%26);if("i"==i||"I"==i){t=(t-1)%99+1;var s=["I","II","III","IV","V","VI","VII","VIII","IX"],e=["X","XX","XXX","XL","L","LX","LXX","LXXX","XC"],a=(e[Math.floor(t/10)-1]||"")+(s[t%10-1]||"");return"i"==i?a.toLowerCase():a}return t}(p++,h.type)+".");if("table"==t.name){var m=h.cellpadding,g=h.cellspacing,v=h.border;if(t.c&&(this.bubble(),h.style=(h.style||"")+";display:table",m||(m=2),g||(g=2)),v&&(h.style="border:"+v+"px solid gray;"+(h.style||"")),g&&(h.style="border-spacing:"+g+"px;"+(h.style||"")),(v||m||t.c)&&function i(s){for(var e,a=0;e=s[a];a++)if("text"!=e.type){var r=e.attrs.style||"";t.c&&"t"==e.name[0]&&(e.c=1,r+=";display:table-"+("th"==e.name||"td"==e.name?"cell":"tr"==e.name?"row":"row-group")),"th"==e.name||"td"==e.name?(v&&(r="border:"+v+"px solid gray;"+r),m&&(r="padding:"+m+"px;"+r)):i(e.children||[]),r&&(e.attrs.style=r)}}(r),this.options.autoscroll){var b=Object.assign({},t);t.name="div",t.attrs={style:"overflow:scroll"},t.children=[b]}}this.CssHandler.pop&&this.CssHandler.pop(t),"div"!=t.name||Object.keys(h).length||1!=r.length||"div"!=r[0].name||(e[a-1]=r[0])},t.prototype.Text=function(t){if("<"==t){var i=this.data[this.i+1],s=function(t){return t>="a"&&t<="z"||t>="A"&&t<="Z"};s(i)?(this.setText(),this.start=this.i+1,this.state=this.TagName):"/"==i?(this.setText(),s(this.data[++this.i+1])?(this.start=this.i+1,this.state=this.EndTag):this.Comment()):"!"!=i&&"?"!=i||(this.setText(),this.Comment())}},t.prototype.Comment=function(){var t;t="--"==this.data.substring(this.i+2,this.i+4)?"--\x3e":"[CDATA["==this.data.substring(this.i+2,this.i+9)?"]]>":">",-1==(this.i=this.data.indexOf(t,this.i+2))?this.i=this.data.length:this.i+=t.length-1,this.start=this.i+1,this.state=this.Text},t.prototype.TagName=function(t){if(s[t]){for(this.tagName=this.section();s[this.data[this.i]];)this.i++;this.isClose()?this.setNode():(this.start=this.i,this.state=this.AttrName)}else this.isClose()&&(this.tagName=this.section(),this.setNode())},t.prototype.AttrName=function(t){if("="==t||s[t]||this.isClose()){if(this.attrName=this.section(),s[t])for(;s[this.data[++this.i]];);if("="==this.data[this.i]){for(;s[this.data[++this.i]];);this.start=this.i--,this.state=this.AttrValue}else this.setAttr()}},t.prototype.AttrValue=function(t){if('"'==t||"'"==t){if(this.start++,-1==(this.i=this.data.indexOf(t,this.i+1)))return this.i=this.data.length;this.attrVal=this.section(),this.i++}else{for(;!s[this.data[this.i]]&&!this.isClose();this.i++);this.attrVal=this.section()}this.setAttr()},t.prototype.EndTag=function(t){if(s[t]||">"==t||"/"==t){for(var i=this.section().toLowerCase(),e=this.STACK.length;e--&&this.STACK[e].name!=i;);if(-1!=e){for(var a;(a=this.STACK.pop()).name!=i;)this.popNode(a);this.popNode(a)}else"p"!=i&&"br"!=i||this.siblings().push({name:i,attrs:{}});this.i=this.data.indexOf(">",this.i),this.start=this.i+1,-1==this.i?this.i=this.data.length:this.state=this.Text}},module.exports=t

================================================
FILE: components/parser.20200731.min/libs/config.js
================================================
function e(e){for(var t=Object.create(null),a=e.split(","),o=a.length;o--;)t[a[o]]=!0;return t}var t=wx.canIUse("editor");
module.exports={
  errorImg:null,
  filter:null,
  highlight:null,
  onText:null,
  entities:{quot:'"',apos:"'",semi:";",nbsp:" ",ndash:"–",mdash:"—",middot:"·",lsquo:"‘",rsquo:"’",ldquo:"“",rdquo:"”",bull:"•",hellip:"…"},
  blankChar:e(' ,\xA0,\t,\r,\n,\f'),
  boolAttrs:e('autoplay,autostart,controls,ignore,loop,muted'),
  blockTags:e('address,article,aside,body,caption,center,cite,footer,header,html,nav,section'+(t?'':',pre')),
  ignoreTags:e('area,base,canvas,frame,iframe,input,link,map,meta,param,script,source,style,svg,textarea,title,track,wbr'+(t?',rp':'')),
  richOnlyTags:e('a,colgroup,fieldset,legend,table'+(t?',bdi,bdo,rt,ruby':'')),
  selfClosingTags:e('area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr'),
  trustTags:e('a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video'+(t?',bdi,bdo,caption,pre,rt,ruby':'')),
  userAgentStyles:{address:"font-style:italic",big:"display:inline;font-size:1.2em",blockquote:"background-color:#f6f6f6;border-left:3px solid #dbdbdb;color:#6c6c6c;padding:5px 0 5px 10px",caption:"display:table-caption;text-align:center",center:"text-align:center",cite:"font-style:italic",dd:"margin-left:40px",mark:"background-color:yellow",pre:"font-family:monospace;white-space:pre;overflow:scroll",s:"text-decoration:line-through",small:"display:inline;font-size:0.8em",u:"text-decoration:underline"}
}

================================================
FILE: components/parser.20200731.min/parser.js
================================================
// 小程序富文本插件 https://github.com/jin-yufeng/Parser
var dom;var search;function t(t){for(var e=t.length,i=5381;e--;)i+=(i<<5)+t.charCodeAt(e);return i}var e={},i=require("./libs/MpHtmlParser.js"),n=wx.getFileSystemManager&&wx.getFileSystemManager();Component({options:{pureDataPattern:/^[acdgtu]|W/},data:{nodes:[]},properties:{html:{type:String,observer:function(t){this.setContent(t)}},autopause:{type:Boolean,value:!0},autoscroll:Boolean,autosetTitle:{type:Boolean,value:!0},compress:Number,domain:String,lazyLoad:Boolean,loadingImg:String,selectable:Boolean,tagStyle:Object,showWithAnimation:Boolean,useAnchor:Boolean,useCache:Boolean},relations:{"../parser-group/parser-group":{type:"ancestor"}},created:function(){var t=this;this.imgList=[],this.imgList.setItem=function(t,e){var i=this;if(t&&e){if(0==e.indexOf("http")&&this.includes(e)){for(var s,a="",o=0;(s=e[o])&&("/"!=s||"/"==e[o-1]||"/"==e[o+1]);o++)a+=Math.random()>.5?s.toUpperCase():s;return a+=e.substr(o),this[t]=a}if(this[t]=e,e.includes("data:image")){var r=e.match(/data:image\/(\S+?);(\S+?),(.+)/);if(!r)return;var l=wx.env.USER_DATA_PATH+"/"+Date.now()+"."+r[1];n&&n.writeFile({filePath:l,data:r[3],encoding:r[2],success:function(){return i[t]=l}})}}},this.imgList.each=function(t){for(var e=0,i=this.length;e<i;e++)this.setItem(e,t(this[e],e,this))},dom&&(this.document=new dom(this)),search&&(this.search=function(e){return search(t,e)})},detached:function(){this.imgList.each(function(t){t&&t.includes(wx.env.USER_DATA_PATH)&&n&&n.unlink({filePath:t})}),clearInterval(this._timer)},methods:{in:function(t){t.page&&t.selector&&t.scrollTop&&(this._in=t)},navigateTo:function(t){var e=this;if(!this.data.useAnchor)return t.fail&&t.fail("Anchor is disabled");var i=(this._in?this._in.page:this).createSelectorQuery().select((this._in?this._in.selector:".top")+(t.id?">>>#"+t.id:"")).boundingClientRect();this._in?i.select(this._in.selector).fields({rect:!0,scrollOffset:!0}):i.selectViewport().scrollOffset(),i.exec(function(i){if(!i[0])return e.group?e.group.navigateTo(e.i,t):t.fail&&t.fail("Label not found");var n=i[1].scrollTop+i[0].top-(i[1].top||0)+(t.offset||0);if(e._in){var s={};s[e._in.scrollTop]=n,e._in.page.setData(s)}else wx.pageScrollTo({scrollTop:n});t.success&&t.success()})},getText:function(){for(var t,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.data.nodes,i="",n=0;t=e[n++];)if("text"==t.type)i+=t.text.replace(/&nbsp;/g," ").replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&amp;/g,"&");else if("br"==t.type)i+="\n";else{var s="p"==t.name||"div"==t.name||"tr"==t.name||"li"==t.name||"h"==t.name[0]&&t.name[1]>"0"&&t.name[1]<"7";s&&i&&"\n"!=i[i.length-1]&&(i+="\n"),t.children&&(i+=this.getText(t.children)),s&&"\n"!=i[i.length-1]?i+="\n":"td"!=t.name&&"th"!=t.name||(i+="\t")}return i},getVideoContext:function(t){if(!t)return this.videoContexts;for(var e=this.videoContexts.length;e--;)if(this.videoContexts[e].id==t)return this.videoContexts[e]},setContent:function(n,s){var a,o=this,r=new i(n,this.data);if(this.data.useCache){var l=t(n);e[l]?a=e[l]:e[l]=a=r.parse()}else a=r.parse();this.triggerEvent("parse",a);var h={};if(s)for(var c=this.data.nodes.length,d=a.length;d--;)h["nodes["+(c+d)+"]"]=a[d];else h.nodes=a;this.showWithAnimation&&(h.showAm="animation: show .5s"),this.setData(h,function(){o.triggerEvent("load")}),a.title&&this.data.autosetTitle&&wx.setNavigationBarTitle({title:a.title}),this.imgList.length=0,this.videoContexts=[];for(var u,g=this.selectAllComponents(".top,.top>>>._node"),f=0;u=g[f++];){u.top=this;for(var m,p=0;m=u.data.nodes[p++];)if(!m.c)if("img"==m.name)this.imgList.setItem(m.attrs.i,m.attrs.src);else if("video"==m.name||"audio"==m.name){var v;v="video"==m.name?wx.createVideoContext(m.attrs.id,u):u.selectComponent("#"+m.attrs.id),v&&(v.id=m.attrs.id,this.videoContexts.push(v))}}var x;clearInterval(this._timer),this._timer=setInterval(function(){o.createSelectorQuery().select(".top").boundingClientRect(function(t){t&&(o.rect=t,t.height==x&&(o.triggerEvent("ready",t),clearInterval(o._timer)),x=t.height)}).exec()},350)}}})

================================================
FILE: components/parser.20200731.min/parser.json
================================================
{"component":true,"usingComponents":{"trees":"./trees/trees"}}

================================================
FILE: components/parser.20200731.min/parser.wxml
================================================
<slot wx:if="{{!nodes.length}}"/><trees class="top"style="{{selectable?'user-select:text;-webkit-user-select:text;':''}}{{showAm}}"lazy-load="{{lazyLoad}}"loading="{{loadingImg}}"nodes="{{nodes}}"/>

================================================
FILE: components/parser.20200731.min/parser.wxss
================================================
:host{display:block;overflow:scroll;webkit-overflow-scrolling:touch}.top{display:inherit}@keyframes show{0%{opacity:0}100%{opacity:1}}

================================================
FILE: components/parser.20200731.min/trees/trees.js
================================================
function _defineProperty(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var t=require("../libs/config.js").errorImg;Component({data:{canIUse:!!wx.chooseMessageFile,placeholder:"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='300' height='225'/>",ctrl:[]},properties:{nodes:Array,lazyLoad:Boolean,loading:String},methods:{play:function(t){if(this.top.group&&this.top.group.pause(this.top.i),this.top.videoContexts.length>1&&this.top.data.autopause)for(var e=this.top.videoContexts.length;e--;)this.top.videoContexts[e].id!=t.currentTarget.id&&this.top.videoContexts[e].pause()},imgtap:function(t){var e=t.currentTarget.dataset.attrs;if(!e.ignore){var r=!0;if(this.top.triggerEvent("imgtap",{id:t.currentTarget.id,src:e.src,ignore:function(){return r=!1}}),r){if(this.top.group)return this.top.group.preview(this.top.i,e.i);var i=this.top.imgList,a=i[e.i]?i[e.i]:(i=[e.src],e.src);wx.previewImage({current:a,urls:i})}}},loadImg:function(t){var e=t.target.dataset.i;this.data.lazyLoad&&!this.data.ctrl[e]?this.setData(_defineProperty({},"ctrl["+e+"]",1)):this.data.loading&&2!=this.data.ctrl[e]&&this.setData(_defineProperty({},"ctrl["+e+"]",2))},linkpress:function(t){var e=!0,r=t.currentTarget.dataset.attrs;r.ignore=function(){return e=!1},this.top.triggerEvent("linkpress",r),e&&(r["app-id"]?wx.navigateToMiniProgram({appId:r["app-id"],path:r.path}):r.href&&("#"==r.href[0]?this.top.navigateTo({id:r.href.substring(1)}):0==r.href.indexOf("http")||0==r.href.indexOf("//")?wx.setClipboardData({data:r.href,success:function(){return wx.showToast({title:"链接已复制"})}}):wx.navigateTo({url:r.href,fail:function(){wx.switchTab({url:r.href})}})))},error:function(e){var r=e.target.dataset.source,i=e.target.dataset.i,a=this.data.nodes[i];if("video"==r||"audio"==r){var s=(a.i||0)+1;if(s<a.attrs.source.length)return this.setData(_defineProperty({},"nodes["+i+"].i",s))}else"img"==r&&t&&(this.top.imgList.setItem(e.target.dataset.index,t),this.setData(_defineProperty({},"nodes["+i+"].attrs.src",t)));this.top&&this.top.triggerEvent("error",{source:r,target:e.target,errMsg:e.detail.errMsg})},loadVideo:function(t){this.setData(_defineProperty({},"nodes["+t.target.dataset.i+"].attrs.autoplay",!0))}}})

================================================
FILE: components/parser.20200731.min/trees/trees.json
================================================
{"component":true,"usingComponents":{"trees":"./trees"}}

================================================
FILE: components/parser.20200731.min/trees/trees.wxml
================================================
<wxs module="handler">var s={abbr:1,b:1,big:1,code:1,del:1,em:1,i:1,ins:1,label:1,q:1,small:1,span:1,strong:1,sub:1,sup:1};module.exports={visited:function(s,e){s.instance.hasClass("_visited")||s.instance.addClass("_visited"),e.callMethod("linkpress",s)},use:function(e){return!e.c&&!s[e.name]&&-1==(e.attrs.style||"").indexOf("display:inline")}}</wxs><block wx:for="{{nodes}}" wx:for-item="n" wx:for-index="i" wx:key="i"><view wx:if="{{n.name=='img'}}" id="{{n.attrs.id}}" class="_img {{n.attrs.class}}" style="{{n.attrs.style}}" data-attrs="{{n.attrs}}" bindtap="imgtap"><rich-text nodes="{{[{attrs:{src:loading&&ctrl[i]!=2?loading:(lazyLoad&&!ctrl[i]?placeholder:n.attrs.src||''),alt:n.attrs.alt||'',width:n.attrs.width||'',style:'-webkit-touch-callout:none;max-width:100%;display:block'+(n.attrs.height?';height:'+n.attrs.height:'')},name:'img'}]}}"/><image class="_image" src="{{lazyLoad&&!ctrl[i]?placeholder:n.attrs.src}}" lazy-load="{{lazyLoad}}" show-menu-by-longpress="{{!n.attrs.ignore}}" data-i="{{i}}" data-index="{{n.attrs.i}}" data-source="img" bindload="loadImg" binderror="error"/></view><text wx:elif="{{n.type=='text'}}" decode>{{n.text}}</text><text wx:elif="{{n.name=='br'}}">\n</text><view wx:elif="{{n.name=='a'}}" id="{{n.attrs.id}}" class="_a {{n.attrs.class}}" hover-class="_hover" style="{{n.attrs.style}}" data-attrs="{{n.attrs}}" bindtap="{{canIUse?handler.visited:'linkpress'}}"><trees class="_node" nodes="{{n.children}}"/></view><block wx:elif="{{n.name=='video'}}"><view wx:if="{{n.lazyLoad&&!n.attrs.autoplay}}" id="{{n.attrs.id}}" class="_video {{n.attrs.class}}" style="{{n.attrs.style}}" data-i="{{i}}" bindtap="loadVideo"/><video wx:else id="{{n.attrs.id}}" class="{{n.attrs.class}}" style="{{n.attrs.style}}" autoplay="{{n.attrs.autoplay}}" controls="{{n.attrs.controls}}" loop="{{n.attrs.loop}}" muted="{{n.attrs.muted}}" poster="{{n.attrs.poster}}" src="{{n.attrs.source[n.i||0]}}" unit-id="{{n.attrs['unit-id']}}" data-i="{{i}}" data-source="video" binderror="error" bindplay="play"/></block><audio wx:elif="{{n.name=='audio'}}" id="{{n.attrs.id}}" class="{{n.attrs.class}}" style="{{n.attrs.style}}" author="{{n.attrs.author}}" autoplay="{{n.attrs.autoplay}}" controls="{{n.attrs.controls}}" loop="{{n.attrs.loop}}" name="{{n.attrs.name}}" poster="{{n.attrs.poster}}" src="{{n.attrs.source[n.i||0]}}" data-i="{{i}}" data-source="audio" binderror="error" bindplay="play"/><ad wx:elif="{{n.name=='ad'}}" class="{{n.attrs.class}}" style="{{n.attrs.style}}" unit-id="{{n.attrs['unit-id']}}" data-source="ad" binderror="error"/><view wx:elif="{{n.name=='li'}}" id="{{n.attrs.id}}" class="{{n.attrs.class}}" style="{{n.attrs.style}};display:flex"><view wx:if="{{n.type=='ol'}}" class="_ol-bef">{{n.num}}</view><view wx:else class="_ul-bef"><view wx:if="{{n.floor%3==0}}" class="_ul-p1">█</view><view wx:elif="{{n.floor%3==2}}" class="_ul-p2"/><view wx:else class="_ul-p1" style="border-radius:50%">█</view></view><trees class="_node _li" lazyLoad="{{lazyLoad}}" loading="{{loading}}" nodes="{{n.children}}"/></view><rich-text wx:elif="{{handler.use(n)}}" id="{{n.attrs.id}}" class="_p __{{n.name}}" nodes="{{[n]}}"/><trees wx:else id="{{n.attrs.id}}" class="_node _{{n.name}} {{n.attrs.class}}" style="{{n.attrs.style}}" lazyLoad="{{lazyLoad}}" loading="{{loading}}" nodes="{{n.children}}"/></block>

================================================
FILE: components/parser.20200731.min/trees/trees.wxss
================================================
._a{display:inline;padding:1.5px 0 1.5px 0;color:#366092;word-break:break-all}._hover{text-decoration:underline;opacity:.7}._visited{color:#551a8b}._img{display:inline-block;max-width:100%;overflow:hidden}:host{display:inline}._blockquote,._div,._p,._ul,._ol,._li{display:block}._b,._strong{font-weight:bold}._code{font-family:monospace}._del{text-decoration:line-through}._em,._i{font-style:italic}._h1{font-size:2em}._h2{font-size:1.5em}._h3{font-size:1.17em}._h5{font-size:.83em}._h6{font-size:.67em}._h1,._h2,._h3,._h4,._h5,._h6{display:block;font-weight:bold}._image{display:block;width:100%;height:360px;margin-top:-360px;opacity:0}._ins{text-decoration:underline}._li{flex:1;width:0}._ol-bef{width:36px;margin-right:5px;text-align:right}._ul-bef{margin:0 12px 0 23px;line-height:normal}._ol-bef,._ul-bef{flex:none;user-select:none}._ul-p1{display:inline-block;width:.3em;height:.3em;overflow:hidden;line-height:.3em}._ul-p2{display:inline-block;width:.23em;height:.23em;border:.05em solid black;border-radius:50%}._q::before{content:'"'}._q::after{content:'"'}._sub{font-size:smaller;vertical-align:sub}._sup{font-size:smaller;vertical-align:super}.__bdi,.__bdo,.__ruby,.__rt{display:inline-block}._video{position:relative;display:inline-block;width:300px;height:225px;background-color:black}._video::after{position:absolute;top:50%;left:50%;margin:-15px 0 0 -15px;content:'';border-color:transparent transparent transparent white;border-style:solid;border-width:15px 0 15px 30px}

================================================
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,
    useCard: {
      type: Boolean,
      value: true
    }
  },

  /**
   * 组件的内部数据,和 properties 一同用于组件的模板渲染
   */
  data: {
    payType: 'wx',
    alipayOpenMod: '0'
  },
  // 组件数据字段监听器,用于监听 properties 和 data 的变化
  observers: {
    'show': function(show) {
      this.setData({
        alipayQrcode: null,
        alipayOpenMod: wx.getStorageSync('alipay')
      })
    }
  },
  lifetimes: {
    attached() {
      getApp().initLanguage(this)
    },
    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() {
      let token = wx.getStorageSync('payToken')
      if (!token) {
        token = wx.getStorageSync('token')
      }
      const postData = {
        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: this.data.$t.payment.notSupport,
          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.data.$t.asset.success
            })
            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: resQrcode.msg,
            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">{{ $t.payment.select }}</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="{{ $t.payment.wx }}" 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="{{ $t.payment.alipay }}" clickable data-name="alipay" bind:click="payTypeClick">
          <van-radio slot="right-icon" name="alipay" />
        </van-cell>
        <!-- <van-cell wx:if="{{ useCard }}" icon="https://dcdn.it120.cc/2024/08/29/b6fdcdd9-bb24-46fd-b066-1a41c0ea8047.png" title="{{ $t.payment.alipay }}" 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">{{ $t.payment.alipayQrcodeText }}</view>
    </block>
    
    <view wx:if="{{ !alipayQrcode }}" class="btn-box">
      <van-button type="primary" block round bind:click="submit">{{ $t.order.toPayTap }}</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: config.js
================================================
module.exports = {
  version: "26.3.18",
  note: '商品存在多SKU的情况下,选择不同的规格,显示不同的规格图片',
  subDomain: "beeorder", // 根据教程 https://www.it120.cc/help/qr6l4m.html 查看并设置你自己的 subDomain
  merchantId: 27, // 商户ID,可在后台工厂设置-->商户信息查看
  customerServiceType: 'QW' // 客服类型,QW为企业微信,需要在后台系统参数配置企业ID和客服URL,否则为小程序的默认客服
}

================================================
FILE: i18n/en.js
================================================
module.exports = {
  common: {
    select: 'Select',
    save: 'Submit',
    cancel: 'Cancel',
    confirm: 'Confirm',
    doubleClick: 'Take a break~',
    empty: 'No Data',
    submitSuccess: 'Submitted',
    gotIt: 'Got it',
    search: 'Search',
    searchPlaceholder: 'Enter search keywords',
    getCodeError: 'Fetch code Fail',
    loginFail: 'Can\'t Login',
    authorizeRequired: 'Need Authorization',
    authorize: 'Auth',
    upgrade: 'The new version is ready. Do you want to restart the application?',
    noNetwork: 'Currently no network available',
    networkDown: 'Network disconnected',
    privacyPermission: 'Not agreeing to the user privacy agreement',
  },
  auth: {
    needLogin: 'Please Login First',
    goAdmin: 'Manager',
  },
  date: {
    year: 'Y',
    month: 'M',
    day: 'D',
    hour: 'H',
    minutes: 'm',
  },
  ad_index: {
    title: 'Shipping Address',
    add: 'New Address',
    empty: 'Address is Empty',
    pleaseAdd: 'Click to Add Address',
    linkMan: 'Name',
    linkManPlaceholder: 'Input Recipient Name',
    mobile: 'Mobile',
    mobilePlaceholder: 'Input Mobile',
    region: 'Region',
    regionPlaceholder: 'Select Region',
    location: 'Positioning',
    address: 'Address',
    addressPlaceholder: 'Streets, buildings, house signs, etc',
    apiError: 'Unable to Obtain Data',
    deleteProfile: 'Are you sure you want to delete this Shipping Address?',
  },
  order: {
    title: 'Orders',
    cancelProfile: 'Are you sure you want to cancel this order?',
    scoreNotEnough: 'Your Score are is Not enough!',
    amountReal: 'Order Amount',
    balance: 'Balance',
    payAmount: 'Still need Pay',
    payScore: 'Score need to be deducted:',
    noCashAccount: 'Unable to obtain user funding information',
    status: {
      st01: 'Canceled',
      st10: 'To be picked',
      st11: 'In delivery',
      st3: 'Completed',
    },
    deleteProfile: 'Are you sure you want to delete this order?',
    empty: {
      t1: 'You haven\'t ordered your meal yet',
      t2: 'Hurry up and reward yourself!',
      btn: 'Go and order a meal',
    },
    dateAdd: 'Order Time',
    orderNumber: 'Order No',
    callShop: 'Contact',
    deleteOrder: 'Delete',
    cancelOrder: 'Cancel',
    toPayTap: 'Pay Now',
    detail: 'Order Detail',
    askConfirm: 'Are you sure you have received the product?',
    VerificationCompleted: 'Verification Completed',
    stausClosed: 'Order has been closed',
    stausNoPay: 'Waiting to Pay',
    stausSuccess: 'Transaction completed',
  },
  cashLog: {
    title: 'Fund details',
  },
  asset: {
    title: 'Wallet',
    recharge: 'Recharge',
    amount: 'Amount',
    amountPlaceholder: 'Please enter the recharge amount',
    confirmBtn: 'Confirm Recharge',
    success: 'Payment successful',
    confine: 'Pay',
    send: 'Send',
    other: 'Other',
    rechargeLogs: 'Recharge Records',
  },
  booking: {
    title: 'Booking',
    name: 'Name',
    namePlaceholder: 'Enter contact person',
    mobile: 'Mobile',
    mobilePlaceholder: 'Convenient for us to contact you',
    time: 'Arrival',
    timePlaceholder: 'Select estimated time of arrival',
    person: 'Person',
    tip: 'Seat reserved for half an hour, invalid if overdue',
  },
  cart: {
    title: 'Cart',
    empty: 'No Data',
    clear: 'Clear All',
    num: 'Num',
    btn: 'Submit',
    ordered: 'Ordered Dishes',
    tableNum: 'TableNum',
    Tobeconfirmed: 'To be confirmed',
    Cooked:'Cooked',
    Served:'Served',
    Numofdishes:'Num of dishes',
    Consumptionamount:'Consumption amount',
    Payableamount:'Payable amount',
    Check:'Check',
  },
  coupons: {
    title: 'Coupons',
    inputpassword:'Input password',
    Cominglate:'Cominglate',
    receivedgreedy:'You have received it, you cannot receive it anymore',
    pointsinsufficient:'Your points are insufficient',
    Expired :'Expired',
    Successfullyclaimed :'Success',
    enternum:'Enter the coupon number',
    password:'password',
    Redemption:'Redemption successful',
    Invitingcoupons:'Inviting you to collect coupons',
    Vouchers: 'Vouchers',
    over: 'Over',
    btn: 'Fetch',
    expire: 'exp',
    toUse: 'Use',
    number: 'Code',
    numberPlaceholder: 'Please enter the coupon Code',
    pwd: 'Password',
    pwdPlaceholder: 'Please enter password',
    change: 'Exchange',
  },
  goodsDetail: {
    title: 'Product Details',
    noStores: 'sold out',
    noSelectSku: 'Please select sku',
    noSelectAddtion: 'Please select an accessory',
    buyNumber: 'Purchase quantity',
    noSelectNumber: 'Please select the purchase quantity',
    addCartSuccess: 'Add Success',
    addCartBtn: 'Add to Cart',
    inviteKanJia: 'Inviting you to help TA negotiate',
    inviteKanJiaFriend: 'Invite friends to help',
    kanJiaAmount: 'Successfully helped TA cut it down',
    kanJiaSetting: 'Bargaining Settings',
    longTapQrcode: 'Long press to recognize mini program code',
    qrcodeSaved: 'saved to phone album',
    commission1: 'Sharing rewards, friends can receive rewards after placing an order',
    commission2: 'Points reward',
    commission3: 'Cash rewards',
    limit: 'Limited',
    saledNum: 'Sold',
    originalPrice: 'Original Price',
    minPrice: 'Min Price',
    end: 'End',
    ended: 'Bargaining has ended',
    help: 'Help',
    kanjia: 'Bargaining',
    help2: 'Help',
    helpPerson: 'Help Person',
    status: 'Status',
    joinTime: 'Registration Time',
    buy: 'Purchase',
    kanjiaLogs: 'Bargaining Records',
    helped: 'You have already Helped',
    helphe: 'Help',
    buyUseCurPrice: 'Purchase at current price',
    storeing: 'Replenishing',
    kanjiaBtn: 'Initiate bargaining | Invite friends to help',
    saveImage: 'Save to album',
  },
  index: {
    pingtuanNoOpen: 'Grouping function is not enabled',
    pickup: 'Pickup',
    Delivery: 'Delivery',
    shopDetail: 'Merchant Info',
    minPrice: 'On hand price',
    noStart: 'Start Later',
    miaoshaEnd: 'Finished',
    pingtuan: 'Join',
    selectSku: 'SKU',
    submit: 'Selected',
    selectShop: ' Select Shop',
    noBusiness: 'no Business',
    p_persion: 'People Join',
    p_numsuc: 'Joined',
    remain: 'Remain',
    remainToSuccess: ' People, can be successfully',
    pingSuccess: 'Successfully',
    originalPriceBuy: 'Original Buy',
    openNewPingtuan: 'Reopen Group',
    pingtuanProcess: 'Collaborating process',
    step1: 'Payment Opening',
    step2: 'Friend participation',
    step3: 'Successfully picked up the meal',
    step4: 'Refund failed',
    order: 'Ordering',
    PickingUp: 'Picking Up',
    ordered: 'Ordered',
    home: 'Home',
  },
  queue: {
    t: 'Queue',
    success: 'Successfully',
    myNumber: 'My Number',
    ExpectedWaiting: 'Expected Waiting',
    minutes: 'Minutes',
  },
  my: {
    title: 'My',
    nickEdit: 'Edit Nick',
    nickSet: 'Edit Nick',
    nickRequired: 'Please fill in your Nick',
    uid: 'UID',
    userCode: 'Code',
    score: 'Score',
    signDaily: 'Daily check-in',
    scanHx: 'Scan code for verification',
    youhuimaidan: 'Discount purchase',
    aboutUs: 'About Us',
    Contact: 'Contact US',
    clearStorage: 'Clear Cache',
  },
  vip: {
    title: 'VIP',
    consumption: 'Total Consumption',
    notVIP: 'Not VIP',
    tip: 'Consumption Reaches, Upgrade Automatically',
    growth: 'Member Growth System',
    growthName: 'Level',
    growthDiscount: 'Discount',
    growthConsumption: 'Consumption',
    profile: 'Note: When the shopping consumption reaches the specified standard, it will automatically become a member of that level',
  },
  feedback: {
    title: 'Feedback',
    name: 'Name',
    namePlaceholder: 'Your Name',
    nameRequired: 'Please fill in your name',
    mobile: 'Mobile',
    mobilePlaceholder: 'Convenient for us to contact you',
    contentRequired: 'Please fill in feedback information',
    imageOrVideo: 'Image/Video',
    contentPlaceholder: 'Please leave your valuable suggestions or feedback~',
    btn: 'Submit',
  },
  notice: {
    title: 'Notice',
  },
  PickingUp: {
    qudanhao: 'Pickup No',
    Deliverying: 'Delivering For You',
    total: 'Total',
    goodsInfo: 'Goods Info',
    DeliveryMethod: 'Delivery Method',
    sf: 'SF Express',
    remark: 'Remark',
    remarkPlaceholder: 'If you need to Remark, please enter',
    goodsAmount: 'goods Amount',
    freight: 'Freight',
    realAmount: 'Total payable amount',
    ConfirmVerification: 'Confirm Verification',
  },
  pay: {
    title: '确认订单',
    choose: 'Choose coupons',
    chooseCard: 'Choose Card',
    inputphoneNO: 'Input phone NO.',
    select: 'select self pickup/delivery time',
    address: 'The current address is beyond the delivery range',
    servicesclosed: 'The dine in and takeout services have been closed',
    setaddress: 'set delivery address',
    Receivingaddress: 'Please set the Receiving address',
    information: 'Unable to obtain user funding information',
    login: 'Please login first',
    fetchsuccessful: 'Fetch successful',
    memberinformation: 'Used to improve member information',
    Loginsuccessful: 'Login successful',
    Fullconsumption: 'Full consumption',
    RMBreduced: 'Yuan can be reduced',
    reduce: 'Reduce',
    Mealtime: 'Meal pickup time',
    Deliverytime: 'Delivery time',
    Addaddress: 'Add delivery address',
    Productdetails: 'Product details',
    Total: 'Total',
    piecegoods: 'Piece goods',
    Subtotal: 'Subtotal',
    Insulationbag: 'Insulation bag',
    Needbag: 'Need',
    UNneedbag: 'Unneed',
    reBind: 'ReBind',
    DeliveryFee: 'Delivery Fee',
    remark: 'Remark',
    remarkPlaceholder: 'If you need a note, please enter it',
    qisong: ' At least',
    login: 'Login',
  },
  scoreLogs: {
    title: 'Score Logs',
  },
  shop: {
    characteristic: 'Characteristic',
    openingHours: 'Business Time',
    contactUs: 'Contact US',
    viewMap: 'Open Map',
    Navigation: 'Navigation',
    join: 'Merchant Join',
    name: 'Name',
    namePlaceholder: 'Your Name',
    nameRequired: 'Please fill in your name',
    mobile: 'Mobile',
    mobilePlaceholder: 'Convenient for us to contact you',
    mobileRequired: 'Please provide your contact phone number',
    joinBtn: 'Apply',
    contentPlaceholder: 'If there is more information, please fill in~',
    contentRequired: 'Please fill in More information',
    select: 'Select Shop',
  },
  sign: {
    signed: 'Signed',
    signSuccess: 'Sign Success',
    signBtn: 'Sign',
  },
  youhuipay: {
    amountRequired: 'Please fill in the correct consumption amount',
    curAmount: 'Your current consumption',
    youhui: 'Discount',
    askAmount: 'Please ask the waiter and enter',
    btn: 'Confirm payment',
    youhuiList: 'Discount information',
  },
  goodsList: {
    t: 'Goods List',
    sort: {
      zh: 'Default',
      xp: 'News',
      xl: 'Sales',
      jg: 'Price',
    }
  },
  payment: {
    order: 'Pay Order',
    maidan: 'Check',
    recharge: 'Recharge',
    select: 'Select Payment',
    wx: 'WxPay',
    alipay: 'Alipay',
    alipayQrcodeText: 'Long press the picture to save, and then use Alipay to scan',
    notSupport: 'This payment method is not currently supported',
  },
  home: {
    huiyuan: 'VIP0',
    zq: 'PICK UP',
    ps: 'Delivery',
    sc: 'Food',
    lpk: 'Gift Card',
    tg: 'Group Buy',
    bh: 'Stores',
  },
  card: {
    title: 'Gift Card',
    buy: 'Buy Card',
    my: 'My Card',
    empty: 'No Card Sale',
    buy2: 'BUY',
    excharge: 'Exchange Card',
    times: 'CUP',
    logs: 'Consumption Details',
    pleaseInputNumber: 'Please enter the redemption code',
    xieyi: 'Agree to the Gift Card Usage Agreement',
    xieyi0: 'Please Read And Agree to the Gift Card Usage Agreement',
    cardShareOpen: 'Send Friend',
    cardShareClose: 'Cancel Send',
    shareplaceholder: 'Please have a cup of milk tea~',
    sending: 'Sending',
    receiveEmpty: 'The current gift card does not exist or has been claimed',
    friend: 'Friend',
    cardShareFetch: 'Accept Your Heart',
    fetchSuccess: 'The gift card has been deposited into the card bag',
  }
}

================================================
FILE: i18n/index.js
================================================
/**
 * 获取当前使用的语言
 */
function getLanguage() {
  const Language = wx.getStorageSync('Language')
  if (Language) {
    return Language
  }
  const allowLanguage = ['zh_CN', 'en'] // 目前支持的语言包
  const appBaseInfo = wx.getAppBaseInfo()
  let _language = appBaseInfo.language || 'zh_CN'
  if (!allowLanguage.includes(_language)) {
    _language = 'zh_CN'
  }
  wx.setStorageSync('Language', _language)
  return _language
}
function $t(){
  return require(getLanguage() + '.js');
}

function setTabBarLanguage(){
  const $t = this.$t()
  wx.setTabBarItem({
    index: 0,
    pagePath: "pages/home/index",
    iconPath: "images/nav/home-off.png",
    selectedIconPath: "images/nav/home-on.png",
    text: $t.index.home
  })
  wx.setTabBarItem({
    index: 1,
    pagePath: "pages/index/index",
    iconPath: "images/nav/index-off.png",
    selectedIconPath: "images/nav/index-on.png",
    text: $t.index.order
  })

  wx.setTabBarItem({
    index: 2,
    pagePath: "pages/queue/index",
    iconPath: "images/nav/qh-off.png",
    selectedIconPath: "images/nav/qh-on.png",
    text: $t.queue.t
  })

  wx.setTabBarItem({
    index: 3,
    pagePath: "pages/order-details/doing",
    iconPath: "images/nav/qc-off.png",
    selectedIconPath: "images/nav/qc-on.png",
    text: $t.index.PickingUp
  })

  wx.setTabBarItem({
    index: 4,
    pagePath: "pages/my/index",
    iconPath: "images/nav/my-off.png",
    selectedIconPath: "images/nav/my-on.png",
    text: $t.my.title
  })
}
module.exports = {
  setTabBarLanguage: setTabBarLanguage,
  getLanguage: getLanguage,
  $t: $t,
  langs: [
    {
      name: '简体中文',
      code: 'zh_CN'
    },
    {
      name: 'English',
      code: 'en'
    }
  ]
}

================================================
FILE: i18n/zh_CN.js
================================================
module.exports = {
  common: {
    select: '请选择',
    save: '保存',
    cancel: '取消',
    confirm: '确定',
    doubleClick: '休息一下~',
    empty: '暂无数据',
    submitSuccess: '提交成功',
    gotIt: '知道了',
    search: '搜索',
    searchPlaceholder: '输入搜索关键词',
    getCodeError: '获取code失败',
    loginFail: '无法登录',
    authorizeRequired: '需要获得您的授权',
    authorize: '立即授权',
    upgrade: '新版本已经准备好,是否重启应用?',
    noNetwork: '当前无网络',
    networkDown: '网络已断开',
    privacyPermission: '未同意用户隐私协议保护协议,暂时无法使用',
  },
  auth: {
    needLogin: '登陆后才能访问',
    goAdmin: '管理后台',
  },
  date: {
    year: '年',
    month: '月',
    day: '日',
    hour: '点',
    minutes: '分',
  },
  ad_index: {
    title: '地址管理',
    add: '新增收货地址',
    empty: '暂无地址信息',
    pleaseAdd: '请点击按钮添加地址信息',
    linkMan: '收件人姓名',
    linkManPlaceholder: '填写收件人姓名',
    mobile: '手机号码',
    mobilePlaceholder: '填写手机号码',
    region: '选择地区',
    regionPlaceholder: '选择行政地址(省、市、区县)',
    location: '选择定位',
    address: '详细地址',
    addressPlaceholder: '街道、楼栋、门牌等',
    apiError: '无法获取快递地址数据',
    deleteProfile: '确定要删除该收货地址吗?',
  },
  order: {
    title: '全部订单',
    cancelProfile: '确定要取消该订单吗?',
    scoreNotEnough: '您的积分不足,无法支付',
    amountReal: '订单金额',
    balance: '可用余额',
    payAmount: '仍需支付',
    payScore: '需要扣除积分:',
    noCashAccount: '无法获取用户资金信息',
    status: {
      st01: '已取消',
      st10: '待取餐',
      st11: '配送中',
      st3: '已完成',
    },
    deleteProfile: '确定要删除该订单吗?',
    empty: {
      t1: '您还没有点餐',
      t2: '快去犒劳一下自己吧!',
      btn: '去点餐',
    },
    dateAdd: '下单时间',
    orderNumber: '订单编号',
    callShop: '联系商家',
    deleteOrder: '删除订单',
    cancelOrder: '关闭订单',
    toPayTap: '立即支付',
    detail: '订单详情',
    askConfirm: '确认您已收到商品?',
    VerificationCompleted: '核销完成',
    stausClosed: '当前订单已关闭',
    stausNoPay: '等待付款',
    stausSuccess: '交易完成',
  },
  cashLog: {
    title: '资金明细',
  },
  asset: {
    title: '我的钱包',
    recharge: '余额充值',
    amount: '充值金额',
    amountPlaceholder: '请输入充值金额',
    confirmBtn: '确认充值',
    success: '支付成功',
    confine: '充',
    send: '送',
    other: '其他',
    rechargeLogs: '充值记录',
  },
  booking: {
    title: '在线订位',
    name: '联系人',
    namePlaceholder: '请输入联系人',
    mobile: '联系电话',
    mobilePlaceholder: '方便我们联系您',
    time: '到店时间',
    timePlaceholder: '选择预计到店时间',
    person: '用餐人数',
    tip: '座位预留半小时,逾期作废',
  },
  cart: {
    title: '购物车',
    empty: '暂无菜品',
    clear: '清空购物车',
    num: '个商品',
    btn: '立即下单',
    ordered: '已点菜品',
    tableNum: '桌号',
    Tobeconfirmed: '待确认',
    Cooked:'已下厨',
    Served:'已上菜',
    Numofdishes:'菜品数量',
    Consumptionamount:'消费金额',
    Payableamount:'应付金额',
    Check:'结账买单',
  },
  coupons: {
    title: '优惠券',
    inputpassword:'请输入口令',
    Cominglate:'来晚了',
    receivedgreedy:'你领过了,别贪心哦~',
    pointsinsufficient:'您的积分不足~',
    Expired :'已过期~',
    Successfullyclaimed :'领取成功~',
    enternum:'请输入券号',
    password:'请输入密码',
    Redemption:'兑换成功',
    Invitingcoupons:'邀您领取优惠券',
    Vouchers: '代金券',
    over: '满',
    btn: '立即领取',
    expire: '到期',
    toUse: '立即使用',
    number: '券号',
    numberPlaceholder: '请输入券号',
    pwd: '密码',
    pwdPlaceholder: '请输入密码',
    change: '立即兑换',
  },
  goodsDetail: {
    title: '商品详情',
    noStores: '已售罄',
    noSelectSku: '请选择规格',
    noSelectAddtion: '请选择配件',
    buyNumber: '购买数量',
    noSelectNumber: '请选择购买数量',
    addCartSuccess: '加入购物车',
    addCartBtn: '加入购物车',
    inviteKanJia: '邀请您帮TA砍价',
    inviteKanJiaFriend: '邀请朋友帮忙',
    kanJiaAmount: '成功帮TA砍掉',
    kanJiaSetting: '砍价设置',
    longTapQrcode: '长按识别小程序码',
    qrcodeSaved: '已保存到手机相册',
    commission1: '分享有赏,好友下单后可得',
    commission2: '积分奖励',
    commission3: '现金奖励',
    limit: '限量',
    saledNum: '已售',
    originalPrice: '原价',
    minPrice: '底价',
    end: '截止',
    ended: '砍价已结束',
    help: '帮',
    kanjia: '砍价',
    help2: '帮砍',
    helpPerson: '帮砍人数',
    status: '状态',
    joinTime: '报名时间',
    buy: '购买',
    kanjiaLogs: '砍价记录',
    helped: '您已砍过',
    helphe: '帮TA砍',
    buyUseCurPrice: '用当前价购买',
    storeing: '补货中',
    kanjiaBtn: '发起砍价|邀请好友助力',
    saveImage: '保存到相册',
  },
  index: {
    pingtuanNoOpen: '拼团功能未开启',
    pickup: '自取',
    Delivery: '外卖',
    shopDetail: '查看门店信息',
    minPrice: '到手价',
    noStart: '即将开抢',
    miaoshaEnd: '秒杀结束',
    pingtuan: '一起拼',
    selectSku: '选规格',
    submit: '选好了',
    selectShop: '获取门店',
    noBusiness: '未营业',
    p_persion: '人成单',
    p_numsuc: '已拼',
    remain: '差',
    remainToSuccess: '人,即可拼单成功',
    pingSuccess: '已拼单成功',
    originalPriceBuy: '原价购买',
    openNewPingtuan: '重新开团',
    pingtuanProcess: '拼单流程',
    step1: '支付开拼',
    step2: '好友参与',
    step3: '成功取餐',
    step4: '失败退款',
    order: '点餐',
    PickingUp: '取餐',
    ordered: '已点',
    home: '首页',
  },
  queue: {
    t: '取号',
    success: '取号成功',
    myNumber: '我的号子',
    ExpectedWaiting: '预计等待',
    minutes: '分钟',
  },
  my: {
    title: '我的',
    nickEdit: '修改昵称',
    nickSet: '点击设置昵称',
    nickRequired: '请填写昵称',
    uid: '用户ID',
    userCode: '会员码',
    score: '积分',
    signDaily: '每日签到',
    scanHx: '扫码核销',
    youhuimaidan: '优惠买单',
    aboutUs: '关于我们',
    Contact: '联系客服',
    clearStorage: '清除缓存',
  },
  vip: {
    title: '会员',
    consumption: '累计消费',
    notVIP: '非会员',
    tip: '消费达到金额可自动成为会员',
    growth: '会员成长体系',
    growthName: '级别名称',
    growthDiscount: '购物折扣',
    growthConsumption: '消费标准(元)',
    profile: '注:当购物消费达指定标准自动成为该级别会员',
  },
  feedback: {
    title: '意见反馈',
    name: '姓名',
    namePlaceholder: '如何称呼您',
    nameRequired: '请填写您的姓名',
    mobile: '联系电话',
    mobilePlaceholder: '方便我们与您联系',
    contentRequired: '请填写反馈信息',
    imageOrVideo: '图片/视频',
    contentPlaceholder: '请留下您的宝贵建议或意见~',
    btn: '提交反馈',
  },
  notice: {
    title: '公告',
  },
  PickingUp: {
    qudanhao: '取餐号',
    Deliverying: '正在为您配送',
    total: '合计',
    goodsInfo: '商品信息',
    DeliveryMethod: '配送方式',
    sf: '顺丰快递',
    remark: '留言',
    remarkPlaceholder: '如需留言请输入',
    goodsAmount: '商品金额',
    freight: '运费',
    realAmount: '应付总额',
    ConfirmVerification: '确认核销',
  },
  pay: {
    title: '确认订单',
    choose: '请选择使用优惠券',
    chooseCard: '选择会员卡',
    inputphoneNO: '请输入手机号码',
    select: '请选择自取/配送时间',
    address: '当前地址超出配送范围',
    servicesclosed: '堂食和外卖服务已关闭',
    setaddress: '请设置配送地址',
    Receivingaddress: '请设置收货地址',
    information: '无法获取用户资金信息',
    login: '请先登陆',
    fetchsuccessful: '读取成功',
    memberinformation: '用于完善会员资料',
    Loginsuccessful: '登陆成功',
    Fullconsumption: '消费满',
    RMBreduced: '元可减',
    reduce: '减',
    Mealtime: '取餐时间',
    Deliverytime: '送达时间',
    Addaddress: '新增配送地址',
    Productdetails: '商品明细',
    Total: '共计',
    piecegoods: '件商品',
    Subtotal: '小计',
    Insulationbag: '保温袋',
    Needbag: '需要',
    UNneedbag: '不需要',
    reBind: '重新获取',
    DeliveryFee: '配送费',
    remark: '备注',
    remarkPlaceholder: '如需备注请输入',
    qisong: '起送',
    login: '授权登陆',
  },
  scoreLogs: {
    title: '积分明细',
  },
  shop: {
    characteristic: '本店特色',
    openingHours: '营业时间',
    contactUs: '联系我们',
    viewMap: '查看地图',
    Navigation: '导航到店',
    join: '商家入驻',
    name: '姓名',
    namePlaceholder: '如何称呼您',
    nameRequired: '请填写您的姓名',
    mobile: '联系电话',
    mobilePlaceholder: '方便我们与您联系',
    mobileRequired: '请填写您的联系电话',
    joinBtn: '申请入驻',
    contentPlaceholder: '如有更多信息请填写~',
    contentRequired: '请填写反馈信息',
    select: '选择门店',
  },
  sign: {
    signed: '已签到',
    signSuccess: '签到成功',
    signBtn: '点击签到',
  },
  youhuipay: {
    amountRequired: '请填写正确的消费金额',
    curAmount: '您本次消费',
    youhui: '优惠',
    askAmount: '请询问服务员后输入',
    btn: '确认付款',
    youhuiList: '优惠信息',
  },
  goodsList: {
    t: '商品列表',
    sort: {
      zh: '综合',
      xp: '新品',
      xl: '销量',
      jg: '价格',
    }
  },
  payment: {
    order: '支付订单',
    maidan: '优惠买单',
    recharge: '在线充值',
    select: '选择支付方式',
    wx: '微信支付',
    alipay: '支付宝支付',
    alipayQrcodeText: '长按图片保存,然后使用支付宝扫一扫付款',
    notSupport: '暂不支持该支付方式',
  },
  home: {
    huiyuan: '普通会员',
    zq: '到店自取',
    ps: '骑手配送',
    sc: '食材透明',
    lpk: '礼品好卡',
    tg: '超值团购',
    bh: '精选百货',
  },
  card: {
    title: '礼品卡',
    buy: '购买礼品卡',
    my: '我的礼品卡',
    empty: '暂无礼品卡',
    buy2: '立即购买',
    excharge: '兑换礼品卡',
    times: '杯',
    logs: '消费明细',
    pleaseInputNumber: '请输入兑换码',
    xieyi: '同意《礼品卡使用协议》',
    xieyi0: '请先阅读并同意《礼品卡使用协议》',
    cardShareOpen: '送给好友',
    cardShareClose: '取消赠送',
    shareplaceholder: '请你喝杯奶茶~',
    sending: '赠送中',
    receiveEmpty: '当前礼品卡不存在或已被领取',
    friend: '好友',
    cardShareFetch: '收下心意',
    fetchSuccess: '礼品卡已存入卡包',
  }
}

================================================
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
Download .txt
gitextract_db_bu7mz/

├── .gitignore
├── LICENSE
├── README.md
├── app.js
├── app.json
├── app.wxss
├── components/
│   ├── parser.20200731.min/
│   │   ├── libs/
│   │   │   ├── CssHandler.js
│   │   │   ├── MpHtmlParser.js
│   │   │   └── config.js
│   │   ├── parser.js
│   │   ├── parser.json
│   │   ├── parser.wxml
│   │   ├── parser.wxss
│   │   └── trees/
│   │       ├── trees.js
│   │       ├── trees.json
│   │       ├── trees.wxml
│   │       └── trees.wxss
│   └── payment/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       ├── index.wxss
│       └── sn.txt
├── config.js
├── i18n/
│   ├── en.js
│   ├── index.js
│   └── zh_CN.js
├── 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
│   ├── 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
├── pages/
│   ├── about/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── ad/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── all-orders/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── asset/
│   │   ├── cash-log.js
│   │   ├── cash-log.json
│   │   ├── cash-log.wxml
│   │   ├── cash-log.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── recharge-log.js
│   │   ├── recharge-log.json
│   │   ├── recharge-log.wxml
│   │   └── recharge-log.wxss
│   ├── booking/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── card/
│   │   ├── exchange.js
│   │   ├── exchange.json
│   │   ├── exchange.wxml
│   │   ├── exchange.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── logs.js
│   │   ├── logs.json
│   │   ├── logs.wxml
│   │   ├── logs.wxss
│   │   ├── receive.js
│   │   ├── receive.json
│   │   ├── receive.wxml
│   │   ├── receive.wxss
│   │   ├── send.js
│   │   ├── send.json
│   │   ├── send.wxml
│   │   └── send.wxss
│   ├── cart/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── order.js
│   │   ├── order.json
│   │   ├── order.wxml
│   │   └── order.wxss
│   ├── coupons/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── goods/
│   │   ├── list.js
│   │   ├── list.json
│   │   ├── list.wxml
│   │   └── list.wxss
│   ├── goods-details/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── home/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── index/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── member-center/
│   │   ├── 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
│   │   ├── user-code.js
│   │   ├── user-code.json
│   │   ├── user-code.wxml
│   │   └── user-code.wxss
│   ├── notice/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   └── detail.wxss
│   ├── order-details/
│   │   ├── doing.js
│   │   ├── doing.json
│   │   ├── doing.wxml
│   │   ├── doing.wxss
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   ├── index.wxss
│   │   ├── scan-result.js
│   │   ├── scan-result.json
│   │   ├── scan-result.wxml
│   │   └── scan-result.wxss
│   ├── pay/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── queue/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   ├── score/
│   │   ├── logs.js
│   │   ├── logs.json
│   │   ├── logs.wxml
│   │   └── logs.wxss
│   ├── shop/
│   │   ├── detail.js
│   │   ├── detail.json
│   │   ├── detail.wxml
│   │   ├── detail.wxss
│   │   ├── join-apply.js
│   │   ├── join-apply.json
│   │   ├── join-apply.wxml
│   │   ├── join-apply.wxss
│   │   ├── select.js
│   │   ├── select.json
│   │   ├── select.wxml
│   │   └── select.wxss
│   ├── sign/
│   │   ├── index.js
│   │   ├── index.json
│   │   ├── index.wxml
│   │   └── index.wxss
│   └── youhui-pay/
│       ├── index.js
│       ├── index.json
│       ├── index.wxml
│       └── index.wxss
├── project.config.json
├── project.private.config.json
├── sitemap.json
└── utils/
    ├── auth.js
    ├── image.js
    ├── pay.js
    ├── runtime.js
    ├── tools.js
    └── util.js
Download .txt
SYMBOL INDEX (562 symbols across 87 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 onShow (line 71) | onShow (e) {
  method refreshStorageShopInfo (line 135) | async refreshStorageShopInfo() {
  method initLanguage (line 149) | initLanguage(_this) {
  method changeLang (line 155) | changeLang(_this) {
  method setTabBarLanguage (line 172) | setTabBarLanguage() {
  method getUserApiInfo (line 175) | async getUserApiInfo() {

FILE: components/parser.20200731.min/libs/CssHandler.js
  function t (line 1) | function t(t){var s=Object.assign(Object.create(null),i.userAgentStyles)...
  function s (line 1) | function s(t,s){this.data=t,this.floor=0,this.i=0,this.list=[],this.res=...

FILE: components/parser.20200731.min/libs/MpHtmlParser.js
  function t (line 2) | function t(t){var s=this,r=arguments.length>1&&void 0!==arguments[1]?arg...

FILE: components/parser.20200731.min/libs/config.js
  function e (line 1) | function e(e){for(var t=Object.create(null),a=e.split(","),o=a.length;o-...

FILE: components/parser.20200731.min/parser.js
  function t (line 2) | function t(t){for(var e=t.length,i=5381;e--;)i+=(i<<5)+t.charCodeAt(e);r...

FILE: components/parser.20200731.min/trees/trees.js
  function _defineProperty (line 1) | function _defineProperty(t,e,r){return e in t?Object.defineProperty(t,e,...

FILE: components/payment/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi');
  method attached (line 39) | attached() {
  method detached (line 42) | detached() {
  method close (line 50) | close() {
  method payTypeChange (line 53) | payTypeChange(event) {
  method payTypeClick (line 59) | payTypeClick(event) {
  method submit (line 66) | async submit() {

FILE: i18n/index.js
  function getLanguage (line 4) | function getLanguage() {
  function $t (line 18) | function $t(){
  function setTabBarLanguage (line 22) | function setTabBarLanguage(){

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/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: pages/about/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant APP (line 2) | const APP = getApp()
  method onLoad (line 10) | onLoad (e) {
  method cmsPage (line 14) | async cmsPage() {

FILE: pages/ad/index.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 editAddress (line 33) | async editAddress(e) {
  method initShippingAddress (line 132) | async initShippingAddress() {
  method initRegionPicker (line 155) | initRegionPicker () {
  method initRegionDB (line 168) | async initRegionDB (pname, cname, dname) {
  method provinces (line 267) | async provinces(provinceId, cityId, districtId) {
  method linkManChange (line 309) | linkManChange(e) {
  method mobileChange (line 316) | mobileChange(e) {
  method addressChange (line 323) | addressChange(e) {
  method bindSave (line 331) | async bindSave() {
  method onLoad (line 429) | onLoad(e) {
  method chooseLocation (line 477) | chooseLocation() {

FILE: pages/all-orders/index.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 paymentOk (line 108) | paymentOk(e) {
  method paymentCancel (line 117) | paymentCancel() {
  method doneShow (line 145) | async doneShow() {
  method callShop (line 211) | async callShop(e) {

FILE: pages/asset/cash-log.js
  constant APP (line 1) | const APP = getApp()
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method cashLogsV2 (line 26) | async cashLogsV2() {

FILE: pages/asset/index.js
  constant APP (line 1) | const APP = getApp()
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method getUserAmount (line 28) | async getUserAmount() {
  method rechargeRule (line 39) | async rechargeRule() {
  method changePersionNum (line 47) | changePersionNum(e) {
  method submit1 (line 57) | submit1() {
  method onClose (line 68) | onClose() {
  method submit2 (line 73) | submit2() {
  method wxpay (line 83) | wxpay(money) {
  method paymentOk (line 89) | paymentOk(e) {
  method paymentCancel (line 97) | paymentCancel() {

FILE: pages/asset/recharge-log.js
  constant APP (line 1) | const APP = getApp()
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method payLogs (line 26) | async payLogs() {

FILE: pages/booking/index.js
  constant APP (line 1) | const APP = getApp()
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  constant WXAPI (line 3) | const WXAPI = require('apifm-wxapi')
  method filter (line 17) | filter(type, options) {
  method changePersionNum (line 63) | changePersionNum(e) {
  method submit (line 68) | async submit() {
  method showDatetimePop (line 115) | showDatetimePop() {
  method hideDatetimePop (line 120) | hideDatetimePop() {
  method confirm (line 125) | confirm(e) {

FILE: pages/card/exchange.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method _agree (line 12) | _agree() {
  method xieyi (line 17) | xieyi() {
  method submit (line 22) | async submit(){

FILE: pages/card/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 6) | onLoad(e) {
  method onShow (line 14) | onShow() {
  method tabChange (line 24) | tabChange(e) {
  method onShareAppMessage (line 33) | onShareAppMessage() {
  method onShareTimeline (line 40) | onShareTimeline() {
  method banners (line 47) | async banners() {
  method tapBanner (line 58) | tapBanner(e) {
  method cardList (line 66) | async cardList() {
  method cardMyList (line 77) | async cardMyList() {
  method buy (line 94) | buy(e) {
  method paymentOk (line 106) | paymentOk(e) {
  method paymentCancel (line 114) | paymentCancel() {
  method sendUser (line 119) | sendUser(e) {
  method cardShareClose (line 126) | async cardShareClose(e) {

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

FILE: pages/card/receive.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 5) | onLoad (e) {
  method submit (line 16) | submit() {
  method cardShareFetch (line 19) | async cardShareFetch(calculate) {

FILE: pages/card/send.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 8) | onLoad (e) {
  method cardShareOpen (line 23) | async cardShareOpen() {
  method onShareAppMessage (line 40) | onShareAppMessage(e) {

FILE: pages/cart/index.js
  constant APP (line 1) | const APP = getApp()
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method onPullDownRefresh (line 22) | onPullDownRefresh() {
  method shippingCarInfo (line 26) | async shippingCarInfo() {
  method cartStepChange (line 45) | async cartStepChange(e) {
  method clearCart (line 81) | async clearCart() {
  method goCreateOrder (line 96) | async goCreateOrder() {

FILE: pages/cart/order.js
  constant APP (line 1) | const APP = getApp()
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  method onPullDownRefresh (line 23) | onPullDownRefresh() {
  method fetchOrder (line 27) | async fetchOrder() {
  method goPayOrder (line 45) | async goPayOrder() {
  method paymentOk (line 71) | paymentOk(e) {
  method paymentCancel (line 78) | paymentCancel() {

FILE: pages/coupons/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method sysCoupons (line 75) | sysCoupons() { // 读取可领取券列表
  method getCounpon2 (line 95) | getCounpon2(){
  method touse (line 236) | async touse(e) {
  method pwdCouponChange (line 274) | pwdCouponChange(e){
  method onPullDownRefresh (line 279) | onPullDownRefresh() {
  method closePwd (line 291) | closePwd() {
  method exchangeCoupons (line 296) | async exchangeCoupons() {
  method onShareTimeline (line 341) | onShareTimeline() {

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')
  method onLoad (line 22) | onLoad(e) {
  method readConfigVal (line 59) | readConfigVal() {
  method _goodsTimesSchedule (line 62) | async _goodsTimesSchedule() {
  method goodsAddition (line 81) | async goodsAddition() {
  method shippingCartInfo (line 90) | async shippingCartInfo() {
  method onShow (line 96) | onShow() {
  method getGoodsDetailAndKanjieInfo (line 107) | async getGoodsDetailAndKanjieInfo(goodsId) {
  method shopSubdetail (line 168) | async shopSubdetail(shopId) {
  method toAddShopCar (line 181) | async toAddShopCar() {
  method bindGuiGeTap (line 187) | async bindGuiGeTap() {
  method stepChange (line 204) | stepChange(event) {
  method labelItemTap (line 212) | async labelItemTap(e) {
  method calculateGoodsPrice (line 262) | async calculateGoodsPrice() {
  method labelItemTap2 (line 316) | async labelItemTap2(e) {
  method skuClick3 (line 345) | async skuClick3(e) {
  method addShopCar (line 375) | async addShopCar() {
  method onShareAppMessage (line 481) | onShareAppMessage() {
  method goIndex (line 508) | goIndex() {
  method helpKanjia (line 513) | helpKanjia() {
  method helpKanjiaDone (line 521) | helpKanjiaDone() {
  method closePop (line 543) | closePop() {
  method drawSharePic (line 548) | async drawSharePic() {
  method drawSharePicDone (line 577) | drawSharePicDone(picHeight, qrcode) {
  method onPosterSuccess (line 641) | onPosterSuccess(e) {
  method onPosterFail (line 648) | onPosterFail(e) {
  method savePosterPic (line 651) | savePosterPic() {
  method previewImage (line 677) | previewImage(e) {
  method onTabsChange (line 684) | onTabsChange(e) {
  method backToHome (line 690) | backToHome() {
  method joinKanjia (line 695) | joinKanjia() {

FILE: pages/goods/list.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method readConfigVal (line 37) | readConfigVal() {
  method search (line 49) | async search(){
  method onReachBottom (line 84) | onReachBottom() {
  method changeShowType (line 90) | changeShowType(){
  method bindinput (line 101) | bindinput(e){
  method bindconfirm (line 106) | bindconfirm(e){
  method filter (line 113) | filter(e){
  method addShopCar (line 120) | async addShopCar(e) {
  method addShopCarCheck (line 140) | async addShopCarCheck(options) {
  method addShopCarDone (line 151) | async addShopCarDone(options) {
  method storesJia (line 185) | storesJia() {
  method storesJian (line 194) | storesJian() {
  method closeSku (line 203) | closeSku() {
  method skuSelect (line 209) | skuSelect(e) {
  method addCarSku (line 226) | addCarSku() {

FILE: pages/home/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 6) | onLoad(e) {
  method onShow (line 13) | onShow() {
  method processGotUserDetail (line 18) | async processGotUserDetail(apiUserInfoMap) {
  method banners (line 27) | async banners() {
  method tapBanner (line 38) | tapBanner(e) {
  method onShareAppMessage (line 46) | onShareAppMessage() {
  method onShareTimeline (line 53) | onShareTimeline() {
  method changeLang (line 60) | changeLang() {
  method huiyuan (line 63) | huiyuan() {
  method coupon (line 68) | coupon() {
  method changePeisongType (line 73) | changePeisongType(e) {
  method about (line 80) | about() {
  method about (line 85) | about() {
  method touming (line 90) | touming() {
  method card (line 95) | card() {

FILE: pages/index/index.js
  constant APP (line 1) | const APP = getApp()
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  constant WXAPI (line 3) | const WXAPI = require('apifm-wxapi')
  method cyTableToken (line 141) | async cyTableToken(tableId, key) {
  method getshopInfo (line 156) | async getshopInfo(){
  method fetchShops (line 201) | async fetchShops(latitude, longitude, kw){
  method _showCouponPop (line 227) | async _showCouponPop() {
  method changePeisongType (line 246) | changePeisongType(e) {
  method categories (line 254) | async categories() {
  method getGoodsList (line 289) | async getGoodsList() {
  method _getGoodsListSingleCategory (line 301) | async _getGoodsListSingleCategory() {
  method _getGoodsListContinuous (line 348) | async _getGoodsListContinuous() {
  method _onReachBottom (line 416) | _onReachBottom() {
  method _loadMoreCategories (line 429) | async _loadMoreCategories() {
  method onScroll (line 495) | onScroll(e) {
  method _calculateCurrentCategory (line 510) | _calculateCurrentCategory(scrollTop) {
  method categoryClick (line 554) | categoryClick(e) {
  method _scrollToCategory (line 574) | _scrollToCategory(categoryIndex) {
  method shippingCarInfo (line 598) | async shippingCarInfo() {
  method showCartPop (line 612) | showCartPop() {
  method hideCartPop (line 624) | hideCartPop() {
  method addCart1 (line 629) | async addCart1(e) {
  method skuClick (line 659) | async skuClick(e) {
  method calculateGoodsPrice (line 682) | async calculateGoodsPrice() {
  method skuClick2 (line 743) | async skuClick2(e) {
  method skuCanSubmit (line 772) | skuCanSubmit() {
  method additionCanSubmit (line 798) | additionCanSubmit() {
  method addCart2 (line 813) | async addCart2() {
  method cartStepChange (line 887) | async cartStepChange(e) {
  method goodsStepChange (line 931) | goodsStepChange(e) {
  method clearCart (line 938) | async clearCart() {
  method showGoodsDetailPOP (line 953) | async showGoodsDetailPOP(e) {
  method _showGoodsDetailPOP (line 960) | async _showGoodsDetailPOP(goodsId) {
  method hideGoodsDetailPOP (line 1042) | hideGoodsDetailPOP() {
  method goPay (line 1051) | goPay() {
  method couponOverlayClick (line 1077) | couponOverlayClick() {
  method couponImageClick (line 1082) | couponImageClick() {
  method noticeLastOne (line 1087) | async noticeLastOne() {
  method goNotice (line 1095) | goNotice(e) {
  method banners (line 1101) | async banners() {
  method tapBanner (line 1112) | tapBanner(e) {
  method checkIsOpened (line 1120) | checkIsOpened(openingHours) {
  method yuanjiagoumai (line 1143) | yuanjiagoumai() {
  method _lijipingtuanbuy (line 1149) | _lijipingtuanbuy() {
  method pingtuanbuy (line 1159) | pingtuanbuy() {
  method _lijipingtuanbuy2 (line 1221) | _lijipingtuanbuy2() {
  method goodsAddition (line 1225) | async goodsAddition(goodsId){
  method tabbarChange (line 1237) | tabbarChange(e) {
  method processBadge (line 1250) | processBadge() {
  method selectshop (line 1291) | selectshop() {
  method goGoodsDetail (line 1296) | goGoodsDetail(e) {
  method _goodsTimesSchedule (line 1303) | async _goodsTimesSchedule(goodsId) {
  method skuClick3 (line 1322) | async skuClick3(e) {
  method changeLang (line 1349) | changeLang() {
  method waimai (line 1352) | waimai() {

FILE: pages/member-center/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant APP (line 2) | const APP = getApp()
  method processGotUserDetail (line 26) | async processGotUserDetail(apiUserInfoMap) {
  method userAmount (line 35) | async userAmount() {
  method userLevelList (line 44) | async userLevelList() {

FILE: pages/my/feedback.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method bindSave (line 21) | async bindSave() {
  method afterPicRead (line 73) | afterPicRead(e) {
  method afterPicDel (line 83) | afterPicDel(e) {

FILE: pages/my/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')
  constant APP (line 4) | const APP = getApp()
  method onLoad (line 18) | onLoad() {
  method onShow (line 32) | onShow() {
  method processGotUserDetail (line 37) | async processGotUserDetail(apiUserInfoMap) {
  method couponStatistics (line 56) | async couponStatistics() {
  method getUserAmount (line 64) | async getUserAmount() {
  method scanOrderCode (line 73) | scanOrderCode(){
  method goCoupons (line 90) | goCoupons() {
  method goBalance (line 95) | goBalance() {
  method goScorelog (line 100) | goScorelog() {
  method goadmin (line 105) | goadmin() {
  method clearStorage (line 111) | clearStorage() {
  method govip (line 117) | govip() {
  method editNick (line 122) | editNick() {
  method _editNick (line 127) | async _editNick() {
  method onChooseAvatar (line 155) | async onChooseAvatar(e) {
  method goUserCode (line 185) | goUserCode() {
  method customerService (line 190) | customerService() {
  method copyuid (line 200) | copyuid() {

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

FILE: pages/notice/detail.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant APP (line 2) | const APP = getApp()
  method noticeDetail (line 31) | async noticeDetail(id) {

FILE: pages/order-details/doing.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 3) | const AUTH = require('../../utils/auth')
  constant APP (line 4) | const APP = getApp()
  method orderList (line 35) | async orderList() {
  method bindchange (line 62) | bindchange(e) {

FILE: pages/order-details/index.js
  constant APP (line 1) | const APP = getApp();
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method onLoad (line 14) | onLoad(e){
  method payLogs (line 32) | async payLogs() {
  method orderDetail (line 67) | async orderDetail() {
  method shopSubdetail (line 96) | async shopSubdetail() {
  method toPayTap (line 104) | async toPayTap() {
  method paymentOk (line 139) | paymentOk(e) {
  method paymentCancel (line 148) | paymentCancel() {
  method callshop (line 153) | callshop() {
  method confirmBtnTap (line 164) | confirmBtnTap(e){

FILE: pages/order-details/scan-result.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant APP (line 2) | const APP = getApp()
  method confirmBtnTap (line 44) | confirmBtnTap(e) {
  method doneHx (line 91) | async doneHx(){

FILE: pages/pay/index.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 formatter (line 39) | formatter(type, value) {
  method filter (line 47) | filter(type, options) {
  method diningTimeChange (line 57) | diningTimeChange(a) {
  method onShow (line 73) | onShow(){
  method doneShow (line 102) | async doneShow() {
  method onLoad (line 122) | onLoad(e) {
  method processGotUserDetail (line 149) | async processGotUserDetail(apiUserInfoMap) {
  method selected (line 159) | selected(e){
  method remarkChange (line 178) | remarkChange(e){
  method goCreateOrder (line 181) | goCreateOrder(){
  method createOrder (line 227) | async createOrder(e) {
  method processAfterCreateOrder (line 392) | async processAfterCreateOrder(res) {
  method paymentOk (line 433) | paymentOk(e) {
  method paymentCancel (line 442) | paymentCancel() {
  method getDistance (line 447) | async getDistance(curAddressData) {
  method getDistanceLine (line 474) | getDistanceLine(lat1, lng1, lat2, lng2) {
  method initShippingAddress (line 487) | async initShippingAddress() {
  method processYunfei (line 510) | processYunfei() {
  method loadCardList (line 585) | async loadCardList() {
  method getPhoneNumber (line 613) | async getPhoneNumber(e) {
  method diningTimeShow (line 647) | diningTimeShow() {
  method diningTimeHide (line 652) | diningTimeHide() {
  method diningTimeConfirm (line 657) | diningTimeConfirm(e) {
  method updateUserInfo (line 663) | updateUserInfo(e) {
  method _updateUserInfo (line 679) | async _updateUserInfo(userInfo) {
  method _peisonFeeList (line 704) | async _peisonFeeList() {
  method packaging_fee_Change (line 711) | packaging_fee_Change(event) {
  method packaging_fee_Click (line 717) | packaging_fee_Click(event) {
  method _pickPoints (line 724) | async _pickPoints() {

FILE: pages/queue/index.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant AUTH (line 2) | const AUTH = require('../../utils/auth')
  method queuingTypes (line 31) | async queuingTypes() {
  method queuingMy (line 45) | async queuingMy() {
  method queuingGet (line 64) | async queuingGet(e) {

FILE: pages/score/logs.js
  constant APP (line 1) | const APP = getApp()
  constant WXAPI (line 2) | const WXAPI = require('apifm-wxapi')
  method scoreLogs (line 26) | async scoreLogs() {

FILE: pages/shop/detail.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  constant APP (line 2) | const APP = getApp()
  method shopSubdetail (line 17) | async shopSubdetail() {

FILE: pages/shop/join-apply.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  method bindSave (line 21) | async bindSave() {
  method afterPicRead (line 83) | afterPicRead(e) {
  method afterPicDel (line 93) | afterPicDel(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 35) | fail(e){
  method fetchShops (line 41) | async fetchShops(latitude, longitude, kw){
  method searchChange (line 60) | searchChange(event){
  method search (line 65) | search(event){
  method goShop (line 72) | goShop(e){
  method joinApply (line 87) | joinApply() {

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 26) | async scoreSignLogs() {
  method sign (line 56) | async sign() {

FILE: pages/youhui-pay/index.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 onShow (line 24) | onShow () {
  method bindSave (line 29) | async bindSave(e) {
  method goPay (line 86) | goPay(amount, wxpayAmount){
  method paymentOk (line 118) | paymentOk(e) {
  method paymentCancel (line 127) | paymentCancel() {

FILE: utils/auth.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  function checkSession (line 5) | async function checkSession(){
  function bindSeller (line 18) | async function bindSeller() {
  function checkHasLogined (line 34) | async function checkHasLogined() {
  function wxaCode (line 52) | async function wxaCode(){
  function login (line 69) | async function login(page){
  function authorize (line 131) | async function authorize() {
  function loginOut (line 186) | function loginOut(){
  function checkAndAuthorize (line 191) | 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 9) | function wxpay(type, money, orderId, redirectUrl, data) {

FILE: utils/runtime.js
  function wrap (line 19) | function wrap(innerFn, outerFn, self, tryLocsList) {
  function tryCatch (line 43) | function tryCatch(fn, obj, arg) {
  function Generator (line 64) | function Generator() {}
  function GeneratorFunction (line 65) | function GeneratorFunction() {}
  function GeneratorFunctionPrototype (line 66) | function GeneratorFunctionPrototype() {}
  function defineIteratorMethods (line 94) | function defineIteratorMethods(prototype) {
  function AsyncIterator (line 133) | function AsyncIterator(generator) {
  function makeInvokeMethod (line 221) | function makeInvokeMethod(innerFn, self, context) {
  function maybeInvokeDelegate (line 303) | function maybeInvokeDelegate(delegate, context) {
  function pushTryEntry (line 401) | function pushTryEntry(locs) {
  function resetTryEntry (line 416) | function resetTryEntry(entry) {
  function Context (line 423) | function Context(tryLocsList) {
  function values (line 459) | function values(iterable) {
  function doneResult (line 495) | function doneResult() {
  function handle (line 546) | function handle(loc, caught) {

FILE: utils/tools.js
  constant WXAPI (line 1) | const WXAPI = require('apifm-wxapi')
  function showTabBarBadge (line 4) | async function showTabBarBadge(noTabBarPage){
Condensed preview — 653 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,413K chars).
[
  {
    "path": ".gitignore",
    "chars": 47,
    "preview": "dist/\npackage-lock.json\nnode_modules/\n.DS_Store"
  },
  {
    "path": "LICENSE",
    "chars": 7331,
    "preview": "                     木兰宽松许可证, 第2版\r\n\r\n   木兰宽松许可证, 第2版 \r\n   2020年1月 http://license.coscl.org.cn/MulanPSL2\r\n\r\n\r\n   您对“软件”的复"
  },
  {
    "path": "README.md",
    "chars": 9722,
    "preview": "# 微信小程序——餐饮点餐商城\n\n微信小程序——餐饮点餐商城,是针对餐饮行业推出的一套完整的餐饮解决方案,实现了用户在线点餐下单、外卖、叫号排队、支付、配送等功能,完美的使餐饮行业更高效便捷!\n\n大家如果在使用过程有什么问题,欢迎通过lss"
  },
  {
    "path": "app.js",
    "chars": 5276,
    "preview": "const WXAPI = require('apifm-wxapi')\nconst CONFIG = require('config.js')\nconst AUTH = require('utils/auth')\nconst i18n ="
  },
  {
    "path": "app.json",
    "chars": 4450,
    "preview": "{\r\n  \"pages\": [\r\n    \"pages/home/index\",\r\n    \"pages/index/index\",\r\n    \"pages/all-orders/index\",\r\n    \"pages/my/index\","
  },
  {
    "path": "app.wxss",
    "chars": 562,
    "preview": "page {\n  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', Helvetica,\n    Segoe UI, Arial, Roboto, 'Ping"
  },
  {
    "path": "components/parser.20200731.min/libs/CssHandler.js",
    "chars": 1996,
    "preview": "function t(t){var s=Object.assign(Object.create(null),i.userAgentStyles);for(var h in t)s[h]=(s[h]?s[h]+\";\":\"\")+t[h];thi"
  },
  {
    "path": "components/parser.20200731.min/libs/MpHtmlParser.js",
    "chars": 10850,
    "preview": "// 小程序富文本插件 https://github.com/jin-yufeng/Parser\r\nvar emoji;function t(t){var s=this,r=arguments.length>1&&void 0!==argu"
  },
  {
    "path": "components/parser.20200731.min/libs/config.js",
    "chars": 1702,
    "preview": "function e(e){for(var t=Object.create(null),a=e.split(\",\"),o=a.length;o--;)t[a[o]]=!0;return t}var t=wx.canIUse(\"editor\""
  },
  {
    "path": "components/parser.20200731.min/parser.js",
    "chars": 4080,
    "preview": "// 小程序富文本插件 https://github.com/jin-yufeng/Parser\nvar dom;var search;function t(t){for(var e=t.length,i=5381;e--;)i+=(i<<"
  },
  {
    "path": "components/parser.20200731.min/parser.json",
    "chars": 62,
    "preview": "{\"component\":true,\"usingComponents\":{\"trees\":\"./trees/trees\"}}"
  },
  {
    "path": "components/parser.20200731.min/parser.wxml",
    "chars": 198,
    "preview": "<slot wx:if=\"{{!nodes.length}}\"/><trees class=\"top\"style=\"{{selectable?'user-select:text;-webkit-user-select:text;':''}}"
  },
  {
    "path": "components/parser.20200731.min/parser.wxss",
    "chars": 134,
    "preview": ":host{display:block;overflow:scroll;webkit-overflow-scrolling:touch}.top{display:inherit}@keyframes show{0%{opacity:0}10"
  },
  {
    "path": "components/parser.20200731.min/trees/trees.js",
    "chars": 2277,
    "preview": "function _defineProperty(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:"
  },
  {
    "path": "components/parser.20200731.min/trees/trees.json",
    "chars": 56,
    "preview": "{\"component\":true,\"usingComponents\":{\"trees\":\"./trees\"}}"
  },
  {
    "path": "components/parser.20200731.min/trees/trees.wxml",
    "chars": 3336,
    "preview": "<wxs module=\"handler\">var s={abbr:1,b:1,big:1,code:1,del:1,em:1,i:1,ins:1,label:1,q:1,small:1,span:1,strong:1,sub:1,sup:"
  },
  {
    "path": "components/parser.20200731.min/trees/trees.wxss",
    "chars": 1487,
    "preview": "._a{display:inline;padding:1.5px 0 1.5px 0;color:#366092;word-break:break-all}._hover{text-decoration:underline;opacity:"
  },
  {
    "path": "components/payment/index.js",
    "chars": 3770,
    "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": 1720,
    "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": "config.js",
    "chars": 297,
    "preview": "module.exports = {\n  version: \"26.3.18\",\n  note: '商品存在多SKU的情况下,选择不同的规格,显示不同的规格图片',\n  subDomain: \"beeorder\", // 根据教程 http"
  },
  {
    "path": "i18n/en.js",
    "chars": 12067,
    "preview": "module.exports = {\n  common: {\n    select: 'Select',\n    save: 'Submit',\n    cancel: 'Cancel',\n    confirm: 'Confirm',\n "
  },
  {
    "path": "i18n/index.js",
    "chars": 1687,
    "preview": "/**\n * 获取当前使用的语言\n */\nfunction getLanguage() {\n  const Language = wx.getStorageSync('Language')\n  if (Language) {\n    ret"
  },
  {
    "path": "i18n/zh_CN.js",
    "chars": 8438,
    "preview": "module.exports = {\n  common: {\n    select: '请选择',\n    save: '保存',\n    cancel: '取消',\n    confirm: '确定',\n    doubleClick: "
  },
  {
    "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"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-menu/index.wxs",
    "chars": 331,
    "preview": "/* eslint-disable */\nfunction displayTitle(item) {\n  if (item.title) {\n    return item.title;\n  }\n\n  var match = item.op"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/dropdown-menu/index.wxss",
    "chars": 1296,
    "preview": "@import '../common/index.wxss';.van-dropdown-menu{background-color:var(--dropdown-menu-background-color,#fff);box-shadow"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/empty/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/empty/index.js",
    "chars": 297,
    "preview": "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar component_1 = require(\"../common/compon"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/empty/index.json",
    "chars": 49,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {}\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/empty/index.wxml",
    "chars": 581,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<view class=\"custom-class van"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/empty/index.wxs",
    "chars": 284,
    "preview": "/* eslint-disable */\nvar PRESETS = ['error', 'search', 'default', 'network'];\n\nfunction imageUrl(image) {\n  if (PRESETS."
  },
  {
    "path": "miniprogram_npm/@vant/weapp/empty/index.wxss",
    "chars": 582,
    "preview": "@import '../common/index.wxss';.van-empty{align-items:center;box-sizing:border-box;display:flex;flex-direction:column;ju"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/field/index.d.ts",
    "chars": 11,
    "preview": "export {};\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/field/index.js",
    "chars": 5675,
    "preview": "\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n    "
  },
  {
    "path": "miniprogram_npm/@vant/weapp/field/index.json",
    "chars": 117,
    "preview": "{\n  \"component\": true,\n  \"usingComponents\": {\n    \"van-cell\": \"../cell/index\",\n    \"van-icon\": \"../icon/index\"\n  }\n}\n"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/field/index.wxml",
    "chars": 2080,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<wxs src=\"./index.wxs\" module=\"computed\" />\n\n<van-cell\n  size=\"{{ size }}\""
  },
  {
    "path": "miniprogram_npm/@vant/weapp/field/index.wxs",
    "chars": 390,
    "preview": "/* eslint-disable */\nvar style = require('../wxs/style.wxs');\nvar addUnit = require('../wxs/add-unit.wxs');\n\nfunction in"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/field/index.wxss",
    "chars": 2818,
    "preview": "@import '../common/index.wxss';.van-field{--cell-icon-size:var(--field-icon-size,16px)}.van-field__label{color:var(--fie"
  },
  {
    "path": "miniprogram_npm/@vant/weapp/field/input.wxml",
    "chars": 1071,
    "preview": "<wxs src=\"../wxs/utils.wxs\" module=\"utils\" />\n<input\n  id=\"{{ name }}\"\n  class=\"{{ utils.bem('field__control', [inputAli"
  }
]

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

About this extraction

This page contains the full source code of the woniudiancang/bee GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 653 files (1.2 MB), approximately 389.9k tokens, and a symbol index with 562 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!