{"ast":null,"code":"import { getAppointFun } from '@/utils/appointTime';\nimport { serverList } from '@/utils/serverMap';\nimport { getClientPhone, decode } from '@/api/order';\nimport tabBar from \"@/components/tabBar\";\nimport BottomItem from '@/components/bottomItem';\nimport AttentionItem from '@/components/attentionItem';\nimport commonBtn from \"@/components/commonBtn\";\nimport { getLocal, getAddress } from '@/utils/map';\nimport { myMixins } from '@/utils/myMixins.js';\nexport default {\n name: \"Home\",\n mixins: [myMixins],\n data() {\n return {\n map: '',\n location: [],\n locationAddress: '',\n activeTab: 0,\n serverList: serverList,\n radio: '',\n show: false,\n // 预约时间弹框\n form: {\n startLat: '',\n startLng: '',\n startPoiAddress: '',\n endLat: '',\n endLng: '',\n endPoiAddress: '',\n isAppoint: 0,\n appointTime: '',\n positionEnvironment: ''\n },\n marker: null,\n destMarker: null,\n columns: []\n };\n },\n components: {\n BottomItem,\n tabBar,\n AttentionItem,\n commonBtn\n },\n async mounted() {\n await this.decodeHandler(); // 解密\n if (this.$route.query.appCode) {\n // 获取 appCode 存入缓存\n localStorage.setItem('appCode', this.$route.query.appCode);\n }\n this.getClientHandler(); // 获取客服电话\n await this.initMap(); // 初始化地图\n this.columns = getAppointFun(new Date()); // 获取预约时间 picker\n await this.initData();\n if (!(this.form && this.form.startPoiAddress)) {\n // 缓存里没有地址,获取定位地址\n await this.setLocalInfo();\n }\n // 添加 事发地 marker\n this.addMarker();\n // 拖车并且目的地存在,设置目的地 marker\n if (this.serverList[this.activeTab].serverId == 1041 && this.form.endPoiAddress) {\n this.addDestMarker();\n }\n },\n async beforeDestroy() {\n await this.saveAddress();\n await this.saveDestAddress();\n await this.setOrder();\n },\n methods: {\n async decodeHandler() {\n let res = await decode({\n access_token: this.$route.query.access_token,\n userPhone: this.$route.query.userPhone,\n couponCode: this.$route.query.couponCode\n });\n console.log('decode', res);\n localStorage.setItem('userPhone', res?.userPhone);\n },\n // 事发地 marker\n addMarker() {\n if (this.marker) {\n this.map.remove(this.marker);\n }\n let content = '
';\n this.marker = new AMap.Marker({\n position: new AMap.LngLat(this.form.startLng, this.form.startLat),\n content: content,\n offset: new AMap.Pixel(-13, -30)\n });\n this.map.add(this.marker);\n },\n // 目的地 marker\n addDestMarker() {\n if (this.destMarker) {\n this.map.remove(this.destMarker);\n }\n let content = '
';\n this.destMarker = new AMap.Marker({\n position: new AMap.LngLat(this.form.endLng, this.form.endLat),\n content: content,\n offset: new AMap.Pixel(-13, -30)\n });\n this.map.add(this.destMarker);\n },\n async getClientHandler() {\n // 根据 appCode 获取客服电话\n let res = await getClientPhone({\n appCode: localStorage.getItem('appCode')\n });\n let client;\n if (res && res.phone.length > 0) {\n client = res.phone[0].phone;\n } else {\n client = '4009201995';\n }\n localStorage.setItem('client', client);\n // alert(localStorage.getItem('client'))\n },\n\n async initData() {\n await this.initOrderInfo();\n await this.initAddress();\n await this.initDestAddress();\n },\n // 设置 表单除地址外的信息\n initOrderInfo() {\n const orderInfo = this.$store.getters.order.orderInfo;\n this.form.isAppoint = orderInfo && orderInfo.isAppoint || 0;\n this.form.appointTime = orderInfo && orderInfo.appointTime || '';\n this.form.positionEnvironment = orderInfo && orderInfo.positionEnvironment || '';\n this.activeTab = orderInfo && orderInfo.activeTab || 0;\n },\n // 设置事发地\n initAddress() {\n const address = this.$store.getters.order.address;\n const localAddress = this.$store.getters.order.localAddress;\n this.form.startPoiAddress = address && address.startPoiAddress || localAddress && localAddress.startPoiAddress;\n this.form.startLat = address && address.startLat || localAddress && localAddress.startLat;\n this.form.startLng = address && address.startLng || localAddress && localAddress.startLng;\n },\n // 设置目的地\n initDestAddress() {\n const destAddress = this.$store.getters.order.destAddress;\n if (this.serverList[this.activeTab].serverId == 1041) {\n this.form.endPoiAddress = destAddress && destAddress.endPoiAddress || '';\n this.form.endLat = destAddress && destAddress.endLat || '';\n this.form.endLng = destAddress && destAddress.endLng || '';\n } else {\n this.form.endPoiAddress = '';\n this.form.endLat = '';\n this.form.endLng = '';\n }\n },\n // 保存事发地地址\n async saveAddress() {\n await this.$store.dispatch('order/setAddress', {\n startPoiAddress: this.form.startPoiAddress,\n startLat: this.form.startLat,\n startLng: this.form.startLng\n });\n },\n // 保存目的地地址\n async saveDestAddress() {\n if (this.serverList[this.activeTab].serverId == 1041) {\n await this.$store.dispatch('order/setDestAddress', {\n endPoiAddress: this.form.endPoiAddress,\n endLat: this.form.endLat,\n endLng: this.form.endLng\n });\n }\n },\n // 保存下单信息\n async setOrder() {\n await this.$store.dispatch('order/setOrderInfo', {\n serviceId: this.serverList[this.activeTab].serverId,\n activeTab: this.activeTab,\n appointTime: this.form.appointTime,\n isAppoint: this.form.isAppoint,\n positionEnvironment: this.form.positionEnvironment\n });\n },\n // 保存定位地址\n async saveLocalAddress(obj) {\n await this.$store.dispatch('order/setLocalAddress', obj);\n },\n // 定位地址\n async setLocalInfo() {\n this.location = await getLocal(this.map); // 获取经纬度\n this.map.setCenter(this.location); // 设置地图中心点\n let tempAddress = await getAddress(this.map, this.location); // 设置定位\n this.form.startPoiAddress = tempAddress.regeocode.formattedAddress;\n this.form.startLng = this.location.lng;\n this.form.startLat = this.location.lat;\n // 设置当前服务的城市\n let city = '';\n city = tempAddress.regeocode.addressComponent.province + tempAddress.regeocode.addressComponent.city;\n this.$store.dispatch('order/setServerCity', city);\n // 设置定位信息\n let localObj = {\n address: this.form.startPoiAddress,\n lat: this.form.startLat,\n lng: this.form.startLng,\n localCityCode: tempAddress.regeocode.addressComponent.adcode\n };\n // 设置 当前定位位置信息\n await this.saveLocalAddress(localObj);\n // 初始化 设置事发地\n await this.saveAddress();\n },\n initMap() {\n // 初始化地图\n this.map = new AMap.Map('mapId', {\n viewMode: '2D',\n // 默认使用 2D 模式\n zoom: 11 //初始化地图层级\n });\n },\n\n async ownClickHandler() {\n // 将事发地,目的地,服务类型,车辆位置,预约时间存入,跳转到救援页\n if (!this.form.startPoiAddress) {\n this.$toast('请先选择事发地');\n return false;\n }\n if (this.serverList[this.activeTab].serverId == 1041 && !this.form.endPoiAddress) {\n this.$toast('请选择拖车目的地');\n return false;\n }\n if (this.serverList[this.activeTab].serverId == 2160) {\n // 判断服务城市是否开通上门充电\n let chargeCityArr = ['北京', '上海', '杭州', '广州', '深圳', '东莞', '成都', '苏州', '无锡', '常州', '宁波', '南京', '武汉'];\n const serverCity = this.$store.getters.order.serverCity;\n console.log('serverCity', serverCity);\n let flag = false;\n chargeCityArr.map(item => {\n if (serverCity.indexOf(item) != -1) {\n flag = true;\n return;\n }\n });\n if (!flag) {\n this.$toast('当前城市未开通上门充电服务,建议选择拖车服务拖至最近的充电桩进行充电');\n return false;\n }\n }\n if (!this.form.positionEnvironment) {\n this.$toast('请选择车辆位置');\n return false;\n }\n await this.saveAddress();\n await this.saveDestAddress();\n await this.setOrder();\n await this.goPage('rescuePage');\n },\n changeTabHandler(index) {\n //切换 tab\n this.activeTab = index;\n },\n appointHandler(value, index) {\n // 设置预约时间\n if (value[1] == '尽快到') {\n this.form.appointTime = '';\n this.form.isAppoint = 0;\n } else {\n this.form.appointTime = value[0] + \" \" + value[1];\n this.form.isAppoint = 1;\n }\n this.show = false;\n // this.$toast(`当前值:${value}, 当前索引:${index}`)\n }\n }\n};","map":{"version":3,"names":["getAppointFun","serverList","getClientPhone","decode","tabBar","BottomItem","AttentionItem","commonBtn","getLocal","getAddress","myMixins","name","mixins","data","map","location","locationAddress","activeTab","radio","show","form","startLat","startLng","startPoiAddress","endLat","endLng","endPoiAddress","isAppoint","appointTime","positionEnvironment","marker","destMarker","columns","components","mounted","decodeHandler","$route","query","appCode","localStorage","setItem","getClientHandler","initMap","Date","initData","setLocalInfo","addMarker","serverId","addDestMarker","beforeDestroy","saveAddress","saveDestAddress","setOrder","methods","res","access_token","userPhone","couponCode","console","log","remove","content","AMap","Marker","position","LngLat","offset","Pixel","add","getItem","client","phone","length","initOrderInfo","initAddress","initDestAddress","orderInfo","$store","getters","order","address","localAddress","destAddress","dispatch","serviceId","saveLocalAddress","obj","setCenter","tempAddress","regeocode","formattedAddress","lng","lat","city","addressComponent","province","localObj","localCityCode","adcode","Map","viewMode","zoom","ownClickHandler","$toast","chargeCityArr","serverCity","flag","item","indexOf","goPage","changeTabHandler","index","appointHandler","value"],"sources":["src/views/index/index.vue"],"sourcesContent":["\r\n\r\n\r\n\r\n\r\n\r\n"],"mappings":"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"},"metadata":{},"sourceType":"module","externalDependencies":[]}