index.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791
  1. <template>
  2. <view style="padding-bottom: 80upx">
  3. <view class="u-flex padding-lr bg padding-top">
  4. <view class="u-m-r-10">
  5. <image :src="avatar" style="width: 100rpx; height: 100rpx; border-radius: 100rpx" @click="goNav('/my/store/index')"></image>
  6. </view>
  7. <view class="u-flex-1 u-m-l-10" v-if="!isLogin">
  8. <view class="u-font-18 text-bold">
  9. <view class="margin-left-sm margin-top-xs">
  10. <view class="flex align-end" style="display: flex; align-items: center">
  11. {{ userName }}
  12. <view class="status" v-if="shop" @click="changePutaWayFlag">
  13. <image
  14. :src="shop.putawayFlag == 0 ? '../../static/images/index/shangban.png' : '../../static/images/index/dayang.png'"
  15. style="width: 54rpx; height: 54rpx"
  16. ></image>
  17. {{ shop.putawayFlag == 0 ? '营业' : '关门' }}
  18. </view>
  19. </view>
  20. </view>
  21. </view>
  22. </view>
  23. <view v-else class="text-xl u-p-l-20 text-bold" @click="goLogin('/pages/my/loginphone')">登录</view>
  24. </view>
  25. <view class="flex align-center padding-left">
  26. <image src="../../static/images/img/data.png" style="width: 26upx; height: 26upx"></image>
  27. <view class="margin-left-xs flex align-center" style="color: #999999">
  28. <view @click="bindData(1)">{{ startTime ? startTime : '开始时间' }}</view>
  29. <view @click="bindData(2)">{{ endTime ? endTime : '结束时间' }}</view>
  30. </view>
  31. </view>
  32. <view class="flex align-center box justify-between text-center">
  33. <view @click="goNav('/my/other/cashList')">
  34. <text class="text-bold text-xl">{{ allMoney ? allMoney : '0' }}</text>
  35. <view>总收益</view>
  36. </view>
  37. <view class="">
  38. <text class="text-bold text-xl">{{ allCount ? allCount : '0' }}</text>
  39. <view>总销量</view>
  40. </view>
  41. <view @click="goNav('/my/store/pingjia')">
  42. <text class="text-bold text-xl">{{ countTakingByUserId ? countTakingByUserId : '0' }}</text>
  43. <view>用户评价</view>
  44. </view>
  45. <!-- <view class="">
  46. <text class="text-bold text-xl">{{putaway+soldOut}}</text>
  47. <view>用户发布</view>
  48. </view> -->
  49. </view>
  50. <view class="padding">
  51. <view class="text-bold text-lg margin-bottom-sm">订单数据</view>
  52. <view class="orderbox">
  53. <view class="">
  54. <text class="text-bold text-xl">{{ orderMoney ? orderMoney : '0' }}</text>
  55. <view class="margin-top-xs">订单收入</view>
  56. </view>
  57. <view class="">
  58. <text class="text-bold text-xl">{{ sumCountOrder ? sumCountOrder : '0' }}</text>
  59. <view class="margin-top-xs">总订单数</view>
  60. </view>
  61. <view class="">
  62. <text class="text-bold text-xl">{{ refundMoney ? refundMoney : '0' }}</text>
  63. <view class="margin-top-xs">退款金额</view>
  64. </view>
  65. <view class="">
  66. <text class="text-bold text-xl">{{ countByUserId ? countByUserId : '0' }}</text>
  67. <view class="margin-top-xs">访客人数</view>
  68. </view>
  69. </view>
  70. </view>
  71. <view style="padding: 0upx 30upx">
  72. <view class="text-bold text-lg margin-bottom-sm flex justify-between">
  73. <view>订单管理</view>
  74. <view @click="goDetail(1)">
  75. <text style="color: #666666; font-size: 26upx; margin-right: 10upx">查看全部</text>
  76. <image src="../../static/images/my/right.png" style="width: 12upx; height: 20upx"></image>
  77. </view>
  78. </view>
  79. <view class="orderbox">
  80. <!-- <view class="">
  81. <text class="text-bold text-xl">{{i1}}</text>
  82. <view class="margin-top-xs">待付款</view>
  83. </view> -->
  84. <view class="">
  85. <text class="text-bold text-xl">{{ i5 }}</text>
  86. <view class="margin-top-xs">待接单</view>
  87. </view>
  88. <view class="">
  89. <text class="text-bold text-xl">{{ i2 }}</text>
  90. <view class="margin-top-xs">制作中</view>
  91. </view>
  92. <view class="">
  93. <text class="text-bold text-xl">{{ i3 }}</text>
  94. <view class="margin-top-xs">待取餐</view>
  95. </view>
  96. <view class="">
  97. <text class="text-bold text-xl">{{ i4 }}</text>
  98. <view class="margin-top-xs">已完成</view>
  99. </view>
  100. </view>
  101. </view>
  102. <view class="padding">
  103. <view class="text-bold text-lg margin-bottom-sm flex justify-between">
  104. <view>我的商品</view>
  105. <view @click="goDetail(2)">
  106. <text style="color: #666666; font-size: 26upx; margin-right: 10upx">查看全部</text>
  107. <image src="../../static/images/my/right.png" style="width: 12upx; height: 20upx"></image>
  108. </view>
  109. </view>
  110. <view class="orderbox">
  111. <view class="">
  112. <text class="text-bold text-xl">{{ putawayCount }}</text>
  113. <view class="margin-top-sm">上架中</view>
  114. </view>
  115. <view class="">
  116. <text class="text-bold text-xl">{{ soldoutCount }}</text>
  117. <view class="margin-top-sm">已下架</view>
  118. </view>
  119. <view @click="bindFb()">
  120. <image src="../../static/images/index/add.png" style="width: 46upx; height: 46upx"></image>
  121. <view class="margin-top-xs">添加商品</view>
  122. </view>
  123. </view>
  124. </view>
  125. <u-popup v-model="Authorization" mode="center" close-icon="close-circle" close-icon-pos="top-right" close-icon-color="#8f9298" close-icon-size="50">
  126. <view class="contentview">
  127. <view class="title">隐私保护指引</view>
  128. <view class="des" @click="openPrivacyContract">
  129. 在使用当前小程序服务之前,请仔细阅读
  130. <text style="color: #ff7f00">{{ privacyContractName }}</text>
  131. 。如你同意{{ privacyContractName }},请点击“同意”开始使用。
  132. </view>
  133. <view class="btns">
  134. <button class="item reject" @click="exitMiniProgram">拒绝</button>
  135. <button id="agree-btn" class="item agree" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
  136. </view>
  137. </view>
  138. </u-popup>
  139. <!-- 开始时间 -->
  140. <u-picker v-model="startshow" mode="time" :params="paramsStart" @confirm="startData"></u-picker>
  141. <!-- 结束时间 -->
  142. <u-picker v-model="endshow" mode="time" :params="paramsEnd" @confirm="endData"></u-picker>
  143. </view>
  144. </template>
  145. <script>
  146. import { encrypt, decrypt, urlSafeBase64Decode, urlSafeBase64Encode } from '@/utils/cryptojs.js'
  147. export default {
  148. data() {
  149. return {
  150. Authorization: false,
  151. privacyContractName: '',
  152. avatar: '../../static/logo.png',
  153. isLogin: true,
  154. userName: '匿名',
  155. startshow: false,
  156. endshow: false,
  157. paramsStart: {
  158. year: true,
  159. month: true,
  160. day: true,
  161. hour: false,
  162. minute: false,
  163. second: false
  164. },
  165. paramsEnd: {
  166. year: true,
  167. month: true,
  168. day: true,
  169. hour: false,
  170. minute: false,
  171. second: false
  172. },
  173. startTime: '',
  174. endTime: '',
  175. allMoney: 0, //总收益
  176. allCount: 0, //总销量
  177. countTakingByUserId: 0, //用户评价数
  178. orderMoney: 0, //订单收入
  179. sumCountOrder: 0, //总订单数
  180. refundMoney: 0, //退款金额
  181. countByUserId: 0, //访客人数
  182. i1: 0, //待付款
  183. i2: 0, //制作中
  184. i3: 0, //待取餐
  185. i4: 0, //已完成
  186. i5: 0, //商家待接单
  187. putawayCount: 0, //上架中
  188. soldoutCount: 0, //下架中
  189. page: 1,
  190. limit: 10,
  191. longitude: '',
  192. latitude: '',
  193. userId: '',
  194. shop: '',
  195. arr: [],
  196. errCount: 0,
  197. messageConfiguration: '',
  198. timer: null
  199. }
  200. },
  201. onLoad() {
  202. this.userId = uni.getStorageSync('userId')
  203. if (this.userId) {
  204. this.getFb()
  205. }
  206. this.$Request.getT('/app/common/type/354').then((res) => {
  207. //订单取消通知
  208. if (res.code == 0) {
  209. if (res.data && res.data.value) {
  210. this.arr.push(res.data.value)
  211. }
  212. }
  213. })
  214. this.$Request.getT('/app/common/type/353').then((res) => {
  215. //订单取消通知
  216. if (res.code == 0) {
  217. if (res.data && res.data.value) {
  218. this.arr.push(res.data.value)
  219. }
  220. }
  221. })
  222. this.$Request.getT('/app/common/type/352').then((res) => {
  223. //新订单通知
  224. if (res.code == 0) {
  225. if (res.data && res.data.value) {
  226. this.arr.push(res.data.value)
  227. }
  228. }
  229. })
  230. // #ifdef MP-WEIXIN
  231. try {
  232. let that = this
  233. wx.getPrivacySetting({
  234. success: (res) => {
  235. console.log('是否需要授权:', res.needAuthorization, '隐私协议的名称为:', res.privacyContractName)
  236. if (res.needAuthorization) {
  237. that.privacyContractName = res.privacyContractName
  238. // this.$refs.popusAuthorization.open();
  239. that.Authorization = true
  240. }
  241. },
  242. fail: () => {},
  243. complete: () => {}
  244. })
  245. } catch (e) {
  246. //TODO handle the exception
  247. }
  248. // #endif
  249. },
  250. onShow() {
  251. this.userId = uni.getStorageSync('userId')
  252. if (this.userId) {
  253. this.isLogin = false
  254. this.getUserInfo()
  255. this.getFb()
  256. // this.getTodayOrder()
  257. this.getcity()
  258. this.getShopInfo()
  259. // #ifdef MP-WEIXIN
  260. //订阅
  261. if (!uni.getStorageSync('sendindexMsg')) {
  262. this.openMsg()
  263. }
  264. // #endif
  265. this.getSetData()
  266. } else {
  267. this.isLogin = true
  268. // this.userName = '匿名'
  269. this.avatar = '../../static/logo.png'
  270. this.allMoney = 0 //总收益
  271. this.putawayCount = 0 //上架中
  272. this.soldoutCount = 0 //下架中
  273. this.allCount = 0 //总销量
  274. this.countTakingByUserId = 0 //用户评价
  275. this.orderMoney = 0 //订单收入
  276. this.sumCountOrder = 0 //总订单数
  277. this.refundMoney = 0 //退款金额
  278. this.countByUserId = 0 //访客人数
  279. this.i1 = 0 //待付款
  280. this.i3 = 0 //待取餐
  281. this.i2 = 0 //制作中
  282. this.i4 = 0 //已完成
  283. this.i5 = 0 //商家待接单
  284. }
  285. },
  286. onHide() {
  287. if (this.timer) {
  288. clearInterval(this.timer)
  289. }
  290. },
  291. methods: {
  292. getSetData() {
  293. // 获取订阅消息配置
  294. let data = {
  295. shopId: uni.getStorageSync('shopId')
  296. }
  297. this.$Request.getT('/app/goods/selectGoodShop', data).then((res) => {
  298. // console.log(res, '888')
  299. if (res.code == 0) {
  300. this.messageConfiguration = res.data.messageConfiguration
  301. if (this.messageConfiguration == 0) {
  302. this.timer = setInterval(() => {
  303. // 订单消息提醒
  304. let data = {
  305. shopIds: this.$queue.getData('shopId')
  306. }
  307. this.$Request.post('/admin/ordermessage/selectReadFlagCount', data).then((res) => {
  308. // console.log(res, '999')
  309. if (res.code === 0) {
  310. if (res.data > 0) {
  311. if (this.errCount != res.data) {
  312. this.errCount = res.data
  313. this.aplayAudio()
  314. uni.showModal({
  315. title: '消息',
  316. content: '有' + res.data + '条订单,请前往订单中心处理。',
  317. success: (ret) => {
  318. if (ret.confirm) {
  319. uni.switchTab({
  320. url: '/pages/order/index'
  321. })
  322. } else {
  323. console.log('else', ret)
  324. this.defineCallBack()
  325. }
  326. }
  327. })
  328. // this.chatNum = data.data
  329. }
  330. } else {
  331. this.errCount = 0
  332. }
  333. }
  334. })
  335. }, 10000)
  336. }
  337. }
  338. })
  339. },
  340. // 打开隐私协议页面
  341. openPrivacyContract() {
  342. let that = this
  343. wx.openPrivacyContract({
  344. fail: () => {
  345. that.$queue.showToast('遇到错误无法打开!')
  346. }
  347. })
  348. },
  349. // 拒绝隐私协议
  350. exitMiniProgram() {
  351. // 直接退出小程序
  352. wx.exitMiniProgram()
  353. },
  354. // 同意隐私协议
  355. handleAgreePrivacyAuthorization() {
  356. this.Authorization = false
  357. },
  358. openMsg() {
  359. var that = this
  360. wx.getSetting({
  361. withSubscriptions: true, //是否获取用户订阅消息的订阅状态,默认false不返回
  362. success(ret) {
  363. if (ret.subscriptionsSetting.itemSettings) {
  364. uni.setStorageSync('sendindexMsg', true)
  365. uni.openSetting({
  366. // 打开设置页
  367. success(rea) {
  368. console.log(rea.authSetting)
  369. }
  370. })
  371. } else {
  372. // 用户没有点击“总是保持以上,不再询问”则每次都会调起订阅消息
  373. uni.setStorageSync('sendindexMsg', false)
  374. uni.showModal({
  375. title: '提示',
  376. content: '为了更好的体验,请绑定消息推送',
  377. confirmText: '确定',
  378. cancelText: '取消',
  379. success: function (res) {
  380. if (res.confirm) {
  381. uni.requestSubscribeMessage({
  382. tmplIds: that.arr,
  383. success(re) {
  384. // console.log(re,'**********')
  385. var datas = JSON.stringify(re)
  386. if (datas.indexOf('accept') != -1) {
  387. console.log(re)
  388. }
  389. },
  390. fail: (res) => {
  391. console.log(res)
  392. }
  393. })
  394. that.showModal = false
  395. } else if (res.cancel) {
  396. that.showModal = true
  397. }
  398. }
  399. })
  400. }
  401. }
  402. })
  403. },
  404. //切换店铺状态
  405. changePutaWayFlag() {
  406. if (this.shop.putawayFlag == 0) {
  407. uni.showModal({
  408. title: '提示',
  409. content: '确定要打烊了吗?',
  410. showCancel: true,
  411. cancelText: '取消',
  412. confirmText: '确定',
  413. success: (res) => {
  414. if (res.confirm) {
  415. this.shop.putawayFlag = 1
  416. this.updateShopInfo()
  417. }
  418. },
  419. fail: () => {},
  420. complete: () => {}
  421. })
  422. } else {
  423. this.shop.putawayFlag = 0
  424. this.updateShopInfo()
  425. }
  426. },
  427. updateShopInfo() {
  428. this.$Request.postJsonA('/app/shop/updateShopMessage', this.shop).then((res) => {
  429. if (res.code == 0) {
  430. this.getShopInfo()
  431. } else {
  432. // this.shop.putawayFlag = 1
  433. uni.showModal({
  434. title: '提示',
  435. content: res.msg,
  436. success: function (res) {
  437. if (res.confirm) {
  438. } else if (res.cancel) {
  439. }
  440. }
  441. })
  442. this.getShopInfo()
  443. }
  444. })
  445. },
  446. getShopInfo() {
  447. if (this.$queue.getData('shopId')) {
  448. let data = {
  449. shopId: this.$queue.getData('shopId')
  450. }
  451. this.$Request.getA('/app/shop/selectShopMessage', data).then((res) => {
  452. if (res.code == 0) {
  453. uni.hideLoading()
  454. this.shop = res.data
  455. }
  456. })
  457. }
  458. },
  459. aplayAudio() {
  460. // const audio = document.getElementById('audio')
  461. // audio.play()
  462. // console.log('语音提示')
  463. const innerAudioContext = uni.createInnerAudioContext()
  464. innerAudioContext.autoplay = true
  465. // innerAudioContext.src ='../../static/mpc/order.mp3';
  466. innerAudioContext.src = 'https://pw.xianmxkj.com/file/uploadPath/2022/01/19/0753211f78d718d44ee6372e33eae9ee.mp3'
  467. innerAudioContext.onPlay(() => {
  468. console.log('开始播放')
  469. })
  470. innerAudioContext.onError((res) => {
  471. console.log(res.errMsg)
  472. console.log(res.errCode)
  473. })
  474. },
  475. defineCallBack() {
  476. let that = this
  477. let data = {
  478. shopIds: that.$queue.getData('shopId')
  479. }
  480. that.$Request.post('/admin/ordermessage/allcheckOrderMessage', data).then((res) => {
  481. if (res.code === 0) {
  482. that.errCount = 0
  483. }
  484. })
  485. },
  486. getcity() {
  487. let that = this
  488. uni.getLocation({
  489. type: 'wgs84',
  490. success: function (res) {
  491. // console.log('当前位置的经度:' + res.longitude);
  492. // console.log('当前位置的纬度:' + res.latitude);
  493. that.latitude = res.latitude
  494. that.longitude = res.longitude
  495. }
  496. })
  497. },
  498. //获取用户发布
  499. getFb() {
  500. let data = {
  501. startTime: this.startTime,
  502. endTime: this.endTime,
  503. shopId: this.$queue.getData('shopId')
  504. }
  505. this.$Request.getA('/app/shop/shopHomePage', data).then((res) => {
  506. if (res.code == 0) {
  507. this.allMoney = res.data.allMoney //总收益
  508. this.putawayCount = res.data.putawayCount //上架中
  509. this.soldoutCount = res.data.soldoutCount //下架中
  510. this.allCount = res.data.allCount //总销量
  511. this.countTakingByUserId = res.data.countTakingByUserId //用户评价
  512. this.orderMoney = res.data.orderMoney //订单收入
  513. this.sumCountOrder = res.data.sumCountOrder //总订单数
  514. this.refundMoney = res.data.refundMoney //退款金额
  515. this.countByUserId = res.data.countByUserId //访客人数
  516. this.i1 = res.data.i1 //待付款
  517. this.i3 = res.data.i3 //待取餐
  518. this.i2 = res.data.i2 //制作中
  519. this.i4 = res.data.i4 //已完成
  520. this.i5 = res.data.i5 //商家待接单
  521. }
  522. })
  523. },
  524. goDetail(index) {
  525. // #ifdef MP-WEIXIN
  526. if (uni.getStorageSync('sendindexMsg')) {
  527. uni.requestSubscribeMessage({
  528. tmplIds: this.arr,
  529. success(re) {
  530. // console.log(re,'**********')
  531. var datas = JSON.stringify(re)
  532. if (datas.indexOf('accept') != -1) {
  533. console.log(re)
  534. }
  535. },
  536. fail: (res) => {
  537. console.log(res)
  538. }
  539. })
  540. }
  541. // #endif
  542. if (index == 1) {
  543. uni.switchTab({
  544. url: '/pages/order/index'
  545. })
  546. } else if (index == 2) {
  547. uni.navigateTo({
  548. url: '/my/store/addgood'
  549. })
  550. }
  551. },
  552. bindFb() {
  553. let userId = uni.getStorageSync('userId')
  554. if (userId) {
  555. uni.navigateTo({
  556. url: '/my/publish/goods'
  557. })
  558. } else {
  559. uni.showModal({
  560. title: '提示',
  561. content: '您还未登录,请先登录',
  562. success: function (res) {
  563. if (res.confirm) {
  564. // console.log('用户点击确定');
  565. uni.navigateTo({
  566. url: '/pages/my/loginphone'
  567. })
  568. } else if (res.cancel) {
  569. // console.log('用户点击取消');
  570. }
  571. }
  572. })
  573. }
  574. },
  575. //时间弹框开关
  576. bindData(index) {
  577. if (index == 1) {
  578. this.startshow = true
  579. } else if (index == 2) {
  580. this.endshow = true
  581. }
  582. },
  583. //开始时间
  584. startData(e) {
  585. this.startTime = e.year + '-' + e.month + '-' + e.day
  586. },
  587. // 结束时间
  588. endData(e) {
  589. this.endTime = e.year + '-' + e.month + '-' + e.day
  590. this.getFb()
  591. },
  592. goNav(e, name) {
  593. if (this.userId) {
  594. // #ifdef MP-WEIXIN
  595. if (uni.getStorageSync('sendindexMsg')) {
  596. uni.requestSubscribeMessage({
  597. tmplIds: this.arr,
  598. success(re) {
  599. // console.log(re,'**********')
  600. var datas = JSON.stringify(re)
  601. if (datas.indexOf('accept') != -1) {
  602. console.log(re)
  603. }
  604. },
  605. fail: (res) => {
  606. console.log(res)
  607. }
  608. })
  609. }
  610. // #endif
  611. uni.navigateTo({
  612. url: e
  613. })
  614. } else {
  615. uni.showModal({
  616. title: '提示',
  617. content: '您还未登录,请先登录',
  618. success: function (res) {
  619. if (res.confirm) {
  620. console.log('用户点击确定')
  621. uni.navigateTo({
  622. url: '/pages/my/loginphone'
  623. })
  624. } else if (res.cancel) {
  625. console.log('用户点击取消')
  626. }
  627. }
  628. })
  629. }
  630. },
  631. getUserInfo() {
  632. console.log(',,,')
  633. this.$Request.getA('/sys/user/info').then((res) => {
  634. console.log(res, 'kk')
  635. if (res.code == 0) {
  636. // this.userName = res.user.userEntity.userName
  637. this.userName = res.user.shopList[0].shopName
  638. // this.avatar = res.user.userEntity.avatar ? res.user.userEntity.avatar : '../../static/logo.png'
  639. this.avatar = res.user.shopList[0].shopCover ? res.user.shopList[0].shopCover : '../../static/logo.png'
  640. this.$queue.setData('userId', res.user.userId)
  641. this.$queue.setData('shopId', res.user.shopList[0].shopId)
  642. this.$queue.setData('shopTypeId', res.user.shopList[0].shopTypeId)
  643. this.$queue.setData('mobile', res.user.mobile)
  644. if (res.user.userEntity) {
  645. this.$queue.setData('shopUserName', res.user.userEntity.userName)
  646. }
  647. }
  648. })
  649. },
  650. goLogin(e) {
  651. uni.navigateTo({
  652. url: e
  653. })
  654. }
  655. }
  656. }
  657. </script>
  658. <style lang="scss">
  659. page {
  660. background-color: #ffffff;
  661. }
  662. .bg {
  663. background-color: #ffffff;
  664. }
  665. .box {
  666. width: 690upx;
  667. margin: 0 auto;
  668. height: 120rpx;
  669. background: rgba(255, 141, 26, 0.6);
  670. border-radius: 16upx 16upx 0px 0px;
  671. color: #333333;
  672. padding: 0upx 30upx;
  673. margin-top: 20upx;
  674. }
  675. .orderbox {
  676. width: 690upx;
  677. margin: 0 auto;
  678. height: 153upx;
  679. background: #fafafa;
  680. border-radius: 16upx;
  681. display: flex;
  682. align-items: center;
  683. justify-content: space-between;
  684. text-align: center;
  685. padding: 0upx 30upx;
  686. }
  687. .privacy {
  688. position: fixed;
  689. top: 0;
  690. right: 0;
  691. bottom: 0;
  692. left: 0;
  693. background: rgba(0, 0, 0, 0.5);
  694. z-index: 9999999;
  695. display: flex;
  696. align-items: center;
  697. justify-content: center;
  698. }
  699. .contentview {
  700. width: 632rpx;
  701. padding: 48rpx;
  702. box-sizing: border-box;
  703. background: #fff;
  704. border-radius: 16rpx;
  705. }
  706. .contentview .title {
  707. text-align: center;
  708. color: #333;
  709. font-weight: bold;
  710. font-size: 32rpx;
  711. }
  712. .contentview .des {
  713. font-size: 26rpx;
  714. color: #666;
  715. margin-top: 40rpx;
  716. text-align: justify;
  717. line-height: 1.6;
  718. }
  719. .contentview .des .link {
  720. color: #07c160;
  721. text-decoration: underline;
  722. }
  723. button::after {
  724. border: none;
  725. }
  726. .btns {
  727. margin-top: 48rpx;
  728. display: flex;
  729. }
  730. .btns .item {
  731. justify-content: space-between;
  732. width: 244rpx;
  733. height: 80rpx;
  734. display: flex;
  735. align-items: center;
  736. justify-content: center;
  737. border-radius: 16rpx;
  738. box-sizing: border-box;
  739. border: none;
  740. }
  741. .btns .reject {
  742. background: #f4f4f5;
  743. color: #909399;
  744. }
  745. .btns .agree {
  746. background: #07c160;
  747. color: #fff;
  748. }
  749. .status {
  750. display: flex;
  751. justify-content: space-evenly;
  752. align-items: center;
  753. margin-left: auto;
  754. width: 215rpx;
  755. height: 93rpx;
  756. border: 2rpx solid #0061ff;
  757. border-radius: 10rpx;
  758. }
  759. </style>