rescueOrderDetail.vue 29 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363
  1. <template>
  2. <view class="box">
  3. <!-- 自定义导航 -->
  4. <view class="zdyNavBox">
  5. <view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
  6. <view class="zdyNav">
  7. <view class="zdyNavLeft">
  8. <image src="../../static/img/nav_icon_back.png" mode="aspectFit" class="backImg" @click="goback"></image>
  9. </view>
  10. <view class="zdyNavTitle">订单详情</view>
  11. <view style="width: 50px;"></view>
  12. </view>
  13. </view>
  14. <view class="status_bar" :style="{height: iStatusBarHeight + 'px'}"></view>
  15. <view style="height: 44px;"></view>
  16. <view class="top">
  17. <view class="orderState">
  18. <image src="../../static/img/icon_order_def.png" mode="" style="width: 44rpx;height: 44rpx;"></image>
  19. <view class="SheetState" v-if="orderData.openShopHelpSheet.sheetState == 0">待确认</view>
  20. <view class="SheetState" v-if="orderData.openShopHelpSheet.sheetState == 1">已接单</view>
  21. <view class="SheetState" v-if="orderData.openShopHelpSheet.sheetState == 2">已出发</view>
  22. <view class="SheetState" v-if="orderData.openShopHelpSheet.sheetState == 3">已完成</view>
  23. <view class="SheetState" v-if="orderData.openShopHelpSheet.sheetState == 4">已取消</view>
  24. <view class="SheetState" v-if="orderData.openShopHelpSheet.sheetState == 5">已评价</view>
  25. </view>
  26. </view>
  27. <!-- 救援信息 -->
  28. <!-- 救援信息 -->
  29. <view class="information">
  30. <view class="detailedTitle">救援信息</view>
  31. <view class="informationLine">
  32. <view class="informationTxt">救援单号:</view>
  33. <view class="informationNum">{{orderData.openShopHelpSheet.code}}<span class="codeCopy"
  34. @click="copy(orderData.openShopHelpSheet.code)">复制</span></view>
  35. </view>
  36. <view class="informationLine">
  37. <view class="informationTxt">救援类型:</view>
  38. <view class="informationNum" v-if="orderData.openShopHelpSheet.helpType==1">搭电</view>
  39. <view class="informationNum" v-if="orderData.openShopHelpSheet.helpType==2">拖车</view>
  40. <view class="informationNum" v-if="orderData.openShopHelpSheet.helpType==3">换胎</view>
  41. <view class="informationNum" v-if="orderData.openShopHelpSheet.helpType==4">未知原因</view>
  42. </view>
  43. <view class="informationLine" v-if="orderData.openShopHelpSheet.plateNumber">
  44. <view class="informationTxt">车牌号:</view>
  45. <view class="informationNum">{{orderData.openShopHelpSheet.plateNumber}}</view>
  46. </view>
  47. <view class="informationLine">
  48. <view class="informationTxt">车型:</view>
  49. <view class="informationNum">{{orderData.openShopHelpSheet.carModel}}</view>
  50. </view>
  51. <view class="informationLine">
  52. <view class="informationTxt">救援联系人:</view>
  53. <view class="informationNum">{{orderData.openShopHelpSheet.customerName}}</view>
  54. </view>
  55. <view class="informationLine" v-if="orderData.openShopHelpSheet.mobilePhone">
  56. <view class="informationTxt">手机号:</view>
  57. <view class="informationNum">{{orderData.openShopHelpSheet.mobilePhone}}</view>
  58. </view>
  59. <view class="informationLine" >
  60. <view class="informationTxt">救援门店:</view>
  61. <view class="informationNum">{{orderData.shopInfo.shopName}}</view>
  62. </view>
  63. <view class="informationLine" >
  64. <view class="informationTxt">起点:</view>
  65. <view class="informationNum">{{orderData.openShopHelpSheet.hStartAddress}}</view>
  66. </view>
  67. <view class="informationLine">
  68. <view class="informationTxt">终点:</view>
  69. <view class="informationNum">{{orderData.openShopHelpSheet.hEndAddress}}</view>
  70. </view>
  71. </view>
  72. <view class="information">
  73. <view class="detailedTitle">订单信息</view>
  74. <view class="informationLine">
  75. <view class="informationTxt">下单时间:</view>
  76. <view class="informationNum" >{{orderData.openShopHelpSheet.createTime}}</view>
  77. </view>
  78. <view class="informationLine">
  79. <view class="informationTxt">下单人:</view>
  80. <view class="informationNum" >{{orderData.openUser.nickName|| '未知'}}</view>
  81. </view>
  82. <view class="informationLine" v-if="orderData.openShopHelpSheet.confirmTime">
  83. <view class="informationTxt">确认时间:</view>
  84. <view class="informationNum" >{{orderData.openShopHelpSheet.confirmTime}}</view>
  85. </view>
  86. <view class="informationLine" v-if="orderData.openShopHelpSheet.confirmOperator">
  87. <view class="informationTxt">确认人:</view>
  88. <view class="informationNum" >{{orderData.openShopHelpSheet.confirmOperator}}</view>
  89. </view>
  90. <view class="informationLine" v-if="orderData.openShopHelpSheet.goingTime">
  91. <view class="informationTxt">出发时间:</view>
  92. <view class="informationNum" >{{orderData.openShopHelpSheet.goingTime}}</view>
  93. </view>
  94. <view class="informationLine" v-if="orderData.openShopHelpSheet.goingOperator">
  95. <view class="informationTxt">出发人:</view>
  96. <view class="informationNum" >{{orderData.openShopHelpSheet.goingOperator}}</view>
  97. </view>
  98. <view class="informationLine" v-if="orderData.openShopHelpSheet.finishTime">
  99. <view class="informationTxt">完成时间:</view>
  100. <view class="informationNum" >{{orderData.openShopHelpSheet.finishTime}}</view>
  101. </view>
  102. <view class="informationLine" v-if="orderData.openShopHelpSheet.finishOperator">
  103. <view class="informationTxt">完成人:</view>
  104. <view class="informationNum" >{{orderData.openShopHelpSheet.finishOperator}}</view>
  105. </view>
  106. <view class="informationLine" v-if="orderData.openShopHelpSheet.finishComment">
  107. <view class="informationTxt">完成备注:</view>
  108. <view class="informationNum" >{{orderData.openShopHelpSheet.finishComment}}</view>
  109. </view>
  110. <view class="informationLine" v-if="orderData.openShopHelpSheet.cancelTime">
  111. <view class="informationTxt">取消时间:</view>
  112. <view class="informationNum">{{orderData.openShopHelpSheet.cancelTime}}</view>
  113. </view>
  114. <view class="informationLine" v-if="orderData.openShopHelpSheet.cancelOperator">
  115. <view class="informationTxt">取消人:</view>
  116. <view class="informationNum" >{{orderData.openShopHelpSheet.cancelOperator}}</view>
  117. </view>
  118. <view class="informationLine" v-if="orderData.openShopHelpSheet.cancelComment">
  119. <view class="informationTxt">取消备注:</view>
  120. <view class="informationNum" >{{orderData.openShopHelpSheet.cancelComment}}</view>
  121. </view>
  122. </view>
  123. <view style="height: 50rpx;background-color: #F4F5F7;"></view>
  124. <!-- 待付款 -->
  125. <!-- <view class="bottom" v-if="orderData.openShopHelpSheet.sheetState == 0">
  126. <view class="cancel" @click="cancelBespeak">取消订单</view>
  127. </view> -->
  128. <!-- 待服务 -->
  129. <view class="bottom">
  130. <view class="cancel" v-if="orderData.openShopHelpSheet.sheetState == 0||orderData.openShopHelpSheet.sheetState == 1||orderData.openShopHelpSheet.sheetState == 2" @click="cancelBespeak">取消订单</view>
  131. <view class="defer" v-if="orderData.openShopHelpSheet.sheetState == 0||orderData.openShopHelpSheet.sheetState == 1" @click="updateShop">更换门店</view>
  132. <view class="defer" v-if="orderData.openShopHelpSheet.sheetState == 0" @click="confirmOrder">确认</view>
  133. <view class="defer" v-if="orderData.openShopHelpSheet.sheetState == 1||orderData.openShopHelpSheet.sheetState == 2" @click="completeOrder">完成</view>
  134. <view class="defer" v-if="orderData.openShopHelpSheet.sheetState == 1" @click="goingOrder">出发</view>
  135. </view>
  136. <!-- 完成-->
  137. <view class="tuikuanBox" v-if="completeShow">
  138. <view class="tuikuan">
  139. <view class="tuiTop">
  140. <view class="tuiTitle">完成</view>
  141. <image @click="completeShow=false" src="../../static/img/icon_close.png" mode="" style="width: 26rpx; height: 26rpx;"></image>
  142. </view>
  143. <view class="contLine">
  144. <view class="contlineRight">
  145. <textarea placeholder-style="color:#999999" placeholder="备注" v-model="finishComment"
  146. class="contlineRightInput" maxlength="-1" auto-height="true" />
  147. </view>
  148. </view>
  149. <view class="tuiBtns">
  150. <view class="btn" @click="completeShow=false">取消</view>
  151. <view class="btn2" @click="complete">确认完成</view>
  152. </view>
  153. </view>
  154. </view>
  155. <!-- 更换门店 -->
  156. <view class="tuikuanBox" v-if="updateShopShow">
  157. <view class="shopGhBox">
  158. <view class="shopGhTitle">更换门店</view>
  159. <view class="">
  160. <picker @change="bindPickerChange" :value="pickerindex" :range-key="'shopName'" :range="pickerarray">
  161. <view class="uniPicker">
  162. <view class="uniPickerName">
  163. {{shopName}}
  164. </view>
  165. <image src="../../static/img/arrow_down.png" mode=" " class="jtShopImg"></image>
  166. </view>
  167. </picker>
  168. </view>
  169. <view class="tuiBtns">
  170. <view class="btn" @click="updateShopShow=false">取消</view>
  171. <view class="btn2" @click="completeupdateShop">更换门店</view>
  172. </view>
  173. </view>
  174. </view>
  175. </view>
  176. </template>
  177. <script>
  178. import tkiQrcode from "@/components/tki-qrcode/tki-qrcode.vue"
  179. export default {
  180. components: {
  181. tkiQrcode
  182. },
  183. data() {
  184. return {
  185. id: '',
  186. iStatusBarHeight:'',
  187. orderData: '',
  188. onval: true, // val值变化时自动重新生成二维码
  189. loadMake: true, // 组件加载完成后自动生成二维码
  190. size: 500,
  191. qrcodeShow: false,
  192. qrcodeTop: '-100vh',
  193. qrcodeTopVal: '',
  194. ifShow: false,
  195. val: '二维码', // 要生成的二维码值
  196. unit: 'upx', // 单位
  197. background: '#b4e9e2', // 背景色
  198. foreground: '#309286', // 前景色
  199. pdground: '#262637', // 角标色
  200. icon: '', // 二维码图标
  201. iconsize: 40, // 二维码图标大小
  202. lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
  203. src: '', // 二维码生成后的图片地址或base64
  204. isShowMa: false,
  205. quanMaList:[],
  206. completeShow: false,
  207. tuicauseList:[],
  208. tuikuanContent:'',
  209. index: 0,
  210. iOSInfo:'',
  211. swiperIndex:0,
  212. back:'',
  213. finishComment:'',
  214. shopName:'',
  215. shopId:'',
  216. pickerarray:'',
  217. pickerindex:'',
  218. changeOldShopID:'',
  219. updateShopShow:false,
  220. }
  221. },
  222. onLoad(opt) {
  223. this.iStatusBarHeight = uni.getSystemInfoSync().statusBarHeight;
  224. this.id = opt.id
  225. this.back=opt.back;
  226. if (this.id) {
  227. this.getData()
  228. }
  229. //this.getTuiKuanData()
  230. this.getShopinfo();
  231. var qxnum = uni.getStorageSync("quanxian");
  232. if (qxnum == 1) {
  233. this.iOSInfo = JSON.parse(JSON.stringify(window.iOSInfo));
  234. }else if(qxnum==2){
  235. window.getAndroid=this.getAndroid;
  236. }
  237. },
  238. methods: {
  239. goingOrder(){
  240. var that = this
  241. uni.showModal({
  242. title: '提示',
  243. content: '是否出发',
  244. cancelText:'否',
  245. confirmText:'是',
  246. success: function (res) {
  247. if (res.confirm) {
  248. uni.showLoading({
  249. title: '加载中'
  250. })
  251. that.$http('openH5ShopHelpSheetOrder/goingOrder', {
  252. id: that.id,
  253. }, 'POST').then(res => {
  254. uni.hideLoading();
  255. if(res.code==0){
  256. uni.showToast({
  257. title: '操作成功',
  258. icon: 'none',
  259. duration: 2000
  260. });
  261. }else{
  262. uni.showToast({
  263. title: res.msg,
  264. icon: 'none',
  265. duration: 2000
  266. });
  267. }
  268. setTimeout(function() {
  269. that.getData();
  270. }, 1000);
  271. })
  272. } else if (res.cancel) {
  273. }
  274. }
  275. });
  276. },
  277. completeOrder(){
  278. var that = this
  279. uni.showModal({
  280. title: '提示',
  281. content: '是否完成该订单',
  282. cancelText:'否',
  283. confirmText:'是',
  284. success: function (res) {
  285. if (res.confirm) {
  286. uni.showLoading({
  287. title: '加载中'
  288. })
  289. that.$http('openH5ShopHelpSheetOrder/completeOrder', {
  290. id: that.id,
  291. }, 'POST').then(res => {
  292. uni.hideLoading();
  293. if(res.code==0){
  294. uni.showToast({
  295. title: '完成成功',
  296. icon: 'none',
  297. duration: 2000
  298. });
  299. }else{
  300. uni.showToast({
  301. title: res.msg,
  302. icon: 'none',
  303. duration: 2000
  304. });
  305. }
  306. setTimeout(function() {
  307. that.getData();
  308. }, 1000);
  309. })
  310. } else if (res.cancel) {
  311. }
  312. }
  313. });
  314. },
  315. bindPickerChange(e){
  316. console.log(e)
  317. this.shopName=this.pickerarray[e.detail.value].shopName
  318. this.shopId=this.pickerarray[e.detail.value].id
  319. },
  320. completeupdateShop(){
  321. uni.showLoading({
  322. title: '加载中'
  323. })
  324. this.$http('openH5ShopHelpSheetOrder/updateShop', {
  325. id: this.id,shopID:this.shopId,changeOldShopID:this.changeOldShopID,
  326. }, 'POST').then(res => {
  327. uni.hideLoading();
  328. this.updateShopShow=false;
  329. if(res.code==0){
  330. uni.showToast({
  331. title: '更换成功',
  332. icon: 'none',
  333. duration: 2000
  334. });
  335. }else{
  336. uni.showToast({
  337. title: res.msg,
  338. icon: 'none',
  339. duration: 2000
  340. });
  341. }
  342. setTimeout(function() {
  343. this.getData();
  344. }, 1000);
  345. })
  346. },
  347. confirmOrder(){
  348. var that = this
  349. uni.showModal({
  350. title: '提示',
  351. content: '是否确定该订单',
  352. cancelText:'否',
  353. confirmText:'是',
  354. success: function (res) {
  355. if (res.confirm) {
  356. uni.showLoading({
  357. title: '加载中'
  358. })
  359. that.$http('openH5ShopHelpSheetOrder/confirmOrder', {
  360. id: that.id,
  361. }, 'POST').then(res => {
  362. uni.hideLoading();
  363. // var list = res.data.Items
  364. uni.showToast({
  365. title: '确定成功',
  366. icon: 'none',
  367. duration: 2000
  368. });
  369. setTimeout(function() {
  370. that.getData();
  371. }, 1000);
  372. })
  373. } else if (res.cancel) {
  374. this.updateShopShow=false;
  375. }
  376. }
  377. });
  378. },
  379. getShopinfo(){
  380. this.$http('openH5SetTheGuest/getShopInfo',{},'GET').then(res => {
  381. this.shopName=res.data.shopName;
  382. this.shopId=res.data.id
  383. this.getShopList();
  384. })
  385. },
  386. getShopList(){
  387. this.$http('openH5SetTheGuest/getShopList', {
  388. },'GET').then(res => {
  389. this.pickerarray=res.data;
  390. })
  391. },
  392. complete(){
  393. this.completeShow=false;
  394. },
  395. updateShop(){
  396. this.updateShopShow=true;
  397. },
  398. isShowMaSHow(index){
  399. this.swiperIndex=index
  400. this.isShowMa=true
  401. },
  402. getAndroid(e){
  403. this.iOSInfo=e
  404. },
  405. payDone(){
  406. var that = this
  407. uni.showModal({
  408. title: '提示',
  409. content: '确认已支付完成吗',
  410. success: function (res) {
  411. if (res.confirm) {
  412. uni.showLoading({
  413. title: '加载中'
  414. })
  415. that.$http('openH5Indent/complete', {
  416. id: that.id,
  417. }, 'POST').then(res => {
  418. uni.hideLoading();
  419. // var list = res.data.Items
  420. setTimeout(function() {
  421. that.getData();
  422. }, 1000);
  423. })
  424. } else if (res.cancel) {
  425. }
  426. }
  427. });
  428. },
  429. goTui(){
  430. let yuanyin = this.tuicauseList[this.index].contents
  431. if (!yuanyin) {
  432. uni.showToast({
  433. title: '请选择退款原因',
  434. icon: 'none',
  435. duration: 3000
  436. });
  437. return false;
  438. }
  439. uni.showLoading({
  440. title: '加载中'
  441. })
  442. var that = this
  443. this.$http('openH5Indent/reimburse', {
  444. id: this.id,
  445. refundReason: yuanyin,
  446. refundComment: this.tuikuanContent,
  447. realMoney:this.orderData.data.realMoney
  448. }, 'GET').then(res => {
  449. uni.hideLoading();
  450. // var list = res.data.Items
  451. // var list = res.data
  452. console.log("result+=", res);
  453. if (res.code == 1) {
  454. that.isShowTui = false
  455. uni.showToast({
  456. title: '退款成功',
  457. icon: 'none',
  458. duration: 2000
  459. });
  460. setTimeout(function() {
  461. that.getData();
  462. }, 1000);
  463. }
  464. })
  465. },
  466. bindChange(e) {
  467. console.log(e);
  468. this.index = e.detail.value
  469. },
  470. feedDone(e) {
  471. this.tuikuanContent = e.target.value
  472. },
  473. // 核销
  474. goHeXiao(){
  475. //app交互
  476. var standalone = window.navigator.standalone
  477. var userAgent = window.navigator.userAgent.toLowerCase()
  478. var safari = /safari/.test(userAgent)
  479. var ios = /iphone|ipod|ipad|mac/.test(userAgent)
  480. var android = /android/.test(userAgent)
  481. if (ios) {
  482. if ( true) {//!standalone&& !safari
  483. window.webkit.messageHandlers.goHeXiao.postMessage({"id":this.id?this.id:''})
  484. }
  485. } else if (android) {
  486. window.android.writeoff(this.id)
  487. }
  488. },
  489. getTuiKuanData() {
  490. uni.showLoading({
  491. title: '加载中'
  492. });
  493. this.$http('openH5Indent/getOpenReason', {
  494. // id: this.id,
  495. }, 'GET').then(res => {
  496. uni.hideLoading();
  497. this.tuicauseList = res.data;
  498. })
  499. },
  500. copy(txt) {
  501. uni.setClipboardData({
  502. data: txt,
  503. success: function() {
  504. uni.showToast({
  505. title: '复制成功',
  506. icon: 'none',
  507. duration: 2000
  508. });
  509. }
  510. });
  511. },
  512. upTime() {
  513. uni.showLoading({
  514. title: '加载中'
  515. })
  516. var that = this
  517. this.$http('openH5Indent/carOwner/updateTimeOfAppointment', {
  518. id: this.id,
  519. shopId: this.orderData.shopInfo.id,
  520. billDate: this.billDate
  521. }, 'POST').then(res => {
  522. uni.hideLoading();
  523. // var list = res.data.Items
  524. var list = res.data
  525. console.log("result+=", res.data);
  526. uni.showToast({
  527. title: '延期成功',
  528. icon: 'none',
  529. duration: 2000
  530. });
  531. setTimeout(function() {
  532. that.getData();
  533. }, 1000);
  534. })
  535. },
  536. cancelBespeak(){
  537. var that = this
  538. uni.showModal({
  539. title: '提示',
  540. content: '是否取消该订单',
  541. cancelText:'否',
  542. confirmText:'是',
  543. success: function (res) {
  544. if (res.confirm) {
  545. uni.showLoading({
  546. title: '加载中'
  547. })
  548. that.$http('openH5ShopHelpSheetOrder/cancelOrder', {
  549. id: that.id,
  550. }, 'POST').then(res => {
  551. uni.hideLoading();
  552. // var list = res.data.Items
  553. uni.showToast({
  554. title: '取消成功',
  555. icon: 'none',
  556. duration: 2000
  557. });
  558. setTimeout(function() {
  559. that.getData();
  560. }, 1000);
  561. })
  562. } else if (res.cancel) {
  563. }
  564. }
  565. });
  566. },
  567. map() {
  568. console.log("打开地图")
  569. var that = this;
  570. if (!that.orderData.shopInfo.lat || !that.orderData.shopInfo.lng) {
  571. uni.showToast({
  572. title: '该店铺未设置定位',
  573. icon: 'none',
  574. duration: 3000
  575. });
  576. } else {
  577. uni.openLocation({
  578. latitude: Number(that.orderData.shopInfo.lat),
  579. longitude: Number(that.orderData.shopInfo.lng),
  580. name: that.orderData.shopInfo.shopName,
  581. address: that.orderData.shopInfo.provinceName + that.orderData.shopInfo.cityName + that
  582. .orderData.shopInfo.areaName + that.orderData.shopInfo.address,
  583. success: function() {
  584. console.log('success');
  585. },
  586. fail(err) {
  587. console.log(err)
  588. }
  589. });
  590. }
  591. },
  592. call() {
  593. uni.makePhoneCall({
  594. phoneNumber: this.orderData.shopInfo.mobilePhone
  595. });
  596. },
  597. getData() {
  598. uni.showLoading({
  599. title: '加载中'
  600. });
  601. this.$http('openH5ShopHelpSheetOrder/getOpenShopHelpSheetOrderInfo', {
  602. id: this.id,
  603. }, 'GET').then(res => {
  604. uni.hideLoading();
  605. this.orderData = res.data;
  606. this.changeOldShopID=res.data.shopInfo.id;
  607. if (this.quanMaList) {
  608. this.quanMaList = [];
  609. }
  610. let maList = this.orderData.OpenSheetQRCode;
  611. if (maList) {
  612. maList.forEach(item =>{
  613. if (item.writeoffState==1) {
  614. this.quanMaList.push(item.qrCode);
  615. }
  616. })
  617. }
  618. console.log('可用券码--',this.quanMaList);
  619. })
  620. },
  621. goback() {
  622. if(this.back==1){
  623. uni.navigateBack({
  624. delta: 1
  625. })
  626. }else{
  627. var standalone = window.navigator.standalone
  628. var userAgent = window.navigator.userAgent.toLowerCase()
  629. var safari = /safari/.test(userAgent)
  630. var ios = /iphone|ipod|ipad|mac/.test(userAgent)
  631. var android = /android/.test(userAgent)
  632. if (ios) {
  633. if ( true) {//!standalone&& !safari
  634. window.webkit.messageHandlers.goMyNav.postMessage(null)
  635. }
  636. } else if (android) {
  637. window.android.postMessage()
  638. }
  639. }
  640. },
  641. gohome(){
  642. uni.switchTab({
  643. url:'../../index/index'
  644. })
  645. },
  646. },
  647. onPullDownRefresh() {
  648. this.getData()
  649. setTimeout(function() {
  650. uni.stopPullDownRefresh();
  651. }, 1000);
  652. },
  653. }
  654. </script>
  655. <style scoped>
  656. .shopGhTitle{
  657. font-size: 30rpx;color: #333333;padding: 24rpx;
  658. }
  659. .jtShopImg{
  660. width: 24rpx;height: 24rpx;margin-top: 26rpx;margin-right: 26rpx;
  661. }
  662. .uniPicker{
  663. display: flex;
  664. }
  665. .uniPickerName{
  666. padding: 16rpx;font-size: 28rpx;color: #666666;
  667. }
  668. .box {
  669. min-height: 100vh;
  670. background: #F4F5F7;
  671. padding-bottom: 135rpx;
  672. }
  673. .zdyNavBox{
  674. width: 100vw;
  675. background: #FFFFFF;
  676. position: fixed;
  677. top: 0;
  678. left: 0;
  679. z-index: 9999999;
  680. }
  681. .zdyNav{
  682. height: 44px;
  683. display: flex;
  684. justify-content: space-between;
  685. align-items: center;
  686. }
  687. .backImg{
  688. width: 44rpx;
  689. height: 44rpx;
  690. margin-left: 10rpx;
  691. margin-right: 20rpx;
  692. }
  693. .homeImg{
  694. width: 44rpx;
  695. height: 44rpx;
  696. }
  697. .zdyNavLeft{
  698. display: flex;
  699. align-items: center;
  700. }
  701. .zdyNavTitle{
  702. height: 44px;
  703. background: #FFFFFF;
  704. text-align: center;
  705. font-size: 34rpx;
  706. line-height: 44px;
  707. }
  708. .top {
  709. height: 190rpx;
  710. background-color: #FF0000;
  711. }
  712. .orderState {
  713. display: flex;
  714. justify-content: center;
  715. align-items: center;
  716. padding-top: 40rpx;
  717. }
  718. .SheetState {
  719. display: flex;
  720. justify-content: center;
  721. font-size: 36rpx;
  722. font-weight: 500;
  723. color: #FFFFFF;
  724. margin-left: 15rpx;
  725. }
  726. .timeEditImg {
  727. width: 25rpx;
  728. height: 25rpx;
  729. padding-left: 20rpx;
  730. }
  731. .shopBoximg {
  732. width: 40rpx;
  733. height: 40rpx;
  734. }
  735. .shopRightImg {
  736. width: 44rpx;
  737. height: 45rpx;
  738. }
  739. .shopsx {
  740. width: 1px;
  741. height: 50rpx;
  742. background: #EEEEEE;
  743. margin-top: 30rpx;
  744. margin-left: 28rpx;
  745. }
  746. .shopBox {
  747. display: flex;
  748. padding: 30rpx 20rpx;
  749. margin: 0rpx 24rpx;
  750. margin-top: -60rpx;
  751. background-color: #FFFFFF;
  752. border-radius: 10rpx;
  753. }
  754. .shopCont {
  755. width: 405rpx;
  756. padding-left: 20rpx;
  757. }
  758. .shopName {
  759. font-size: 30rpx;
  760. font-weight: bold;
  761. color: #3C3C3C;
  762. line-height: 42rpx;
  763. }
  764. .Address {
  765. color: #999999;
  766. font-size: 24rpx;
  767. margin-top: 10rpx;
  768. }
  769. .shopRihgtTxt {
  770. color: #999999;
  771. font-size: 24rpx;
  772. }
  773. .shopRightBox {
  774. padding-left: 28rpx;
  775. }
  776. .detailedTitle {
  777. padding: 23rpx 20rpx;
  778. display: flex;
  779. text-align: center;
  780. align-content: flex-start;
  781. border-bottom: 1rpx solid #EEEEEE;
  782. font-size: 30rpx;
  783. font-weight: bold;
  784. color: #3C3C3C;
  785. }
  786. .detailedLine {
  787. display: flex;
  788. padding: 16rpx 20rpx;
  789. justify-content: space-between;
  790. align-items: center;
  791. }
  792. .detailedImg {
  793. width: 120rpx;
  794. height: 120rpx;
  795. border-radius: 10rpx;
  796. }
  797. .detailedName {
  798. display: flex;
  799. align-items: center;
  800. }
  801. .code {
  802. font-size: 26rpx;
  803. color: #333333;
  804. font-weight: bold;
  805. width: 180rpx
  806. }
  807. .old {
  808. color: #999999;
  809. font-weight: 400;
  810. text-decoration: line-through;
  811. }
  812. .redPoint {
  813. width: 10rpx;
  814. height: 10rpx;
  815. background: #FF0000;
  816. border-radius: 10rpx;
  817. margin-right: 10rpx;
  818. }
  819. .quanState {
  820. font-size: 22rpx;
  821. color: #F19D01;
  822. padding: 0 10rpx;
  823. border: 1rpx solid #F19D01;
  824. border-radius: 4rpx;
  825. margin-left: 20rpx;
  826. }
  827. .quanState2{
  828. font-size: 22rpx;
  829. color: #999999;
  830. padding: 0 10rpx;
  831. border: 1rpx solid #DDDDDD;
  832. border-radius: 4rpx;
  833. margin-left: 20rpx;
  834. }
  835. .information {
  836. background: #FFFFFF;
  837. border-radius: 10rpx;
  838. margin: 20rpx 24rpx;
  839. padding-bottom: 15rpx;
  840. }
  841. .informationLine {
  842. display: flex;
  843. padding: 15rpx 20rpx;
  844. }
  845. .informationLine2 {
  846. display: flex;
  847. justify-content: space-between;
  848. font-size: 26rpx;
  849. padding: 20rpx;
  850. align-items: center;
  851. padding-bottom: 0;
  852. }
  853. .salePrice {
  854. font-size: 26rpx;
  855. font-weight: 500;
  856. color: #333333;
  857. line-height: 45rpx;
  858. }
  859. .money {
  860. background: #FFFFFF;
  861. border-radius: 10rpx;
  862. margin: 20rpx 24rpx;
  863. display: flex;
  864. justify-content: space-between;
  865. font-size: 26rpx;
  866. padding: 30rpx 20rpx;
  867. }
  868. .informationTxt {
  869. width: 190rpx;
  870. font-size: 26rpx;
  871. color: #999999;
  872. }
  873. .line {
  874. height: 20rpx;
  875. background-color: #FFFFFF;
  876. border-bottom: 1rpx solid #EEEEEE;
  877. }
  878. .goodsName {
  879. width: 80%;
  880. color: #333333;
  881. font-size: 26rpx;
  882. }
  883. .goodsName2{
  884. padding: 20rpx 20rpx 15rpx;
  885. color: #333333;
  886. font-size: 26rpx;
  887. }
  888. .informationNum {
  889. color: #333333;
  890. font-size: 26rpx;
  891. width: 500rpx;
  892. }
  893. .codeCopy {
  894. width: 77rpx;
  895. height: 36rpx;
  896. background: #F4F5F7;
  897. border-radius: 22rpx;
  898. font-size: 24rpx;
  899. color: #333333;
  900. text-align: center;
  901. line-height: 33rpx;
  902. padding: 0 15rpx;
  903. margin-left: 20rpx;
  904. }
  905. .bottom {
  906. display: flex;
  907. justify-content: flex-end;
  908. padding: 20rpx;
  909. background-color: #FFFFFF;
  910. align-items: center;
  911. height: 98rpx;
  912. width: 100vw;
  913. position: fixed;
  914. bottom: 0rpx;
  915. padding-bottom: constant(safe-area-inset-bottom);
  916. padding-bottom: env(safe-area-inset-bottom);
  917. }
  918. .cancel {
  919. color: #3C3C3C;
  920. font-size: 28rpx;
  921. width: 150rpx;
  922. height: 56rpx;
  923. border-radius: 36rpx;
  924. border: 1rpx solid #DDDDDD;
  925. text-align: center;
  926. line-height: 56rpx;
  927. margin-right: 40rpx;
  928. }
  929. .defer {
  930. color: #D53533;
  931. font-size: 28rpx;
  932. width: 150rpx;
  933. height: 56rpx;
  934. border-radius: 36rpx;
  935. border: 1rpx solid #D53533;
  936. text-align: center;
  937. line-height: 56rpx;
  938. margin-right: 40rpx;
  939. }
  940. .itemBox {
  941. margin: 20rpx;
  942. border-radius: 10rpx;
  943. border: 2rpx solid #EEEEEE;
  944. }
  945. .itemTop {
  946. padding: 18rpx 20rpx;
  947. padding-right: 0;
  948. background-color: #FFEFD5;
  949. display: flex;
  950. justify-content: space-between;
  951. align-content: center;
  952. }
  953. .topTitle {
  954. width: 104rpx;
  955. font-size: 26rpx;
  956. color: #333333;
  957. margin-right: 20rpx;
  958. text-align: right;
  959. }
  960. .leftItem {
  961. font-size: 26rpx;
  962. color: #333333;
  963. margin-right: 20rpx;
  964. flex-grow: 1;
  965. /* 隐藏文字显示 ...不换行 */
  966. overflow: hidden;
  967. text-overflow: ellipsis;
  968. white-space: nowrap;
  969. }
  970. .itemContent {
  971. padding: 20rpx;
  972. padding-right: 0;
  973. background-color: #FFFFFF;
  974. display: flex;
  975. justify-content: space-between;
  976. align-content: center;
  977. }
  978. .maBox {
  979. width: 100%;
  980. height: 100vh;
  981. background: rgba(0, 0, 0, 0.4);
  982. position: fixed;
  983. left: 0;
  984. top: 0;
  985. z-index: 9999;
  986. }
  987. .querenMa {
  988. width: 578;
  989. height: 640rpx;
  990. background: #ffffff;
  991. margin: 0 86rpx;
  992. margin-top: 50%;
  993. border-radius: 24rpx;
  994. }
  995. .maTop {
  996. display: flex;
  997. justify-content: space-between;
  998. align-items: center;
  999. padding: 30rpx 20rpx 15rpx;
  1000. }
  1001. .maTitle {
  1002. color: #666666;
  1003. font-size: 26rpx;
  1004. text-align: center;
  1005. padding-left: 100rpx;
  1006. }
  1007. .swiper{
  1008. width: 100%;
  1009. height: 85%;
  1010. background: #FFFFFF;
  1011. }
  1012. .swiper-item{
  1013. width: 100%;
  1014. height: 100%;
  1015. }
  1016. .maCode {
  1017. font-size: 30rpx;
  1018. font-weight: 500;
  1019. color: #333333;
  1020. line-height: 42rpx;
  1021. margin-bottom: 40rpx;
  1022. text-align: center;
  1023. }
  1024. .maBoximg {
  1025. width: 400rpx;
  1026. height: 400rpx;
  1027. margin-left: 86rpx;
  1028. }
  1029. .tuikuanBox {
  1030. width: 100%;
  1031. height: 100vh;
  1032. background: rgba(0, 0, 0, 0.4);
  1033. position: fixed;
  1034. left: 0;
  1035. top: 0;
  1036. z-index: 999;
  1037. }
  1038. .shopGhBox{
  1039. width: 638rpx;
  1040. height: 300rpx;
  1041. background: #ffffff;
  1042. margin: 0 36rpx;
  1043. margin-top: 50%;
  1044. border-radius: 24rpx;
  1045. padding: 30rpx 20rpx;
  1046. }
  1047. .tuikuan {
  1048. width: 638rpx;
  1049. height: 500rpx;
  1050. background: #ffffff;
  1051. margin: 0 36rpx;
  1052. margin-top: 50%;
  1053. border-radius: 24rpx;
  1054. padding: 30rpx 20rpx;
  1055. }
  1056. .tuiTop {
  1057. display: flex;
  1058. justify-content: space-between;
  1059. margin-bottom: 36rpx;
  1060. }
  1061. .tuiTitle {
  1062. width: 56rpx;
  1063. height: 40rpx;
  1064. font-size: 28rpx;
  1065. font-weight: 500;
  1066. color: #3C3C3C;
  1067. line-height: 40rpx;
  1068. }
  1069. .contLine {
  1070. display: flex;
  1071. justify-content: space-between;
  1072. font-size: 28rpx;
  1073. padding: 30rpx 0;
  1074. border-bottom: 1px solid #EEEEEE;
  1075. }
  1076. .contlineLeft {
  1077. color: #666666;
  1078. line-height: 40rpx;
  1079. align-items: center;
  1080. }
  1081. .star {
  1082. width: 14rpx;
  1083. height: 14rpx;
  1084. padding-bottom: 5rpx;
  1085. }
  1086. .carModel {
  1087. width: 350rpx;
  1088. text-align: left;
  1089. }
  1090. .noColor {
  1091. color: #CCCCCC;
  1092. }
  1093. .carModelRight {
  1094. display: flex;
  1095. justify-content: flex-start;
  1096. align-items: center;
  1097. }
  1098. .contlineRight {
  1099. color: #333333;
  1100. line-height: 40rpx;
  1101. width: 400rpx;
  1102. text-align: right;
  1103. }
  1104. .contlineRightInput {
  1105. color: #333333;
  1106. text-align: left;
  1107. font-size: 28rpx;
  1108. min-height: 182rpx;
  1109. width: 600rpx;
  1110. }
  1111. .contlineRightJt {
  1112. width: 30rpx;
  1113. height: 30rpx;
  1114. }
  1115. .tuiBtns {
  1116. display: flex;
  1117. padding: 40rpx 20rpx 10rpx;
  1118. }
  1119. .btn {
  1120. width: 288rpx;
  1121. height: 98rpx;
  1122. background: #F4F5F7;
  1123. border-radius: 10rpx;
  1124. margin-right: 22rpx;
  1125. font-size: 30rpx;
  1126. font-weight: 500;
  1127. color: #3C3C3C;
  1128. line-height: 98rpx;
  1129. text-align: center;
  1130. }
  1131. .btn2 {
  1132. width: 288rpx;
  1133. height: 98rpx;
  1134. background: #3F90F7;
  1135. border-radius: 10rpx;
  1136. font-size: 30rpx;
  1137. font-weight: 500;
  1138. color: #FFFFFF;
  1139. line-height: 98rpx;
  1140. text-align: center;
  1141. }
  1142. .writeoffLine{
  1143. display: flex;justify-content: space-between;
  1144. color: #999999;font-size: 24rpx;
  1145. line-height: 33rpx;padding-top: 8rpx;
  1146. }
  1147. .writeoffLineBox{
  1148. padding: 0 20rpx;
  1149. }
  1150. .detailedLineBox .detailedLine{
  1151. padding-bottom: 0rpx;
  1152. }
  1153. .writeoffXx .informationNum{
  1154. width: 500rpx;
  1155. }
  1156. .detailedLineBox{
  1157. padding-bottom: 10rpx;
  1158. }
  1159. </style>