index.js 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494
  1. //index.js
  2. //获取应用实例
  3. let app = getApp();
  4. let wechat = require("../../utils/wechat");
  5. let amap = require("../../utils/amap");
  6. let Util = require("../../utils/util");
  7. let log = require('../../utils/log.js');
  8. let wxpro = require('../../utils/wx-promise-pro.js');
  9. let mapregionchange_makertap = false;
  10. wxpro.promisifyAll()
  11. // wxpro.promisify(wx.getSystemInfo)().then(console.log)
  12. for (var variable in wx) {
  13. if (wx.hasOwnProperty(variable)) {
  14. wx.pro[variable] = wxpro.promisify(wx[variable])
  15. }
  16. }
  17. Page({
  18. data: {
  19. scanFlag:false,
  20. markers: [],
  21. latitude: 39.9088120620532,
  22. longitude: 116.39747668717192,
  23. user_lat: 39.9088120620532,
  24. user_lon: 116.39747668717192,
  25. textData: null,
  26. city: null,
  27. markerId: null,
  28. keywords: "搜索充电桩",
  29. userInfo: {},
  30. isLogin: false,
  31. myChargeStationsIds: '',
  32. distanceinfo: [
  33. // {
  34. // value: 1000,
  35. // text: '1km'
  36. // }, {
  37. // value: 2000,
  38. // text: '2km'
  39. // }, {
  40. // value: 5000,
  41. // text: '5km'
  42. // },
  43. {
  44. value: 10000,
  45. text: '10km'
  46. },
  47. // {
  48. // value: 20000,
  49. // text: '20km'
  50. // },
  51. {
  52. value: 50000,
  53. text: '50km'
  54. }, {
  55. value: 100000,
  56. text: '100km'
  57. }],
  58. distanceinfoindex: 0,
  59. polygon: [{
  60. points: [{
  61. latitude: 31,
  62. longitude: 131
  63. }, {
  64. latitude: 31,
  65. longitude: 131.1
  66. }, {
  67. latitude: 31.1,
  68. longitude: 131.1
  69. }, , {
  70. latitude: 31.1,
  71. longitude: 131
  72. }]
  73. }],
  74. showModal: false,
  75. notice: null,
  76. carParkingRate: false,
  77. showPrivacy:false,
  78. occupyFeeOrderList:[],
  79. load:-1
  80. },
  81. howtouse(){
  82. wx.navigateTo({
  83. url:'/pages/howtouse/howtouse'
  84. });
  85. },
  86. wxScan(q) {
  87. //console.log(decodeURIComponent(e.q));
  88. let charePileId = decodeURIComponent(q).replace("https://cdgl.pjnes.com/", "");
  89. log.info('[首页]', '[微信扫一扫]', { 'q': q });
  90. if(!charePileId){
  91. charePileId = "0"
  92. }
  93. if (charePileId) {
  94. let userInfo = wx.getStorageSync('userInfo');
  95. let isLogin = wx.getStorageSync('isLogin');
  96. if (isLogin && userInfo.flag) {
  97. return;
  98. }
  99. if (!isLogin) {
  100. log.info('[首页]', '[未登陆跳转登录界面]');
  101. let url = `/pages/login/phone_login/phone_login`;
  102. wx.navigateTo({
  103. url
  104. });
  105. return;
  106. } else {
  107. log.info('[首页]', '[获取用户是否有未完成订单]', '[请求]', { userId: userInfo.userId });
  108. wx.request({
  109. url: getApp().globalData.postHeadAgreement + '/restapi/pileLog/wechatchargstatus',
  110. data: {
  111. userId: userInfo.userId
  112. },
  113. method: 'POST',
  114. success(res) {
  115. let {
  116. data
  117. } = res;
  118. log.info('[首页]', '[获取用户是否有未完成订单]', '[响应]', data);
  119. if (data && data.code == 200) {
  120. log.info('[首页]', '[有未完成订单跳充电界面]');
  121. //onShow会跳转
  122. } else {
  123. //console.log('无订单');
  124. log.info('[首页]', '[用户无未完成订单]');
  125. log.info('[首页]', '[获取微信扫一扫充电桩]', '[请求]', charePileId);
  126. wx.request({
  127. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/chargPile',
  128. // data: charePileId,
  129. data:{
  130. chargPileId:charePileId,
  131. userId: userInfo.userId
  132. },
  133. method: 'POST',
  134. success(res) {
  135. //console.log(res.data);
  136. log.info('[首页]', '[获取微信扫一扫充电桩]', '[响应]', res.data);
  137. if (!res.data || res.data.code == 500) {
  138. //没有该充电桩信息
  139. wx.showModal({
  140. showCancel: false,
  141. content: res && res.data && res.data.msg ? res.data.msg :'无效的终端编号',
  142. confirmColor:'#00AADD',
  143. });
  144. } else {
  145. res.data = res.data.result
  146. //充电状态0:离线、1:故障、2:空闲中、3:充电中、4:欠压故障、5:过压故障、6:过电流故障、8:预约、9:在线升级、10:操作中、11:已插枪等
  147. if (!res.data.chargstatus || res.data.chargstatus == 0 || res.data.chargstatus == 1 || res.data.chargstatus == 4 || res.data.chargstatus == 5 || res.data.chargstatus == 6 || res.data.chargstatus == 9) {
  148. //充电桩故障
  149. wx.showModal({
  150. showCancel: false,
  151. content: '终端故障,维修中',
  152. confirmColor:'#00AADD',
  153. });
  154. } else if (res.data.chargstatus == 3 || res.data.chargstatus == 8 || res.data.chargstatus == 10) {
  155. wx.showModal({
  156. showCancel: false,
  157. content: '正在充电中',
  158. confirmColor:'#00AADD',
  159. });
  160. } else if (res.data.chargstatus == 2 || res.data.chargstatus == 11) {
  161. wx.setStorage({
  162. key: "scan_chargpile",
  163. data: res.data
  164. });
  165. log.info('[首页]', '[微信扫一扫充电桩空闲跳转去充电界面]');
  166. let url = `/pages/scan_result/scan_result`;
  167. wx.navigateTo({
  168. url
  169. });
  170. }
  171. }
  172. },
  173. fail(e) {
  174. getApp().showNetworkError();
  175. }
  176. });
  177. }
  178. },
  179. fail(e) {
  180. getApp().showNetworkError();
  181. }
  182. });
  183. }
  184. }
  185. },
  186. resetchargStations(data){
  187. let that = this
  188. // 刷新 stationTag)
  189. for(let i=0;i<data.length;i++){
  190. let seeInfoChargPile = data[i];
  191. that.resetStationTag(seeInfoChargPile);
  192. let resultTable = seeInfoChargPile.resultList
  193. that.resetResultList(resultTable);
  194. that.resetResultData(resultTable,seeInfoChargPile)
  195. }
  196. },
  197. resetResultData(resultList,data){
  198. if(!resultList){
  199. return;
  200. }
  201. for(let i=0;i<resultList.length;i++){
  202. if(resultList[i].currentTime){
  203. if(resultList[i].elecPrice == '暂无费用'){
  204. data.chargprice = '暂无费用'
  205. }else{
  206. const elecPrice = parseFloat(resultList[i].elecPrice); // 将字符串转换为数字
  207. data.chargprice = elecPrice.toFixed(8).replace(/\.?0+$/, ""); // 格式化为8位小数
  208. }
  209. data.serviceprice = resultList[i].servicePrice
  210. }
  211. }
  212. },
  213. resetStationTag(seeInfoChargPile){
  214. let that = this
  215. if(!seeInfoChargPile){
  216. return;
  217. }
  218. if(!seeInfoChargPile?.stationTag){
  219. return;
  220. }
  221. seeInfoChargPile.stationTagList = seeInfoChargPile.stationTag.split("|");
  222. },
  223. resetResultList(resultList){
  224. let that = this
  225. if(!resultList){
  226. return;
  227. }
  228. resultList.forEach(item=>{
  229. item["sumPrice"] = that.resetResultListSumPrice(item);
  230. if(!item.elecPrice && item.elecPrice!=0){
  231. item["elecPrice"] = '暂无费用'
  232. }
  233. if(!item.servicePrice && item.servicePrice!=0){
  234. item["servicePrice"] = '暂无费用'
  235. }
  236. })
  237. },
  238. resetResultListSumPrice(item){
  239. if(!item.elecPrice && item.elecPrice!=0){
  240. return '暂无费用'
  241. }
  242. if(!item.servicePrice && item.servicePrice!=0){
  243. return '暂无费用'
  244. }
  245. return parseFloat((item.elecPrice + item.servicePrice).toFixed(6))
  246. },
  247. onLoad(e) {
  248. // 隐私开始
  249. wx.getPrivacySetting({
  250. success: res => {
  251. console.log(res) // 返回结果为: res = { needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》' }
  252. if (res.needAuthorization) {
  253. // 需要弹出隐私协议
  254. this.setData({
  255. showPrivacy: true
  256. })
  257. } else {
  258. // 用户已经同意过隐私协议,所以不需要再弹出隐私协议,也能调用已声明过的隐私接口
  259. // wx.getUserProfile()
  260. // wx.chooseMedia()
  261. // wx.getClipboardData()
  262. // wx.startRecord()
  263. }
  264. },
  265. fail: () => {},
  266. complete: () => {}
  267. })
  268. // 隐私结束
  269. this.data.scanFlag = false;
  270. wx.hideLoading();
  271. if (e.q) {
  272. //console.log(decodeURIComponent(e.q));
  273. //let charePileId = decodeURIComponent(e.q).replace("https://cdgl.pjnes.com/", "");
  274. //console.log(charePileId);
  275. //if (charePileId){
  276. //}
  277. let userInfo = wx.getStorageSync('userInfo');
  278. let isLogin = wx.getStorageSync('isLogin');
  279. // userInfo.flag=true;
  280. this.setData({
  281. userInfo,
  282. isLogin
  283. });
  284. this.click_scan_control(e.q,false);
  285. // this.wxScan(e.q);
  286. }
  287. log.info('[首页]', '[加载完成]');
  288. amap.getRegeo(function () {
  289. var fail = function (obj) {
  290. wx.showModal({
  291. title: '请求失败',
  292. content: obj.errMsg,
  293. confirmColor:'#00AADD',
  294. });
  295. }
  296. })
  297. .then(d => {
  298. //console.log(d);
  299. let {
  300. latitude,
  301. longitude,
  302. latitude: user_lat,
  303. longitude: user_lon
  304. } = d[0];
  305. //console.log(d[0].regeocodeData.addressComponent);
  306. var {
  307. city
  308. } = d[0].regeocodeData.addressComponent;
  309. if (d[0].regeocodeData.addressComponent.city.length == 0) {
  310. var {
  311. province: city
  312. } = d[0].regeocodeData.addressComponent;
  313. }
  314. let that = this;
  315. let userInfo = wx.getStorageSync('userInfo');
  316. let isLogin = wx.getStorageSync('isLogin');
  317. // userInfo.flag=true;
  318. this.setData({
  319. city,
  320. latitude,
  321. longitude,
  322. user_lat,
  323. user_lon,
  324. userInfo,
  325. isLogin
  326. });
  327. //开始请求充电站信息
  328. var chargStationType;
  329. if (!userInfo.flag) {
  330. //用户是普通用户
  331. chargStationType = '2';
  332. }
  333. wx.request({
  334. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/chargStations',
  335. data: {
  336. lon: longitude,
  337. lat: latitude,
  338. distance: that.data.distanceinfo[that.data.distanceinfoindex].value,
  339. chargStationType
  340. },
  341. method: 'POST',
  342. success(res) {
  343. //userInfo.flag = true;
  344. that.resetchargStations(res.data)
  345. if (isLogin && userInfo.flag) {
  346. wx.request({
  347. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/userChargStations',
  348. data: {
  349. userId: userInfo.userId,
  350. lat: latitude,
  351. lon: longitude
  352. },
  353. method: 'POST',
  354. success(res1) {
  355. var myChargeStationsIds = '';
  356. res1.data.forEach((item, index) => {
  357. myChargeStationsIds += item.id + ",";
  358. });
  359. //console.log(myChargeStationsIds);
  360. let {
  361. data
  362. } = res;
  363. let markers = [];
  364. data.forEach((item, index) => {
  365. //item.callout = {
  366. // content: item.name, //文本 String 1.2.0
  367. // display: 'BYCLICK', //'BYCLICK': 点击显示; 'ALWAYS': 常显 String 1.2.0
  368. // textAlign: 'center' //文本对齐方式。有效值: left, right, center String 1.6.0
  369. // };
  370. var iconPath = "/images/marker.png";
  371. if (myChargeStationsIds.indexOf(item.id + ',') != -1) {
  372. iconPath = "/images/marker1.png";
  373. }
  374. if (item.breaknum && item.breaknum != 0) {
  375. iconPath = "/images/marker_b.png";
  376. }
  377. /**
  378. * 运营状态 初始,待运营,运营中,暂停营业,关闭,未运营
  379. * */
  380. //private Long operationState;
  381. var marker = {
  382. name: item.chargStationName,
  383. address: item.address,
  384. width: "46rpx",
  385. height: "67rpx",
  386. chargfeatures: item.chargfeatures ,
  387. iconPath: iconPath,
  388. id: item.id,
  389. callout: {},
  390. latitude: item.lat,
  391. longitude: item.lon,
  392. //distance: item.distance / 1000,
  393. distance: Util.distance(that.data.user_lat, that.data.user_lon, item.lat, item.lon),
  394. chargPileNum: item.fastCharg + item.slowCharg,
  395. fastCharg: item.fastCharg,
  396. slowCharg: item.slowCharg,
  397. freenum: item.freenum,
  398. fastfreenum: item.fastfreenum,
  399. slowfreenum: item.slowfreenum,
  400. breaknum: item.breaknum,
  401. /** 电费 */
  402. chargprice: item.chargprice,
  403. /** 服务费 */
  404. serviceprice: item.serviceprice,
  405. /** 停车费 */
  406. stopprice: item.stopprice,
  407. operationState: item.operationState,
  408. chargStationId: item.id,
  409. stationTag: item.stationTag,
  410. stationTagList: item.stationTagList,
  411. offlineServicecall: item.offlineServicecall,
  412. };
  413. markers[index] = marker;
  414. });
  415. that.setData({
  416. markers,
  417. myChargeStationsIds
  418. });
  419. },
  420. fail(e) {
  421. getApp().showNetworkError();
  422. }
  423. });
  424. } else {
  425. let {
  426. data
  427. } = res;
  428. let markers = [];
  429. if(data){
  430. data.forEach((item, index) => {
  431. //item.callout = {
  432. // content: item.name, //文本 String 1.2.0
  433. // display: 'BYCLICK', //'BYCLICK': 点击显示; 'ALWAYS': 常显 String 1.2.0
  434. // textAlign: 'center' //文本对齐方式。有效值: left, right, center String 1.6.0
  435. // };
  436. var iconPath = "/images/marker.png";
  437. //撤销普通用户显示异常站
  438. //if (item.breaknum && item.breaknum != 0) {
  439. // iconPath = "/images/marker_b.png";
  440. //}
  441. //撤销结束
  442. var marker = {
  443. name: item.chargStationName,
  444. address: item.address,
  445. width: "46rpx",
  446. height: "67rpx",
  447. chargfeatures: item.chargfeatures ,
  448. iconPath: iconPath,
  449. id: item.id,
  450. callout: {},
  451. latitude: item.lat,
  452. longitude: item.lon,
  453. //distance: item.distance / 1000,
  454. distance: Util.distance(that.data.user_lat, that.data.user_lon, item.lat, item.lon),
  455. chargPileNum: item.fastCharg + item.slowCharg,
  456. fastCharg: item.fastCharg,
  457. slowCharg: item.slowCharg,
  458. freenum: item.freenum,
  459. fastfreenum: item.fastfreenum,
  460. slowfreenum: item.slowfreenum,
  461. breaknum: item.breaknum,
  462. /** 电费 */
  463. chargprice: item.chargprice,
  464. /** 服务费 */
  465. serviceprice: item.serviceprice,
  466. /** 停车费 */
  467. stopprice: item.stopprice,
  468. operationState: item.operationState,
  469. sharpChargPrice : item.sharpChargPrice,
  470. sharpServicePrice : item.sharpServicePrice,
  471. peakChargPrice : item.peakChargPrice,
  472. peakServicePrice : item.peakServicePrice,
  473. flatChargPrice : item.flatChargPrice,
  474. flatServicePrice : item.flatServicePrice,
  475. valleyChargPrice : item.valleyChargPrice,
  476. valleyServicePrice : item.valleyServicePrice,
  477. resultList: item.resultList,
  478. chargStationId: item.id,
  479. stationTag: item.stationTag,
  480. stationTagList: item.stationTagList,
  481. offlineServicecall: item.offlineServicecall,
  482. };
  483. markers[index] = marker;
  484. });
  485. }
  486. that.setData({
  487. markers
  488. });
  489. }
  490. },
  491. fail(e) {
  492. getApp().showNetworkError();
  493. }
  494. });
  495. })
  496. .catch(e => {
  497. console.log(e);
  498. });
  499. let that = this;
  500. let userInfo = wx.getStorageSync('userInfo');
  501. let isLogin = wx.getStorageSync('isLogin');
  502. //console.log(userInfo);
  503. if (isLogin) {
  504. wx.request({
  505. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/lastNotice',
  506. data: { loginName: userInfo.loginName },
  507. method: 'POST',
  508. success(res) {
  509. //console.log(res);
  510. //res.data = { noticeTitle: '派捷充电例行维护通知', noticeContent:'nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好nihao你好'};
  511. if (res.data) {
  512. that.setData({
  513. showModal: true,
  514. notice: res.data
  515. });
  516. } else {
  517. that.setData({
  518. showModal: false,
  519. notice: null
  520. });
  521. }
  522. },
  523. fail(e) {
  524. //console.log(e);
  525. that.setData({
  526. showModal: false,
  527. notice: null
  528. });
  529. getApp().showNetworkError();
  530. }
  531. });
  532. // this.queryParkOrder(3).then(res=>{
  533. // console.log("查询未支付成功",res);
  534. // if (res.total > 0) {
  535. // wx.showModal({
  536. // showCancel: false,
  537. // confirmText: '去支付',
  538. // content: '您有未支付的占位费订单,请先支付',
  539. // confirmColor:'#00AADD',
  540. // success: function (res) {
  541. // if (!res.cancel) {
  542. // console.log("res",res);
  543. // //点击确定
  544. // let url = `/pages/ucenter/zhanw/zhanw`;
  545. // wx.navigateTo({
  546. // url
  547. // })
  548. // return;
  549. // }
  550. // }
  551. // });
  552. // }
  553. // })
  554. // // 查询占位中订单
  555. // this.queryParkOrder(2).then(res=>{
  556. // // console.log("我被调用了");
  557. // if (res.total > 0) { // 有占位费订单不启动扫码充电
  558. // this.setData({
  559. // showPopup:true
  560. // })
  561. // return;
  562. // }
  563. // });
  564. }
  565. },
  566. //跳转个人中心
  567. bindUserAvatarUrl() {
  568. let url = `/pages/ucenter/index/index`;
  569. wx.navigateTo({
  570. url
  571. });
  572. },
  573. //搜索
  574. bindInput() {
  575. var {
  576. user_lat: latitude,
  577. user_lon: longitude,
  578. city
  579. } = this.data;
  580. //console.log(this.data.city);
  581. let url = `/pages/inputtip/inputtip?city=${city}&lonlat=${longitude},${latitude}`;
  582. wx.navigateTo({
  583. url
  584. });
  585. },
  586. //单击地图mark
  587. makertap(e) {
  588. mapregionchange_makertap = true;
  589. //console.log(e);
  590. let {
  591. markerId
  592. } = e.detail;
  593. // console.log({
  594. // e
  595. // });
  596. let {
  597. markers
  598. } = this.data;
  599. //撤销普通用户显示异常站
  600. let userInfo = wx.getStorageSync('userInfo');
  601. let isLogin = wx.getStorageSync('isLogin');
  602. let showBadMark = false;
  603. if (isLogin && userInfo.flag) {
  604. showBadMark = true;
  605. }
  606. //撤销结束
  607. markers.forEach((item, index) => {
  608. item.iconPath = "/images/marker.png";
  609. if (this.data.myChargeStationsIds.indexOf(item.id + ',') != -1) {
  610. item.iconPath = "/images/marker1.png";
  611. }
  612. //撤销普通用户显示异常站
  613. if (showBadMark) {
  614. //撤销结束
  615. if (item.breaknum && item.breaknum != 0) {
  616. item.iconPath = "/images/marker_b.png";
  617. }
  618. //撤销普通用户显示异常站
  619. }
  620. //撤销结束
  621. if (item.id == markerId) {
  622. item.iconPath = "/images/marker_checked.png";
  623. this.showMarkerInfo(item);
  624. }
  625. });
  626. this.setData({
  627. markers,
  628. markerId
  629. });
  630. },
  631. //将mark呈现在地图中心点,并弹出详细信息框
  632. showMarkerInfo(data) {
  633. let that = this
  634. let {
  635. latitude,
  636. longitude
  637. } = data;
  638. this.setData({
  639. textData: data,
  640. latitude: latitude,
  641. longitude: longitude
  642. })
  643. console.info(data)
  644. // 查询是否需要显示
  645. that.execParking(that,data.id)
  646. },
  647. execParking(that,stationId){
  648. wx.request({
  649. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/carParkingRate?stationId=' + stationId,
  650. // data: {
  651. // loginName: userInfo.loginName
  652. // },
  653. method: 'POST',
  654. success: function (res) {
  655. // 是否减免停车费
  656. // carParkingRate: false,
  657. // parkTime: 0,
  658. console.info(res)
  659. let reduceTime = res.data?.reduceTime;
  660. if(!reduceTime){
  661. that.setData({
  662. carParkingRate:false
  663. })
  664. return;
  665. }
  666. that.setData({
  667. carParkingRate:true
  668. })
  669. try{
  670. that.setData({
  671. parkTime: parseFloat((reduceTime/ 3600).toFixed(2))
  672. })
  673. }catch(e){
  674. that.setData({
  675. carParkingRate:false
  676. })
  677. }
  678. },
  679. fail(e) {
  680. console.log("用户数据同步失败");
  681. log.info('[扫码]', '[同步用户数据]', '[fail]', e);
  682. }
  683. });
  684. },
  685. //改变选中mark的颜色
  686. changeMarkerColor(markerId) {
  687. let {
  688. markers
  689. } = this.data;
  690. //撤销普通用户显示异常站
  691. let userInfo = wx.getStorageSync('userInfo');
  692. let isLogin = wx.getStorageSync('isLogin');
  693. let showBadMark = false;
  694. if (isLogin && userInfo.flag) {
  695. showBadMark = true;
  696. }
  697. //撤销结束
  698. markers.forEach((item, index) => {
  699. item.iconPath = "/images/marker.png";
  700. if (this.data.myChargeStationsIds.indexOf(item.id + ',') != -1) {
  701. item.iconPath = "/images/marker1.png";
  702. }
  703. //撤销普通用户显示异常站
  704. if (showBadMark) {
  705. //撤销结束
  706. if (item.breaknum && item.breaknum != 0) {
  707. item.iconPath = "/images/marker_b.png";
  708. }
  709. //撤销普通用户显示异常站
  710. }
  711. //撤销结束
  712. if (item.id == markerId) {
  713. item.iconPath = "/images/marker_checked.png";
  714. }
  715. })
  716. this.setData({
  717. markers,
  718. markerId
  719. });
  720. },
  721. seeInfo(e){
  722. console.log("11111");
  723. // 起点
  724. let {
  725. user_lat: latitude,
  726. user_lon: longitude,
  727. markers,
  728. markerId,
  729. city,
  730. textData
  731. } = this.data;
  732. let {
  733. name,
  734. address,
  735. chargprice,
  736. serviceprice,
  737. brandName
  738. } = textData;
  739. console.log("222222");
  740. console.log(markers);
  741. if (!markers.length) return;
  742. console.log("3333333");
  743. // 终点
  744. markers.forEach((item, index) => {
  745. if (markerId && markerId == item.id) {
  746. let that = this
  747. item.resultList.forEach(item=>{
  748. item["sumPrice"] = that.resetResultListSumPrice(item)
  749. item.elecPrice = item.elecPrice.toFixed(8).replace(/\.?0+$/, "")
  750. item.servicePrice = item.servicePrice.toFixed(8).replace(/\.?0+$/, "")
  751. })
  752. let {
  753. name: latitude2,
  754. longitude: longitude2
  755. } = item;
  756. wx.setStorage({
  757. key: "index_seeInfo_chargpile",
  758. data: item
  759. });
  760. let url = `/pages/charginfo/charginfo?name=${name}&address=${address}&chargprice=${chargprice}&serviceprice=${serviceprice}&chargid=${markerId}&brandName=${brandName}`;
  761. wx.navigateTo({
  762. url
  763. });
  764. }
  765. });
  766. },
  767. resetResultListSumPrice(item){
  768. if(!item.elecPrice && item.elecPrice!=0){
  769. return '暂无费用'
  770. }
  771. if(!item.servicePrice && item.servicePrice!=0){
  772. return '暂无费用'
  773. }
  774. return (Number(item.elecPrice || 0) + Number(item.servicePrice || 0))
  775. .toFixed(8)
  776. .replace(/\.?0+$/, "");
  777. },
  778. //导航
  779. getRoute(e) {
  780. //console.log(e);
  781. // 起点
  782. let {
  783. user_lat: latitude,
  784. user_lon: longitude,
  785. markers,
  786. markerId,
  787. city,
  788. textData
  789. } = this.data;
  790. let {
  791. name,
  792. address
  793. } = textData;
  794. if (!markers.length) return;
  795. // 终点
  796. markers.forEach((item, index) => {
  797. if (markerId && markerId == item.id) {
  798. let {
  799. latitude: latitude2,
  800. longitude: longitude2
  801. } = item;
  802. let url = `/pages/routes/routes?longitude=${longitude}&latitude=${latitude}&longitude2=${longitude2}&latitude2=${latitude2}&city=${city}&name=${name}&desc=${address}`;
  803. //console.log(url);
  804. wx.navigateTo({
  805. url
  806. });
  807. }
  808. });
  809. return;
  810. },
  811. //回到当前位置
  812. click_location_control(e) {
  813. //console.log("回到用户当前定位点");
  814. // let {
  815. // controlId
  816. // } = e;
  817. let mpCtx = wx.createMapContext("map");
  818. mpCtx.moveToLocation();
  819. },
  820. //打开扫一扫
  821. click_scan_control_outer(){
  822. this.click_scan_control("",true)
  823. },
  824. async click_scan_control(scanResult,inner) {
  825. if (this.data.isLogin) {
  826. const resultOrder = await this.queryParkOrder(3);
  827. console.log("查询未支付成功",resultOrder);
  828. if (resultOrder.total > 0) {
  829. wx.showModal({
  830. showCancel: false,
  831. confirmText: '去支付',
  832. content: '您有未支付的占位费订单,请先支付',
  833. confirmColor:'#00AADD',
  834. success: function (res) {
  835. if (!res.cancel) {
  836. //点击确定
  837. let url = `/pages/ucenter/zhanw/zhanw`;
  838. wx.navigateTo({
  839. url
  840. })
  841. }
  842. }
  843. });
  844. return;
  845. }
  846. const result = await this.queryParkOrder(2);
  847. if (result.total > 0) { // 有占位费订单不启动扫码充电
  848. this.setData({
  849. showPopup:true
  850. })
  851. return;
  852. }
  853. }
  854. if(this.data.scanFlag){
  855. return;
  856. }
  857. this.data.scanFlag = true;
  858. wx.showLoading({
  859. title: '努力加载中...',
  860. })
  861. console.log("打开扫一扫");
  862. log.info('[首页]', '[打开扫一扫]');
  863. let that = this;
  864. if (!this.data.isLogin) {
  865. log.info('[首页]', '[未登陆跳转登录界面]');
  866. let url = `/pages/login/phone_login/phone_login`;
  867. that.data.scanFlag = false;
  868. wx.hideLoading();
  869. wx.navigateTo({
  870. url
  871. });
  872. return;
  873. } else {
  874. if (this.data.userInfo.flag) {// 运维人员不作操作,直接返回首页
  875. wx.hideLoading();
  876. return false;
  877. }
  878. if(!this.phoneCheck()){
  879. return;
  880. }
  881. log.info('[首页]', '[获取用户是否有未支付订单]', '[请求]', { userId: this.data.userInfo.userId });
  882. wx.request({
  883. url: getApp().globalData.postHeadAgreement + '/restapi/pileLog/wechatsettlement',
  884. data: {
  885. userId: this.data.userInfo.userId
  886. },
  887. method: 'POST',
  888. success(res) {
  889. let {
  890. data
  891. } = res;
  892. let {
  893. result: order
  894. } = data;
  895. log.info('[首页]', '[获取用户是否有未支付订单]', '[响应]', data);
  896. if (data && order && data.code == 200) {
  897. that.data.scanFlag = false;
  898. wx.hideLoading();
  899. log.info('[首页]', '[用户有未支付订单跳转订单支付界面]');
  900. wx.showModal({
  901. showCancel: false,
  902. content: '你有未支付的订单,请先支付',
  903. confirmColor:'#00AADD',
  904. success: function (res) {
  905. //console.log(res);
  906. if (!res.cancel) {
  907. //点击确定
  908. let url = `/pages/order/order?orderid=${order.orderid}&userId=${order.userId}&chargPileId=${order.chargPileId}`;
  909. wx.navigateTo({
  910. url
  911. });
  912. }
  913. }
  914. });
  915. //console.log(that.data.result);
  916. } else {
  917. //console.log('无订单');
  918. log.info('[首页]', '[用户无未支付订单]');
  919. //console.log("打开扫一扫");
  920. if(inner){
  921. wx.pro.scanCode().then(d=>{
  922. that.afterScanCode(d,that,inner)
  923. }).catch(e=>{
  924. that.data.scanFlag = false;
  925. wx.hideLoading();
  926. });
  927. }else{
  928. that.afterScanCode(scanResult,that,inner)
  929. }
  930. }
  931. },
  932. fail(e) {
  933. that.data.scanFlag = false;
  934. wx.hideLoading();
  935. getApp().showNetworkError();
  936. }
  937. });
  938. }
  939. },
  940. afterScanCode(d,that,inner){
  941. let scanResult = ""
  942. if(inner){
  943. //console.log("完成扫一扫");
  944. //console.log(d);
  945. //兼容标准格式hlht://202001022222220101.330414214二维码
  946. scanResult = d.result;
  947. if((!scanResult) || scanResult == ""){
  948. scanResult="*"
  949. }
  950. }else{
  951. scanResult = decodeURIComponent(d)
  952. //console.log(charePileId);
  953. log.info('[首页]', '[微信扫一扫]', { 'd': d });
  954. if(!scanResult){
  955. scanResult = "0"
  956. }
  957. }
  958. // 是否电池包
  959. let batteryFlag = false;
  960. if (scanResult.startsWith("tkd")){
  961. scanResult = scanResult.substring(3);
  962. batteryFlag = true
  963. }
  964. if (scanResult.startsWith("hlht://") || scanResult.startsWith("HLHT://")){
  965. scanResult = scanResult.substring(7, scanResult.indexOf("."));
  966. }
  967. scanResult = scanResult.replace("https://cdgl.pjnes.com/", "");
  968. scanResult = scanResult.replace("https://cdglyy.pjnes.com/", "");
  969. console.log('扫描到的内容: [' + scanResult + '] , 是否内部按钮:' + inner)
  970. log.info('[首页]', '[用户完成扫一扫]', scanResult);
  971. log.info('[首页]', '[获取扫一扫充电桩]', '[请求]', scanResult);
  972. wx.request({
  973. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/' + (batteryFlag? 'chargBattery' : 'chargPile'),
  974. // data: scanResult,
  975. data: {
  976. chargPileId:scanResult,
  977. userId: that.data.userInfo.userId
  978. },
  979. method: 'POST',
  980. success(res) {
  981. console.log( res.data);
  982. log.info('[首页]', '[获取扫一扫充电桩]', '[响应]', res.data);
  983. if (!res.data || res.data.code == 500) {
  984. that.data.scanFlag = false;
  985. wx.hideLoading();
  986. //没有该充电桩信息
  987. wx.showModal({
  988. showCancel: false,
  989. content: res && res.data && res.data.msg ? res.data.msg :'无效的终端编号',
  990. confirmColor:'#00AADD',
  991. });
  992. } else {
  993. res.data = res.data.result
  994. // 拨乱反正, 将电池包的逻辑强行合并
  995. if(batteryFlag){
  996. // 0空闲
  997. let status = res.data.parkStatus
  998. if(status == 1){
  999. wx.showModal({
  1000. showCancel: false,
  1001. content: '当前停靠点占用',
  1002. confirmColor:'#00AADD',
  1003. });
  1004. }else if(status == 0){
  1005. wx.hideLoading();
  1006. that.data.scanFlag = false;
  1007. // 判断电池包
  1008. if(res?.data?.chargPileList?.length==0 || !res?.data?.chargPileList){
  1009. wx.showModal({
  1010. showCancel: false,
  1011. content: '暂无可用电池包',
  1012. confirmColor:'#00AADD',
  1013. });
  1014. return;
  1015. }
  1016. wx.setStorage({
  1017. key: "elpackage",
  1018. data: res.data
  1019. });
  1020. let url = `/pages/scan_result/elpackage`;
  1021. wx.navigateTo({
  1022. url
  1023. });
  1024. }else{
  1025. wx.showModal({
  1026. showCancel: false,
  1027. content: '未知错误,电池包返回状态码异常:' + res.data.parkStatus,
  1028. confirmColor:'#00AADD',
  1029. });
  1030. }
  1031. that.data.scanFlag = false;
  1032. wx.hideLoading();
  1033. return;
  1034. }
  1035. //SZP
  1036. // park_status
  1037. //充电状态0:离线、1:故障、2:空闲中、3:充电中、4:欠压故障、5:过压故障、6:过电流故障、8:预约、9:在线升级、10:操作中、11:已插枪等
  1038. if (!res.data.chargstatus || res.data.chargstatus == 0 || res.data.chargstatus == 1 || res.data.chargstatus == 4 || res.data.chargstatus == 5 || res.data.chargstatus == 6 || res.data.chargstatus == 9) {
  1039. //充电桩故障
  1040. wx.showModal({
  1041. showCancel: false,
  1042. content: '终端故障,维修中',
  1043. confirmColor:'#00AADD',
  1044. });
  1045. } else if (res.data.chargstatus == 3 || res.data.chargstatus == 8 || res.data.chargstatus == 10) {
  1046. wx.showModal({
  1047. showCancel: false,
  1048. content: '正在充电中',
  1049. confirmColor:'#00AADD',
  1050. });
  1051. } else if (res.data.chargstatus == 2 || res.data.chargstatus == 11) {
  1052. wx.setStorage({
  1053. key: "scan_chargpile",
  1054. data: res.data
  1055. });
  1056. log.info('[首页]', '[扫一扫充电桩空闲跳转去充电界面]');
  1057. let url = `/pages/scan_result/scan_result?chargPileId=${scanResult}`;
  1058. that.data.scanFlag = false;
  1059. wx.hideLoading();
  1060. wx.navigateTo({
  1061. url
  1062. });
  1063. }
  1064. that.data.scanFlag = false;
  1065. wx.hideLoading();
  1066. }
  1067. },
  1068. fail(e) {
  1069. getApp().showNetworkError();
  1070. }
  1071. });
  1072. },
  1073. //地图位移
  1074. mapchange(e) {
  1075. if (e.type == 'end') {
  1076. if (!mapregionchange_makertap) {
  1077. //console.log("移动地图");
  1078. let that = this;
  1079. let wMap = wx.createMapContext('map');
  1080. wMap.getCenterLocation({
  1081. type: 'gcj02',
  1082. success: function (res) {
  1083. let {
  1084. latitude,
  1085. longitude
  1086. } = res;
  1087. let userInfo = wx.getStorageSync('userInfo');
  1088. let isLogin = wx.getStorageSync('isLogin');
  1089. var chargStationType;
  1090. if (!userInfo.flag) {
  1091. //用户是普通用户
  1092. chargStationType = '2';
  1093. }
  1094. wx.request({
  1095. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/chargStations',
  1096. data: {
  1097. lon: longitude,
  1098. lat: latitude,
  1099. distance: that.data.distanceinfo[that.data.distanceinfoindex].value,
  1100. chargStationType
  1101. },
  1102. method: 'POST',
  1103. success(res) {
  1104. that.resetchargStations(res.data)
  1105. let {
  1106. data
  1107. } = res;
  1108. let markers = [];
  1109. var flag = false;
  1110. if(data){
  1111. data.forEach((item, index) => {
  1112. var iconPath;
  1113. if (that.data.markerId && that.data.markerId == item.id) {
  1114. iconPath = "/images/marker_checked.png";
  1115. flag = true;
  1116. } else {
  1117. iconPath = "/images/marker.png";
  1118. if (that.data.myChargeStationsIds.indexOf(item.id + ',') != -1) {
  1119. iconPath = "/images/marker1.png";
  1120. }
  1121. //撤销普通用户显示异常站
  1122. if (isLogin && userInfo.flag) {
  1123. //撤销结束
  1124. if (item.breaknum && item.breaknum != 0) {
  1125. iconPath = "/images/marker_b.png";
  1126. }
  1127. //撤销普通用户显示异常站
  1128. }
  1129. //撤销结束
  1130. }
  1131. //console.log(Util.distance(that.data.user_lat, that.data.user_lon, item.lat, item.lon));
  1132. var marker = {
  1133. brandName:item.brandName,
  1134. name: item.chargStationName,
  1135. address: item.address,
  1136. width: "46rpx",
  1137. height: "67rpx",
  1138. chargfeatures: item.chargfeatures ,
  1139. iconPath: iconPath,
  1140. id: item.id,
  1141. callout: {},
  1142. latitude: item.lat,
  1143. longitude: item.lon,
  1144. //distance: item.distance / 1000,
  1145. distance: Util.distance(that.data.user_lat, that.data.user_lon, item.lat, item.lon),
  1146. chargPileNum: item.fastCharg + item.slowCharg,
  1147. fastCharg: item.fastCharg,
  1148. slowCharg: item.slowCharg,
  1149. freenum: item.freenum,
  1150. fastfreenum: item.fastfreenum,
  1151. slowfreenum: item.slowfreenum,
  1152. breaknum: item.breaknum,
  1153. /** 电费 */
  1154. chargprice: item.chargprice,
  1155. /** 服务费 */
  1156. serviceprice: item.serviceprice,
  1157. /** 停车费 */
  1158. stopprice: item.stopprice,
  1159. operationState: item.operationState,
  1160. sharpChargPrice : item.sharpChargPrice,
  1161. sharpServicePrice : item.sharpServicePrice,
  1162. peakChargPrice : item.peakChargPrice,
  1163. peakServicePrice : item.peakServicePrice,
  1164. flatChargPrice : item.flatChargPrice,
  1165. flatServicePrice : item.flatServicePrice,
  1166. valleyChargPrice : item.valleyChargPrice,
  1167. valleyServicePrice : item.valleyServicePrice,
  1168. resultList: item.resultList,
  1169. chargStationId: item.id,
  1170. stationTag: item.stationTag,
  1171. stationTagList: item.stationTagList,
  1172. offlineServicecall: item.offlineServicecall,
  1173. };
  1174. markers[index] = marker;
  1175. });
  1176. }
  1177. if (!flag) {
  1178. that.setData({
  1179. textData: null,
  1180. markerId: null,
  1181. });
  1182. }
  1183. that.setData({
  1184. markers: markers
  1185. });
  1186. },
  1187. fail(e) {
  1188. getApp().showNetworkError();
  1189. }
  1190. });
  1191. }
  1192. });
  1193. } else {
  1194. //点击marker的情况下
  1195. //console.log("点击marker");
  1196. mapregionchange_makertap = false;
  1197. }
  1198. }
  1199. },
  1200. phoneCheck(){
  1201. if (this.data.userInfo.bindingPhone==0) {
  1202. wx.hideLoading();
  1203. wx.showModal({
  1204. title: '提示',
  1205. content: '当前账户未绑定手机号,请您进行手机号绑定操作',
  1206. showCancel:false,
  1207. confirmText: '去绑定',
  1208. confirmColor:'#00AADD',
  1209. success: function (res1) {
  1210. let url = `/pages/bindPhone/bindPhone`;
  1211. wx.navigateTo({
  1212. url
  1213. });
  1214. }
  1215. })
  1216. return false;
  1217. }else{
  1218. return true;
  1219. }
  1220. },
  1221. // 根据状态查询占位费订单
  1222. async queryParkOrder(status) {
  1223. let that = this;
  1224. let userId = wx.getStorageSync('userInfo').userId;
  1225. let pagenum = that.data.pagenum; // 先取值,防止影响下一次请求
  1226. that.data.pagenum++; // 递增页码
  1227. try {
  1228. let res = await new Promise((resolve, reject) => {
  1229. wx.request({
  1230. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/queryOccupyFeeOrder',
  1231. method: 'POST',
  1232. data: {
  1233. userId,
  1234. searchIndex: status,
  1235. pagenum,
  1236. pagesize: 10
  1237. },
  1238. success: resolve,
  1239. fail: reject
  1240. });
  1241. });
  1242. console.log('请求成功,处理数据');
  1243. if (res.data && res.data.code === 200) {
  1244. return res.data.result.total > 0 ? res.data.result : res.data;
  1245. } else {
  1246. return res.data || {}; // 确保返回的是对象,防止 undefined
  1247. }
  1248. } catch (err) {
  1249. console.error('请求失败', err);
  1250. throw err;
  1251. }
  1252. },
  1253. /**
  1254. * 生命周期函数--监听页面显示
  1255. */
  1256. onShow: function () {
  1257. // 处理页面跳转回来导致费率字段类型为字符串,处理为数值类型避免报错
  1258. let that = this;
  1259. for (let i = 0; i < that.data.markers.length; i++) {
  1260. let marker = that.data.markers[i]; // 直接获取 marker,减少 that.data 访问
  1261. let resultList = marker.resultList;
  1262. if (!resultList) continue;
  1263. for (let j = 0; j < resultList.length; j++) {
  1264. let item = resultList[j];
  1265. if (item.elecPrice === '暂无费用') {
  1266. item.chargprice = '暂无费用';
  1267. } else {
  1268. item.elecPrice = parseFloat(parseFloat(item.elecPrice).toFixed(8).replace(/\.?0+$/, ""));
  1269. }
  1270. if (item.servicePrice === '暂无费用') {
  1271. item.servicePrice = '暂无费用';
  1272. } else {
  1273. item.servicePrice = parseFloat(parseFloat(item.servicePrice).toFixed(8).replace(/\.?0+$/, ""));
  1274. }
  1275. }
  1276. marker.resultList = resultList; // 直接赋值给 marker
  1277. }
  1278. this.data.scanFlag = false;
  1279. let userInfo = wx.getStorageSync('userInfo');
  1280. let isLogin = wx.getStorageSync('isLogin');
  1281. // 页面显示
  1282. if (userInfo && isLogin) {
  1283. //console.log(userInfo);
  1284. //userInfo.flag = true;
  1285. this.setData({
  1286. userInfo: userInfo,
  1287. isLogin: isLogin
  1288. });
  1289. if ((!userInfo.userId && userInfo.userId != 0)){
  1290. log.info('[首页]', '[已登陆未有用户ID跳转登录界面]');
  1291. let url = `/pages/login/phone_login/phone_login`;
  1292. wx.navigateTo({
  1293. url
  1294. });
  1295. return;
  1296. }
  1297. // 查询订单
  1298. log.info('[首页]', '[获取用户是否有未完成订单]', '[请求]', { userId: userInfo.userId });
  1299. wx.request({
  1300. url: getApp().globalData.postHeadAgreement + '/restapi/pileLog/wechatchargstatus',
  1301. data: {
  1302. userId: userInfo.userId
  1303. },
  1304. method: 'POST',
  1305. success(res) {
  1306. let {
  1307. data
  1308. } = res;
  1309. log.info('[首页]', '[获取用户是否有未完成订单]', '[响应]', data);
  1310. if (data && data.code == 200) {
  1311. log.info('[首页]', '[有未完成订单跳充电界面]');
  1312. //获取用户正在充电的订单,并跳转到该页面
  1313. let url = `/pages/charging/charging?orderid=${data.result.orderid}&userId=${userInfo.userId}&chargPileId=${data.result.chargPileId}`;
  1314. //let url = `/pages/charging/charging?userId=${userInfo.userId}`;
  1315. wx.navigateTo({
  1316. url
  1317. });
  1318. } else {
  1319. //console.log(res);
  1320. }
  1321. },
  1322. fail(e) {
  1323. getApp().showNetworkError();
  1324. }
  1325. });
  1326. // 查询呼叫电车
  1327. console.log("查询呼叫电车")
  1328. wx.request({
  1329. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/ivCarRequirement' +
  1330. '?userId='+userInfo.userId,
  1331. data: {
  1332. },
  1333. method: 'POST',
  1334. success(res) {
  1335. console.log(res?.data?.result?.requirementStep)
  1336. // 0-7 进等待 8进终端详情
  1337. if(res?.data?.result?.requirementStep>=0 && res?.data?.result?.requirementStep<=7){
  1338. // 等待
  1339. let url = `/pages/batteryPack/batteryPackWait`;
  1340. wx.reLaunch({
  1341. url
  1342. });
  1343. }else if(res?.data?.result?.requirementStep==8){
  1344. // 8进终端详情
  1345. let url = `/pages/batteryPack/batteryPackWait`;
  1346. wx.reLaunch({
  1347. url
  1348. });
  1349. }
  1350. },
  1351. fail(e) {
  1352. getApp().showNetworkError();
  1353. }
  1354. });
  1355. this.queryParkOrder(3).then(res=>{
  1356. console.log("查询未支付成功",res);
  1357. if (res.total > 0) {
  1358. wx.showModal({
  1359. showCancel: false,
  1360. confirmText: '去支付',
  1361. content: '您有未支付的占位费订单,请先支付',
  1362. confirmColor:'#00AADD',
  1363. success: function (res) {
  1364. if (!res.cancel) {
  1365. console.log("res",res);
  1366. //点击确定
  1367. let url = `/pages/ucenter/zhanw/zhanw`;
  1368. wx.navigateTo({
  1369. url
  1370. })
  1371. return;
  1372. }
  1373. }
  1374. });
  1375. }
  1376. })
  1377. // 查询占位中订单
  1378. this.queryParkOrder(2).then(res=>{
  1379. // 30s查询一次,动态返回数据
  1380. // console.log("我被调用了");
  1381. if (res.total > 0) { // 有占位费订单不启动扫码充电
  1382. this.setData({
  1383. showPopup:true
  1384. })
  1385. return;
  1386. }
  1387. });
  1388. } else {
  1389. //未登录信息
  1390. this.setData({
  1391. userInfo: {}
  1392. });
  1393. }
  1394. },
  1395. bindDistanceinfoChange: function (e) {
  1396. let distance = this.data.distanceinfo[e.detail.value].value;
  1397. this.setData({
  1398. distanceinfoindex: e.detail.value
  1399. });
  1400. },
  1401. Sure: function () {
  1402. this.setData({
  1403. showModal: false
  1404. });
  1405. },
  1406. handleAgreePrivacyAuthorization() {
  1407. console.info('3333333333333');
  1408. this.setData({
  1409. showPrivacy: false
  1410. })
  1411. // 用户同意隐私协议事件回调
  1412. // 用户点击了同意,之后所有已声明过的隐私接口和组件都可以调用了
  1413. // wx.getUserProfile()
  1414. // wx.chooseMedia()
  1415. // wx.getClipboardData()
  1416. // wx.startRecord()
  1417. },
  1418. handleOpenPrivacyContract() {
  1419. // 打开隐私协议页面
  1420. wx.openPrivacyContract({
  1421. success: () => {}, // 打开成功
  1422. fail: () => {}, // 打开失败
  1423. complete: () => {}
  1424. })
  1425. }
  1426. })