index.vue 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691
  1. <template>
  2. <view class="pages" style="position: relative;">
  3. <!-- #ifndef H5 -->
  4. <view style="position: fixed;top: 0;left: 0;right: 0;z-index: 9999;" class="bg">
  5. <!-- #endif -->
  6. <!-- #ifdef H5 -->
  7. <view style="position: fixed;top:44px;left: 0;right: 0;z-index:9;" class="bg">
  8. <!-- #endif -->
  9. <view class="flex bg justify-between">
  10. <view class="flex justify-around" style="width: 50%;">
  11. <view @click="switchTab(2)" :class="orderType==2? 'select':''" class="tabBtn">
  12. 外卖配送
  13. <view :class="orderType==2? 'active':''"></view>
  14. </view>
  15. <view @click="switchTab(1)" :class="orderType==1? 'select':''" class="tabBtn">
  16. 到店取餐
  17. <view :class="orderType==1? 'active':''"></view>
  18. </view>
  19. </view>
  20. <view class="shaix" @click="bindopen()">
  21. 条件筛选
  22. <image src="../../static/images/order/down.png" style="width:15upx;height:9upx;"></image>
  23. </view>
  24. </view>
  25. <view class="padding-bottom-sm">
  26. <u-tabs v-if="orderType == 1" active-color="#FF8D1A" :list="qucanList" :is-scroll="false"
  27. :current="current" @change="change"></u-tabs>
  28. <u-tabs v-if="orderType == 2" active-color="#FF8D1A" :list="waimaiList" :is-scroll="false"
  29. :current="current1" @change="change1">
  30. </u-tabs>
  31. </view>
  32. </view>
  33. <!-- 全部订单 -->
  34. <view class="cont_one">
  35. <!-- #ifdef MP-WEIXIN -->
  36. <view style="margin-top: 90px">
  37. <!-- #endif -->
  38. <!-- #ifndef MP-WEIXIN -->
  39. <view style="margin-top: 90px">
  40. <!-- #endif -->
  41. <view v-for="(item,index) in orderList" :key='index'
  42. @click="goNav('/pages/order/orderDet?orderNumber='+item.orderNumber+'&orderId='+item.orderId)">
  43. <view class="cont">
  44. <view class="order_title" v-if="item.expectDeliveryTime">预约订单:{{item.expectDeliveryTime}}送达</view>
  45. <view class="flex justify-between padding align-center">
  46. <view class="text-red text-lg" v-if="item.status == 6">制作中</view>
  47. <view class="text-red text-lg" v-if="item.status == 7">待接单</view>
  48. <view class="text-green text-lg" v-if="item.status == 3&&item.orderType==1">待取餐
  49. </view>
  50. <view class="text-green text-lg"
  51. v-if="item.status == 3&&item.orderType==2&&item.riderUserId==null">待配送</view>
  52. <view class="text-green text-lg"
  53. v-if="item.status == 3&&item.orderType==2&&item.riderUserId">配送中</view>
  54. <view class="text-grey text-lg" v-if="item.status == 4">已完成</view>
  55. <view class="text-gray text-lg" v-if="item.status == 5">已取消</view>
  56. <view class="text-gray text-sm">{{item.payTime}}</view>
  57. </view>
  58. <u-line color="#f2f2f2" />
  59. <view style="padding:0 30rpx;font-size: 20px;" v-if="item.orderSequence">#{{item.orderSequence}}</view>
  60. <view class="text-red text-xl padding-lr padding-top" v-if="item.orderType==1"><text
  61. style="font-size: 30upx;">取餐号:</text>{{item.orderCode}}</view>
  62. <view class="padding-bottom padding-lr margin-top-sm flex"
  63. v-for="(ite,ind) in item.orderGoodsList" :key='ind'>
  64. <view class="tosend_header_food_le">
  65. <image :src="ite.goodsPicture" alt="加载失败" style="border-radius: 10rpx;" mode="">
  66. </image>
  67. </view>
  68. <view class="margin-left-sm">
  69. <view class="text-black text-lg">{{ite.goodsName}}</view>
  70. <view class="flex align-center text-gray text-sm margin-top-xs">
  71. <view v-if="ite.skuMessage">{{ite.skuMessage}}</view>
  72. <view class="text-gray text-sm" style="margin-left: 5px;margin-top: 4px;">
  73. X{{ite.goodsNum}}</view>
  74. </view>
  75. </view>
  76. </view>
  77. <u-line color="#f2f2f2" />
  78. <view class="padding-bottom padding-lr margin-top-sm text-gray">
  79. <view>手机号:{{item.phone}}</view>
  80. <view>订单号:{{item.orderNumber}}</view>
  81. </view>
  82. <u-line color="#f2f2f2" />
  83. <view class="padding-bottom padding-lr margin-top-sm text-gray" style="margin-left: 120px;display: flex;">
  84. <view class="flex"
  85. v-if="item.status == 3&&item.orderType==2&&item.autoSendOrder ==1">
  86. <view class="btn_" @click.stop="duanxinOrder(item)" style="width: 90px;">送达并发短信</view>
  87. </view>
  88. <view class="flex"
  89. v-if="item.status == 3&&item.orderType==2&&item.autoSendOrder ==1 &&item.deliveryImgs==null">
  90. <view class="btn_pai" @click.stop="paiOrder(item)">拍照</view>
  91. </view>
  92. </view>
  93. <view class="flex align-center justify-between padding-tb">
  94. <view class="flex align-center padding-lr-sm">
  95. <view class="text-gray text-sm">实收:</view>
  96. <view class="text-sm text-black text-bold">¥<text
  97. class="text-xl">{{item.payMoney}}</text>
  98. </view>
  99. </view>
  100. <view class=" flex margin-right">
  101. <view class="flex"
  102. v-if="item.status == 6||item.status == 3">
  103. <view class="btn_" @click.stop="refund(item)" v-if="show1">退款</view>
  104. <view class="btn_" v-if="!show1"
  105. style="background:#FAB6B6;color: #F15B6C;opacity: 0.1;">退款</view>
  106. </view>
  107. <view class="flex" v-if="item.status == 6">
  108. <view class="btn_" @click.stop="finish(item)">制作完成</view>
  109. </view>
  110. <view class="flex"
  111. v-if="item.status == 3&&item.autoSendOrder==2">
  112. <view class="btn_" @click.stop="finishs(item)">配送完成</view>
  113. </view>
  114. <view class="flex" v-if="item.status == 7">
  115. <view class="btn_" @click.stop="jiedan(item)">接单</view>
  116. </view>
  117. <view class="flex" v-if="item.status == 7">
  118. <view class="btn_" @click.stop="jiedans(item)">拒绝接单</view>
  119. </view>
  120. <view class="flex"
  121. v-if="item.status == 4&&item.orderType==2 &&item.deliveryImgs==null">
  122. <view class="btn_pai" @click.stop="paiOrder(item)">拍照</view>
  123. </view>
  124. <view class="flex" v-if="item.status == 6||item.status == 3||item.status == 4">
  125. <view class="btn_" @click.stop="xiaoPiao(item)">补打小票</view>
  126. </view>
  127. <view class="flex"
  128. v-if="item.status == 3&&item.orderType==1">
  129. <view class="btn_" @click.stop="peisong(item,1)">待取餐</view>
  130. </view>
  131. <view class="flex"
  132. v-if="item.status == 3&&item.orderType==2&&item.autoSendOrder ==1">
  133. <view class="btn_" @click.stop="succOrder(item)">完成送达</view>
  134. </view>
  135. </view>
  136. </view>
  137. </view>
  138. </view>
  139. </view>
  140. </view>
  141. <!-- 确认收货拍照弹出框 -->
  142. <u-popup v-model="alertPhone" mode="center" border-radius="18" :closeable="closeable" close-icon="close-circle"
  143. close-icon-size="45" width="680rpx" height="540rpx" @close="onclose">
  144. <view class="receipt_code">
  145. <view class="phone_title">图片凭证</view>
  146. <view class="phone_title2">请上传外卖送达情况</view>
  147. <view>
  148. <view class="flex" style="overflow: hidden;flex-wrap: wrap;">
  149. <view v-if="goodsPicture1.length">
  150. <view class="margin-top flex margin-right-sm flex-wrap">
  151. <view class="flex"
  152. style="width: 200rpx;height: 200rpx;margin-right: 2rpx;position: relative;"
  153. v-for="(image,index) in goodsPicture1" :key="index">
  154. <image :src="image" style="width: 100%;height: 100%;"></image>
  155. <view style="z-index: 9;position: absolute;top: -15rpx;right: -15rpx;"
  156. @click="removeImg(index,'lb')">
  157. <u-icon name="close-circle-fill" color="#FCD202" size="50rpx"></u-icon>
  158. </view>
  159. </view>
  160. </view>
  161. </view>
  162. <view class="margin-top" @click="addImages(1)" v-if="goodsPicture1.length<=1">
  163. <view style="width: 200rpx;height: 200rpx;background: #f4f5f6;"
  164. class="flex justify-center align-center">
  165. <view>
  166. <view class="text-center">
  167. <image src="https://moxuanyunshang.oss-cn-beijing.aliyuncs.com/duanxin/addimg.png" style="width: 65rpx;height: 55rpx;">
  168. </image>
  169. </view>
  170. <view class="text-center text-black">添加图片</view>
  171. </view>
  172. </view>
  173. </view>
  174. </view>
  175. </view>
  176. <view class="sure" @click="querenduanxin">确认拍照</view>
  177. </view>
  178. </u-popup>
  179. <!-- 确认收货短信弹出框 -->
  180. <u-popup v-model="alertduanxin" v-if="alertduanxin" mode="center" border-radius="18" :closeable="closeable" close-icon="close-circle"
  181. close-icon-size="45" width="680rpx" height="700rpx" @close="onclose2">
  182. <view class="receipt_code">
  183. <view class="receipt_code">
  184. <view class="code_title">是否确认送达</view>
  185. <view class="code_title2">已选订单:1单</view>
  186. <view class="code_title2">通知形式:短信</view>
  187. <view class="code_title2">通知内容:{{duanxin[0].templateContent.substring(0, 21)}}{{qiPhone}}</view>
  188. <view class="code_title3">注:发送短信需要收费,每条{{duanPrice}}元</view>
  189. <view class="sure" @click="querenSh">确认送达</view>
  190. </view>
  191. </view>
  192. </u-popup>
  193. <!-- 发送短信出错弹框 -->
  194. <u-popup v-model="ifNotduan" mode="center" border-radius="18" :closeable="closeable" close-icon="close-circle"
  195. close-icon-size="45" width="680rpx" height="700rpx">
  196. <view class="receipt_code">
  197. <view class="receipt_code">
  198. <view class="code_title">是否确认送达</view>
  199. <view class="text-center">
  200. <image src="https://moxuanyunshang.oss-cn-beijing.aliyuncs.com/duanxin/%E7%94%BB%E6%9D%BF%202.png" style="width: 33px;height: 33px;">
  201. </image>
  202. </view>
  203. <view class="code_title2">发送失败</view>
  204. <view class="code_title2">原因:{{failYuanyin}},短信发送失败,请点击拨号联系学生</view>
  205. <view class="sure2" @click="phoneToxue(xuePhone)">
  206. <image src="https://moxuanyunshang.oss-cn-beijing.aliyuncs.com/duanxin/%E7%94%BB%E6%9D%BF%201.png" style="width: 33rpx;height: 33rpx;">
  207. </image>
  208. {{xuePhone}}
  209. </view>
  210. </view>
  211. </view>
  212. </u-popup>
  213. <!-- 筛选弹框 -->
  214. <view class="box" v-if="show">
  215. <view class="popbox" @click.stop="shop = false">
  216. <view class="padding">
  217. <view>
  218. <view>订单号</view>
  219. <view>
  220. <input type="number" v-model="orderNumber" class="impute padding-lr"
  221. placeholder="请输入订单号" />
  222. </view>
  223. </view>
  224. <view>
  225. <view>手机号</view>
  226. <view>
  227. <input type="number" v-model="xuePhone" class="impute padding-lr"
  228. placeholder="请输入手机号码" />
  229. </view>
  230. </view>
  231. <view>
  232. <view>昵称</view>
  233. <view>
  234. <input type="text" v-model="userName" class="impute padding-lr"
  235. placeholder="请输入昵称" />
  236. </view>
  237. </view>
  238. </view>
  239. <view class="btns" @click.stop="bindx()">查询</view>
  240. </view>
  241. </view>
  242. <empty v-if="!orderList.length" style="z-index:0;position: relative;top: -20px;"></empty>
  243. </view>
  244. </template>
  245. <script>
  246. import empty from '@/components/empty.vue'
  247. import configdata from '@/common/config.js';
  248. export default {
  249. components: {
  250. empty
  251. },
  252. data() {
  253. return {
  254. show: false,
  255. page: 1,
  256. limit: 10,
  257. phone: '',
  258. userName: '',
  259. orderNumber: '',
  260. shopId: '',
  261. orderType: 2,
  262. orderList: [],
  263. status: '',
  264. xcxSelect: '',
  265. current: 0,
  266. current1: 0,
  267. qucanList: [{
  268. name: '全部'
  269. },
  270. {
  271. name: '待接单'
  272. },
  273. {
  274. name: '制作中'
  275. },
  276. {
  277. name: '待取餐'
  278. },
  279. {
  280. name: '已完成'
  281. },
  282. {
  283. name: '已取消'
  284. }
  285. ],
  286. waimaiList: [{
  287. name: '全部'
  288. }, {
  289. name: '待接单'
  290. },
  291. {
  292. name: '制作中'
  293. },
  294. {
  295. name: '配送中'
  296. },
  297. {
  298. name: '已完成'
  299. },
  300. {
  301. name: '已取消'
  302. }
  303. ],
  304. arr:[],
  305. closeable: true,
  306. show1: true,
  307. alertPhone:false,
  308. alertduanxin:false,
  309. goodsPicture1: [],//拍照图片
  310. count: 3,
  311. orderId:'',
  312. duanxin:[],//发送的短信
  313. duanPrice:'',//短信费用
  314. qiPhone:'',//骑手电话
  315. ifNotduan:false,//发送短信出错
  316. failYuanyin:'',//短信发送失败原因
  317. xuePhone:'',//当前用户
  318. };
  319. },
  320. onLoad(option) {
  321. uni.showLoading({
  322. title: '加载中...'
  323. })
  324. this.$Request.getT('/app/common/type/354').then(res => { //订单取消通知
  325. if (res.code == 0) {
  326. if (res.data && res.data.value) {
  327. this.arr.push(res.data.value)
  328. }
  329. }
  330. })
  331. this.$Request.getT('/app/common/type/353').then(res => { //订单取消通知
  332. if (res.code == 0) {
  333. if (res.data && res.data.value) {
  334. this.arr.push(res.data.value)
  335. }
  336. }
  337. })
  338. this.$Request.getT('/app/common/type/352').then(res => { //新订单通知
  339. if (res.code == 0) {
  340. if (res.data && res.data.value) {
  341. this.arr.push(res.data.value)
  342. }
  343. }
  344. })
  345. // this.shopId = option.shopId
  346. if (option.status) {
  347. this.change(option.status)
  348. }
  349. },
  350. onShow() {
  351. this.qiPhone=uni.getStorageSync('mobile')
  352. this.shopId = uni.getStorageSync('shopId');
  353. this.getOrderList();
  354. this.clearOrderMsg();
  355. },
  356. methods: {
  357. //聊天室
  358. chat(e) {
  359. // #ifdef MP-WEIXIN
  360. if (uni.getStorageSync('sendindexMsg')) {
  361. uni.requestSubscribeMessage({
  362. tmplIds: this.arr,
  363. success(re) {
  364. // console.log(re,'**********')
  365. var datas = JSON.stringify(re);
  366. if (datas.indexOf("accept") != -1) {
  367. console.log(re)
  368. }
  369. },
  370. fail: (res) => {
  371. console.log(res)
  372. }
  373. })
  374. }
  375. // #endif
  376. // console.log(e)
  377. uni.navigateTo({
  378. url: '/pages/my/im?orderId=' + e.orderId
  379. })
  380. },
  381. peisong(e, index) {
  382. // #ifdef MP-WEIXIN
  383. if (uni.getStorageSync('sendindexMsg')) {
  384. uni.requestSubscribeMessage({
  385. tmplIds: this.arr,
  386. success(re) {
  387. // console.log(re,'**********')
  388. var datas = JSON.stringify(re);
  389. if (datas.indexOf("accept") != -1) {
  390. console.log(re)
  391. }
  392. },
  393. fail: (res) => {
  394. console.log(res)
  395. }
  396. })
  397. }
  398. // #endif
  399. let that = this
  400. if (index == 1) {
  401. var texts = '确认要取餐吗?'
  402. }
  403. if (index == 2) {
  404. var texts = '确认开始配送吗?'
  405. }
  406. uni.showModal({
  407. title: '提示',
  408. content: texts,
  409. success: function(res) {
  410. if (res.confirm) {
  411. console.log('用户点击确定');
  412. let data = {
  413. orderId: e.orderId,
  414. orderNumber: e.orderNumber,
  415. shopId: that.shopId,
  416. status: 4
  417. }
  418. that.$Request.postJsonA("/admin/order/updateOrder", data).then(res => {
  419. if (res.code == 0) {
  420. that.getOrderList()
  421. }
  422. });
  423. } else if (res.cancel) {
  424. console.log('用户点击取消');
  425. }
  426. }
  427. });
  428. },
  429. // 清除订单未读消息
  430. clearOrderMsg() {
  431. let data = {
  432. shopIds: this.shopId
  433. }
  434. this.$Request.postA("/admin/ordermessage/allcheckOrderMessage", data).then(res => {
  435. if (res.code == 0 && res.data > 0) {
  436. }
  437. });
  438. },
  439. bindopen() {
  440. this.show = !this.show
  441. },
  442. bindx() {
  443. this.show = false
  444. this.getOrderList()
  445. this.phone = ''
  446. this.userName = ''
  447. this.orderNumber = ''
  448. },
  449. refund(e) {
  450. // #ifdef MP-WEIXIN
  451. if (uni.getStorageSync('sendindexMsg')) {
  452. uni.requestSubscribeMessage({
  453. tmplIds: this.arr,
  454. success(re) {
  455. // console.log(re,'**********')
  456. var datas = JSON.stringify(re);
  457. if (datas.indexOf("accept") != -1) {
  458. console.log(re)
  459. }
  460. },
  461. fail: (res) => {
  462. console.log(res)
  463. }
  464. })
  465. }
  466. // #endif
  467. let that = this
  468. uni.showModal({
  469. title: '提示',
  470. content: '确认退款吗?',
  471. success: function(res) {
  472. if (res.confirm) {
  473. console.log('用户点击确定');
  474. that.show1 = false
  475. let data = {
  476. orderId: e.orderId
  477. }
  478. that.$Request.postA("/admin/order/adminCancelOrder", data).then(res => {
  479. if (res.code == 0) {
  480. that.getOrderList()
  481. }
  482. });
  483. } else if (res.cancel) {
  484. console.log('用户点击取消');
  485. }
  486. }
  487. });
  488. },
  489. //发短信送达
  490. duanxinOrder(e){
  491. this.orderId=e.orderId
  492. this.xuePhone=e.phone
  493. this.querenduanxinList()
  494. this.getDuanPrice()
  495. },
  496. //拍照
  497. paiOrder(e){
  498. this.orderId=e.orderId
  499. this.alertPhone=true
  500. },
  501. // 图片上传
  502. addImages(e) {
  503. if (e == 1) {
  504. var num = this.goodsPicture1.length
  505. this.count = 2 - num
  506. }
  507. let that = this
  508. uni.chooseImage({
  509. count: this.count,
  510. sourceType: [ 'camera','album'],
  511. success: res => {
  512. for (let i = 0; i < res.tempFilePaths.length; i++) {
  513. that.$queue.showLoading("上传中...");
  514. uni.uploadFile({ // 上传接口
  515. // url: that.config("APIHOST1") + '/alioss/upload', //真实的接口地址
  516. url: that.config("APIHOST1") + '/alioss/upload',
  517. // url: 'https://mxys.chuanghai-tech.com/sqx_fast/alioss/upload',
  518. filePath: res.tempFilePaths[i],
  519. name: 'file',
  520. success: (uploadFileRes) => {
  521. if (e == 1) {
  522. if (that.goodsPicture1.length < 2) {
  523. that.goodsPicture1.push(JSON.parse(uploadFileRes.data)
  524. .data)
  525. }
  526. }
  527. uni.hideLoading();
  528. // this.querenduanxin()
  529. }
  530. });
  531. }
  532. }
  533. })
  534. },
  535. // 图片删除
  536. removeImg(index, texts) {
  537. if (texts == 'lb') {
  538. this.goodsPicture1.splice(index, 1)
  539. }
  540. },
  541. config: function(name) {
  542. var info = null;
  543. if (name) {
  544. var name2 = name.split("."); //字符分割
  545. if (name2.length > 1) {
  546. info = configdata[name2[0]][name2[1]] || null;
  547. } else {
  548. info = configdata[name] || null;
  549. }
  550. if (info == null) {
  551. let web_config = cache.get("web_config");
  552. if (web_config) {
  553. if (name2.length > 1) {
  554. info = web_config[name2[0]][name2[1]] || null;
  555. } else {
  556. info = web_config[name] || null;
  557. }
  558. }
  559. }
  560. }
  561. return info;
  562. },
  563. // 监听拍照框关闭
  564. onclose(){
  565. this.alertPhone=false
  566. this.goodsPicture1=[]
  567. },
  568. //确认上传图片
  569. querenduanxin(){
  570. var tupian=this.goodsPicture1.toString()
  571. var orderId=this.orderId
  572. let data = {
  573. img:tupian
  574. }
  575. this.$Request.postT(`/admin/order/add-receive-img/${orderId}`,data).then(res => {
  576. console.log(res,'img')
  577. if (res.code == 0) {
  578. this.alertPhone = false
  579. uni.showToast({
  580. title: '图片上传完成',
  581. icon: "none"
  582. });
  583. } else {
  584. uni.showToast({
  585. title: res.msg,
  586. icon: "none"
  587. });
  588. }
  589. });
  590. },
  591. // 获取确认送达短信模板
  592. querenduanxinList() {
  593. this.$Request.getT('/app/tb-indent-sms/template', {
  594. }).then(res => {
  595. this.duanxin=res.data.list
  596. if (res.code == 0) {
  597. this.page = 1;
  598. this.alertduanxin=true
  599. } else {
  600. uni.showToast({
  601. title: res.msg,
  602. icon: "none"
  603. });
  604. }
  605. });
  606. },
  607. //获取短信价格
  608. getDuanPrice(){
  609. this.$Request.getT('/admin/tb-indent-sms/price-of-sms', {
  610. }).then(res => {
  611. if (res.code == 0) {
  612. this.duanPrice= res.data
  613. } else {
  614. uni.showToast({
  615. title: res.msg,
  616. icon: "none"
  617. });
  618. }
  619. });
  620. },
  621. //发短信并送达
  622. querenSh() {
  623. // #ifdef MP-WEIXIN
  624. if (uni.getStorageSync('sendindexMsg')) {
  625. uni.requestSubscribeMessage({
  626. tmplIds: this.arr,
  627. success(re) {
  628. // console.log(re,'**********')
  629. var datas = JSON.stringify(re);
  630. if (datas.indexOf("accept") != -1) {
  631. console.log(re)
  632. }
  633. },
  634. fail: (res) => {
  635. console.log(res)
  636. }
  637. })
  638. }
  639. // #endif
  640. let that = this
  641. uni.showModal({
  642. title: '提示',
  643. content: '确认发送短信并完成送达吗?',
  644. success: function(res) {
  645. if (res.confirm) {
  646. let data = {
  647. orderId: that.orderId,
  648. sendSmsFlag:1,
  649. smsTemplateId:that.duanxin[0].id
  650. }
  651. that.$Request.postT("/admin/order/accomplishOrder", data).then(res => {
  652. if (res.code == 0) {
  653. that.alertduanxin=false
  654. that.xuePhone=''
  655. that.getOrderList()
  656. uni.showToast({
  657. title: '配送成功',
  658. icon: "success"
  659. });
  660. }else{
  661. that.failYuanyin=res.msg
  662. that.alertduanxin=false
  663. that.ifNotduan=true
  664. uni.showToast({
  665. title: res.msg,
  666. icon: "none"
  667. });
  668. }
  669. });
  670. } else if (res.cancel) {
  671. console.log('用户点击取消');
  672. }
  673. }
  674. });
  675. },
  676. //联系学生
  677. phoneToxue(e){
  678. uni.makePhoneCall({
  679. phoneNumber: e ,
  680. }) // 传参带入号码即可
  681. },
  682. // 完成送达
  683. succOrder(e){
  684. // #ifdef MP-WEIXIN
  685. if (uni.getStorageSync('sendindexMsg')) {
  686. uni.requestSubscribeMessage({
  687. tmplIds: this.arr,
  688. success(re) {
  689. // console.log(re,'**********')
  690. var datas = JSON.stringify(re);
  691. if (datas.indexOf("accept") != -1) {
  692. console.log(re)
  693. }
  694. },
  695. fail: (res) => {
  696. console.log(res)
  697. }
  698. })
  699. }
  700. // #endif
  701. let that = this
  702. uni.showModal({
  703. title: '提示',
  704. content: '确认完成送达吗?',
  705. success: function(res) {
  706. if (res.confirm) {
  707. console.log('用户点击确定');
  708. let data = {
  709. orderId: e.orderId,
  710. sendSmsFlag:0
  711. // orderNumber: e.orderNumber,
  712. // shopId: that.shopId,
  713. // addressId: e.addressId,
  714. // status: 3
  715. }
  716. that.$Request.postT("/admin/order/accomplishOrder", data).then(res => {
  717. if (res.code == 0) {
  718. that.getOrderList()
  719. }
  720. });
  721. } else if (res.cancel) {
  722. console.log('用户点击取消');
  723. }
  724. }
  725. });
  726. },
  727. //制作完成
  728. finish(e) {
  729. // #ifdef MP-WEIXIN
  730. if (uni.getStorageSync('sendindexMsg')) {
  731. uni.requestSubscribeMessage({
  732. tmplIds: this.arr,
  733. success(re) {
  734. // console.log(re,'**********')
  735. var datas = JSON.stringify(re);
  736. if (datas.indexOf("accept") != -1) {
  737. console.log(re)
  738. }
  739. },
  740. fail: (res) => {
  741. console.log(res)
  742. }
  743. })
  744. }
  745. // #endif
  746. let that = this
  747. uni.showModal({
  748. title: '提示',
  749. content: '确认操作完成吗?',
  750. success: function(res) {
  751. if (res.confirm) {
  752. console.log('用户点击确定');
  753. let data = {
  754. orderId: e.orderId,
  755. orderNumber: e.orderNumber,
  756. shopId: that.shopId,
  757. addressId: e.addressId,
  758. status: 3
  759. }
  760. that.$Request.postJsonA("/admin/order/updateOrder", data).then(res => {
  761. if (res.code == 0) {
  762. that.getOrderList()
  763. }
  764. });
  765. } else if (res.cancel) {
  766. console.log('用户点击取消');
  767. }
  768. }
  769. });
  770. },
  771. //配送完成
  772. finishs(e) {
  773. // #ifdef MP-WEIXIN
  774. if (uni.getStorageSync('sendindexMsg')) {
  775. uni.requestSubscribeMessage({
  776. tmplIds: this.arr,
  777. success(re) {
  778. // console.log(re,'**********')
  779. var datas = JSON.stringify(re);
  780. if (datas.indexOf("accept") != -1) {
  781. console.log(re)
  782. }
  783. },
  784. fail: (res) => {
  785. console.log(res)
  786. }
  787. })
  788. }
  789. // #endif
  790. let that = this
  791. uni.showModal({
  792. title: '提示',
  793. content: '确认操作完成吗?',
  794. success: function(res) {
  795. if (res.confirm) {
  796. console.log('用户点击确定');
  797. let data = {
  798. orderId: e.orderId,
  799. orderNumber: e.orderNumber,
  800. shopId: that.shopId,
  801. addressId: e.addressId,
  802. status: 4
  803. }
  804. that.$Request.postJsonA("/admin/order/updateOrder", data).then(res => {
  805. if (res.code == 0) {
  806. that.getOrderList()
  807. }
  808. });
  809. } else if (res.cancel) {
  810. console.log('用户点击取消');
  811. }
  812. }
  813. });
  814. },
  815. //接单
  816. jiedan(e) {
  817. // #ifdef MP-WEIXIN
  818. if (uni.getStorageSync('sendindexMsg')) {
  819. uni.requestSubscribeMessage({
  820. tmplIds: this.arr,
  821. success(re) {
  822. var datas = JSON.stringify(re);
  823. if (datas.indexOf("accept") != -1) {
  824. console.log(re)
  825. }
  826. },
  827. fail: (res) => {
  828. console.log(res)
  829. }
  830. })
  831. }
  832. // #endif
  833. let that = this
  834. uni.showModal({
  835. title: '提示',
  836. content: '确认接单吗?',
  837. success: function(res) {
  838. if (res.confirm) {
  839. console.log('用户点击确定');
  840. let data = {
  841. orderId: e.orderId,
  842. orderNumber: e.orderNumber,
  843. status: 6
  844. }
  845. that.$Request.postJsonA("/admin/order/updateOrder", data).then(res => {
  846. if (res.code == 0) {
  847. that.page = 1
  848. that.getOrderList()
  849. }else{
  850. that.$queue.showToast(res.msg)
  851. }
  852. });
  853. } else if (res.cancel) {
  854. console.log('用户点击取消');
  855. }
  856. }
  857. });
  858. },
  859. // 补打小票
  860. xiaoPiao(e){
  861. // #ifdef MP-WEIXIN
  862. if (uni.getStorageSync('sendindexMsg')) {
  863. uni.requestSubscribeMessage({
  864. tmplIds: this.arr,
  865. success(re) {
  866. // console.log(re,'**********')
  867. var datas = JSON.stringify(re);
  868. if (datas.indexOf("accept") != -1) {
  869. console.log(re)
  870. }
  871. },
  872. fail: (res) => {
  873. console.log(res)
  874. }
  875. })
  876. }
  877. // #endif
  878. let that = this
  879. uni.showModal({
  880. title: '提示',
  881. content: '确认补打小票吗?',
  882. success: function(re) {
  883. if (re.confirm) {
  884. console.log('用户点击确定');
  885. let data = {
  886. orderId: e.orderId,
  887. // orderNumber: e.orderNumber,
  888. // status: 8
  889. }
  890. console.log(data,'l')
  891. that.$Request.post("/admin/order/print", data).then(res => {
  892. console.log(res,'po')
  893. if (res.code == 0) {
  894. // that.page = 1
  895. // that.getOrderList()
  896. }else{
  897. that.$queue.showToast(res.msg)
  898. }
  899. });
  900. } else if (re.cancel) {
  901. console.log('用户点击取消');
  902. }
  903. }
  904. });
  905. },
  906. //拒绝接单
  907. jiedans(e) {
  908. // #ifdef MP-WEIXIN
  909. if (uni.getStorageSync('sendindexMsg')) {
  910. uni.requestSubscribeMessage({
  911. tmplIds: this.arr,
  912. success(re) {
  913. // console.log(re,'**********')
  914. var datas = JSON.stringify(re);
  915. if (datas.indexOf("accept") != -1) {
  916. console.log(re)
  917. }
  918. },
  919. fail: (res) => {
  920. console.log(res)
  921. }
  922. })
  923. }
  924. // #endif
  925. let that = this
  926. uni.showModal({
  927. title: '提示',
  928. content: '确认拒绝接单吗?',
  929. success: function(res) {
  930. if (res.confirm) {
  931. console.log('用户点击确定');
  932. let data = {
  933. orderId: e.orderId,
  934. orderNumber: e.orderNumber,
  935. status: 8
  936. }
  937. that.$Request.postJsonA("/admin/order/updateOrder", data).then(res => {
  938. if (res.code == 0) {
  939. that.page = 1
  940. that.getOrderList()
  941. }
  942. });
  943. } else if (res.cancel) {
  944. console.log('用户点击取消');
  945. }
  946. }
  947. });
  948. },
  949. switchTab(e) {
  950. // #ifdef MP-WEIXIN
  951. if (uni.getStorageSync('sendindexMsg')) {
  952. uni.requestSubscribeMessage({
  953. tmplIds: this.arr,
  954. success(re) {
  955. // console.log(re,'**********')
  956. var datas = JSON.stringify(re);
  957. if (datas.indexOf("accept") != -1) {
  958. console.log(re)
  959. }
  960. },
  961. fail: (res) => {
  962. console.log(res)
  963. }
  964. })
  965. }
  966. // #endif
  967. this.page = 1
  968. this.orderType = e
  969. this.current = 0
  970. this.current1 = 0
  971. this.status = ''
  972. this.getOrderList()
  973. },
  974. change(index) {
  975. // #ifdef MP-WEIXIN
  976. if (uni.getStorageSync('sendindexMsg')) {
  977. uni.requestSubscribeMessage({
  978. tmplIds: this.arr,
  979. success(re) {
  980. // console.log(re,'**********')
  981. var datas = JSON.stringify(re);
  982. if (datas.indexOf("accept") != -1) {
  983. console.log(re)
  984. }
  985. },
  986. fail: (res) => {
  987. console.log(res)
  988. }
  989. })
  990. }
  991. // #endif
  992. this.page = 1
  993. this.current = index;
  994. switch (index) {
  995. case 0:
  996. this.status = '' //全部
  997. break;
  998. case 1:
  999. this.status = 7 //待接单
  1000. break;
  1001. case 2:
  1002. this.status = 6 //制作中
  1003. break;
  1004. case 3:
  1005. this.status = 3 //待取餐
  1006. break;
  1007. case 4:
  1008. this.status = 4 //已完成
  1009. break;
  1010. case 5:
  1011. this.status = 5 //已取消
  1012. break;
  1013. case '2':
  1014. this.status = 6 //制作中
  1015. break;
  1016. case '1':
  1017. this.status = 7 //待接单
  1018. break;
  1019. case '3':
  1020. this.status = 3 //制作中
  1021. break;
  1022. case '4':
  1023. this.status = 4 //制作中
  1024. break;
  1025. }
  1026. this.getOrderList()
  1027. },
  1028. change1(index) {
  1029. // #ifdef MP-WEIXIN
  1030. if (uni.getStorageSync('sendindexMsg')) {
  1031. uni.requestSubscribeMessage({
  1032. tmplIds: this.arr,
  1033. success(re) {
  1034. // console.log(re,'**********')
  1035. var datas = JSON.stringify(re);
  1036. if (datas.indexOf("accept") != -1) {
  1037. console.log(re)
  1038. }
  1039. },
  1040. fail: (res) => {
  1041. console.log(res)
  1042. }
  1043. })
  1044. }
  1045. // #endif
  1046. this.page = 1
  1047. this.current1 = index;
  1048. switch (index) {
  1049. case 0:
  1050. this.status = ''
  1051. break;
  1052. case 1:
  1053. this.status = 7 //待接单
  1054. break;
  1055. case 2:
  1056. this.status = 6
  1057. break;
  1058. case 3:
  1059. this.status = 3
  1060. break;
  1061. case 4:
  1062. this.status = 4
  1063. break;
  1064. case 5:
  1065. this.status = 5
  1066. break;
  1067. }
  1068. this.getOrderList()
  1069. },
  1070. goNav(url) {
  1071. // #ifdef MP-WEIXIN
  1072. if (uni.getStorageSync('sendindexMsg')) {
  1073. uni.requestSubscribeMessage({
  1074. tmplIds: this.arr,
  1075. success(re) {
  1076. // console.log(re,'**********')
  1077. var datas = JSON.stringify(re);
  1078. if (datas.indexOf("accept") != -1) {
  1079. console.log(re)
  1080. }
  1081. },
  1082. fail: (res) => {
  1083. console.log(res)
  1084. }
  1085. })
  1086. }
  1087. // #endif
  1088. uni.navigateTo({
  1089. url
  1090. })
  1091. },
  1092. // 获取数据列表
  1093. getOrderList() {
  1094. uni.showLoading({
  1095. title: '加载中···'
  1096. })
  1097. let data = {
  1098. page: this.page,
  1099. limit: this.limit,
  1100. phone: this.phone,
  1101. userName: this.userName,
  1102. orderNumber: this.orderNumber,
  1103. shopId: this.shopId,
  1104. status: this.status,
  1105. orderType: this.orderType
  1106. }
  1107. this.$Request.getA("/admin/order/selectAllOrder", data).then(res => {
  1108. uni.hideLoading()
  1109. uni.stopPullDownRefresh();
  1110. if (res.code == 0) {
  1111. // this.msgData = res.data
  1112. res.data.list.forEach(res => {
  1113. res.orderCode = res.orderCode.substring(res.orderCode.length - 3, res.orderCode
  1114. .length)
  1115. var phone = res.phone;
  1116. // var result = phone.substring(0, 3) + "****" + phone.substring(7, 11);
  1117. // console.log(result);
  1118. res.phone = phone
  1119. })
  1120. if (this.page == 1) {
  1121. this.orderList = res.data.list
  1122. } else {
  1123. this.orderList = [...this.orderList, ...res.data.list]
  1124. }
  1125. this.totalCount = res.data.totalCount
  1126. this.show1 = true
  1127. }
  1128. });
  1129. }
  1130. },
  1131. onReachBottom: function() {
  1132. this.page = this.page + 1;
  1133. this.getOrderList();
  1134. if (this.totalCount == this.orderList.length) {
  1135. uni.showToast({
  1136. title: '已经到底了~',
  1137. icon: 'none'
  1138. })
  1139. }
  1140. },
  1141. onPullDownRefresh: function() {
  1142. this.page = 1;
  1143. this.getOrderList();
  1144. },
  1145. }
  1146. </script>
  1147. <style scoped>
  1148. .active {
  1149. width: 82rpx;
  1150. height: 6rpx;
  1151. background: #333333;
  1152. margin-left: 12rpx;
  1153. }
  1154. .bg {
  1155. background-color: #FFFFFF;
  1156. }
  1157. /* 切换选项 */
  1158. .nav {
  1159. display: flex;
  1160. align-items: center;
  1161. justify-content: center;
  1162. background-color: #FFFFFF;
  1163. color: #999999;
  1164. }
  1165. .btn {
  1166. /* padding: 10rpx 20rpx;
  1167. text-align: center;
  1168. background: rgba(255, 19, 10, 0.2);
  1169. font-size: 28rpx;
  1170. border: 2rpx solid #FF130A;
  1171. color: #FF130A;
  1172. opacity: 0.6;
  1173. border-radius: 8rpx; */
  1174. width: 150rpx;
  1175. height: 60rpx;
  1176. line-height: 60rpx;
  1177. text-align: center;
  1178. background: #F5F5F5;
  1179. font-size: 28rpx;
  1180. border: 2rpx solid ##F5F5F5;
  1181. color: #666666;
  1182. border-radius: 50rpx;
  1183. font-weight: 700;
  1184. margin-left: 10rpx;
  1185. }
  1186. .btnCm {
  1187. /* padding: 10rpx 20rpx;
  1188. text-align: center;
  1189. background: #0081FF;
  1190. font-size: 28rpx;
  1191. border: 2rpx solid #0081FF;
  1192. color: #FFFFFF;
  1193. opacity: 0.6;
  1194. border-radius: 8rpx; */
  1195. }
  1196. /* 拍照 */
  1197. .btn_pai{
  1198. width: 150rpx;
  1199. height: 60rpx;
  1200. line-height: 60rpx;
  1201. text-align: center;
  1202. background: rgba(255, 201, 189, 1);
  1203. font-size: 28rpx;
  1204. border: 2rpx solid rgba(255, 201, 189, 1);
  1205. color: #333333;
  1206. border-radius: 50rpx;
  1207. font-weight: 700;
  1208. margin-left: 15rpx;
  1209. }
  1210. .btn_ {
  1211. width: 150rpx;
  1212. height: 60rpx;
  1213. line-height: 60rpx;
  1214. text-align: center;
  1215. background: #FCD202;
  1216. font-size: 28rpx;
  1217. border: 2rpx solid #FCD202;
  1218. color: #333333;
  1219. border-radius: 50rpx;
  1220. font-weight: 700;
  1221. margin-left: 15rpx;
  1222. }
  1223. .tabBtn {
  1224. /* background-color: #f6f6fa; */
  1225. height: 60rpx;
  1226. line-height: 60rpx;
  1227. color: #000000;
  1228. font-size: 31rpx;
  1229. font-weight: bold;
  1230. }
  1231. .shaix {
  1232. width: 30%;
  1233. text-align: center;
  1234. display: flex;
  1235. align-items: center;
  1236. justify-content: center;
  1237. letter-spacing: 4rpx;
  1238. font-size: 27rpx;
  1239. }
  1240. .select {
  1241. color: #000000;
  1242. font-size: 31rpx;
  1243. font-weight: bold;
  1244. background-color: #fff;
  1245. }
  1246. .nav view {
  1247. flex-grow: 1;
  1248. margin: 3% 6.5% 2%;
  1249. text-align: center;
  1250. }
  1251. .nav_btna {
  1252. font-size: 42rpx;
  1253. line-height: 34rpx;
  1254. color: #000000;
  1255. font-weight: bold;
  1256. border-bottom: 14rpx solid #FCD202;
  1257. }
  1258. /* 内容 */
  1259. /* 全部订单 */
  1260. .cont_one {
  1261. /* margin-top: 160rpx; */
  1262. }
  1263. .cont_one image {
  1264. width: 80%;
  1265. height: 353rpx;
  1266. }
  1267. /* 到店取餐 */
  1268. .cont_two {
  1269. display: none;
  1270. width: 94%;
  1271. margin: 3% auto;
  1272. background-color: #FFFFFF;
  1273. border-radius: 18rpx;
  1274. }
  1275. .cont {
  1276. /* display: none; */
  1277. width: 94%;
  1278. margin: 3% auto;
  1279. background-color: #FFFFFF;
  1280. border-radius: 18rpx;
  1281. }
  1282. .order_title{
  1283. width: 90%;
  1284. margin: 0 auto;
  1285. border-radius: 14px 14px, 0px, 0px;
  1286. background: rgba(255, 239, 222, 1);
  1287. height: 40upx;
  1288. color: rgba(255, 141, 26, 1);
  1289. font-size: 24upx;
  1290. line-height: 40upx;
  1291. text-align: center;
  1292. }
  1293. .cont_two_top {
  1294. width: 94%;
  1295. padding: 4% 3% 0;
  1296. margin: 0 auto;
  1297. display: flex;
  1298. justify-content: space-between;
  1299. }
  1300. .cont_two_top_le {
  1301. width: 85%;
  1302. font-size: 30rpx;
  1303. font-weight: 500;
  1304. color: #333333;
  1305. /* line-height: 2; */
  1306. margin: 5rpx 0;
  1307. }
  1308. .cont_two_top_ri {
  1309. /* width: 15%; */
  1310. padding: 6rpx 10rpx;
  1311. text-align: center;
  1312. background: rgba(255, 19, 10, 0.2);
  1313. font-size: 24rpx;
  1314. border: 2rpx solid #FF130A;
  1315. color: #FF130A;
  1316. opacity: 0.6;
  1317. border-radius: 8rpx;
  1318. }
  1319. .cont_two_top_ri1 {
  1320. /* width: 15%; */
  1321. text-align: center;
  1322. /* line-height: 2; */
  1323. padding: 6rpx 10rpx;
  1324. background: #62ba8b;
  1325. font-size: 24rpx;
  1326. border: 2rpx solid #62ba8b;
  1327. color: #fff;
  1328. /* opacity: 0.6; */
  1329. border-radius: 8rpx;
  1330. }
  1331. .cont_two_top_ri2 {
  1332. /* width: 15%; */
  1333. text-align: center;
  1334. /* line-height: 2; */
  1335. padding: 6rpx 10rpx;
  1336. background: #FCD202;
  1337. font-size: 24rpx;
  1338. border: 2rpx solid #FCD202;
  1339. color: #fff;
  1340. /* opacity: 0.6; */
  1341. border-radius: 8rpx;
  1342. }
  1343. .cont_two_text {
  1344. font-size: 58rpx;
  1345. text-align: center;
  1346. font-weight: bold;
  1347. color: red;
  1348. margin: 3% 0;
  1349. line-height: 32rpx;
  1350. }
  1351. .cont_two_text2 {
  1352. font-size: 30rpx;
  1353. width: 100%;
  1354. font-weight: 500;
  1355. color: #333333;
  1356. text-align: center;
  1357. padding-bottom: 3%;
  1358. /* line-height: 32rpx; */
  1359. }
  1360. .cont_two_text2 text {
  1361. color: #FF130A;
  1362. }
  1363. .cont_two_bottom {
  1364. width: 94%;
  1365. padding: 3%;
  1366. margin: 0 auto;
  1367. display: flex;
  1368. border-top: 1rpx solid #E6E6E6;
  1369. }
  1370. .cont_two_bottom_le {
  1371. flex: 1;
  1372. font-size: 24rpx;
  1373. font-weight: 500;
  1374. color: #999999;
  1375. line-height: 32rpx;
  1376. }
  1377. .cont_two_bottom_ri {
  1378. flex: 1;
  1379. text-align: right;
  1380. }
  1381. .cont_two_bottom_ri image {
  1382. width: 14rpx;
  1383. height: 24rpx;
  1384. }
  1385. /* 外卖订单 */
  1386. .cont_three {
  1387. display: none;
  1388. width: 94%;
  1389. margin: 3% auto;
  1390. background-color: #FFFFFF;
  1391. border-radius: 18rpx;
  1392. }
  1393. .cont_three_top {
  1394. width: 94%;
  1395. padding: 4% 3% 0;
  1396. margin: 0 auto;
  1397. display: flex;
  1398. }
  1399. .cont_three_top_le {
  1400. flex: 2;
  1401. font-size: 30rpx;
  1402. font-weight: 500;
  1403. color: #D80204;
  1404. line-height: 32rpx;
  1405. }
  1406. .cont_three_top_ri {
  1407. flex: 1;
  1408. text-align: right;
  1409. font-size: 24rpx;
  1410. font-weight: 500;
  1411. color: #999999;
  1412. line-height: 32rpx;
  1413. }
  1414. .cont_three_text {
  1415. padding: 2% 0 2% 3%;
  1416. font-size: 24rpx;
  1417. font-weight: 500;
  1418. color: #999999;
  1419. line-height: 32rpx;
  1420. }
  1421. .cont_three_cen {
  1422. width: 94%;
  1423. padding: 0.5% 3%;
  1424. margin: 0 auto;
  1425. display: flex;
  1426. }
  1427. .cont_three_cen_le {
  1428. flex: 2;
  1429. font-size: 30rpx;
  1430. font-weight: 500;
  1431. color: #333333;
  1432. line-height: 32rpx;
  1433. }
  1434. .cont_three_cen_ri {
  1435. flex: 1;
  1436. text-align: right;
  1437. font-size: 24rpx;
  1438. font-weight: 500;
  1439. color: #999999;
  1440. line-height: 32rpx;
  1441. }
  1442. .cont_three_text2 {
  1443. font-size: 24rpx;
  1444. font-weight: 500;
  1445. color: #D80204;
  1446. padding: 0 3%;
  1447. line-height: 32rpx;
  1448. }
  1449. .cont_three_bottom {
  1450. width: 94%;
  1451. padding: 3%;
  1452. margin: 3% auto 0;
  1453. display: flex;
  1454. border-top: 1rpx solid #E6E6E6;
  1455. }
  1456. .cont_three_bottom_le {
  1457. flex: 1;
  1458. font-size: 24rpx;
  1459. font-weight: 500;
  1460. color: #999999;
  1461. line-height: 32rpx;
  1462. }
  1463. .cont_three_bottom_ri {
  1464. flex: 1;
  1465. text-align: right;
  1466. }
  1467. .cont_dis {
  1468. display: block;
  1469. }
  1470. .box {
  1471. width: 100%;
  1472. height: 100vh;
  1473. background-color: rgba(0, 0, 0, 0.2);
  1474. /* opacity: 0.2; */
  1475. position: absolute;
  1476. top: 40px;
  1477. z-index: 999
  1478. }
  1479. .popbox {
  1480. width: 749upx;
  1481. /* height: 764upx; */
  1482. background: #FFFFFF;
  1483. padding-bottom: 72rpx;
  1484. z-inde: 999;
  1485. /* #ifdef H5 */
  1486. position: fixed;
  1487. top: 120px;
  1488. left: 0;
  1489. right: 0;
  1490. /* #endif */
  1491. /* #ifndef H5 */
  1492. position: fixed;
  1493. top: 66rpx;
  1494. left: 0;
  1495. right: 0;
  1496. /* #endif */
  1497. }
  1498. .impute {
  1499. background: #F2F2F2;
  1500. height: 80rpx;
  1501. margin: 20rpx 0;
  1502. }
  1503. .btns {
  1504. width: 690upx;
  1505. height: 88upx;
  1506. background: #FF8D1A;
  1507. box-shadow: 0upx 10upx 20upx 0upx #FFD9B3;
  1508. border-radius: 16upx;
  1509. text-align: center;
  1510. line-height: 88rpx;
  1511. font-size: 32rpx;
  1512. font-weight: bold;
  1513. margin: 0 auto;
  1514. }
  1515. .tosend_header_food_le {
  1516. width: 15%;
  1517. }
  1518. .tosend_header_food_le image {
  1519. width: 110rpx;
  1520. height: 110rpx;
  1521. }
  1522. .u-border-top:after {
  1523. border: none !important;
  1524. }
  1525. /* 收货码弹框 */
  1526. .receipt_code {
  1527. width: 90%;
  1528. margin: 0 auto;
  1529. }
  1530. .code_title {
  1531. width: 100%;
  1532. line-height: 100rpx;
  1533. font-size: 31rpx;
  1534. font-weight: bold;
  1535. text-align: center;
  1536. letter-spacing: 2rpx;
  1537. margin-top: 21rpx;
  1538. margin-bottom: 25rpx;
  1539. }
  1540. .u-input--border {
  1541. border: 1px solid #F2F2F2 !important;
  1542. background: #F2F2F2 !important;
  1543. color: #999999 !important;
  1544. font-weight: 500 !important;
  1545. letter-spacing: 2rpx !important;
  1546. }
  1547. .u-input__input {
  1548. font-size: 30rpx;
  1549. font-weight: bold;
  1550. flex: 1;
  1551. color: #999999 !important;
  1552. min-height: 85rpx !important;
  1553. margin-top: 7rpx;
  1554. }
  1555. .sure {
  1556. width: 100%;
  1557. height: 80rpx;
  1558. background: rgba(245, 211, 71, 1);
  1559. color: white;
  1560. border-radius: 46rpx;
  1561. text-align: center;
  1562. line-height: 80rpx;
  1563. margin-top: 30rpx;
  1564. color: rgba(0, 0, 0, 1);
  1565. letter-spacing: 2rpx;
  1566. }
  1567. .sure2{
  1568. text-align: center;
  1569. color: rgba(0, 0, 0, 1);
  1570. line-height: 80rpx;
  1571. margin-top: 30rpx;
  1572. width: 100%;
  1573. height: 80rpx;
  1574. opacity: 1;
  1575. border-radius: 10rpx;
  1576. background: rgba(245, 211, 71, 1);
  1577. }
  1578. /* 确认送达拍照框 */
  1579. .phone_title{
  1580. margin-top: 10px;
  1581. width: 100%;
  1582. height: 40px;
  1583. /* background-color: #FF7F00; */
  1584. text-align: center;
  1585. line-height: 40px;
  1586. /* color:#FFFFFF; */
  1587. }
  1588. .phone_title2{
  1589. margin-top: 10px;
  1590. text-align: center;
  1591. color:#9d9d9d;
  1592. }
  1593. .code_title2 {
  1594. width: 100%;
  1595. line-height: 50rpx;
  1596. text-align: center;
  1597. letter-spacing: 2rpx;
  1598. margin-top: 21rpx;
  1599. margin-bottom: 25rpx;
  1600. }
  1601. .code_title3{
  1602. margin-left: -20px;
  1603. margin-top: 21rpx;
  1604. margin-bottom: 25rpx;
  1605. width: 638rpx;
  1606. height: 66rpx;
  1607. border-radius: 6rpx;
  1608. background: rgba(255, 245, 245, 1);
  1609. font-size: 24rpx;
  1610. line-height: 66rpx;
  1611. color: rgba(212, 48, 48, 1);
  1612. text-align: center;
  1613. }
  1614. </style>