orderDetails.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960
  1. <!-- 订单详情-->
  2. <template>
  3. <view class="content">
  4. <view class="fixed1"></view>
  5. <view class="fixed">
  6. <view class='title flex flex-center'>
  7. <u-icon class="back" name="arrow-left" color="" size="20" @click="back"></u-icon>
  8. <view class="nav-title">订单详情</view>
  9. <u-icon class="search" name="server-fill" color="" size="28" @click="$helper.contactCustomerService">
  10. </u-icon>
  11. </view>
  12. </view>
  13. <view class="content1">
  14. <view class="item1">
  15. <view class="status">{{dataObj.cargoOwnerStatus}}</view>
  16. </view>
  17. <!-- flex flex-space-between -->
  18. <view class="item2">
  19. <u-button class="btn" text="驳回" @click="accept(2)" v-if="dataObj.cargoOwnerStatus=='待接单'">
  20. </u-button>
  21. <u-button class="btn" text="接受" @click="accept(1)" v-if="dataObj.cargoOwnerStatus=='待接单'">
  22. </u-button>
  23. <u-button class="btn" text="终止" @click="stop()" v-if="dataObj.cargoOwnerStatus=='未装车'">
  24. </u-button>
  25. <u-button class="btn" text="查看合同" @click="lookContract" v-if="dataObj.cargoOwnerContract=='1'"></u-button>
  26. <u-button class="btn" text="签订合同" @click="signContract"
  27. v-if="dataObj.cargoOwnerStatus=='待确认装车'&&dataObj.cargoOwnerContract!='1'">
  28. </u-button>
  29. <u-button class="btn" text="驳回装车信息" @click="confirmLoading()" v-if="dataObj.cargoOwnerStatus=='待确认装车'">
  30. </u-button>
  31. <!-- <u-button class="btn" text="确认装车" @click="confirmLoading(3)"
  32. v-if="dataObj.cargoOwnerStatus=='待确认装车'&&dataObj.cargoOwnerContract=='1'">
  33. </u-button> -->
  34. <u-button class="btn" text="确认装车" @click="confirmLoading(3)" v-if="dataObj.cargoOwnerStatus=='待确认装车'">
  35. </u-button>
  36. <u-button class="btn" text="驳回卸车信息" @click="confirmUnLoading" v-if="dataObj.cargoOwnerStatus=='待收货'">
  37. </u-button>
  38. <u-button class="btn" text="确认卸车" @click="confirmUnLoading" v-if="dataObj.cargoOwnerStatus=='待收货'">
  39. </u-button>
  40. <u-button class="btn" text="付款" @click="closed"
  41. v-if="dataObj.cargoOwnerStatus=='待结算'||dataObj.cargoOwnerStatus=='已结算'"></u-button>
  42. <u-button class="btn" text="还款" @click="stop" v-if="dataObj.cargoOwnerStatus=='待还款'"></u-button>
  43. <u-button class="btn" text="联系客服"
  44. v-if="dataObj.cargoOwnerStatus!='待接单'&&dataObj.cargoOwnerStatus!='未装车'">
  45. </u-button>
  46. </view>
  47. <view class="item3 flex flex-space-between align-center">
  48. <view class="left flex align-center" @click="goTodriverDetail">
  49. <u--image :showLoading="true" :src="src" width="44px" height="44px" @click="" shape='circle'>
  50. </u--image>
  51. <view class="name">{{dataObj.driverName}}</view>
  52. <view class="flex align-center">
  53. <!-- <view class="number">4.98</view> -->
  54. <!-- <u-icon class="star" name="star-fill" color="#FEC823" size="20" @click="back"></u-icon> -->
  55. </view>
  56. </view>
  57. <view class="right flex s-row align-center phone">
  58. <view class="bgc">
  59. <u-icon class="phone" name="phone-fill" color="#2772FB" size="20" @click="toPhone"></u-icon>
  60. </view>
  61. <view class="hz-name">联系司机</view>
  62. </view>
  63. </view>
  64. <!-- <view class='row-between'>
  65. <view class="">货主</view>
  66. <view>张三</view>
  67. </view>
  68. <view class='row-between'>
  69. <view class="">货主单位</view>
  70. <view>黑龙江中天昊元贸易有限公司</view>
  71. </view>
  72. <view class='row-between'>
  73. <view class="">卸货地</view>
  74. <view>黑龙江省齐齐哈尔市梅里斯达斡尔族区杜尔门沁达斡尔乡53农场</view>
  75. </view>
  76. <view class='row-between'>
  77. <view class="">货名</view>
  78. <view>玉米</view>
  79. </view>
  80. <view class='row-between'>
  81. <view class="">距离</view>
  82. <view>约15公里</view>
  83. </view>
  84. <view class='row-between'>
  85. <view class="">货运费</view>
  86. <view>100元/吨</view>
  87. </view> -->
  88. </view>
  89. <view class="content2">
  90. <view class="flex flex-space-between border">
  91. <view class="flex s-row item1">
  92. <view class="fontsize-46 fontweight-500 text">{{dataObj.sendCity}}</view>
  93. <view class="fontsize-28 gray">发货地</view>
  94. </view>
  95. <image class="change-btn" src="@/static/images/common/jt.png" mode='widthFix'></image>
  96. <view class="flex s-row item2">
  97. <view class="fontsize-46 fontweight-500 text" @click="">{{dataObj.unloadCity}}</view>
  98. <view class="fontsize-28 gray text-align-right">卸货地</view>
  99. </view>
  100. </view>
  101. <view class="level2-title">基本信息</view>
  102. <view class='row-between'>
  103. <view class="row-left-text gray">订单编号</view>
  104. <view class="row-right-text">{{dataObj.orderNo}}</view>
  105. </view>
  106. <!-- <view class='row-between'>
  107. <view class="row-left-text gray">货主</view>
  108. <view class="row-right-text">{{dataObj.cargoOwner}}</view>
  109. </view> -->
  110. <view class='row-between'>
  111. <view class="row-left-text gray">发货单位</view>
  112. <view class="row-right-text">{{dataObj.compName?dataObj.compName:'个人货主'}}</view>
  113. </view>
  114. <view class='row-between'>
  115. <view class="row-left-text gray">发货地</view>
  116. <view class="row-right-text place">
  117. {{dataObj.sendPrivate}}{{dataObj.sendCity}}{{dataObj.sendArea}}{{dataObj.sendDetailedAddress}}
  118. </view>
  119. </view>
  120. <view class='row-between'>
  121. <view class="row-left-text gray">卸货地</view>
  122. <view class="row-right-text place">
  123. {{dataObj.unloadPrivate}}{{dataObj.unloadCity}}{{dataObj.unloadArea}}{{dataObj.unloadDetailedAddress}}
  124. </view>
  125. </view>
  126. <view class='row-between'>
  127. <view class="row-left-text gray">货名</view>
  128. <view class="row-right-text">{{dataObj.goodsName}}</view>
  129. </view>
  130. <view class='row-between'>
  131. <view class="row-left-text gray">距离</view>
  132. <view class="row-right-text">约{{dataObj.distance}}公里</view>
  133. </view>
  134. <view class='row-between'>
  135. <view class="row-left-text gray">运费</view>
  136. <view class="row-right-text">{{dataObj.freight}}{{dataObj.illingMethod==0?'元/吨':'元/车'}}</view>
  137. </view>
  138. </view>
  139. <view class="content3" v-if="status1">
  140. <view class="level2-title">承运信息</view>
  141. <view class='row-between'>
  142. <view class="row-left-text gray">合同编号</view>
  143. <view class="row-right-text">{{dataObj.contractNo}}</view>
  144. </view>
  145. <view class='row-between'>
  146. <view class="row-left-text gray">车牌号</view>
  147. <view class="row-right-text">{{dataObj.hyCarrierInfo.carNo}}</view>
  148. </view>
  149. <view class='row-between'>
  150. <view class="row-left-text gray">预计运费</view>
  151. <view class="row-right-text">{{dataObj.hyCarrierInfo.estimatedFreight}}元</view>
  152. </view>
  153. <view class='row-between'>
  154. <view class="row-left-text gray">装车时间</view>
  155. <view class="row-right-text gray">{{dataObj.hyCarrierInfo.loadingDate}}</view>
  156. </view>
  157. <view class='row-between'>
  158. <view class="row-left-text gray">装车照片</view>
  159. <view class="flex">
  160. <u--image :showLoading="true" :src="item" width="40px" height="40px"
  161. v-for="(item,index) in zcImgList" :key='index'></u--image>
  162. </view>
  163. </view>
  164. <view class='row-between'>
  165. <view class="row-left-text gray">合计应付运费</view>
  166. <view class="row-right-text">{{dataObj.hyCarrierInfo.totalFreight}}元</view>
  167. </view>
  168. <view class='row-between'>
  169. <view class="row-left-text gray">卸车时间</view>
  170. <view class="row-right-text gray">{{dataObj.hyCarrierInfo.loadingDate}}</view>
  171. </view>
  172. <view class='row-between'>
  173. <view class="row-left-text gray">卸车照片</view>
  174. <view class="flex">
  175. <u--image :showLoading="true" :src="item" width="40px" height="40px"
  176. v-for="(item,index) in xcImgList" :key='index'></u--image>
  177. </view>
  178. </view>
  179. </view>
  180. <!-- v-if="status2 -->
  181. <view class="content4" v-if="status2">
  182. <view class="level2-title gray">运费信息(单位:元)</view>
  183. <view class='row-between'>
  184. <view class="row-left-text gray">预付运费</view>
  185. <view class="row-right-text">{{dataObj.freightInfo.prepaidFreight}}</view>
  186. </view>
  187. <view class='flex flex-end'>
  188. <view class="gray row-right-text">{{dataObj.freightInfo.prepaidFreightDate}}</view>
  189. </view>
  190. <view class='row-between'>
  191. <view class="row-left-text gray">运费尾款</view>
  192. <view class="row-right-text">{{dataObj.freightInfo.freightBalance}}</view>
  193. </view>
  194. <view class='row-between mx row-left-text gray'>
  195. 明细:预付{{dataObj.freightInfo.freightBalance}}元,扣款{{dataObj.freightInfo.deduction}}元,服务费{{dataObj.freightInfo.serviceCharge}}元,尾款{{dataObj.freightInfo.freightBalance}}元,合计收款{{dataObj.freightInfo.totalCollection}}元。
  196. </view>
  197. </view>
  198. <!-- v-if="status3" -->
  199. <view class="content4" v-if="status3">
  200. <view class="level2-title gray">还款信息</view>
  201. <view class='row-between'>
  202. <view class="row-left-text gray">运费</view>
  203. <view class="row-right-text">{{dataObj.freightInfo.totalRepayable}}</view>
  204. </view>
  205. <view class='flex flex-end'>
  206. <view class="gray row-right-text">{{dataObj.freightInfo.prepaidFreightDate}}</view>
  207. </view>
  208. <view class='row-between'>
  209. <view class="row-left-text gray">超期费(每天3%)</view>
  210. <view class="row-right-text">{{dataObj.freightInfo.overdueFee}}</view>
  211. </view>
  212. <view class='row-between'>
  213. <view class="row-left-text gray">合计应还</view>
  214. <view class="row-right-text">{{dataObj.freightInfo.totalRepayable}}</view>
  215. </view>
  216. <view class='row-between'>
  217. <view class="row-left-text gray">还款(尾号{{dataObj.freightInfo.repaymentBank}})</view>
  218. <view class="row-right-text">{{dataObj.freightInfo.repaymentConfirm}}</view>
  219. </view>
  220. <view class='row-between'>
  221. <view class="row-left-text gray">{{dataObj.freightInfo.updateDate}}</view>
  222. <!-- <view class="row-right-text">{{dataObj.freightInfo.freightBalance}}</view> -->
  223. </view>
  224. </view>
  225. <u-modal :show="isShowAlert" :title="alertTitle" :content='alertContent' :confirmText='confirmText'
  226. :closeOnClickOverlay='true' :showCancelButton='true' @confirm="confirmClick" @close="cancelClick"
  227. @cancel="cancelClick" class="modal">
  228. <u-radio-group v-model="radiovalue1" placement="" v-if='isShowTerminationReason' class='row'>
  229. <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist1" :key="index"
  230. :label="item.name" :name="item.name" @change="radioChange">
  231. </u-radio>
  232. </u-radio-group>
  233. <u--textarea class="row" v-model="value2" placeholder="终止原因描述" count maxlength='50'
  234. v-if='isShowTerminationReason'>
  235. </u--textarea>
  236. </u-modal>
  237. <u-toast ref="uToast"></u-toast>
  238. <!-- <view v-if="lookAlert" class="look-contract" @click="lookAlert==false">
  239. <u-button class="btn" text="查看合同" @click="lookContract"></u-button>
  240. <u-button class="btn" text="签名"></u-button>
  241. <view class="wrapper">
  242. <view class="handBtn">
  243. <image @click="selectColorEvent('black','#1A1A1A')"
  244. :src="selectColor === 'black' ? '/static/other/color_black_selected.png' : '/static/other/color_black.png'"
  245. :class="[selectColor === 'black' ? 'color_select' : '', 'black-select']"></image>
  246. <image @click="selectColorEvent('red','#ca262a')"
  247. :src="selectColor === 'red' ? '/static/other/color_red_selected.png' : '/static/other/color_red.png'"
  248. :class="[selectColor === 'red' ? 'color_select' : '', 'black-select']"></image>
  249. <button @click="retDraw" class="delBtn">重写</button>
  250. <button @click="saveCanvasAsImg" class="saveBtn">保存</button>
  251. <button @click="previewCanvasImg" class="previewBtn">预览</button>
  252. <button @click="subCanvas" class="subBtn">完成</button>
  253. </view>
  254. <view class="handCenter">
  255. <canvas class="handWriting" :disable-scroll="true" @touchstart="uploadScaleStart"
  256. @touchmove="uploadScaleMove" canvas-id="handWriting"></canvas>
  257. </view>
  258. <view class="handRight">
  259. <view class="handTitle">请签名</view>
  260. </view>
  261. </view>
  262. </view> -->
  263. </view>
  264. </template>
  265. <script>
  266. var that;
  267. import uploadImage from '@/components/ossutil/uploadFile.js';
  268. export default {
  269. data() {
  270. return {
  271. cyinfoStatus: '未装车',
  272. src: 'https://cdn.uviewui.com/uview/album/1.jpg',
  273. isShowTerminationReason: false,
  274. id: "",
  275. dataObj: {
  276. contractNo: '123'
  277. },
  278. type: null,
  279. status1: false,
  280. status2: false,
  281. status3: false,
  282. id: '',
  283. value2: '',
  284. radiolist1: [{
  285. name: '已与货主协商',
  286. disabled: false
  287. },
  288. {
  289. name: '货主原因终止',
  290. disabled: false
  291. },
  292. {
  293. name: '司机个人原因终止',
  294. disabled: false
  295. }, {
  296. name: '其他',
  297. disabled: false
  298. }
  299. ],
  300. radiovalue1: '已与货主协商',
  301. confirmText: '终止',
  302. alertTitle: '确定终止订单?',
  303. alertContent: "",
  304. isShowAlert: false,
  305. zcImgList: [],
  306. xcImgList: [],
  307. contractSrc: '',
  308. canvasName: 'handWriting',
  309. ctx: '',
  310. startX: null,
  311. startY: null,
  312. canvasWidth: 0,
  313. canvasHeight: 0,
  314. selectColor: 'black',
  315. lineColor: '#1A1A1A', // 颜色
  316. lineSize: 5, // 笔记倍数
  317. }
  318. },
  319. onLoad(options) {
  320. that = this
  321. this.id = options.id
  322. // this.ctx = uni.createCanvasContext("handWriting");
  323. // this.$nextTick(() => {
  324. // uni.createSelectorQuery().select('.handCenter').boundingClientRect(rect => {
  325. // this.canvasWidth = rect.width;
  326. // this.canvasHeight = rect.height;
  327. // /* 将canvas背景设置为 白底,不设置 导出的canvas的背景为透明 */
  328. // this.setCanvasBg('#fff');
  329. // })
  330. // .exec();
  331. // });
  332. },
  333. onShow() {
  334. this.getList()
  335. },
  336. methods: {
  337. goTodriverDetail(){
  338. uni.$u.route('/pages/order/driverDetail',{
  339. driver:JSON.stringify(this.dataObj)
  340. });
  341. },
  342. lookContract() {
  343. uni.downloadFile({
  344. url: this.dataObj.ownerContractUrl,
  345. success: function(res) {
  346. var filePath = res.tempFilePath;
  347. uni.openDocument({
  348. filePath: filePath,
  349. showMenu: true,
  350. success: function(res) {
  351. console.log('打开文档成功');
  352. }
  353. });
  354. }
  355. });
  356. },
  357. signContract() {
  358. // this.lookAlert = true
  359. uni.$u.route('/pages/order/signContract',{obj:JSON.stringify(this.dataObj)});
  360. },
  361. // 完结
  362. closed() {
  363. let item = this.dataObj
  364. let that = this
  365. this.$request.baseRequest('post', '/orderInfo/api/editEnd', {
  366. id: item.id,
  367. }).then(res => {
  368. if (res.code == 200) {
  369. this.$refs.uToast.show({
  370. type: 'success',
  371. message: "提交成功",
  372. complete() {
  373. that.upCallback({
  374. size: 10,
  375. num: 1
  376. })
  377. }
  378. })
  379. }
  380. })
  381. .catch(res => {
  382. uni.$u.toast(res.message);
  383. });
  384. },
  385. accept(type) {
  386. this.type = type
  387. if (type == 1) {
  388. this.alertTitle = '确定接受订单?'
  389. this.confirmText = '确定'
  390. } else if (type == 2) {
  391. this.alertTitle = '确定拒绝订单?'
  392. this.confirmText = '确定'
  393. } else {
  394. this.alertTitle = '确定终止订单?'
  395. this.confirmText = '终止'
  396. }
  397. this.isShowAlert = true
  398. },
  399. confirmLoading(type) {
  400. if(this.dataObj.cargoOwnerContract!='1'){
  401. uni.showToast({
  402. title:'请先签订合同',
  403. icon:'none'
  404. })
  405. return
  406. }
  407. this.type = type
  408. if (type == 3) {
  409. uni.$u.route("/pages/order/confirmLoading", {
  410. obj: JSON.stringify({id:this.id}),
  411. })
  412. // this.alertTitle = '确认装车?'
  413. // this.confirmText = '确定'
  414. } else if (type == 4) {
  415. this.alertTitle = '确认卸车?'
  416. this.confirmText = '确定'
  417. }
  418. this.isShowAlert = true
  419. // uni.$u.route('/pages/order/confirmLoading', item);
  420. },
  421. confirmUnLoading() {
  422. let item = this.dataObj
  423. uni.$u.route('/pages/order/confirmUnloading', item);
  424. },
  425. confirmClick() {
  426. that.isShowAlert = false
  427. if (this.type == 1 || this.type == 2) {
  428. let _title = ''
  429. this.$request.baseRequest('post', '/orderInfo/api/orderReceiving', {
  430. id: this.dataObj.id,
  431. flag: this.type
  432. }).then(res => {
  433. if (res.code == 200) {
  434. if (this.type == 1) {
  435. _title = '接单成功'
  436. } else {
  437. _title = '拒绝接单成功'
  438. }
  439. this.$refs.uToast.show({
  440. type: 'success',
  441. message: _title,
  442. complete() {
  443. that.mescroll.resetUpScroll()
  444. }
  445. })
  446. } else {
  447. if (this.type == 1) {
  448. _title = '接单失败'
  449. } else {
  450. _title = '拒绝接单失败'
  451. }
  452. this.$refs.uToast.show({
  453. type: 'success',
  454. message: _title,
  455. complete() {
  456. that.mescroll.resetUpScroll()
  457. }
  458. })
  459. }
  460. })
  461. .catch(res => {
  462. uni.$u.toast(res.message);
  463. });
  464. } else if (this.type == 3 || this.type == 4) {
  465. let _flag = ''
  466. if (this.type == 3) _flag = 1
  467. if (this.type == 4) _flag = 2
  468. this.$request.baseRequest('post', '/carrierInfo/cargoOwnerLoadingAdd', {
  469. id: this.dataObj.id,
  470. loadingFlag: _flag,
  471. flag: 1
  472. }).then(res => {
  473. if (res.code == 200) {
  474. this.$refs.uToast.show({
  475. type: 'success',
  476. message: "提交成功",
  477. complete() {
  478. that.getList()
  479. // that.upCallback({
  480. // size: 10,
  481. // num: 1
  482. // })
  483. }
  484. })
  485. }
  486. })
  487. .catch(res => {
  488. uni.$u.toast(res.message);
  489. });
  490. } else {
  491. if (this.radiovalue1 == '其他' && !this.value2) {
  492. this.$refs.uToast.show({
  493. type: 'error',
  494. message: "请填写终止原因描述!",
  495. })
  496. return
  497. }
  498. let _terminationReason = ''
  499. if (this.radiovalue1 == '已与货主协商') {
  500. _terminationReason = 1
  501. } else if (this.radiovalue1 == '货主原因终止') {
  502. _terminationReason = 2
  503. } else if (this.radiovalue1 == '司机个人原因终止') {
  504. _terminationReason = 3
  505. } else if (this.radiovalue1 == '其他') {
  506. _terminationReason = 4
  507. }
  508. this.$request.baseRequest('post', '/orderInfo/api/end', {
  509. id: this.id,
  510. terminator: 2,
  511. }).then(res => {
  512. if (res.code == 200) {
  513. this.$refs.uToast.show({
  514. type: 'success',
  515. message: '终止订单成功',
  516. })
  517. } else {
  518. this.$refs.uToast.show({
  519. type: 'success',
  520. message: '终止订单失败',
  521. })
  522. }
  523. that.mescroll.resetUpScroll()
  524. })
  525. .catch(res => {
  526. uni.$u.toast(res.message);
  527. });
  528. }
  529. },
  530. cancelClick() {
  531. this.isShowAlert = false
  532. },
  533. stop() {
  534. let item = this.dataObj
  535. // 货主接单
  536. if (item.cargoOwnerStatusKey == 1) {
  537. this.isShowTerminationReason = false
  538. } else {
  539. this.isShowTerminationReason = true
  540. }
  541. this.id = item.id
  542. this.isShowAlert = true
  543. },
  544. toPhone() {
  545. uni.makePhoneCall({
  546. phoneNumber: this.dataObj.cargoOwnerPhone
  547. });
  548. },
  549. back() {
  550. uni.navigateBack()
  551. },
  552. getList() {
  553. this.$request.baseRequest('get', '/orderInfo/getOrderInfo', {
  554. id: this.id,
  555. }).then(res => {
  556. if (res.code == 200) {
  557. this.dataObj = res.data
  558. // 承运信息显示
  559. if (res.data.cargoOwnerStatus != "待接单" && res.data.cargoOwnerStatus != "未装车" && res.data
  560. .cargoOwnerStatus != "已终止") {
  561. this.status1 = true
  562. }
  563. // 运费信息
  564. if (res.data.cargoOwnerStatus != "待接单" && res.data.cargoOwnerStatus != "未装车" && res.data
  565. .cargoOwnerStatus != "待确认装车" && res.data.cargoOwnerStatus != "已驳回装车信息" && res.data
  566. .cargoOwnerStatus != "待平台确认装车" && res.data.cargoOwnerStatus != "平台驳回装车信息" && res.data
  567. .cargoOwnerStatus != "运输中" && res.data.cargoOwnerStatus != "待结算" && res.data
  568. .cargoOwnerStatus != "已终止") {
  569. this.status2 = true
  570. }
  571. //还款信息
  572. if (res.data.cargoOwnerStatus == "待还款" && res.data.cargoOwnerStatus == "已还款" && res.data
  573. .cargoOwnerStatus == "已完结") {
  574. this.status3 = true
  575. }
  576. if (res.data.hyCarrierInfo) {
  577. if (res.data.hyCarrierInfo.loadingImg) {
  578. let _zcList = res.data.hyCarrierInfo.loadingImg.split(',')
  579. for (let i = 0; i < _zcList.length; i++) {
  580. if (_zcList[i]) this.zcImgList.push(_zcList[i])
  581. }
  582. }
  583. if (res.data.hyCarrierInfo.unloadingImg) {
  584. let _xcList = res.data.hyCarrierInfo.unloadingImg.split(',')
  585. for (let i = 0; i < _xcList.length; i++) {
  586. if (_xcList[i]) this.xcImgList.push(_xcList[i])
  587. }
  588. }
  589. }
  590. }
  591. })
  592. },
  593. goConfirmLoading(id) {
  594. console.log('点击详情id:', id)
  595. uni.$u.route('/pages/order/confirmLoading', {
  596. id: this.id,
  597. });
  598. },
  599. }
  600. }
  601. </script>
  602. <style lang="scss">
  603. .fixed,
  604. .fixed1 {
  605. background: white;
  606. position: fixed;
  607. top: var(--status-bar-height);
  608. z-index: 999;
  609. width: 100%;
  610. }
  611. .fixed {
  612. padding-bottom: 10rpx;
  613. .title {
  614. background: white;
  615. position: relative;
  616. font-size: 36rpx;
  617. color: rgba(0, 0, 0, 0.85);
  618. .search {
  619. position: absolute;
  620. right: 20rpx;
  621. }
  622. .back {
  623. position: absolute;
  624. left: 20rpx;
  625. }
  626. }
  627. }
  628. .fixed1 {
  629. top: 0;
  630. height: var(--status-bar-height);
  631. background: white;
  632. }
  633. .row-between {
  634. margin-bottom: 10rpx;
  635. }
  636. .content1 {
  637. background: white;
  638. margin: calc(var(--status-bar-height) + 80rpx) 20rpx 0 20rpx;
  639. border-radius: 20rpx;
  640. padding: 40rpx 0rpx 0 0;
  641. box-sizing: border-box;
  642. .status {
  643. display: flex;
  644. justify-content: center;
  645. margin-bottom: 40rpx;
  646. font-size: 36rpx;
  647. color: #333333;
  648. font-weight: 700;
  649. }
  650. .btn {
  651. width: 40%;
  652. margin-top: 20rpx;
  653. }
  654. .item2 {
  655. padding-bottom: 40rpx;
  656. }
  657. .item3 {
  658. padding: 20rpx;
  659. background: linear-gradient(180deg, #F7F7F9 0%, #FFFFFF 100%);
  660. border-radius: 0 0 20rpx 20rpx;
  661. .name {
  662. margin-left: 10rpx;
  663. margin-right: 20rpx;
  664. font-size: 32rpx;
  665. font-weight: 500;
  666. color: #333333;
  667. }
  668. .number {
  669. font-size: 26rpx;
  670. color: #878787;
  671. }
  672. .star {
  673. margin-left: 10rpx;
  674. }
  675. .phone {
  676. .bgc {
  677. background: #E5F0FE;
  678. width: 58rpx;
  679. height: 58rpx;
  680. display: flex;
  681. align-items: center;
  682. justify-content: center;
  683. border-radius: 50%;
  684. }
  685. .hz-name {
  686. font-size: 26rpx;
  687. color: #2772FB;
  688. }
  689. }
  690. }
  691. }
  692. .level2-title {
  693. margin: 20rpx 0 20rpx 0;
  694. }
  695. .content2 {
  696. background: white;
  697. margin: 20rpx;
  698. border-radius: 20rpx;
  699. padding: 20rpx;
  700. .change-btn {
  701. width: 86rpx;
  702. height: 86rpx;
  703. position: relative;
  704. top: -20rpx;
  705. }
  706. .item1,
  707. .item2 {
  708. width: 40%;
  709. .text {
  710. text-overflow: ellipsis;
  711. overflow: hidden;
  712. white-space: nowrap;
  713. }
  714. .gray {
  715. text-align: center;
  716. }
  717. }
  718. .item1 .text {
  719. text-align: center;
  720. }
  721. .item2 .text {
  722. text-align: center;
  723. }
  724. .border {
  725. border-bottom: 1px solid #EEEEEE;
  726. padding-bottom: 33rpx;
  727. }
  728. .place {
  729. width: 80%;
  730. text-align: right;
  731. }
  732. }
  733. .content3,
  734. .content4 {
  735. background: white;
  736. margin: 20rpx;
  737. border-radius: 20rpx;
  738. padding: 20rpx;
  739. }
  740. .content4 {
  741. .time {
  742. text-align: right;
  743. }
  744. .mx {
  745. background: #F7F8FA;
  746. padding: 10rpx;
  747. margin: 10rpx 0;
  748. }
  749. }
  750. /deep/.u-modal__content {
  751. flex-direction: column;
  752. }
  753. .look-contract {
  754. padding-top: 1000rpx;
  755. position: fixed;
  756. top: 0;
  757. bottom: 0;
  758. left: 0;
  759. right: 0;
  760. margin: auto;
  761. background: #0000005e;
  762. width: 100%;
  763. height: 100vh;
  764. .btn {
  765. width: 70%;
  766. margin-bottom: 20rpx;
  767. }
  768. }
  769. .wrapper {
  770. width: 100%;
  771. height: 95vh;
  772. margin: 30rpx 0;
  773. overflow: hidden;
  774. display: flex;
  775. align-content: center;
  776. flex-direction: row;
  777. justify-content: center;
  778. font-size: 28rpx;
  779. position: relative;
  780. }
  781. .handWriting {
  782. background: #fff;
  783. width: 100%;
  784. height: 95vh;
  785. }
  786. .handRight {
  787. display: inline-flex;
  788. align-items: center;
  789. }
  790. .handCenter {
  791. border: 4rpx dashed #e9e9e9;
  792. flex: 5;
  793. overflow: hidden;
  794. box-sizing: border-box;
  795. }
  796. .handTitle {
  797. transform: rotate(90deg);
  798. flex: 1;
  799. color: #666;
  800. }
  801. .handBtn button {
  802. font-size: 28rpx;
  803. }
  804. .handBtn {
  805. height: 95vh;
  806. display: inline-flex;
  807. flex-direction: column;
  808. justify-content: space-between;
  809. align-content: space-between;
  810. flex: 1;
  811. }
  812. .delBtn {
  813. position: absolute;
  814. top: 250rpx;
  815. left: 0rpx;
  816. transform: rotate(90deg);
  817. color: #666;
  818. }
  819. .delBtn image {
  820. position: absolute;
  821. top: 13rpx;
  822. left: 25rpx;
  823. }
  824. .subBtn {
  825. position: absolute;
  826. bottom: 52rpx;
  827. left: -3rpx;
  828. display: inline-flex;
  829. transform: rotate(90deg);
  830. background: #008ef6;
  831. color: #fff;
  832. margin-bottom: 30rpx;
  833. text-align: center;
  834. justify-content: center;
  835. }
  836. /*Peach - 新增 - 保存*/
  837. .saveBtn {
  838. position: absolute;
  839. top: 375rpx;
  840. left: 0rpx;
  841. transform: rotate(90deg);
  842. color: #666;
  843. }
  844. .previewBtn {
  845. position: absolute;
  846. top: 500rpx;
  847. left: 0rpx;
  848. transform: rotate(90deg);
  849. color: #666;
  850. }
  851. .uploadBtn {
  852. position: absolute;
  853. top: 625rpx;
  854. left: 0rpx;
  855. transform: rotate(90deg);
  856. color: #666;
  857. }
  858. /*Peach - 新增 - 保存*/
  859. .black-select {
  860. width: 60rpx;
  861. height: 60rpx;
  862. position: absolute;
  863. top: 30rpx;
  864. left: 25rpx;
  865. }
  866. .black-select.color_select {
  867. width: 90rpx;
  868. height: 90rpx;
  869. top: 100rpx;
  870. left: 10rpx;
  871. }
  872. .red-select {
  873. width: 60rpx;
  874. height: 60rpx;
  875. position: absolute;
  876. top: 140rpx;
  877. left: 25rpx;
  878. }
  879. .red-select.color_select {
  880. width: 90rpx;
  881. height: 90rpx;
  882. top: 120rpx;
  883. left: 10rpx;
  884. }
  885. </style>