{"dependencies":[{"name":"0.json","size":325407,"url":"https://gw.alipayobjects.com/os/mashi/1c9bfd62-cc1e-4edb-aa35-b80c398a3f52/herbox/0.json","ETag":"82E43A2A072FF2CA67745C032EED76F9","type":"json"}],"sourceCode":{"app.js":"App({\n onLaunch(options) {\n // 第一次打开\n // options.query == {number:1}\n console.info(\"App onLaunch\");\n },\n onShow(options) {\n // 从后台被 scheme 重新打开\n // options.query == {number:1}\n },\n});\n","app.json":"{\n \"pages\": [\n \"pages/handbag/handbag\",\n \"pages/shopping-cart/shopping-cart\",\n \"pages/my/my\",\n \"pages/category/category\",\n \"pages/search/search\",\n \"pages/my-order/my-order\",\n \"pages/my-ticket/my-ticket\"\n ],\n \"window\": {\n \"defaultTitle\": \"\",\n \"titleBarColor\": \"#fff\",\n \"pullRefresh\": false\n },\n \"tabBar\": {\n \"textColor\": \"#333333\",\n \"selectedColor\": \"#009D9A\",\n \"backgroundColor\": \"#f2f2f2\",\n \"items\": [\n {\n \"pagePath\": \"pages/handbag/handbag\",\n \"icon\": \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*WLzeR4T4_oMAAAAAAAAAAABkARQnAQ\",\n \"activeIcon\": \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*IRA7QYpBww4AAAAAAAAAAABkARQnAQ\",\n \"name\": \"门店商品\"\n },\n {\n \"pagePath\": \"pages/shopping-cart/shopping-cart\",\n \"icon\": \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*PXYbS4CiYV8AAAAAAAAAAABkARQnAQ\",\n \"activeIcon\": \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*lt8nQZUXZV8AAAAAAAAAAABkARQnAQ\",\n \"name\": \"购物车\"\n },\n {\n \"pagePath\": \"pages/my/my\",\n \"icon\": \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*n1f8SYBo_RkAAAAAAAAAAABkARQnAQ\",\n \"activeIcon\": \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*q2eOQpQEzDsAAAAAAAAAAABkARQnAQ\",\n \"name\": \"个人中心\"\n }\n ]\n },\n \"debug\": true\n}\n","asserts/CommodityType.js":"export const ALL = 1;\nexport const TREND = 2;\nexport const NEW = 3;\nexport const PRICE = 4;\n","components/Article/Article.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n.img {\n width: 100%;\n}\n.h1,\n.h2,\n.h3,\n.h4,\n.h5,\n.p,\n.blockquote {\n padding: 0 32rpx;\n}\n.h1 {\n font-size: 42rpx;\n}\n.h2 {\n font-size: 36rpx;\n}\n.h3 {\n font-size: 32rpx;\n}\n.h4 {\n font-size: 28rpx;\n}\n.p {\n font-size: 32rpx;\n line-height: 1.5em;\n}\n.blockquote {\n margin: -8rpx 0 48rpx;\n color: gray;\n font-size: 28rpx;\n}\n.figcaption {\n margin: 8rpx 0 48rpx;\n color: gray;\n font-size: 28rpx;\n text-align: center;\n}\n","components/Article/Article.axml":"<rich-text nodes=\"{{ nodes }}\"></rich-text>\n","components/Article/Article.js":"Component({\n mixins: [],\n data: {},\n props: {\n nodes: [],\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","components/Article/Article.json":"{\n \"component\": true\n}","components/category-nav/category-nav.acss":".category-nav__icon {\n display: block;\n width: 30rpx;\n height: 28rpx;\n margin: 0 5rpx 5rpx;\n}\n.category-nav__description {\n font-size: 20rpx;\n display: block;\n color: #666;\n}\n","components/category-nav/category-nav.axml":"<navigator\n url=\"/pages/category/category\"\n class=\"category-nav\"\n>\n <image\n class=\"category-nav__icon\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*ck3uR5yzoboAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n <text class=\"category-nav__description\">分类</text>\n</navigator>","components/category-nav/category-nav.js":"Component({\n mixins: [],\n data: {},\n props: {},\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","components/category-nav/category-nav.json":"{\n \"component\": true\n}","components/Drawer/Drawer.acss":".drawer-overflow {\n position: fixed;\n z-index: 98;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n transform: translateY(100%);\n}\n.drawer-mask {\n position: fixed;\n z-index: 99;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n display: grid;\n grid-template-rows: 148rpx 1fr;\n grid-template-areas: 'OVERLAY' 'DRAWER';\n transform: translateY(100%);\n transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);\n}\n.drawer-overlay {\n grid-area: 'OVERLAY';\n}\n.drawer {\n grid-area: 'DRAWER';\n background: #fff;\n border-radius: 20rpx 20rpx 0 0;\n transition: all 0.25s cubic-bezier(0.25, 0.1, 0.25, 1);\n transform: translateY(30%);\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n opacity: 0;\n overflow: auto;\n}\n.drawer--open {\n transform: translateY(0);\n}\n.drawer--open .drawer {\n transform: translateY(0);\n opacity: 1;\n transition-delay: 0.25s;\n}\n.drawer--open .drawer-close {\n opacity: 1;\n transition-delay: 0.25s;\n}\n.drawer-close {\n position: fixed;\n z-index: 100;\n opacity: 0;\n background-image: url('https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*YJv7Sb9KR9sAAAAAAAAAAABkARQnAQ');\n transition: opacity 0.25s cubic-bezier(0.25, 0.1, 0.25, 1);\n background-position: center;\n background-repeat: no-repeat;\n background-size: 36rpx 36rpx;\n width: 76rpx;\n height: 76rpx;\n top: 148rpx;\n right: 0;\n}\n","components/Drawer/Drawer.axml":"<view\n a:if=\"{{show}}\"\n class=\"drawer-overflow\"\n>\n</view>\n<view class=\"drawer-mask {{show?'drawer--open':''}}\">\n <view\n class=\"drawer-overlay\"\n onTap=\"onClose\"\n disable-scroll=\"{{true}}\"\n />\n <view\n class=\"drawer-close\"\n onTap=\"onClose\"\n ></view>\n <view\n class=\"drawer\"\n disable-scroll=\"{{false}}\"\n >\n <slot />\n </view>\n</view>","components/Drawer/Drawer.js":"Component({\n mixins: [],\n data: {},\n props: {\n show: false,\n onClose: () => {},\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onClose() {\n this.props.onClose();\n },\n },\n});\n","components/Drawer/Drawer.json":"{\n \"component\": true\n}","components/Empty/empty-type.sjs":"export default {\n EMPTY_STORE: \"empty_store\",\n empty_store: {\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*13iTQpYauJUAAAAAAAAAAABkARQnAQ\",\n title: \"当前门店暂时没有商品\",\n description: \"您可以切换其他门店查看商品\",\n action: \"/pages/handbag/handbag\",\n actionName: \"切换门店\",\n openType: \"switchTab\",\n },\n EMPTY_SEARCH_RESULT: \"empty_search_result\",\n empty_search_result: {\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*iqVvR6sxmKYAAAAAAAAAAABkARQnAQ\",\n title: \"抱歉,没有相关宝贝\",\n description: \"去下面逛逛\",\n action: \"/pages/category/category\",\n actionName: \"查看宝贝分类\",\n openType: \"navigate\",\n },\n};\n","components/Empty/Empty.acss":".empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.empty__cover {\n width: 220rpx;\n height: 220rpx;\n}\n.empty__title {\n margin-top: 33rpx;\n line-height: 45rpx;\n font-size: 32rpx;\n color: #656565;\n}\n.empty__description {\n font-size: 26rpx;\n line-height: 37rpx;\n margin-top: 11rpx;\n color: #999;\n}\n.empty__nav {\n margin-top: 35rpx;\n border: 1rpx solid #979797;\n border-radius: 100000rpx;\n padding: 9rpx 30rpx;\n line-height: 37rpx;\n font-size: 26rpx;\n color: #666;\n}\n","components/Empty/Empty.axml":"<import-sjs\n name=\"EmptyType\"\n from=\"./empty-type.sjs\"\n/>\n<view\n a:if=\"{{EmptyType[type]}}\"\n class=\"empty {{className}}\"\n>\n <image\n class=\"empty__cover\"\n src=\"{{EmptyType[type].cover}}\"\n mode=\"scaleToFill\"\n />\n <view class=\"empty__title\">\n {{EmptyType[type].title}}\n </view>\n <view\n a:if=\"{{EmptyType[type].description}}\"\n class=\"empty__description\"\n >\n {{EmptyType[type].description}}\n </view>\n <navigator\n a:if=\"{{EmptyType[type].actionName}}\"\n class=\"empty__nav\"\n url=\"{{EmptyType[type].action}}\"\n open-type=\"{{EmptyType[type].openType}}\"\n >\n {{EmptyType[type].actionName}}\n </navigator>\n</view>","components/Empty/Empty.js":"Component({\n mixins: [],\n data: {},\n props: {\n type: \"empty_store\",\n className: \"\",\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","components/Empty/Empty.json":"{\n \"component\": true\n}","components/Modal/Modal.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n.cover-background {\n background-position: center;\n background-size: cover;\n}\n.modal-show {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n}\n.modal-hide {\n display: none;\n}\n.modal-mask {\n background-color: rgba(0, 0, 0, 0.185);\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n}\n.modal-content {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n position: relative;\n width: 600rpx;\n height: 80%;\n background-color: white;\n}\n.modal-close {\n position: absolute;\n z-index: 10000;\n top: 0;\n right: 0;\n width: 100rpx;\n height: 100rpx;\n background-position: center;\n background-image: url('/images/common/close_2x.png');\n background-size: 50rpx 50rpx;\n background-repeat: no-repeat;\n}\n","components/Modal/Modal.axml":"<view class=\"modal-{{show ? 'show' : 'hide'}}\" disable-scroll=\"{{true}}\">\n <view class=\"modal-mask\" >\n <view class=\"modal-content\">\n <view class=\"modal-close\" onTap=\"onClose\" />\n\n <slot/>\n </view>\n </view>\n</view>","components/Modal/Modal.js":"Component({\n mixins: [],\n data: {},\n props: {\n show: false,\n onClose: () => {},\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onClose() {\n this.props.onClose();\n },\n },\n});\n","components/Modal/Modal.json":"{\n \"component\": true\n}","components/purchase-number/purchase-number.acss":".purchase-number {\n display: flex;\n font-size: 30rpx;\n text-align: center;\n}\n.purchase-number__subtract {\n background-color: #fbfbfb;\n}\n.purchase-number__number {\n background-color: #f5f5f5;\n padding: 10rpx;\n min-width: 80rpx;\n}\n.purchase-number__plus {\n background-color: #f5f5f5;\n}\n.purchase-number__subtract,\n.purchase-number__plus {\n color: #999;\n padding: 10rpx;\n width: 60rpx;\n}\n","components/purchase-number/purchase-number.axml":"<view class=\"purchase-number\">\n <view\n onTap=\"subtract\"\n class=\"purchase-number__subtract\"\n >\n -\n </view>\n <view class=\"purchase-number__number\">\n {{value}}\n </view>\n <view\n onTap=\"plus\"\n class=\"purchase-number__plus\"\n >\n +\n </view>\n</view>","components/purchase-number/purchase-number.js":"Component({\n mixins: [],\n data: {},\n props: {\n value: 1,\n max: 1,\n onChange: () => {},\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n plus() {\n const { value, max, onChange } = this.props;\n\n if (value < max) {\n onChange(value + 1);\n }\n },\n subtract() {\n const { value, onChange } = this.props;\n \n if (value > 1) {\n onChange(value - 1);\n }\n },\n },\n});\n","components/purchase-number/purchase-number.json":"{\n \"component\": true\n}","components/Search/Search.acss":".children-center-flex {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.search {\n display: flex;\n height: 66rpx;\n border-radius: 10000rpx;\n background: #fff;\n align-items: center;\n overflow: hidden;\n position: relative;\n}\n.search__mask {\n position: absolute;\n background-color: transparent;\n z-index: 1;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n}\n.search__icon {\n width: 28rpx;\n height: 27rpx;\n margin-left: 20rpx;\n}\n.search__text {\n padding-left: 12rpx;\n}\n.search__input {\n font-size: 26rpx;\n flex-grow: 1;\n}\n.search__input:disabled {\n color: #333 !important;\n}\n.search__input-placeholder {\n font-size: 26rpx !important;\n color: #999 !important;\n}\n.search__clear-container {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 18rpx 0 18rpx 18rpx;\n}\n.search__clear {\n width: 28rpx;\n height: 28rpx;\n margin-right: 20rpx;\n}\n","components/Search/Search.axml":"<view\n class=\"search {{className}}\"\n onTap=\"{{disable?'onFocus':''}}\"\n>\n <image\n class=\"search__icon\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*-ZudTL5rua4AAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n\n <input\n placeholder=\"搜索该门店的宝贝\"\n class=\"search__input\"\n value=\"{{value}}\"\n disabled=\"{{disabled}}\"\n focus=\"{{focus}}\"\n onBlur=\"onBlur\"\n onFocus=\"onFocus\"\n onInput=\"onInput\"\n onConfirm=\"onConfirm\"\n placeholder-class=\"search__input-placeholder\"\n />\n <view\n a:if=\"{{!disabled && value}}\"\n class=\"search__clear-container\"\n catchTap=\"clear\"\n >\n <image\n class=\"search__clear\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*xttPT7EFYEAAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n </view>\n</view>","components/Search/Search.js":"Component({\n mixins: [],\n data: {\n focus: false,\n },\n props: {\n disabled: false,\n defaultFocus: false,\n value: \"\",\n className: \"\",\n onInput: () => {},\n onClear: () => {},\n onConfirm: () => {},\n },\n didMount() {\n if (this.props.defaultFocus) {\n this.onFocus();\n }\n },\n didUpdate() {},\n didUnmount() {},\n methods: {\n onBlur() {\n this.setData({ focus: false });\n },\n onFocus() {\n this.setData({ focus: true });\n },\n clear() {\n this.props.onClear();\n },\n onConfirm() {\n this.props.onConfirm();\n },\n onInput(e) {\n this.props.onInput(e);\n },\n },\n});\n","components/Search/Search.json":"{\n \"component\": true\n}","components/Section/Section.acss":".section--gutter-top {\n margin-top: 48rpx;\n border-top: 20rpx solid #f1f1f1;\n}\n.section--gutter-bottom {\n border-bottom: 2rpx solid #ebebeb;\n}\n.section-title {\n padding: 32rpx;\n}\n.section-children--padding {\n padding: 0 32rpx;\n}\n","components/Section/Section.axml":"<view class=\"section {{className}} {{gutterTop?'section--gutter-top':''}} {{gutterBottom?'section--gutter-bottom':''}}\">\n <title a:if=\"{{title}}\" className=\"section-title\">{{title}}</title>\n <view class=\"{{paddingChildren?'section-children--padding':''}}\">\n <slot />\n </view>\n</view>","components/Section/Section.js":"Component({\n mixins: [],\n data: {},\n props: {\n title: \"\",\n className: \"\",\n paddingChildren: false,\n gutterTop: false,\n gutterBottom: false,\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","components/Section/Section.json":"{\n \"component\": true,\n \"usingComponents\": {\n \"title\": \"/components/Title/Title\"\n }\n}\n","components/select-button/select-button.acss":".select-group {\n margin: -15rpx;\n}\n.select-col {\n display: inline-block;\n padding: 15rpx;\n}\n.select-item {\n border-radius: 12rpx;\n font-size: 24rpx;\n line-height: 24rpx;\n padding: 20rpx 36rpx;\n background: #f6f6f6;\n color: #333;\n border: 1rpx solid #f6f6f6;\n}\n.select-item--active {\n background: #fff9f9;\n border: 1rpx solid #ff5000;\n color: #ff5000;\n}\n","components/select-button/select-button.axml":"<view class=\"select-group\">\n <view\n a:for=\"{{options}}\"\n class=\"select-col\"\n >\n <view\n data-id=\"{{item.id}}\"\n onTap=\"onSelectOption\"\n class=\"select-item {{selectedOptionId===item.id?'select-item--active':''}}\"\n >\n {{item.name}}\n </view>\n </view>\n</view>","components/select-button/select-button.js":"Component({\n mixins: [],\n data: {},\n props: {\n options: [],\n selectedOptionId: \"\",\n onSelectOption: () => {},\n identifyId: \"\",\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onSelectOption(e) {\n this.props.onSelectOption(e.target.dataset.id, this.props.identifyId);\n },\n },\n});\n","components/select-button/select-button.json":"{\n \"component\": true\n}","components/Tab/Tab.acss":".tab {\n display: flex;\n align-items: baseline;\n padding: 16rpx 24rpx;\n}\n.tab-item {\n flex-shrink: 0;\n margin-right: 29rpx;\n padding: 7rpx 20rpx;\n color: #666;\n font-size: 28rpx;\n display: flex;\n align-items: center;\n}\n.tab-item image {\n width: 12rpx;\n height: 14rpx;\n margin-left: 6rpx;\n}\n.tab-item--active {\n color: #009d9a;\n}\n","components/Tab/Tab.axml":"<scroll-view\n class=\"tab\"\n scroll-x=\"{{true}}\"\n scroll-y=\"{{false}}\"\n>\n <view\n a:for=\"{{tabs}}\"\n class=\"tab-item {{activeId===item.id?'tab-item--active':''}}\"\n onTap=\"onItemTap\"\n data-index=\"{{item.id}}\"\n >\n {{item.title}}\n <image\n a:if=\"{{item.sortable}}\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*WR7tS62_iPwAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n </view>\n</scroll-view>","components/Tab/Tab.js":"Component({\n mixins: [],\n data: {},\n props: {\n tabs: [],\n activeId: 0,\n onActiveTabChange: () => undefined,\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onItemTap(e) {\n this.props.onActiveTabChange(e.target.dataset.index);\n },\n },\n});\n","components/Tab/Tab.json":"{\n \"component\": true\n}","components/Title/Title.acss":".title {\n font-size: 36rpx;\n padding: 24rpx;\n background: #fff;\n}\n","components/Title/Title.axml":"<view class=\"title {{className}}\">\n <slot />\n</view>","components/Title/Title.js":"Component({\n mixins: [],\n data: {},\n props: {\n className: \"\",\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","components/Title/Title.json":"{\n \"component\": true\n}","package-lock.json":"{\n \"requires\": true,\n \"lockfileVersion\": 1,\n \"dependencies\": {\n \"mini-antui\": {\n \"version\": \"0.4.29\",\n \"resolved\": \"https://registry.npm.taobao.org/mini-antui/download/mini-antui-0.4.29.tgz\",\n \"integrity\": \"sha1-Azqy5E7lPcTbJf7GXk3pTazCPZM=\"\n }\n }\n}\n","package.json":"{\n \"scripts\": {\n \"ainstall\": \"npm install --registry=https://registry.npm.taobao.org\"\n },\n \"dependencies\": {\n \"mini-ali-ui\": \"^1.1.0\"\n }\n}\n","pages/category/category.acss":".category-title {\n margin-bottom: 24rpx;\n}\n.category-item {\n padding: 35rpx 24rpx 40rpx;\n background-color: #fff;\n overflow: hidden;\n border-radius: 24rpx;\n margin: 0 24rpx 24rpx;\n}\n.category-header {\n display: flex;\n justify-content: space-between;\n}\n.category-header__title {\n font-size: 32rpx;\n}\n.category-header__nav {\n width: 15rpx;\n height: 25rpx;\n}\n.category-body {\n margin: -6rpx;\n margin-top: 24rpx;\n display: flex;\n flex-wrap: wrap;\n}\n.category-body__item {\n width: 50%;\n box-sizing: border-box;\n padding: 6rpx;\n}\n.category-body__item view {\n font-size: 28rpx;\n background-color: #f2f2f2;\n border-radius: 8rpx;\n padding: 17rpx 24rpx;\n}\n","pages/category/category.axml":"<view class=\"category\">\n <title class=\"category-title\">宝贝分类</title>\n <view\n a:for=\"{{categories}}\"\n class=\"category-item\"\n >\n <view class=\"category-header\">\n <view class=\"category-header__title\">\n {{item.name}}\n </view>\n <image\n class=\"category-header__nav\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*yeGUSJlo0gsAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n </view>\n <view class=\"category-body\">\n <view\n a:for=\"{{item.children}}\"\n a:for-item=\"categoryItem\"\n class=\"category-body__item\"\n >\n <view>{{categoryItem}}</view>\n </view>\n </view>\n </view>\n</view>","pages/category/category.js":"import { getAllCategories } from \"../../services/category\";\nimport * as log from \"../../utils/log\";\n\nPage({\n data: {\n categories: [],\n },\n onLoad({ query }) {\n console.log(query);\n getAllCategories()\n .then(({ data }) => this.setData({ categories: data }))\n .catch(error => log.error(\"category.onLoad.getAllCategories\", error));\n },\n});\n","pages/category/category.json":"{\n \"usingComponents\": {\n \"title\": \"/components/Title/Title\"\n }\n}\n","pages/handbag/components/commodity-drawer/commodity-drawer.acss":".commodity-info {\n display: flex;\n padding: 32rpx 24rpx 36rpx;\n}\n.commodity-info__cover {\n width: 220rpx;\n height: 220rpx;\n flex-shrink: 0;\n}\n.commodity-info__right {\n margin-left: 30rpx;\n}\n.commodity-info__price-section {\n padding-top: 61rpx;\n display: flex;\n align-items: baseline;\n}\n.commodity-info__price-icon,\n.commodity-info__price {\n color: #ff5000;\n line-height: 36rpx;\n}\n.commodity-info__price-icon {\n font-size: 26rpx;\n margin-right: 5rpx;\n}\n.commodity-info__price {\n font-size: 40rpx;\n}\n.commodity-info__storage {\n margin-top: 13rpx;\n font-size: 24rpx;\n color: #999;\n line-height: 24rpx;\n}\n.commodity-info__type {\n font-size: 24rpx;\n color: #333;\n line-height: 24rpx;\n margin-top: 40rpx;\n}\n.commodity-shipping-method {\n padding: 21rpx 24rpx 10rpx;\n}\n.commodity-divider {\n border-top: 1rpx solid #eee;\n margin: 20rpx 24rpx;\n}\n.commodity-address {\n padding: 15rpx 24rpx;\n}\n.commodity-address__header {\n display: flex;\n align-items: center;\n}\n.commodity-address__header-title {\n font-size: 28rpx;\n color: #333;\n margin-right: 23rpx;\n}\n.commodity-address__header-description {\n font-size: 22rpx;\n color: #999;\n line-height: 20rpx;\n}\n.commodity-address__body {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 36rpx 0 15rpx;\n}\n.commodity-address__body-left {\n display: flex;\n align-items: center;\n}\n.commodity-address__body-location {\n flex-shrink: 0;\n width: 21rpx;\n height: 26rpx;\n margin-right: 16rpx;\n}\n.commodity-address__body-detail {\n font-size: 26rpx;\n color: #333;\n line-height: 26rpx;\n}\n.commodity-shipping-from {\n padding: 10rpx 24rpx;\n}\n.commodity-shipping-from__header {\n font-size: 28rpx;\n color: #333;\n}\n.commodity-shipping-from__body {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-top: 30rpx;\n}\n.commodity-shipping-from__body-left {\n padding-top: 1rpx;\n}\n.commodity-shipping-from__body-store {\n display: block;\n margin-bottom: 14rpx;\n}\n.commodity-shipping-from__body-type,\n.commodity-shipping-from__body-from {\n display: inline;\n}\n.commodity-shipping-from__body-type {\n font-size: 25rpx;\n padding-right: 10rpx;\n color: #333;\n}\n.commodity-shipping-from__body-from {\n font-size: 22rpx;\n color: #999;\n line-height: 20rpx;\n}\n.commodity-shipping-from__body-time {\n font-size: 22rpx;\n color: #999;\n line-height: 20rpx;\n}\n.commodity-shipping-from__body-day {\n display: inline;\n color: #ff002d;\n padding: 0 10rpx;\n}\n.commodity-shipping-from__body-right {\n display: flex;\n justify-content: space-between;\n border-left: 1rpx solid #eee;\n padding-left: 16rpx;\n}\n.commodity-shipping-from__body-price {\n font-size: 26rpx;\n color: #333;\n line-height: 26rpx;\n margin-right: 25rpx;\n}\n.commodity-option {\n padding: 10rpx 24rpx;\n}\n.commodity-option-item__title {\n font-size: 28rpx;\n color: #333;\n}\n.commodity-option-item__value {\n padding: 20rpx 0;\n}\n.commodity-purchase-number {\n padding: 10rpx 24rpx 40rpx;\n display: flex;\n justify-content: space-between;\n}\n.commodity-purchase-number__header {\n display: flex;\n align-items: center;\n}\n.commodity-purchase-number__title {\n font-size: 28rpx;\n color: #333;\n}\n.commodity-purchase-number__description {\n font-size: 22rpx;\n color: #999;\n line-height: 20rpx;\n}\n.commodity-confirm {\n background-image: linear-gradient(90deg, #ff9000 0%, #ff5000 100%);\n border-radius: 100000rpx;\n font-size: 35rpx;\n padding: 20rpx;\n color: #fff;\n margin: 10rpx 24rpx 40rpx;\n text-align: center;\n}\n.nav-icon {\n flex-shrink: 0;\n width: 15rpx;\n height: 23rpx;\n}\n","pages/handbag/components/commodity-drawer/commodity-drawer.axml":"<drawer\n show=\"{{show}}\"\n onClose=\"onClose\"\n>\n <view\n a:if=\"{{currentCommodity.options}}\"\n class=\"commodity\"\n >\n <view class=\"commodity-info\">\n <image\n class=\"commodity-info__cover\"\n src=\"{{currentCommodity.cover}}\"\n mode=\"scaleToFill\"\n />\n <view class=\"commodity-info__right\">\n <view class=\"commodity-info__price-section\">\n <view class=\"commodity-info__price-icon\">¥</view>\n <view class=\"commodity-info__price\">{{currentCommodity.price}}</view>\n </view>\n <view class=\"commodity-info__storage\">库存{{currentCommodity.storage}}件</view>\n <view class=\"commodity-info__type\">已选:{{currentCommodity.type}}</view>\n </view>\n </view>\n <view class=\"commodity-shipping-method\">\n <select-button\n selectedOptionId=\"{{selectedShippingMethodId}}\"\n options=\"{{currentCommodity.shippingMethod}}\"\n onSelectOption=\"onShippingMethodSelect\"\n />\n </view>\n <view class=\"commodity-divider\"></view>\n <view class=\"commodity-address\">\n <view class=\"commodity-address__header\">\n <view class=\"commodity-address__header-title\">\n 配送至\n </view>\n <view class=\"commodity-address__header-description\">\n 地址不同可能会影响商品库存和运费,请正确选择\n </view>\n </view>\n <view class=\"commodity-address__body\">\n <view class=\"commodity-address__body-left\">\n <image\n class=\"commodity-address__body-location\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*1U19Rbxzg8MAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n <view class=\"commodity-address__body-detail\">\n {{address}}\n </view>\n </view>\n <image\n class=\"nav-icon\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*yeGUSJlo0gsAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n </view>\n </view>\n <view class=\"commodity-divider\"></view>\n <view class=\"commodity-shipping-from\">\n <view class=\"commodity-shipping-from__header\">\n 配送方式\n </view>\n <view class=\"commodity-shipping-from__body\">\n <view class=\"commodity-shipping-from__body-left\">\n <view class=\"commodity-shipping-from__body-store\">\n <view class=\"commodity-shipping-from__body-type\">\n {{currentCommodity.shippingFrom.type}}\n </view>\n <view class=\"commodity-shipping-from__body-from\">\n 由 {{currentCommodity.shippingFrom.name}} 发货\n </view>\n </view>\n <view class=\"commodity-shipping-from__body-time\">\n {{currentCommodity.shippingTime.payTime}} 前付款,预计\n <view class=\"commodity-shipping-from__body-day\">\n {{currentCommodity.shippingTime.receiveDay}}\n </view>\n {{currentCommodity.shippingTime.receiveFormatDay}}送达\n </view>\n </view>\n <view class=\"commodity-shipping-from__body-right\">\n <view class=\"commodity-shipping-from__body-price\">运费:9.00 元</view>\n <image\n class=\"nav-icon\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*yeGUSJlo0gsAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n </view>\n </view>\n </view>\n <view class=\"commodity-divider\"></view>\n <view class=\"commodity-option\">\n <view\n a:for=\"{{currentCommodity.options}}\"\n class=\"commodity-option-item\"\n >\n <view class=\"commodity-option-item__title\">\n {{item.name}}\n </view>\n <view class=\"commodity-option-item__value\">\n <select-button\n selectedOptionId=\"{{selectedOptionIds[index]}}\"\n options=\"{{item.values}}\"\n identifyId=\"{{index}}\"\n onSelectOption=\"onOptionSelect\"\n />\n </view>\n </view>\n </view>\n <view class=\"commodity-divider\"></view>\n <view class=\"commodity-purchase-number\">\n <view class=\"commodity-purchase-number__header\">\n <view class=\"commodity-purchase-number__title\">\n 购买数量\n </view>\n <view class=\"commodity-purchase-number__description\">\n (仅支持{{currentCommodity.maxPurchaseNumber}}倍购买)\n </view>\n </view>\n <purchase-number\n value=\"{{purchaseNumber}}\"\n max=\"{{currentCommodity.maxPurchaseNumber}}\"\n onChange=\"onPurchaseNumberChange\"\n >\n </view>\n <view\n class=\"commodity-confirm\"\n onTap=\"onConfirm\"\n >\n 确定\n </view>\n </view>\n</drawer>","pages/handbag/components/commodity-drawer/commodity-drawer.js":"import { getCommodityDetail } from '../../../../services/commodity';\nimport * as log from '../../../../utils/log';\n\nComponent({\n mixins: [],\n data: {\n selectedShippingMethodId: '',\n selectedOptionIds: [],\n currentCommodity: {},\n purchaseNumber: 1,\n address: '杭州市 余杭区 闲林街道 翡翠城东北区',\n },\n props: {\n show: false,\n onClose: () => {},\n onConfirm: () => {},\n commodityId: '',\n },\n didMount() {},\n didUpdate(preProps) {\n const { commodityId } = this.props;\n if (preProps.commodityId !== commodityId) {\n this.fetchCommodityDetailById(commodityId);\n }\n },\n didUnmount() {},\n methods: {\n onClose() {\n this.props.onClose();\n },\n fetchCommodityDetailById(id) {\n getCommodityDetail(id)\n .then(({ data }) =>\n this.setData({\n currentCommodity: data,\n selectedShippingMethodId: this.getFirstId(data.shippingMethod),\n selectedOptionIds: data.options.map(item =>\n this.getFirstId(item.values)\n ),\n })\n )\n .catch(err =>\n log.error(\n 'CommodityDrawer.fetchCommodityDetailById.getCommodityDetail',\n err\n )\n );\n },\n getFirstId(list = []) {\n if (list.length > 0) {\n return list[0].id;\n }\n return null;\n },\n onShippingMethodSelect(id) {\n this.setData({ selectedShippingMethodId: id });\n },\n onOptionSelect(id, index) {\n const nextSelectedOptionIds = [...this.data.selectedOptionIds];\n nextSelectedOptionIds[index] = id;\n this.setData({ selectedOptionIds: nextSelectedOptionIds });\n },\n onPurchaseNumberChange(num) {\n this.setData({ purchaseNumber: num });\n },\n onConfirm() {\n // TODO: add request\n this.props.onConfirm();\n },\n },\n});\n","pages/handbag/components/commodity-drawer/commodity-drawer.json":"{\n \"component\": true,\n \"usingComponents\": {\n \"drawer\": \"/components/Drawer/Drawer\",\n \"select-button\": \"/components/select-button/select-button\",\n \"purchase-number\": \"/components/purchase-number/purchase-number\"\n }\n}\n","pages/handbag/components/location/location.acss":".location {\n background: #fff;\n font-size: 28rpx;\n padding: 24rpx 24rpx 24rpx 28rpx;\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 82rpx;\n}\n.location-description {\n display: flex;\n align-items: center;\n line-height: 22rpx;\n}\n.location-description__logo {\n width: 32rpx;\n height: 32rpx;\n margin-right: 6rpx;\n}\n.location-description__title {\n font-weight: bold;\n padding-right: 10rpx;\n}\n.location-action {\n display: flex;\n align-items: center;\n font-size: 26rpx;\n color: #9a9a9a;\n}\n.location-action image {\n margin-left: 20rpx;\n width: 13rpx;\n height: 24rpx;\n}\n","pages/handbag/components/location/location.axml":"<view class=\"location\">\n <view class=\"location-description\">\n <image\n class=\"location-description__logo\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*JOy0QqiN0qUAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n <text class=\"location-description__title\">屈臣氏亲橙里店</text>距离1.4km\n </view>\n <view class=\"location-action\">\n 切换\n <image\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*tuXAT6mNwWUAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n </view>\n</view>","pages/handbag/components/location/location.js":"Component({\n mixins: [],\n data: {},\n props: {},\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","pages/handbag/components/location/location.json":"{\n \"component\": true\n}","pages/handbag/components/Masonry/Masonry.acss":".masonry {\n padding: 0 8rpx;\n display: grid;\n grid-template-columns: 1fr 1fr;\n align-items: stretch;\n}\n.masonry-col {\n box-sizing: border-box;\n padding: 9rpx;\n}\n.masonry-item {\n display: flex;\n position: relative;\n flex-direction: column;\n justify-content: stretch;\n height: 100%;\n background: #fff;\n border-radius: 12rpx;\n overflow: hidden;\n box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);\n}\n.masonry-item__rank {\n position: absolute;\n width: 66rpx;\n height: 66rpx;\n top: 18rpx;\n left: 18rpx;\n}\n.masonry-item__background {\n flex-shrink: 0;\n width: 100%;\n height: 342rpx;\n overflow: hidden;\n}\n.masonry-item__container {\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 20rpx 20rpx 24rpx;\n}\n.masonry-item__body {\n margin-bottom: 15rpx;\n}\n.masonry-item__title {\n font-size: 26rpx;\n color: #333;\n text-align: left;\n line-height: 37rpx;\n}\n.masonry-item__self-pick-up {\n display: inline-block;\n background: #fffafb;\n border: 1rpx solid #ff0036;\n border-radius: 6rpx;\n font-size: 20rpx;\n color: #ff0036;\n line-height: 24rpx;\n padding: 3rpx 10rpx;\n margin-bottom: 12rpx;\n}\n.masonry-item__footer {\n display: flex;\n justify-content: space-between;\n}\n.masonry-item__footer-left {\n display: flex;\n align-items: baseline;\n}\n.masonry-item__price-logo {\n font-size: 24rpx;\n color: #ff5000;\n margin-right: 5rpx;\n line-height: 24rpx;\n}\n.masonry-item__price {\n font-size: 32rpx;\n color: #ff5000;\n line-height: 30rpx;\n margin-right: 6rpx;\n}\n.masonry-item__sales {\n font-size: 22rpx;\n color: #999;\n text-align: left;\n line-height: 22rpx;\n}\n.masonry-item__shopping-cart {\n width: 28rpx;\n height: 28rpx;\n}\n","pages/handbag/components/Masonry/Masonry.axml":"<view\n class=\"masonry\"\n style=\"grid-template-columns:{{columns===1?'1fr':'1fr 1fr'}};\"\n>\n <view\n class=\"masonry-col\"\n a:for=\"{{masonryData}}\"\n >\n <view\n onTap=\"onTapCommodity\"\n data-id=\"{{item.id}}\"\n class=\"masonry-item\"\n style=\"flex-direction:{{columns===1?'row':'column'}};\"\n >\n <image\n class=\"masonry-item__rank\"\n a:if=\"{{index<3&&isRanking}}\"\n lazy-load=\"{{true}}\"\n src=\"{{index === 0\n ? 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*Uv3oTbU0A5AAAAAAAAAAAABkARQnAQ'\n : index === 1\n ? 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*_ag8S6t0xtcAAAAAAAAAAABkARQnAQ'\n : index === 2\n ? 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*2lPbRp3l8Z8AAAAAAAAAAABkARQnAQ'\n : ''}}\"\n mode=\"scaleToFill\"\n />\n <image\n src=\"{{item.cover}}\"\n mode=\"aspectFill\"\n class=\"masonry-item__background\"\n style=\"height:{{columns===1?280:342}}rpx;width:{{columns===1?'280rpx':'100%'}}\"\n />\n <view class=\"masonry-item__container\">\n <view class=\"masonry-item__body\">\n <view class=\"masonry-item__title\">{{item.title}}</view>\n </view>\n <view>\n <view\n a:if=\"{{item.canSelfPickUp}}\"\n class=\"masonry-item__self-pick-up\"\n >\n 可自提\n </view>\n <view class=\"masonry-item__footer\">\n\n <view class=\"masonry-item__footer-left\">\n <view class=\"masonry-item__price-logo\">¥</view>\n <view class=\"masonry-item__price\">\n {{item.price}}\n </view>\n <view class=\"masonry-item__sales\">\n {{item.sales}}人付款\n </view>\n </view>\n <image\n mode=\"scaleToFill\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*7iWdR5ix18UAAAAAAAAAAABkARQnAQ\"\n class=\"masonry-item__shopping-cart\"\n />\n </view>\n </view>\n </view>\n </view>\n </view>\n</view>","pages/handbag/components/Masonry/Masonry.js":"Component({\n mixins: [],\n data: {},\n props: {\n masonryData: [],\n columns: 2,\n isRanking: false,\n onTapCommodity: () => {},\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onTapCommodity(e) {\n this.props.onTapCommodity(e.target.dataset.id);\n },\n },\n});\n","pages/handbag/components/Masonry/Masonry.json":"{\n \"component\": true\n}","pages/handbag/handbag.acss":".search-nav {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 24rpx;\n box-sizing: border-box;\n}\n.search-nav__input {\n flex-grow: 1;\n margin-right: 36rpx;\n}\n.empty-position {\n margin-top: 117rpx;\n}\n","pages/handbag/handbag.axml":"<import-sjs\n name=\"EmptyType\"\n from=\"../../components/Empty/empty-type.sjs\"\n/>\n<commodity-drawer\n commodityId=\"{{selectedCommodityId}}\"\n show=\"{{showCommodityDrawer}}\"\n onClose=\"onCloseCommodityDrawer\"\n onConfirm=\"onConfirm\"\n/>\n<view disable-scroll=\"{{showCommodityDrawer}}\">\n\n <location />\n <view class=\"search-nav\">\n <navigator\n className=\"search-nav__input\"\n url=\"/pages/search/search\"\n >\n <search\n value=\"{{searchValue}}\"\n disabled=\"{{true}}\"\n />\n </navigator>\n <category-nav />\n </view>\n <tab\n activeId=\"{{activeTabId}}\"\n onActiveTabChange=\"onActiveTabChange\"\n tabs=\"{{tabs}}\"\n />\n <masonry\n a:if=\"{{currentCommodities.length>0}}\"\n columns=\"{{activeTabId===TREND?1:2}}\"\n isRanking=\"{{activeTabId===TREND}}\"\n masonryData=\"{{currentCommodities}}\"\n onTapCommodity=\"onTapCommodity\"\n />\n <empty\n a:else\n type=\"{{searchValue?EmptyType.EMPTY_SEARCH_RESULT:EmptyType.EMPTY_STORE}}\"\n className=\"empty-position\"\n />\n</view>","pages/handbag/handbag.js":"import { getCommodity } from '../../services/commodity';\nimport * as log from '../../utils/log';\nimport { ALL, TREND, NEW, PRICE } from '../../asserts/CommodityType';\n\nPage({\n data: {\n ALL,\n TREND,\n NEW,\n PRICE,\n searchValue: '',\n tabs: [\n {\n id: ALL,\n title: '综合',\n },\n {\n id: TREND,\n title: '人气榜',\n },\n {\n id: NEW,\n title: '新品',\n },\n {\n id: PRICE,\n title: '价格',\n sortable: true,\n },\n ],\n activeTabId: ALL,\n currentCommodities: [],\n selectedCommodityId: '',\n showCommodityDrawer: false,\n },\n onShow() {\n const { searchValue = '' } = getApp();\n this.setData({ searchValue });\n this.fetchCurrentCommodities(this.data.activeTabId);\n },\n onActiveTabChange(id) {\n this.setData({ activeTabId: id });\n this.fetchCurrentCommodities(id);\n },\n onTapCommodity(id) {\n this.setData({ selectedCommodityId: id, showCommodityDrawer: true });\n },\n onCloseCommodityDrawer() {\n this.setData({ showCommodityDrawer: false });\n },\n getCommodityDetailPagePath(id) {\n return `/pages/commodity/commodity?id=${id}`;\n },\n mapCommodityItemToViewList(commodities = []) {\n return commodities.map(item => ({\n ...item,\n url: this.getCommodityDetailPagePath(item.id),\n }));\n },\n fetchCurrentCommodities(commodityType) {\n this.setData({ currentCommodities: [] });\n getCommodity({ type: commodityType })\n .then(({ data = [] }) =>\n this.setData({\n currentCommodities: this.mapCommodityItemToViewList(data),\n })\n )\n .catch(err =>\n log.error('handbag.fetchCurrentCommodities.getAllCommodity', err)\n );\n },\n onConfirm() {\n this.onCloseCommodityDrawer();\n my.showToast({\n type: 'success',\n content: '添加成功,在购物车等亲',\n duration: 3000,\n });\n },\n});\n","pages/handbag/handbag.json":"{\n \"defaultTitle\": \"门店商品\",\n \"usingComponents\": {\n \"location\": \"/pages/handbag/components/location/location\",\n \"masonry\": \"/pages/handbag/components/Masonry/Masonry\",\n \"commodity-drawer\": \"/pages/handbag/components/commodity-drawer/commodity-drawer\",\n \"search\": \"/components/Search/Search\",\n \"empty\": \"/components/Empty/Empty\",\n \"category-nav\": \"/components/category-nav/category-nav\",\n \"tab\": \"/components/Tab/Tab\"\n }\n}\n","pages/index/components/DrinkModal/DrinkModal.acss":".drink-modal {\n position: relative;\n}\n.drink-modal__header {\n height: 280rpx;\n color: white;\n background-image: linear-gradient(to bottom, #b1c1cd 0%, #b1c1cd 70%, #e6e6e6 70%, #e6e6e6 100%);\n padding: 0 50rpx;\n}\n.drink-modal__title {\n font-size: 36rpx;\n padding: 150rpx 0 10rpx;\n}\n.drink-modal__image {\n position: absolute;\n left: 400rpx;\n top: 40rpx;\n width: 200rpx;\n}\n","pages/index/components/DrinkModal/DrinkModal.axml":"<view>\n <modal show=\"{{ show }}\" onClose=\"onClose\">\n <view class=\"drink-modal\">\n <view class=\"drink-modal__header\">\n <image mode=\"widthFix\" src=\"/images/drink/drink_2x.png\" class=\"drink-modal__image\" />\n <view class=\"drink-modal__title\">{{ title }}</view>\n <view class=\"drink-modal__description\">{{ description }}</view>\n </view>\n <article nodes=\"{{ content }}\"></article>\n </view>\n </modal>\n</view>","pages/index/components/DrinkModal/DrinkModal.js":"Component({\n mixins: [],\n data: {\n title: \"饮悦工坊来杯百香果\",\n description: \"YinYooWorkShop\",\n content: [\n {\n name: \"h2\",\n attrs: {\n class: \"h2\",\n },\n children: [\n {\n type: \"text\",\n text: \"产品描述\",\n },\n ],\n },\n {\n name: \"p\",\n attrs: {\n class: \"h4\",\n },\n children: [\n {\n type: \"text\",\n text:\n \"百香果又叫鸡蛋果,果瓤多汁液,气味特别芳香,可散发出香蕉、菠萝、柠檬、草莓、番桃、石榴等多种水果的浓郁香味而被举为“百香果”。\",\n },\n ],\n },\n {\n name: \"p\",\n attrs: {\n class: \"h4\",\n },\n children: [\n {\n type: \"text\",\n text:\n \"注:该产品冷饮为冰摇状态,只供冷饮。产品含大块果肉,为提倡环保,luckin门店不主动提供叉子,如有需要请备注。\",\n },\n ],\n },\n {\n name: \"h2\",\n attrs: {\n class: \"h2\",\n },\n children: [\n {\n type: \"text\",\n text: \"调制配料\",\n },\n ],\n },\n {\n name: \"p\",\n attrs: {\n class: \"h4\",\n },\n children: [\n {\n type: \"text\",\n text: \"百香果、冬提、奇异果、青柠片\",\n },\n ],\n },\n ],\n },\n props: {\n show: false,\n onClose: () => {},\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onClose() {\n this.props.onClose();\n },\n },\n});\n","pages/index/components/DrinkModal/DrinkModal.json":"{\n \"component\": true,\n \"usingComponents\": {\n \"modal\": \"/components/Modal/Modal\",\n \"article\": \"/components/Article/Article\"\n }\n}\n","pages/index/components/EnterpriseIntro/EnterpriseIntro.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n.enterprise-intro {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n display: flex;\n align-items: center;\n margin: 32rpx;\n padding: 48rpx;\n}\n.enterprise-intro__logo {\n width: 70rpx;\n height: 70rpx;\n border-radius: 100000px;\n}\n.enterprise-intro__name {\n flex-grow: 1;\n padding-left: 32rpx;\n}\n.enterprise-intro__title {\n padding-bottom: 8rpx;\n font-size: 32rpx;\n}\n.enterprise-intro__description {\n color: gray;\n font-size: 24rpx;\n}\n.enterprise-intro__nav {\n display: flex;\n align-items: center;\n}\n.enterprise-intro__nav-logo {\n width: 20rpx;\n height: 20rpx;\n}\n","pages/index/components/EnterpriseIntro/EnterpriseIntro.axml":"<navigator url=\"/pages/about/about\" class=\"enterprise-intro\">\n <image class=\"enterprise-intro__logo\" src=\"/images/main-page/logo_2x.png\"/>\n <view class=\"enterprise-intro__name\">\n <view class=\"enterprise-intro__title\">饮悦工坊</view>\n <view class=\"enterprise-intro__description\">全国第一果茶开创者</view>\n </view>\n <view class=\"enterprise-intro__nav\">\n <view class=\"enterprise-intro__nav-description\">企业介绍</view>\n <image class=\"enterprise-intro__nav-logo\" mode=\"aspectFill\" src=\"/images/main-page/nav_2x.png\"/>\n </view>\n</navigator>","pages/index/components/EnterpriseIntro/EnterpriseIntro.js":"Component({\n mixins: [],\n data: {},\n props: {},\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","pages/index/components/EnterpriseIntro/EnterpriseIntro.json":"{\n \"component\": true\n}","pages/index/components/HorizontalDisplay/HorizontalDisplay.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n.cover-background {\n background-position: center;\n background-size: cover;\n}\n.display {\n display: flex;\n box-sizing: content-box;\n margin-top: -32rpx;\n padding: 32rpx;\n}\n.display .display-item {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n display: flex;\n flex-shrink: 0;\n align-items: center;\n height: 160rpx;\n margin-right: 32rpx;\n}\n.display .display-item__title {\n padding-bottom: 8rpx;\n font-size: 28rpx;\n}\n.display .display-item__description {\n font-size: 20rpx;\n}\n.display .display-item-gutter {\n flex-shrink: 0;\n width: 32rpx;\n}\n.display .display-background {\n background-position: center;\n background-size: cover;\n justify-content: flex-end;\n width: 300rpx;\n padding: 32rpx;\n text-align: right;\n}\n.display .display-more {\n justify-content: center;\n width: 160rpx;\n font-size: 24rpx;\n}\n.display .display-more__container {\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n.display .display-more image {\n width: 40rpx;\n height: 40rpx;\n margin-bottom: 8rpx;\n}\n","pages/index/components/HorizontalDisplay/HorizontalDisplay.axml":"<scroll-view class=\"display\" scroll-y=\"{{false}}\" scroll-x=\"{{true}}\">\n <view onTap=\"onItemSelect\" data-item-id=\"{{item.id}}\" class=\"display-item display-background\"\n style=\"background-image: url('{{item.background}}');\" a:for=\"{{dataList}}\">\n <view>\n <view class=\"display-item__title\">{{item.title}}</view>\n <view class=\"display-item__description\">{{item.description}}</view>\n </view>\n </view>\n <view class=\"display-item display-more\">\n <view class=\"display-more__container\">\n <image mode=\"scaleToFill\" src=\"/images/main-page/more_2x.png\" />\n <view>更多产品</view>\n </view>\n </view>\n <view class=\"display-item-gutter\" />\n</scroll-view>\n","pages/index/components/HorizontalDisplay/HorizontalDisplay.js":"Component({\n mixins: [],\n data: {},\n props: {\n dataList: [],\n moreAction: \"\",\n onSelect: () => {},\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onItemSelect(e) {\n this.props.onSelect(e.target.dataset.itemId);\n },\n },\n});\n","pages/index/components/HorizontalDisplay/HorizontalDisplay.json":"{\n \"component\": true\n}","pages/index/components/MainSwiper/MainSwiper.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n.swiper-container {\n margin: 32rpx;\n}\n.swiper-container .swiper {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n.swiper-container .swiper .swiper-item {\n position: relative;\n width: 100%;\n height: 350rpx;\n}\n.swiper-container .swiper .swiper-item__inner {\n position: absolute;\n top: 50%;\n left: 50%;\n display: flex;\n flex-direction: column;\n align-items: center;\n transform: translateX(-50%) translateY(-50%);\n}\n.swiper-container .swiper .swiper-item__title {\n padding: 8rpx;\n font-weight: bold;\n font-size: 42rpx;\n}\n.swiper-container .swiper .swiper-item__description {\n padding: 8rpx;\n font-size: 32rpx;\n}\n.swiper-container .swiper .swiper-item__action {\n margin: 8rpx;\n padding: 8rpx 32rpx;\n color: white;\n font-size: 28rpx;\n background: #ff6d44;\n border-radius: 4px;\n}\n.swiper-container .swiper .swiper-item__author {\n padding: 8rpx;\n font-size: 24rpx;\n}\n.swiper-container .swiper .swiper-item__background {\n min-width: 100%;\n min-height: 100%;\n}\n","pages/index/components/MainSwiper/MainSwiper.axml":"\n <view class=\"swiper-container\">\n <swiper class=\"swiper\" indicator-dots=\"{{true}}\">\n <block a:for=\"{{swiperData}}\">\n <swiper-item >\n <view class=\"swiper-item\">\n <view class=\"swiper-item__inner\">\n <view class=\"swiper-item__title\">{{item.title}}</view>\n <view class=\"swiper-item__description\">\n {{item.description}}\n </view>\n <view class=\"swiper-item__action\" size=\"default\" type=\"primary\">{{item.action}}</view>\n <view class=\"swiper-item__author\">{{item.author}}</view>\n </view>\n <image class=\"swiper-item__background\" mode=\"aspectFill\" src=\"{{item.background}}\"/>\n </view>\n </swiper-item>\n </block>\n </swiper>\n </view>","pages/index/components/MainSwiper/MainSwiper.js":"Component({\n props: {\n swiperData: [],\n loading: false,\n },\n});\n","pages/index/components/MainSwiper/MainSwiper.json":"{\n \"component\": true\n}","pages/index/components/PairNav/PairNav.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n.cover-background {\n background-position: center;\n background-size: cover;\n}\n.pair-nav-container {\n display: flex;\n padding: 0 16rpx;\n}\n.pair-nav-container .pair-nav-col {\n width: 50%;\n padding: 0 16rpx;\n}\n.pair-nav-container .pair-nav {\n overflow: hidden;\n border-radius: 8px;\n background-position: center;\n background-size: cover;\n height: 180rpx;\n padding: 8rpx;\n}\n.pair-nav-container .pair-nav__left {\n margin-right: 0;\n background-image: url('/images/main-page/show_3x.png');\n}\n.pair-nav-container .pair-nav__right {\n background-image: url('/images/main-page/cooperation_3x.png');\n}\n.pair-nav-container .pair-nav__background {\n max-height: 100%;\n}\n.pair-nav-container .pair-nav__title {\n margin-bottom: 8rpx;\n font-size: 36rpx;\n}\n.pair-nav-container .pair-nav__description {\n color: gray;\n font-size: 28rpx;\n}\n","pages/index/components/PairNav/PairNav.axml":"<view class=\"pair-nav-container\">\n <navigator url=\"/pages/store-show/store-show\" class=\"pair-nav-col\">\n <view class=\"pair-nav pair-nav__left\">\n <view class=\"pair-nav__title\">\n 门店展示\n </view>\n <view class=\"pair-nav__description\">\n 5.0空间升级\n </view>\n </view>\n </navigator>\n <navigator url=\"/pages/store-show/store-show\" class=\"pair-nav-col\">\n <view class=\"pair-nav pair-nav__right\">\n <view class=\"pair-nav__title\">\n 加盟合作\n </view>\n <view class=\"pair-nav__description\">\n 快速盈利不犹豫\n </view>\n </view>\n </navigator>\n</view>","pages/index/components/PairNav/PairNav.js":"Component({\n mixins: [],\n data: {},\n props: {},\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","pages/index/components/PairNav/PairNav.json":"{\n \"component\": true\n}","pages/index/index.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n","pages/index/index.axml":"<view>\n\n</view>\n","pages/index/index.js":"Page({\n data: {\n message: \"\",\n swiperData: [],\n trailerCover: \"\",\n fruitTea: [],\n milkyTea: [],\n iceCream: [],\n enjoyment: [],\n drinkId: 0,\n drinkModalShow: false,\n },\n onLoad() {\n this.fetchData();\n },\n onPullDownRefresh() {\n // 页面被下拉\n this.fetchData();\n },\n onShareAppMessage() {\n // 返回自定义分享信息\n return {\n title: \"My App\",\n desc: \"My App description\",\n path: \"pages/index/index\",\n };\n },\n onDrinkModalClose() {\n this.setData({ drinkModalShow: false });\n },\n onDrinkSelect(id) {\n this.setData({ drinkModalShow: true, drinkId: id });\n },\n fetchData() {},\n});\n","pages/index/index.json":"{\n \"defaultTitle\": \"店铺页面\",\n \"usingComponents\": {}\n}\n","pages/my-order/my-order.acss":".title {\n margin-bottom: 42rpx;\n}\n.order-section {\n border-radius: 25rpx;\n background: #fff;\n margin: 0 24rpx 18rpx;\n padding: 0 25rpx;\n}\n.order-section-header {\n display: flex;\n justify-content: space-between;\n line-height: 83rpx;\n}\n.order-section-header__time {\n font-size: 26rpx;\n color: #333;\n}\n.order-section-header__state {\n font-size: 24rpx;\n color: #ff5000;\n}\n.order-section-body {\n margin-bottom: 42rpx;\n display: grid;\n grid-template-columns: 184rpx 1fr 110rpx;\n grid-column-gap: 24rpx;\n}\n.order-section-body__image {\n width: 184rpx;\n height: 184rpx;\n}\n.order-section-body__title {\n font-size: 24rpx;\n color: #333;\n line-height: 34rpx;\n margin-bottom: 15rpx;\n}\n.order-section-body__description {\n background: #f8f8f8;\n font-size: 24rpx;\n color: #999;\n line-height: 24rpx;\n padding: 8rpx 10rpx;\n border-radius: 6rpx;\n display: inline-block;\n}\n.order-section-body__right {\n text-align: right;\n}\n.order-section-body__price {\n font-size: 24rpx;\n color: #333;\n line-height: 26rpx;\n margin-bottom: 8rpx;\n}\n.order-section-body__num {\n font-size: 24rpx;\n color: #999;\n line-height: 24rpx;\n}\n.order-section-footer {\n display: flex;\n justify-content: flex-end;\n align-items: baseline;\n padding: 28rpx 23rpx 32rpx;\n font-size: 24rpx;\n line-height: 28rpx;\n margin-top: -42rpx;\n}\n.order-section-footer__total {\n color: #999;\n margin-right: 10rpx;\n}\n.order-section-footer__desc {\n color: #333;\n}\n.order-section-footer__sum {\n color: #333;\n font-size: 30rpx;\n}\n","pages/my-order/my-order.axml":"<view>\n <title className=\"title\">我的订单</title>\n <view\n a:for=\"{{orderList}}\"\n class=\"order-section\"\n >\n <view class=\"order-section-header\">\n <view class=\"order-section-header__time\">{{item.time}}</view>\n <view class=\"order-section-header__state\">{{item.state}}</view>\n </view>\n <view\n class=\"order-section-body\"\n a:for=\"{{item.commodity}}\"\n a:for-item=\"eachCommodity\"\n >\n <image\n class=\"order-section-body__image\"\n lazy-load=\"{{true}}\"\n src=\"{{eachCommodity.image}}\"\n mode=\"scaleToFill\"\n />\n <view class=\"order-section-body__middle\">\n <view class=\"order-section-body__title\">\n {{eachCommodity.title}}\n </view>\n <view class=\"order-section-body__description\">\n {{eachCommodity.description}}\n </view>\n </view>\n <view class=\"order-section-body__right\">\n <view class=\"order-section-body__price\">¥ {{eachCommodity.price}}</view>\n <view class=\"order-section-body__num\">x{{eachCommodity.num}}</view>\n </view>\n </view>\n <view class=\"order-section-footer\">\n <view class=\"order-section-footer__total\">共{{item.total}}件商品</view>\n <view class=\"order-section-footer__desc\">合计:¥</view>\n <view class=\"order-section-footer__sum\">{{item.sum}}</view>\n </view>\n </view>\n</view>","pages/my-order/my-order.js":"Page({\n data: {\n orderList: [\n {\n time: '2019.4.11 12:09',\n state: '商家备货中',\n sum: '1096.00',\n total: 2,\n commodity: [\n {\n title: '屈臣氏 碧柔致臻颜面膜64片 补水 水润 白皙 保湿 透滑',\n description: '150ml',\n price: '299.00',\n num: '1',\n image:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*DenfRpLr6NEAAAAAAAAAAABkARQnAQ',\n },\n {\n title: '屈臣氏 碧柔致臻颜面膜64片 补水 水润 白皙 保湿 透滑',\n description: '150ml',\n price: '299.00',\n num: '1',\n image:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*6HXWRKGCK-oAAAAAAAAAAABkARQnAQ',\n },\n ],\n },\n {\n time: '2019.4.11 12:09',\n state: '配送中',\n sum: '1096.00',\n total: 2,\n commodity: [\n {\n title: '屈臣氏 碧柔致臻颜面膜64片 补水 水润 白皙 保湿 透滑',\n description: '150ml',\n price: '299.00',\n num: '1',\n image:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*DenfRpLr6NEAAAAAAAAAAABkARQnAQ',\n },\n {\n title: '屈臣氏 碧柔致臻颜面膜64片 补水 水润 白皙 保湿 透滑',\n description: '150ml',\n price: '299.00',\n num: '1',\n image:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*6HXWRKGCK-oAAAAAAAAAAABkARQnAQ',\n },\n ],\n },\n ],\n },\n onLoad() {},\n});\n","pages/my-order/my-order.json":"{\n \"usingComponents\": {\n \"title\": \"/components/Title/Title\"\n }\n}\n","pages/my-ticket/components/tab/tab.acss":".tab {\n display: flex;\n background-color: #f5f5f5;\n}\n.tab-item {\n position: relative;\n padding: 27rpx;\n font-size: 28rpx;\n color: #333;\n box-sizing: border-box;\n width: 50%;\n text-align: center;\n}\n.tab-item--active {\n height: 2rpx;\n background-color: #009d9a;\n width: 36rpx;\n position: absolute;\n left: 50%;\n transform: translateX(-50%);\n top: 74rpx;\n}\n","pages/my-ticket/components/tab/tab.axml":"<view class=\"tab {{className}}\">\n <view\n a:for=\"{{tabs}}\"\n class=\"tab-item\"\n onTap=\"onItemTap\"\n data-index=\"{{item.id}}\"\n >\n {{item.title}}\n <view\n class=\"tab-item--active\"\n a:if=\"{{activeId===item.id}}\"\n />\n </view>\n</view>","pages/my-ticket/components/tab/tab.js":"Component({\n mixins: [],\n data: {},\n props: {\n tabs: [],\n activeId: 0,\n className: '',\n onActiveTabChange: () => undefined,\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {\n onItemTap(e) {\n this.props.onActiveTabChange(e.target.dataset.index);\n },\n },\n});\n","pages/my-ticket/components/tab/tab.json":"{\n \"component\": true\n}\n","pages/my-ticket/components/ticket/ticket.acss":".ticket {\n display: flex;\n align-items: center;\n justify-content: space-between;\n border-radius: 12rpx;\n background: #ffede6;\n position: relative;\n}\n.ticket-left {\n padding: 26rpx 20rpx 20rpx;\n}\n.ticket-left__line-price {\n display: flex;\n align-items: baseline;\n}\n.ticket-left__price-logo {\n font-size: 26rpx;\n color: #ff5000;\n line-height: 20rpx;\n}\n.ticket-left__price {\n font-size: 50rpx;\n color: #ff5000;\n line-height: 42rpx;\n margin: 0 10rpx 0 6rpx;\n}\n.ticket-left__price-dec {\n font-size: 26rpx;\n color: #ff5000;\n line-height: 24rpx;\n}\n.ticket-left__time,\n.ticket-left__baseline {\n font-size: 20rpx;\n color: #ff5000;\n line-height: 20rpx;\n}\n.ticket-left__baseline {\n margin-bottom: 12rpx;\n margin-top: 20rpx;\n}\n.ticket-confirm {\n background-image: linear-gradient(90deg, #ff9000 0%, #ff5000 100%);\n border-radius: 10000rpx;\n font-size: 24rpx;\n color: #fff;\n text-align: center;\n line-height: 30rpx;\n padding: 8rpx 24rpx;\n margin-right: 32rpx;\n}\n.circle {\n width: 24rpx;\n height: 24rpx;\n border-radius: 50%;\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateX(50%) translateY(-50%);\n background-color: #fff;\n}\n","pages/my-ticket/components/ticket/ticket.axml":"<view class=\"ticket\">\n <view class=\"ticket-left\">\n <view class=\"ticket-left__line-price\">\n <view class=\"ticket-left__price-logo\">¥</view>\n <view class=\"ticket-left__price\">{{price}}</view>\n <view class=\"ticket-left__price-dec\">店铺优惠券</view>\n </view>\n <view class=\"ticket-left__baseline\">满{{baseline}}可用</view>\n <view class=\"ticket-left__time\">有效期:{{startAt}} - {{endAt}}</view>\n </view>\n <view class=\"ticket-confirm\">\n 去使用\n </view>\n <view class=\"circle\"></view>\n</view>","pages/my-ticket/components/ticket/ticket.js":"Component({\n mixins: [],\n data: {},\n props: {\n id: 0,\n price: 0,\n baseline: 0,\n startAt: '',\n endAt: '',\n },\n didMount() {},\n didUpdate() {},\n didUnmount() {},\n methods: {},\n});\n","pages/my-ticket/components/ticket/ticket.json":"{\n \"component\": true\n}","pages/my-ticket/my-ticket.acss":"page {\n background-color: #fff;\n}\n.ticket-container {\n padding: 9rpx 24rpx;\n}\n.tab-margin {\n margin-bottom: 15rpx;\n}\n","pages/my-ticket/my-ticket.axml":"<view>\n <title>我的券</title>\n <tab\n className=\"tab-margin\"\n tabs=\"{{tabs}}\"\n activeId=\"{{activeId}}\"\n onActiveTabChange=\"onTabItemTap\"\n ></tab>\n <view\n a:for=\"{{tickets}}\"\n class=\"ticket-container\"\n >\n <ticket\n id=\"{{item.id}}\"\n price=\"{{item.price}}\"\n baseline=\"{{item.baseline}}\"\n startAt=\"{{item.startAt}}\"\n endAt=\"{{item.endAt}}\"\n ></ticket>\n </view>\n</view>","pages/my-ticket/my-ticket.js":"const ONLINE = 0;\nconst OFFLINE = 1;\n\nPage({\n data: {\n ONLINE,\n OFFLINE,\n tabs: [\n {\n id: ONLINE,\n title: '线上使用优惠券',\n onClick: () => {},\n },\n {\n id: OFFLINE,\n title: '到店使用优惠券',\n onClick: () => {},\n },\n ],\n tickets: [\n {\n id: 0,\n price: 30,\n baseline: 300,\n startAt: '2019.4.01',\n endAt: '2019.12.31',\n },\n {\n id: 0,\n price: 30,\n baseline: 300,\n startAt: '2019.4.01',\n endAt: '2019.12.31',\n },\n {\n id: 0,\n price: 30,\n baseline: 300,\n startAt: '2019.4.01',\n endAt: '2019.12.31',\n },\n ],\n activeId: 0,\n },\n onLoad() {},\n onTabItemTap(id) {\n console.log(id);\n this.setData({ activeId: id });\n },\n});\n","pages/my-ticket/my-ticket.json":"{\n \"usingComponents\": {\n \"title\": \"/components/Title/Title\",\n \"tab\": \"/pages/my-ticket/components/tab/tab\",\n \"ticket\": \"/pages/my-ticket/components/ticket/ticket\"\n }\n}\n","pages/my/my.acss":"page {\n background-color: #fff;\n}\n.user-profile {\n display: flex;\n padding: 25rpx 36rpx 0;\n}\n.user-profile__avatar {\n width: 90rpx;\n height: 90rpx;\n}\n.user-profile__right {\n margin-left: 18rpx;\n}\n.user-profile__header {\n display: flex;\n align-items: center;\n margin-bottom: 5rpx;\n}\n.user-profile__name {\n font-size: 36rpx;\n color: #333;\n margin-right: 6rpx;\n line-height: 50rpx;\n}\n.user-profile__member {\n background: #eee;\n border-radius: 10000rpx;\n font-size: 20rpx;\n color: #333;\n padding: 6rpx 8rpx;\n}\n.user-profile__credit {\n font-size: 26rpx;\n line-height: 37rpx;\n color: #333;\n}\n.entries {\n display: flex;\n width: 100%;\n box-sizing: content-box;\n padding: 39rpx 0;\n}\n.entries__item {\n display: flex;\n flex-direction: column;\n align-items: center;\n flex-shrink: 0;\n width: 170rpx;\n}\n.entries__cover {\n flex-shrink: 0;\n width: 100rpx;\n height: 100rpx;\n}\n.entries__title {\n font-size: 24rpx;\n color: #333;\n margin-top: 9rpx;\n}\n.divider {\n height: 1rpx;\n background-color: #eee;\n}\n.divider.--middle {\n width: 677rpx;\n margin: 0 auto;\n}\n.divider.--right {\n width: 713rpx;\n float: right;\n}\n.divider.--right::after {\n content: '';\n display: block;\n clear: both;\n height: 0;\n}\n.member-center-nav {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 28rpx;\n color: #009d9a;\n line-height: 26px;\n padding: 30rpx 0;\n}\n.member-center-nav image {\n width: 10rpx;\n height: 18rpx;\n margin-left: 9rpx;\n}\n.list-item {\n font-size: 32rpx;\n color: #333;\n line-height: 130rpx;\n}\n.list-item .am-list-content,\n.list-item .am-list-extra {\n line-height: inherit;\n padding: 0;\n}\n.list-item .am-list-thumb {\n width: 45rpx;\n height: 45rpx;\n}\n","pages/my/my.axml":"<view>\n <view class=\"user-profile\">\n <image\n class=\"user-profile__avatar\"\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*O-qpSpu9vgQAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n <view class=\"user-profile__right\">\n <view class=\"user-profile__header\">\n <view class=\"user-profile__name\">\n {{currentUser.name}}\n </view>\n <view class=\"user-profile__member\">\n {{currentUser.member}}\n </view>\n </view>\n <view class=\"user-profile__credit\">\n 积分:{{currentUser.credit}}\n </view>\n </view>\n </view>\n <scroll-view\n class=\"entries\"\n scroll-x=\"{{true}}\"\n scroll-y=\"{{false}}\"\n >\n <view\n a:for=\"{{entries}}\"\n class=\"entries__item\"\n >\n <image\n class=\"entries__cover\"\n src=\"{{item.cover}}\"\n mode=\"scaleToFill\"\n />\n <view class=\"entries__title\">{{item.title}}</view>\n </view>\n </scroll-view>\n <view class=\"divider --middle\" />\n <view class=\"member-center-nav\" onTap=\"onMemberCenterClick\">\n 进入会员中心\n <image\n src=\"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*kYnQR4upMIcAAAAAAAAAAABkARQnAQ\"\n mode=\"scaleToFill\"\n />\n </view>\n <block a:for=\"{{navList}}\">\n <list-item\n thumb=\"{{item.thumb}}\"\n className=\"list-item\"\n arrow=\"{{true}}\"\n onClick=\"onListClick\"\n data-index=\"{{index}}\"\n key=\"items-{{index}}\"\n last=\"{{index === (items.length - 1)}}\"\n >\n {{item.name}}\n </list-item>\n </block>\n</view>","pages/my/my.js":"Page({\n data: {\n currentUser: {\n name: '糙米苏打0905',\n credit: 10,\n member: '屈臣氏会员',\n },\n entries: [\n {\n title: '新人礼遇',\n cover:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*HTNURLN0hv8AAAAAAAAAAABkARQnAQ',\n },\n {\n title: '积分享好礼',\n cover:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*8mUFQZnkpX4AAAAAAAAAAABkARQnAQ',\n },\n\n {\n title: '积分兑好礼',\n cover:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*CwXrR4hRcGAAAAAAAAAAAABkARQnAQ',\n },\n\n {\n title: '会员特惠',\n cover:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*dyvrR6BIbYgAAAAAAAAAAABkARQnAQ',\n },\n\n {\n title: '新人礼遇',\n cover:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*7G9XQLcv6tYAAAAAAAAAAABkARQnAQ',\n },\n ],\n navList: [\n {\n name: '我的订单',\n thumb:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*Y8BATYqMN78AAAAAAAAAAABkARQnAQ',\n onClick: () =>\n my.navigateTo({\n url: '/pages/my-order/my-order',\n }),\n },\n {\n name: '我的券',\n thumb:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*9RqXQaxLeCEAAAAAAAAAAABkARQnAQ',\n onClick: () =>\n my.navigateTo({\n url: '/pages/my-ticket/my-ticket',\n }),\n },\n {\n name: '关于',\n thumb:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*-Lp1TZDggnoAAAAAAAAAAABkARQnAQ',\n onClick: () => {\n my.alert({\n content: '欢迎使用代码市场模板!',\n });\n },\n },\n ],\n },\n onLoad() {},\n onListClick({ target: { dataset } }) {\n const { onClick } = this.data.navList[dataset.index];\n if (onClick) {\n onClick();\n }\n },\n\n onMemberCenterClick() {\n my.alert({\n content: '敬请期待!',\n });\n },\n});\n","pages/my/my.json":"{\n \"defaultTitle\": \"个人中心\",\n \"backgroundColor\": \"#ffffff\",\n \"usingComponents\": {\n \"list\": \"mini-ali-ui/es/list/index\",\n \"list-item\": \"mini-ali-ui/es/list/list-item/index\"\n }\n}\n","pages/search/search.acss":".search-nav {\n display: flex;\n align-items: center;\n width: 100%;\n padding: 24rpx;\n}\n.search-nav__input {\n flex-grow: 1;\n margin-right: 36rpx;\n}\n.trend {\n margin: 0 24rpx 24rpx;\n padding: 50rpx 40rpx 40rpx;\n background-color: white;\n border-radius: 24rpx;\n}\n.trend-title {\n font-size: 28rpx;\n}\n.trend-body {\n margin: -6rpx;\n margin-top: 16rpx;\n}\n.trend-body__item {\n display: inline-block;\n width: 33.3333%;\n padding: 12rpx 6rpx;\n}\n.trend-body__item view {\n border-radius: 10000rpx;\n padding: 16rpx;\n background: #f5f5f5;\n text-align: center;\n}\n.search-cancel {\n font-size: 24rpx;\n}\n","pages/search/search.axml":"<view>\n <title>\n 宝贝搜索\n </title>\n <view class=\"search-nav\">\n <search\n value=\"{{searchValue}}\"\n onInput=\"onSearchInput\"\n onConfirm=\"onSearchConfirm\"\n onClear=\"onSearchClear\"\n className=\"search-nav__input\"\n defaultFocus=\"{{true}}\"\n />\n <category-nav a:if=\"{{!searchValue}}\" />\n <navigator\n a:else\n class=\"search-cancel\"\n url=\"/pages/handbag/handbag\"\n open-type=\"navigateBack\"\n >取消</navigator>\n </view>\n <view\n a:if=\"{{!searchValue}}\"\n class=\"trend\"\n >\n <view class=\"trend-title\">\n 热门推荐\n </view>\n <view class=\"trend-body\">\n <view\n a:for=\"{{trend}}\"\n class=\"trend-body__item\"\n >\n <view>\n {{item}}\n </view>\n </view>\n </view>\n </view>\n</view>","pages/search/search.js":"import { getSearchTrend } from \"../../services/commodity\";\nimport * as log from \"../../utils/log\";\n\nPage({\n data: {\n trend: [],\n searchValue: \"\",\n },\n onLoad() {\n getSearchTrend()\n .then(({ data }) => this.setData({ trend: data }))\n .catch(error => log.error(\"search.onLoad.getSearchTrend\", error));\n },\n onSearchConfirm() {\n const app = getApp();\n app.searchValue = this.data.searchValue;\n my.navigateBack({\n delta: 1,\n });\n },\n onSearchInput({ detail }) {\n this.setData({ searchValue: detail.value });\n },\n onSearchClear() {\n this.setData({ searchValue: \"\" });\n },\n});\n","pages/search/search.json":"{\n \"usingComponents\": {\n \"title\": \"/components/Title/Title\",\n \"search\": \"/components/Search/Search\",\n \"category-nav\": \"/components/category-nav/category-nav\"\n }\n}\n","pages/shopping-cart/shopping-cart.acss":"checkbox {\n border-radius: 50%;\n}\n.cart {\n padding: 36rpx 0 200rpx;\n}\n.cart-section {\n border-radius: 25rpx;\n background: #fff;\n margin: 0 24rpx 18rpx;\n padding: 27rpx 25rpx 27rpx;\n}\n.cart-section-header {\n display: flex;\n font-size: 24rpx;\n color: #333;\n align-items: center;\n margin-bottom: 28rpx;\n}\n.cart-section-header__checkbox {\n margin-right: 20rpx;\n}\n.cart-section-body {\n margin-bottom: 42rpx;\n display: grid;\n grid-template-columns: 40rpx 184rpx 1fr;\n grid-column-gap: 24rpx;\n align-items: center;\n}\n.cart-section-body__image {\n width: 184rpx;\n height: 184rpx;\n}\n.cart-section-body__title {\n font-size: 24rpx;\n color: #333;\n line-height: 34rpx;\n margin-bottom: 15rpx;\n}\n.cart-section-body__description {\n background: #f8f8f8;\n font-size: 24rpx;\n color: #999;\n line-height: 24rpx;\n padding: 8rpx 10rpx;\n border-radius: 6rpx;\n display: inline-block;\n}\n.cart-section-body__price {\n font-size: 26rpx;\n color: #ff5000;\n line-height: 26rpx;\n margin-top: 39rpx;\n}\n.cart-section-body__right {\n text-align: right;\n}\n.cart-section-body__num {\n font-size: 24rpx;\n color: #999;\n line-height: 24rpx;\n}\n.cart-footer {\n display: flex;\n justify-content: flex-end;\n align-items: center;\n padding: 14rpx 24rpx;\n position: fixed;\n bottom: 0;\n left: 0;\n right: 0;\n background: #fff;\n width: 100%;\n}\n.cart-footer__desc {\n margin-right: 25rpx;\n text-align: right;\n}\n.cart-footer__price-section {\n display: flex;\n font-size: 30rpx;\n color: #333;\n line-height: 30rpx;\n text-align: right;\n}\n.cart-footer__total-price {\n color: #ff5000;\n}\n.cart-footer__discount {\n margin-top: 10rpx;\n margin-right: -12rpx;\n font-size: 20rpx;\n color: #999;\n text-align: right;\n line-height: 20rpx;\n}\n.cart-footer__action {\n background-image: linear-gradient(90deg, #ff9000 0%, #ff5000 98%);\n border-radius: 10000rpx;\n font-size: 30rpx;\n color: #fff;\n line-height: 30rpx;\n padding: 25rpx 44rpx;\n}\n","pages/shopping-cart/shopping-cart.axml":"<view class=\"cart\">\n <view class=\"cart-section\">\n <checkbox-group>\n <view class=\"cart-section-header\">\n <view class=\"cart-section-header__checkbox\">\n <checkbox color=\"#FF5000\" />\n </view>\n <view class=\"cart-section-header__desc\">全部商品</view>\n </view>\n <view\n class=\"cart-section-body\"\n a:for=\"{{commodity}}\"\n a:for-item=\"eachCommodity\"\n >\n <view class=\"cart-section-body__checkbox\">\n <checkbox\n color=\"#FF5000\"\n value=\"{{item.id}}\"\n />{{item.value}}\n </view>\n <image\n class=\"cart-section-body__image\"\n src=\"{{eachCommodity.image}}\"\n mode=\"scaleToFill\"\n lazy-load=\"{{true}}\"\n />\n <view class=\"cart-section-body__middle\">\n <view class=\"cart-section-body__title\">\n {{eachCommodity.title}}\n </view>\n <view class=\"cart-section-body__description\">\n {{eachCommodity.description}}\n </view>\n <view class=\"cart-section-body__price\">\n ¥{{eachCommodity.price}}\n </view>\n </view>\n </view>\n </checkbox-group>\n </view>\n\n\n\n <view class=\"cart-footer\">\n <view class=\"cart-footer__desc\">\n <view class=\"cart-footer__price-section\">\n <view class=\"cart-footer__total-desc\">合计:</view>\n <view class=\"cart-footer__total-price\">¥{{sum}}</view>\n </view>\n <view class=\"cart-footer__discount\">\n 共减 ¥{{totalDiscount}}(店铺减{{shopDiscount}})\n </view>\n </view>\n <view class=\"cart-footer__action\">\n 结算({{count}})\n </view>\n </view>\n</view>","pages/shopping-cart/shopping-cart.js":"Page({\n data: {\n count: 2,\n totalDiscount: 2,\n shopDiscount: 50,\n time: '2019.4.11 12:09',\n state: '商家备货中',\n sum: '1096.00',\n total: 2,\n commodity: [\n {\n title: '屈臣氏 碧柔致臻颜面膜64片 补水 水润 白皙 保湿 透滑',\n description: '150ml',\n price: '299.00',\n num: '1',\n image:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*DenfRpLr6NEAAAAAAAAAAABkARQnAQ',\n },\n {\n title: '屈臣氏 碧柔致臻颜面膜64片 补水 水润 白皙 保湿 透滑',\n description: '150ml',\n price: '299.00',\n num: '1',\n image:\n 'https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*6HXWRKGCK-oAAAAAAAAAAABkARQnAQ',\n },\n ],\n },\n onLoad() {\n my.setNavigationBar({\n title: '屈臣氏购物车',\n });\n },\n});\n","pages/shopping-cart/shopping-cart.json":"{}","river.html":"<!DOCTYPE html>\n<html>\n <head><script>window.publicPath=window.__basement_public_path__=\"https://gw-office.alipayobjects.com/a/g/the-river/delta/\";window.injectInfo={\"appName\":\"delta\",\"env\":\"DEV\",\"akName\":\"w_dev\"};window.getRouterBase=function(appName){return (new RegExp('(.*?/('+((typeof appName === 'string') ? appName : appName.join('|'))+').*?)(/|$)').exec(location.pathname) || ['', ''])[1]+'/';};window.routerBase=getRouterBase('delta');</script>\n <link\n rel=\"shortcut icon\"\n type=\"image/png\"\n href=\"https://gw.alipayobjects.com/mdn/rms_fb20c0/afts/img/A*z8HJSL-KsOoAAAAAAAAAAABkARQnAQ\"\n />\n <title>Launcher</title>\n <meta charset=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n <meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\" />\n <link\n rel=\"apple-touch-icon\"\n href=\"https://gw.alipayobjects.com/mdn/rms_fb20c0/afts/img/A*z8HJSL-KsOoAAAAAAAAAAABkARQnAQ\"\n />\n <link\n rel=\"apple-touch-startup-image\"\n href=\"https://gw.alipayobjects.com/mdn/rms_fb20c0/afts/img/A*z8HJSL-KsOoAAAAAAAAAAABkARQnAQ\"\n />\n <meta name=\"apple-mobile-web-app-title\" content=\"TheRiver\" />\n <meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"white\" />\n </head>\n <body>\n <script>\n (function() {\n if (!/no-antd/.test(location.search)) {\n document.write(\n '<script src=\"https://gw.alipayobjects.com/os/lib/react/16.8.5/umd/react.production.min.js\"><' + '/script>'\n );\n document.write(\n '<script src=\"https://gw.alipayobjects.com/os/lib/react-dom/16.8.5/umd/react-dom.production.min.js\"><' +\n '/script>'\n );\n document.write(\n '<script src=\"https://gw.alipayobjects.com/os/lib/antd-mobile/2.2.13/dist/antd-mobile.min.js\"><' +\n '/script>'\n );\n }\n })();\n </script>\n <script src=\"https://gw-office.alipayobjects.com/a/g/the-river/delta/tr.entry-cfa47df5.js\"></script>\n <script>\n (function() {\n TheRiver.startAppSessionFromQuery(location.search.slice(1));\n })();\n </script>\n </body>\n</html>","services/__mock__/category.js":"export const categories = {\n data: [\n {\n name: \"本周新品\",\n children: [\"男装 MEN\", \"女装 WOMEN\", \"童装 KIDS\", \"婴幼儿装 BABY\"],\n },\n {\n name: \"本周新品\",\n children: [\"男装 MEN\", \"女装 WOMEN\", \"童装 KIDS\", \"婴幼儿装 BABY\"],\n },\n {\n name: \"本周新品\",\n children: [\"男装 MEN\", \"女装 WOMEN\", \"童装 KIDS\", \"婴幼儿装 BABY\"],\n },\n ],\n};\n","services/__mock__/commodity.js":"export const searchTrend = {\n data: [\n \"连衣裙\",\n \"上衣\",\n \"裤子\",\n \"半身裙\",\n \"T恤\",\n \"风衣\",\n \"缎面连衣裙\",\n \"断码清仓\",\n \"大码专区\",\n ],\n};\n\nexport const allCommodity = {\n data: [\n {\n id: 0,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*_51UQr4yZMgAAAAAAAAAAABkARQnAQ\",\n title: \"屈臣氏 新款 燕窝补水光\",\n canSelfPickUp: true,\n price: 669,\n sales: 1589,\n },\n {\n id: 1,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*_51UQr4yZMgAAAAAAAAAAABkARQnAQ\",\n title: \"屈臣氏 新款 燕窝补水光\",\n canSelfPickUp: true,\n price: 669,\n sales: 1589,\n },\n {\n id: 2,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*_51UQr4yZMgAAAAAAAAAAABkARQnAQ\",\n title: \"屈臣氏 新款 燕窝补水光\",\n canSelfPickUp: false,\n price: 669,\n sales: 1589,\n },\n {\n id: 3,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*_51UQr4yZMgAAAAAAAAAAABkARQnAQ\",\n title: \"屈臣氏 新款 燕窝补水光\",\n canSelfPickUp: true,\n price: 669,\n sales: 1589,\n },\n {\n id: 4,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*_51UQr4yZMgAAAAAAAAAAABkARQnAQ\",\n title: \"屈臣氏 新款 燕窝补水光\",\n canSelfPickUp: false,\n price: 669,\n sales: 1589,\n },\n ],\n};\n\nexport const trendCommodity = {\n data: [\n {\n id: 0,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*9CzCSrLQgvsAAAAAAAAAAABkARQnAQ\",\n title: \"2016夏装新款纯麻女装长裤子休闲运动阔腿裤松紧\",\n canSelfPickUp: true,\n price: 39,\n sales: 30,\n },\n {\n id: 1,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*9CzCSrLQgvsAAAAAAAAAAABkARQnAQ\",\n title: \"2016夏装新款纯麻女装长裤子休闲运动阔腿裤松紧\",\n canSelfPickUp: true,\n price: 39,\n sales: 30,\n },\n {\n id: 2,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*9CzCSrLQgvsAAAAAAAAAAABkARQnAQ\",\n title: \"2016夏装新款纯麻女装长裤子休闲运动阔腿裤松紧\",\n canSelfPickUp: false,\n price: 30,\n sales: 30,\n },\n {\n id: 3,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*9CzCSrLQgvsAAAAAAAAAAABkARQnAQ\",\n title: \"2016夏装新款纯麻女装长裤子休闲运动阔腿裤松紧\",\n canSelfPickUp: true,\n price: 30,\n sales: 39,\n },\n {\n id: 4,\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*9CzCSrLQgvsAAAAAAAAAAABkARQnAQ\",\n title: \"2016夏装新款纯麻女装长裤子休闲运动阔腿裤松紧\",\n canSelfPickUp: false,\n price: 30,\n sales: 30,\n },\n ],\n};\n\nexport const commodityDetail = {\n data: {\n cover:\n \"https://gw.alipayobjects.com/mdn/rms_107da2/afts/img/A*Gru4R66jmTcAAAAAAAAAAABkARQnAQ\",\n commodityName: \"\",\n price: 911,\n storage: 774,\n type: \"浅橙色,S\",\n shippingMethod: [\n {\n id: 1,\n name: \"送货到家\",\n },\n {\n id: 2,\n name: \"门店自提\",\n },\n ],\n shippingFrom: {\n type: \"同城配送\",\n name: \"屈臣氏 (亲橙里店)\",\n },\n shippingTime: {\n payTime: \"11:00\",\n receiveDay: \"今天\",\n receiveFormatDay: \"04月16日\",\n },\n options: [\n {\n id: 1,\n name: \"净含量\",\n values: [\n {\n id: 1,\n name: \"500ml\",\n },\n {\n id: 2,\n name: \"600ml\",\n },\n ],\n },\n {\n id: 2,\n name: \"颜色\",\n values: [\n {\n id: 1,\n name: \"红色\",\n },\n {\n id: 2,\n name: \"绿色\",\n },\n ],\n },\n ],\n maxPurchaseNumber: 2,\n },\n};\n","services/_prefix.js":"export const URL = 'http://localhost:4000';\n\nexport const PREFIX = `${URL}/api`;\n","services/category.js":"import { request } from \"../utils/request\";\nimport { categories } from \"./__mock__/category\";\n\nexport const getAllCategories = () => {\n // return request(`${URL_PREFIX}/category`);\n return Promise.resolve(categories);\n};\n","services/commodity.js":"import { request } from \"../utils/request\";\nimport {\n searchTrend,\n allCommodity,\n trendCommodity,\n commodityDetail,\n} from \"./__mock__/commodity\";\nimport { ALL, TREND } from \"../asserts/CommodityType\";\n\nexport const getSearchTrend = () => {\n // return request(`${URL_PREFIX}/trend`);\n return Promise.resolve(searchTrend);\n};\n\nexport const getCommodity = ({ type = 1 }) => {\n // return request(`${URL_PREFIX}/commodity?type=${type}`);\n switch (type) {\n case ALL:\n return Promise.resolve(allCommodity);\n case TREND:\n return Promise.resolve(trendCommodity);\n default:\n return Promise.resolve([]);\n }\n};\n\nexport const getCommodityDetail = id => {\n // return request(`${URL_PREFIX}/commodity/${id}`);\n return Promise.resolve(commodityDetail);\n};\n","style/mixins/_background.acss":".cover-background {\n background-position: center;\n background-size: cover;\n}\n","style/mixins/_card.acss":".card-no-shadow {\n overflow: hidden;\n border-radius: 8px;\n}\n.card-shadow {\n overflow: hidden;\n border-radius: 8px;\n box-shadow: 0 2rpx 12rpx rgba(0, 0, 0, 0.08);\n}\n","style/mixins/_layout.acss":".children-center-flex {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n","style/theme/_theme.acss":"","utils/log.js":"export const error = (from, message) => {\n console.error(`ERROR:[${from}]`, message);\n};\n","utils/request.js":"// 参照 ant design pro\nconst httpCodeMessage = {\n 200: \"服务器成功返回请求的数据。\",\n 201: \"新建或修改数据成功。\",\n 202: \"一个请求已经进入后台排队(异步任务)。\",\n 204: \"删除数据成功。\",\n 400: \"发出的请求有错误,服务器没有进行新建或修改数据的操作。\",\n 401: \"用户没有权限(令牌、用户名、密码错误)。\",\n 403: \"用户得到授权,但是访问是被禁止的。\",\n 404: \"发出的请求针对的是不存在的记录,服务器没有进行操作。\",\n 406: \"请求的格式不可得。\",\n 410: \"请求的资源被永久删除,且不会再得到的。\",\n 422: \"当创建一个对象时,发生一个验证错误。\",\n 500: \"服务器发生错误,请检查服务器。\",\n 502: \"网关错误。\",\n 503: \"服务不可用,服务器暂时过载或维护。\",\n 504: \"网关超时。\",\n};\n\nconst miniCodeMessage = {\n 11: \"无权跨域。\",\n 12: \"网络出错。\",\n 13: \"超时。\",\n 14: \"解码失败。\",\n 19: \"HTTP错误。\",\n 20: \"请求已被停止/服务端限流。\",\n};\n\n/**\n * 判断状态是否正常\n * @param {number} status\n * @returns {boolean} 状态是否正常\n */\nfunction isStatusSuccess(status) {\n if (status >= 200 && status < 300) {\n return true;\n }\n return false;\n}\n\n/**\n *\n * @param {string} url 路径\n * @param {object} options request 额外配置\n * @returns {Promise}\n */\nexport function request(url, options) {\n return new Promise((resolve, reject) => {\n const requestConfig = {\n url,\n ...options,\n\n success(response) {\n const { status, data } = response;\n if (isStatusSuccess(status)) {\n resolve(data);\n } else {\n reject({\n error: status,\n errorMessage: data.message || httpCodeMessage[status],\n });\n }\n },\n fail(response) {\n const { error, errorMessage = miniCodeMessage[error] } = response;\n my.showToast({\n type: \"exception\",\n content: errorMessage,\n duration: 3000,\n });\n reject({\n error,\n errorMessage,\n });\n },\n };\n\n if (my.request) {\n my.request(requestConfig);\n } else {\n my.httpRequest(requestConfig);\n }\n });\n}\n"},"dist":[{"name":"0.json","size":462986,"url":"https://gw.alipayobjects.com/os/mashi/90298799-ff7e-4e40-8ab6-bea18b4f1c02/herbox/0.json","ETag":"5C9EF96387047B1C358601B620292313","type":"json"}],"buildVersion":"0.72.7","preCompilerVersion":"0.4.0","component2":false,"css2":false}