电速宝
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

index.wxml 15KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379
  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. <view class="taxi-card-container">
  46. <!-- 背景遮罩 -->
  47. <view
  48. class="mask"
  49. wx:if="{{cardHeight !== 'min'}}"
  50. style="opacity: {{maskOpacity}};"
  51. bindtap="closeCard"
  52. ></view>
  53. <!-- 可拖动卡片 -->
  54. <view
  55. class="taxi-card"
  56. 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"
  57. >
  58. <!-- 拖动指示器 -->
  59. <view class="drag-handler" wx:if="{{cardHeight !== 'max'}}">
  60. <view class="drag-bar"></view>
  61. </view>
  62. <!-- 卡片内容 -->
  63. <view class="card-content" style="padding-top: {{cardHeight === 'max' ? '40rpx' : '20rpx'}};">
  64. <!-- 订单状态和基本信息 -->
  65. <view class="storagecartext_box">
  66. <view class="storagecartext">
  67. <view class="destination-title1" style="margin-top: 10rpx;">
  68. 目的地:{{orderdata.poiName}}
  69. <!-- 显示预计到达时间 -->
  70. </view>
  71. <!-- 客户/司机信息 -->
  72. <view class="contact-info" wx:if="{{userdata.operationRole==5}}">
  73. <view class="driver-info" wx:if="{{orderdata.driverphone==''}}">
  74. 司机:<text class="text-warning">分配中</text>
  75. </view>
  76. <view class="driver-info" wx:else>
  77. 司机:{{orderdata.driverName}}·{{orderdata.carName}}
  78. <!-- 乘客视角显示预计到达时间 -->
  79. <!-- <text wx:if="{{estimatedArrivalTime}}" class="estimated-time">
  80. 预计{{estimatedArrivalTime}}到达
  81. </text> -->
  82. </view>
  83. </view>
  84. <view class="contact-info" wx:if="{{userdata.operationRole==4}}">
  85. 客户:{{orderdata.receiver}}
  86. <t-icon
  87. name="call-1-filled"
  88. size="28rpx"
  89. data-phone="{{orderdata.phone}}"
  90. bind:tap="ontelephone"
  91. class="icon-call"
  92. />
  93. </view>
  94. <view class="order-status">
  95. <text wx:if="{{orderdata.workorderType==0}}" class="section-title">分配中</text>
  96. <text wx:if="{{orderdata.workorderType==1}}" class="section-title">待出发</text>
  97. <text wx:if="{{orderdata.workorderType==2}}" class="section-title">行驶中</text>
  98. <text wx:if="{{orderdata.workorderType==3}}" class="section-title">到达地点</text>
  99. <text wx:if="{{orderdata.workorderType==4}}" class="section-title">工作中</text>
  100. <text wx:if="{{orderdata.workorderType==5}}" class="section-title">订单完成</text>
  101. <text wx:if="{{estimatedArrivalTime && orderdata.workorderType==2}}" class="estimated-time">预计{{estimatedArrivalTime}}到达</text>
  102. </view>
  103. </view>
  104. <!-- 操作图片 -->
  105. <view class="action-images">
  106. <image
  107. wx:if="{{userdata.operationRole==5}}"
  108. class="storagecar"
  109. src="https://esos-iot.bjdexn.cn/myminio/project/c152026b9bc2485f83b39a6132df3ce7.png"
  110. mode="heightFix"
  111. />
  112. <image
  113. wx:if="{{userdata.operationRole==4}}"
  114. class="storagecar1"
  115. src="https://esos-iot.bjdexn.cn/myminio/project/d98e4fde125f40819f8bd8fe872e409c.png"
  116. bind:tap="navigation"
  117. mode="heightFix"
  118. />
  119. </view>
  120. </view>
  121. <!-- 更多操作按钮 -->
  122. <view class="card_more" wx:if="{{userdata.operationRole==5&&orderdata.workorderType!=0}}">
  123. <view class="card_morebox">联系客服</view>
  124. <view class="card_morebox" data-phone="{{orderdata.driverphone}}" bind:tap="ontelephone">联系司机</view>
  125. <view class="card_morebox" bind:tap="cancel">取消订单</view>
  126. <view wx:if="{{orderdata.workorderType==5}}" class="card_morebox">开发票</view>
  127. <view wx:if="{{orderdata.workorderType!=5}}" class="card_morebox" bind:tap="editorder">编辑订单</view>
  128. </view>
  129. <!-- 客户视角内容 -->
  130. <view class="card_box" wx:if="{{userdata.operationRole==5}}">
  131. <!-- 订单详情 -->
  132. <view class="detail-section" style="border-bottom: 1rpx solid #f5f5f5;">
  133. <view class="section-header" bind:tap="onmore">
  134. <view class="section-title">订单详情</view>
  135. <view class="section-action">
  136. <text>{{moretype ? '收起' : '展开详情'}}</text>
  137. <t-icon name="{{moretype ? 'chevron-up' : 'chevron-down'}}" size="22px"/>
  138. </view>
  139. </view>
  140. <view class="detail-list" wx:if="{{moretype}}">
  141. <view class="detail-item">
  142. <view class="item-label">订单号</view>
  143. <view class="item-value">{{orderdata.workorderId}}</view>
  144. </view>
  145. <view class="detail-item">
  146. <view class="item-label">创建时间</view>
  147. <view class="item-value">{{orderdata.workorderCreatetime}}</view>
  148. </view>
  149. <view class="detail-item">
  150. <view class="item-label">订单类型</view>
  151. <view class="item-value">{{orderdata.chargedischargeType==1 ? '充电' : '放电'}}</view>
  152. </view>
  153. <view class="detail-item">
  154. <view class="item-label">需求电量</view>
  155. <view class="item-value">{{orderdata.workorderElectricity}}</view>
  156. </view>
  157. <view class="detail-item">
  158. <view class="item-label">SOC</view>
  159. <view class="item-value">{{orderdata.soc}}</view>
  160. </view>
  161. <view class="detail-item">
  162. <view class="item-label">车型</view>
  163. <view class="item-value">{{orderdata.carMondel}}</view>
  164. </view>
  165. <view class="detail-item">
  166. <view class="item-label">里程</view>
  167. <view class="item-value">12.5km</view>
  168. </view>
  169. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  170. <view class="item-label">预计时长</view>
  171. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  172. </view>
  173. <view class="detail-item" wx:if="{{orderdata.workorderType>=3}}">
  174. <view class="item-label">时长</view>
  175. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  176. </view>
  177. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  178. <view class="item-label">预计到达时间</view>
  179. <view class="item-value">{{estimatedArrivalTime || '--'}}</view>
  180. </view>
  181. <view class="detail-item" wx:if="{{orderdata.workorderType==3}}">
  182. <view class="item-label">到达时间</view>
  183. <view class="item-value">{{orderdata.arrivaltime || '--'}}</view>
  184. </view>
  185. <view class="detail-item" wx:if="{{orderdata.workorderType==4}}">
  186. <view class="item-label">开始工作时间</view>
  187. <view class="item-value">{{orderdata.startworktime || '--'}}</view>
  188. </view>
  189. <view class="detail-item" wx:if="{{orderdata.workorderType==5}}">
  190. <view class="item-label">工作结束时间</view>
  191. <view class="item-value">{{orderdata.endworktime || '--'}}</view>
  192. </view>
  193. </view>
  194. <view style="height: 20rpx;" wx:if="{{moretype}}"></view>
  195. </view>
  196. <!-- 费用明细 -->
  197. <view class="detail-section">
  198. <view class="section-header" bind:tap="oncostdetails">
  199. <view class="section-title">预估金额</view>
  200. <view class="section-action">
  201. <view class="section-title1">100.1 <text class="section_yuan">元</text>
  202. </view>
  203. <t-icon name="{{costdetails ? 'chevron-up' : 'chevron-down'}}" size="22px"/>
  204. </view>
  205. </view>
  206. <view class="fee-list" wx:if="{{costdetails}}">
  207. <view class="fee-item">
  208. <view class="fee-label">电费</view>
  209. <view class="fee-value">¥5.00</view>
  210. </view>
  211. <view class="fee-item">
  212. <view class="fee-label">服务费</view>
  213. <view class="fee-value">¥5.00</view>
  214. </view>
  215. <!-- <view class="fee-item">
  216. <view class="fee-label">起步价</view>
  217. <view class="fee-value">¥13.00</view>
  218. </view> -->
  219. <!-- <view class="fee-item">
  220. <view class="fee-label">里程费</view>
  221. <view class="fee-value">¥32.00</view>
  222. </view> -->
  223. <!-- <view class="fee-item">
  224. <view class="fee-label">时长费</view>
  225. <view class="fee-value">¥8.50</view>
  226. </view> -->
  227. </view>
  228. <view style="height: 1rpx;"></view>
  229. </view>
  230. </view>
  231. <!---->
  232. <!-- 司机视角内容 -->
  233. <view class="card_box" wx:if="{{userdata.operationRole==4}}">
  234. <!-- 订单详情 -->
  235. <view class="detail-section" style="border-bottom: 1rpx solid #f5f5f5;">
  236. <view class="section-header" bind:tap="onmore">
  237. <view class="section-title">订单详情</view>
  238. <view class="section-action">
  239. <text>{{moretype ? '收起' : '展开详情'}}</text>
  240. <t-icon name="{{moretype ? 'chevron-up' : 'chevron-down'}}" size="22px"/>
  241. </view>
  242. </view>
  243. <view class="detail-list" wx:if="{{moretype}}">
  244. <view class="detail-item">
  245. <view class="item-label">订单号</view>
  246. <view class="item-value">{{orderdata.workorderId}}</view>
  247. </view>
  248. <view class="detail-item">
  249. <view class="item-label">创建时间</view>
  250. <view class="item-value">{{orderdata.workorderCreatetime}}</view>
  251. </view>
  252. <view class="detail-item">
  253. <view class="item-label">订单类型</view>
  254. <view class="item-value">{{orderdata.chargedischargeType==1 ? '充电' : '放电'}}</view>
  255. </view>
  256. <view class="detail-item">
  257. <view class="item-label">需求电量</view>
  258. <view class="item-value">{{orderdata.workorderElectricity}}</view>
  259. </view>
  260. <view class="detail-item">
  261. <view class="item-label">SOC</view>
  262. <view class="item-value">{{orderdata.soc}}</view>
  263. </view>
  264. <view class="detail-item">
  265. <view class="item-label">车型</view>
  266. <view class="item-value">{{orderdata.carMondel}}</view>
  267. </view>
  268. <view class="detail-item">
  269. <view class="item-label">里程</view>
  270. <view class="item-value">{{distance}} km</view>
  271. </view>
  272. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  273. <view class="item-label">预计时长</view>
  274. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  275. </view>
  276. <view class="detail-item" wx:if="{{orderdata.workorderType>=3}}">
  277. <view class="item-label">时长</view>
  278. <view class="item-value">{{estimatedDuration || '50分钟'}}</view>
  279. </view>
  280. <view class="detail-item" wx:if="{{orderdata.workorderType<3}}">
  281. <view class="item-label">预计到达时间</view>
  282. <view class="item-value">{{estimatedArrivalTime || '--'}}</view>
  283. </view>
  284. <view class="detail-item" wx:if="{{orderdata.workorderType==3}}">
  285. <view class="item-label">到达时间</view>
  286. <view class="item-value">{{orderdata.arrivaltime || '--'}}</view>
  287. </view>
  288. <view class="detail-item" wx:if="{{orderdata.workorderType==4}}">
  289. <view class="item-label">开始工作时间</view>
  290. <view class="item-value">{{orderdata.startworktime || '--'}}</view>
  291. </view>
  292. <view class="detail-item" wx:if="{{orderdata.workorderType==5}}">
  293. <view class="item-label">工作结束时间</view>
  294. <view class="item-value">{{orderdata.endworktime || '--'}}</view>
  295. </view>
  296. </view>
  297. <view style="height: 20rpx;" wx:if="{{moretype}}"></view>
  298. </view>
  299. </view>
  300. <view style="height: 140rpx;" wx:if="{{moretype}}"></view>
  301. <!-- 控制按钮区域 -->
  302. <view class="control-panel" wx:if="{{userdata.operationRole==4}}">
  303. <slide-confirm
  304. wx:if="{{orderdata.workorderType==1}}"
  305. id="mySlideConfirm"
  306. data-type="{{orderdata.workorderType}}"
  307. bind:success="onrecognize"
  308. width="300"
  309. height="50"
  310. defaultText="开始出发"
  311. successText="验证中"
  312. />
  313. <slide-confirm
  314. wx:if="{{orderdata.workorderType==2}}"
  315. id="mySlideConfirm"
  316. data-type="{{orderdata.workorderType}}"
  317. bind:success="onarrivalposition"
  318. width="300"
  319. height="50"
  320. defaultText="到达目的地"
  321. successText="验证中"
  322. />
  323. <slide-confirm
  324. wx:if="{{orderdata.workorderType==3}}"
  325. id="mySlideConfirm"
  326. data-type="{{orderdata.workorderType}}"
  327. bind:success="showVerificationPopup"
  328. width="300"
  329. height="50"
  330. defaultText="开始工作"
  331. successText="验证中"
  332. />
  333. <slide-confirm
  334. wx:if="{{orderdata.workorderType==4}}"
  335. id="mySlideConfirm"
  336. data-type="{{orderdata.workorderType}}"
  337. bind:success="onSlideSuccess"
  338. width="300"
  339. height="50"
  340. defaultText="完成工作"
  341. successText="验证中"
  342. />
  343. </view>
  344. </view>
  345. </view>
  346. </view>