Files
supplier-dispatch-h5/node_modules/.cache/eslint/cd64707c.json
2023-08-11 10:45:20 +08:00

1 line
77 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[{"E:\\work\\sino\\sino-h5\\src\\main.js":"1","E:\\work\\sino\\sino-h5\\src\\utils\\rem.js":"2","E:\\work\\sino\\sino-h5\\src\\App.vue":"3","E:\\work\\sino\\sino-h5\\src\\router\\index.js":"4","E:\\work\\sino\\sino-h5\\src\\components\\bottomItem.vue":"5","E:\\work\\sino\\sino-h5\\src\\utils\\serverMap.js":"6","E:\\work\\sino\\sino-h5\\src\\components\\tabBar.vue":"7","E:\\work\\sino\\sino-h5\\src\\utils\\appointTime.js":"8","E:\\work\\sino\\sino-h5\\src\\utils\\common.js":"9","E:\\work\\sino\\sino-h5\\src\\components\\attentionItem.vue":"10","E:\\work\\sino\\sino-h5\\src\\components\\commonBtn.vue":"11","E:\\work\\sino\\sino-h5\\src\\components\\operationBtn.vue":"12","E:\\work\\sino\\sino-h5\\src\\utils\\map.js":"13","E:\\work\\sino\\sino-h5\\src\\store\\index.js":"14","E:\\work\\sino\\sino-h5\\src\\store\\getters.js":"15","E:\\work\\sino\\sino-h5\\src\\store\\modules\\order.js":"16","E:\\work\\sino\\sino-h5\\src\\utils\\myMixins.js":"17","E:\\work\\sino\\sino-h5\\src\\api\\order.js":"18","E:\\work\\sino\\sino-h5\\src\\utils\\http.js":"19","E:\\work\\sino\\sino-h5\\src\\components\\feeComponent.vue":"20","E:\\work\\sino\\sino-h5\\src\\components\\protocolContent.vue":"21","E:\\work\\sino\\sino-h5\\src\\views\\index\\addressMap.vue":"22","E:\\work\\sino\\sino-h5\\src\\views\\index\\rescue.vue":"23","E:\\work\\sino\\sino-h5\\src\\views\\index\\search.vue":"24","E:\\work\\sino\\sino-h5\\src\\views\\index\\orderStatus.vue":"25","E:\\work\\sino\\sino-h5\\src\\views\\index\\cancel.vue":"26","E:\\work\\sino\\sino-h5\\src\\views\\index\\index.vue":"27","E:\\work\\sino\\sino-h5\\src\\views\\index\\pay.vue":"28","E:\\work\\sino\\sino-h5\\src\\utils\\status.js":"29"},{"size":336,"mtime":1688106627323,"results":"30","hashOfConfig":"31"},{"size":603,"mtime":1686900641809,"results":"32","hashOfConfig":"31"},{"size":483,"mtime":1688634264766,"results":"33","hashOfConfig":"31"},{"size":1675,"mtime":1689217850816,"results":"34","hashOfConfig":"31"},{"size":1155,"mtime":1687165565669,"results":"35","hashOfConfig":"31"},{"size":1570,"mtime":1687923483824,"results":"36","hashOfConfig":"31"},{"size":2139,"mtime":1689153284616,"results":"37","hashOfConfig":"31"},{"size":1845,"mtime":1687680468781,"results":"38","hashOfConfig":"31"},{"size":3929,"mtime":1688451061762,"results":"39","hashOfConfig":"31"},{"size":826,"mtime":1687682752089,"results":"40","hashOfConfig":"31"},{"size":632,"mtime":1687748944609,"results":"41","hashOfConfig":"31"},{"size":964,"mtime":1687779937861,"results":"42","hashOfConfig":"31"},{"size":3348,"mtime":1688642194857,"results":"43","hashOfConfig":"31"},{"size":531,"mtime":1688104391380,"results":"44","hashOfConfig":"31"},{"size":77,"mtime":1688104878335,"results":"45","hashOfConfig":"31"},{"size":1676,"mtime":1688544371833,"results":"46","hashOfConfig":"31"},{"size":1084,"mtime":1689213876522,"results":"47","hashOfConfig":"31"},{"size":1641,"mtime":1689217497790,"results":"48","hashOfConfig":"31"},{"size":1314,"mtime":1688721985124,"results":"49","hashOfConfig":"31"},{"size":1339,"mtime":1688538651236,"results":"50","hashOfConfig":"31"},{"size":6041,"mtime":1688462121108,"results":"51","hashOfConfig":"31"},{"size":5951,"mtime":1688608649386,"results":"52","hashOfConfig":"31"},{"size":12003,"mtime":1689215502528,"results":"53","hashOfConfig":"31"},{"size":5282,"mtime":1688627589151,"results":"54","hashOfConfig":"31"},{"size":11505,"mtime":1688646687536,"results":"55","hashOfConfig":"31"},{"size":3065,"mtime":1688633482599,"results":"56","hashOfConfig":"31"},{"size":15479,"mtime":1689214838108,"results":"57","hashOfConfig":"31"},{"size":3735,"mtime":1689218075636,"results":"58","hashOfConfig":"31"},{"size":1649,"mtime":1688638238803,"results":"59","hashOfConfig":"31"},{"filePath":"60","messages":"61","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},"d13unh",{"filePath":"63","messages":"64","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"65","messages":"66","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"67"},{"filePath":"68","messages":"69","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"70","messages":"71","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"67"},{"filePath":"72","messages":"73","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"74","messages":"75","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"76","messages":"77","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"78","messages":"79","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"80","messages":"81","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"67"},{"filePath":"82","messages":"83","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"67"},{"filePath":"84","messages":"85","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"67"},{"filePath":"86","messages":"87","errorCount":8,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"88","usedDeprecatedRules":"62"},{"filePath":"89","messages":"90","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"91","messages":"92","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"93","messages":"94","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"95","messages":"96","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"97","messages":"98","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"99","messages":"100","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},{"filePath":"101","messages":"102","errorCount":2,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"103","usedDeprecatedRules":"67"},{"filePath":"104","messages":"105","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"67"},{"filePath":"106","messages":"107","errorCount":6,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"108","usedDeprecatedRules":"67"},{"filePath":"109","messages":"110","errorCount":7,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"111","usedDeprecatedRules":"67"},{"filePath":"112","messages":"113","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"114","usedDeprecatedRules":"67"},{"filePath":"115","messages":"116","errorCount":5,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"117","usedDeprecatedRules":"67"},{"filePath":"118","messages":"119","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"120","usedDeprecatedRules":"67"},{"filePath":"121","messages":"122","errorCount":9,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":"123","usedDeprecatedRules":"67"},{"filePath":"124","messages":"125","errorCount":1,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"126","messages":"127","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"62"},"E:\\work\\sino\\sino-h5\\src\\main.js",[],[],"E:\\work\\sino\\sino-h5\\src\\utils\\rem.js",[],"E:\\work\\sino\\sino-h5\\src\\App.vue",[],[],"E:\\work\\sino\\sino-h5\\src\\router\\index.js",[],"E:\\work\\sino\\sino-h5\\src\\components\\bottomItem.vue",[],"E:\\work\\sino\\sino-h5\\src\\utils\\serverMap.js",[],"E:\\work\\sino\\sino-h5\\src\\components\\tabBar.vue",["128","129"],"E:\\work\\sino\\sino-h5\\src\\utils\\appointTime.js",[],"E:\\work\\sino\\sino-h5\\src\\utils\\common.js",[],"E:\\work\\sino\\sino-h5\\src\\components\\attentionItem.vue",[],"E:\\work\\sino\\sino-h5\\src\\components\\commonBtn.vue",[],"E:\\work\\sino\\sino-h5\\src\\components\\operationBtn.vue",[],"E:\\work\\sino\\sino-h5\\src\\utils\\map.js",["130","131","132","133","134","135","136","137"],"// 获取定位, 返回 经纬度\r\nexport function getLocal(mapContext) {\r\n return new Promise((resolve, reject) => {\r\n mapContext.plugin('AMap.Geolocation', function () {\r\n let geolocation = new AMap.Geolocation({\r\n enableHighAccuracy: true, // 是否使用高精度定位默认true\r\n timeout: 10000, // 设置定位超时时间,默认:无穷大\r\n offset: [10, 20], // 定位按钮的停靠位置的偏移量\r\n zoomToAccuracy: true, // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见默认false\r\n position: 'RB' // 定位按钮的排放位置, RB表示右下\r\n })\r\n\r\n geolocation.getCurrentPosition(function(status, result){\r\n if(status == 'complete'){\r\n resolve(result.position)\r\n }else{\r\n reject(result)\r\n }\r\n });\r\n })\r\n })\r\n}\r\n\r\n// 逆地址解析,根据经纬度获取详细地址\r\nexport function getAddress(mapContext, lnglat) {\r\n return new Promise((resolve, reject) => {\r\n mapContext.plugin('AMap.Geocoder', function () {\r\n let geocoder = new AMap.Geocoder({\r\n // city: \"010\", //城市设为北京,默认:“全国”\r\n });\r\n\r\n geocoder.getAddress(lnglat, function(status, result) {\r\n if (status === 'complete' && result.info === 'OK') {\r\n // result为对应的地理位置详细信息\r\n resolve(result)\r\n } else {\r\n console.log(result)\r\n alert(JSON.stringify(result))\r\n }\r\n })\r\n })\r\n })\r\n}\r\n\r\n// 输入提示\r\nexport function searchFun(mapContext, cityCode, keyword) {\r\n return new Promise((resolve, reject) => {\r\n mapContext.plugin('AMap.AutoComplete', function(){\r\n var autoOptions = {\r\n city: cityCode || '全国',\r\n };\r\n // 实例化AutoComplete\r\n var autoComplete= new AMap.AutoComplete(autoOptions);\r\n // 根据关键字进行搜索\r\n autoComplete.search(keyword, function(status, result) {\r\n // 搜索成功时result即是对应的匹配数据\r\n if(result.info == 'OK') {\r\n resolve(result.tips)\r\n } else {\r\n reject(result)\r\n }\r\n })\r\n })\r\n })\r\n}\r\n\r\n// 路径规划\r\nexport function getRoad( mapContext, startLng, startLat, endLng, endLat ) {\r\n return new Promise((resolve, reject) => {\r\n mapContext.plugin('AMap.Driving', function() {\r\n let driving = new AMap.Driving({\r\n // 驾车路线规划策略AMap.DrivingPolicy.LEAST_TIME是最快捷模式\r\n // policy: AMap.DrivingPolicy.LEAST_TIME,\r\n // map: mapContext\r\n })\r\n\r\n let startLngLat = [startLng, startLat]\r\n let endLngLat = [endLng, endLat]\r\n\r\n driving.search(startLngLat, endLngLat, function (status, result) {\r\n // 未出错时result即是对应的路线规划方案\r\n if (status === 'complete') {\r\n resolve(result)\r\n } else {\r\n reject(result)\r\n }\r\n })\r\n })\r\n })\r\n}\r\n\r\n\r\nfunction drawRoute(route, map) {\r\n let path = parseRouteToPath(route)\r\n\r\n let routeLine = new AMap.Polyline({\r\n path: path,\r\n isOutline: true,\r\n outlineColor: '#ffeeee',\r\n borderWeight: 2,\r\n strokeWeight: 5,\r\n strokeOpacity: 0.9,\r\n strokeColor: '#0091ff',\r\n lineJoin: 'round'\r\n })\r\n\r\n map.add(routeLine);\r\n}\r\n","E:\\work\\sino\\sino-h5\\src\\store\\index.js",[],"E:\\work\\sino\\sino-h5\\src\\store\\getters.js",[],"E:\\work\\sino\\sino-h5\\src\\store\\modules\\order.js",[],"E:\\work\\sino\\sino-h5\\src\\utils\\myMixins.js",[],"E:\\work\\sino\\sino-h5\\src\\api\\order.js",[],"E:\\work\\sino\\sino-h5\\src\\utils\\http.js",[],"E:\\work\\sino\\sino-h5\\src\\components\\feeComponent.vue",["138","139"],"<template>\r\n <div class=\"protocol_content\">\r\n <div class=\"content\">{{ feeTitle }}</div>\r\n <div>\r\n <div class=\"protocol_title bolder\">\r\n 其他收费规则:\r\n </div>\r\n <div class=\"content\" v-for=\"item in feeListArr[this.activeTab].otherRules\">\r\n {{item}}\r\n </div>\r\n </div>\r\n <div>\r\n <div class=\"protocol_title bolder\">\r\n 取消收费规则:\r\n </div>\r\n <div class=\"content\" v-for=\"item in feeListArr[this.activeTab].cancelRules\">\r\n {{item}}\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n export default {\r\n name: \"feeComponent\",\r\n props: {\r\n feeTitle: {\r\n type: String,\r\n },\r\n feeListArr: {\r\n type: Array\r\n },\r\n activeTab: {\r\n type: Number\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n .protocol_content {\r\n color: #252525;\r\n width: 100%;\r\n text-align: left;\r\n margin-bottom: 5px;\r\n box-sizing: border-box;\r\n padding: 0 10px;\r\n .content {\r\n font-size: 12px;\r\n color: #252525;\r\n margin-bottom: 5px;\r\n box-sizing: border-box;\r\n }\r\n .protocol_title {\r\n font-size: 14px;\r\n text-align: left;\r\n margin-bottom: 5px;\r\n box-sizing: border-box;\r\n }\r\n .bolder {\r\n font-weight: bold;\r\n }\r\n }\r\n</style>\r\n","E:\\work\\sino\\sino-h5\\src\\components\\protocolContent.vue",[],"E:\\work\\sino\\sino-h5\\src\\views\\index\\addressMap.vue",["140","141","142","143","144","145"],"<template>\r\n <div>\r\n <div class=\"map_wrap\" id=\"mapId\" :style=\"{ bottom: mapPosition + '%' }\">\r\n </div>\r\n <div class=\"button_wrap\">\r\n <div class=\"cancel_btn\" @click=\"cancelHandler\">取消</div>\r\n <div class=\"confirm_btn\" @click=\"successHandler\">完成</div>\r\n </div>\r\n <div class=\"search_wrap\" :style=\"{ height: mapPosition + '%' }\">\r\n <div class=\"section\">\r\n <input type=\"text\" v-model=\"keyword\" @change=\"searchHandler\" placeholder=\"请输入地址\" />\r\n </div>\r\n <div class=\"server_list\" v-if=\"keyword\">\r\n <div class=\"text_box\" v-for=\"(item, index) in addressList\" @click=\"chooseHandler(item, index)\" :class=\"{'active': index == activeIndex}\">\r\n <div class=\"address_name\">{{ item.name }}</div>\r\n <div class=\"address_detail\">{{ ( item.district || '' ) + ( item.address || '' ) }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { searchFun } from '@/utils/map'\r\n import { leftCopy } from '@/utils/common'\r\n export default {\r\n name: \"addressMap\",\r\n data() {\r\n return {\r\n map: '',\r\n mapPosition: 60,\r\n source: '',\r\n keyword: '',\r\n addressList: [],\r\n activeIndex: null,\r\n marker: null,\r\n }\r\n },\r\n watch: {\r\n keyword() {\r\n this.searchHandler()\r\n }\r\n },\r\n created() {\r\n this.source = this.$route.query.source || ''\r\n },\r\n async mounted() {\r\n await this.initMap()\r\n },\r\n methods: {\r\n chooseHandler(item, index) {\r\n this.activeIndex = index;\r\n this.addMarker()\r\n },\r\n addMarker() {\r\n if( this.marker ) {\r\n this.map.remove(this.marker)\r\n }\r\n let content = '<div class=\"my-position\"></div>';\r\n let activeObj = this.addressList[this.activeIndex];\r\n this.marker = new AMap.Marker({\r\n position: new AMap.LngLat( activeObj.location.lng, activeObj.location.lat ),\r\n content: content,\r\n offset: new AMap.Pixel(-13, -30)\r\n });\r\n this.map.add(this.marker)\r\n },\r\n // 取消 返回上一页\r\n cancelHandler() {\r\n this.$router.go(-1)\r\n },\r\n // 完成 选择了事发地或者目的地\r\n async successHandler() {\r\n if( this.activeIndex == null ) {\r\n this.$toast('请选择具体地址')\r\n return\r\n }\r\n let activeObj = this.addressList[this.activeIndex];\r\n if( this.source == 'address') { // 事发地地址\r\n await this.$store.dispatch('order/setServerCity', activeObj.district)\r\n await this.$store.dispatch('order/setAddress', {\r\n startPoiAddress: activeObj.district + activeObj.address + activeObj.name,\r\n startLat: activeObj.location.lat,\r\n startLng: activeObj.location.lng,\r\n })\r\n } else if( this.source == 'dest' ) { // 目的地地址\r\n await this.$store.dispatch('order/setDestAddress', {\r\n endLat: activeObj.location.lat,\r\n endLng: activeObj.location.lng,\r\n endPoiAddress: activeObj.district + activeObj.address + activeObj.name,\r\n })\r\n }\r\n this.$router.go(-1)\r\n },\r\n initMap() { // 初始化地图\r\n let orderInfo = this.$store.getters.order.localAddress\r\n this.map = new AMap.Map('mapId', {\r\n viewMode: '2D', // 默认使用 2D 模式\r\n zoom:11, //初始化地图层级\r\n center: [orderInfo.lng, orderInfo.lat] //初始化地图中心点\r\n })\r\n },\r\n async searchHandler() { // 根据当前定位城市搜索,将选中的地址清空\r\n let localCityCode = this.$store.getters.order.localAddress.localCityCode\r\n this.activeIndex = null\r\n if( this.keyword ) {\r\n this.addressList = await searchFun(this.map, localCityCode, this.keyword)\r\n } else {\r\n this.addressList = []\r\n }\r\n\r\n }\r\n }\r\n }\r\n</script>\r\n<style>\r\n @import '@/styles/common.css';\r\n</style>\r\n<style scoped lang=\"less\">\r\n .map_wrap {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n z-index: -1;\r\n }\r\n .button_wrap {\r\n width: 100%;\r\n padding: 5px;\r\n box-sizing: border-box;\r\n zoom: 1;\r\n .cancel_btn {\r\n width: 50px;\r\n height: 27px;\r\n background: #F37877;\r\n font-size: 12px;\r\n text-align: center;\r\n line-height: 27px;\r\n color: #fff;\r\n border-radius: 3px;\r\n float: left;\r\n }\r\n .confirm_btn {\r\n width: 50px;\r\n height: 27px;\r\n background: rgba(5,193,98,1);\r\n font-size: 12px;\r\n text-align: center;\r\n line-height: 27px;\r\n color: #fff;\r\n border-radius: 3px;\r\n float: right;\r\n }\r\n }\r\n .search_wrap {\r\n background-color: #fff;\r\n position: absolute;\r\n width: 100%;\r\n bottom: 0;\r\n left: 0;\r\n overflow: auto;\r\n .section {\r\n height: 35px;\r\n width: 100%;\r\n background-color: #fff;\r\n position: fixed;\r\n /*top: calc(50% - 10px);*/\r\n padding-top: 10px;\r\n input {\r\n width: 90%;\r\n margin: 0 auto;\r\n display: block;\r\n border: none;\r\n height: 30px;\r\n border-radius: 3px;\r\n padding: 0 10px;\r\n background: #e2e0e0;\r\n font-size: 14px;\r\n }\r\n }\r\n .server_list {\r\n overflow-y: auto;\r\n padding-top: 30px;\r\n .text_box {\r\n margin: 10px 25px;\r\n padding-top: 10px;\r\n .address_name {\r\n font-size: 14px !important;\r\n color: rgba(0,0,0,0.8);\r\n }\r\n .address_detail {\r\n margin-top: 3px;\r\n color: #c3c3c3 !important;\r\n font-size: 12px !important;\r\n }\r\n }\r\n .active {\r\n .address_name {\r\n color: green !important;\r\n }\r\n .address_detail {\r\n color: green !important;\r\n }\r\n }\r\n }\r\n }\r\n</style>\r\n","E:\\work\\sino\\sino-h5\\src\\views\\index\\rescue.vue",["146","147","148","149","150","151","152"],"<template>\r\n <div class=\"main_wrap\">\r\n <div class=\"map_wrap\" id=\"mapId\">\r\n </div>\r\n <!--服务信息-->\r\n <div class=\"server_wrap\" @touchmove.stop=\"touchmoveHandle\" @touchstart.stop=\"touchstartHandle\" @touchend.stop=\"touchendHandle\">\r\n <tab-bar :click-flag=\"false\" :active-tab=\"activeTab\" :server-list=\"serverList\"></tab-bar>\r\n <div class=\"server_main\">\r\n <!-- 车牌号 -->\r\n <div class=\"form_item border_bottom\">\r\n <img class=\"radio\" src=\"@/assets/radio.png\" alt=\"\">\r\n <div class=\"form_label\">车牌号:</div>\r\n <input type=\"text\" v-model=\"form.plateNumber\" placeholder=\"请输入车牌号\" class=\"input_class\" />\r\n </div>\r\n <!-- 姓名 -->\r\n <div class=\"form_item border_bottom\">\r\n <img class=\"radio\" src=\"@/assets/radio.png\" alt=\"\">\r\n <div class=\"form_label\">姓 名:</div>\r\n <input type=\"text\" v-model=\"form.name\" placeholder=\"请输入您的姓名\" class=\"input_class\" />\r\n </div>\r\n <!-- 手机号 -->\r\n <div class=\"form_item border_bottom\">\r\n <img class=\"radio\" src=\"@/assets/radio.png\" alt=\"\">\r\n <div class=\"form_label\">手机号:</div>\r\n <input type=\"number\" v-model=\"form.phone\" placeholder=\"请输入您的手机号\" class=\"input_class\" />\r\n </div>\r\n <!-- 手机号 -->\r\n <div class=\"form_item border_bottom\">\r\n <img class=\"radio\" src=\"@/assets/radio.png\" alt=\"\">\r\n <div class=\"form_label\">预计:</div>\r\n <div class=\"incident_text\">\r\n <span class=\"money_count\">{{ extraFee }}</span>元起\r\n <div class=\"fee_desc\" @click=\"show = true\">费用说明</div>\r\n </div>\r\n </div>\r\n <div class=\"protocol_wrap\">\r\n <van-checkbox v-model=\"checked\" icon-size=\"15px\" shape=\"square\">我已经阅读并同意</van-checkbox>\r\n <span class=\"server_protocol\" @click=\"protocolShow = true\">《道路救援服务协议》</span>\r\n </div>\r\n <attention-item color=\"#939393\" attention=\"温馨提示:服务申请后,请保持您的手机畅通,我们的工作人员会与您联系并确认救援金额,在线支付完成后会及时安排救援人员前往施救,谢谢。\"></attention-item>\r\n </div>\r\n <div class=\"btn_wrap\" v-if=\"slideShow\">\r\n <common-btn title=\"呼叫救援\" @ownClick=\"ownClickHandler\"></common-btn>\r\n </div>\r\n </div>\r\n\r\n <van-dialog v-model=\"show\" title=\"费用说明\" show-cancel-button v-if=\"show\">\r\n <fee-component :fee-title=\"feeTitle\" :fee-list-arr=\"feeListArr\" :active-tab=\"activeTab\"></fee-component>\r\n </van-dialog>\r\n <van-dialog v-model=\"protocolShow\" title=\"中道救援服务协议\" show-cancel-button>\r\n <protocol-content />\r\n </van-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { Dialog } from 'vant';\r\n import protocolContent from \"@/components/protocolContent\";\r\n import feeComponent from \"@/components/feeComponent\";\r\n import { getFeeTitle, feeList } from '@/utils/common'\r\n import { getFee, getCurrentOrder, createOrder } from '@/api/order'\r\n import { serverList } from '@/utils/serverMap'\r\n import tabBar from \"@/components/tabBar\";\r\n import AttentionItem from '@/components/attentionItem'\r\n import commonBtn from \"@/components/commonBtn\";\r\n import { myMixins } from '@/utils/myMixins.js'\r\n export default {\r\n name: \"rescuePage\",\r\n mixins: [myMixins],\r\n data() {\r\n return {\r\n map: '',\r\n activeTab: 0,\r\n serverList: serverList,\r\n checked: false,\r\n feeTitle: '',\r\n feeListArr: [],\r\n extraFee: 0,\r\n show: false,\r\n protocolShow: false,\r\n marker: null,\r\n destMarker: null,\r\n form: {\r\n plateNumber: '',\r\n name: '',\r\n phone: '',\r\n }\r\n }\r\n },\r\n components: {\r\n tabBar,\r\n AttentionItem,\r\n commonBtn,\r\n feeComponent,\r\n protocolContent\r\n },\r\n async mounted() {\r\n await this.initMap()\r\n await this.setTab() // 设置服务\r\n await this.setMarker()\r\n await this.getFeeFun();\r\n },\r\n methods: {\r\n async ownClickHandler() {\r\n if( !this.form.plateNumber ) {\r\n this.$toast('请输入车牌号')\r\n return\r\n }\r\n if( !this.form.name ) {\r\n this.$toast('请输入您的姓名')\r\n return\r\n }\r\n if( !this.form.phone ) {\r\n this.$toast('请输入您的手机号')\r\n return\r\n }\r\n if( !(/^1[3456789]\\d{9}$/.test(this.form.phone)) ) {\r\n this.$toast('请输入正确的手机号')\r\n return\r\n }\r\n if( !this.checked ) {\r\n this.$toast('请先同意协议')\r\n return\r\n }\r\n let res = await getCurrentOrder({\r\n appCode: localStorage.getItem('appCode'),\r\n userPhone: this.form.phone,\r\n isPresent: 1,\r\n plateNumber: this.form.plateNumber\r\n })\r\n if( res?.ticketId ) { // 已存在订单\r\n Dialog.alert({\r\n title: '提示',\r\n message: '您当前已有订单,不能重复下单',\r\n }).then(async () => {\r\n await this.goDetail(res)\r\n /*this.goPage('orderStatus', {\r\n ticketId: res.ticketId,\r\n userPhone: this.form.phone,\r\n plateNumber: this.form.plateNumber\r\n })*/\r\n })\r\n } else { // 不存在订单,创建订单\r\n let params = this.getParams()\r\n let res = await createOrder({\r\n ...params,\r\n userPhone: this.form.phone,\r\n userName: this.form.name,\r\n plateNumber: this.form.plateNumber\r\n })\r\n await this.$store.dispatch('order/setAddress', {})\r\n await this.$store.dispatch('order/setDestAddress', {})\r\n await this.$store.dispatch('order/setOrderInfo', {})\r\n await this.goDetail(res)\r\n /*if( res.orderStatus == 17 ) { // 代付款页\r\n this.goPage('payPage', {\r\n ticketId: res.ticketId\r\n })\r\n } else { // 订单状态页\r\n this.goPage('orderStatus', {\r\n ticketId: res.ticketId,\r\n userPhone: this.form.phone,\r\n plateNumber: this.form.plateNumber\r\n })\r\n }*/\r\n }\r\n\r\n },\r\n goDetail(result) {\r\n if( result.orderStatus == 17 ) { // 代付款页\r\n this.goPage('payPage', {\r\n ticketId: result.ticketId\r\n })\r\n } else { // 订单状态页\r\n this.goPage('orderStatus', {\r\n ticketId: result.ticketId,\r\n userPhone: this.form.phone,\r\n plateNumber: this.form.plateNumber\r\n })\r\n }\r\n },\r\n getParams() {\r\n const address = this.$store.getters.order.address\r\n const destAddress = this.$store.getters.order.destAddress\r\n const orderInfo = this.$store.getters.order.orderInfo\r\n let params = {\r\n appCode: localStorage.getItem('appCode'),\r\n serviceId: this.serverList[this.activeTab].serverId,\r\n startLat: address?.startLat,\r\n startLng: address?.startLng,\r\n startPoiAddress: address?.startPoiAddress,\r\n endLat: destAddress?.endLat || '',\r\n endLng: destAddress?.endLng || '',\r\n endPoiAddress: destAddress?.endPoiAddress || '',\r\n isAppoint: orderInfo?.isAppoint,\r\n appointTime: orderInfo?.appointTime ? orderInfo?.appointTime + ':00' : '',\r\n positionEnvironment: parseInt(orderInfo?.positionEnvironment),\r\n }\r\n return params\r\n },\r\n async getFeeFun() { // 获取费用说明\r\n let params = this.getParams()\r\n let res = await getFee(params)\r\n console.log('feee', res)\r\n this.extraFee = res?.extraFee;\r\n this.feeTitle = await getFeeTitle(this.serverList[this.activeTab].serverId, res.finishedPrice, res.trailUndergroundFee, res.finishedLimitedMileage, res.finishedExcessUnitPrice)\r\n let unitPrice = res?.finishedExcessUnitPrice || 0;\r\n this.feeListArr = await feeList(unitPrice)\r\n },\r\n initMap() {\r\n this.map = new AMap.Map('mapId', {\r\n viewMode: '2D', // 默认使用 2D 模式\r\n zoom:11, //初始化地图层级\r\n })\r\n },\r\n setTab() {\r\n this.activeTab = this.$store.getters.order.orderInfo.activeTab\r\n },\r\n setMarker() {\r\n this.addMarker()\r\n if( this.serverList[this.activeTab].serverId == 1041 ) {\r\n this.addDestMarker()\r\n }\r\n },\r\n // 事发地 marker\r\n addMarker() {\r\n const address = this.$store.getters.order.address\r\n if( this.marker ) {\r\n this.map.remove(this.marker)\r\n }\r\n let content = '<div class=\"my-position\"></div>';\r\n this.marker = new AMap.Marker({\r\n position: new AMap.LngLat( address.startLng, address.startLat ),\r\n content: content,\r\n offset: new AMap.Pixel(-13, -30)\r\n });\r\n this.map.add(this.marker)\r\n },\r\n // 目的地 marker\r\n addDestMarker() {\r\n const destAddress = this.$store.getters.order.destAddress\r\n if( this.destMarker ) {\r\n this.map.remove(this.destMarker)\r\n }\r\n let content = '<div class=\"dest-position\"></div>';\r\n this.destMarker = new AMap.Marker({\r\n position: new AMap.LngLat( destAddress?.endLng, destAddress?.endLat ),\r\n content: content,\r\n offset: new AMap.Pixel(-13, -30)\r\n });\r\n this.map.add(this.destMarker)\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n .main_wrap {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n .map_wrap {\r\n width: 100%;\r\n flex: 1;\r\n /*height: 80vh;*/\r\n }\r\n .server_wrap {\r\n padding-bottom: 10px;\r\n width: 100%;\r\n /*position: fixed;\r\n bottom: 0;\r\n left: 0;*/\r\n background: #fff;\r\n z-index: 10000000 !important;\r\n .btn_wrap {\r\n width: 74%;\r\n margin: 5px auto 10px;\r\n }\r\n .server_main {\r\n .form_item {\r\n width: calc(100% - 20px);\r\n box-sizing: border-box;\r\n height: 50px;\r\n line-height: 50px;\r\n display: flex;\r\n font-size: 14px;\r\n margin-left: 10px;\r\n align-items: center;\r\n .radio {\r\n width: 10px;\r\n height: 11px;\r\n margin-right: 10px;\r\n }\r\n .form_label {\r\n width: 60px;\r\n text-align: right;\r\n }\r\n .input_class {\r\n flex: 1;\r\n height: 50px;\r\n line-height: 50px;\r\n border: 0;\r\n background: none;\r\n }\r\n .incident_text {\r\n color: #252525;\r\n font-size: 13px;\r\n margin-left: 5px;\r\n flex: 1;\r\n display: flex;\r\n .money_count {\r\n font-size: 22px;\r\n color: #2C2A53;\r\n font-weight: bolder;\r\n }\r\n .fee_desc {\r\n margin-left: 5px;\r\n color: #FF9876;\r\n }\r\n }\r\n }\r\n .protocol_wrap {\r\n padding: 15px 10px 0;\r\n display: flex;\r\n .server_protocol {\r\n color: #3364B7;\r\n }\r\n }\r\n .border_bottom {\r\n border-bottom: 1px solid #F1F2F5;\r\n }\r\n }\r\n }\r\n /*底部按钮*/\r\n .bottom_wrap {\r\n position: fixed;\r\n width: 100%;\r\n bottom: 0;\r\n background: #FFFFFF;\r\n box-shadow: 0px -2px 8px 0px rgba(74,74,74,0.08);\r\n z-index: 1000000000 !important;\r\n .wrap {\r\n width: 100%;\r\n display: flex;\r\n }\r\n }\r\n }\r\n\r\n\r\n</style>\r\n<style>\r\n @import '@/styles/common.css';\r\n</style>\r\n","E:\\work\\sino\\sino-h5\\src\\views\\index\\search.vue",["153"],"<template>\r\n <div>\r\n <div class=\"search_wrap\">\r\n <div class=\"search_top\">\r\n <div class=\"input_wrap\">\r\n <input class=\"input_cls\" v-model=\"searchValue\" type=\"text\" placeholder=\"输入手机号 或 车牌号\" />\r\n <div class=\"search_btn\" @click=\"searchHandler\">查询</div>\r\n </div>\r\n </div>\r\n <div class=\"split_bar\"></div>\r\n <div class=\"order_wrap\" v-if=\"orderInfo\">\r\n <div class=\"order_item\" @click=\"goDetailHandler\">\r\n <img src=\"@/assets/point.png\" alt=\"\">\r\n <div class=\"order_detail\">\r\n <div class=\"order_title\">{{orderInfo.serviceName}}</div>\r\n <div class=\"order_code\">订单号:{{orderInfo.ticketId}}</div>\r\n <div class=\"order_time\">提交时间:{{orderInfo.createTime}}</div>\r\n </div>\r\n <div class=\"order_status\">\r\n {{orderInfo.orderStatusName}}\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"order_wrap text-center\" v-if=\"noneOrder\">\r\n 暂无订单\r\n </div>\r\n </div>\r\n <!-- 底部 button -->\r\n <div class=\"bottom_wrap\">\r\n <div class=\"wrap\">\r\n <bottom-item server-name=\"叫服务\" page=\"Home\" :url=\"require('@/assets/server_btn.png')\" @pageClick=\"goPage\"></bottom-item>\r\n <bottom-item server-name=\"查订单\" :active=\"true\" :url=\"require('@/assets/search_active_btn.png')\" ></bottom-item>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { myMixins } from '@/utils/myMixins.js'\r\n import { getCurrentOrder } from '@/api/order'\r\n import BottomItem from '@/components/bottomItem'\r\n export default {\r\n name: \"Search\",\r\n mixins: [ myMixins ],\r\n data() {\r\n return {\r\n searchValue: '',\r\n orderInfo: null,\r\n noneOrder: false,\r\n }\r\n },\r\n components: {\r\n BottomItem\r\n },\r\n methods: {\r\n async searchHandler() {\r\n if( !this.searchValue ) {\r\n this.$toast('查询内容不能为空')\r\n return\r\n }\r\n let data = this.getParams()\r\n this.orderInfo = await getCurrentOrder(data)\r\n if( this.orderInfo ) {\r\n this.noneOrder = false\r\n } else {\r\n this.noneOrder = true\r\n }\r\n },\r\n getParams () {\r\n let data = {\r\n userPhone: '',\r\n plateNumber: '',\r\n appCode: localStorage.getItem('appCode'),\r\n }\r\n if(/^1[3456789]\\d{9}$/.test(this.searchValue)) {\r\n data.userPhone = this.searchValue;\r\n } else {\r\n data.plateNumber = this.searchValue;\r\n }\r\n return data\r\n },\r\n goDetailHandler() {\r\n let data = this.getParams()\r\n if( this.orderInfo.orderStatus == 17 ) {\r\n this.goPage('payPage', {\r\n ticketId: this.orderInfo.ticketId,\r\n ...data\r\n })\r\n } else {\r\n this.goPage('orderStatus', {\r\n ticketId: this.orderInfo.ticketId,\r\n ...data\r\n })\r\n }\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n .search_wrap {\r\n .search_top {\r\n padding: 20px 22px;\r\n .input_wrap {\r\n width: 100%;\r\n box-sizing: border-box;\r\n height: 50px;\r\n border-radius: 25px;\r\n border: 1px solid #D5D7E2;\r\n display: flex;\r\n .input_cls {\r\n flex: 1;\r\n height: 48px;\r\n line-height: 48px;\r\n padding-left: 20px;\r\n font-size: 14px;\r\n border: 0;\r\n background: none;\r\n }\r\n .search_btn {\r\n padding: 0 20px;\r\n border-radius: 25px;\r\n color: #fff;\r\n background: #3364B7;\r\n font-size: 15px;\r\n margin-right: 6px;\r\n height: 38px;\r\n line-height: 38px;\r\n margin-top: 5px;\r\n font-size: 15px;\r\n z-index: 10000;\r\n }\r\n }\r\n }\r\n .split_bar {\r\n width: 100%;\r\n height: 10px;\r\n background-color: #FAFAFA;\r\n }\r\n .text-center {\r\n text-align: center;\r\n }\r\n .order_wrap {\r\n padding: 15px 20px;\r\n .order_item {\r\n width: 100%;\r\n box-sizing: border-box;\r\n border: 1px solid #3364B7;\r\n border-radius: 15px;\r\n padding: 15px 20px 25px 10px;\r\n display: flex;\r\n img {\r\n width: 11px;\r\n height: 11px;\r\n margin-right: 8px;\r\n margin-top: 6px;\r\n }\r\n .order_detail {\r\n flex: 1;\r\n .order_title {\r\n font-size: 16px;\r\n color: #33495E;\r\n font-weight: 500;\r\n }\r\n .order_code {\r\n color: #203152;\r\n font-size: 12px;\r\n font-weight: 500;\r\n line-height: 26px;\r\n }\r\n .order_time {\r\n color: #33495E;\r\n font-size: 10px;\r\n font-weight: 300;\r\n }\r\n }\r\n .order_status {\r\n color: #3374E3;\r\n font-size: 12px;\r\n font-weight: 500;\r\n }\r\n }\r\n }\r\n }\r\n .bottom_wrap {\r\n position: fixed;\r\n width: 100%;\r\n bottom: 0;\r\n background: #FFFFFF;\r\n box-shadow: 0px -2px 8px 0px rgba(74,74,74,0.08);\r\n .wrap {\r\n width: 100%;\r\n display: flex;\r\n }\r\n }\r\n</style>\r\n","E:\\work\\sino\\sino-h5\\src\\views\\index\\orderStatus.vue",["154","155","156","157","158"],"<template>\r\n <div class=\"order_wrap\">\r\n <div class=\"map_wrap\" id=\"mapId\">\r\n </div>\r\n <div class=\"info_wrap\">\r\n <div class=\"refresh_wrap\" @click=\"refreshHandler\">\r\n <img src=\"@/assets/refresh.png\" alt=\"\">\r\n </div>\r\n <div class=\"top_wrap\">\r\n <div class=\"top_line\"></div>\r\n <attention-item :attention=\"attentionStr\"></attention-item>\r\n </div>\r\n <div class=\"order_info\">\r\n <div class=\"order_status_wrap\">\r\n <img v-if=\"orderInfo?.orderStatus == 55 && orderInfo?.appraiseFlag != 1\" class=\"finish_img\" src=\"@/assets/serverSuccess.png\" alt=\"\">\r\n <img v-else class=\"doing_img\" src=\"@/assets/point.png\" alt=\"\">\r\n <div class=\"order_status_info\">\r\n <div class=\"status_str\">{{ statusStr }}</div>\r\n <div class=\"driver_info\" v-if=\"[35,41].includes(orderInfo?.orderStatus) && ( orderInfo?.driveinfo?.driverName || orderInfo?.driveinfo?.driverPhone )\">\r\n {{orderInfo?.driveinfo?.driverName}} {{ (orderInfo?.driveinfo?.driverName && orderInfo?.driveinfo?.driverPhone) ? '-' : '' }} {{orderInfo?.driveinfo?.driverPhone}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--评价-->\r\n <div class=\"judge_wrap\" v-if=\"orderInfo?.orderStatus == 55 && orderInfo?.appraiseFlag != 1\">\r\n <div class=\"judge_title\">\r\n <img src=\"@/assets/radio.png\" alt=\"\">\r\n <span>请您对本次服务进行评价</span>\r\n </div>\r\n <div class=\"judge_level\">\r\n <div class=\"judge_item\" @click=\"chooseJudgeLevel(4)\">\r\n <img src=\"@/assets/satisfiedCheck.png\" v-if=\"judgeContent === 4\" alt=\"\">\r\n <img src=\"@/assets/satisfiedUncheck.png\" v-else alt=\"\">\r\n <div>满意</div>\r\n </div>\r\n <div class=\"judge_item\" @click=\"chooseJudgeLevel(3)\">\r\n <img src=\"@/assets/generalCheck.png\" v-if=\"judgeContent === 3\" alt=\"\">\r\n <img src=\"@/assets/generalUncheck.png\" v-else alt=\"\">\r\n <div>一般</div>\r\n </div>\r\n <div class=\"judge_item\" @click=\"chooseJudgeLevel(2)\">\r\n <img src=\"@/assets/disconentCheck.png\" v-if=\"judgeContent === 2\" alt=\"\">\r\n <img src=\"@/assets/disconentUncheck.png\" v-else alt=\"\">\r\n <div>不满意</div>\r\n </div>\r\n </div>\r\n <textarea class=\"judge_content\" placeholder=\"请输入评价内容\" v-model=\"content\" name=\"\" id=\"\" cols=\"30\" rows=\"10\"></textarea>\r\n <div class=\"btn_wrap\">\r\n <common-btn title=\"提交评价\" @ownClick=\"judgeHandler\"></common-btn>\r\n </div>\r\n </div>\r\n\r\n <!--操作按钮-->\r\n <div>\r\n <operation-btn v-if=\"[31, 35, 41, 50, 51].includes(orderInfo?.orderStatus)\" title=\"联系客服\" :url=\"require('@/assets/callPhone.png')\" :has-distance=\"true\" @ownClick=\"callClient\"></operation-btn>\r\n <operation-btn v-if=\"[35].includes(orderInfo?.orderStatus) && orderInfo?.driveinfo?.driverPhone\" title=\"联系司机\" :url=\"require('@/assets/connectDriver.png')\" :has-distance=\"true\" @ownClick=\"callDriver\"></operation-btn>\r\n <operation-btn v-if=\"[31, 32].includes(orderInfo?.orderStatus)\" title=\"催单\" :url=\"require('@/assets/bell.png')\" :has-distance=\"true\" @ownClick=\"urgedOrder\"></operation-btn>\r\n <operation-btn v-if=\"[35].includes(orderInfo?.orderStatus)\" title=\"服务催促\" :url=\"require('@/assets/bell.png')\" :has-distance=\"true\" @ownClick=\"urgedOrder\"></operation-btn>\r\n <operation-btn v-if=\"[31, 32, 35].includes(orderInfo?.orderStatus)\" title=\"取消订单\" :url=\"require('@/assets/cancel.png')\" :has-distance=\"true\" @ownClick=\"goPage('CancelPage', { ticketId: ticketId })\"></operation-btn>\r\n </div>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { myMixins } from '@/utils/myMixins.js'\r\n import AttentionItem from '@/components/attentionItem'\r\n import operationBtn from \"@/components/operationBtn\";\r\n import commonBtn from \"@/components/commonBtn\";\r\n import { getCurrentOrder, appraise } from '@/api/order'\r\n import { orderStatus } from '@/utils/status'\r\n import { operatorOrder } from '@/api/order'\r\n import { getRoad } from '@/utils/map'\r\n export default {\r\n name: \"orderStatus\",\r\n mixins: [ myMixins ],\r\n data() {\r\n return {\r\n map: '',\r\n marker: '',\r\n destMarker: '',\r\n driverMarker: '',\r\n finishFlag: true,\r\n ticketId: '',\r\n orderInfo: null,\r\n userPhone: '',\r\n plateNumber: '',\r\n attentionStr: '',\r\n statusStr: '',\r\n judgeContent: 0,\r\n content: ''\r\n }\r\n },\r\n components: {\r\n AttentionItem,\r\n operationBtn,\r\n commonBtn\r\n },\r\n async mounted() {\r\n this.ticketId = this.$route.query.ticketId\r\n this.userPhone = this.$route.query.userPhone\r\n this.plateNumber = this.$route.query.plateNumber\r\n await this.initMap()\r\n await this.getOrderInfo()\r\n },\r\n methods: {\r\n async judgeHandler() {\r\n if( !this.judgeContent ) {\r\n this.$toast('请选择满意度');\r\n return\r\n }\r\n await appraise({\r\n appCode: localStorage.getItem('appCode'),\r\n ticketId: this.ticketId,\r\n userPhone: this.userPhone,\r\n serviceLevel: this.judgeContent,\r\n content: this.content,\r\n })\r\n await this.getOrderInfo()\r\n },\r\n chooseJudgeLevel(content) {\r\n this.judgeContent = content\r\n },\r\n async refreshHandler() {\r\n await this.initMap()\r\n await this.getOrderInfo()\r\n },\r\n callDriver() {\r\n window.location.href = 'tel:' + this.orderInfo?.driveinfo?.driverPhone\r\n },\r\n callClient() {\r\n window.location.href = 'tel:' + localStorage.getItem('client');\r\n },\r\n async urgedOrder() {\r\n await operatorOrder({\r\n appCode: localStorage.getItem('appCode'),\r\n ticketId: this.ticketId,\r\n userPhone: this.userPhone,\r\n plateNumber: this.plateNumber,\r\n type: 1,\r\n content: '服务催促'\r\n })\r\n this.$toast('已催促')\r\n },\r\n getStatusStr() {\r\n let res = orderStatus(this.orderInfo.orderStatus, this.orderInfo.appraiseFlag)\r\n this.statusStr = res.name;\r\n this.attentionStr = res.tip\r\n },\r\n initMap() {\r\n this.map = new AMap.Map('mapId', {\r\n viewMode: '2D', // 默认使用 2D 模式\r\n zoom:11, //初始化地图层级\r\n })\r\n },\r\n markerFn(lng, lat, marker , markerCls) {\r\n if(marker) {\r\n this.map.remove(marker)\r\n }\r\n let content = `<div class=\"${markerCls}\"></div>`;\r\n marker = new AMap.Marker({\r\n position: new AMap.LngLat( lng, lat ),\r\n content: content,\r\n offset: new AMap.Pixel(-13, -30)\r\n });\r\n this.map.add(marker)\r\n },\r\n async getOrderInfo() {\r\n this.orderInfo = await getCurrentOrder({\r\n ticketId: this.ticketId,\r\n userPhone: this.userPhone,\r\n plateNumber: this.plateNumber\r\n })\r\n this.getStatusStr()\r\n // 目的地 marker\r\n if( this?.orderInfo?.desLat && this?.orderInfo?.desLng ) {\r\n this.markerFn(this.orderInfo.desLng, this.orderInfo.desLat, this.destMarker, 'dest-position')\r\n }\r\n // 事发地 marker\r\n if( this?.orderInfo?.startLng && this?.orderInfo?.startLat ) {\r\n this.markerFn(this.orderInfo.startLng, this.orderInfo.startLat, this.marker, 'my-position')\r\n }\r\n //\r\n if( this?.orderInfo?.driveinfo?.driverLat && this?.orderInfo?.driveinfo?.driverLng ) {\r\n this.markerFn(this?.orderInfo?.driveinfo?.driverLng, this?.orderInfo?.driveinfo?.driverLat, this.driverMarker, 'driver-position')\r\n }\r\n if( this?.orderInfo?.orderStatus == 35 ) {\r\n let res = await getRoad(this.map, this?.orderInfo?.driveinfo?.driverLng, this?.orderInfo?.driveinfo?.driverLat, this.orderInfo.startLng, this.orderInfo.startLat)\r\n this.drawRoute(res.routes[0])\r\n }\r\n },\r\n drawRoute(route) {\r\n let path = this.parseRouteToPath(route)\r\n let routeLine = new AMap.Polyline({\r\n path: path,\r\n isOutline: true,\r\n outlineColor: '#ffeeee',\r\n borderWeight: 2,\r\n strokeWeight: 5,\r\n strokeOpacity: 0.9,\r\n strokeColor: '#0091ff',\r\n lineJoin: 'round'\r\n })\r\n this.map.add(routeLine);\r\n this.map.setFitView([ this.driverMarker, this.marker, routeLine ])\r\n },\r\n parseRouteToPath(route) { // 获取第一个路径规划\r\n let path = []\r\n for (let i = 0, l = route.steps.length; i < l; i++) {\r\n let step = route.steps[i]\r\n for (let j = 0, n = step.path.length; j < n; j++) {\r\n path.push(step.path[j])\r\n }\r\n }\r\n return path\r\n },\r\n }\r\n }\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.order_wrap {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n .map_wrap {\r\n flex: 1;\r\n }\r\n .info_wrap {\r\n background: #fff;\r\n padding-bottom: 25px;\r\n position: relative;\r\n .refresh_wrap {\r\n position: absolute;\r\n right: 5px;\r\n top: -35px;\r\n background: #fafafa;\r\n width: 30px;\r\n height: 30px;\r\n img {\r\n width: 30px;\r\n height: 30px;\r\n }\r\n }\r\n .top_wrap {\r\n padding-top: 10px;\r\n background: #fafafa;\r\n .top_line {\r\n width: 34px;\r\n height: 3px;\r\n background: #9FA5B4;\r\n border-radius: 3px;\r\n opacity: 0.19;\r\n margin: 0 auto;\r\n }\r\n }\r\n .order_info {\r\n padding: 25px 20px 0;\r\n .order_status_wrap {\r\n text-align: left;\r\n padding: 0 0 25px;\r\n display: flex;\r\n .doing_img {\r\n width: 11px;\r\n height: 11px;\r\n margin-right: 8px;\r\n margin-top: 8px;\r\n }\r\n .finish_img {\r\n width: 30px;\r\n height: 30px;\r\n margin-right:8px;\r\n }\r\n .order_status_info {\r\n flex: 1;\r\n .status_str {\r\n font-size: 18px;\r\n font-weight: 500;\r\n color: #33495E;\r\n }\r\n .driver_info {\r\n font-size: 13px;\r\n color: #33495E;\r\n margin-top: 2px;\r\n }\r\n }\r\n }\r\n .btn_wrap {\r\n width: 80%;\r\n margin: 15px auto 25px;\r\n }\r\n }\r\n }\r\n}\r\n\r\n /*评价*/\r\n .judge_wrap {\r\n .judge_title {\r\n width: 100%;\r\n padding: 0 20px;\r\n text-align: left;\r\n font-size: 14px;\r\n color: rgba(0,0,0,0.7);\r\n img {\r\n width: 10px;\r\n height: 11px;\r\n margin-right: 10px;\r\n }\r\n }\r\n .judge_level {\r\n display: flex;\r\n justify-content: space-evenly;\r\n margin-top: 30px;\r\n .judge_item {\r\n width: 50px;\r\n color: rgba(0,0,0,0.3);\r\n font-size: 12px;\r\n text-align: center;\r\n img {\r\n width: 40px;\r\n height: 40px;\r\n }\r\n }\r\n }\r\n .judge_content {\r\n width: calc(100% - 20px);\r\n text-align: left;\r\n margin: 10px;\r\n border: 1px solid #ccc;\r\n padding: 5px;\r\n box-sizing: border-box;\r\n border-radius: 5px;\r\n height: 60px;\r\n font-size: 12px;\r\n }\r\n .btn_wrap {\r\n width: 74%;\r\n margin: 15px auto;\r\n }\r\n }\r\n</style>\r\n","E:\\work\\sino\\sino-h5\\src\\views\\index\\cancel.vue",["159"],"<template>\r\n <div class=\"cancel_wrap\">\r\n <attention-item attention=\"温馨提示:取消收费规则 1.非预约案件报案成功后10分钟内可免费取消预约案件在距预约时间两个小时之前可免费取消2.非预约案件超过10分钟、预约案件距预约时间两个小时之内、师傅到达现场之前取消将收取服务费用的50%作为服务师傅的空驶费用3.师傅到达现场之后不再支持取消订单4.有任何收费疑问可以拨打24小时客服电话400-920-1995。\"></attention-item>\r\n <div class=\"cancel_list\">\r\n <div class=\"list_item\" v-for=\"(item, index) in serverList\" @click=\"clickHandler(index)\">\r\n <img v-if=\"index == selected\" src=\"@/assets/checked.png\" alt=\"\">\r\n <img v-else src=\"@/assets/unchecked.png\" alt=\"\">\r\n <span>{{item.text}}</span>\r\n </div>\r\n </div>\r\n <div class=\"btn_wrap\">\r\n <common-btn title=\"确认取消\" @ownClick=\"cancelHandler\"></common-btn>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { myMixins } from '@/utils/myMixins.js'\r\n import commonBtn from \"@/components/commonBtn\";\r\n import AttentionItem from '@/components/attentionItem'\r\n import { operatorOrder } from '@/api/order'\r\n export default {\r\n name: \"CancelPage\",\r\n components: {\r\n AttentionItem,\r\n commonBtn\r\n },\r\n mixins: [ myMixins ],\r\n data() {\r\n return {\r\n serverList: [\r\n { text: '车子恢复正常了' },\r\n { text: '车子已找人处理或被交警拖走' },\r\n { text: '人不在车边' },\r\n { text: '救援时效慢' },\r\n { text: '其他原因' },\r\n ],\r\n selected: null,\r\n ticketId: ''\r\n }\r\n },\r\n async mounted() {\r\n this.ticketId = this.$route.query.ticketId\r\n },\r\n methods: {\r\n clickHandler(index) {\r\n this.selected = index\r\n },\r\n async cancelHandler() {\r\n if( this.selected == null ) {\r\n this.$toast('请选择取消原因')\r\n return\r\n }\r\n this.$toast.loading({\r\n message: '加载中...',\r\n forbidClick: true,\r\n duration: 0\r\n })\r\n try {\r\n await operatorOrder({\r\n appCode: localStorage.getItem('appCode'),\r\n ticketId: this.ticketId,\r\n type: 2,\r\n content: this.serverList[this.selected].text\r\n })\r\n this.goPage('Home')\r\n }finally {\r\n this.$toast.clear()\r\n }\r\n }\r\n }\r\n }\r\n</script>\r\n\r\n<style scoped lang=\"less\">\r\n.cancel_wrap {\r\n padding-top: 10px;\r\n .cancel_list {\r\n padding-left: 15px;\r\n .list_item {\r\n border-bottom: 1px solid rgba(233, 233, 234, 0.6);\r\n font-size: 15px;\r\n height: 55px;\r\n line-height: 55px;\r\n font-weight: 400;\r\n color: #203152;\r\n img {\r\n width: 16px;\r\n height: 16px;\r\n margin-right: 6px;\r\n vertical-align: middle;\r\n }\r\n }\r\n }\r\n .btn_wrap {\r\n width: 74%;\r\n margin: 50px auto 10px;\r\n }\r\n}\r\n</style>\r\n","E:\\work\\sino\\sino-h5\\src\\views\\index\\index.vue",["160","161","162","163","164","165","166","167","168"],"<template>\r\n <div class=\"main_wrap\">\r\n <div class=\"map_wrap\" id=\"mapId\">\r\n </div>\r\n <!--服务信息-->\r\n <div class=\"server_wrap\" @touchmove.stop=\"touchmoveHandle\" @touchstart.stop=\"touchstartHandle\" @touchend.stop=\"touchendHandle\">\r\n <tab-bar @changeTab=\"changeTabHandler\" :click-flag=\"true\" :active-tab=\"activeTab\" :server-list=\"serverList\"></tab-bar>\r\n <div class=\"server_main\">\r\n <div class=\"address_item pt15\" @click=\"goPage('addressMap', { source: 'address' })\">\r\n <img class=\"address_icon\" src=\"@/assets/addressPoint.png\" alt=\"\">\r\n <div class=\"address\">{{form.startPoiAddress}}</div>\r\n <img class=\"arrow_icon\" src=\"@/assets/arrow.png\" alt=\"\">\r\n </div>\r\n <div class=\"address_item pb15 border_bottom\" v-if=\"serverList[activeTab].serverId == 1041\" @click=\"goPage('addressMap', { source: 'dest' })\">\r\n <img class=\"address_icon\" src=\"@/assets/destionAddress.png\" alt=\"\">\r\n <div class=\"address\" :class=\"{ 'placeholder': !form.endPoiAddress }\">{{form.endPoiAddress || '您的拖车目的地'}}</div>\r\n <img class=\"arrow_icon\" src=\"@/assets/arrow.png\" alt=\"\">\r\n </div>\r\n <!--车辆位置-->\r\n <div class=\"form_item border_bottom\">\r\n <img class=\"radio\" src=\"@/assets/radio.png\" alt=\"\">\r\n <div class=\"form_label\">车辆位于</div>\r\n <van-radio-group class=\"flex_right\" v-model=\"form.positionEnvironment\" icon-size=\"16px\" direction=\"horizontal\">\r\n <van-radio name=\"1\">地面</van-radio>\r\n <van-radio name=\"6\">地库</van-radio>\r\n <van-radio name=\"2\">高架</van-radio>\r\n </van-radio-group>\r\n </div>\r\n <!--预约时间-->\r\n <div class=\"form_item border_bottom\" @click=\"show = true\" v-if=\"slideShow\">\r\n <img class=\"appoint_time\" src=\"@/assets/appointTime.png\" alt=\"\">\r\n <div class=\"form_label\">预约时间</div>\r\n <div class=\"form_time\">\r\n <div>{{form.appointTime || '尽快到'}}</div>\r\n <img class=\"arrow_icon\" src=\"@/assets/arrow.png\" alt=\"\">\r\n </div>\r\n </div>\r\n <attention-item color=\"#939393\" :attention=\"serverList[activeTab].attentionTip\" v-if=\"slideShow\"></attention-item>\r\n </div>\r\n <div class=\"btn_wrap\" v-if=\"slideShow\">\r\n <common-btn @ownClick=\"ownClickHandler\"></common-btn>\r\n </div>\r\n </div>\r\n <!-- 底部按钮 -->\r\n <div class=\"bottom_wrap\">\r\n <div class=\"wrap\">\r\n <bottom-item server-name=\"叫服务\" :active=\"true\"></bottom-item>\r\n <bottom-item server-name=\"查订单\" :url=\"require('@/assets/search_btn.png')\" page=\"Search\" @pageClick=\"goPage\"></bottom-item>\r\n </div>\r\n </div>\r\n <van-popup v-model=\"show\" v-if=\"show\" position=\"bottom\">\r\n <van-picker show-toolbar title=\"预约时间\" :columns=\"columns\" @cancel=\"show = false\" @confirm=\"appointHandler\" />\r\n </van-popup>\r\n </div>\r\n</template>\r\n\r\n<script>\r\n import { getAppointFun } from '@/utils/appointTime'\r\n import { serverList } from '@/utils/serverMap'\r\n import { getClientPhone } from '@/api/order'\r\n import tabBar from \"@/components/tabBar\";\r\n import BottomItem from '@/components/bottomItem'\r\n import AttentionItem from '@/components/attentionItem'\r\n import commonBtn from \"@/components/commonBtn\";\r\n import { getLocal, getAddress } from '@/utils/map'\r\n import { myMixins } from '@/utils/myMixins.js'\r\n export default {\r\n name: \"Home\",\r\n mixins: [myMixins],\r\n data() {\r\n return {\r\n map: '',\r\n location: [],\r\n locationAddress: '',\r\n activeTab: 0,\r\n serverList: serverList,\r\n radio: '',\r\n show: false, // 预约时间弹框\r\n form: {\r\n startLat: '',\r\n startLng: '',\r\n startPoiAddress: '',\r\n endLat: '',\r\n endLng: '',\r\n endPoiAddress: '',\r\n isAppoint: 0,\r\n appointTime: '',\r\n positionEnvironment: '',\r\n },\r\n marker: null,\r\n destMarker: null,\r\n columns: [],\r\n }\r\n },\r\n components: {\r\n BottomItem,\r\n tabBar,\r\n AttentionItem,\r\n commonBtn\r\n },\r\n async mounted() {\r\n if( this.$route.query.appCode ) { // 获取 appCode 存入缓存\r\n localStorage.setItem('appCode', this.$route.query.appCode)\r\n }\r\n this.getClientHandler() // 获取客服电话\r\n await this.initMap() // 初始化地图\r\n this.columns = getAppointFun(new Date()) // 获取预约时间 picker\r\n await this.initData()\r\n if( ! (this.form && this.form.startPoiAddress) ) { // 缓存里没有地址,获取定位地址\r\n await this.setLocalInfo()\r\n }\r\n // 添加 事发地 marker\r\n this.addMarker()\r\n // 拖车并且目的地存在,设置目的地 marker\r\n if( this.serverList[this.activeTab].serverId == 1041 && this.form.endPoiAddress ) {\r\n this.addDestMarker()\r\n }\r\n },\r\n async beforeDestroy() {\r\n await this.saveAddress()\r\n await this.saveDestAddress()\r\n await this.setOrder()\r\n },\r\n methods: {\r\n // 事发地 marker\r\n addMarker() {\r\n if( this.marker ) {\r\n this.map.remove(this.marker)\r\n }\r\n let content = '<div class=\"my-position\"></div>';\r\n this.marker = new AMap.Marker({\r\n position: new AMap.LngLat( this.form.startLng, this.form.startLat ),\r\n content: content,\r\n offset: new AMap.Pixel(-13, -30)\r\n });\r\n this.map.add(this.marker)\r\n },\r\n // 目的地 marker\r\n addDestMarker() {\r\n if( this.destMarker ) {\r\n this.map.remove(this.destMarker)\r\n }\r\n let content = '<div class=\"dest-position\"></div>';\r\n this.destMarker = new AMap.Marker({\r\n position: new AMap.LngLat( this.form.endLng, this.form.endLat ),\r\n content: content,\r\n offset: new AMap.Pixel(-13, -30)\r\n });\r\n this.map.add(this.destMarker)\r\n },\r\n async getClientHandler() { // 根据 appCode 获取客服电话\r\n let res = await getClientPhone({\r\n appCode: localStorage.getItem('appCode'),\r\n })\r\n let client\r\n if( res && res.phone.length > 0 ) {\r\n client = res.phone[0].phone\r\n } else {\r\n client = '4009201995'\r\n }\r\n localStorage.setItem('client', client)\r\n // alert(localStorage.getItem('client'))\r\n },\r\n async initData() {\r\n await this.initOrderInfo()\r\n await this.initAddress()\r\n await this.initDestAddress()\r\n },\r\n // 设置 表单除地址外的信息\r\n initOrderInfo() {\r\n const orderInfo = this.$store.getters.order.orderInfo\r\n this.form.isAppoint = (orderInfo && orderInfo.isAppoint) || 0\r\n this.form.appointTime = ( orderInfo && orderInfo.appointTime ) || ''\r\n this.form.positionEnvironment = ( orderInfo && orderInfo.positionEnvironment ) || ''\r\n this.activeTab = (orderInfo && orderInfo.activeTab) || 0\r\n },\r\n // 设置事发地\r\n initAddress() {\r\n const address = this.$store.getters.order.address\r\n const localAddress = this.$store.getters.order.localAddress\r\n this.form.startPoiAddress = (address && address.startPoiAddress ) || ( localAddress && localAddress.startPoiAddress )\r\n this.form.startLat = (address && address.startLat ) || ( localAddress && localAddress.startLat )\r\n this.form.startLng = (address && address.startLng ) || ( localAddress && localAddress.startLng )\r\n },\r\n // 设置目的地\r\n initDestAddress() {\r\n const destAddress = this.$store.getters.order.destAddress\r\n if( this.serverList[this.activeTab].serverId == 1041 ) {\r\n this.form.endPoiAddress = (destAddress && destAddress.endPoiAddress) || ''\r\n this.form.endLat = ( destAddress && destAddress.endLat ) || ''\r\n this.form.endLng = ( destAddress && destAddress.endLng ) || ''\r\n } else {\r\n this.form.endPoiAddress = '';\r\n this.form.endLat = '';\r\n this.form.endLng = '';\r\n }\r\n },\r\n // 保存事发地地址\r\n async saveAddress() {\r\n await this.$store.dispatch('order/setAddress', {\r\n startPoiAddress: this.form.startPoiAddress,\r\n startLat: this.form.startLat,\r\n startLng: this.form.startLng,\r\n })\r\n },\r\n // 保存目的地地址\r\n async saveDestAddress() {\r\n if( this.serverList[this.activeTab].serverId == 1041 ) {\r\n await this.$store.dispatch('order/setDestAddress', {\r\n endPoiAddress: this.form.endPoiAddress,\r\n endLat: this.form.endLat,\r\n endLng: this.form.endLng,\r\n })\r\n }\r\n },\r\n // 保存下单信息\r\n async setOrder() {\r\n await this.$store.dispatch('order/setOrderInfo', {\r\n serviceId: this.serverList[this.activeTab].serverId,\r\n activeTab: this.activeTab,\r\n appointTime: this.form.appointTime,\r\n isAppoint: this.form.isAppoint,\r\n positionEnvironment: this.form.positionEnvironment\r\n })\r\n },\r\n // 保存定位地址\r\n async saveLocalAddress(obj) {\r\n await this.$store.dispatch('order/setLocalAddress', obj)\r\n },\r\n // 定位地址\r\n async setLocalInfo() {\r\n this.location = await getLocal(this.map) // 获取经纬度\r\n this.map.setCenter(this.location) // 设置地图中心点\r\n let tempAddress = await getAddress(this.map, this.location) // 设置定位\r\n this.form.startPoiAddress = tempAddress.regeocode.formattedAddress\r\n this.form.startLng = this.location.lng\r\n this.form.startLat = this.location.lat\r\n // 设置当前服务的城市\r\n let city = '';\r\n city = tempAddress.regeocode.addressComponent.province + tempAddress.regeocode.addressComponent.city\r\n this.$store.dispatch('order/setServerCity', city)\r\n // 设置定位信息\r\n let localObj = {\r\n address: this.form.startPoiAddress,\r\n lat: this.form.startLat,\r\n lng: this.form.startLng,\r\n localCityCode: tempAddress.regeocode.addressComponent.adcode\r\n }\r\n // 设置 当前定位位置信息\r\n await this.saveLocalAddress(localObj)\r\n // 初始化 设置事发地\r\n await this.saveAddress()\r\n },\r\n initMap() { // 初始化地图\r\n this.map = new AMap.Map('mapId', {\r\n viewMode: '2D', // 默认使用 2D 模式\r\n zoom:11, //初始化地图层级\r\n })\r\n },\r\n async ownClickHandler() { // 将事发地,目的地,服务类型,车辆位置,预约时间存入,跳转到救援页\r\n if( !this.form.startPoiAddress ) {\r\n this.$toast('请先选择事发地')\r\n return false\r\n }\r\n if( this.serverList[this.activeTab].serverId == 1041 && !this.form.endPoiAddress ) {\r\n this.$toast('请选择拖车目的地')\r\n return false\r\n }\r\n if( this.serverList[this.activeTab].serverId == 2160 ) { // 判断服务城市是否开通上门充电\r\n let chargeCityArr = ['北京', '上海', '杭州', '广州', '深圳', '东莞', '成都', '苏州', '无锡', '常州', '宁波', '南京', '武汉'];\r\n const serverCity = this.$store.getters.order.serverCity\r\n console.log('serverCity', serverCity)\r\n let flag = false;\r\n chargeCityArr.map(item => {\r\n if( serverCity.indexOf(item) != -1 ) {\r\n flag = true;\r\n return;\r\n }\r\n })\r\n if(!flag) {\r\n this.$toast('当前城市未开通上门充电服务,建议选择拖车服务拖至最近的充电桩进行充电')\r\n return false\r\n }\r\n }\r\n if( !this.form.positionEnvironment ) {\r\n this.$toast('请选择车辆位置')\r\n return false\r\n }\r\n await this.saveAddress()\r\n await this.saveDestAddress()\r\n await this.setOrder()\r\n await this.goPage('rescuePage')\r\n },\r\n\r\n changeTabHandler(index) { //切换 tab\r\n this.activeTab = index\r\n },\r\n appointHandler(value, index) { // 设置预约时间\r\n if( value[1] == '尽快到' ) {\r\n this.form.appointTime = ''\r\n this.form.isAppoint = 0\r\n } else {\r\n this.form.appointTime = value[0] + \" \" + value[1]\r\n this.form.isAppoint = 1\r\n }\r\n this.show = false;\r\n // this.$toast(`当前值:${value}, 当前索引:${index}`)\r\n }\r\n }\r\n }\r\n</script>\r\n<style>\r\n @import '@/styles/common.css';\r\n</style>\r\n<style scoped lang=\"less\">\r\n .main_wrap {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n box-sizing: border-box;\r\n .map_wrap {\r\n width: 100%;\r\n /*height: 80vh;*/\r\n flex: 1;\r\n }\r\n .server_wrap {\r\n padding-bottom: 50px;\r\n /*position: fixed;*/\r\n /*bottom: 0;*/\r\n /*left: 0;*/\r\n width: 100%;\r\n background: #fff;\r\n z-index: 10000000 !important;\r\n .btn_wrap {\r\n width: 74%;\r\n margin: 5px auto 10px;\r\n }\r\n .server_main {\r\n .address_item {\r\n display: flex;\r\n padding: 10px 15px 10px 3px;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-left: 15px;\r\n .address_icon {\r\n width: 12px;\r\n height: 12px;\r\n margin-right: 10px;\r\n }\r\n .address {\r\n font-size: 15px;\r\n color: rgba( 0, 0, 0, 0.79);\r\n flex: 1;\r\n }\r\n .placeholder {\r\n color: rgba(147, 147, 147, 0.83);\r\n }\r\n }\r\n .arrow_icon {\r\n width: 12px;\r\n height: 11px;\r\n margin-left: 3px;\r\n }\r\n .form_item {\r\n display: flex;\r\n padding: 15px 15px 15px 3px;\r\n align-items: center;\r\n justify-content: space-between;\r\n margin-left: 15px;\r\n .radio {\r\n width: 10px;\r\n height: 11px;\r\n margin-right: 10px;\r\n }\r\n .appoint_time {\r\n width: 11px;\r\n height: 11px;\r\n margin-right: 10px;\r\n }\r\n .form_label {\r\n font-size: 14px;\r\n color: rgba( 0, 0, 0, 0.7 );\r\n }\r\n .flex_right {\r\n flex: 1;\r\n justify-content: flex-end;\r\n }\r\n .form_time {\r\n flex: 1;\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n }\r\n }\r\n .pb15 {\r\n padding-bottom: 15px;\r\n }\r\n .pt15 {\r\n padding-top: 15px;\r\n }\r\n .border_bottom {\r\n border-bottom: 1px solid #F1F2F5;\r\n }\r\n }\r\n }\r\n /*底部按钮*/\r\n .bottom_wrap {\r\n position: fixed;\r\n width: 100%;\r\n bottom: 0;\r\n background: #FFFFFF;\r\n box-shadow: 0px -2px 8px 0px rgba(74,74,74,0.08);\r\n z-index: 1000000000 !important;\r\n .wrap {\r\n width: 100%;\r\n display: flex;\r\n }\r\n }\r\n }\r\n</style>\r\n<style>\r\n .van-overlay {\r\n z-index: 9999999999 !important;\r\n }\r\n .van-popup--bottom {\r\n z-index: 10000000000 !important;\r\n }\r\n</style>\r\n","E:\\work\\sino\\sino-h5\\src\\views\\index\\pay.vue",["169"],"E:\\work\\sino\\sino-h5\\src\\utils\\status.js",[],{"ruleId":"170","severity":2,"message":"171","line":5,"column":7,"nodeType":"172","endLine":5,"endColumn":137},{"ruleId":"173","severity":2,"message":"174","line":36,"column":18,"nodeType":"175","endLine":36,"endColumn":20},{"ruleId":"176","severity":2,"message":"177","line":5,"column":29,"nodeType":"178","messageId":"179","endLine":5,"endColumn":33},{"ruleId":"180","severity":2,"message":"181","line":26,"column":32,"nodeType":"178","messageId":"182","endLine":26,"endColumn":38},{"ruleId":"176","severity":2,"message":"177","line":28,"column":26,"nodeType":"178","messageId":"179","endLine":28,"endColumn":30},{"ruleId":"176","severity":2,"message":"177","line":53,"column":29,"nodeType":"178","messageId":"179","endLine":53,"endColumn":33},{"ruleId":"176","severity":2,"message":"177","line":71,"column":25,"nodeType":"178","messageId":"179","endLine":71,"endColumn":29},{"ruleId":"180","severity":2,"message":"183","line":93,"column":10,"nodeType":"178","messageId":"182","endLine":93,"endColumn":19},{"ruleId":"176","severity":2,"message":"184","line":94,"column":14,"nodeType":"178","messageId":"179","endLine":94,"endColumn":30},{"ruleId":"176","severity":2,"message":"177","line":96,"column":23,"nodeType":"178","messageId":"179","endLine":96,"endColumn":27},{"ruleId":"170","severity":2,"message":"171","line":8,"column":7,"nodeType":"172","endLine":8,"endColumn":82},{"ruleId":"170","severity":2,"message":"171","line":16,"column":7,"nodeType":"172","endLine":16,"endColumn":83},{"ruleId":"170","severity":2,"message":"171","line":14,"column":9,"nodeType":"172","endLine":14,"endColumn":146},{"ruleId":"180","severity":2,"message":"185","line":25,"column":12,"nodeType":"178","messageId":"182","endLine":25,"endColumn":20},{"ruleId":"176","severity":2,"message":"177","line":61,"column":27,"nodeType":"178","messageId":"179","endLine":61,"endColumn":31},{"ruleId":"176","severity":2,"message":"177","line":62,"column":25,"nodeType":"178","messageId":"179","endLine":62,"endColumn":29},{"ruleId":"176","severity":2,"message":"177","line":64,"column":23,"nodeType":"178","messageId":"179","endLine":64,"endColumn":27},{"ruleId":"176","severity":2,"message":"177","line":97,"column":24,"nodeType":"178","messageId":"179","endLine":97,"endColumn":28},{"ruleId":"176","severity":2,"message":"177","line":211,"column":24,"nodeType":"178","messageId":"179","endLine":211,"endColumn":28},{"ruleId":"176","severity":2,"message":"177","line":232,"column":27,"nodeType":"178","messageId":"179","endLine":232,"endColumn":31},{"ruleId":"176","severity":2,"message":"177","line":233,"column":25,"nodeType":"178","messageId":"179","endLine":233,"endColumn":29},{"ruleId":"176","severity":2,"message":"177","line":235,"column":23,"nodeType":"178","messageId":"179","endLine":235,"endColumn":27},{"ruleId":"176","severity":2,"message":"177","line":246,"column":31,"nodeType":"178","messageId":"179","endLine":246,"endColumn":35},{"ruleId":"176","severity":2,"message":"177","line":247,"column":25,"nodeType":"178","messageId":"179","endLine":247,"endColumn":29},{"ruleId":"176","severity":2,"message":"177","line":249,"column":23,"nodeType":"178","messageId":"179","endLine":249,"endColumn":27},{"ruleId":"186","severity":2,"message":"187","line":43,"column":11,"nodeType":"188","messageId":"189","endLine":43,"endColumn":19},{"ruleId":"176","severity":2,"message":"177","line":153,"column":24,"nodeType":"178","messageId":"179","endLine":153,"endColumn":28},{"ruleId":"176","severity":2,"message":"177","line":163,"column":22,"nodeType":"178","messageId":"179","endLine":163,"endColumn":26},{"ruleId":"176","severity":2,"message":"177","line":164,"column":25,"nodeType":"178","messageId":"179","endLine":164,"endColumn":29},{"ruleId":"176","severity":2,"message":"177","line":166,"column":23,"nodeType":"178","messageId":"179","endLine":166,"endColumn":27},{"ruleId":"176","severity":2,"message":"177","line":196,"column":29,"nodeType":"178","messageId":"179","endLine":196,"endColumn":33},{"ruleId":"170","severity":2,"message":"171","line":5,"column":7,"nodeType":"172","endLine":5,"endColumn":95},{"ruleId":"186","severity":2,"message":"190","line":68,"column":11,"nodeType":"188","messageId":"189","endLine":68,"endColumn":17},{"ruleId":"176","severity":2,"message":"177","line":131,"column":27,"nodeType":"178","messageId":"179","endLine":131,"endColumn":31},{"ruleId":"176","severity":2,"message":"177","line":132,"column":25,"nodeType":"178","messageId":"179","endLine":132,"endColumn":29},{"ruleId":"176","severity":2,"message":"177","line":134,"column":23,"nodeType":"178","messageId":"179","endLine":134,"endColumn":27},{"ruleId":"176","severity":2,"message":"177","line":144,"column":31,"nodeType":"178","messageId":"179","endLine":144,"endColumn":35},{"ruleId":"176","severity":2,"message":"177","line":145,"column":25,"nodeType":"178","messageId":"179","endLine":145,"endColumn":29},{"ruleId":"176","severity":2,"message":"177","line":147,"column":23,"nodeType":"178","messageId":"179","endLine":147,"endColumn":27},{"ruleId":"176","severity":2,"message":"177","line":255,"column":24,"nodeType":"178","messageId":"179","endLine":255,"endColumn":28},{"ruleId":"180","severity":2,"message":"191","line":298,"column":29,"nodeType":"178","messageId":"182","endLine":298,"endColumn":34},{"ruleId":"176","severity":2,"message":"177","line":62,"column":24,"nodeType":"178","messageId":"179","endLine":62,"endColumn":28},"vue/require-v-for-key","Elements in iteration expect to have 'v-bind:key' directives.","VStartTag","vue/require-valid-default-prop","Type of the default value for 'serverList' prop must be a function.","ArrayExpression","no-undef","'AMap' is not defined.","Identifier","undef","no-unused-vars","'reject' is defined but never used.","unusedVar","'drawRoute' is defined but never used.","'parseRouteToPath' is not defined.","'leftCopy' is defined but never used.","vue/multi-word-component-names","Component name \"Search\" should always be multi-word.","Literal","unexpected","Component name \"Home\" should always be multi-word.","'index' is defined but never used."]