eleCarMap.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. // pages/charginfo/eleCarMap.js
  2. Page({
  3. /**
  4. * 页面的初始数据
  5. */
  6. data: {
  7. longitude:116.4965075,
  8. latitude: 40.006103,
  9. speed:0,
  10. scale:20,
  11. accuracy:0,
  12. chargid:0,
  13. ele_chargList:[],
  14. ele_park:[1,2,3],
  15. markers:[],
  16. markTemp:{
  17. id: 1,
  18. latitude: 23.098994,
  19. longitude: 113.322520,
  20. iconPath: '/images/triangle.png',
  21. height: 5,
  22. width: 5,
  23. customCallout: {
  24. anchorX: 0,
  25. anchorY: 0,
  26. display: "ALWAYS"
  27. }
  28. // anchor:{x: 0.5, y:1 },
  29. // callout: {
  30. // content: '文本内容',
  31. // color: '#000000',
  32. // fontSize: 14,
  33. // borderWidth: 2,
  34. // borderRadius: 5,
  35. // borderColor: '#FFFFFF',
  36. // bgColor: '#ffffff',
  37. // padding: 5,
  38. // display: 'ALWAYS',
  39. // textAlign: 'center'
  40. // }
  41. },
  42. eleActiveIndex: -1,
  43. parkActiveIndex: -1,
  44. },
  45. /**
  46. * 生命周期函数--监听页面加载
  47. */
  48. onLoad(options) {
  49. let that = this;
  50. let json = wx.getStorageSync("eleCarMapPage")
  51. let {chargid} = json;
  52. that.setData({chargid})
  53. let userInfo = wx.getStorageSync('userInfo');
  54. that.setData({
  55. userInfo
  56. })
  57. this.getEleData()
  58. },
  59. /**
  60. * 生命周期函数--监听页面初次渲染完成
  61. */
  62. onReady() {
  63. },
  64. /**
  65. * 生命周期函数--监听页面显示
  66. */
  67. onShow() {
  68. },
  69. /**
  70. * 生命周期函数--监听页面隐藏
  71. */
  72. onHide() {
  73. },
  74. /**
  75. * 生命周期函数--监听页面卸载
  76. */
  77. onUnload() {
  78. },
  79. /**
  80. * 页面相关事件处理函数--监听用户下拉动作
  81. */
  82. onPullDownRefresh() {
  83. },
  84. /**
  85. * 页面上拉触底事件的处理函数
  86. */
  87. onReachBottom() {
  88. },
  89. /**
  90. * 用户点击右上角分享
  91. */
  92. onShareAppMessage() {
  93. },
  94. addHandler(json){
  95. let {
  96. chargid
  97. } = json
  98. this.setData({
  99. chargid
  100. })
  101. this.getEleData()
  102. },
  103. callouttap(e){
  104. // eleActiveIndex: -1,
  105. // parkActiveIndex: -1,
  106. let that = this;
  107. let index = e.markerId;
  108. console.info(e.markerId)
  109. let ele_chargList = this.data.ele_chargList;
  110. let mm = ele_chargList[index]
  111. if(mm.lock){
  112. return
  113. }
  114. if(mm.active){
  115. mm.active = false;
  116. if(mm.objType == 'ele'){
  117. that.setData({
  118. eleActiveIndex:-1
  119. })
  120. }else{
  121. that.setData({
  122. parkActiveIndex:-1
  123. })
  124. }
  125. this.setData({
  126. ele_chargList
  127. })
  128. return;
  129. }
  130. mm.active = true;
  131. if(mm.objType == 'ele'){
  132. if( that.data.eleActiveIndex >=0){
  133. ele_chargList[ that.data.eleActiveIndex].active = false
  134. }
  135. that.setData({
  136. eleActiveIndex:index
  137. })
  138. }else{
  139. if( that.data.parkActiveIndex >=0){
  140. ele_chargList[ that.data.parkActiveIndex].active = false
  141. }
  142. that.setData({
  143. parkActiveIndex:index
  144. })
  145. }
  146. // ele_chargList.forEach(key=>{
  147. // })
  148. console.info(this.data.ele_chargList)
  149. let car_active = false
  150. if(this.data.parkActiveIndex >=0 && this.data.eleActiveIndex >=0 ){
  151. car_active = true
  152. }
  153. this.setData({
  154. ele_chargList,
  155. car_active
  156. })
  157. },
  158. getEleData(){
  159. console.info("查询数据")
  160. // 新源恒远210调试站
  161. let that = this;
  162. // 充电桩
  163. wx.request({
  164. url: getApp().globalData.postHeadAgreement +'/restapi/wechat/chargInfo',
  165. data: {
  166. id: that.data.chargid,
  167. pagenum: 1,
  168. ivType: 1,
  169. pagesize: 10000,
  170. },
  171. method: 'POST',
  172. success(res) {
  173. console.log(res);
  174. let chargList = res.data.chargList.rows;
  175. let ele_chargList = []
  176. chargList.forEach(key => {
  177. let chargstatusname = '';
  178. let chargstatusclass = '';
  179. if(key.chargstatus == 2){
  180. chargstatusname='空闲中'
  181. chargstatusclass = 'chargstatus_kxz'
  182. }else if(key.chargstatus == 11){
  183. chargstatusname='已插枪'
  184. chargstatusclass = 'chargstatus_ycq'
  185. }else if(key.chargstatus == 3 || key.chargstatus == 10){
  186. chargstatusname='充电中'
  187. chargstatusclass = 'chargstatus_cdz'
  188. }else if(key.chargstatus == 0){
  189. chargstatusname='离线'
  190. chargstatusclass = 'chargstatus_lx'
  191. }else{
  192. chargstatusname='故障'
  193. chargstatusclass = 'chargstatus_gz'
  194. }
  195. key.chargstatusname = chargstatusname;
  196. key.chargstatusclass = chargstatusclass;
  197. let mark = JSON.parse(JSON.stringify(that.data.markTemp));
  198. if(key?.currentParkPoint?.latitude && key?.currentParkPoint?.longitude ){
  199. mark.id = that.data.ele_chargList.length + ele_chargList.length;
  200. mark.latitude = key?.currentParkPoint?.latitude
  201. mark.longitude = key?.currentParkPoint?.longitude
  202. mark['ele_lock'] = key?.lockStatus == 1
  203. mark['ele_unlock'] = key?.lockStatus == 0
  204. mark['park_lock'] = false
  205. mark['park_unlock'] = false
  206. mark['lock'] = mark['ele_lock'] || mark['park_lock']
  207. mark['active'] = false
  208. mark['title'] = key?.currentSoc? key?.currentSoc + '%' : '-'
  209. mark['type'] = mark['ele_lock'] ? '锁定' : '未锁定'
  210. mark['objType'] = 'ele'
  211. // mark.callout.content = key?.currentParkPoint?.pointShowName
  212. ele_chargList.push(mark)
  213. that.setData({
  214. longitude:mark.longitude,
  215. latitude:mark.latitude,
  216. })
  217. }
  218. })
  219. console.log(ele_chargList);
  220. // that.rechargeTimeOrder(chargemoneylogs);
  221. wx.hideLoading()
  222. that.setData({
  223. ele_chargList: that.data.ele_chargList.concat(ele_chargList),
  224. markers: that.data.markers.concat(ele_chargList),
  225. // ele_total: res.data.chargList.total,
  226. // ele_dataLoading: false,
  227. // ele_fastFree : res.data.fastFree,
  228. // ele_slowFree : res.data.slowFree,
  229. // ele_fastSum : res.data.fastSum,
  230. // ele_slowSum : res.data.slowSum
  231. });
  232. console.log(ele_chargList);
  233. }
  234. });
  235. // 停靠点
  236. wx.request({
  237. url: getApp().globalData.postHeadAgreement +'/restapi/wechat/ivparkByStation',
  238. data: {
  239. id: that.data.chargid,
  240. pagenum: 1,
  241. ivType: 1,
  242. pagesize: 10000,
  243. },
  244. method: 'POST',
  245. success(res) {
  246. console.log(res);
  247. let chargList = res.data;
  248. let ele_chargList = []
  249. chargList.forEach(key => {
  250. let chargstatusname = '';
  251. let chargstatusclass = '';
  252. if(key.chargstatus == 2){
  253. chargstatusname='空闲中'
  254. chargstatusclass = 'chargstatus_kxz'
  255. }else if(key.chargstatus == 11){
  256. chargstatusname='已插枪'
  257. chargstatusclass = 'chargstatus_ycq'
  258. }else if(key.chargstatus == 3 || key.chargstatus == 10){
  259. chargstatusname='充电中'
  260. chargstatusclass = 'chargstatus_cdz'
  261. }else if(key.chargstatus == 0){
  262. chargstatusname='离线'
  263. chargstatusclass = 'chargstatus_lx'
  264. }else{
  265. chargstatusname='故障'
  266. chargstatusclass = 'chargstatus_gz'
  267. }
  268. key.chargstatusname = chargstatusname;
  269. key.chargstatusclass = chargstatusclass;
  270. let mark = JSON.parse(JSON.stringify(that.data.markTemp));
  271. mark.id = that.data.ele_chargList.length + ele_chargList.length;
  272. mark.latitude = key?.latitude
  273. mark.longitude = key?.longitude
  274. mark['ele_lock'] = false
  275. mark['ele_unlock'] = false
  276. mark['park_lock'] = key?.parkStatus == 1
  277. mark['park_unlock'] = key?.parkStatus == 0
  278. mark['lock'] = mark['ele_lock'] || mark['park_lock']
  279. mark['active'] = false
  280. mark['title'] = key?.pointShowName? key?.pointShowName : '-'
  281. mark['type'] = mark['ele_lock'] ? '占用' : '空闲'
  282. mark['objType'] = 'park'
  283. // mark.callout.content = key?.currentParkPoint?.pointShowName
  284. ele_chargList.push(mark)
  285. that.setData({
  286. longitude:mark.longitude,
  287. latitude:mark.latitude,
  288. })
  289. })
  290. console.log(ele_chargList);
  291. // that.rechargeTimeOrder(chargemoneylogs);
  292. wx.hideLoading()
  293. that.setData({
  294. ele_chargList: that.data.ele_chargList.concat(ele_chargList),
  295. markers: that.data.markers.concat(ele_chargList),
  296. // ele_park: that.data.ele_park.concat(chargList),
  297. // ele_total: res.data.chargList.total,
  298. // ele_dataLoading: false,
  299. // ele_fastFree : res.data.fastFree,
  300. // ele_slowFree : res.data.slowFree,
  301. // ele_fastSum : res.data.fastSum,
  302. // ele_slowSum : res.data.slowSum
  303. });
  304. }
  305. });
  306. },
  307. callCar(){
  308. let that = this
  309. let car_active = that.data.car_active;
  310. if(!car_active){
  311. return;
  312. }
  313. let ivParkPointId = that.data.ele_chargList[that.data.parkActiveIndex].id
  314. let chargePileId = that.data.ele_chargList[that.data.eleActiveIndex].id
  315. let userId = that.data.userInfo.userId
  316. wx.request({
  317. url: getApp().globalData.postHeadAgreement + '/restapi/wechat/callCarRequirement?'
  318. + 'ivParkPointId=' + ivParkPointId
  319. + '&chargePileId=' + chargePileId
  320. + '&userId=' + userId
  321. + '&requirementType=0',
  322. data: {
  323. },
  324. method: 'POST',
  325. success: function (res) {
  326. if( res.data.code ==200){
  327. // 走你
  328. let url = `/pages/batteryPackWait/batteryPackWait`;
  329. wx.navigateTo({
  330. url
  331. });
  332. }else{
  333. // 给出提示
  334. wx.showModal({
  335. showCancel: false,
  336. content: "调度失败" + res.data?.msg,
  337. confirmColor:'#00AADD',
  338. });
  339. }
  340. },
  341. fail(e) {
  342. console.log("呼叫充电车失败");
  343. }
  344. })
  345. }
  346. })