buyOrder.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937
  1. <template>
  2. <view class="content">
  3. <view class="list_box1">
  4. <view class="part2" v-if="orderDelites.indentType == 1 || orderDelites.indentType == 2">
  5. <view class="box_add">
  6. <!-- <view class="distance">
  7. <view v-if="orderDelites.distancess>1000">{{(Number(orderDelites.distancess) / 1000).toFixed(2)}}</view>
  8. <view v-else>{{Number(orderDelites.distancess?(orderDelites.distancess).toFixed(2):0)}}</view>
  9. <view class="a" v-if="orderDelites.distancess>1000">km</view>
  10. <view class="a" v-else>m</view>
  11. <view>{{orderDelites.distancess}}</view>
  12. </view> -->
  13. <view class="add_name" @click="goStart()">
  14. <view class="flex align-center">
  15. <view class="buy">
  16. <image src="../../../static/rider/icon-buy.png"></image>
  17. </view>
  18. <view class="sh_name">
  19. {{orderDelites.shopAddressDetail}}({{orderDelites.shopProvince?orderDelites.shopProvince:''}}{{orderDelites.shopCity?orderDelites.shopCity:''}}{{orderDelites.shopDistrict?orderDelites.shopDistrict:''}})
  20. <u-icon name="map"></u-icon>
  21. </view>
  22. </view>
  23. <!-- <view class="xs_add">
  24. {{orderDelites.shopProvince?orderDelites.shopProvince:''}}{{orderDelites.shopCity?orderDelites.shopCity:''}}
  25. {{orderDelites.shopDistrict?orderDelites.shopDistrict:''}}
  26. </view> -->
  27. </view>
  28. </view>
  29. <!-- <view class="jiantou">
  30. <image src="../../../static/rider/jiantou.png"></image>
  31. <view>{{orderDelites.distance}}</view>
  32. </view> -->
  33. <view class="box_add">
  34. <!-- <view class="distance">
  35. <view v-if="orderDelites.distance>1000">{{(Number(orderDelites.distance)/ 1000).toFixed(2)}}</view>
  36. <view v-else>{{Number(orderDelites.distance?(orderDelites.distance).toFixed(2):0)}}</view>
  37. <view class="a" v-if="orderDelites.distance>1000">km</view>
  38. <view class="a" v-else>m</view>
  39. <view>{{orderDelites.distancessd}}</view>
  40. </view> -->
  41. <view class="add_name" @click="goEnd()">
  42. <view class="flex align-center">
  43. <view class="send">
  44. <image src="../../../static/rider/icon-send.png"></image>
  45. </view>
  46. <view class="sh_name">
  47. {{orderDelites.userAddressDetail}}({{orderDelites.userProvince?orderDelites.userProvince:''}}{{orderDelites.userCity?orderDelites.userCity:''}}{{orderDelites.userDistrict?orderDelites.userDistrict:''}})
  48. <u-icon name="map"></u-icon>
  49. </view>
  50. </view>
  51. </view>
  52. </view>
  53. </view>
  54. <view class="part2" v-if="orderDelites.indentType == 3 && orderDelites.buyType==0">
  55. <view class="box_add">
  56. <!-- <view class="distance">
  57. <view v-if="orderDelites.distance>1000">{{(Number(orderDelites.distance)/ 1000).toFixed(2)}}</view>
  58. <view v-else>{{Number(orderDelites.distance?(orderDelites.distance).toFixed(2):0)}}</view>
  59. <view class="a" v-if="orderDelites.distance>1000">km</view>
  60. <view class="a" v-else>m</view>
  61. <view>{{orderDelites.distancessd}}</view>
  62. </view> -->
  63. <view class="add_name flex align-center" @click="goEnd()">
  64. <view class="send">
  65. <image src="../../../static/rider/icon-send.png"></image>
  66. </view>
  67. <view class="sh_name">
  68. {{orderDelites.userAddressDetail}}({{orderDelites.userProvince?orderDelites.userProvince:''}}{{orderDelites.userCity?orderDelites.userCity:''}}{{orderDelites.userDistrict?orderDelites.userDistrict:''}})
  69. <u-icon name="map"></u-icon>
  70. </view>
  71. </view>
  72. </view>
  73. </view>
  74. <view class="part2" v-if="orderDelites.indentType == 3 && orderDelites.buyType==1">
  75. <view class="box_add">
  76. <!-- <view class="distance">
  77. <view v-if="orderDelites.distancess>1000">{{(Number(orderDelites.distancess) / 1000).toFixed(2)}}</view>
  78. <view v-else>{{Number(orderDelites.distancess?(orderDelites.distancess).toFixed(2):0)}}</view>
  79. <view class="a" v-if="orderDelites.distancess>1000">km</view>
  80. <view class="a" v-else>m</view>
  81. <view>{{orderDelites.distancess}}</view>
  82. </view> -->
  83. <view class="add_name flex" @click="goStart()">
  84. <view class="buy">
  85. <image src="../../../static/rider/icon-buy.png"></image>
  86. </view>
  87. <view class="sh_name">
  88. {{orderDelites.shopAddressDetail}}({{orderDelites.shopProvince?orderDelites.shopProvince:''}}{{orderDelites.shopCity?orderDelites.shopCity:''}}{{orderDelites.shopDistrict?orderDelites.shopDistrict:''}})
  89. <u-icon name="map"></u-icon>
  90. </view>
  91. <!-- <view class="xs_add">
  92. {{orderDelites.shopProvince?orderDelites.shopProvince:''}}{{orderDelites.shopCity?orderDelites.shopCity:''}}
  93. {{orderDelites.shopDistrict?orderDelites.shopDistrict:''}}
  94. </view> -->
  95. </view>
  96. </view>
  97. <!-- <view class="jiantou">
  98. <image src="../../../static/rider/jiantou.png"></image>
  99. <view>{{orderDelites.distance}}</view>
  100. </view> -->
  101. <view class="box_add">
  102. <!-- <view class="distance">
  103. <view v-if="orderDelites.distance>1000">{{(Number(orderDelites.distance)/ 1000).toFixed(2)}}</view>
  104. <view v-else>{{Number(item.distance?(item.distance).toFixed(2):0)}}</view>
  105. <view class="a" v-if="orderDelites.distance>1000">km</view>
  106. <view class="a" v-else>m</view>
  107. <view>{{orderDelites.distancessd}}</view>
  108. </view> -->
  109. <view class="add_name" @click="goEnd()">
  110. <view class="flex align-center">
  111. <view class="send">
  112. <image src="../../../static/rider/icon-send.png"></image>
  113. </view>
  114. <view class="sh_name">
  115. {{orderDelites.userAddressDetail}}({{orderDelites.userProvince?orderDelites.userProvince:''}}{{orderDelites.userCity?orderDelites.userCity:''}}{{orderDelites.userDistrict?orderDelites.userDistrict:''}})
  116. <u-icon name="map"></u-icon>
  117. </view>
  118. </view>
  119. </view>
  120. </view>
  121. </view>
  122. <view class="part2" v-if="orderDelites.indentType == 4">
  123. <view class="box_add">
  124. <view class="distance">
  125. <!-- <view v-if="orderDelites.distancessd>1000">{{(Number(orderDelites.distancessd)/ 1000).toFixed(2)}}</view>
  126. <view v-else>{{Number(orderDelites.distancessd?(orderDelites.distancessd).toFixed(2):0)}}</view>
  127. <view class="a" v-if="orderDelites.distancessd>1000">km</view>
  128. <view class="a" v-else>m</view> -->
  129. <!-- <view>{{orderDelites.distancessd}}</view> -->
  130. </view>
  131. <view class="add_name" @click="goEnd()">
  132. <view class="send">
  133. <image src="../../../static/rider/icon-send.png"></image>
  134. </view>
  135. <view class="sh_name">
  136. {{orderDelites.userAddressDetail}}({{orderDelites.userProvince?orderDelites.userProvince:''}}{{orderDelites.userCity?orderDelites.userCity:''}}{{orderDelites.userDistrict?orderDelites.userDistrict:''}})
  137. <u-icon name="map"></u-icon>
  138. </view>
  139. </view>
  140. </view>
  141. </view>
  142. <view class="part2" v-if="orderDelites.indentType == 5">
  143. <view class="box_add">
  144. <view class="distance">
  145. <!-- <view v-if="orderDelites.distancess>1000">{{(Number(orderDelites.distancess) / 1000).toFixed(2)}}</view>
  146. <view v-else>{{Number(orderDelites.distancess?(orderDelites.distancess).toFixed(2):0)}}</view>
  147. <view class="a" v-if="orderDelites.distancess>1000">km</view>
  148. <view class="a" v-else>m</view> -->
  149. <view>{{orderDelites.distancess}}</view>
  150. </view>
  151. <view class="add_name" @click="goStart()">
  152. <view class="flex align-center">
  153. <view class="buy">
  154. <image src="../../../static/rider/icon-buy.png"></image>
  155. </view>
  156. <view class="sh_name">
  157. {{orderDelites.shopAddressDetail}}
  158. <u-icon name="map"></u-icon>
  159. </view>
  160. </view>
  161. <view class="xs_add">
  162. {{orderDelites.shopProvince?orderDelites.shopProvince:''}}{{orderDelites.shopCity?orderDelites.shopCity:''}}
  163. {{orderDelites.shopDistrict?orderDelites.shopDistrict:''}}
  164. </view>
  165. </view>
  166. </view>
  167. <view class="jiantou">
  168. <image src="../../../static/rider/jiantou.png"></image>
  169. <!-- <view>{{orderDelites.distance}}</view> -->
  170. </view>
  171. <view class="box_add">
  172. <view class="distance">
  173. <!-- <view v-if="orderDelites.distance>1000">{{(Number(orderDelites.distance)/ 1000).toFixed(2)}}</view>
  174. <view v-else>{{Number(item.distance?(item.distance).toFixed(2):0)}}</view>
  175. <view class="a" v-if="orderDelites.distance>1000">km</view>
  176. <view class="a" v-else>m</view> -->
  177. <view>{{orderDelites.distancessd}}</view>
  178. </view>
  179. <view class="add_name" @click="goEnd()">
  180. <view class="flex align-center">
  181. <view class="send">
  182. <image src="../../../static/rider/icon-send.png"></image>
  183. </view>
  184. <view class="sh_name">
  185. {{orderDelites.userAddressDetail}}({{orderDelites.userProvince?orderDelites.userProvince:''}}{{orderDelites.userCity?orderDelites.userCity:''}}{{orderDelites.userDistrict?orderDelites.userDistrict:''}})
  186. <u-icon name="map"></u-icon>
  187. </view>
  188. </view>
  189. </view>
  190. </view>
  191. </view>
  192. </view>
  193. <!-- tip -->
  194. <view class="tip_box" v-if="orderDelites.indentType != 5">
  195. <view class="tip_part1">
  196. <view class="tip_title" v-if="orderDelites.indentType == 1">帮送清单</view>
  197. <view class="tip_title" v-if="orderDelites.indentType == 2">帮取清单</view>
  198. <view class="tip_title" v-if="orderDelites.indentType == 3">帮买清单</view>
  199. <view class="tip_title" v-if="orderDelites.indentType == 4">服务内容</view>
  200. <view class="tip_rider" v-if="orderDelites.prepayMoney">
  201. 用户预付:¥<text>{{orderDelites.prepayMoney}}</text>
  202. </view>
  203. <view class="box_two1" v-if="orderDelites.itemType">{{orderDelites.itemType}}</view>
  204. <view class="box_two1" v-if="orderDelites.itemValue">{{orderDelites.itemValue}}</view>
  205. <view class="box_two1" v-if="orderDelites.itemWeight">{{orderDelites.itemWeight}}</view>
  206. </view>
  207. <u-line color="#F2F2F2" />
  208. <view class="tip_content" v-if="orderDelites.indentType == 3">
  209. {{orderDelites.productDetails?orderDelites.productDetails:''}}
  210. </view>
  211. <view class="tip_content"
  212. v-if="orderDelites.indentType == 1 || orderDelites.indentType == 2&&orderDelites.remarks">
  213. 备注:{{orderDelites.remarks?orderDelites.remarks:''}}</view>
  214. <view class="tip_content" v-if="orderDelites.indentType == 4">
  215. {{orderDelites.serviceDetails?orderDelites.serviceDetails:''}}
  216. </view>
  217. </view>
  218. <!-- 订单信息 -->
  219. <view class="order_box">
  220. <view class="order_title">订单信息</view>
  221. <view class="order_list">
  222. <view class="order_name">订单号码</view>
  223. <view class="order_numbers" @click="copyOrder(orderDelites.indentNumber)">{{orderDelites.indentNumber}}
  224. <u-icon name="order"></u-icon>
  225. </view>
  226. </view>
  227. <view class="order_list">
  228. <view class="order_name">送达时间</view>
  229. <view class="order_numbers">
  230. {{orderDelites.sendOutTime?orderDelites.sendOutTime:'立即配送'}}
  231. </view>
  232. </view>
  233. <view class="order_list" v-if="orderDelites.remarks">
  234. <view class="order_name">订单备注</view>
  235. <view class="order_numbers">
  236. {{orderDelites.remarks}}
  237. </view>
  238. </view>
  239. <!-- <view class="order_list">
  240. <view class="order_name">发票抬头</view>
  241. <view class="order_numbers">无(不需要发票)</view>
  242. </view> -->
  243. </view>
  244. <!-- 费用明细 -->
  245. <view class="order_box">
  246. <view class="order_title">费用明细</view>
  247. <view class="order_list">
  248. <view class="income_name">跑腿费</view>
  249. <view class="income_numbers">¥<text>{{orderDelites.errandMoney}}</text></view>
  250. </view>
  251. <view class="order_list" v-if="orderDelites.tip">
  252. <view class="income_name">小费奖励</view>
  253. <view class="income_numbers">¥<text>{{orderDelites.tip?orderDelites.tip:0}}</text></view>
  254. </view>
  255. <view class="order_list" v-if="orderDelites.prepayMoney">
  256. <view class="income_name">商品费用</view>
  257. <view class="income_numbers1">¥<text>{{orderDelites.prepayMoney}}</text></view>
  258. </view>
  259. </view>
  260. <!-- 接单按钮 -->
  261. <view class="tabbar_btn">
  262. <view class="btn" @click="bindorder">
  263. 接单
  264. </view>
  265. </view>
  266. </view>
  267. </template>
  268. <script>
  269. export default {
  270. data() {
  271. return {
  272. orderDelites: {},
  273. longitude: '', //骑手起点经度
  274. latitude: '', //骑手起点纬度
  275. qiJuli: '', //骑手距离
  276. dianJuli: '', //店家之间距离
  277. checkCertification: '',
  278. userId: '',
  279. arr: [],
  280. showModal: false
  281. }
  282. },
  283. onLoad(options) {
  284. uni.showLoading({
  285. title: '加载中......',
  286. icon: 'none'
  287. })
  288. console.log(options)
  289. this.indentNumber = options.id
  290. var that = this
  291. uni.getLocation({
  292. type: 'wgs84',
  293. success: function(res) {
  294. console.log('当前位置的经度:' + res.longitude);
  295. console.log('当前位置的纬度:' + res.latitude);
  296. that.longitude = res.longitude
  297. that.latitude = res.latitude
  298. that.taskData()
  299. }
  300. });
  301. that.userId = that.$queue.getData("userId");
  302. },
  303. onShow() {
  304. this.checkCertification = this.$queue.getData("checkCertification");
  305. //用户端骑手转单订单通知 335
  306. this.$Request.getT('/app/common/type/335').then(res => {
  307. if (res.code === 0) {
  308. this.arr = [];
  309. this.arr.push(res.data.value)
  310. }
  311. });
  312. // #ifdef MP-WEIXIN
  313. //订阅
  314. if (this.userId) {
  315. if (this.showModal) {
  316. this.openMsg()
  317. }
  318. }
  319. // #endif
  320. },
  321. methods: {
  322. openMsg() {
  323. console.log('订阅消息')
  324. var that = this
  325. uni.getSetting({
  326. withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回
  327. success(ret) {
  328. console.log(ret.subscriptionsSetting, '------------------')
  329. // if (ret.subscriptionsSetting.itemSettings && Object.keys(ret.subscriptionsSetting.itemSettings).length == 2) {
  330. if (ret.subscriptionsSetting.itemSettings) {
  331. uni.setStorageSync('sendOrderMsg', true)
  332. uni.openSetting({ // 打开设置页
  333. success(rea) {
  334. console.log(rea.authSetting)
  335. }
  336. });
  337. } else { // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息
  338. uni.setStorageSync('sendOrderMsg', false)
  339. uni.showModal({
  340. title: '提示',
  341. content: '为了更好的体验,请绑定消息推送',
  342. confirmText: '确定',
  343. cancelText: '取消',
  344. success: function(res) {
  345. if (res.confirm) {
  346. wx.requestSubscribeMessage({
  347. tmplIds: that.arr,
  348. success(re) {
  349. var datas = JSON.stringify(re);
  350. if (datas.indexOf("accept") != -1) {
  351. console.log(re)
  352. // uni.setStorageSync('sendMsg', true)
  353. }
  354. },
  355. fail: (res) => {
  356. console.log(res)
  357. }
  358. })
  359. // uni.setStorageSync('sendMsg', true)
  360. that.showModal = false
  361. } else if (res.cancel) {
  362. console.log('取消')
  363. // uni.setStorageSync('sendMsg', false)
  364. // that.showModal = true
  365. }
  366. }
  367. })
  368. }
  369. }
  370. })
  371. },
  372. copyOrder(value) {
  373. // #ifdef MP-WEIXIN
  374. if (uni.getStorageSync('sendOrderMsg')) {
  375. uni.requestSubscribeMessage({
  376. tmplIds: this.arr,
  377. success(re) {
  378. // console.log(re,'**********')
  379. var datas = JSON.stringify(re);
  380. if (datas.indexOf("accept") != -1) {
  381. console.log(re)
  382. }
  383. },
  384. fail: (res) => {
  385. console.log(res)
  386. }
  387. })
  388. }
  389. // #endif
  390. uni.setClipboardData({
  391. data: value, //要被复制的内容
  392. success: () => { //复制成功的回调函数
  393. uni.showToast({ //提示
  394. title: '复制成功'
  395. })
  396. }
  397. });
  398. },
  399. // 获取任务数据
  400. taskData() {
  401. this.$Request.postT('/app/tbindent/indentMessage', {
  402. indentNumber: this.indentNumber,
  403. ol: this.longitude,
  404. od: this.latitude
  405. }).then(res => {
  406. if (res.code == 0) {
  407. uni.hideLoading()
  408. if (res.data.distancess > 1000) {
  409. res.data.distancess = Number((res.data.distancess / 1000)).toFixed(2) + "km"
  410. } else {
  411. if (res.data.distancess == 0) {
  412. res.data.distancess = "0m";
  413. } else {
  414. res.data.distancess = Number(res.data.distancess).toFixed(1) + "m";
  415. }
  416. }
  417. if (res.data.distance > 1000) {
  418. res.data.distance = Number((res.data.distance / 1000)).toFixed(2) + "km"
  419. } else {
  420. res.data
  421. if (res.data.distance == 0) {
  422. res.data.distance = "0m";
  423. } else {
  424. res.data.distance = Number(res.data.distance).toFixed(1) + "m";
  425. }
  426. }
  427. if (res.data.distancessd > 1000) {
  428. res.data.distancessd = Number((res.data.distancessd / 1000)).toFixed(2) + "km"
  429. } else {
  430. if (res.data.distancessd == 0) {
  431. res.data.distancessd = "0m";
  432. } else {
  433. res.data.distancessd = Number(res.data.distancessd).toFixed(1) + "m";
  434. }
  435. }
  436. this.orderDelites = res.data
  437. } else {
  438. console.log('失败:', res.data)
  439. }
  440. });
  441. },
  442. bindorder() {
  443. let that = this
  444. if (!that.userId) {
  445. uni.showModal({
  446. title: '提示',
  447. content: '请先登录后再接单',
  448. success: function(res) {
  449. if (res.confirm) {
  450. console.log('用户点击确定');
  451. uni.navigateTo({
  452. url: '/pages/login/login'
  453. })
  454. } else if (res.cancel) {
  455. console.log('用户点击取消');
  456. }
  457. }
  458. });
  459. return;
  460. }
  461. // #ifdef MP-WEIXIN
  462. if (uni.getStorageSync('sendOrderMsg')) {
  463. uni.requestSubscribeMessage({
  464. tmplIds: this.arr,
  465. success(re) {
  466. // console.log(re,'**********')
  467. var datas = JSON.stringify(re);
  468. if (datas.indexOf("accept") != -1) {
  469. console.log(re)
  470. }
  471. },
  472. fail: (res) => {
  473. console.log(res)
  474. }
  475. })
  476. }
  477. // #endif
  478. if (that.checkCertification == null) {
  479. uni.showModal({
  480. title: '提示',
  481. content: '请先实名认证后再接单',
  482. success: function(res) {
  483. if (res.confirm) {
  484. console.log('用户点击确定');
  485. uni.navigateTo({
  486. url: '/pages/riderMy/approve/approve'
  487. })
  488. } else if (res.cancel) {
  489. console.log('用户点击取消');
  490. }
  491. }
  492. });
  493. return;
  494. }
  495. if (that.checkCertification == 0) {
  496. uni.showToast({
  497. title: '实名认证审核中,无法接单',
  498. icon: 'none'
  499. });
  500. return;
  501. }
  502. if (that.checkCertification == 2) {
  503. uni.showToast({
  504. title: '实名认证未通过,无法接单',
  505. icon: 'none'
  506. });
  507. return;
  508. }
  509. uni.showModal({
  510. title: '提示',
  511. content: '确认接单吗',
  512. success: function(res) {
  513. if (res.confirm) {
  514. console.log('用户点击确定');
  515. that.$Request.postT('/app/tbindent/indentReceiving', {
  516. indentNumber: that.indentNumber
  517. }).then(res => {
  518. if (res.code == 0) {
  519. uni.navigateTo({
  520. url: '/pages/index/orderdetail/orderdetail?id=' + that
  521. .indentNumber
  522. })
  523. } else {
  524. console.log('失败:', res.data)
  525. uni.showToast({
  526. title: res.msg,
  527. icon: 'none',
  528. duration: 1500
  529. });
  530. setTimeout(()=>{
  531. uni.reLaunch({
  532. url:'/pages/index/index'
  533. })
  534. },1500)
  535. }
  536. });
  537. } else if (res.cancel) {
  538. console.log('用户点击取消');
  539. }
  540. }
  541. });
  542. },
  543. // 计算两点之间的距离
  544. jsjl(qj, qw, jj, jw) {
  545. this.$Request.postT('/app/indent/findNewIndent', {
  546. ol: qj,
  547. od: qw,
  548. dl: jj,
  549. dd: jw
  550. }).then(res => {
  551. // if(){
  552. // }
  553. });
  554. },
  555. goStart() {
  556. // let obj = {
  557. // name: this.orderDelites.shopAddressDetail,
  558. // lat: this.orderDelites.shopLat,
  559. // long: this.orderDelites.shopLng,
  560. // }
  561. // this.navgate(obj)
  562. // 一键导航
  563. let latitude = this.orderDelites.shopLat
  564. let longitude = this.orderDelites.shopLng
  565. let name = this.orderDelites.shopAddressDetail
  566. uni.openLocation({
  567. latitude: Number(latitude), //要去的纬度-地址
  568. longitude: Number(longitude), //要去的经度-地址
  569. name: name, //地址名称
  570. address: name, //详细地址名称
  571. success: function() {
  572. console.log('导航成功');
  573. },
  574. fail: function(error) {
  575. console.log(error)
  576. }
  577. })
  578. },
  579. goEnd() {
  580. // let obj = {
  581. // name: this.orderDelites.userAddressDetail,
  582. // lat: this.orderDelites.userLat,
  583. // long: this.orderDelites.userLng,
  584. // }
  585. // this.navgate(obj)
  586. let latitude = this.orderDelites.userLat
  587. let longitude = this.orderDelites.userLng
  588. let name = this.orderDelites.userAddressDetail
  589. uni.openLocation({
  590. latitude: Number(latitude), //要去的纬度-地址
  591. longitude: Number(longitude), //要去的经度-地址
  592. name: name, //地址名称
  593. address: name, //详细地址名称
  594. success: function() {
  595. console.log('导航成功');
  596. },
  597. fail: function(error) {
  598. console.log(error)
  599. }
  600. })
  601. },
  602. navgate(e) {
  603. let plugin = requirePlugin('routePlan');
  604. let key = this.$queue.getData('mapKey'); //使用在腾讯位置服务申请的key
  605. let referer = this.$queue.getData('mapName'); //调用插件的app的名称
  606. let endPoint = JSON.stringify({ //终点
  607. 'name': e.name,
  608. 'latitude': e.lat,
  609. 'longitude': e.long
  610. });
  611. wx.navigateTo({
  612. url: 'plugin://routePlan/index?key=' + key + '&referer=' + referer + '&endPoint=' + endPoint
  613. });
  614. }
  615. }
  616. }
  617. </script>
  618. <style>
  619. body {
  620. background: #F5F5F5;
  621. }
  622. .content {
  623. width: 100%;
  624. margin-bottom: 159rpx;
  625. }
  626. .list_box1 {
  627. width: 90%;
  628. margin: 0 auto;
  629. /* height: 320rpx; */
  630. background: #FFFFFF;
  631. border-radius: 23rpx;
  632. box-shadow: 0rpx 5rpx 5rpx 0rpx rgba(198, 186, 181, 0.20);
  633. margin-top: 20rpx;
  634. }
  635. .part2 {
  636. width: 92%;
  637. margin: 0 auto;
  638. padding: 25rpx 0;
  639. }
  640. .box_add {
  641. display: flex;
  642. }
  643. .box_two1 {
  644. background: #c4e2ff;
  645. color: #359CFF;
  646. width: 72px;
  647. height: 45rpx;
  648. font-size: 22rpx;
  649. text-align: center;
  650. line-height: 45rpx;
  651. border-radius: 5rpx;
  652. margin-top: 20rpx;
  653. margin-left: 10rpx;
  654. }
  655. .distance {
  656. flex: 1;
  657. /* text-align: center; */
  658. font-size: 28rpx;
  659. display: flex;
  660. align-items: center;
  661. justify-content: left;
  662. }
  663. .a {
  664. font-size: 16rpx;
  665. }
  666. .add_name {
  667. flex: 8;
  668. position: relative;
  669. padding-bottom: 20px;
  670. }
  671. .buy {
  672. /* position: absolute;
  673. top: 0rpx; */
  674. }
  675. .buy image {
  676. width: 20px;
  677. height: 20px;
  678. }
  679. .send {
  680. /* position: absolute;
  681. top: 0rpx; */
  682. }
  683. .send image {
  684. width: 20px;
  685. height: 20px;
  686. }
  687. .sh_name {
  688. font-size: 30rpx;
  689. font-weight: bold;
  690. letter-spacing: 2rpx;
  691. /* text-indent: 15rpx; */
  692. margin-left: 8upx;
  693. }
  694. .xs_add {
  695. color: #999999;
  696. font-size: 24rpx;
  697. margin-top: 10rpx;
  698. margin-left: 30px;
  699. }
  700. .jiantou {
  701. margin-left: 23rpx;
  702. display: flex;
  703. /* justify-content: space-between; */
  704. align-items: center;
  705. }
  706. .jiantou image {
  707. width: 20rpx;
  708. height: 40rpx;
  709. }
  710. .jiantou>view {
  711. margin-left: 10rpx;
  712. }
  713. .part3 {
  714. width: 90%;
  715. margin: 0 auto;
  716. display: flex;
  717. }
  718. .three_left {
  719. flex: 1;
  720. height: 100rpx;
  721. display: flex;
  722. justify-content: left;
  723. align-items: center;
  724. }
  725. .three_left image {
  726. width: 36rpx;
  727. height: 37rpx;
  728. }
  729. .three_left text {
  730. color: #333333;
  731. font-size: 25rpx;
  732. margin-left: 10rpx;
  733. }
  734. .three_right {
  735. flex: 1;
  736. height: 100rpx;
  737. display: flex;
  738. justify-content: flex-end;
  739. align-items: center;
  740. color: #FF412D;
  741. font-size: 32rpx;
  742. font-weight: bold;
  743. }
  744. /* tip */
  745. .tip_box {
  746. width: 90%;
  747. margin: 0 auto;
  748. /* height: 180rpx; */
  749. background: #FFFFFF;
  750. margin-top: 20rpx;
  751. border-radius: 22rpx;
  752. }
  753. .tip_part1 {
  754. display: flex;
  755. }
  756. .tip_title {
  757. /* flex: 1; */
  758. height: 80rpx;
  759. display: flex;
  760. justify-content: left;
  761. align-items: center;
  762. font-size: 32rpx;
  763. font-weight: bold;
  764. margin-left: 30rpx;
  765. }
  766. .tip_rider {
  767. /* flex: 1; */
  768. font-size: 20rpx;
  769. display: flex;
  770. justify-content: flex-end;
  771. align-items: center;
  772. margin-left: 30rpx;
  773. }
  774. .tip_rider text {
  775. font-size: 30rpx;
  776. }
  777. .tip_content {
  778. width: 90%;
  779. margin: 0 auto;
  780. font-size: 27rpx;
  781. font-weight: bold;
  782. letter-spacing: 2rpx;
  783. margin-top: 15rpx;
  784. padding-bottom: 15rpx;
  785. }
  786. .u-line {
  787. border-bottom-width: 3px !important;
  788. }
  789. /* 订单信息 */
  790. .order_box {
  791. width: 90%;
  792. margin: 0 auto;
  793. /* height: 300rpx; */
  794. background: #ffffff;
  795. margin-top: 20rpx;
  796. border-radius: 22rpx;
  797. }
  798. .order_title {
  799. width: 90%;
  800. margin: 0 auto;
  801. font-size: 32rpx;
  802. font-weight: 600;
  803. line-height: 67rpx;
  804. letter-spacing: 3rpx;
  805. }
  806. .order_list {
  807. display: flex;
  808. }
  809. .order_name {
  810. flex: 1;
  811. margin-left: 35rpx;
  812. color: #999999;
  813. font-size: 25rpx;
  814. height: 75rpx;
  815. display: flex;
  816. justify-content: left;
  817. align-items: center;
  818. }
  819. .order_numbers {
  820. flex: 1;
  821. color: #333333;
  822. display: flex;
  823. justify-content: flex-end;
  824. align-items: center;
  825. font-size: 26rpx;
  826. margin-right: 35rpx;
  827. }
  828. /* 费用明细 */
  829. .income_name {
  830. flex: 1;
  831. margin-left: 35rpx;
  832. color: #999999;
  833. font-size: 26rpx;
  834. height: 75rpx;
  835. display: flex;
  836. justify-content: left;
  837. align-items: center;
  838. }
  839. .income_numbers {
  840. flex: 1;
  841. color: #333333;
  842. display: flex;
  843. justify-content: flex-end;
  844. align-items: center;
  845. font-size: 26rpx;
  846. margin-right: 35rpx;
  847. }
  848. .income_numbers1 {
  849. flex: 1;
  850. color: #FF2400;
  851. display: flex;
  852. justify-content: flex-end;
  853. align-items: center;
  854. font-size: 26rpx;
  855. margin-right: 35rpx;
  856. }
  857. /* 接单按钮 */
  858. .tabbar_btn {
  859. position: fixed;
  860. bottom: 0rpx;
  861. left: 0rpx;
  862. right: 0rpx;
  863. width: 100%;
  864. height: 120rpx;
  865. background: #FFFFFF;
  866. display: flex;
  867. justify-content: center;
  868. align-items: center;
  869. }
  870. .btn {
  871. width: 90%;
  872. height: 80rpx;
  873. background: #FF7F00;
  874. border-radius: 21rpx;
  875. color: white;
  876. text-align: center;
  877. line-height: 80rpx;
  878. font-size: 26rpx;
  879. }
  880. </style>