电速宝
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. <view class="container">
  2. <!-- 地图组件 -->
  3. <map
  4. id="map"
  5. class="map"
  6. longitude="{{longitude}}"
  7. latitude="{{latitude}}"
  8. markers="{{markers}}"
  9. polyline="{{plannedRoute}}"
  10. include-points="{{trackPoints}}"
  11. bindcontroltap="controltap"
  12. show-location
  13. scale="16"
  14. enable-zoom="{{true}}"
  15. enable-scroll="{{true}}"
  16. enable-rotate="{{false}}"
  17. ></map>
  18. <!-- 信息提示 -->
  19. <view class="info toast" wx:if="{{infoText}}">
  20. {{infoText}}
  21. </view>
  22. <!-- 加载--提示 -->
  23. <view wx:if="{{loading}}" class="loading-mask">
  24. <view class="loading-view">
  25. <loading size="large" color="#007aff">获取路线中...</loading>
  26. </view>
  27. </view>
  28. <!-- 错误--提示 -->
  29. <view wx:if="{{error && !loading}}" class="error-message toast">
  30. {{error}}
  31. </view>
  32. <view class="detailsbox"></view>
  33. </view>
  34. <!-- 验证码弹窗组件 -->
  35. <!-- <verification-popup
  36. isShow="{{showVerification}}"
  37. phoneNumber="{{phoneNumber}}"
  38. countdownSeconds="60"
  39. bind:close="onPopupClose"
  40. bind:confirm="onCodeConfirm"
  41. bind:resend="onResendCode"
  42. bind:complete="onCodeComplete"
  43. /> -->
  44. <!-- 验证码弹窗(如果有) -->
  45. <verification-popup
  46. class="code-popup"
  47. isShow="{{showCodePopup}}"
  48. type="code"
  49. bind:close="onCodePopupClose"
  50. bind:inputComplete="onCodeInputComplete"
  51. bind:resend="onResendCode"
  52. />
  53. <!-- 底部可拖动卡片 -->
  54. <view class="taxi-card-container">
  55. <!-- 背景遮罩 -->
  56. <view
  57. class="mask"
  58. wx:if="{{cardHeight !== 'min'}}"
  59. style="opacity: {{maskOpacity}};"
  60. bindtap="closeCard"
  61. ></view>
  62. <!-- 可拖动卡片 -->
  63. <view
  64. class="taxi-card"
  65. style="height: {{currentHeight}}px;bottom: 0;transition: height 0.3s ease;border-radius: {{cardHeight === 'max' ? '0' : '16px 16px 0 0'}};" bindtouchstart="handleTouchStart" bindtouchmove="handleTouchMove" bindtouchend="handleTouchEnd"
  66. >
  67. <!-- 拖动指示器 -->
  68. <view class="drag-handler" wx:if="{{cardHeight !== 'max'}}">
  69. <view class="drag-bar"></view>
  70. </view>
  71. <!-- 卡片内容 -->
  72. <view class="card-content" style="padding-top: {{cardHeight === 'max' ? '40rpx' : '20rpx'}};">
  73. <!-- 工单状态和基本信息 -->
  74. <view class="storagecartext_box">
  75. <view class="storagecartext">
  76. <view class="destination-title1" style="margin-top: 10rpx;">
  77. 目的地:{{orderdata.poiName}} <t-icon
  78. name="file-copy"
  79. size="28rpx"
  80. class="icon-call"
  81. bindtap="copyDestination"
  82. />
  83. <!-- 显示预计到达时间 -->
  84. </view>
  85. <!-- 客户/司机信息 -->
  86. <view class="contact-info" wx:if="{{userdata.operationRole==5||userdata.operationRole==6}}">
  87. <view class="driver-info" wx:if="{{orderdata.driverphone==''}}">
  88. 司机:<text class="text-warning">分配中</text>
  89. </view>
  90. <view class="driver-info" wx:else>
  91. 司机:{{orderdata.driverName}}·{{orderdata.carName}}
  92. <!-- 乘客视角显示预计到达时间 -->
  93. <!-- <text wx:if="{{estimatedArrivalTime}}" class="estimated-time">
  94. 预计{{estimatedArrivalTime}}到达
  95. </text> -->
  96. </view>
  97. </view>
  98. <view class="contact-info" wx:if="{{userdata.operationRole==4}}">
  99. 客户:{{orderdata.receiver}}
  100. <t-icon
  101. name="call-1-filled"
  102. size="28rpx"
  103. data-phone="{{orderdata.phone}}"
  104. bind:tap="ontelephone"
  105. class="icon-call"
  106. />
  107. </view>
  108. <view class="order-status">
  109. <text wx:if="{{orderdata.workorderType==0}}" class="section-title">分配中</text>
  110. <text wx:if="{{orderdata.workorderType==1}}" class="section-title">待出发</text>
  111. <text wx:if="{{orderdata.workorderType==2}}" class="section-title">行驶中</text>
  112. <text wx:if="{{orderdata.workorderType==3}}" class="section-title">到达地点</text>
  113. <text wx:if="{{orderdata.workorderType==4}}" class="section-title">工作中</text>
  114. <!-- <text wx:if="{{orderdata.workorderType==5}}" class="section-title">工单完成</text> -->
  115. <text wx:if="{{orderdata.workorderType==6}}" class="section-title">取消工单</text>
  116. <text wx:if="{{estimatedArrivalTime && orderdata.workorderType==2}}" class="estimated-time">预计{{estimatedArrivalTime}}到达</text>
  117. <text wx:if="{{orderdata.workorderType==5&&orderdata.settlementType==0}}" class="section-title">待结算</text>
  118. <text wx:if="{{orderdata.workorderType==5&&orderdata.settlementType==1}}" class="section-title">结算完成</text>
  119. <text wx:if="{{orderdata.workorderType==5&&orderdata.settlementType==2}}" class="section-title">结算失败</text>
  120. </view>
  121. </view>
  122. <!-- 操作图片 -->
  123. <!-- -->
  124. <view class="action-images">
  125. <image
  126. wx:if="{{userdata.operationRole==5||userdata.operationRole==6}}"
  127. class="storagecar"
  128. src="https://esos-iot.com/myminio/project/c152026b9bc2485f83b39a6132df3ce7.png"
  129. mode="heightFix"
  130. />
  131. <image
  132. wx:if="{{userdata.operationRole==4}}"
  133. class="storagecar1"
  134. src="https://esos-iot.com/myminio/project/d98e4fde125f40819f8bd8fe872e409c.png"
  135. bind:tap="navigation"
  136. mode="heightFix"
  137. />
  138. </view>
  139. </view>
  140. <!-- 更多操作按钮 -->
  141. <view class="card_more" wx:if="{{userdata.operationRole==5||userdata.operationRole==6}}">
  142. <!-- <view class="card_morebox">联系客服</view> -->
  143. <button class="card_morebox" open-type="contact" plain>
  144. 联系客服
  145. </button>
  146. <view class="card_morebox card_moreboxleft" data-phone="{{orderdata.driverphone}}" bind:tap="ontelephone" wx:if="{{orderdata.workorderType!=0&&orderdata.workorderType!=5}}">联系司机</view>
  147. <view class="card_morebox card_moreboxleft" bind:tap="cancel" wx:if="{{orderdata.workorderType<3}}">取消工单</view>
  148. <!-- <view wx:if="{{orderdata.workorderType==5}}" class="card_morebox card_moreboxleft">开发票</view> -->
  149. <!-- <view wx:if="{{orderdata.workorderType!=5}}" class="card_morebox card_moreboxleft" bind:tap="editorder">编辑工单</view> -->
  150. </view>
  151. <!-- 客户视角内容 -->
  152. <view class="card_box" wx:if="{{userdata.operationRole==5||userdata.operationRole==6}}">
  153. <!-- 工单详情 -->
  154. <view class="detail-section" style="border-bottom: 1rpx solid #f5f5f5;">
  155. <view class="section-header" bind:tap="onmore">
  156. <view class="section-title">工单详情</view>
  157. <view class="section-action">
  158. <text>{{moretype ? '收起' : '展开详情'}}</text>
  159. <t-icon name="{{moretype ? 'chevron-up' : 'chevron-down'}}" size="22px"/>
  160. </view>
  161. </view>
  162. <view class="detail-list" wx:if="{{moretype}}">
  163. <view class="detail-item">
  164. <view class="item-label">工单号</view>
  165. <view class="item-value">{{orderdata.workorderId}}</view>
  166. </view>
  167. <view class="detail-item">
  168. <view class="item-label">创建时间</view>
  169. <view class="item-value">{{orderdata.workorderCreatetime}}</view>
  170. </view>
  171. <view class="detail-item">
  172. <view class="item-label">工单类型</view>
  173. <view class="item-value" style="color:#40a9ff;">{{orderdata.chargedischargeType==1 ? '充电' : '放电'}}</view>
  174. </view>
  175. <view class="detail-item">
  176. <view class="item-label">需求电量</view>
  177. <view class="item-value">{{orderdata.workorderElectricity}}</view>
  178. </view>
  179. <view class="detail-item">
  180. <view class="item-label">SOC</view>
  181. <view class="item-value">{{orderdata.soc}}</view>
  182. </view>
  183. <view class="detail-item">
  184. <view class="item-label">车型</view>
  185. <view class="item-value">{{orderdata.carMondel}}</view>
  186. </view>
  187. <view class="detail-item">
  188. <view class="item-label">里程</view>
  189. <view class="item-value">12.5km</view>
  190. </view>
  191. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  192. <view class="item-label">预计时长</view>
  193. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  194. </view>
  195. <view class="detail-item" wx:if="{{orderdata.workorderType>=3}}">
  196. <view class="item-label">时长</view>
  197. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  198. </view>
  199. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  200. <view class="item-label">预计到达时间</view>
  201. <view class="item-value">{{estimatedArrivalTime || '--'}}</view>
  202. </view>
  203. <view class="detail-item" wx:if="{{orderdata.workorderType==3}}">
  204. <view class="item-label">到达时间</view>
  205. <view class="item-value">{{orderdata.arrivaltime || '--'}}</view>
  206. </view>
  207. <view class="detail-item" wx:if="{{orderdata.workorderType==4}}">
  208. <view class="item-label">开始工作时间</view>
  209. <view class="item-value">{{orderdata.startworktime || '--'}}</view>
  210. </view>
  211. <view class="detail-item" wx:if="{{orderdata.workorderType==5}}">
  212. <view class="item-label">工作结束时间</view>
  213. <view class="item-value">{{orderdata.endworktime || '--'}}</view>
  214. </view>
  215. </view>
  216. <view style="height: 20rpx;" wx:if="{{moretype}}"></view>
  217. </view>
  218. <!---->
  219. <!-- 费用明细 -->
  220. <view class="detail-section">
  221. <view class="section-header" bind:tap="oncostdetails">
  222. <view class="section-title" wx:if="{{orderdata.workorderType>4&&orderdata.settlementType==0}}">实付金额</view>
  223. <view class="section-title" wx:if="{{orderdata.workorderType>4&&orderdata.settlementType==1}}">实付金额</view>
  224. <view class="section-title" wx:if="{{orderdata.workorderType<4&&orderdata.settlementType==0}}">预估金额</view>
  225. <view class="section-action">
  226. <view class="section-title1">{{orderdata.price}} <text class="section_yuan">元</text>
  227. </view>
  228. <t-icon name="{{costdetails ? 'chevron-up' : 'chevron-down'}}" size="22px"/>
  229. </view>
  230. </view>
  231. <!---->
  232. <view class="fee-list" wx:if="{{costdetails}}">
  233. <view class="fee-item">
  234. <view class="fee-label">电费</view>
  235. <view class="fee-value">¥5.00</view>
  236. </view>
  237. <view class="detail-item" wx:if="{{orderdata.chargedischargeType==1}}">
  238. <view class="item-label">充电量</view>
  239. <view class="item-value">{{orderdata.chargingcapacity}}</view>
  240. </view>
  241. <view class="detail-item" wx:if="{{orderdata.chargedischargeType==2}}">
  242. <view class="item-label">放电量</view>
  243. <view class="item-value">{{orderdata.dischargecapacity}}</view>
  244. </view>
  245. <!-- <view class="fee-item">
  246. <view class="fee-label">起步价</view>
  247. <view class="fee-value">¥13.00</view>
  248. </view> -->
  249. <!-- <view class="fee-item">
  250. <view class="fee-label">里程费</view>
  251. <view class="fee-value">¥32.00</view>
  252. </view> -->
  253. <!-- <view class="fee-item">
  254. <view class="fee-label">时长费</view>
  255. <view class="fee-value">¥8.50</view>
  256. </view> -->
  257. </view>
  258. <view style="height: 1rpx;"></view>
  259. </view>
  260. </view>
  261. <!---->
  262. <!-- 司机视角内容 -->
  263. <view class="card_box" wx:if="{{userdata.operationRole==4}}">
  264. <!-- 工单详情 -->
  265. <view class="detail-section" style="border-bottom: 1rpx solid #f5f5f5;">
  266. <view class="section-header" bind:tap="onmore">
  267. <view class="section-title">工单详情</view>
  268. <view class="section-action">
  269. <text>{{moretype ? '收起' : '展开详情'}}</text>
  270. <t-icon name="{{moretype ? 'chevron-up' : 'chevron-down'}}" size="22px"/>
  271. </view>
  272. </view>
  273. <view class="detail-list" wx:if="{{moretype}}">
  274. <view class="detail-item">
  275. <view class="item-label">工单号</view>
  276. <view class="item-value">{{orderdata.workorderId}}</view>
  277. </view>
  278. <view class="detail-item">
  279. <view class="item-label">创建时间</view>
  280. <view class="item-value">{{orderdata.workorderCreatetime}}</view>
  281. </view>
  282. <view class="detail-item">
  283. <view class="item-label">工单类型</view>
  284. <view class="item-value">{{orderdata.chargedischargeType==1 ? '充电' : '放电'}}</view>
  285. </view>
  286. <view class="detail-item">
  287. <view class="item-label">需求电量</view>
  288. <view class="item-value">{{orderdata.workorderElectricity}}</view>
  289. </view>
  290. <view class="detail-item">
  291. <view class="item-label">SOC</view>
  292. <view class="item-value">{{orderdata.soc}}</view>
  293. </view>
  294. <view class="detail-item">
  295. <view class="item-label">车型</view>
  296. <view class="item-value">{{orderdata.carMondel}}</view>
  297. </view>
  298. <view class="detail-item">
  299. <view class="item-label">里程</view>
  300. <view class="item-value">{{distance}} km</view>
  301. </view>
  302. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  303. <view class="item-label">预计时长</view>
  304. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  305. </view>
  306. <view class="detail-item" wx:if="{{orderdata.workorderType>=3}}">
  307. <view class="item-label">时长</view>
  308. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  309. </view>
  310. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  311. <view class="item-label">预计到达时间</view>
  312. <view class="item-value">{{estimatedArrivalTime || '--'}}</view>
  313. </view>
  314. <view class="detail-item" wx:if="{{orderdata.workorderType==3}}">
  315. <view class="item-label">到达时间</view>
  316. <view class="item-value">{{orderdata.arrivaltime || '--'}}</view>
  317. </view>
  318. <view class="detail-item" wx:if="{{orderdata.workorderType==4}}">
  319. <view class="item-label">开始工作时间</view>
  320. <view class="item-value">{{orderdata.startworktime || '--'}}</view>
  321. </view>
  322. <view class="detail-item" wx:if="{{orderdata.workorderType==5}}">
  323. <view class="item-label">工作结束时间</view>
  324. <view class="item-value">{{orderdata.endworktime || '--'}}</view>
  325. </view>
  326. </view>
  327. <view style="height: 20rpx;" wx:if="{{moretype}}"></view>
  328. </view>
  329. </view>
  330. <view style="height: 140rpx;"></view>
  331. <!-- 开始时间 -->
  332. <view class="control-panel" wx:if="{{userdata.operationRole==4}}">
  333. <slide-confirm
  334. wx:if="{{orderdata.workorderType==1}}"
  335. id="mySlideConfirm"
  336. data-type="{{orderdata.workorderType}}"
  337. bind:success="onrecognize"
  338. width="300"
  339. height="50"
  340. defaultText="开始出发"
  341. successText="验证中"
  342. />
  343. <!-- -->
  344. <slide-confirm
  345. wx:if="{{orderdata.workorderType==2}}"
  346. id="mySlideConfirm"
  347. data-type="{{orderdata.workorderType}}"
  348. bind:success="onarrivalposition"
  349. width="300"
  350. height="50"
  351. defaultText="到达目的地"
  352. successText="验证中"
  353. />
  354. <slide-confirm
  355. wx:if="{{orderdata.workorderType==3}}"
  356. id="mySlideConfirm"
  357. data-type="{{orderdata.workorderType}}"
  358. bind:success="showVerificationPopup"
  359. width="300"
  360. height="50"
  361. defaultText="开始工作"
  362. successText="验证中"
  363. />
  364. <slide-confirm
  365. wx:if="{{orderdata.workorderType==4}}"
  366. id="mySlideConfirm"
  367. data-type="{{orderdata.workorderType}}"
  368. bind:success="onSlideSuccess"
  369. width="300"
  370. height="50"
  371. defaultText="完成工作"
  372. successText="验证中"
  373. />
  374. <view class="payment" wx:if="{{orderdata.workorderType==5&&orderdata.settlementType==0}}">
  375. <view class="payccc">
  376. 用户待结算
  377. </view>
  378. </view>
  379. </view>
  380. </view>
  381. <view class="payment" wx:if="{{(userdata.operationRole==5||userdata.operationRole==6)&&orderdata.workorderType==5&&orderdata.settlementType==0}}">
  382. <view class="pay" bind:tap="onpay">
  383. 工单结算
  384. </view>
  385. </view>
  386. <view class="payment" wx:if="{{(userdata.operationRole==5||userdata.operationRole==6)&&orderdata.workorderType<5&&orderdata.settlementType==0}}">
  387. <view class="payccc">
  388. 工单服务中...
  389. </view>
  390. </view>
  391. <!-- 结算弹窗组件 -->
  392. <!-- 结算弹窗 -->
  393. <verification-popup
  394. class="payment-popup"
  395. isShow="{{showpayment}}"
  396. type="结算"
  397. bind:close="onpaymentPopupClose"
  398. bind:inputComplete="onpaymentInputComplete"
  399. />
  400. </view>
  401. </view>
  402. <!---->