index.vue 46 KB

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