orderDetail.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179
  1. <template>
  2. <view class="order_detail">
  3. <view class="top">
  4. </view>
  5. <view class="head">
  6. <span class="cuIcon-back" @click="back"></span>
  7. <view class="case">
  8. 订单详情
  9. </view>
  10. </view>
  11. <view class="over">
  12. <view class="status_box">
  13. <view class="status">
  14. {{form.status}}
  15. </view>
  16. <span>{{form.flowRecordList[0].content?form.flowRecordList[0].content:''}}</span>
  17. </view>
  18. <!-- 送车到站显示信息开始 -->
  19. <view class="car_data" v-if="form.checkType == 1">
  20. <view class="car_id">
  21. {{form.licenseNo}}
  22. <span>{{form.carType?form.carType:'小型轿车'}}</span>
  23. </view>
  24. <view class="model">
  25. {{form.brandModel}}
  26. </view>
  27. <view class="car_name">
  28. <span>用户姓名:{{form.contactsName}}</span>
  29. <view class="call" @click="callUser">
  30. <image src="/static/order/call.png" mode=""></image>
  31. 联系客户
  32. </view>
  33. </view>
  34. </view>
  35. <!-- 送车到站显示信息结束 -->
  36. <!-- 上门取车显示信息开始 -->
  37. <view class="car_data" v-if="form.checkType == 0">
  38. <view class="car_id user_name">
  39. <span style="display: block;padding: 0px;">用户姓名:{{form.contactsName}}</span>
  40. <span class="call" @click="callUser">
  41. <image src="/static/order/call.png" mode=""></image> 联系客户
  42. </span>
  43. </view>
  44. <view class="car_address">
  45. <view class="address">
  46. 送/取车地址:{{form.carAddress}}
  47. <image src="/static/order/address.png" mode=""
  48. @click="navigation(form.userLongitude,form.userLatitude,form.carAddress)"></image>
  49. </view>
  50. <view class="car_license">
  51. 车牌号:{{form.licenseNo}}
  52. </view>
  53. </view>
  54. </view>
  55. <!-- 上门取车显示信息结束 -->
  56. <!-- 救援显示信息开始 -->
  57. <view class="car_data" v-if="form.checkType > 20">
  58. <view class="name">
  59. <view class="user_name">
  60. 用户姓名:{{form.contactsName}}
  61. </view>
  62. <view class="call" @click="callUser">
  63. <image src="/static/order/call.png" mode=""></image>
  64. 联系客户
  65. </view>
  66. </view>
  67. <view class="address">
  68. <view class="location">
  69. <span style="font-weight: 600;">救援地址:</span>
  70. {{form.carAddress}}
  71. </view>
  72. <view class="go" @click="navigation(form.userLongitude,form.userLatitude,form.carAddress)">
  73. <image src="/static/order/address.png" mode=""></image>
  74. 导航
  75. </view>
  76. </view>
  77. <view class="address" v-if="form.checkType==23" style="margin-top: 20rpx;">
  78. <view class="location">
  79. <span style="font-weight: 600;">送达地址:</span>
  80. {{form.deliveryAddr}}
  81. </view>
  82. <view class="go" @click="navigation(form.deliveryLongitude,form.deliveryLatitude,form.deliveryAddr)">
  83. <image src="/static/order/address.png" mode=""></image>
  84. 导航
  85. </view>
  86. </view>
  87. <view class="car_id">
  88. 车牌号:{{form.licenseNo}}
  89. </view>
  90. </view>
  91. <view class="product">
  92. <view class="fat_product">
  93. <view class="product_img">
  94. <image :src="form.productImage" mode=""></image>
  95. </view>
  96. <view class="product_name">
  97. {{form.productName}}
  98. <span><text>¥</text>{{!rightsId?0:form.price}}</span>
  99. </view>
  100. </view>
  101. <view class="sun_product">
  102. <view class="item" v-for="item in form.childrenOrder" :key="item.orderNo">
  103. <view class="sun_name">
  104. {{item.productName}}
  105. </view>
  106. <view class="sun_price">
  107. <span><text>¥</text>{{item.price}}</span>
  108. <view class="look" @click="lookDetail(item)">
  109. 服务明细
  110. </view>
  111. </view>
  112. </view>
  113. </view>
  114. </view>
  115. <!-- 时间轴区域 -->
  116. <view class="time_line">
  117. <u-time-line>
  118. <u-time-line-item node-top="2" v-for="(item,index) in form.flowRecordList" :key="index">
  119. <template v-slot:content>
  120. <view class="center">
  121. <view class="left_title">
  122. <view :class="index == 0?'title':''">
  123. {{item.content}}
  124. </view>
  125. <span>{{item.time}}</span>
  126. </view>
  127. <view class="button">
  128. <u-button size="mini" shape="square" v-if="index+1 == form.flowRecordList.length"
  129. @click="goLive">实况记录</u-button>
  130. <u-button size="mini" shape="square" v-if="item.content=='商户确认收车'"
  131. @click="goPhoto(checkType == 0 ? 1 : 2)">车辆交接照片</u-button>
  132. <u-button size="mini" shape="square" v-if="checkType== 1 && item.content=='检测完毕,等待用户取车'"
  133. @click="goPhoto(3)">服务照片</u-button>
  134. <u-button size="mini" shape="square" v-if="checkType== 0 && item.content=='检测完成,准备送车'"
  135. @click="goPhoto(3)">服务照片</u-button>
  136. <u-button size="mini" shape="square" v-if="item.content=='正在救援中'" @click="goPhoto(4)">现场照片</u-button>
  137. <u-button size="mini" shape="square" v-if="item.content=='等待用户确认'" @click="goPhoto(3)">服务照片</u-button>
  138. </view>
  139. </view>
  140. </template>
  141. </u-time-line-item>
  142. </u-time-line>
  143. </view>
  144. <!-- 订单信息区域 -->
  145. <view class="order_data">
  146. <view class="order_item">
  147. <view class="item_title">
  148. 车辆信息
  149. </view>
  150. <view class="item_child">
  151. <span>车牌号:</span>
  152. <view class="center">
  153. {{form.licenseNo}}
  154. </view>
  155. </view>
  156. <view class="item_child" v-if="form.checkType<20">
  157. <span>车辆类型:</span>
  158. <view class="center">
  159. {{form.carType?form.carType:'小型轿车'}}
  160. </view>
  161. </view>
  162. <view class="item_child" v-if="form.checkType<20">
  163. <span>品牌型号:</span>
  164. <view class="center">
  165. {{form.brandModel}}
  166. </view>
  167. </view>
  168. </view>
  169. <view class="order_item">
  170. <view class="item_title">
  171. 用户信息
  172. </view>
  173. <view class="item_child">
  174. <span>姓名:</span>
  175. <view class="center">
  176. {{form.contactsName}}
  177. </view>
  178. </view>
  179. <view class="item_child">
  180. <span>联系方式:</span>
  181. <view class="center">
  182. {{form.contactsPhone}}
  183. </view>
  184. </view>
  185. </view>
  186. <view class="order_item">
  187. <view class="item_title">
  188. 商户信息
  189. </view>
  190. <view class="item_child">
  191. <span>商家名称:</span>
  192. <view class="center">
  193. {{form.merchantName}}
  194. </view>
  195. </view>
  196. <view class="item_child">
  197. <span>商家地址:</span>
  198. <view class="center">
  199. {{form.merAddress}}
  200. </view>
  201. </view>
  202. <view class="item_child">
  203. <span>联系方式:</span>
  204. <view class="center">
  205. {{form.merchantPhone}}
  206. </view>
  207. </view>
  208. </view>
  209. <view class="order_item" v-if="this.form.checkType == 1">
  210. <view class="item_title">
  211. 站点信息
  212. </view>
  213. <view class="item_child">
  214. <span>站点名称:</span>
  215. <view class="center">
  216. {{form.inspectionStationName}}
  217. </view>
  218. </view>
  219. <view class="item_child">
  220. <span>站点地址:</span>
  221. <view class="center">
  222. {{form.detailedAddress}}
  223. </view>
  224. </view>
  225. </view>
  226. <view class="order_item">
  227. <view class="item_title">
  228. 订单信息
  229. </view>
  230. <view class="item_child">
  231. <span>订单号:</span>
  232. <view class="center">
  233. {{form.orderNo}}
  234. </view>
  235. </view>
  236. <view class="item_child">
  237. <span>下单时间:</span>
  238. <view class="center">
  239. {{form.orderTime}}
  240. </view>
  241. </view>
  242. <view class="item_child" v-if="form.payTime">
  243. <span>付款时间:</span>
  244. <view class="center">
  245. {{form.payTime}}
  246. </view>
  247. </view>
  248. </view>
  249. <view class="order_item" v-for="item in form.childrenOrder" :key="item.orderNo">
  250. <view class="item_title">
  251. 附订单信息
  252. </view>
  253. <view class="item_child">
  254. <span>订单号:</span>
  255. <view class="center">
  256. {{item.orderNo}}
  257. </view>
  258. </view>
  259. <view class="item_child">
  260. <span>下单时间:</span>
  261. <view class="center">
  262. {{item.date}}
  263. </view>
  264. </view>
  265. <view class="item_child" v-if="item.payTime">
  266. <span>付款时间:</span>
  267. <view class="center">
  268. {{item.payTime}}
  269. </view>
  270. </view>
  271. </view>
  272. </view>
  273. </view>
  274. <view class="btn">
  275. <view class="customer" @click="callService">
  276. 联系客服
  277. </view>
  278. <view class="accept" @click="receive" v-if="form.checkType<20 &&form.statusCode == 2">
  279. 接单
  280. </view>
  281. <view class="accept" @click.stop="receive" v-if="form.checkType>20 && form.flowStatus =='03'"
  282. style="margin-left: 16rpx;">
  283. 接单
  284. </view>
  285. <view class="func" v-if="form.checkType == 1">
  286. <view class="accept" @click="collect" v-if="form.statusCode ==3 && form.flowStatus =='05'">
  287. 确认收车
  288. </view>
  289. <view class="accept" @click="goProject" v-if=" form.statusCode ==4">
  290. 添加收费服务
  291. </view>
  292. <view class="accept" @click="finish" v-if="form.statusCode ==4">
  293. 检测完成
  294. </view>
  295. <view class="accept" @click="takeCar" v-if="form.flowStatus =='12'&& form.statusCode ==5">
  296. 确认取车
  297. </view>
  298. <view class="accept" @click="evaluate" v-if=" form.flowStatus =='16'">
  299. 去评价
  300. </view>
  301. </view>
  302. <view class="func" v-if="form.checkType==0">
  303. <view class="accept" @click="goGetCar" v-if="form.statusCode ==5 && form.flowStatus == 4">
  304. 去取车
  305. </view>
  306. <view class="accept" @click="collect" v-if="form.statusCode ==5 && form.flowStatus == 5">
  307. 确认取车
  308. </view>
  309. <view class="accept" @click="goProject" v-if=" form.statusCode ==4">
  310. 添加收费服务
  311. </view>
  312. <view class="accept" @click="finish" v-if="form.statusCode ==4 && form.flowStatus==7 || form.flowStatus==8">
  313. 检测完成
  314. </view>
  315. <view class="accept" @click.stop="goAlso" v-if="form.statusCode ==3 && form.flowStatus==12">
  316. 去送车
  317. </view>
  318. <view class="accept" @click.stop="delivered" v-if="form.statusCode ==3&& form.flowStatus==13">
  319. 车已送达
  320. </view>
  321. <view class="accept" @click.stop="evaluate" v-if=" form.flowStatus =='16' ">
  322. 去评价
  323. </view>
  324. </view>
  325. <view class="func" v-if="form.checkType>20">
  326. <view class="accept" @click.stop="depart" v-if="form.flowStatus == '04'">
  327. 出发
  328. </view>
  329. <view class="accept" @click.stop="arrive" v-if="form.flowStatus == '05'">
  330. 到达现场
  331. </view>
  332. <view class="accept" @click.stop="help"
  333. v-if="(form.statusCode ==4 && form.flowStatus=='07' || form.flowStatus=='06'|| form.flowStatus=='08')">
  334. 救援完成
  335. </view>
  336. <view class="accept" @click.stop="evaluate" v-if=" form.flowStatus =='12' ">
  337. 去评价
  338. </view>
  339. </view>
  340. </view>
  341. <receive v-if="isSuccess" @cut="refresh" :titleCheckType="titleCheckType" />
  342. <upload :type="uptype" :taskId="taskId" v-if="isUpload" @cut="isUpload = false" @upSuccess="upSuccess" />
  343. <serviceDetail :subOrderId="subOrderId" @cut="isServiceDeatil =false" v-if="isServiceDeatil" />
  344. <evaluate :userId="userId" :taskId="taskId" v-if="iseEvaluate" @cut="cutEvaluate" />
  345. </view>
  346. </template>
  347. <script>
  348. import receive from '../../order/components/receiveOrder.vue'
  349. import upload from '../../order/components/upload.vue'
  350. import evaluate from '../../order/components/evaluate.vue'
  351. import serviceDetail from '../../order/components/serviceDetail.vue'
  352. export default {
  353. components: {
  354. receive,
  355. upload,
  356. serviceDetail,
  357. evaluate
  358. },
  359. data() {
  360. return {
  361. taskId: '',
  362. checkType: '',
  363. form: {},
  364. list: [],
  365. isSuccess: false,
  366. isUpload: false, //上传图片弹窗显隐
  367. uptype: '', //上传图片类型
  368. checkType: '', //上传图片修改状态用
  369. isServiceDeatil: false,
  370. subOrderId: '',
  371. iseEvaluate: false, //评论弹窗显隐
  372. userId: '', //传值给评论弹窗
  373. paramState: null,
  374. titleCheckType: null, //接单提示区分
  375. serveType: '', //服务类型
  376. rightsId: ''
  377. }
  378. },
  379. methods: {
  380. //返回
  381. back() {
  382. // uni.navigateBack({
  383. // delta: 1
  384. // });
  385. uni.switchTab({
  386. url: '/pages/order/index'
  387. })
  388. },
  389. //联系客户
  390. callUser() {
  391. uni.makePhoneCall({
  392. phoneNumber: this.form.contactsPhone,
  393. success: () => {
  394. uni.showToast({
  395. title: '正在拨号',
  396. icon: 'none'
  397. })
  398. },
  399. fail: (err) => {
  400. uni.showToast({
  401. title: '拨打失败: ' + err.errMsg,
  402. icon: 'none'
  403. })
  404. }
  405. })
  406. },
  407. //俩系客服
  408. callService() {
  409. uni.makePhoneCall({
  410. phoneNumber: this.form.custSerPhone,
  411. success: () => {
  412. uni.showToast({
  413. title: '正在拨号',
  414. icon: 'none'
  415. })
  416. },
  417. fail: (err) => {
  418. uni.showToast({
  419. title: '拨打失败: ' + err.errMsg,
  420. icon: 'none'
  421. })
  422. }
  423. })
  424. },
  425. refresh() {
  426. this.isSuccess = false
  427. this.getDeatil()
  428. },
  429. //获取详情
  430. getDeatil() {
  431. this.$http.get("/ts/merchant/details?taskId=" + this.taskId).then(res => {
  432. if (res.data.code == 200) {
  433. this.form = res.data.result
  434. console.log(this.form)
  435. }
  436. })
  437. },
  438. // 查看实况记录
  439. goLive() {
  440. uni.navigateTo({
  441. url: '/pages/order/serviceOrder/live?taskId=' + this.taskId + '&checkType=' + this.form.checkType
  442. })
  443. },
  444. // 查看图片
  445. goPhoto(type) {
  446. console.log(type)
  447. uni.navigateTo({
  448. url: '/pages/order/serviceOrder/photo?taskId=' + this.taskId + '&businessType=' + type
  449. })
  450. },
  451. // 接单
  452. receive() {
  453. this.titleCheckType = this.form.checkType
  454. let data = {
  455. taskId: this.taskId,
  456. checkType: this.checkType,
  457. paramState: '04',
  458. // serveType: '01'
  459. }
  460. this.form.checkType < 20 ? data.serveType = '01' : data.serveType = '02'
  461. this.$http.post("/ts/merchant/update/Serve", data).then(res => {
  462. console.log(res)
  463. if (res.data.code == 200) {
  464. this.isSuccess = true
  465. this.getDeatil()
  466. }
  467. })
  468. },
  469. //收车上传照片
  470. collect() {
  471. this.paramState = '07'
  472. this.taskId = this.form.taskId
  473. this.checkType = this.form.checkType
  474. this.serveType = '01'
  475. //0 取车,1送车
  476. if (this.form.checkType == 0) {
  477. this.uptype = 1
  478. } else if (this.form.checkType == 1) {
  479. //客户送车,商户收车
  480. // if (this.form.statusCode == 3) {
  481. this.uptype = 2
  482. // }
  483. }
  484. this.isUpload = true
  485. },
  486. //送车到站————收车上传图片后修改状态
  487. upSuccess() {
  488. let data = {
  489. taskId: this.taskId,
  490. checkType: this.checkType,
  491. paramState: this.paramState, //商户上传图片成功
  492. // serveType: '01'
  493. serveType: this.serveType
  494. }
  495. this.$http.post("/ts/merchant/update/Serve", data).then(res => {
  496. if (res.data.code == 200) {
  497. this.isUpload = false
  498. this.getDeatil()
  499. } else {
  500. uni.showToast({
  501. icon: 'none',
  502. title: res.data.message
  503. })
  504. }
  505. })
  506. },
  507. //检测完成上传检测图片
  508. finish() {
  509. this.paramState = '12'
  510. // this.taskId = item.taskId
  511. // this.checkType = item.checkType
  512. //0 取车,1送车
  513. this.uptype = 3
  514. this.isUpload = true
  515. // this.paramState = '12'
  516. this.serveType = '01'
  517. this.getDeatil()
  518. },
  519. //送车到站--确认取车
  520. takeCar(item) {
  521. let data = {
  522. taskId: this.form.taskId,
  523. checkType: this.form.checkType,
  524. paramState: '14', //
  525. serveType: '01'
  526. }
  527. this.$http.post("/ts/merchant/update/Serve", data).then(res => {
  528. if (res.data.code == 200) {
  529. this.isUpload = false
  530. let page = {
  531. num: 1,
  532. size: 10
  533. }
  534. this.getDeatil(page)
  535. }
  536. })
  537. },
  538. //跳转至服务项目页面
  539. goProject() {
  540. console.log(this.form)
  541. uni.navigateTo({
  542. url: '/pages/order/serviceOrder/project?checkType=' + this.form.checkType + '&taskId=' + this.form.taskId +
  543. '&orderNo=' + this.form.orderNo + '&productName=' + this.form.productName + '&type=' + 1
  544. })
  545. },
  546. //查看收费服务明细
  547. lookDetail(item) {
  548. this.subOrderId = item.orderNo
  549. this.isServiceDeatil = true
  550. },
  551. //评价弹窗显示
  552. evaluate() {
  553. this.iseEvaluate = true
  554. this.userId = this.form.userId
  555. },
  556. cutEvaluate() {
  557. this.iseEvaluate = false
  558. this.getDeatil()
  559. },
  560. //商户去取车
  561. goGetCar() {
  562. let data = {
  563. taskId: this.form.taskId,
  564. checkType: this.form.checkType,
  565. paramState: '05', //商户接单成功
  566. serveType: '01'
  567. }
  568. let that = this
  569. console.log(this.form)
  570. uni.openLocation({
  571. // longitude: Number(this.form.userLongitude),
  572. // latitude: Number(this.form.userLatitude),
  573. longitude: Number(this.form.userLongitude),
  574. latitude: Number(this.form.userLatitude),
  575. name: this.form.carAddres, // 位置名称
  576. // address: e.F_Address, // 位置地点
  577. success: function(res) {
  578. console.log('打开系统位置地图成功')
  579. that.$http.post("/ts/merchant/update/Serve", data).then(res => {
  580. if (res.data.code == 200) {
  581. // this.isReceive = true
  582. that.getDeatil()
  583. }
  584. })
  585. },
  586. fail: function(error) {
  587. console.log(error)
  588. },
  589. })
  590. },
  591. //导航
  592. navigation(longitude, latitude, name) {
  593. console.log(this.form)
  594. // uni.openLocation({
  595. // longitude: Number(this.form.userLongitude),
  596. // latitude: Number(this.form.userLatitude),
  597. // name: this.form.carAddres, // 位置名称
  598. // // address: e.F_Address, // 位置地点
  599. // success: function(res) {
  600. // console.log('打开系统位置地图成功')
  601. // },
  602. // fail: function(error) {
  603. // console.log(error)
  604. // },
  605. // })
  606. uni.openLocation({
  607. longitude: Number(longitude),
  608. latitude: Number(latitude),
  609. name: name,
  610. // name: this.form.carAddress, // 位置名称
  611. // address: e.F_Address, // 位置地点
  612. success: function(res) {
  613. console.log('打开系统位置地图成功')
  614. },
  615. fail: function(error) {
  616. console.log(error)
  617. },
  618. })
  619. },
  620. goAlso() {
  621. let data = {
  622. taskId: this.form.taskId,
  623. checkType: this.form.checkType,
  624. paramState: '13', //商户点击去送车
  625. serveType: '01'
  626. }
  627. this.$http.post("/ts/merchant/update/Serve", data).then(res => {
  628. if (res.data.code == 200) {
  629. let page = {
  630. num: 1,
  631. size: 10
  632. }
  633. this.getDeatil()
  634. }
  635. })
  636. },
  637. //商户点击车已送达
  638. delivered() {
  639. let data = {
  640. taskId: this.form.taskId,
  641. checkType: this.form.checkType,
  642. paramState: '14', //商户点击车已送达
  643. serveType: '01'
  644. }
  645. this.$http.post("/ts/merchant/update/Serve", data).then(res => {
  646. if (res.data.code == 200) {
  647. let page = {
  648. num: 1,
  649. size: 10
  650. }
  651. this.getDeatil()
  652. }
  653. })
  654. },
  655. //救援出发
  656. depart() {
  657. let data = {
  658. taskId: this.form.taskId,
  659. checkType: this.form.checkType,
  660. paramState: '05', //商户出发成功
  661. serveType: '02'
  662. }
  663. this.$http.post("/ts/merchant/update/Serve", data).then(res => {
  664. if (res.data.code == 200) {
  665. // this.isReceive = true
  666. this.getDeatil()
  667. }
  668. })
  669. },
  670. //救援到达现场
  671. arrive() {
  672. // this.taskId = this.form.taskId
  673. // this.checkType = this.form.checkType
  674. // this.uptype = 4 //道路救援
  675. // this.paramState = '06'
  676. // this.serveType = '02'
  677. // this.isUpload = true
  678. // this.getDeatil()
  679. let params = {
  680. taskId: this.form.taskId,
  681. checkType: this.form.checkType,
  682. uptype: 4, // 道路救援
  683. paramState: '06',
  684. serveType: '02',
  685. jumptype:1
  686. // isUpload: true
  687. }
  688. let queryString = Object.keys(params)
  689. .map(key => `${key}=${encodeURIComponent(params[key])}`)
  690. .join('&');
  691. uni.navigateTo({
  692. url: `/pages/order/arriveUpload?${queryString}`
  693. })
  694. },
  695. help() {
  696. this.taskId = this.form.taskId
  697. this.checkType = this.form.checkType
  698. this.uptype = 3
  699. this.isUpload = true
  700. this.paramState = '11'
  701. this.serveType = '02'
  702. this.getDeatil()
  703. },
  704. },
  705. onLoad(options) {
  706. this.taskId = options.taskId
  707. this.checkType = options.checkType
  708. this.rightsId = options.rightsId
  709. this.getDeatil()
  710. }
  711. }
  712. </script>
  713. <style lang="scss" scoped>
  714. .order_detail {
  715. width: 100vw;
  716. height: 100vh;
  717. background: #F8F8FA;
  718. display: flex;
  719. flex-direction: column;
  720. // overflow-y: auto;
  721. /*#ifdef APP-PLUS*/
  722. .top {
  723. width: 100%;
  724. height: var(--status-bar-height);
  725. background: #FFFFFF;
  726. }
  727. /*#endif*/
  728. .head {
  729. width: 100%;
  730. height: 112rpx;
  731. padding: 20rpx;
  732. display: flex;
  733. align-items: center;
  734. background: #FFFFFF;
  735. position: relative;
  736. .cuIcon-back {
  737. font-size: 40rpx;
  738. margin-right: 40rpx;
  739. }
  740. .case {
  741. position: absolute;
  742. left: 50%;
  743. transform: translateX(-50%);
  744. font-size: 36rpx;
  745. font-weight: 600;
  746. }
  747. }
  748. .over {
  749. padding: 0 24rpx;
  750. overflow-y: auto;
  751. flex: 1;
  752. .status_box {
  753. width: 100%;
  754. font-size: 36rpx;
  755. font-weight: 600;
  756. line-height: 42rpx;
  757. margin: 20rpx 0;
  758. span {
  759. font-size: 24rpx;
  760. color: #999999;
  761. line-height: 28rpx;
  762. }
  763. }
  764. .car_data {
  765. width: 100%;
  766. padding: 20RPX;
  767. background: #FFFFFF;
  768. border-radius: 12rpx;
  769. .car_id {
  770. font-size: 30rpx;
  771. font-weight: 600;
  772. span {
  773. display: inline-block;
  774. // width: 120rpx;
  775. padding: 0 24rpx;
  776. height: 40rpx;
  777. background: #F3F3F3;
  778. border-radius: 8rpx;
  779. font-weight: 400;
  780. font-size: 24rpx;
  781. color: #8D92A2;
  782. text-align: center;
  783. line-height: 40rpx;
  784. margin-left: 20rpx;
  785. }
  786. }
  787. .user_name {
  788. display: flex;
  789. align-items: center;
  790. justify-content: space-between;
  791. span {
  792. width: auto;
  793. display: flex;
  794. align-items: center;
  795. justify-content: center;
  796. font-weight: 600;
  797. font-size: 30rpx;
  798. color: #333333;
  799. background: none;
  800. margin: 0;
  801. }
  802. .call {
  803. background: #F4F9FE;
  804. border-radius: 8rpx;
  805. padding: 6rpx 12rpx;
  806. font-size: 24rpx;
  807. color: #2D88F4;
  808. image {
  809. width: 28rpx;
  810. height: 28rpx;
  811. margin-right: 8rpx;
  812. }
  813. }
  814. }
  815. .model {
  816. font-size: 26rpx;
  817. color: #666666;
  818. margin-top: 12rpx;
  819. }
  820. .car_name {
  821. border-top: 1px solid #eeeeee;
  822. padding-top: 16rpx;
  823. margin-top: 12rpx;
  824. font-size: 26rpx;
  825. font-weight: 600;
  826. color: #333333;
  827. display: flex;
  828. align-items: center;
  829. justify-content: space-between;
  830. .call {
  831. background: #F4F9FE;
  832. border-radius: 8rpx;
  833. padding: 6rpx 12rpx;
  834. display: flex;
  835. align-items: center;
  836. justify-content: center;
  837. image {
  838. width: 28rpx;
  839. height: 28rpx;
  840. margin-right: 8rpx;
  841. }
  842. }
  843. }
  844. .car_address {
  845. .address {
  846. width: 100%;
  847. display: flex;
  848. align-items: center;
  849. justify-content: space-between;
  850. image {
  851. width: 44rpx;
  852. height: 44rpx;
  853. margin-left: 18rpx;
  854. }
  855. }
  856. .car_license {
  857. font-weight: 600;
  858. font-size: 26rpx;
  859. color: #333333;
  860. margin-top: 12rpx;
  861. }
  862. }
  863. .name {
  864. display: flex;
  865. align-items: center;
  866. justify-content: space-between;
  867. border-bottom: 1px solid #eeeeee;
  868. padding-bottom: 14rpx;
  869. .user_name {
  870. font-weight: 600;
  871. font-size: 30rpx;
  872. }
  873. .call {
  874. width: 156rpx;
  875. height: 48rpx;
  876. background: #F4F9FE;
  877. border-radius: 8rpx;
  878. display: flex;
  879. align-items: center;
  880. justify-content: center;
  881. font-size: 24rpx;
  882. color: #2D88F4;
  883. image {
  884. width: 28rpx;
  885. height: 28rpx;
  886. margin-right: 8rpx;
  887. }
  888. }
  889. }
  890. .address {
  891. display: flex;
  892. align-items: start;
  893. justify-content: space-between;
  894. margin-top: 16rpx;
  895. margin-bottom: 12rpx;
  896. .location {
  897. font-size: 26rpx;
  898. }
  899. .go {
  900. display: flex;
  901. flex-direction: column;
  902. align-items: center;
  903. font-size: 18rpx;
  904. color: rgba(45, 136, 244, 0.96);
  905. image {
  906. width: 44rpx;
  907. height: 44rpx;
  908. }
  909. }
  910. }
  911. .car_id {
  912. font-size: 26rpx;
  913. }
  914. }
  915. .product {
  916. width: 100%;
  917. background-color: #fff;
  918. margin-top: 16rpx;
  919. padding: 20rpx 32rpx;
  920. margin-bottom: 16rpx;
  921. .fat_product {
  922. width: 100%;
  923. display: flex;
  924. align-items: center;
  925. .product_img {
  926. width: 132rpx;
  927. height: 132rpx;
  928. border-radius: 12rpx;
  929. overflow: hidden;
  930. margin-right: 16rpx;
  931. image {
  932. width: 100%;
  933. height: 100%;
  934. }
  935. }
  936. .product_name {
  937. height: 132rpx;
  938. font-size: 28rpx;
  939. color: #333333;
  940. display: flex;
  941. flex-direction: column;
  942. justify-content: space-between;
  943. span {
  944. color: #FD4912;
  945. font-weight: 600;
  946. font-size: 28rpx;
  947. text {
  948. font-size: 22rpx;
  949. }
  950. }
  951. }
  952. }
  953. .sun_product {
  954. width: 100%;
  955. // height: 126rpx;
  956. border-radius: 12rpx;
  957. margin-top: 20rpx;
  958. .item {
  959. margin-bottom: 20rpx;
  960. padding: 12rpx 16rpx;
  961. background: linear-gradient(180deg, #EEF7FF 0%, #F6FBFF 100%);
  962. }
  963. .sun_name {
  964. font-weight: 600;
  965. font-size: 26rpx;
  966. }
  967. .sun_price {
  968. display: flex;
  969. align-items: center;
  970. justify-content: space-between;
  971. span {
  972. font-weight: 600;
  973. font-size: 22rpx;
  974. color: #FD4912;
  975. tetx {
  976. font-size: 18rpx;
  977. }
  978. }
  979. .look {
  980. width: 144rpx;
  981. height: 48rpx;
  982. background: #FFFFFF;
  983. border-radius: 61rpx;
  984. border: 1px solid #2D88F4;
  985. font-size: 24rpx;
  986. color: #2D88F4;
  987. text-align: center;
  988. line-height: 48rpx;
  989. }
  990. }
  991. }
  992. }
  993. .time_line {
  994. background: #FFFFFF;
  995. border-radius: 16px;
  996. padding: 16rpx 32rpx;
  997. .center {
  998. display: flex;
  999. align-items: center;
  1000. justify-content: space-between;
  1001. .left_title {
  1002. font-weight: 600;
  1003. .title {
  1004. font-size: 28rpx;
  1005. color: #2D88F4;
  1006. }
  1007. span {
  1008. font-size: 24rpx;
  1009. color: #666666;
  1010. }
  1011. }
  1012. }
  1013. }
  1014. .order_data {
  1015. background-color: #FFFFFF;
  1016. padding: 16rpx 32rpx;
  1017. border-radius: 16rpx;
  1018. margin-top: 16rpx;
  1019. .order_item {
  1020. border-bottom: 1px solid #EEEEEE;
  1021. padding-bottom: 12rpx;
  1022. margin-bottom: 16rpx;
  1023. .item_title {
  1024. font-weight: 600;
  1025. font-size: 26rpx;
  1026. color: #333333;
  1027. }
  1028. .item_child {
  1029. margin-top: 12rpx;
  1030. margin-right: 16rpx;
  1031. display: flex;
  1032. align-items: center;
  1033. span {
  1034. width: 130rpx;
  1035. font-size: 26rpx;
  1036. color: #666666;
  1037. }
  1038. .center {
  1039. flex: 1;
  1040. }
  1041. }
  1042. }
  1043. }
  1044. }
  1045. .btn {
  1046. width: 100%;
  1047. height: 109rpx;
  1048. background: #FFFFFF;
  1049. display: flex;
  1050. align-items: center;
  1051. justify-content: end;
  1052. margin-top: 10rpx;
  1053. font-size: 28rpx;
  1054. padding-right: 24rpx;
  1055. .customer {
  1056. border-radius: 49rpx;
  1057. border: 1px solid #2D88F4;
  1058. padding: 14rpx 32rpx;
  1059. display: flex;
  1060. align-items: center;
  1061. justify-content: center;
  1062. color: #2D88F4;
  1063. }
  1064. .accept {
  1065. display: flex;
  1066. align-items: center;
  1067. justify-content: center;
  1068. padding: 14rpx 32rpx;
  1069. background: linear-gradient(90deg, #77B6FF 0%, #449AFF 100%);
  1070. border-radius: 49rpx;
  1071. margin: 0 24rpx;
  1072. color: #FFFFFF;
  1073. }
  1074. .func {
  1075. // flex: 1;
  1076. display: flex;
  1077. align-items: center;
  1078. justify-content: end;
  1079. .accept {
  1080. display: flex;
  1081. align-items: center;
  1082. justify-content: center;
  1083. padding: 14rpx 22rpx;
  1084. background: linear-gradient(90deg, #77B6FF 0%, #449AFF 100%);
  1085. border-radius: 49rpx;
  1086. // margin: 0 24rpx;
  1087. color: #FFFFFF;
  1088. }
  1089. }
  1090. }
  1091. ::v-deep .u-dot {
  1092. background-color: #2D88F4;
  1093. }
  1094. }
  1095. </style>