{"dependencies":[{"ETag":"F9EE19450ED20C982B2292E1D9FA42A7","name":"0.json","size":664233,"type":"json","url":"https://gw.alipayobjects.com/os/herbox/90ba4fee-6ef3-4ddc-aae4-1a59f36e87ab/0.json"}],"sourceCode":{"app.acss":"page {\n box-sizing: border-box;\n display: flex;\n flex: 1;\n font-family: PingFangSC-Regular;\n -webkit-font-smoothing: antialiased;\n}\n.container {\n width: 750rpx;\n overflow-x: hidden;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: stretch;\n justify-content: flex-start;\n}\n","app.js":"import store from './store';\n\nApp(store({\n onLaunch(options) {\n },\n onShow() {\n console.log('app onShowApp');\n },\n onHide() {\n console.log('app onHide');\n },\n onError(msg) {\n console.log('app OnError: ', msg);\n },\n\n globalData: {\n },\n}));\n","app.json":"{\n \"pages\": [\n \"pages/index/index\",\n \"pages/settle-order/index\",\n \"pages/personal-center/index\",\n \"pages/search/index\"\n ],\n \"window\": {\n \"defaultTitle\": \"优惠加油\",\n \"enableInPageRender\": \"YES\",\n \"enableDSL\": \"YES\",\n \"enableJSC\": \"YES\",\n \"enableKeepAlive\": \"NO\",\n \"enableWK\": \"YES\",\n \"nboffline\": \"sync\",\n \"tinyPubRes\": \"YES\",\n \"showDomain\": \"NO\"\n }\n}\n","package-lock.json":"{\n \"requires\": true,\n \"lockfileVersion\": 1,\n \"dependencies\": {\n \"decimal.js\": {\n \"version\": \"10.2.0\",\n \"resolved\": \"https://registry.npm.alibaba-inc.com/decimal.js/download/decimal.js-10.2.0.tgz\",\n \"integrity\": \"sha1-OUZhE6ngNhEdAvgkibX9awte0jE=\"\n },\n \"herculex\": {\n \"version\": \"0.3.0-alpha.3\",\n \"resolved\": \"https://registry.npm.alibaba-inc.com/herculex/download/herculex-0.3.0-alpha.3.tgz\",\n \"integrity\": \"sha1-otVe66RK0GMiU4fC/QFgS6y+Y8Q=\",\n \"requires\": {\n \"immer\": \"^1.7.2\",\n \"immutability-helper-enhanced\": \"^2.8.1\"\n }\n },\n \"immer\": {\n \"version\": \"1.12.1\",\n \"resolved\": \"https://registry.npm.alibaba-inc.com/immer/download/immer-1.12.1.tgz\",\n \"integrity\": \"sha1-QMblspLABWCDbCmTvaOiQ3nUZvU=\"\n },\n \"immutability-helper-enhanced\": {\n \"version\": \"2.8.1\",\n \"resolved\": \"https://registry.npm.alibaba-inc.com/immutability-helper-enhanced/download/immutability-helper-enhanced-2.8.1.tgz\",\n \"integrity\": \"sha1-S5g9YizRhRgfOrbdrCBeiPPQZUQ=\"\n },\n \"mini-antui\": {\n \"version\": \"0.4.34\",\n \"resolved\": \"https://registry.npm.alibaba-inc.com/mini-antui/download/mini-antui-0.4.34.tgz\",\n \"integrity\": \"sha1-PTBoZzgtLrBKSyGlPKlVB3eG1yE=\"\n }\n }\n}\n","package.json":"{\n \"private\": true,\n \"scripts\": {},\n \"dependencies\": {\n \"herculex\": \"0.3.0-alpha.3\",\n \"decimal.js\": \"^10.0.1\",\n \"mini-antui\": \"^0.4.34\"\n }\n}\n","store.js":"/**\n * 加油下单页\n */\nimport { GlobalStore } from 'herculex';\n\nexport default new GlobalStore({\n state: {\n selectedOilType: '92#',\n loaction: { // 当前位置\n latitude: 31.224585,\n longitude: 121.551559,\n },\n lbs: { // 用于控制地图移动的中心点坐标\n latitude: 31.224585,\n longitude: 121.551559,\n },\n },\n mutations: {\n updateState(state, payload) {\n Object.assign(state, payload);\n },\n },\n actions: {\n /**\n * 更改油号\n */\n updateOilType({ commit }, payload) {\n commit('updateState', payload);\n },\n /**\n * 获取用户信息\n */\n getUserInfo({ commit }) {\n return new Promise((resolve) => {\n my.call('getUserInfo', (result) => {\n const { userId } = result;\n commit('updateState', { userId });\n resolve(userId);\n });\n });\n },\n /**\n * 获取更新位置经纬度\n */\n updateLoaction({ commit }, payload) {\n commit('updateState', payload);\n },\n },\n});\n","common/constant.js":"export const OIL_MAP = {\n '92#': '92#汽油',\n '93#': '93#汽油',\n '95#': '95#汽油',\n '97#': '97#汽油',\n '98#': '98#汽油',\n '101#': '101#汽油',\n '0#': '0#柴油',\n '-10#': '-10#柴油',\n '-20#': '-20#柴油',\n '-25#': '-25#柴油',\n};\nexport const PETROL_LIST = [\n {\n oilType: '92#',\n },\n {\n oilType: '95#',\n },\n {\n oilType: '98#',\n },\n];\nexport const DIESEL_LIST = [\n {\n oilType: '0#',\n },\n];\n\n// 消息渠道\nexport const MESSAGE_CHANNEL = {\n STATION_DETAILINFO: 'STATION_DETAILINFO',\n};\n","common/storage.js":"/**\n * 封装storage方法,添加存储操作\n * 如果第一遍取值失败,再次请求\n*/\n\nexport function getStorage(key) {\n return new Promise((resolve, reject) => {\n my.getStorage({\n key, // 缓存数据的 key\n success: (res) => {\n resolve(res);\n },\n fail: (res) => {\n resolve(res);\n },\n });\n });\n}\n\nexport function setStorage(key, data) {\n return new Promise((resolve, reject) => {\n my.setStorage({\n key,\n data,\n success(res) {\n resolve(res);\n },\n fail: (res) => {\n resolve(res);\n },\n });\n });\n}\n\nexport function removeStorage(key) {\n return new Promise((resolve, reject) => {\n my.removeStorage({\n key,\n success(res) {\n resolve(res);\n },\n fail: (res) => {\n resolve(res);\n },\n });\n });\n}\n\n/**\n * 获取后台返回的headers里面的x-auth-token,并保存在stoage里面\n*/\n\nexport function saveTokenStorage(headers) {\n return new Promise((resolve, reject) => {\n let token = null;\n if (headers instanceof Array) { // 真机中看到是一个数组\n const len = headers.length;\n for (let i = 0; i < len; i++) {\n const hi = headers[i];\n if (hi instanceof Object) {\n for (const j in hi) {\n if (j.toLowerCase() === 'x-auth-token') {\n token = hi[j];\n }\n }\n }\n }\n } else {\n for (const i in headers) {\n if (i.toLowerCase() === 'x-auth-token') {\n token = headers[i];\n }\n }\n }\n if (token) {\n } else {\n resolve();\n }\n });\n}\n","common/util.js":"function getCurrentLocation() {\n return new Promise((resolve, reject) => {\n const res = {\n city: '杭州市',\n latitude: 31.224585,\n longitude: 121.551559,\n };\n resolve(res);\n // my.getLocation({\n // type: 1, // 可获取省市信息\n // success(res) {\n // res = {\n // city: '杭州市',\n // latitude: 31.224585,\n // longitude: 121.551559,\n // };\n // resolve(res);\n // },\n // fail() {\n // resolve({\n // city: '杭州市',\n // latitude: 31.224585,\n // longitude: 121.551559,\n // });\n // },\n // });\n });\n}\n\n/**\n * 过滤空字符串, null, undefined\n */\nfunction filterEmpty(data) {\n data = data || {};\n const obj = {};\n Object.keys(data).forEach((key) => {\n const item = data[key];\n if (item !== '' && item !== undefined && item !== null) {\n obj[key] = item;\n }\n });\n return obj;\n}\n\n// 变量url化\nfunction params2Query(params) {\n params = params || {};\n return Object.keys(filterEmpty(params))\n .map((key) => {\n const v = params[key];\n return `${key}=${typeof v !== 'object' ? v : JSON.stringify(v)}`;\n })\n .join('&');\n}\n\nfunction lbs2String(params) {\n params = params || {};\n return Object.keys(filterEmpty(params))\n .map((key) => {\n const v = params[key];\n return typeof v !== 'object' ? v : JSON.stringify(v);\n })\n .join(',');\n}\n\n// 字符串经纬度转换为对象形式\nfunction string2Lbs(params = '') {\n let longitude = '';\n let latitude = '';\n if (params && params.indexOf(',') > -1) {\n const arr = params.split(',');\n longitude = parseFloat(arr[0]);\n latitude = parseFloat(arr[1]);\n }\n return { latitude, longitude };\n}\n\nfunction goPage(url, params = {}, options = { type: 'navigate' }) {\n // 如果传了params 就做参数的拼接\n const query = params2Query(params);\n if (query) {\n url = url + (url.indexOf('?') > -1 ? '' : '?') + query;\n }\n\n if (options.type === 'redirect' || getCurrentPages().length >= 5) {\n my.redirectTo({ url });\n } else {\n my.navigateTo({ url });\n }\n}\n\n// 输入金额校验\nfunction clearNoNum(v) {\n let value = v;\n value = value.replace(/[^\\d.]/g, ''); // 清除“数字”和“.”以外的字符\n value = value.replace(/\\.{2,}/g, '.'); // 只保留第一个. 清除多余的\n value = value.replace('.', '$#$').replace(/\\./g, '').replace('$#$', '.');\n value = value.replace(/^(\\-)*(\\d+)\\.(\\d\\d).*$/, '$1$2.$3');// 只能输入两个小数\n if (value.indexOf('.') < 0 && value !== '') { // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额\n value = parseFloat(value);\n }\n return value.toString();\n}\n\n// 搜索过滤特殊字符\nfunction clearSpecialSign(value) {\n const regEx = new RegExp(\"[`~!@#$^&*()=|{}':;',\\\\[\\\\].<>/?~!@#¥……&*()+——|{}【】‘;:”“'。,、?%]|\\\\n|\\\\r|\\\\t|\\\\s\");\n let rs = '';\n rs = value.replace(regEx, '');\n return rs.toString();\n}\n\n// 格式转化[1,2] =》[{name:1,value:1},{name:2,value:2}]\nfunction arrItemToObj(originArr) {\n if (typeof originArr === 'string') {\n try {\n originArr = JSON.parse(originArr);\n } catch (e) {\n\n }\n }\n const arr = [];\n originArr.map((item) => {\n const obj = {};\n obj.name = obj.value = item;\n arr.push(obj);\n });\n return arr;\n}\n\n// 将用角度表示的角转换为近似相等的用弧度表示的角\nfunction rad(d) {\n return d * Math.PI / 180.0;\n}\n\n/**\n * 地图计算两个坐标点的距离\n * @param lng1 经度1\n * @param lat1 纬度1\n * @param lng2 经度2\n * @param lat2 纬度2\n * @return 距离(米/千米) distanceNum(米)\n */\nfunction getDistance(lng1, lat1, lng2, lat2, type) {\n const EARTH_RADIUS = 6378.137; // 地球半径\n const radLat1 = rad(lat1);\n const radLat2 = rad(lat2);\n const a = radLat1 - radLat2;\n const b = rad(lng1) - rad(lng2);\n let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +\n Math.cos(radLat1) * Math.cos(radLat2) *\n Math.pow(Math.sin(b / 2), 2)));\n s *= EARTH_RADIUS;\n s = Math.round(s * 10000) / 10000; // km\n if (type === 'map') { // 油站距离地图中心点距离,用于只显示中心5km的油站\n return {\n mapCenterDistance: s,\n };\n }\n let meters = '';\n if (s < 1) { // 小于1km展示 米\n meters = parseInt(1000 * s); // 米\n meters = meters < 100 ? 100 : meters; // 小于100m显示100\n return {\n distanceStr: `${meters}米`,\n distanceNum: s * 1000,\n };\n }\n meters = s.toFixed(1);\n return {\n distanceStr: `${meters}千米`,\n distanceNum: s * 1000,\n };\n}\n// 防抖\nfunction debounce(method, context) {\n clearTimeout(method.timeout);\n method.timeout = setTimeout(() => {\n method.call(context);\n }, 500);\n}\n\nfunction compareObj(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length) {\n return false;\n } else {\n for (const x in obj1) {\n if (x === 'seqNo') continue;\n if (obj2.hasOwnProperty(x)) {\n if (obj1[x] !== obj2[x]) {\n return false;\n }\n } else {\n return false;\n }\n }\n }\n return true;\n}\n\nfunction sortByDistance(arr) {\n return arr.sort((a, b) => a.distanceNum - b.distanceNum);\n}\n\nmodule.exports = { sortByDistance, compareObj, clearSpecialSign, debounce, getDistance, getCurrentLocation, filterEmpty, params2Query, goPage, lbs2String, string2Lbs, clearNoNum, arrItemToObj };\n","component/picker/index.acss":".hy-filter-mask {\n position: fixed;\n left: 0;\n bottom: 0;\n height: 100%;\n width: 100%;\n min-height: 100%;\n background-color: rgba(0, 0, 0, 0.2);\n z-index: 160;\n}\n.hy-filter-document {\n position: absolute;\n left: 0;\n bottom: -500px;\n background-color: #fff;\n width: 100%;\n min-height: 400rpx;\n max-height: 1000rpx;\n}\n","component/picker/index.axml":"<view\n a:if={{show}}\n class=\"hy-filter-mask {{className}}\" \n disable-scroll=\"{{false}}\"\n>\n <view \n class=\"hy-filter-document\" \n animation=\"{{animation}}\"\n >\n <slot/>\n </view>\n</view>","component/picker/index.js":"const defaultAnimation = my.createAnimation({}).export();\n\nComponent({\n data: {\n animation: defaultAnimation,\n },\n props: {\n show: false,\n },\n didMount() {\n },\n /**\n * 显示和隐藏更新的声明周期流程\n */\n didUpdate(prevProps, prevData) {\n const { show } = this.props;\n if (show !== prevProps.show) {\n // 实例化一个动画\n if (show) {\n const animation = my.createAnimation({\n duration: 400,\n timingFunction: 'linear',\n });\n this.animation = animation;\n animation.translateY('-500px').step();\n this.setData({ animation: animation.export() });\n } else {\n const animation = my.createAnimation({\n duration: 400,\n timingFunction: 'linear',\n });\n this.animation = animation;\n animation.translateY('0px').step();\n this.setData({ animation: animation.export() });\n }\n }\n },\n methods: {\n\n },\n});\n","component/picker/index.json":"{\n \"component\": true\n}","module/amount-input/index.acss":".amount-input {\n margin-top: 24rpx;\n background-color: #FFF;\n}\n.amount-input .amount-header {\n display: flex;\n}\n.amount-input .amount-header .amount-input-titles {\n font-family: PingFangSC-Regular;\n font-size: 32rpx;\n line-height: 45rpx;\n color: #999;\n letter-spacing: 0;\n padding: 24rpx 0 16rpx;\n white-space: nowrap;\n}\n.amount-input .amount-header .amount-input-discount {\n line-height: 33rpx;\n height: 40rpx;\n padding: 4rpx 8rpx;\n background: #FFF;\n border: 1rpx solid #FFE1D9;\n border-radius: 4rpx;\n font-family: PingFangSC-Medium;\n font-size: 24rpx;\n color: #F75;\n letter-spacing: 0.5rpx;\n}\n.amount-input .amount-header input {\n height: 75rpx;\n margin: 35rpx 0 59rpx;\n text-align: right;\n font-size: 64rpx;\n caret-color: #108EE9;\n font-family: HelveticaNeue;\n color: #151515;\n line-height: 90rpx;\n}\n.amount-input .amount-footer {\n padding-top: 24rpx;\n font-family: PingFangSC-Regular;\n font-size: 24rpx;\n color: rgba(153, 153, 153, 0.6);\n border-top: 2rpx solid #EEE;\n text-align: right;\n}\n","module/amount-input/index.axml":"<view class=\"amount-input\">\n <view class=\"amount-header\">\n <view>\n <view class=\"amount-input-titles\">请输入加油机金额</view>\n <text class=\"amount-input-discount\">支付享{{disCount}}折优惠</text>\n </view>\n <input\n type=\"digit\"\n value=\"{{_value}}\"\n focus=\"{{focus}}\"\n onInput=\"onInput\"\n onConfirm=\"onConfirm\"\n onFocus=\"onFocus\"\n onBlur=\"onBlur\"\n placeholder=\"¥ 0.00\"\n maxLength=\"7\"\n onInput=\"onInput\"\n onFocus=\"onInputFocus\"\n controlled ='{{true}}'\n />\n </view>\n <view class=\"amount-footer\">输入金额精确到分</view>\n</view>","module/amount-input/index.js":"import { connect } from 'herculex';\nimport { Decimal } from 'decimal.js';\nimport { clearNoNum } from '../../common/util';\n\nComponent(connect({\n mapStateToProps: ['payMoney', 'currentFuelType', 'currentFuelNumber'],\n mapGettersToProps: ['disCount'],\n})({\n data: {\n _value: '',\n },\n props: {\n },\n methods: {\n onInput(e) {\n const { value } = e.detail;\n const value2 = clearNoNum(value);\n this.setData({\n _value: value,\n });\n setTimeout(() => {\n this.setData({\n _value: value2,\n });\n }, 0);\n const inputNum = value2;\n const realPayNum = new Decimal(inputNum).times(this.data.payMoney.discount / 100).toFixed(2);\n const discountNum = new Decimal(value2).minus(realPayNum).valueOf();\n const payMoney = Object.assign(this.data.payMoney, {\n inputNum,\n realPayNum,\n discountNum,\n });\n this.dispatch('updatePayNum', { payMoney });\n },\n onFocus() {\n },\n },\n}));\n","module/amount-input/index.json":"{\n \"component\": true\n}","module/fuel-guide/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.guide {\n position: absolute;\n top: 0;\n width: 100%;\n height: 100vh;\n opacity: 0.8;\n background: #000000;\n}\n.guide1 {\n margin: 86rpx 0 0 213rpx;\n width: 513rpx;\n height: 364rpx;\n background-image: url(https://gw.alipayobjects.com/zos/rmsportal/MNBTswYhfrTnJkLnmIxE.png);\n background-size: 513rpx 364rpx;\n background-repeat: no-repeat;\n}\n.guide1 .guideWhiteSquare {\n width: 300rpx;\n height: 114rpx;\n background-color: #ffffff;\n opacity: 1;\n}\n.guide2 {\n margin: 333rpx 0 0 135rpx;\n width: 600rpx;\n height: 288rpx;\n background-image: url(https://gw.alipayobjects.com/zos/rmsportal/iMLPbquDzxHoZfcrBtvv.png);\n background-size: 600rpx 288rpx;\n background-repeat: no-repeat;\n}\n.guideWhiteSquare {\n position: absolute;\n width: 276rpx;\n height: 100rpx;\n top: 342rpx;\n right: 35rpx;\n background-color: #ffffff;\n opacity: 1;\n z-index: 100;\n border-radius: 50rpx;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.guideWhiteSquare .guideWorlds {\n font-family: PingFangSC-Regular;\n font-size: 0.32rem;\n color: #333333;\n letter-spacing: 0px;\n line-height: 0.45rem;\n font-weight: bold;\n}\n.guideWhiteSquare .rightArrow {\n margin-left: 8rpx;\n width: 14rpx;\n height: 24rpx;\n color: #333333;\n}\n.guideWhiteSquare2 {\n position: absolute;\n width: 276rpx;\n height: 100rpx;\n top: 516rpx;\n right: 26rpx;\n background-color: #ffffff;\n opacity: 1;\n z-index: 100;\n border-radius: 50rpx;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.guideWhiteSquare2 .placeHolderNum {\n font-family: HelveticaNeue;\n font-size: 64rpx;\n color: rgba(153, 153, 153, 0.6);\n}\n","module/fuel-guide/index.axml":"<view onTap=\"onGuide\" a:if=\"{{isNewUser}}\">\n <view class=\"guide\" a:if=\"{{guideState !== 3}}\">\n <view class=\"guide1\" a:if=\"{{guideState === 1}}\"></view>\n <view class=\"guide2\" a:if=\"{{guideState === 2}}\"></view>\n </view>\n <view class=\"guideWhiteSquare\" a:if=\"{{guideState === 1}}\">\n <text class=\"guideWorlds\">请选择油枪号</text>\n <image src=\"https://gw.alipayobjects.com/zos/rmsportal/UkJoMocYlEGkjVzDCUSN.png\" class=\"rightArrow\" mode=\"widthFix\"></image>\n </view>\n <view class=\"guideWhiteSquare2\" a:if=\"{{guideState === 2}}\">\n <text class=\"placeHolderNum\">¥ 0.00</text>\n </view>\n</view>","module/fuel-guide/index.js":"/**\n * 个人中心列表组件\n */\nimport { connect } from 'herculex';\n\nComponent(connect({\n mapStateToProps: ['guideState', 'isNewUser'],\n})({\n data: {\n },\n props: {\n },\n methods: {\n onGuide() {\n let nextState;\n if (this.data.guideState === 1) nextState = 2;\n if (this.data.guideState === 2) nextState = 3;\n this.dispatch('updateGuideState', nextState);\n },\n },\n}));\n","module/fuel-guide/index.json":"{\n \"component\": true,\n \"usingComponents\": {\n }\n}","module/fuel-pay/index.acss":".footer {\n box-sizing: border-box;\n display: flex;\n justify-content: space-between;\n height: 138rpx;\n width: 100%;\n border-top: 2rpx solid #EEEEEE;\n position: fixed;\n bottom: 0;\n background-color: #FFFFFF;\n}\n.footer .discount {\n margin: 24rpx 0 22rpx 27rpx;\n}\n.footer .discount .totalAmount {\n font-family: PingFangSC-Regular;\n font-size: 24rpx;\n color: #999999;\n}\n.footer .discount .redMoneySign {\n font-family: PingFangSC-Semibold;\n font-size: 24rpx;\n margin-right: 10rpx;\n color: #E8541E;\n}\n.footer .discount .payNum {\n font-family: PingFangSC-Semibold;\n font-size: 48rpx;\n line-height: 67rpx;\n color: #FF7755;\n}\n.footer .discount .hasDiscount {\n font-family: PingFangSC-Medium;\n font-size: 28rpx;\n color: #333333;\n letter-spacing: 0.58rpx;\n}\n.footer .discount .hasDiscountWords {\n margin: 0 10rpx 0 20rpx;\n}\n.footer .canPay {\n margin: 29rpx 32rpx 29rpx 0;\n width: 240rpx;\n height: 80rpx;\n background: #108EE9;\n border-radius: 4px;\n line-height: 80rpx;\n font-family: PingFangSC-Regular;\n font-size: 36rpx;\n color: #FFFFFF;\n}\n.footer .notPay {\n margin: 29rpx 32rpx 29rpx 0;\n width: 240rpx;\n height: 80rpx;\n opacity: 0.6;\n background: #108EE9;\n border-radius: 4px;\n line-height: 80rpx;\n font-family: PingFangSC-Regular;\n font-size: 36rpx;\n color: #FFFFFF;\n}\n","module/fuel-pay/index.axml":"<view class=\"footer\">\n <view class=\"discount\">\n <view class=\"totalAmount\">实付金额</view>\n <view>\n <text class=\"redMoneySign\">¥</text>\n <text class=\"payNum\">{{shouldpayNum || '0.00'}}</text>\n <!-- <text class=\"hasDiscount hasDiscountWords\">已优惠</text>\n <text class=\"hasDiscount\">¥</text>\n <text class=\"hasDiscount\">{{payMoney.discountNum}}</text> -->\n </view>\n </view>\n <view>\n <button class=\"{{ canPay ? 'canPay' : 'notPay'}}\" onTap=\"onPay\">立即支付</button>\n </view>\n</view>","module/fuel-pay/index.js":"import { connect } from 'herculex';\n\nComponent(connect({\n mapStateToProps: ['payMoney'],\n mapGettersToProps: ['canPay', 'shouldpayNum'],\n})({\n data: {},\n props: {},\n methods: {\n onPay() {\n if (!this.data.canPay) return;\n const reg = /^(([1-9]{1}\\d*)|0)(\\.\\d{1,2})?$/;\n const { inputNum } = this.data.payMoney;\n if (!reg.test(inputNum) || inputNum < 0 || inputNum > 2000) {\n return my.alert({\n content: '请输入正确金额',\n buttonText: '我知道了',\n });\n }\n this.dispatch('openTradePay');\n },\n },\n}));\n","module/fuel-pay/index.json":"{\n \"component\": true\n}","module/fuel-selection/index.acss":".fuel-selection-container {\n background-color: #FFFFFF;\n}\n","module/fuel-selection/index.axml":"<view class=\"fuel-selection-container\">\n <selection-input \n label=\"油品型号\"\n value=\"{{currentFuelType}}\"\n pickerTitle=\"选择油品型号\"\n onSelect=\"onFuelTypeOpen\"\n onChange=\"onFuelTypeChanged\"\n list=\"{{fuelTypeList}}\"\n fuelTypeList=\"{{fuelTypeList}}\"\n type=\"list\"\n />\n <selection-input \n label=\"出油枪号\"\n value=\"{{currentFuelNumber}}\"\n pickerTitle=\"选择油枪号\"\n onSelect=\"onFuelNumberOpen\"\n onChange=\"onFuelNumberChanged\"\n list=\"{{fuelNumberList}}\"\n type=\"square\"\n />\n</view>","module/fuel-selection/index.js":"import { connect } from 'herculex';\n\nComponent(connect({\n mapStateToProps: ['fuelTypeList', 'fuelNumberList', 'currentFuelType', 'currentFuelNumber', 'payMoney', 'stationDetailInfo'],\n mapGettersToProps: [],\n})({\n didMount() {\n this.onFuelTypeOpen = this.onFuelTypeOpen.bind(this);\n },\n methods: {\n /**\n * 唤起油品型号打开的流程\n */\n onFuelTypeOpen() {\n return this.dispatch('requestFuelTypeList', {});\n },\n /**\n * 修改选中的油品型号\n */\n onFuelTypeChanged(value) {\n this.dispatch('updateCurrentType', { currentFuelType: value });\n this.dispatch('updateCurrentNumber', { currentFuelNumber: '' });\n },\n /**\n * 唤起油枪打开的流程\n */\n onFuelNumberOpen() {\n return this.dispatch('requestFuelNumberList', {});\n },\n /**\n * 修改选中的油枪号\n */\n onFuelNumberChanged(value) {\n this.dispatch('updateCurrentNumber', { currentFuelNumber: value });\n },\n },\n}));\n","module/fuel-selection/index.json":"{\n \"component\": true,\n \"usingComponents\": {\n \"selection-input\": \"./selection-input/index\"\n }\n}","module/fuel-selection/selection-input/helper.sjs":"export default {\n getSelectedFuel: function(list, value ,type, fuelTypeList, OIL_MAP) {\n const filterItem = list.filter((item) => {\n return item.value === value;\n })\n if (filterItem.length > 0 && type === 'square') {\n return filterItem[0].name + '号油枪';\n }\n if (filterItem.length > 0) {\n return filterItem[0].name;\n }\n if (type === 'list' && value.length > 0) return OIL_MAP[value];\n if (type === 'list') return '请选择油品型号';\n if (type === 'square') return '请选择油枪号';\n return '未选择';\n }\n}","module/fuel-selection/selection-input/index.acss":".selection-input {\n display: flex;\n height: 94rpx;\n border-bottom: solid 1rpx #EEEEEE;\n justify-content: space-between;\n align-items: center;\n padding: 25rpx 0 24rpx;\n}\n.selection-input .choseWords {\n font-family: PingFangSC-Regular;\n font-size: 32rpx;\n color: #333333;\n letter-spacing: 0;\n line-height: 45rpx;\n font-weight: bold;\n}\n.selection-input .rightArrow {\n margin-left: 8rpx;\n width: 14rpx;\n height: 24rpx;\n color: #333333;\n}\n.selection-input .label {\n font-family: PingFangSC-Light;\n font-size: 32rpx;\n line-height: 45rpx;\n color: #999999;\n letter-spacing: 0;\n}\n.selection-input .picker-title {\n font-size: 36rpx;\n line-height: 50rpx;\n padding: 32rpx 0;\n text-align: center;\n border-bottom: solid 1px #EEEEEE;\n}\n.selection-input .picker-title .close {\n position: absolute;\n left: 32rpx;\n width: 34rpx;\n height: 34rpx;\n background-image: url(https://gw.alipayobjects.com/zos/rmsportal/raBVLnimUnhcQNmZDaMO.png);\n background-size: 34rpx 34rpx;\n margin-top: 0.08rem;\n color: #999999;\n}\n.selection-input .a-scroll-view {\n padding: 0 0 32rpx 2rpx;\n}\n.selection-input .a-scroll-view .a-view {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}\n.selection-input .a-scroll-view .a-view .oilTypeTitle {\n width: 100%;\n margin: 32rpx 0 0 32rpx;\n font-size: 36rpx;\n line-height: 50rpx;\n color: #333;\n text-align: center;\n font-family: PingFangSC-Medium;\n letter-spacing: 0.37rpx;\n}\n.selection-input .a-scroll-view .a-view .listItem {\n display: flex;\n justify-content: center;\n align-items: center;\n margin-top: 32rpx;\n margin-left: 32rpx;\n box-sizing: content-box;\n width: 202rpx;\n height: 120rpx;\n background: #FFFFFF;\n border: 2rpx solid rgba(16, 142, 233, 0.4);\n border-radius: 4rpx;\n padding: 0;\n line-height: 120rpx;\n text-align: center;\n font-family: HelveticaNeue;\n font-size: 36rpx;\n color: #108EE9;\n letter-spacing: 0;\n}\n.selection-input .a-scroll-view .a-view .selected {\n background-color: #108EE9;\n color: #FFFFFF;\n}\n","module/fuel-selection/selection-input/index.axml":"<import-sjs name=\"helper\" from=\"./helper.sjs\"/>\n<view class=\"selection-input\">\n <view class=\"label\">{{label}}</view>\n <view onTap=\"onOpenSelect\">\n <text>{{text}}</text>\n <text class=\"choseWords\">{{helper.getSelectedFuel(list, value, type, fuelTypeList, OIL_MAP)}}</text>\n <image src=\"https://gw.alipayobjects.com/zos/rmsportal/UkJoMocYlEGkjVzDCUSN.png\" class=\"rightArrow\" mode=\"widthFix\"></image>\n </view>\n <hy-picker \n show=\"{{pickerShow}}\"\n >\n <view class=\"picker-title\">\n <text class=\"close\" onTap=\"onClosePopup\"></text>{{pickerTitle}}\n </view>\n <scroll-view \n scroll-y=\"{{true}}\" \n style=\"height: 496rpx;\"\n >\n <view a:if=\"{{type === 'square'}}\">\n <view a:for=\"{{list}}\" class=\"listItem {{item.value===selectedValue ?'selected' : ''}}\" data-value=\"{{item.value}}\" onTap=\"onChange\">\n {{item.name}}\n </view>\n </view>\n <view a:if=\"{{type === 'list'}}\">\n <view a:if=\"{{dieselList.length !== 0 && petrolList.length !== 0}}\" class='oilTypeTitle'>汽油</view>\n <view>\n <view a:for=\"{{petrolList}}\" class=\"listItem {{item.oilType===(selectedValue || value) ?'selected' : ''}}\" data-value=\"{{item.oilType}}\" onTap=\"onChange\">\n {{item.oilType}}\n </view>\n </view>\n <view a:if=\"{{dieselList.length !== 0 && petrolList.length !== 0}}\" class='oilTypeTitle'>柴油</view>\n <view>\n <view a:for=\"{{dieselList}}\" class=\"listItem {{item.oilType===(selectedValue || value) ?'selected' : ''}}\" data-value=\"{{item.oilType}}\" onTap=\"onChange\">\n {{item.oilType}}\n </view>\n </view>\n </view>\n </scroll-view>\n </hy-picker>\n</view>","module/fuel-selection/selection-input/index.js":"import { OIL_MAP, PETROL_LIST, DIESEL_LIST } from '../../../common/constant';\n\nComponent({\n props: {\n label: '',\n text: '',\n value: '',\n onSelect: null,\n onChange: null,\n list: [],\n type: '',\n fuelTypeList: [],\n },\n data: {\n OIL_MAP,\n PETROL_LIST,\n DIESEL_LIST,\n petrolList: [],\n dieselList: [],\n pickerShow: false,\n selectedValue: '',\n },\n didMount() {\n this.setData({\n selectedValue: this.props.value,\n });\n },\n methods: {\n /**\n * 打开弹出浮层\n */\n onOpenSelect(e) {\n const { onSelect } = this.props;\n onSelect().then((res) => { // res 当前油站的可选油品\n const { list } = this.props;\n const petrolList = [];\n const dieselList = [];\n if (list && list[0] && list[0].oilType) { // 油品列表\n res.map((item) => {\n const isPetrol = PETROL_LIST.some(i => i.oilType === item.oilType);\n if (isPetrol) {\n petrolList.push(item);\n } else {\n dieselList.push(item);\n }\n });\n }\n const { pickerShow } = this.data;\n this.setData({\n petrolList,\n dieselList,\n selectedValue: this.props.value,\n pickerShow: true,\n }, () => {\n });\n });\n },\n /**\n * 选择油品型号\n */\n onChange(e) {\n const { onChange } = this.props;\n const { selectedValue } = this.data;\n const { value } = e.currentTarget.dataset;\n if (value !== selectedValue) {\n this.setData({\n selectedValue: value,\n pickerShow: false,\n }, () => {\n onChange && onChange(value);\n });\n }\n },\n onClosePopup() {\n this.setData({\n pickerShow: false,\n });\n },\n },\n});\n","module/fuel-selection/selection-input/index.json":"{\n \"component\": true,\n \"usingComponents\": {\n \"hy-picker\": \"../../../component/picker/index\",\n \"list\":\"../../list/index\",\n \"list-item\":\"../../list/list-item/index\"\n }\n}","module/fuel-station-popup/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.station-wrapper {\n padding-top: 44rpx;\n position: fixed;\n bottom: 0;\n left: 0;\n width: 100%;\n z-index: 900;\n background: #fff;\n box-shadow: 0 -1rpx 0 0 #EAEAEA, 0 -5rpx 20rpx 0 rgba(200, 200, 200, 0.5);\n transition: all 0.32s ease-out;\n}\n.station-wrapper-mask {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n z-index: 900;\n transition: all 0.2s ease-in-out;\n opacity: 0;\n visibility: hidden;\n}\n.station-wrapper-mask.mask-show {\n opacity: 0;\n visibility: visible;\n}\n.station-header {\n position: relative;\n}\n.station-header .arrow-up {\n position: absolute;\n top: -40rpx;\n left: 50%;\n transform: translateX(-50%);\n width: 40rpx;\n height: 40rpx;\n background: url(https://gw.alipayobjects.com/zos/rmsportal/UbhKyRHnViLIfTIWRTSB.png) center no-repeat;\n background-size: 36rpx 14rpx;\n}\n.station-header .arrow-down {\n position: absolute;\n top: -40rpx;\n left: 50%;\n transform: translateX(-50%);\n width: 40rpx;\n height: 40rpx;\n background: url(https://gw.alipayobjects.com/zos/rmsportal/xueLMPQIQImOYiLJHzlx.png) center no-repeat;\n background-size: 36rpx 36rpx;\n}\n.station-list {\n padding-left: 32rpx;\n height: 100%;\n overflow-y: scroll;\n}\n.station-list-item {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-top: 32rpx;\n margin-right: 32rpx;\n padding: 0 0 26rpx 0;\n border-bottom: 1rpx solid #eee;\n}\n.station-list-item .left .name {\n font-family: PingFangSC-Medium;\n font-size: 32rpx;\n line-height: 40rpx;\n color: #333;\n}\n.station-list-item .left .addr {\n font-size: 28rpx;\n font-family: PingFangSC-Regular;\n color: #999;\n letter-spacing: 0;\n text-align: justify;\n line-height: 40rpx;\n margin-top: 4rpx;\n}\n.station-list-item .left .price {\n display: flex;\n align-items: center;\n font-family: PingFangSC-Medium;\n font-size: 48rpx;\n color: #F75;\n letter-spacing: 0;\n line-height: 67rpx;\n margin-top: 16rpx;\n}\n.station-list-item .left .price text {\n font-size: 32rpx;\n height: 52rpx;\n}\n.station-list-item .left .old {\n box-sizing: border-box;\n padding: 1rpx 8rpx;\n margin-left: 8rpx;\n font-family: PingFangSC-Regular;\n font-size: 24rpx;\n line-height: 36rpx;\n color: #F75;\n letter-spacing: 0.58rpx;\n text-align: right;\n height: 36rpx;\n background-color: #FFF1EE;\n}\n.station-list-item .left .oilType {\n box-sizing: border-box;\n padding: 1rpx 8rpx;\n font-family: PingFangSC-Regular;\n font-size: 24rpx;\n line-height: 33rpx;\n height: 36rpx;\n color: #999;\n letter-spacing: 0.5;\n border: 2rpx solid #FFE1D9;\n border-radius: 0 4rpx 4rpx 0;\n}\n.station-list-item .right {\n text-align: center;\n}\n.station-list-item .right image {\n width: 56rpx;\n}\n.station-list-item .right view {\n margin-top: 8rpx;\n font-size: 24rpx;\n line-height: 33rpx;\n color: #999;\n letter-spacing: 0;\n text-align: center;\n}\n.station-list .bottomLine {\n height: 97rpx;\n margin-bottom: 40rpx;\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: flex-end;\n}\n.station-list .bottomLine .leftLine {\n margin-right: 26rpx;\n height: 2rpx;\n width: 80rpx;\n background-color: #D8D8D8;\n}\n.station-list .bottomLine .bottomWords {\n color: #ccc;\n font-size: 26rpx;\n font-family: PingFangSC-Regular;\n}\n.station-list .bottomLine .rightLine {\n margin-left: 26rpx;\n height: 2rpx;\n width: 80rpx;\n background-color: #D8D8D8;\n}\n","module/fuel-station-popup/index.axml":"<block a:if=\"{{showFuelStationList}}\">\n <view class=\"station-wrapper-mask {{ expand ? 'mask-show' : '' }}\" onTap=\"toggle\"></view>\n <view class=\"station-wrapper\" style=\"height: {{expand ? '89%' : '170'}};\" onTap=\"toggle\">\n <view class=\"station-header\">\n <text a:if=\"{{expand}}\" class=\"arrow-down\"></text>\n <text a:if=\"{{!expand}}\"class=\"arrow-up\"></text>\n </view>\n <view class=\"station-list\">\n <block a:for=\"{{stationLocationList}}\">\n <view class=\"station-list-item\">\n <view class=\"left\" catchTap=\"goToOrderPage\" data-item=\"{{item}}\" data-index=\"{{index}}\">\n <view class=\"name\">{{item.oilStationName}}</view>\n <view class=\"addr\">{{item.address}}</view>\n <view class=\"price\"><text>¥ </text>{{item.salePrice.amount}}\n <view class=\"old\">已降{{item.pocketAmount.amount}}元</view>\n <view class=\"oilType\">{{item.oilType}}</view>\n </view>\n </view>\n <view class=\"right\" catchTap=\"goToGuide\" data-item=\"{{item}}\" data-index=\"{{index}}\">\n <image src=\"https://gw.alipayobjects.com/zos/rmsportal/ejMWJtFpaGmpvphLVhyz.png\" class=\"img\" mode=\"widthFix\"></image>\n <view>{{item.distance}}</view>\n </view>\n </view>\n </block>\n <view class=\"bottomLine\" a:if=\"{{expand && stationLocationList}}\">\n <view class=\"leftLine\"></view>\n <view class=\"bottomWords\">我是有底线的</view>\n <view class=\"rightLine\"></view>\n </view>\n </view>\n </view>\n</block>\n","module/fuel-station-popup/index.js":"import { connect } from 'herculex';\nimport { goPage } from '../../common/util';\n\nComponent(connect({\n mapStateToProps: ['stationLocationList', 'showDetail', 'showFuelStationList'],\n mapGettersToProps: ['selectedOilType'],\n})({\n props: {},\n data: {\n expand: false,\n },\n methods: {\n toggle() {\n console.log(this);\n const p = !this.data.expand;\n this.setData({ expand: p });\n },\n /**\n * 跳转到订单页\n */\n async goToOrderPage(ev) {\n console.log('moveToMapStation', ev);\n // const { currentTarget: { dataset: { item } } } = ev; // item 此油站的所有信息\n this.setData({ expand: false });\n goPage('../settle-order/index');\n },\n goToGuide(e) {\n const { currentTarget: { dataset: { item: { longitude, latitude, oilStationName, address } } } } = e;\n my.alert({\n content: '点击了导航功能',\n buttonText: '我知道了',\n });\n // my.openLocation({\n // longitude,\n // latitude,\n // name: oilStationName,\n // address,\n // fail: () => {\n // my.alert({\n // content: '需要ide或者真机上尝试',\n // buttonText: '我知道了',\n // });\n // },\n // });\n },\n },\n}));\n","module/fuel-station-popup/index.json":"{\n \"component\": true,\n \"usingComponents\": {\n }\n}\n","module/index-header/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.header-wrapper {\n border-top: 2rpx solid #EEE;\n align-self: flex-start;\n width: 100%;\n box-sizing: border-box;\n height: 78rpx;\n background-color: #fff;\n display: flex;\n justify-content: space-between;\n align-items: center;\n position: absolute;\n top: 0;\n z-index: 100;\n border-bottom: 1rpx solid #ddd;\n}\n.header-wrapper .splitLine {\n height: 36rpx;\n width: 2rpx;\n background-color: #EFEFEF;\n}\n.header-wrapper .drop-down-wrapper {\n height: 100%;\n width: 192rpx;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.header-wrapper .drop-down-wrapper .left-text {\n font-size: 28rpx;\n}\n.header-wrapper .drop-down-wrapper .drop-down-arrow {\n height: 12rpx;\n width: 12rpx;\n padding-left: 12rpx;\n background-image: url('https://gw.alipayobjects.com/zos/rmsportal/mVsqYximfFGqvwvOwVtd.png');\n background-repeat: no-repeat;\n background-size: 12rpx 10rpx;\n}\n.header-wrapper .drop-down-active {\n background-color: rgba(37, 39, 40, 0.05);\n}\n.header-wrapper .search-bar-wrapper {\n flex: 1;\n}\n.header-wrapper .search-bar-wrapper .am-search {\n height: auto;\n}\n.header-wrapper .search-bar-wrapper .am-search .am-search-input {\n background: rgba(0, 0, 0, 0);\n}\n.header-wrapper .search-bar-wrapper .content {\n width: 100%;\n}\n.header-wrapper .search-bar-wrapper .am-search-cancel {\n display: none;\n}\n","module/index-header/index.axml":"<view class=\"header-wrapper\">\n <view class=\"drop-down-wrapper\" hover-class=\"drop-down-active\" onTap=\"onOilTypePopup\">\n <view class=\"left-text\">\n {{selectedOilType || '油品型号'}}\n </view>\n <view class=\"drop-down-arrow\">\n </view>\n </view>\n <view class=\"splitLine\"></view>\n <view class=\"search-bar-wrapper\">\n <view class=\"content\" onTap=\"onSearch\">\n <search-bar\n value=\"{{searchValue}}\"\n placeholder=\"输入地址查看附近加油站\"\n showCancelButton=\"{{false}}\"\n />\n </view>\n </view>\n <oil-type-popup a:if=\"{{showOilTypeSelect}}\" show=\"{{showOilTypeSelect}}\" onClose=\"onClosePopup\" selectedOilType=\"{{selectedOilType}}\"/>\n</view>\n","module/index-header/index.js":"/**\n * 首页顶部组件\n */\nimport { connect } from 'herculex';\nimport { OIL_MAP } from '../../common/constant';\nimport { goPage } from '../../common/util';\n\nconst withStore = connect({\n mapStateToProps: ['showOilTypeSelect'],\n mapGettersToProps: ['selectedOilType'],\n});\n\nComponent(withStore({\n data: {\n oilMap: OIL_MAP,\n searchValue: '',\n },\n props: {},\n methods: {\n onOilTypePopup() {\n this.commit('updateState', { showDetail: false, showFuelStationList: false, showOilTypeSelect: true });\n },\n async onClosePopup(tempSelectOilType = '') {\n this.dispatch('getCurrentLocation').then(() => {\n this.commit('updateState', { showOilTypeSelect: false });\n this.dispatch('$global:updateOilType', { selectedOilType: tempSelectOilType });\n this.dispatch('queryStationList');\n this.dispatch('setOilTypeToStorage');\n });\n },\n onSearch() {\n goPage('../search/index');\n },\n },\n}));\n","module/index-header/index.json":"{\n \"component\": true,\n \"usingComponents\":{\n \"search-bar\":\"../search-bar/index\",\n \"oil-type-popup\": \"../oil-type-popup/index\"\n }\n}\n","module/list/index.acss":".am-list-footer,\n.am-list-header {\n font-size: 14px;\n color: #888;\n}\n.am-list-header {\n padding: 16px 16px 8px;\n}\n.am-list-body {\n position: relative;\n}\n.am-list-body::before {\n content: '';\n position: absolute;\n background-color: #eee;\n display: block;\n top: 0;\n right: 0;\n bottom: auto;\n left: 0;\n height: 1px;\n transform: scaleY(0.5);\n}\n.am-list-body::after {\n content: '';\n position: absolute;\n background-color: #eee;\n display: block;\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n height: 1px;\n transform: scaleY(0.5);\n}\n.am-list-footer {\n padding: 8px 16px 16px 16px;\n}\n.am-list-load-more {\n text-align: center;\n background: #fff;\n padding: 10px 16px;\n font-size: 15px;\n line-height: 1.4;\n color: #333;\n}\n.am-list-load-more-txt {\n padding: 0 10px;\n}\n.am-list-load-over {\n display: block;\n padding: 10px 16px;\n font-size: 10px;\n text-align: center;\n color: #ccc;\n text-shadow: 1px 1px #f0f0f0;\n}\n","module/list/index.axml":"<view class=\"am-list {{className}}\">\n <view class=\"am-list-header\" a:if=\"{{$slots.header}}\">\n <slot name=\"header\" />\n </view>\n <view class=\"am-list-body\">\n <slot />\n </view>\n <view class=\"am-list-load-more\" a:if=\"{{loadMore === 'load'}}\"><icon type=\"loading\" size=\"16\"/><text class=\"am-list-load-more-txt\">{{loadContent[0]?loadContent[0]:''}}</text></view>\n <view class=\"am-list-load-over\" a:if=\"{{loadMore === 'over'}}\">{{loadContent[1]?loadContent[1]:''}}</view>\n <view class=\"am-list-footer\" a:if=\"{{$slots.footer}}\">\n <slot name=\"footer\" />\n </view>\n</view>\n","module/list/index.js":"Component({\n props: {\n className: '',\n loadMore: false,\n loadContent: ['', ''],\n },\n data: {\n loadContent: ['加载更多...', '-- 数据加载完了 --'],\n },\n didMount: function didMount() {\n const loadTxt = this.props.loadContent[0] ? this.props.loadContent[0] : this.data.loadContent[0];\n const overTxt = this.props.loadContent[1] ? this.props.loadContent[1] : this.data.loadContent[1];\n this.setData({\n loadContent: [loadTxt, overTxt],\n });\n },\n didUpdate: function didUpdate() {\n const loadTxt = this.props.loadContent[0] ? this.props.loadContent[0] : this.data.loadContent[0];\n const overTxt = this.props.loadContent[1] ? this.props.loadContent[1] : this.data.loadContent[1];\n\n if (loadTxt !== this.data.loadContent[0] || overTxt !== this.data.loadContent[1]) {\n this.setData({\n loadContent: [loadTxt, overTxt],\n });\n }\n },\n});\n","module/list/index.json":"{\n \"component\": true\n}\n","module/list/list-item/index.acss":".am-list-item {\n display: flex;\n align-items: center;\n background: #fff;\n padding-left: 16px;\n font-size: 15px;\n line-height: 1.4;\n color: #333;\n}\n.am-list-item-hover {\n background-color: #f8f8f8;\n}\n.am-list-prefix {\n margin-right: 16px;\n}\n.am-list-thumb {\n width: 30px;\n height: 30px;\n margin-right: 16px;\n}\n.am-list-line {\n position: relative;\n flex: 1;\n display: flex;\n align-items: center;\n align-self: stretch;\n padding-right: 15px;\n min-height: 52px;\n overflow: hidden;\n}\n.am-list-content,\n.am-list-extra {\n line-height: 1.5;\n width: auto;\n padding-top: 7px;\n padding-bottom: 7px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.am-list-content {\n flex: 1;\n color: #000;\n font-size: 17px;\n text-align: left;\n}\n.am-list-extra {\n flex-basis: 36%;\n color: #888;\n font-size: 16px;\n text-align: right;\n}\n.am-list-brief {\n color: #888;\n font-size: 14px;\n}\n.am-list-wrap .am-list-content,\n.am-list-wrap .am-list-extra {\n white-space: normal;\n word-break: break-all;\n}\n.am-list-arrow {\n display: block;\n width: 15px;\n height: 15px;\n margin-left: 8px;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAaCAYAAAC+aNwHAAAAAXNSR0IArs4c6QAAAdxJREFUOBGlVT1Lw1AUbSSBdMnQf9ChU6GFtr9AEMFBiouDuOikoGixiGgRSi2i1KJTR0fHbuLi5mRbcO7QnyAIQjCSek7ghtc0DQm+5d537z0n97yvpFIYg8GgMxqNavSTjqXhcNgCqOa6bgf+eWICABwBTafTFkiuZB7HaiyChAZMUwCapnXL5XIsSR4BgWyfHQgJbA8k+yCbKrE51ydgBp2cwbSlCuDHUqm0C+tKLGhnCJjEbpxiQa+lEOAnkGzD/kpMtXMETEJOHXJulMJ+Op3ezOfzP0rMc5eCAc6h/RamruSqtm33J5OJqcQ8N7QDKeLh4vmQOWS86rq+XiwWvyUW2oEkof0OoGOZQ9ay4zgv4/HYklhkB1KE3TmEfy9zkL4bhrFaKBQ+YxEQCDkHkPOgkHyAaCVSghRH2VgdREnQo9iZw5k4wuJ1lbo3y7LWcrncF2OREriNKpjbyMUTMAkWSkDbJ8jzQHkD4OdMJrORzWZtidGGdsCjjJwPht83TbMaBJNgroOkl2mmA17nwE3kdd5C+6E3kR34BHxQMPffAvg9gHcAXvgW+AT4cgOr7b9GAHUrlcoebORr5BHgy5dwmpxwANSO+x6ynhIMOhwAXwCc+Gn/14/lDyH1t+arhvp8AAAAAElFTkSuQmCC);\n background-size: contain;\n background-repeat: no-repeat;\n background-position: 50% 50%;\n}\n.am-list-arrow-empty {\n visibility: hidden;\n}\n.am-list-line-bottom::after {\n content: '';\n position: absolute;\n background-color: #eee;\n display: block;\n top: auto;\n right: 0;\n bottom: 0;\n left: 0;\n height: 1px;\n transform: scaleY(0.5);\n}\n.am-list-top .am-list-line {\n align-items: flex-start;\n}\n.am-list-middle .am-list-line {\n align-items: center;\n}\n.am-list-bottom .am-list-line {\n align-items: flex-end;\n}\n.am-list-multiple .am-list-line {\n padding: 6px 15px 6px 0;\n}\n.am-list-multiple .am-list-thumb {\n width: 36px;\n height: 36px;\n}\n.am-list-item.last .am-list-line-bottom::after {\n display: none;\n}\n","module/list/list-item/index.axml":"<view\n\tclass=\"am-list-item am-list-{{align}} {{multipleLine ? 'am-list-multiple' : ''}} {{last ? 'last': ''}} {{className}}\"\n\thover-class=\"{{disabled ? '' : 'am-list-item-hover'}}\"\n\tonTap=\"onItemTap\"\n\tdata-index=\"{{index}}\"\n>\n\t<view a:if={{$slots.prefix}} class=\"am-list-prefix\">\n\t\t<slot name=\"prefix\" />\n\t</view>\n\t<image a:if={{thumb}} class=\"am-list-thumb\" src=\"{{thumb}}\" mode=\"scaleToFill\" />\n\t<view class=\"am-list-line {{wrap ? 'am-list-wrap' : ''}}\">\n\t\t<view class=\"am-list-content\">\n\t\t\t<slot />\n\t\t</view>\n\t\t<view a:if={{$slots.extra}} class=\"am-list-extra\" >\n\t\t\t<slot name=\"extra\" />\n\t\t</view>\n\t\t<view a:if={{arrow}} class=\"am-list-arrow\" />\n\t\t<view class=\"am-list-line-bottom\" />\n\t</view>\n</view>\n","module/list/list-item/index.js":"Component({\n props: {\n className: '',\n align: false,\n disabled: false,\n multipleLine: false,\n wrap: false,\n },\n didMount: function didMount() {\n this._updateDataSet();\n },\n didUpdate: function didUpdate() {\n this._updateDataSet();\n },\n methods: {\n _updateDataSet: function _updateDataSet() {\n this.dataset = {};\n\n for (const key in this.props) {\n if (/data-/gi.test(key)) {\n this.dataset[key.replace(/data-/gi, '')] = this.props[key];\n }\n }\n },\n onItemTap: function onItemTap(ev) {\n const _this$props = this.props;\n const { onClick } = _this$props;\n const { disabled } = _this$props;\n\n if (onClick && !disabled) {\n onClick({\n index: ev.target.dataset.index,\n target: {\n dataset: this.dataset,\n },\n });\n }\n },\n },\n});\n","module/list/list-item/index.json":"{\n \"component\": true\n}\n","module/map-ui/controls.json":"[{\n \"id\": 1,\n \"iconPath\": \"https://gw.alipayobjects.com/zos/rmsportal/JIYAEtoRFrbDFMkzHrIk.png\",\n \"position\": {\n \"left\": 8,\n \"top\": 281,\n \"width\": 44,\n \"height\": 44\n },\n \"clickable\": true\n}, {\n \"id\": 2,\n \"iconPath\": \"https://gw.alipayobjects.com/zos/rmsportal/vLFTreDdbEuGwmSKaoBT.png\",\n \"position\": {\n \"left\": 8,\n \"top\": 334,\n \"width\": 44,\n \"height\": 44\n },\n \"clickable\": true\n}]\n","module/map-ui/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.map-wrapper {\n flex: 1;\n}\n.map-wrapper .map-content {\n height: calc(100vh - 216px);\n}\n","module/map-ui/index.axml":"<view class=\"map-wrapper\">\n <view class=\"map-content\">\n <map\n id=\"map\"\n style=\"height: 100vh\"\n longitude=\"{{lbs.longitude}}\"\n latitude=\"{{lbs.latitude}}\"\n scale=\"{{scale}}\"\n onTap=\"tap\"\n controls=\"{{controls}}\"\n markers=\"{{markerList}}\"\n \n onControlTap=\"controltap\"\n onMarkerTap=\"onMarkertap\"\n onRegionChange=\"regionchange\"\n show-location\n ></map>\n </view>\n</view>\n","module/map-ui/index.js":"/* eslint-disable import/no-duplicates */\n/**\n * 地图交互组件\n */\nimport { connect } from 'herculex';\nimport { goPage } from '../../common/util';\nimport controls from './controls.json';\n\nComponent(connect({\n mapStateToProps: ['stationLocationList', 'includePoints'],\n mapGettersToProps: ['markerList', 'lbs'],\n})({\n data: {\n controls, // idea中图片无法显示,真机、模拟器正常\n scale: '12',\n },\n didMount() {\n this.mapCtx = my.createMapContext('map');\n },\n props: {},\n methods: {\n regionchange(e) {\n if (e.type === 'end') {\n this.mapCtx.getCenterLocation({\n success: (res) => {\n const { longitude } = res;\n const { latitude } = res;\n this.dispatch('queryStationList', { longitude, latitude });\n },\n });\n this.setData({\n scale: e.scale,\n });\n }\n },\n /**\n * 移动到中心点\n */\n moveTolocation() {\n this.mapCtx.moveToLocation();\n },\n /**\n * 点击标记点\n * @param e\n */\n onMarkertap(e) {\n const { markerId } = e;\n const detail = this.data.stationLocationList[markerId - 1];\n const { shopId } = detail;\n this.commit('$global:updateState', { shopId });\n goPage('../settle-order/index');\n },\n tap(e) {\n console.log('onMapClick', e);\n },\n /**\n * 点击地图控件\n * @param e\n */\n controltap(e) {\n const { controlId } = e;\n if (controlId === 2) {\n // 请求定位,改变中心点坐标\n this.reSetCurrentLocation();\n } else if (controlId === 1) {\n goPage('../personal-center/index');\n }\n },\n /**\n * 请求地理位置\n * @returns {Promise<void>}\n */\n async reSetCurrentLocation() {\n this.setData({\n tempIncludePoinds: this.data.includePoints,\n });\n await this.dispatch('getCurrentLocation');\n this.moveTolocation();\n },\n /**\n * 更新中心坐标点\n */\n updateCenterLocation(latitude, longitude) {\n this.moveTolocation();\n },\n },\n}));\n","module/map-ui/index.json":"{\n \"component\": true\n}","module/oil-type-popup/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.popup {\n z-index: 900;\n}\n.popup-container {\n width: 100%;\n box-sizing: border-box;\n}\n.popup-container .popup-header {\n position: relative;\n padding-top: 32rpx;\n padding-bottom: 28rpx;\n border-bottom: 1rpx solid #eee;\n}\n.popup-container .popup-header .popup-arrowup-icon {\n position: absolute;\n top: 0;\n left: 50%;\n transform: translateX(-50%);\n width: 40rpx;\n height: 40rpx;\n background: url(https://gw.alipayobjects.com/zos/rmsportal/UbhKyRHnViLIfTIWRTSB.png) center no-repeat;\n background-size: 36rpx 14rpx;\n}\n.popup-container .popup-header .popup-close-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 96rpx;\n height: 96rpx;\n background: url(https://gw.alipayobjects.com/zos/rmsportal/eNodYVdheaEwotLHxCcS.png) center no-repeat;\n background-size: 32rpx 32rpx;\n}\n.popup-container .popup-header .popup-title {\n font-size: 36rpx;\n line-height: 50rpx;\n color: #333;\n text-align: center;\n font-family: PingFangSC-Medium;\n letter-spacing: 0.37rpx;\n}\n.popup-container .popup-header .popup-subtitle {\n margin-top: 8rpx;\n font-size: 26rpx;\n line-height: 37rpx;\n color: #F75;\n letter-spacing: 0.27rpx;\n text-align: center;\n}\n.popup-container .petrol-wrapper {\n padding: 41rpx 32rpx 60rpx;\n}\n.popup-container .petrol-wrapper .petrol-item-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-flow: row wrap;\n}\n.popup-container .diesel-wrapper {\n padding: 0 32rpx 60rpx;\n}\n.popup-container .diesel-wrapper .diesel-item-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-flow: row wrap;\n}\n.popup-container .title {\n font-family: PingFangSC-Medium;\n padding-bottom: 4rpx;\n font-size: 36rpx;\n line-height: 50rpx;\n color: #333;\n letter-spacing: 0;\n text-align: left;\n}\n.popup-container .oil-item {\n font-family: HelveticaNeue-Medium;\n margin-top: 20rpx;\n width: 206rpx;\n height: 120rpx;\n line-height: 120rpx;\n border: 2rpx solid rgba(16, 142, 233, 0.4);\n border-radius: 4rpx;\n font-size: 36rpx;\n color: #108EE9;\n letter-spacing: 0;\n text-align: center;\n background: #FFF;\n}\n.popup-container .oil-item-selected {\n background: #108EE9;\n border-radius: 4rpx;\n color: #FFF;\n}\n.popup-container .button-use {\n padding: 0 32rpx 56rpx;\n}\n","module/oil-type-popup/index.axml":"<view class=\"popup\">\n <view class=\"{{show ? 'popup-show' : ''}}\">\n <view class=\"popup-mask\"/>\n <view class=\"popup-container\">\n <view class=\"popup-header\">\n <!-- <view class=\"popup-arrowup-icon\"></view> -->\n <!-- <view class=\"popup-close-icon\" onTap=\"onClosePopup\"></view> -->\n <view class=\"popup-title\">选择常用油号</view>\n <view class=\"popup-subtitle\">选择油品查看专属优惠,笔笔有优惠</view>\n </view>\n <view class=\"petrol-wrapper\">\n <view class=\"title\">汽油</view>\n <view class=\"petrol-item-wrapper\">\n <block a:for=\"{{petrolList}}\">\n <view\n class=\"oil-item oil-item-{{tempSelectOilType === item.oilType ? 'selected' : ''}}\"\n data-type=\"{{item.oilType}}\"\n onTap=\"onSelect\">\n {{item.oilType}}\n </view>\n </block>\n </view>\n </view>\n <view class=\"diesel-wrapper\">\n <view class=\"title\">柴油</view>\n <view class=\"diesel-item-wrapper\">\n <block a:for=\"{{dieselList}}\">\n <view\n class=\"oil-item oil-item-{{tempSelectOilType === item.oilType ? 'selected' : ''}}\"\n data-type=\"{{item.oilType}}\"\n onTap=\"onSelect\">\n {{item.oilType}}\n </view>\n </block>\n </view>\n </view>\n <view class=\"button-use\" onTap=\"onClosePopup\">\n <button type=\"primary\">查看优惠油站</button>\n </view>\n </view>\n </view>\n</view>\n","module/oil-type-popup/index.js":"/**\n * 选择油号弹出框\n */\nimport { PETROL_LIST, DIESEL_LIST } from '../../common/constant';\n\nComponent({\n props: {\n show: false,\n selectedOilType: '',\n onClose: () => {},\n },\n data: {\n petrolList: PETROL_LIST,\n dieselList: DIESEL_LIST,\n tempSelectOilType: '',\n },\n didMount() {\n this.setData({\n tempSelectOilType: this.props.selectedOilType || '92#',\n });\n },\n methods: {\n onSelect(e) {\n const { dataset = {} } = e.target;\n const { type } = dataset;\n this.setData({\n tempSelectOilType: type,\n });\n },\n onClosePopup() {\n const { onClose } = this.props;\n const { tempSelectOilType } = this.data;\n if (onClose) {\n onClose(tempSelectOilType);\n }\n },\n },\n});\n","module/oil-type-popup/index.json":"{\n \"component\": true\n}\n","module/page-result-new/index.acss":".am-page-result {\n background: #fff;\n overflow: hidden;\n}\n.am-page-result-pic {\n width: 220px;\n height: 220px;\n margin: 22px auto 0;\n background-position: center bottom;\n background-repeat: no-repeat;\n}\n.page-network {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/EUEXznElQXFzReDEGTNe.png\");\n background-size: 140px 150px;\n}\n.page-error {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/gofJqdAUNyIMWsdntOds.png\");\n background-size: 158px 70px;\n}\n.page-busy {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/hVLFyrBzVZqsSOoHoJEn.png\");\n background-size: 104px 133px;\n}\n.page-empty {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/fRWLsYABGKDPhaogZUiF.png\");\n background-size: 146px 146px;\n}\n.page-logoff {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/KVuziFDymkQgDIgRoppG.png\");\n background-size: 94px 131px;\n}\n.am-page-result-title {\n margin: 20px auto 0;\n text-align: center;\n font-size: 20px;\n color: #333;\n}\n.am-page-result-brief {\n margin: 12px auto;\n font-size: 14px;\n color: #888;\n max-width: 266px;\n text-align: center;\n}\n.am-page-result-option {\n font-family: PingFangSC-Regular;\n font-size: 20px;\n color: #108EE9;\n position: absolute;\n bottom: 8%;\n width: 100%;\n text-align: center;\n}\n.am-local-page {\n height: 100%;\n}\n.am-local-page .am-page-result-pic {\n width: 100px;\n height: 105px;\n margin: 0 auto;\n}\n.am-local-page .am-page-result-brief {\n margin: 21px auto 30px;\n font-size: 14px;\n color: #999;\n max-width: 266px;\n text-align: center;\n}\n.am-local-page .page-empty {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/eHKXaGEOdWABrhOSwwWf.png\");\n background-size: 45px 77px;\n}\n.am-local-page .page-error {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/FNXCltKToIboiMnxqxzv.png\");\n background-size: 88px 42px;\n}\n.am-local-page .page-network {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/aarIJKkaawUZsGHEDsyv.png\");\n background-size: 78px 73px;\n}\n.am-local-page .page-busy {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/vuIYcaowFdPnBVbqZHrn.png\");\n background-size: 57px 86px;\n}\n.am-local-page .page-logoff {\n background-image: url(\"https://gw.alipayobjects.com/zos/rmsportal/ZlXHUijnungMocFNdJwX.png\");\n background-size: 59px 81px;\n}\n","module/page-result-new/index.axml":"<view class=\"am-page-result {{className}} {{local ? 'am-local-page': ''}}\">\n <view class=\"am-page-result-pic page-{{type}}\" />\n <view class=\"am-page-result-title\" a:if=\"{{!local && title}}\">{{title}}</view>\n <view class=\"am-page-result-brief\" a:if=\"{{brief}}\">{{brief}}</view>\n <view class=\"am-page-result-option\" a:if=\"{{option}}\" onTap=\"onOption\">{{option}}</view>\n <view class=\"am-page-result-Two\" a:if=\"{{optionTwo}}\" onTap=\"onOptionTwo\">{{onOptionTwo}}</view>\n</view>\n","module/page-result-new/index.js":"Component({\n props: {\n className: '',\n type: 'network',\n local: false,\n onOption: () => {},\n },\n methods: {\n onOption() {\n this.props.onOption();\n },\n onOptionTwo() {\n this.props.onOption();\n },\n },\n});\n","module/page-result-new/index.json":"{\n \"component\": true\n}\n","module/page-result/index.acss":".am-page-result {\n background: #fff;\n height: 100vh;\n overflow: hidden;\n}\n.am-page-result-pic {\n width: 220px;\n height: 220px;\n margin: 22px auto 0;\n background-position: center bottom;\n background-repeat: no-repeat;\n background-size: contain;\n}\n.am-page-result-title {\n margin: 25px auto 0;\n text-align: center;\n font-size: 20px;\n color: #333;\n}\n.am-page-result-brief {\n margin: 16px auto;\n font-size: 14px;\n color: #888;\n max-width: 266px;\n text-align: center;\n}\n.am-page-result .page-network {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-network.png);\n}\n.am-page-result .page-error {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-busy.png);\n}\n.am-page-result .page-busy {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-excption.png);\n}\n.am-page-result .page-empty {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-not-found.png);\n}\n.am-page-result .page-logoff {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-logout.png);\n}\n.am-local-page {\n height: 100%;\n}\n.am-local-page .am-page-result-pic {\n width: 90px;\n height: 90px;\n margin: 24px auto 0;\n background-size: contain;\n}\n.am-local-page .am-page-result-brief {\n margin-bottom: 30px;\n font-size: 14px;\n color: #999;\n max-width: 266px;\n text-align: center;\n}\n.am-local-page .page-empty {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-not-found-sm.png);\n}\n.am-local-page .page-error {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-busy-sm.png);\n}\n.am-local-page .page-network {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-network-sm.png);\n}\n.am-local-page .page-busy {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-excption-sm.png);\n}\n.am-local-page .page-logoff {\n background-image: url(https://gw.alipayobjects.com/as/g/antui/antui-static/1.0.3/i/error-logout-sm.png);\n}\n","module/page-result/index.axml":"<view class=\"am-page-result {{className}} {{local ? 'am-local-page': ''}}\">\n <view class=\"am-page-result-pic page-{{type}}\" />\n <view class=\"am-page-result-title\" a:if=\"{{!local && title}}\">{{title}}</view>\n <view class=\"am-page-result-brief\" a:if=\"{{brief}}\">{{brief}}</view>\n <slot></slot>\n</view>\n","module/page-result/index.js":"Component({\n props: {\n className: '',\n type: 'network',\n local: false,\n },\n});\n","module/page-result/index.json":"{\n \"component\": true\n}\n","module/personal-center-header/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.pcHeader {\n display: flex;\n justify-content: space-around;\n align-items: center;\n height: 180rpx;\n background-image: url(https://gw.alipayobjects.com/zos/rmsportal/QRnuxNyyhceIHzgjPdmS.png);\n background-size: 100% 180rpx;\n background-repeat: no-repeat;\n color: #FFFFFF;\n}\n.pcHeader .fuel {\n text-align: center;\n}\n.pcHeader .fuel .number {\n font-family: HelveticaNeue;\n font-size: 48rpx;\n letter-spacing: 0;\n}\n.pcHeader .fuel .smallFont {\n font-family: HelveticaNeue;\n letter-spacing: 0;\n font-size: 40rpx;\n}\n.pcHeader .fuel .words {\n opacity: 0.5;\n font-family: PingFangSC-Regular;\n font-size: 26rpx;\n line-height: 32rpx;\n margin-top: 9rpx;\n}\n","module/personal-center-header/index.axml":"<view class=\"pcHeader\">\n <view class=\"fuel\">\n <view class=\"{{payInfo.totalAmount && payInfo.totalAmount.amount < 10000 ? 'number' : 'smallFont'}}\">{{payInfo.totalCount || '0'}}</view>\n <view class=\"words\">加油次数</view>\n </view>\n <view class=\"fuel\">\n <view class=\"{{payInfo.totalAmount && payInfo.totalAmount.amount < 10000 ? 'number' : 'smallFont'}}\">{{payInfo.totalAmount && payInfo.totalAmount.amount.toFixed(2) || '0.00'}}</view>\n <view class=\"words\">消费金额(元)</view>\n </view>\n <view class=\"fuel\">\n <view class=\"{{payInfo.totalAmount && payInfo.totalAmount.amount < 10000 ? 'number' : 'smallFont'}}\">{{payInfo.totalDisAmount && payInfo.totalDisAmount.amount.toFixed(2) || '0.00'}}</view>\n <view class=\"words\">累计节省(元)</view>\n </view>\n</view>","module/personal-center-header/index.js":"/**\n * 个人中心顶部组件\n */\nimport { connect } from 'herculex';\n\nComponent(connect({\n mapStateToProps: ['payInfo'],\n})({\n data: {\n },\n props: {\n },\n methods: {\n },\n}));\n","module/personal-center-header/index.json":"{\n \"component\": true,\n \"usingComponents\":{\n }\n}","module/personal-center-list/helper.sjs":"export default {\n transDate: function(timestamp) {\n timestamp = parseInt(timestamp)\n const date = getDate(timestamp);\n const Y = date.getFullYear() + '-';\n const M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';\n const D = (date.getDate() < 10 ? '0'+(date.getDate()) : date.getDate()) + ' ';\n const h = (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours()) + ':';\n const m = (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes());\n return Y+M+D+h+m;\n },\n transOilType: function(oilType) {\n if (oilType.indexOf('#') > -1) {\n const arr = oilType.split('#');\n return arr[1] + arr[0] + '#';\n }\n return oilType;\n }\n}","module/personal-center-list/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.footerQuestion {\n position: sticky;\n top: 100vh;\n background-color: #FFFFFF;\n font-family: PingFangSC-Regular;\n font-size: 32rpx;\n height: 125rpx;\n line-height: 125rpx;\n color: #108EE9;\n letter-spacing: 0.58px;\n text-align: center;\n}\n.am-list-line-bottom {\n border-bottom: 2rpx solid #eeeeee;\n}\n.am-list-item {\n height: 156rpx;\n}\n.am-list-item .am-list-content {\n line-height: 1;\n}\n.am-list-item .am-list-content .line {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n font-family: PingFangSC-Medium;\n color: #151515;\n}\n.am-list-item .am-list-content .line .fuelName {\n font-family: PingFangSC-Regular;\n font-size: 32rpx;\n line-height: 45rpx;\n text-align: left;\n}\n.am-list-item .am-list-content .line .oilDiscount {\n display: inline-block;\n height: 40rpx;\n border: 2rpx solid #FFE1D9;\n border-radius: 4rpx;\n font-family: PingFangSC-Regular;\n}\n.am-list-item .am-list-content .line .oilDiscount .oilType {\n font-size: 24rpx;\n line-height: 40rpx;\n color: #999999;\n border-right: 2rpx solid #FFE1D9;\n padding: 4rpx 8rpx 2rpx;\n}\n.am-list-item .am-list-content .line .oilDiscount .discount {\n font-size: 24rpx;\n line-height: 40rpx;\n color: #FF663F;\n background-color: #FFF8F6;\n padding: 4rpx 8rpx 0 8rpx;\n}\n.am-list-item .am-list-content .line .moneySign {\n margin-left: 8rpx;\n font-size: 24rpx;\n letter-spacing: 0.55rpx;\n line-height: 30rpx;\n vertical-align: bottom;\n}\n.am-list-item .am-list-content .line .moneyNum {\n color: #333333;\n font-size: 40rpx;\n line-height: 56rpx;\n letter-spacing: 0.55rpx;\n line-height: 33rpx;\n vertical-align: middle;\n}\n.am-list-item .am-list-content .line2 {\n font-family: PingFangSC-Regular;\n color: #999999;\n margin-top: 16rpx;\n}\n.am-list-item .am-list-content .line2 .fuelType {\n font-size: 28rpx;\n letter-spacing: 0.58rpx;\n}\n.am-list-item .am-list-content .line2 .fuelTime {\n font-size: 24rpx;\n line-height: 28rpx;\n letter-spacing: 0.5rpx;\n}\n.am-list-item .am-list-content .line2 .payStatusSuccess {\n font-size: 24rpx;\n line-height: 33rpx;\n letter-spacing: 0.58rpx;\n}\n.am-list-item .am-list-content .line2 .payStatusSuccess .origionPrice {\n margin-left: 16rpx;\n text-decoration: line-through;\n}\n.am-list-item .am-list-content .line2 .payStatusFail {\n font-family: PingFangSC-Medium;\n font-size: 28rpx;\n color: #F15A4A;\n letter-spacing: 0.58rpx;\n}\n","module/personal-center-list/index.axml":"<import-sjs name=\"helper\" from=\"./helper.sjs\"/>\n<view class=\"list-wrapper\">\n <list>\n <block a:for=\"{{payRecords}}\">\n <list-item\n key=\"{{item.payDate}}\"\n last=\"{{index === (payRecords.length - 1)}}\"\n >\n <view class=\"itemContainer\">\n <view class=\"line\">\n <text class=\"fuelName\">{{item.stationName}}</text>\n <text>\n <text class=\"oilDiscount\">\n <text class=\"oilType\">{{item.oilType}}</text>\n <text class=\"discount\">省</text>\n </text>\n <text class=\"moneySign\">¥</text>\n <text class=\"moneyNum\">{{item.pocketAmount.amount.toFixed(2)}}</text>\n </view>\n </view>\n <view class=\"line line2\">\n <text>\n <text class=\"fuelTime\">{{ helper.transDate(item.payDate) }}</text>\n </text>\n <text class=\"payStatusSuccess\">\n <text>实付:¥{{ item.payAmount.amount }}</text>\n <text class=\"origionPrice\">原价:¥{{ item.oilAmount.amount }}</text>\n </text>\n </view>\n </view>\n </list-item>\n </block>\n </list>\n <view a:if=\"{{ listComplete }}\" class=\"footerQuestion\" onTap=\"onFooterQuestion\">常见问题</view>\n</view>","module/personal-center-list/index.js":"/**\n * 个人中心列表组件\n */\nimport { connect } from 'herculex';\nimport { OIL_MAP } from '../../common/constant';\n\nComponent(connect({\n mapStateToProps: ['payRecords', 'listComplete'],\n})({\n data: {\n oilMap: OIL_MAP,\n },\n methods: {\n onFooterQuestion() {\n my.alert({\n content: '点击了常见问题',\n buttonText: '我知道了',\n });\n },\n },\n}));\n","module/personal-center-list/index.json":"{\n \"component\": true,\n \"usingComponents\": {\n \"list\":\"../list/index\",\n \"list-item\":\"../list/list-item/index\"\n }\n}","module/pull-up-load/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.pullUpLoad {\n border-top: 2rpx solid #eeeeee;\n width: 100%;\n height: 112rpx;\n line-height: 112rpx;\n position: sticky;\n bottom: 0;\n z-index: 100;\n text-align: center;\n}\n.am-loading-indicator {\n margin: 0 auto;\n padding: 0;\n display: inline-block;\n font-size: 0;\n line-height: 1px;\n}\n.am-loading-bar .am-loading-item,\n.am-loading-indicator .am-loading-item {\n width: 10px;\n height: 10px;\n margin: 0;\n}\n.am-loading-bar .am-loading-item:before,\n.am-loading-indicator .am-loading-item:before {\n content: ' ';\n position: absolute;\n top: 50%;\n left: 50%;\n margin-left: -6.38px;\n margin-top: -9.56px;\n width: 12.75px;\n height: 19.13px;\n -webkit-transform: skew(-0.46rad) scale(0.5);\n -webkit-transform-origin: center center;\n border-radius: 1px 2px 2px 3px;\n}\n.am-loading-bar.tiny .am-loading-item,\n.am-loading-indicator.tiny .am-loading-item {\n width: 9px;\n height: 9px;\n margin: 0;\n position: relative;\n}\n.am-loading-bar.tiny .am-loading-item:before,\n.am-loading-indicator.tiny .am-loading-item:before {\n content: ' ';\n position: absolute;\n top: 50%;\n left: 50%;\n margin-left: -5.67px;\n margin-top: -8.5px;\n width: 11.33px;\n height: 17px;\n -webkit-transform: skew(-0.46rad) scale(0.5);\n -webkit-transform-origin: center center;\n border-radius: 1px 2px 2px 3px;\n}\n.am-loading-bar .am-loading-item:before,\n.am-loading-bar.blue .am-loading-item:before,\n.am-loading-indicator .am-loading-item:before,\n.am-loading-indicator.blue .am-loading-item:before {\n background-color: #108ee9;\n}\n.am-loading-bar.white .am-loading-item:before,\n.am-loading-indicator.white .am-loading-item:before {\n background-color: #FFF !important;\n}\n.am-loading-bar .am-loading-item,\n.am-loading-indicator .am-loading-item {\n display: inline-block;\n position: relative;\n -webkit-transform: scale(0);\n opacity: 0;\n -webkit-animation: AULoadingScaleColorBoth 0.766s cubic-bezier(0.42, 0, 0.58, 1) infinite alternate;\n animation: AULoadingScaleColorBoth 0.766s cubic-bezier(0.42, 0, 0.58, 1) infinite alternate;\n}\n.am-loading-bar .am-loading-item:nth-child(1),\n.am-loading-indicator .am-loading-item:nth-child(1) {\n -webkit-animation-delay: -2.2s;\n animation-delay: -2.2s;\n}\n.am-loading-bar .am-loading-item:nth-child(2),\n.am-loading-indicator .am-loading-item:nth-child(2) {\n -webkit-animation-delay: -1.966s;\n animation-delay: -1.966s;\n}\n.am-loading-bar .am-loading-item:nth-child(3),\n.am-loading-indicator .am-loading-item:nth-child(3) {\n -webkit-animation-delay: -1.666s;\n animation-delay: -1.666s;\n}\n.am-loading {\n text-align: center;\n color: #888;\n font-size: 12px;\n min-height: 22px;\n}\n.am-loading .am-icon {\n display: inline-block;\n -webkit-animation: rotate linear 1s infinite;\n animation: rotate linear 1s infinite;\n width: 22px;\n height: 22px;\n vertical-align: middle;\n}\n.am-loading .am-icon:before {\n content: '';\n display: block;\n width: 100%;\n height: 100%;\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAYFBMVEVMaXHu7u7Q0NDNzs7MzMzNzc2Su97MzMzMzMzMzMzQ0NDMzMzMzMzMzMzMzMzNzc3Mzc7MzMzMzMyEtNdZpt/Mzc21xNARjukek+ctmOaGttgnluc3m+MXkeshlOeivtOX9Y8kAAAAIHRSTlMABRs7VWYRrfL/Kfqd5ceSdrnP/+98/v/kzM2N/03JrWu3qrEAAAErSURBVHgBpZVVksNQDAQfy222N4z3P2WYUamd764pscyTrPMhxuCdNV+UgmQcRSYhfUBzKbhTIfkb1JVHtKqlaaSujnjpXrHxgNbtxStv6wMen9NqACR/jAugsQ+JdUDvzZN8D3TpznfPystaWYG/wS3dAEPzRsPReDy50vETu6PH4/H0UrMCxHzQbEfPzVEl9PYTbAc7+hhIXoA3H+UXZ2v5EsQxkKN1KiD/Bucn6wC1MQrryTGK9jvcHuKwmSKKYxxL46AyCg32QXtNyMegVyaAqOEIjQZe78rxG6wM4whrE6wH47m6dBU4dVMgs+p2g6gHqYagHlEoknb4j4xyraDItQvbQ6k9BQKF0x4ZIGrPF9DoDyOd/f3k6o+5/k3oH5D+tf3/aWre8RaPERYiltEshwAAAABJRU5ErkJggg==\") no-repeat;\n background-size: 100% auto;\n}\n.am-loading.am-loading-nomore .am-icon,\n.am-loading.am-loading-nomore .load-list,\n.am-loading.hidden {\n display: none;\n}\n.am-loading .am-loading-text {\n vertical-align: -2px;\n}\n.am-loading.page {\n margin-top: 30px;\n font-size: 15px;\n}\n.am-loading.page .am-icon {\n -webkit-animation: none;\n animation: none;\n width: 100px;\n height: 105px;\n}\n.am-loading.page .am-icon:before {\n background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADSBAMAAAD9O5JQAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAwUExURUxpcer0/6Glqbe7wMPL0Ov1/8rP1b7Fy9rj7I+Slo6Rlev1/+v0//7+/o+SluPk5a4qOP8AAAANdFJOUwDc+/UXqvA/4nzHc8NrZU7sAAAJtElEQVR42u1cTWgUSRSehYQhqwQ6s4mBSCAGZC9pSQLBy44jKLIqwYDiwb1EIXgxJqAsqyLMevEUcliQ5BA8CIs5DBtY8eLBAZc9eEsgt3G0W8YY2Cd48DZx+7+q66frVds9LLLvYiTd8/Wr79X7+aonhYKGFVdWbhRytlvg2OMOYAC8zxOjB2D38UoN4FF+GF01eF9x/l0FWMgNZBp2K94Pa/AuN0cAloMQy8+Vb8nzn4aHOYGskcfvquUFUqMit1jJB6MIbwu5W09uPMR4X+gEiJCHX1YeZMhPL4iIqnkZs5LdfpdhgJ9tcvLESWawvrJayw5FAHIa4DcXazWz7M8T7zjyKKozlZxC+Fvy/Ld2s/JkWZ7MCgtZ7fhlNs9kX4aLbFrpzSPPsAlybTeHvFJjVieXpuWu/+SnVla8dJVPVu51gqm4GiSS9Qe9XLRlE16PVoG2nLoV10YnpyYnzWyTL7Efnc+1rrcbnn2eyDL5xjCONYg1y9mjOH2wda0Rs8tZt95OebLaDcY+AvyebWfHY3goGcaxU56uNQQ2H/bgmSRH+KEhtHJ2Df4atMQYje3MFqxHSEhIy/usHBlrSM3MxhXHETlGYzMbV+7KWA9dWcgitJIccV3JIMCmkxjxXMlgr9QgGaOx9+U1sgc+KECaX079tDihxLd9uvW6XTcCMy0VhkP9SHj1S41IOxneZAwoV8tdr1Z0fT/aqWJ0jzGcvEmC9bLIDX9jQc6Se+ZBjdF4BbPRDQexrswQEGn+jefiEXLHH8jmx6Ao+QcB0qBIMb7TpqRPHcBehaRIOYAD2UfuWMJQ4pJSjW4Z0gYp2yiQLRj/AhDELvF3ypv0IAOqDBwxv5MepITZit52tHWJL1LB1caB7Fm6IVyok6SCw3DCKwI5hwRZjJKKhQTZJIkFm4f3aUYwHcND6FS/EYK0kCDbEQi+oHQ9CyrWByRIM0iRB//UKY0nPMOlRw/krXdDmjqMBmnA6/QDb0dAxtAgWtJ0cTkViKkFMk1L8nmB3IUOeELLgLlxQktM+tHVU0FG1Lsv2CdrSIdo2U9jx/sgNSTINNWj1/C566G/DK/1mV/DZ+FloeQqnxGJy2v4erIsFI9jbD8hXZBhkqaArYzNa8mVsY/qvI2X8Ujr2qAwnEbekNX4TZk0EdT4YaqTZGeVszSG8zjjsm5lM2z22uJuZQlin0R3R8V67FcDpB1k+64mwBFPGrTEfRfVfrFjRNwRmhSug/wIYE1NAKcfBB2k2TJkrswwIBQpXC9c9oXbI8JeeJBqiX2rCPprjhSuJ3JFVLCOiTuiEj1xxTu9/SzIAGmfBfPJp7nrbcl8Eovg+HotsiDO7J5u0opHcKzV2+BAlqIn0psZ6VE7mIVlvMfW1tSZftngopjnfuFEiZ1mjh/ggot0rTyI89HVFIoEFZUYkL5ovXS0lSWO90QQar00VCKedwJSF6CUo4dawuhdVf/Jdgwp8TOJ61VCKHc2cw9l8n3iPlXkuqnWIEeYaKFKSghy3BDG13gUXyo1FbiKyu/4bhFIKRJ+BpW68E5wB79LjBcCUYjOX5Hz8yqFezaIEH6XUFVLRIrxaxQrJYVW32KzqoASQUHxVylypZx86jAePMpOwmrJXFmiXUk4P7HDRZ3lHakUFK4MAMVKwknQbHC1ncSIa2fErrQInvRMqxVezO/Ei2xv+uSCZ/U4K+NRFMhO56xqGOfUTjzoftQl6QuTxZlYgFmEe8k54zhLIEa17Y7vlWjBTPGJ6WGOP5TIPRPb9vA9+VFw9mtHju4I0rvcjsczGByNwoA/xbar3LrixKh9TF0JV8Q754+fx4cYzmLRoYXQB+OZbND5bPuqX1a2zfibBYfJNbawa0QJ9SEKWKOTZSeGm5epNySso8Rba9bQiC1ByR+cCD7UI2LCDDGi35eBSb8pQAzjnvfBYRH+/Glu7nN7D0hsRxGIB+kSJJj7c1eYRByqp1cobjRAxCWMbby9WWHwiinAMJ6rQbolILH93pyE0YlDHjlHuWsROvqiEIQZgzfDGBudTSyHMkrqGiCjV4UXK0k5K7yNm7g+gT1335CYKq+ckdzHqgZNUbcorVbhMexPRqKxqkEyCG1/PQ0xbqouFYYw0i4mNBJMVzEmO8pQmxcIXTPqC5nefg/wGH5n1I24kJmFTB1PvOS/ob6sFG9XtkDUZhkJMV1EXFaG2Ho5ZVmDebfqI1bL6Q9NKoi3wd6CltZ6LaovcqaHTbCpvnGsYQrmKqkdQFDizUFmpD9ddv+7KZp55KTMIGgf88g+7K6YW+ndzliH+v5CXXnNksfHvNdRTISleE9jvQ4WEJvEjmLKtRaRCO5dxaEUELEVhO8VD+NYmCN3jMuAdEcN0hdNJ81PTqdCFFRnokDSr+ZkWHyWved2qqaN40QZXZJj5ldubpkHXHQp94nkmPmV28v3oTLlkHrHi0+Am6bLRwlVIg/wkq2ilhBKRkR6s8ieq7OwUFFtBpFltlBZWMX8oBBkEz54IGUbwzv9NpcERKR6bFltD2TeUoOcl3eNyZ402g0PZFi95/23sU6m4CQ8akDE8Hm/J7qTIrqCBq+krMPRWH97RnufBOL5gGKj9D+l2/kTxO6gdrzfRcY3Sv+NE3GrYOcHae7yKI+JEdjXb/hJSJqFyVFDyWKOlxD2jaSeSE/kAk24XwODSWfiQ4FmsE7ubgy16qFCak/CGi8+BnAPMEPdTsuTRVG3wlFSDQ+yiPKqwQmbZ0qi7BX2Xc6Wn48iDB1dXaeeiTpIbrXehE8wRXqW/p9xvtyuC3thXnQmaldsq2De5r0p6epl6rkLYlWlkjNCuKPmkyNsgY/yIrDZSyl0bkgnrXZcECYFkS/AC2k0Io8VWrL9CFQVuVfVlHCOy8sjhfKRE9Ikh7Faq+WrqcEJuSfWIiZ3HdkuJMX2FM+pyUOUWCvvs/Rjyz/YvhcpqSqMZFLkIG6aDYRV6yhmcNfVBslh0uDc5BRmthrC1xHhawDIQTQNiGkZmYF0S6fGnfxB+rSUFAUn+6RJxcgORJa6tIQn5RFKXRLAb/RAzqXIXcN6AazK9fszoaQ/jYpualLyQlEZ7wh3iR4lyu+5iFwpae6S8+ojwLqA96oOxkvMe5DBWTOxsnUBb5eepvw+Y65/9CZ8Q/VdB0DSv2mu8056R0AefiWeFKIXrnsW8gNZC96FLtZyBJn2v3pZrEGOy1UEeHzj1CrAbp6knA7a01xBHFZcq+WcXlbW1x8vdCSHfT0gHcnGXw/I/9H13wO5u9sBkGnoAEhvRn8RKtF6cvnbOlzx6gBIIT3Gv/WmmmpWUm0HAAAAAElFTkSuQmCC\") no-repeat;\n background-size: 100% auto;\n}\n.am-loading.page .am-loading-text {\n padding: 8px 0 0;\n font-size: 12px;\n}\n.am-loading.am-loading-refresh .am-loading-text {\n padding: 8px 0 0;\n}\n.am-loading.am-loading-nomore {\n padding-top: 30px;\n}\n.am-loading.am-loading-nomore .am-loading-text {\n color: #ccc;\n font-size: 13px;\n position: relative;\n padding: 0 12px;\n}\n.am-loading.am-loading-nomore .am-loading-text:after,\n.am-loading.am-loading-nomore .am-loading-text:before {\n content: \" \";\n position: absolute;\n top: 50%;\n width: 40px;\n height: 1px;\n background: -webkit-linear-gradient(-90deg, #ddd, #ddd 33%, transparent 33%) top left no-repeat;\n background-size: 100% 1px;\n}\n.am-loading.am-loading-nomore .am-loading-text:after {\n right: 0;\n -webkit-transform: translateX(100%);\n}\n.am-loading.am-loading-nomore .am-loading-text:before {\n left: 0;\n -webkit-transform: translateX(-100%);\n}\n@-webkit-keyframes rotate {\n 0% {\n -webkit-transform: rotate(0);\n transform: rotate(0);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n@-webkit-keyframes AULoadingScaleColorBoth {\n 0% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n 34.7826087% {\n -webkit-transform: scale(0.12);\n opacity: 0.001;\n }\n 100% {\n -webkit-transform: scale(1);\n opacity: 1;\n }\n}\n","module/pull-up-load/index.axml":"<view class=\"pullUpLoad am-loading\">\n <view class=\"am-loading-indicator\" aria-hidden=\"true\">\n <view class=\"am-loading-item\"></view>\n <view class=\"am-loading-item\"></view>\n <view class=\"am-loading-item\"></view>\n </view>\n</view>","module/pull-up-load/index.js":"/**\n * 个人中心列表组件\n */\nimport { connect } from 'herculex';\n\nComponent(connect({\n mapStateToProps: [],\n})({\n data: {\n },\n props: {\n },\n methods: {\n },\n}));\n","module/pull-up-load/index.json":"{\n \"component\": true,\n \"usingComponents\": {\n }\n}","module/search-bar/index.acss":".am-search {\n height: 44px;\n display: flex;\n align-items: center;\n padding: 0 0 0 12px;\n background: #fff;\n overflow: hidden;\n}\n.am-search-input {\n display: flex;\n position: relative;\n height: 28px;\n line-height: 28px;\n flex: 1;\n background: rgba(0, 0, 0, 0.05);\n border-radius: 2px;\n}\n.am-search-synthetic {\n display: flex;\n position: absolute;\n left: 0;\n top: 0;\n height: 28px;\n line-height: 28px;\n padding-left: 14px;\n}\n.am-search-synthetic-placeholder {\n font-size: 14px;\n color: #999;\n}\n.am-search-synthetic-icon {\n height: 14px;\n width: 14px;\n display: inline-block;\n background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjhweCIgaGVpZ2h0PSIyOHB4IiB2aWV3Qm94PSIwIDAgMjggMjgiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQ5LjMgKDUxMTY3KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5TaGFwZTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSLnu4Tku7blupPlj4rmoIfms6giIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLlhbbku5YiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0zMDUzLjAwMDAwMCwgLTgwMi4wMDAwMDApIiBmaWxsPSIjQjJCMkIyIj4KICAgICAgICAgICAgPGcgaWQ9IuaQnOe0ouWFpeWPoyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMjk5My4wMDAwMDAsIDczMi4wMDAwMDApIj4KICAgICAgICAgICAgICAgIDxnIGlkPSJpb3M25bqU55So5Lit5b+D5a+86IiqIj4KICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPSJNODYuMDc4NDMwOCw5OCBMNzkuNDkwMTk1Niw5MC45MjE0MzUyIEM3Ny41MTU1MTcyLDkyLjQ2MTY5OTYgNzQuNDEyMzk5OCw5My45NzQ0NzcxIDcxLjczNzAyMTQsOTMuOTc0NDc3MSBDNjUuMjU0ODk0LDkzLjk3NDQ3NzEgNjAsODguNjA3NTY1OCA2MCw4MS45ODczNTg2IEM2MCw3NS4zNjcxNTE0IDY1LjI1NDg5NCw3MCA3MS43MzcwMjE0LDcwIEM3OC4yMTg2NzQzLDcwIDgzLjQ3MzU2ODIsNzUuMzY2NjcxMiA4My40NzM1NjgyLDgxLjk4NzExODUgQzgzLjQ3MzU2ODIsODQuNTk3NjkxMyA4Mi42NDc1ODIyLDg3LjAwNjU0NTcgODEuMjU5OTQ0Nyw4OC45NzQ1MDEzIEw4OCw5NS44MzcwMTA3IEw4Ni4wNzg0MzA4LDk4IFogTTcxLjczNzA1MjgsNzIuNTA2MTAzNyBDNjYuNjA5NDg0NCw3Mi41MDYxMDM3IDYyLjQ1MjgyNjgsNzYuNzUwNjY3MSA2Mi40NTI4MjY4LDgxLjk4NzEwNzkgQzYyLjQ1MjgyNjgsODcuMjIzNTQ4NyA2Ni42MDkyMzY3LDkxLjQ2ODYxMzYgNzEuNzM3MDUyOCw5MS40Njg2MTM2IEM3Ni44NjMzODI0LDkxLjQ2ODYxMzYgODEuMDE5NzkyMyw4Ny4yMjM1NDg3IDgxLjAxOTc5MjMsODEuOTg3MTA3OSBDODEuMDE5NzkyMyw3Ni43NTA2NjcxIDc2Ljg2MzM4MjQsNzIuNTA2MTAzNyA3MS43MzcwNTI4LDcyLjUwNjEwMzcgTDcxLjczNzA1MjgsNzIuNTA2MTAzNyBaIiBpZD0iU2hhcGUiPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+);\n background-size: contain;\n margin-right: 6px;\n vertical-align: -2px;\n}\n.am-search-value {\n flex: 1;\n height: 28px;\n font-size: 14px;\n padding: 0 0 0 34px;\n background: 0 0;\n box-sizing: border-box;\n}\n.am-search-clear {\n position: relative;\n visibility: hidden;\n width: 28px;\n height: 28px;\n}\n.am-search-clear icon {\n display: flex;\n height: 100%;\n justify-content: center;\n align-items: center;\n}\n.am-search-clear-show {\n visibility: visible;\n}\n.am-search-cancel {\n margin-right: -48px;\n opacity: 0;\n color: #108ee9;\n font-size: 16px;\n width: 64px;\n height: 28px;\n line-height: 28px;\n text-align: center;\n}\n.am-search-anim {\n transition: margin-right 0.3s, opacity 0.3s;\n}\n.am-search-repos {\n margin-right: 0;\n opacity: 1;\n}\n","module/search-bar/index.axml":"<view class=\"am-search {{className}}\">\n <view class=\"am-search-input\">\n <view class=\"am-search-synthetic\">\n <view>\n <view class=\"am-search-synthetic-icon\"></view>\n <text class=\"am-search-synthetic-placeholder\" style=\"{{ visibility: !focus && _value.length === 0 ? 'visible': 'hidden'}}\">{{placeholder}}</text>\n </view>\n </view>\n <input\n enableNative=\"{{false}}\"\n class=\"am-search-value\"\n confirm-type=\"search\"\n value=\"{{_value}}\"\n focus=\"{{focus}}\"\n maxlength=\"{{maxLength}}\"\n disabled=\"{{disabled}}\"\n onInput=\"handleInput\"\n onFocus=\"handleFocus\"\n onConfirm=\"handleConfirm\"\n sync-input=\"{{true}}\"\n onBlur=\"handleBlur\" />\n <view class=\"am-search-clear {{ _value.length > 0 && focus ? 'am-search-clear-show' : '' }}\" onTap=\"handleClear\">\n <icon type=\"clear\" size=\"14\" />\n </view>\n </view>\n <view\n class=\"am-search-cancel am-search-anim {{ focus || showCancelButton ? 'am-search-repos' : '' }}\"\n onTap=\"handleCancel\">取消</view>\n</view>\n","module/search-bar/index.js":"Component({\n props: {\n className: '',\n placeholder: '',\n focus: false,\n },\n data: {\n _value: '',\n focus: false,\n },\n didMount: function didMount() {\n this.setData({\n _value: 'value' in this.props ? this.props.value : '',\n focus: this.props.focus,\n });\n },\n didUpdate: function didUpdate() {\n if ('value' in this.props && this.props.value !== this.data._value) {\n this.setData({\n _value: this.props.value,\n });\n }\n },\n methods: {\n handleInput: function handleInput(e) {\n const { value } = e.detail;\n\n if (!('value' in this.props)) {\n this.setData({\n _value: value,\n });\n }\n\n if (this.props.onInput) {\n this.props.onInput(value);\n }\n },\n handleClear: function handleClear() {\n const _this = this;\n\n // this.setData({\n // focus: true,\n // });\n setTimeout(() => {\n _this.handleFocus();\n }, 100);\n\n if (!('value' in this.props)) {\n this.setData({\n _value: '',\n });\n }\n\n this.doClear();\n },\n doClear: function doClear() {\n if (this.props.onClear) {\n this.props.onClear('');\n }\n\n if (this.props.onChange) {\n this.props.onChange('');\n }\n },\n handleFocus: function handleFocus() {\n this.setData({\n focus: true,\n });\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n },\n handleBlur: function handleBlur() {\n this.setData({\n focus: false,\n });\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n },\n handleCancel: function handleCancel() {\n if (!('value' in this.props)) {\n this.setData({\n _value: '',\n });\n }\n\n if (this.props.onCancel) {\n this.props.onCancel();\n } else {\n this.doClear();\n }\n },\n handleConfirm: function handleConfirm(e) {\n const { value } = e.detail;\n\n if (this.props.onSubmit) {\n this.props.onSubmit(value);\n }\n },\n },\n});\n","module/search-bar/index.json":"{\n \"component\": true\n}\n","module/search-panel/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.search-panel {\n padding-top: 8rpx;\n box-sizing: border-box;\n position: relative;\n width: 100%;\n height: 100%;\n min-height: 100vh;\n z-index: 10000;\n background-color: #fff;\n}\n.search .am-page-result {\n height: 100%;\n}\n.search-bar-wrapper {\n position: sticky;\n top: 0;\n z-index: 100;\n width: 100%;\n height: 70rpx;\n line-height: 70rpx;\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.search-bar-input {\n flex: 1;\n caret-color: #108EE9;\n}\n.search-bar-input .am-search-cancel {\n color: #333;\n}\n.search-history-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 56rpx 0 32rpx 0;\n}\n.search-history-header text {\n font-family: PingFangSC-Medium;\n padding-left: 32rpx;\n font-size: 36rpx;\n line-height: 50rpx;\n color: #333;\n}\n.search-history-header .img {\n height: 100%;\n padding: 0 32rpx;\n}\n.search-history-header .img image {\n width: 32rpx;\n height: 32rpx;\n}\n.search-history-list {\n padding: 0 20rpx;\n height: 160rpx;\n overflow: hidden;\n box-sizing: border-box;\n}\n.search-history-list .item-wrap {\n padding: 0 12rpx;\n max-width: 250rpx;\n float: left;\n box-sizing: border-box;\n overflow: hidden;\n margin-bottom: 24rpx;\n}\n.search-history-list .item {\n font-size: 28rpx;\n color: #333;\n height: 64rpx;\n line-height: 64rpx;\n background: #f5f5f5;\n text-align: center;\n padding: 0 20rpx;\n box-sizing: border-box;\n border-radius: 4rpx;\n overflow: hidden;\n text-overflow: ellipsis;\n display: -webkit-box;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n}\n.search-drop-list {\n margin-left: 32rpx;\n}\n.search-drop-list .am-list-item {\n padding-left: 0;\n font-size: 32rpx;\n color: #000;\n line-height: 1;\n}\n.search-drop-list .am-list-item .am-list-line {\n padding-right: 32rpx;\n}\n","module/search-panel/index.axml":"<view class=\"search-panel\">\n <page-result-new\n a:if=\"{{ systemError }}\"\n type=\"busy\"\n title=\"系统繁忙,稍后再试\"\n brief=\"星辰沉睡时,我们仍在赶路\"\n option=\"刷新\"\n onOption=\"onOption\"\n >\n </page-result-new>\n <view a:else>\n <view class=\"search-bar-wrapper\">\n <view class=\"search-bar-input\">\n <search-bar\n value=\"{{value}}\"\n focus=\"{{focus}}\"\n disabled=\"{{false}}\"\n maxLength=\"{{20}}\"\n placeholder=\"请输入地址\"\n onInput=\"handleInput\"\n onClear=\"handleClear\"\n onFocus=\"handleFocus\"\n onCancel=\"handleCancel\"\n onSubmit=\"handleSubmit\"\n showCancelButton=\"{{true}}\"/>\n </view>\n </view>\n\n <!--搜索结果为空-->\n <page-result-new\n a:if=\"{{ !isLoading && !tempDropList.length && value }}\"\n type=\"empty\"\n title=\"什么都没有\"\n brief=\"前不见古人,后不见来者\"\n >\n </page-result-new>\n\n <!--索引-->\n <view class=\"search-drop-list\" a:if=\"{{tempDropList.length}}\">\n <list>\n <block a:for=\"{{tempDropList}}\">\n <list-item index=\"{{item}}\" onClick=\"handleDropItemClick\" data-longitude=\"{{item.longitude}}\" data-latitude=\"{{item.latitude}}\">\n {{item.name}}\n <view class=\"am-list-brief\">{{item.address}}</view>\n </list-item>\n </block>\n </list>\n </view>\n\n <!--搜索历史-->\n <view class=\"search-history\" a:if=\"{{searchHistoryList.length && !value}}\">\n <view class=\"search-history-header\">\n <text>搜索历史</text>\n <view class=\"img\" onTap=\"handleClearHistory\">\n <image src=\"https://gw.alipayobjects.com/zos/rmsportal/hkhozLHvpgWdtbeoWsgj.png\"></image>\n </view>\n </view>\n <view class=\"search-history-list\">\n <view class=\"item-wrap\" a:for=\"{{searchHistoryList}}\" catchTap=\"handleHistoryItemClick\" data-item=\"{{item}}\">\n <view class=\"item\">{{item.name}}</view>\n </view>\n </view>\n </view>\n </view>\n</view>\n","module/search-panel/index.js":"import { connect } from 'herculex';\nimport { clearSpecialSign } from '../../common/util';\n\nComponent(connect({\n mapStateToProps: ['dropList', 'searchHistoryList', 'isLoading', 'systemError'],\n})({\n props: {},\n data: {\n value: '',\n focus: true,\n tempDropList: [],\n },\n methods: {\n async handleInput(val) {\n const value = clearSpecialSign(val);\n this.setData({ value: val });\n this.setData({\n value,\n });\n if (value !== val) return;\n if (!value) return this.setData({ tempDropList: [] });\n const res = await this.dispatch('queryDropList', value);\n if (res.length === 0) this.setData({ focus: false });\n this.setData({ tempDropList: res });\n },\n handleFocus(e) {\n },\n handleClear(value) {\n this.setData({ value: '', tempDropList: [] });\n },\n handleCancel() {\n this.setData({ value: '', tempDropList: [] });\n my.navigateBack();\n },\n handleSubmit(value) {\n this.dispatch('queryDropList', value);\n },\n handleDropItemClick(ev) {\n const { index: { latitude, longitude } } = ev;\n const { index } = ev;\n this.updateCenterLocation(latitude, longitude);\n this.dispatch('SetSearchHistoryList', index);\n },\n async handleHistoryItemClick(ev) {\n const { currentTarget: { dataset: { item: { latitude, longitude } } } } = ev;\n this.updateCenterLocation(latitude, longitude);\n },\n async handleClearHistory(ev) {\n this.dispatch('removeHistory');\n },\n async updateCenterLocation(latitude, longitude) {\n this.commit('$global:updateState', {\n lbs: { latitude, longitude },\n loaction: { latitude, longitude },\n });\n my.navigateBack();\n },\n onOption() {\n this.handleInput(this.data.value);\n },\n },\n}));\n","module/search-panel/index.json":"{\n \"component\": true,\n \"usingComponents\":{\n \"search-bar\":\"../search-bar/index\",\n \"list\": \"../list/index\",\n \"list-item\": \"../list/list-item/index\",\n \"page-result-new\": \"../page-result-new/index\"\n }\n}\n","module/select-popup/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.popup-show {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 901;\n}\n.popup-show .popup-mask {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(0, 0, 0, 0.65);\n z-index: 902;\n}\n.popup-show .popup-modal {\n background-color: #fff;\n border-radius: 2px;\n width: 480rpx;\n position: absolute;\n left: 84rpx;\n top: 200rpx;\n padding: 80rpx 50rpx 50rpx 50rpx;\n z-index: 902;\n}\n.popup-show .popup-modal .popup-title {\n font-size: 36rpx;\n color: #333;\n text-align: center;\n padding-bottom: 85rpx;\n font-family: PingFangSC-Medium;\n letter-spacing: 0.58rpx;\n}\n.popup-show .popup-modal .petrol-wrapper {\n padding-bottom: 59rpx;\n}\n.popup-show .popup-modal .petrol-wrapper .petrol-item-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.popup-show .popup-modal .diesel-wrapper .petrol-item-wrapper {\n display: flex;\n align-items: center;\n justify-content: start;\n}\n.popup-show .popup-modal .title {\n color: #333;\n font-size: 32rpx;\n font-weight: 500;\n padding-bottom: 21rpx;\n font-family: PingFangSC-Medium;\n letter-spacing: 0.52rpx;\n text-align: left;\n}\n.popup-show .popup-modal .oil-item {\n width: 139rpx;\n height: 105rpx;\n border: 2rpx solid #eee;\n border-radius: 4rpx;\n color: #333;\n font-size: 48rpx;\n text-align: center;\n line-height: 105rpx;\n font-family: PingFangSC-Medium;\n}\n.popup-show .popup-modal .oil-item-selected {\n border: 2rpx solid #108ee9;\n background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAAsxJREFUWAnNmEtoE1EUhv+5HUp8NISKIogguunGhbpwKbhQxFIoRXHpWnTjRjcu3blSEXRhNrWUBkVFVJBiaXHhoojFSrFRq9EIrU0mnTxm8vSeMZNavDHzuE7mQLhwuZnznXMf56E0uKBLkjEamFuuYjFbRTJTs8blQh16pYGvuZpFpQbJZnCdU1/KmE6VMcN/8z9r6OSfQABffa9g/L2Bx4sm1sy6K5/8N8Ay99a9eQPXZwtY0n5vlyuy5mLpgLSN8bcl3Jgt4kfeO5htjFTA55/KuDSltw64rcTPKAUwpddx+aWOpx9NPyzC//oGfJI0cf6Fjpzh7vALaQSTngErnOfKdB633xQFn5U35QlQMxs48zCH1+myPJI2X3INmM7XMfJAw8Jqtc0n5U67Akxmaxi+r+Gb7v/5cGqG4jQWk+eOj2cDhSMjmBNL6MzRtgbpOZurIyDdVroQQZ05G8weOwLSUyLjtp47uAln90dsvY7Hf14SeoRlvHMEd/VIn3VEEgsmCjzfcyptPUjhiyKEX7Hh0jxxGEporuBId1tAiq1+w9efcIMTGj43s2Q3RgsBKSvxG/hlwAk9SPkcpUxO5OS+XuEyWXBCwLs82bQLFqH25uS1o1sxOhTDnRNR9Pasr5QJ9xcgpek3eSbsRGZSFZSqDZwaiODRSAz9EQWy4YhjQ6iLzxm4OLnmhM9ac2inijHuxR1bGFaKdWzfzEC31euFECneAHggvuq6wNndxzAxHMPANlU6HAG3bjGVhl6qL3ovBxNZTC6ZUj1ne7PlwQv8UR59V7LnQzNaHqSnhYrqMIoFSO0ItxV/UMZYgNQrCatYgNTICaswaoFRlymswqg/16kF1k149iETTPno1UhGpWSYhVH7NczCVnhPOKzCmAJGDeuwyp5oD5iT5LQbBihc6a1j0fVsphsQIp20rXtjKp6d7sfhXSp+Ae7rdk6PWx6nAAAAAElFTkSuQmCC) right bottom no-repeat;\n background-size: 40rpx 40rpx;\n}\n.popup-hide {\n display: none;\n}\n","module/select-popup/index.axml":"<view class=\"popup-{{show ? 'show' : 'hide'}}\">\n\t<view class=\"popup-mask\" onTap=\"onClosePopup\"/>\n\t<view class=\"popup-modal\">\n\t\t<view class=\"popup-title\">选择油号获取优惠推荐</view>\n <view class=\"petrol-wrapper\">\n <view class=\"title\">汽油</view>\n <view class=\"petrol-item-wrapper\">\n <block a:for=\"{{petrolList}}\">\n <view\n class=\"oil-item oil-item-{{selectedOilType === item.oilType ? 'selected' : ''}}\"\n data-type=\"{{item.oilType}}\"\n onTap=\"onSelect\"\n >\n {{item.oilType}}\n </view>\n </block>\n </view>\n </view>\n <view class=\"diesel-wrapper\">\n <view class=\"title\">汽油</view>\n <view class=\"diesel-item-wrapper\">\n <block a:for=\"{{dieselList}}\">\n <view\n class=\"oil-item oil-item-{{selectedOilType === item.oilType ? 'selected' : ''}}\"\n data-type=\"{{item.oilType}}\"\n onTap=\"onSelect\"\n >\n {{item.oilType}}\n </view>\n </block>\n </view>\n </view>\n\t</view>\n\t</view>\n</view>\n","module/select-popup/index.js":"/**\n * 选择油号弹出框\n */\nimport { PETROL_LIST, DIESEL_LIST } from '../../common/constant';\n\nComponent({\n props: {\n show: false,\n selectedOilType: '',\n onSelect: () => {},\n onClose: () => {},\n },\n data: {\n petrolList: PETROL_LIST,\n dieselList: DIESEL_LIST,\n },\n methods: {\n onSelect(e) {\n const { dataset = {} } = e.target;\n const { type } = dataset;\n const { onSelect } = this.props;\n if (onSelect) {\n onSelect(type);\n }\n },\n onClosePopup() {\n const { onClose } = this.props;\n if (onClose) {\n onClose();\n }\n },\n },\n});\n","module/select-popup/index.json":"{\n \"component\": true\n}\n","module/station-banner/index.acss":".station-banner-container {\n height: 240rpx;\n background-image: url(https://gw.alipayobjects.com/zos/rmsportal/kwFVjhBQSGFkcDQiWSbS.png);\n background-size: cover;\n background-repeat: no-repeat;\n display: flex;\n justify-content: space-between;\n padding: 0 32rpx;\n color: #FFFFFF;\n}\n.station-banner-container .stationDes .station {\n margin-top: 42rpx;\n font-family: PingFangSC-Medium;\n font-size: 36rpx;\n line-height: 50rpx;\n letter-spacing: 0;\n font-weight: bold;\n}\n.station-banner-container .stationDes .location {\n margin-top: 8rpx;\n font-family: PingFangSC-Regular;\n font-size: 28rpx;\n line-height: 40rpx;\n width: 448rpx;\n opacity: 0.6;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.station-banner-container .stationDiscount {\n color: #FFFFFF;\n text-align: center;\n margin: 48rpx 0 108rpx 0;\n padding-left: 32rpx;\n border-left: 2rpx solid rgba(255, 255, 255, 0.6);\n}\n.station-banner-container .stationDiscount .fuelPrice {\n font-family: PingFangSC-Medium;\n font-size: 56rpx;\n letter-spacing: 0;\n text-align: left;\n}\n.station-banner-container .stationDiscount .fuelPrice .moneySign {\n font-size: 36rpx;\n}\n.station-banner-container .stationDiscount .fuelPriceDiscount {\n font-family: PingFangSC-Regular;\n font-size: 24rpx;\n opacity: 0.6;\n}\n","module/station-banner/index.axml":"<view class=\"station-banner-container\">\n <view class=\"stationDes\">\n <view class=\"station\">{{stationDetailInfo.oilStationName}}</view>\n <view class=\"location\">{{stationDetailInfo.address}}</view>\n </view>\n <view class=\"stationDiscount\">\n <view class=\"fuelPrice\"><text class=\"moneySign\">{{\"¥ \"}}</text>{{stationDetailInfo.salePrice.amount}}</view>\n <view class=\"fuelPriceDiscount\">每升优惠 ¥{{stationDetailInfo.pocketAmount.amount}}</view>\n </view>\n</view>","module/station-banner/index.js":"import { connect } from 'herculex';\n\nComponent(connect({\n mapStateToProps: ['stationDetailInfo'],\n})({\n props: {},\n data: {\n },\n}));\n","module/station-banner/index.json":"{\n \"component\": true\n}","pages/index/index.acss":"","pages/index/index.axml":"<view class=\"container\">\n <view>\n <index-header />\n <map-ui />\n <fuel-station-popup />\n </view>\n</view>\n","pages/index/index.js":"/** 首页\n * 1.地图展示周边油站\n * 2.常用油品选择\n * 3.油站列表\n * 4.订单页、搜索页和个人中心入口\n*/\nimport store from './store';\n\nPage(store.register({\n onShow() {\n this.dispatch('queryStationList');\n my.call('hideLoading');\n },\n async onReady() {\n await this.dispatch('initPage');\n this.commit('updateState', { initComplete: true });\n },\n}));\n","pages/index/index.json":"{\n \"defaultTitle\": \"优惠加油\",\n \"usingComponents\":{\n \"index-header\": \"../../module/index-header/index\",\n \"map-ui\": \"../../module/map-ui/index\",\n \"fuel-station-popup\": \"../../module/fuel-station-popup/index\"\n }\n}\n","pages/index/store.js":"/**\n * 加油首页\n */\nimport Store from 'herculex';\nimport { getCurrentLocation } from '../../common/util';\nimport { getStorage, setStorage } from '../../common/storage';\nimport indexModel from '../../services/indexModel.js';\n\nexport default new Store({\n connectGlobal: true,\n state: {\n initComplete: false,\n stationLocationList: [],\n index: 0, // stationLocationList[] 的index,用于从list里拿到具体某一条作为此油站的详情数据(由于点击map的maker图标只能拿到index)\n markerList: [],\n showOilTypeSelect: false,\n showFuelStationList: false,\n showDetail: false,\n },\n getters: {\n selectedOilType: (state, getters, global) => global.getIn(['selectedOilType'], ''),\n loaction: (state, getters, global) => global.getIn(['loaction'], {}), // 用户位置\n lbs: (state, getters, global) => global.getIn(['lbs'], {}), // 用于控制地图移动的中心点坐标\n markerList: (state) => {\n const retList = [];\n const stationLocationList = state.stationLocationList || [];\n stationLocationList.forEach((item, idx) => {\n const newItem = Object.assign({}, item);\n newItem.iconAppendStr = `¥${item.salePrice.amount}\\n${item.oilStationName}`;\n newItem.iconAppendStrColor = '#000000';\n newItem.id = idx + 1; // id = 0点击地图图标,获取不到当前数据\n newItem.iconPath = item.logoUrl || 'https://gw.alipayobjects.com/zos/rmsportal/HhgOWfRpLGIuVUPJsfst.png';\n newItem.width = 25; // 地图icon尺寸\n newItem.height = 25;\n retList.push(newItem);\n });\n return retList;\n },\n },\n plugins: ['logger'],\n mutations: {\n updateState(state, payload) {\n for (const key in payload) {\n state[key] = payload[key];\n }\n },\n },\n actions: {\n async initPage({ dispatch, commit }) {\n const userId = '123';\n await dispatch('getOilTypeFromStorage', { userId });\n await dispatch('needShowOilType');\n commit('updateState', { initComplete: true });\n },\n /**\n * 获取油站列表\n */\n async queryStationList({ commit, global }, lbs) {\n if (!global.selectedOilType) return;\n lbs = lbs || global.lbs;\n this.commit('$global:updateState', { lbs });\n const result = await indexModel.getStationList({});\n commit('updateState', { stationLocationList: result.oilStationModels, showFuelStationList: true, includePoints: [] });\n },\n /**\n * 获取当前位置\n */\n async getCurrentLocation({ dispatch, commit, global }) {\n commit('updateState', { showFuelStationList: false, stationLocationList: [] });\n const res = await getCurrentLocation();\n const { latitude, longitude } = res;\n commit('$global:updateState', { lbs: { latitude, longitude } });\n await dispatch('$global:updateLoaction', { loaction: { latitude, longitude } });\n if (global.selectedOilType) dispatch('queryStationList', { latitude, longitude });\n return { latitude, longitude };\n },\n async setOilTypeToStorage({ global }) {\n const userId = `${global.getIn(['userId'], '')}OilType`;\n const oilType = global.selectedOilType;\n await setStorage(userId, { oilType });\n },\n async getOilTypeFromStorage({ commit, global }, payload) {\n const userId = `${payload.userId || global.getIn(['userId'], '')}OilType`;\n await getStorage(userId).then((res) => {\n if (res && res.data && res.data.oilType) {\n const selectedOilType = res.data.oilType;\n commit('$global:updateState', { selectedOilType });\n }\n });\n },\n needShowOilType({ dispatch, commit, global }) {\n const { selectedOilType } = global;\n if (selectedOilType) {\n dispatch('getCurrentLocation').then(() => {\n dispatch('queryStationList');\n commit('updateState', {\n showOilTypeSelect: false,\n });\n });\n } else {\n commit('updateState', {\n showOilTypeSelect: true,\n });\n }\n },\n },\n});\n","pages/personal-center/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\npage {\n background-color: #FFFFFF;\n}\n.personalCenter .pcHeader {\n width: 100%;\n position: sticky;\n top: 0;\n z-index: 100;\n}\n.personalCenter .pullUpLoad {\n position: sticky;\n bottom: 0;\n z-index: 100;\n background: #FFFFFF;\n}\n.personalCenter .am-page-result {\n height: auto;\n}\n","pages/personal-center/index.axml":"<view class=\"personalCenter\">\n <page-result-new\n a:if=\"{{ systemError }}\"\n type=\"busy\"\n title=\"系统繁忙,稍后再试\"\n brief=\"星辰沉睡时,我们仍在赶路\"\n option=\"刷新\"\n onOption=\"onRefresh\"\n />\n <view class=\"pageNormal\" a:else>\n <personal-center-header />\n <page-result-new\n a:if=\"{{ listComplete && payRecords.length === 0 }}\"\n type=\"empty\"\n title=\"什么都没有\"\n brief=\"前不见古人,后不见来者\"\n option=\"去加油\"\n onOption=\"onOption\"\n />\n <personal-center-list a:else />\n <pull-up-load a:if=\"{{loading}}\"/>\n </view>\n</view>\n","pages/personal-center/index.js":"/** 个人中心\n * 1.订单列表\n*/\nimport store from './store';\n\nPage(store.register({\n onReady() {\n this.dispatch('getPayRecords');\n },\n onReachBottom() {\n this.dispatch('getPayRecords');\n },\n onOption() {\n my.navigateBack();\n },\n onRefresh() {\n this.dispatch('getPayRecords');\n },\n}));\n","pages/personal-center/index.json":"{\n \"defaultTitle\": \"个人中心\",\n \"usingComponents\":{\n \"personal-center-header\": \"../../module/personal-center-header/index\",\n \"personal-center-list\": \"../../module/personal-center-list/index\",\n \"pull-up-load\": \"../../module/pull-up-load/index\",\n \"page-result-new\":\"../../module/page-result-new/index\"\n }\n}","pages/personal-center/store.js":"/**\n * 加油下单页\n */\nimport Store from 'herculex';\nimport personalCenterModel from '../../services/personalCenterModel.js';\n\nexport default new Store({\n connectGlobal: true,\n state: {\n payInfo: {}, // 个人加油次数等信息\n payRecords: [], // 加油记录\n loading: false, // 上拉加载动画展示\n totalSize: 0, // 总记录数\n totalPages: 0, // 总页数\n pageSize: 10, // 每页记录数\n pageNum: 0, // 当前页码\n listComplete: false, // 列表记录加载完成\n },\n getters: {\n },\n mutations: {\n updateState(state, payload) {\n Object.assign(state, payload);\n },\n },\n actions: {\n async getPayRecords({ commit, state }) {\n const pageNumCurrent = state.pageNum + 1;\n const pageSizeCurrent = state.pageSize;\n if (this.data.loading) return;\n commit('CHANGE_LOAD_MORE_STATE', { loading: true });\n const result = await personalCenterModel.getPayRecords({ pageNum: pageNumCurrent, pageSize: pageSizeCurrent });\n commit('CHANGE_LOAD_MORE_STATE', { loading: false });\n const { totalAmount, totalCount, totalDisAmount, totalSize, totalPages, pageSize, pageNum } = result;\n const allPayRecords = [...state.payRecords, ...result.orderList];\n commit('UPDATE_PAY_RECORDS', { payRecords: allPayRecords, payInfo: { totalAmount, totalCount, totalDisAmount }, listComplete: true, totalSize, totalPages, pageSize, pageNum });\n return result;\n },\n },\n});\n","pages/search/index.acss":"/* required by usingComponents */\n","pages/search/index.axml":"<search-panel />\n","pages/search/index.js":"/** 搜索地址页\n * 1.搜索并展示地址列表\n*/\nimport store from './store';\n\nPage(store.register({\n onLoad() {\n this.dispatch('querySearchHistoryList');\n this.commit('updateState', { systemError: false });\n },\n}));\n","pages/search/index.json":"{\n \"defaultTitle\": \"搜索\",\n \"usingComponents\":{\n \"search-panel\": \"../../module/search-panel/index\"\n }\n}\n","pages/search/store.js":"/**\n * 搜索页\n * 添加,查询、删除搜索记录\n * 搜索地址\n */\nimport Store from 'herculex';\nimport searchModel from '../../services/searchModel.js';\nimport { getStorage, setStorage, removeStorage } from '../../common/storage';\n\nexport default new Store({\n connectGlobal: true,\n state: {\n isLoading: false,\n dropList: [],\n searchHistoryList: [],\n },\n mutations: {\n updateState(state, payload) {\n Object.assign(state, payload);\n },\n },\n actions: {\n async querySearchHistoryList({ commit, global }) {\n const key = `${global.getIn(['userId'], '')}history`;\n let list = [];\n await getStorage(key).then((res) => {\n console.log('getStorage-key', res);\n list = res.data && res.data.historyList ? res.data.historyList : [];\n });\n commit('updateState', { searchHistoryList: list });\n },\n async SetSearchHistoryList({ commit, global }, payload) {\n const key = `${global.getIn(['userId'], '')}history`;\n let origionHistory = [];\n await getStorage(key).then((res) => {\n origionHistory = res.data && res.data.historyList ? res.data.historyList : [];\n });\n const haveSame = origionHistory.some(item => item.name === payload.name);\n if (haveSame) return;\n origionHistory.unshift(payload);\n const newHistory = origionHistory.splice(0, 16); // 显示两行历史记录,目前暂时存16条,可修改。\n await setStorage(key, { historyList: newHistory });\n commit('updateState', { searchHistoryList: newHistory });\n },\n async removeHistory({ commit, global }) {\n const key = `${global.getIn(['userId'], '')}history`;\n await removeStorage(key).then((res) => {\n commit('updateState', { searchHistoryList: [] });\n });\n },\n async queryDropList({ commit, global }, payload) {\n if (!payload) return;\n commit('updateState', { isLoading: true });\n const result = await searchModel.getDropList({});\n if (result.success && result.addressList) {\n const { addressList } = result;\n addressList.map((items, i) => {\n if (items.id) return items;\n items.id = i + 1;\n return items;\n });\n commit('updateState', { dropList: addressList, isLoading: false });\n return addressList;\n }\n return [];\n },\n },\n});\n","pages/settle-order/index.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n.settleOrder {\n min-height: 100vh;\n}\n.settleOrder .fuelContainer {\n margin: -60rpx 32rpx 0 32rpx;\n padding: 0 32rpx 20rpx;\n background: #FFFFFF;\n box-shadow: 0 4rpx 16rpx 0 rgba(153, 153, 153, 0.16);\n border-radius: 8rpx;\n}\n","pages/settle-order/index.axml":"<view class=\"settleOrder\">\n <page-result-new\n a:if=\"{{systemError}}\"\n type=\"busy\"\n title=\"系统繁忙,稍后再试\"\n brief=\"星辰沉睡时,我们仍在赶路\"\n option=\"刷新\"\n onOption=\"onRefresh\"\n />\n <view a:else>\n <station-banner stationDetailInfo=\"{{stationDetailInfo}}\"/>\n <view class=\"fuelContainer\">\n <fuel-selection />\n <amount-input />\n </view>\n <fuel-pay />\n <fuel-guide />\n </view>\n</view>","pages/settle-order/index.js":"/** 订单页\n * 1.展示油站信息\n * 2.油品、油枪下拉列表\n * 3.金额输入框\n * 4.支付功能\n * 5.新手引导\n*/\nimport store from './store';\n\nPage(store.register({\n onLoad() {\n this.dispatch('initPage');\n },\n onRefresh() {\n this.dispatch('initPage');\n },\n handleSucess() {\n my.navigateBack();\n },\n handleRetry() {\n this.dispatch('openTradePay');\n },\n handleCancle() {\n my.navigateBack();\n },\n}));\n","pages/settle-order/index.json":"{\n \"defaultTitle\": \"订单确认\",\n \"usingComponents\":{\n \"station-banner\": \"../../module/station-banner/index\",\n \"fuel-selection\": \"../../module/fuel-selection/index\",\n \"fuel-pay\": \"../../module/fuel-pay/index\",\n \"amount-input\": \"../../module/amount-input/index\",\n \"fuel-guide\": \"../../module/fuel-guide/index\",\n \"page-result-new\": \"../../module/page-result-new/index\"\n }\n}\n","pages/settle-order/store.js":"/**\n * 加油下单页\n */\nimport Store from 'herculex';\nimport settleOrderModel from '../../services/settleOrderModel.js';\nimport { PETROL_LIST, DIESEL_LIST } from '../../common/constant';\nimport { arrItemToObj } from '../../common/util';\n\nconst fuelTypeList = [...PETROL_LIST, ...DIESEL_LIST];\n\nexport default new Store({\n connectGlobal: true,\n state: {\n fuelTypeList,\n fuelNumberList: [],\n currentFuelType: '',\n currentFuelNumber: '',\n stationDetailInfo: {},\n stationDetailInfoList: {\n oilType: '',\n oilStationModel: [],\n },\n payMoney: {\n discount: 100,\n inputNum: '',\n realPayNum: '0.00',\n discountNum: '0',\n },\n guideState: 1, // 1:引导图片1, 2:引导图片2,3:关闭引导图片;\n tradeNo: '', // 交易号\n isNewUser: false,\n },\n getters: {\n globalFuelType: (state, getters, globals) => globals.getIn(['selectedOilType']), // 上个页面选择的油品类型\n disCount: state => `${state.payMoney.discount / 10}`,\n inputNum: state => state.payMoney.inputNum,\n shouldpayNum: (state, getters) => (getters.inputNum * getters.disCount / 10).toFixed(2),\n canPay: state => state.payMoney.realPayNum !== '0.00' && !!state.currentFuelType && !!state.currentFuelNumber,\n },\n plugins: ['logger'],\n mutations: {\n updateState(state, payload) {\n Object.assign(state, payload);\n },\n },\n actions: {\n async initPage({ dispatch }) {\n dispatch('initGlobalFuelType');\n const res = await dispatch('getUserInfo');\n if (res.success) dispatch('requestStationByShopId');\n },\n /**\n * 获取用户信息\n */\n async getUserInfo({ commit, global }) {\n const { userId } = global;\n const bizType = 'FUELING'; // 业务类型:FUELING优惠加油\n const result = await settleOrderModel.getUserInfo({ userId, bizType });\n const isNewUser = result && result.isNewUser ? result.isNewUser : false;\n commit('updateState', { isNewUser });\n return result;\n },\n /**\n * 获取加油站信息\n */\n async requestStationByShopId({ commit, state, global }) {\n const result = await settleOrderModel.getStationByShopId({ shopId: '' });\n const currentOilType = global.selectedOilType;\n let currentFuelTypeDetails = result.filter(item => item.oilType === currentOilType)[0]; // 当前型号汽油的所有油站详情\n // console.error('currentFuelTypeDetails', currentFuelTypeDetails);\n currentFuelTypeDetails = currentFuelTypeDetails.oilStationModel[0];\n const { discount } = currentFuelTypeDetails;\n const stationDetailInfoList = result.map(item => item.oilStationModel[0]);\n const payMoney = Object.assign(state.payMoney, {\n discount,\n inputNum: '',\n });\n commit('updateState', { stationDetailInfoList, stationDetailInfo: currentFuelTypeDetails, payMoney, currentFuelNumber: '' });\n this.dispatch('updateCurrentNumber', { currentFuelNumber: '' });\n return result;\n },\n /**\n * 获取油品型号\n */\n requestFuelTypeList({ commit }) {\n // const fuelTypeList = state.stationDetailInfoList.map(item => ({ oilType: item.oilType }));\n commit('UPDATE_FUEL_TYPE_LIST', { fuelTypeList });\n return fuelTypeList;\n },\n /**\n * 获取出油枪型号的列表\n */\n requestFuelNumberList({ commit, state }) {\n const currentOilType = state.currentFuelType;\n const fueltypeList = state.stationDetailInfoList;\n const currentFuelTypeDetails = fueltypeList.filter(item => item.oilType === currentOilType)[0]; // 当前型号汽油的所有油站详情\n let fuelNumberList = currentFuelTypeDetails.oilGunNum;\n fuelNumberList = arrItemToObj(fuelNumberList);\n commit('UPDATE_FUEL_NUMBER_LIST', { fuelNumberList });\n return fuelNumberList;\n },\n /**\n * 更新当前选中的油品型号\n */\n updateCurrentType({ commit, state }, payload) {\n const { currentFuelType } = payload;\n const fueltypeList = state.stationDetailInfoList;\n const currentFuelTypeDetails = fueltypeList.filter(item => item.oilType === currentFuelType)[0]; // 当前型号汽油的所有油站详情\n const { discount } = currentFuelTypeDetails;\n const payMoney = Object.assign(state.payMoney, {\n discount,\n });\n commit('updateState', { payMoney, currentFuelType, stationDetailInfo: currentFuelTypeDetails, currentFuelNumber: '' });\n },\n /**\n * 更新当前选中的出油枪号\n */\n updateCurrentNumber({ commit }, payload) {\n const { currentFuelNumber } = payload;\n commit('UPDATE_CURRENT_FUEL_NUMBER', { currentFuelNumber });\n },\n /**\n * 更新支付金额\n */\n updatePayNum({ commit }, payload) {\n const { payMoney } = payload;\n commit('UPDATE_PAY_NUM', { payMoney });\n },\n /**\n * 更新引导图片\n */\n updateGuideState({ commit }, guideState) {\n commit('updateState', { guideState });\n },\n /**\n * 初始化上个页面带过来的油品类型\n */\n initGlobalFuelType({ commit, global }) {\n commit('updateState', { currentFuelType: global.selectedOilType, currentFuelNumber: '' });\n },\n /**\n * 调收银台\n */\n async openTradePay({ commit }) {\n const result = await settleOrderModel.createOrder({});\n commit('updateState', { tradeNo: result.tradeNo });\n my.alert({\n content: '发起支付',\n buttonText: '我知道了',\n });\n // my.call('tradePay', {\n // tradeNO: result.tradeNo, // 必传,此使用方式下该字段必传\n // }, (res) => {\n // my.alert({\n // content: JSON.stringify(res),\n // });\n // });\n },\n },\n});\n","services/indexModel.js":"import { Rpc } from './rpc/rpc.js';\nimport { Throw } from './rpc/throw.js';\nimport mockStationListData from './mock/get-station-list.mock';\n\nconst indexModelAPI = {\n get_station_list: 'alipay.zimtmsvcprod.queryOilStationListByLbs',\n};\n\nexport default {\n async getStationList(params) {\n // TODO 在这里进行数据处理\n const mock = 'on';\n const res = await Rpc(indexModelAPI.get_station_list, params, mock);\n if (!res.success) return Throw('SYSTEM_ERROR');\n if (mock === 'on') return mockStationListData;\n return res;\n },\n};\n","services/mock/get-drop-list.mock.js":"export default {\n success: true,\n resultStatus: '100',\n addressList: [\n {\n name: '杭州东站北广场',\n address: '江干区天城路1号',\n latitude: 30.272500,\n longitude: 120.12700,\n },\n {\n name: '杭州站',\n address: '江干区天城路1号',\n latitude: 30.272501,\n longitude: 120.12701,\n },\n {\n name: '杭州第一人民医院',\n address: '江干区天城路1号',\n latitude: 30.272502,\n longitude: 120.12703,\n },\n {\n name: '杭州市汽车北站',\n address: '江干区天城路1号',\n latitude: 30.272502,\n longitude: 120.12702,\n },\n {\n name: '杭州动物园',\n address: '江干区天城路1号',\n latitude: 30.272503,\n longitude: 120.12703,\n },\n {\n name: '杭州西湖风景区',\n address: '江干区天城路1号',\n latitude: 30.272504,\n longitude: 120.12704,\n },\n {\n name: '杭州东站北广场',\n address: '江干区天城路1号',\n latitude: 30.272505,\n longitude: 120.12705,\n },\n {\n name: '杭州东站南广场',\n address: '江干区天城路1号',\n latitude: 30.272506,\n longitude: 120.12706,\n },\n {\n name: '杭州东站北广场7',\n address: '江干区天城路1号',\n latitude: 30.272500,\n longitude: 120.12703,\n },\n {\n name: '杭州东站北广场8',\n address: '江干区天城路1号',\n latitude: 30.272500,\n longitude: 120.12703,\n },\n {\n name: '杭州东站北广场9',\n address: '江干区天城路1号',\n latitude: 30.272500,\n longitude: 120.12703,\n },\n ],\n};\n","services/mock/get-pay-records.mock.js":"export default {\n success: true,\n resultStatus: '100',\n totalCount: '24',\n totalAmount: {\n amount: 500,\n cent: 5000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n totalDisAmount: {\n amount: 50,\n cent: 500,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n totalSize: 50, // 总记录数\n totalPages: 3, // 总页数\n pageSize: 20, // 每页记录数\n pageNum: 1, // 当前页码\n orderList: [\n {\n stationName: '中国石油浦东加油站',\n address: '中国石油浦东加油站2001号',\n oilType: '92#',\n payDate: 1540350420908,\n payAmount: {\n amount: 90,\n cent: 900,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n oilAmount: {\n amount: 100,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 10,\n cent: 100,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n status: 'success',\n orderId: '111',\n oilGunNum: '92777',\n },\n {\n stationName: '壳牌上海加油站',\n address: '上海浦东新区世纪大道1000号',\n oilType: '92#',\n payDate: 1540350420908,\n payAmount: {\n amount: 80,\n cent: 800,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n oilAmount: {\n amount: 100,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 20,\n cent: 200,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n status: 'success',\n orderId: '111',\n oilGunNum: '92777',\n },\n {\n stationName: '中国石化静安加油站',\n address: '上海市静安区201号',\n oilType: '92#',\n payDate: 1540350420908,\n payAmount: {\n amount: 180,\n cent: 900,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n oilAmount: {\n amount: 200,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 20,\n cent: 100,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n status: 'success',\n orderId: '111',\n oilGunNum: '92777',\n },\n {\n stationName: '中石化杭州加油站',\n address: '浙江省杭州市西湖',\n oilType: '92#',\n payDate: 1540350420908,\n payAmount: {\n amount: 350,\n cent: 900,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n oilAmount: {\n amount: 400,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 50,\n cent: 100,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n status: 'success',\n orderId: '111',\n oilGunNum: '92777',\n },\n {\n stationName: '中国石油杨浦加油站',\n address: '上海市杨浦区黄兴路1001号',\n oilType: '92#',\n payDate: 1540350420908,\n payAmount: {\n amount: 50,\n cent: 900,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n oilAmount: {\n amount: 60,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 10,\n cent: 100,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n status: 'success',\n orderId: '111',\n oilGunNum: '92777',\n },\n {\n stationName: '壳牌虹口第一加油站',\n address: '上海市虹口区宝山路',\n oilType: '92#',\n payDate: 1540350420908,\n payAmount: {\n amount: 90,\n cent: 900,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n oilAmount: {\n amount: 100,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 10,\n cent: 100,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n status: 'success',\n orderId: '111',\n oilGunNum: '92777',\n },\n {\n stationName: '壳牌世纪加油站',\n address: '上海市世纪大道201号',\n oilType: '92#',\n payDate: 1540350420908,\n payAmount: {\n amount: 190,\n cent: 900,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n oilAmount: {\n amount: 200,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 10,\n cent: 100,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n status: 'success',\n orderId: '111',\n oilGunNum: '92777',\n },\n ],\n};\n","services/mock/get-station-detail-shop-id.mock.js":"export default {\n success: true,\n resultStatus: '100',\n oilTypeInfoModelList: [\n {\n oilType: '92#',\n oilStationModel: [\n {\n oilStationName: '中石油加油站',\n address: '上海市世纪大道1000号',\n salePrice: {\n amount: 11.7,\n cent: 1170,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 0.7,\n cent: 700,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n logoUrl: 'https://gw.alipayobjects.com/zos/rmsportal/qCuwgTQMACgyDKItsaPQ.png',\n latitude: 30.272100,\n longitude: 120.12003,\n oilGunNum: ['11', '12', '13', '14', '15'],\n oilType: '92#',\n poiId: 'IE2932', // 高德地图poiid IE2932\n pid: '00000001', // 签约ID\n itemId: '0001',\n shopId: '01',\n discount: 80,\n },\n ],\n },\n {\n oilType: '95#',\n oilStationModel: [\n {\n oilStationName: '壳牌加油站',\n address: '上海市浦东新区浦电路',\n salePrice: {\n amount: 10,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 0.5,\n cent: 500,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n logoUrl: 'https://gw.alipayobjects.com/zos/rmsportal/qCuwgTQMACgyDKItsaPQ.png',\n latitude: 30.272100,\n longitude: 120.12003,\n oilGunNum: ['11', '12', '13', '14', '15'],\n oilType: '95#',\n poiId: 'IE2932', // 高德地图poiid IE2932\n pid: '00000001', // 签约ID\n itemId: '0001',\n shopId: '01',\n discount: 95,\n },\n ],\n },\n {\n oilType: '98#',\n oilStationModel: [\n {\n oilStationName: '中石化上海加油站',\n address: '上海市浦东新区',\n salePrice: {\n amount: 20,\n cent: 2000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 4,\n cent: 400,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n logoUrl: 'https://gw.alipayobjects.com/zos/rmsportal/qCuwgTQMACgyDKItsaPQ.png',\n latitude: 30.272100,\n longitude: 120.12003,\n oilGunNum: ['11', '12', '13', '14', '15'],\n oilType: '98#',\n poiId: 'IE2932', // 高德地图poiid IE2932\n pid: '00000001', // 签约ID\n itemId: '0001',\n shopId: '01',\n discount: 80,\n },\n ],\n },\n {\n oilType: '0#',\n oilStationModel: [\n {\n oilStationName: '中化浙大科技园加油站',\n address: '西溪国家湿地公园东2门附近',\n salePrice: {\n amount: 10,\n cent: 1000,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 0.5,\n cent: 500,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n logoUrl: 'https://gw.alipayobjects.com/zos/rmsportal/qCuwgTQMACgyDKItsaPQ.png',\n latitude: 30.272100,\n longitude: 120.12003,\n oilGunNum: ['11', '12', '13', '14', '15'],\n oilType: '0#',\n poiId: 'IE2932', // 高德地图poiid IE2932\n pid: '00000001', // 签约ID\n itemId: '0001',\n shopId: '01',\n discount: 90,\n },\n ],\n },\n ],\n};\n","services/mock/get-station-list.mock.js":"export default {\n success: true,\n resultStatus: '100',\n seqNo: '2018029239222222',\n oilStationModels: [{\n oilStationName: '中石油加油站',\n address: '上海市世纪大道1000号',\n salePrice: {\n amount: 11.7,\n cent: 1170,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 0.7,\n cent: 700,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n distance: '100米',\n logoUrl: 'https://gw.alipayobjects.com/zos/rmsportal/HhgOWfRpLGIuVUPJsfst.png',\n latitude: 31.222585,\n longitude: 121.551959,\n oilGunNum: ['01', '02', '03', '04', '05'],\n oilType: '92#',\n poiId: 'IE2932', // 高德地图poiid IE2932\n pid: '00000001', // 签约ID\n itemId: '0001',\n shopId: '2018090600502000000022501261',\n discount: 0.5,\n },\n {\n oilStationName: '壳牌加油站',\n address: '上海市浦东新区浦电路',\n salePrice: {\n amount: 11.8,\n cent: 1180,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 0.7,\n cent: 700,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n distance: '1.5千米',\n logoUrl: 'https://gw.alipayobjects.com/zos/rmsportal/qCuwgTQMACgyDKItsaPQ.png',\n latitude: 31.222985,\n longitude: 121.551059,\n oilGunNum: ['01', '02', '03', '04', '05'],\n oilType: '92#',\n poiId: 'IE2932', // 高德地图poiid IE2932\n pid: '00000002', // 签约ID\n itemId: '0002',\n shopId: '02',\n discount: 0.8,\n },\n {\n oilStationName: '中石化上海加油站',\n address: '上海市浦东新区',\n salePrice: {\n amount: 15.8,\n cent: 1580,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n pocketAmount: {\n amount: 1.7,\n cent: 1700,\n centFactor: 100,\n currency: 'CNY',\n currencyCode: 'CNY',\n },\n distance: '600米',\n latitude: 31.222585,\n longitude: 121.551959,\n oilGunNum: ['01', '02', '03', '14', '15'],\n oilType: '92#',\n poiId: 'IE2932', // 高德地图poiid IE2932\n pid: '00000002', // 签约ID\n itemId: '0002',\n shopId: '03',\n discount: 0.6,\n },\n ],\n};\n","services/personalCenterModel.js":"import { Rpc } from './rpc/rpc.js';\nimport { Throw } from './rpc/throw.js';\nimport mockPayRecordsData from './mock/get-pay-records.mock';\n\nconst personalCenterModelAPI = {\n get_pay_records: 'alipay.zimtmsvcprod.queryOrderList',\n};\n\nexport default {\n async getPayRecords(params) {\n // TODO 在这里进行数据处理\n const mock = 'on';\n const res = await Rpc(personalCenterModelAPI.get_pay_records, params, mock);\n if (!res.success || res.resultStatus !== '100') return Throw('SYSTEM_ERROR');\n if (mock === 'on') return mockPayRecordsData;\n return res;\n },\n};\n","services/rpc/rpc.js":"\nimport { Throw } from './throw.js';\n\nfunction Client() {\n}\nconst client = new Client();\nexport function Rpc(url, data, mock = 'on') {\n if (mock === 'on') {\n return {\n success: true,\n resultStatus: '100',\n };\n }\n const currentPage = getCurrentPages()[getCurrentPages().length - 1];\n currentPage.commit('updateState', { systemError: false });\n try {\n my.call('showLoading', {\n content: '加载中',\n });\n return client.mobilegw({\n operationType: url,\n requestData: [data],\n }).then((response) => {\n my.call('hideLoading');\n console.info(`%c ${url} REQUEST`, 'color: #FFa940; font-weight: bold', data);\n console.info(`%c ${url} RESPONSE`, 'color: #FFa940; font-weight: bold', response);\n if (url === 'alipay.zimtmsvcprod.createOrder') { // 创建订单接口\n if (response && response.errorCode === 'IDEMPOTENT_ERROR') { // IDEMPOTENT_ERROR 订单幂等\n return {\n success: true,\n errorCode: 'IDEMPOTENT_ERROR',\n };\n }\n }\n if (!response || !response.success || response.resultStatus !== '100') {\n currentPage.commit('updateState', { systemError: true });\n return Throw('SYSTEM_ERROR');\n }\n return response;\n });\n } catch (e) {\n my.call('hideLoading');\n return {\n success: false,\n message: 'rpc 系统错误',\n };\n }\n}\n","services/rpc/throw.js":"const ERRORMAP = {\n SYSTEM_ERROR: handleSystemError,\n};\n\nfunction handleSystemError() {\n return {\n success: false,\n message: 'rpc 系统错误',\n };\n}\n\nexport function Throw(error) {\n if (ERRORMAP[error]) return ERRORMAP[error]();\n}\n","services/searchModel.js":"import { Rpc } from './rpc/rpc.js';\nimport { Throw } from './rpc/throw.js';\nimport mockDropListData from './mock/get-drop-list.mock';\n\nconst searchModelAPI = {\n get_drop_list: 'alipay.zimtmsvcprod.queryAddresListBykeywords',\n get_search_history_list: 'alipay.isasp.svccampuscard.check',\n};\n\nexport default {\n async getDropList(params) {\n // TODO 在这里进行数据处理\n const mock = 'on';\n const res = await Rpc(searchModelAPI.get_drop_list, params, mock);\n if (!res.success) return Throw('SYSTEM_ERROR');\n if (mock === 'on') return mockDropListData;\n return res;\n },\n};\n","services/settleOrderModel.js":"import { Rpc } from './rpc/rpc.js';\nimport { Throw } from './rpc/throw.js';\nimport mockStationDetailData from './mock/get-station-detail-shop-id.mock';\n\nconst settleOrderModelAPI = {\n get_station_by_shop_id: 'alipay.zimtmsvcprod.queryOilStationListByShopId',\n get_user_info: 'alipay.zimtmsvcprod.queryUserProfile',\n create_order: 'alipay.zimtmsvcprod.createOrder',\n};\n\nexport default {\n async getStationByShopId(params) {\n const mock = 'on';\n const res = await Rpc(settleOrderModelAPI.get_station_by_shop_id, params, mock);\n if (!res.success) return Throw('SYSTEM_ERROR');\n if (mock === 'on') return mockStationDetailData.oilTypeInfoModelList;\n return res && res.oilTypeInfoModelList;\n },\n async getUserInfo(params) {\n const mock = 'on';\n const res = await Rpc(settleOrderModelAPI.get_user_info, params, mock);\n if (!res.success) return Throw('SYSTEM_ERROR');\n if (mock === 'on') return { success: true, resultStatus: '100', isNewUser: true };\n return res;\n },\n async createOrder(params) {\n const mock = 'on';\n const res = await Rpc(settleOrderModelAPI.create_order, params, mock);\n if (!res.success) return Throw('SYSTEM_ERROR');\n if (mock === 'on') return { success: true, resultStatus: '100', tradeNo: '201711152100110410533667792' };\n return res;\n },\n};\n","style/common.acss":"@charset \"utf-8\";\npage {\n flex-direction: column;\n}\n.borderBottomDDD {\n border-bottom: 1rpx solid #ddd;\n}\n.borderTopDDD {\n border-top: 1rpx solid #ddd;\n}\n.fontFamilyMedium {\n font-family: PingFangSC-Medium;\n}\n.fontFamilyHelveticaNeu {\n font-family: HelveticaNeue-Medium;\n}\n.popup .popup {\n visibility: hidden;\n}\n.popup .popup-show {\n visibility: visible;\n}\n.popup .popup-show .popup-mask {\n display: block;\n opacity: 1;\n pointer-events: auto;\n transition: all 0.15s linear;\n}\n.popup .popup-show .popup-container {\n opacity: 1;\n transform: none;\n transition: all 0.15s linear;\n}\n.popup .popup-mask {\n opacity: 0;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.6);\n pointer-events: none;\n}\n.popup .popup-container {\n position: fixed;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100vw;\n transform: translateY(100%);\n transform-origin: center;\n opacity: 0;\n background-color: #FFF;\n}\n"},"dist":[{"ETag":"964CC3B0B276935A48926EC46C561900","name":"0.json","size":949745,"type":"json","url":"https://gw.alipayobjects.com/os/herbox/bdce1691-da62-4382-ab26-65cfa3ca536c/0.json"}]}