orderDetail.vue 26 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090
  1. <template>
  2. <view class="container" :style="{paddingBottom: ((orderData.orderStatus >= 2 && orderData.orderStatus <= 4) || (orderData.orderStatus == 5 && orderData.evaluateReplyStatus == 1)) ? '' :'10px'}">
  3. <view class="order-type-info">
  4. <view class="order-type-title">{{orderType.title}}</view>
  5. <view class="order-type-text">{{orderType.text}}</view>
  6. </view>
  7. <view class="address-info-box">
  8. <view class="address-icon">
  9. <text class="iconfont icondizhi"></text>
  10. </view>
  11. <view class="address-content">
  12. <text class="address-info">
  13. <text class="address-name">{{orderData.recName}}</text>
  14. <text class="address-phone">{{orderData.recMobile}}</text>
  15. </text>
  16. <view class="address-detail">{{orderData.address}}</view>
  17. </view>
  18. </view>
  19. <view class="goods-info-box">
  20. <view class="shop-info">
  21. <text class="iconfont iconwode"></text>
  22. <text class="shop-name">{{orderData.nickname}}</text>
  23. </view>
  24. <view class="goods-list">
  25. <view class="goods-row" v-for="(item, index) in orderData.merchantInfoResVO.products" :key="index">
  26. <image class="goods-img" :src="item.imgUrl" mode="aspectFill"></image>
  27. <view class="goods-info">
  28. <view class="goods-name">{{item.productName}}</view>
  29. <view class="goods-type">
  30. 类型:{{item.productType == 1 ? '普通商品' : (item.productType == 2 ? '拍卖商品' : (item.productType == 3 ? '自助采摘' : '共享种植'))}}
  31. </view>
  32. <view class="plant-area" v-if="item.productType == 4">面积:{{item.areaSize}}㎡</view>
  33. <view class="goods-price-number">
  34. <text class="goods-unit">¥</text>
  35. <text class="goods-price">{{item.bizPrice}}</text>
  36. <text class="goods-number">x{{item.buyNum}}</text>
  37. <text class="plant-text" v-if="item.productType == 4">有效期:{{item.term}}天</text>
  38. </view>
  39. <view class="goods-editnumber">
  40. <CnumberBox v-if="item.productType == 3 && isEdit" isDisabled @getNum="getStockNum($event,index)" minNum="1"></CnumberBox>
  41. </view>
  42. </view>
  43. </view>
  44. </view>
  45. <view class="order-info">
  46. <u-cell-group :border="false">
  47. <u-cell-item title="商品金额" :value="'¥' + orderData.orderSum" :arrow="false" :border-bottom="false"></u-cell-item>
  48. <u-cell-item title="积分抵扣" :value="'-¥' + orderData.integralAmount" :arrow="false" :border-bottom="false" v-if="goodType == 1 || goodType == 3"></u-cell-item>
  49. <u-cell-item title="优惠券" :value="'-¥' + orderData.couponDiscountAmount" :arrow="false" :border-bottom="false" v-if="goodType == 1 || goodType == 3"></u-cell-item>
  50. <u-cell-item title="备注" :value="orderData.notes" :arrow="false" :border-bottom="false"></u-cell-item>
  51. </u-cell-group>
  52. </view>
  53. <view class="pay-info">
  54. <text class="pay-text">实付款</text>
  55. <text class="pay-price">¥{{orderData.paySum}}</text>
  56. </view>
  57. </view>
  58. <view class="order-info-box" @click="goToMessage()">
  59. <view class="info-title-box">
  60. <view class="info-title">留言板</view>
  61. <text class="iconfont iconfangxiang"></text>
  62. </view>
  63. <view class="info-content-box">
  64. <view class="message-row" v-for="(item, index1) in orderData.leas" :key="index1">
  65. <image class="message-head" :src="item.headImg" mode="aspectFill"></image>
  66. <view class="message-info-box">
  67. <view class="message-name">{{item.name}}</view>
  68. <view class="message-date">{{item.leaMsgTime}}</view>
  69. <view class="message-text">{{item.leaMsgContent}}</view>
  70. <!-- <view class="message-img-box" v-for="(site, index2) in item.orderLeaImgResVOs" :key="index2">
  71. <image class="message-img" :src="site.imgUrl" mode="aspectFill"></image>
  72. </view -->
  73. </view>
  74. </view>
  75. </view>
  76. </view>
  77. <view class="order-info-box">
  78. <view class="info-title-box">
  79. <view class="info-title">订单信息</view>
  80. </view>
  81. <view class="info-content-box">
  82. <view class="order-info-row">订单编号:{{orderData.orderCode}}</view>
  83. <view class="order-info-row">创建时间:{{orderData.addOrderTime}}</view>
  84. <view class="order-info-row" v-if="orderData.orderStatus > 1 && orderData.orderStatus != 6">支付时间:{{orderData.payTime}}</view>
  85. <view class="order-info-row" v-if="orderData.orderStatus > 2 && orderData.orderStatus != 6">发货时间:{{orderData.sendTime}}</view>
  86. <view class="order-info-row" v-if="orderData.orderStatus > 3 && orderData.orderStatus != 6">收货时间:{{orderData.confirmTime}}</view>
  87. <view class="order-info-row" v-if="orderData.orderStatus == 6">取消时间:{{orderData.cancelTime}}</view>
  88. </view>
  89. </view>
  90. <view class="order-info-box" v-if="orderData.evaluateResVO && orderData.evaluateResVO.evaluateContent">
  91. <view class="info-title-box">
  92. <view class="info-title">评价信息</view>
  93. </view>
  94. <view class="info-content-box">
  95. <view class="assess-row">
  96. <image class="assess-head" mode="aspectFill" :src="orderData.merchantInfoResVO.headImg"></image>
  97. <view class="assess-info">
  98. <view class="assess-name">{{orderData.nickname}}</view>
  99. <view class="assess-date">{{orderData.evaluateResVO.evaluateTime ? orderData.evaluateResVO.evaluateTime : ''}}</view>
  100. <view class="assess-sore-box">
  101. <u-rate v-model="orderData.evaluateResVO.score" active-color="#FFAE21" disabled></u-rate>
  102. </view>
  103. <view class="assess-text">{{orderData.evaluateResVO.evaluateContent ? orderData.evaluateResVO.evaluateContent : '暂无评价'}}</view>
  104. <view class="assess-img-box">
  105. <image class="img-col" mode="aspectFill" :src="item.imgUrl" v-for="(item,i) in orderData.evaluateResVO.evaluateImgs" :key="i" @tap="_previewImage(item.imgUrl,i)"></image>
  106. </view>
  107. </view>
  108. <view class="shop-reply-box" v-if="orderData.evaluateResVO.replyContent">
  109. <view class="shop-head">
  110. <view class="iconfont icondianpu"></view>
  111. <view class="shop-name">我的回复</view>
  112. </view>
  113. <view class="shop-reply">{{orderData.evaluateResVO.replyContent}}</view>
  114. </view>
  115. </view>
  116. </view>
  117. </view>
  118. <uni-goods-nav :fill="true" :options="[]" @click="" @buttonClick="orderHandle" class="order-handle" :buttonGroup="buttonGroup"
  119. v-if="(orderData.orderStatus >= 1 && orderData.orderStatus <= 4) || (orderData.orderStatus == 5 && orderData.evaluateReplyStatus == 1)" />
  120. <u-top-tips ref="uTips"></u-top-tips>
  121. <view class="uni-popup-dialog" :hidden="show_qx">
  122. <view class="uni-dialog-title">
  123. <text class="uni-dialog-title-text">提示</text>
  124. </view>
  125. <view class="uni-dialog-content">
  126. <text class="uni-dialog-content-text">请在设置中开启摄像头权限和麦克风权限</text>
  127. </view>
  128. <view class="uni-dialog-button-group">
  129. <button class="uni-dialog-button uni-border-left" open-type="openSetting" @click="closeSetting">
  130. 设置权限
  131. </button>
  132. </view>
  133. </view>
  134. <view class="qx_bg" :hidden="show_qx">
  135. </view>
  136. </view>
  137. </template>
  138. <script>
  139. const NET = require('@/utils/request')
  140. const API = require('@/config/api')
  141. import CnumberBox from '@/components/CnumberBox.vue'
  142. export default {
  143. components: {
  144. CnumberBox
  145. },
  146. data() {
  147. return {
  148. show_qx:true,
  149. orderType: {
  150. title: '',
  151. text: '',
  152. },
  153. orderData: {
  154. orderId: '',
  155. orderStatus: 1,
  156. addOrderTime: '',
  157. recName: '',
  158. recMobile: '',
  159. address: '',
  160. merchantInfoResVO: {
  161. supplierName: '',
  162. products: [],
  163. },
  164. orderSum: 0,
  165. integralAmount: 0,
  166. couponDiscountAmount: 0,
  167. notes: 'xxxxx',
  168. paySum: 0,
  169. leas: [],
  170. orderCode: '',
  171. payTime: '',
  172. sendTime: '',
  173. confirmTime: '',
  174. cancelTime: '',
  175. tenantCode: '',
  176. evaluateReplyStatus: 1,
  177. },
  178. goodType: 1, // 1是普通商品类型;2是包含自助采摘+普通商品的类型;3是拍卖、共享种植
  179. buttonGroup: [
  180. {
  181. text: '',
  182. backgroundColor: '#52A63A',
  183. color: '#fff'
  184. }
  185. ],
  186. noPick: true, // 没有自助采摘的商品
  187. isEdit: false,
  188. orderId: '',
  189. orderStatus: 1,
  190. isClick: false
  191. }
  192. },
  193. onLoad(options) {
  194. this.userData = uni.getStorageSync("userData")
  195. this.orderId = options.orderId
  196. this.orderStatus = options.orderStatus
  197. this.getDetail()
  198. },
  199. onShow() {},
  200. methods: {
  201. closeSetting:function(){
  202. this.show_qx=true;
  203. },
  204. // 获取订单详情
  205. getDetail() {
  206. NET.request(API.getOrderDetail, {
  207. flag: 2,
  208. orderId: this.orderId,
  209. orderStatus: this.orderStatus,
  210. }, 'GET').then(res => {
  211. this.orderData = res.data
  212. console.log('订单数据',this.orderData)
  213. if (this.orderData.addOrderTime) {
  214. let tempTime = new Date(this.orderData.addOrderTime.replace(/\-/g, '/')).getTime()
  215. let addTempTime = new Date(tempTime + 1000 * 60 * 60 * 24)
  216. let addYear = addTempTime.getFullYear()
  217. let addMonth = addTempTime.getMonth() + 1
  218. let addDay = addTempTime.getDate()
  219. let addHours = addTempTime.getHours()
  220. let addMin = addTempTime.getMinutes()
  221. let addSeconds = addTempTime.getSeconds()
  222. this.orderData.overTime = addYear + '年' + addMonth + '月' + addDay + '日' + addHours + ':' + addMin + ':' +
  223. addSeconds
  224. }
  225. if (this.orderData.merchantInfoResVO.products.length && this.orderData.merchantInfoResVO.products[0].productType !=
  226. 2 && this.orderData.merchantInfoResVO.products[0].productType != 4) {
  227. // this.goodType = 1
  228. if (this.orderData.merchantInfoResVO.products.some(v => {return v.productType == 3})) {
  229. this.goodType = 3
  230. } else {
  231. this.goodType = 1
  232. }
  233. } else {
  234. this.goodType = 2
  235. }
  236. if (this.orderData.orderStatus == 1 && this.goodType == 3) {
  237. this.buttonGroup = [{
  238. text: '修改订单',
  239. backgroundColor: '#75BD60',
  240. color: '#fff'
  241. }]
  242. } else if (this.orderData.orderStatus == 2) {
  243. if (this.orderData.merchantInfoResVO.products.length) {
  244. if (this.orderData.merchantInfoResVO.products.some(v => {return v.productType == 3})) {
  245. this.noPick = false
  246. this.buttonGroup = [{
  247. text: '发货',
  248. backgroundColor: '#75BD60',
  249. color: '#fff'
  250. }, {
  251. text: '自助采摘',
  252. backgroundColor: '#52A63A',
  253. color: '#fff'
  254. }]
  255. } else {
  256. this.buttonGroup = [{
  257. text: '发货',
  258. backgroundColor: '#75BD60',
  259. color: '#fff'
  260. }]
  261. }
  262. }
  263. if (this.orderData.auctionStatus == 1) {
  264. this.buttonGroup = []
  265. }
  266. } else if (this.orderData.orderStatus == 3 || this.orderData.orderStatus == 4) {
  267. this.buttonGroup[0].text = '追踪物流'
  268. } else if (this.orderData.evaluateReplyStatus == 1) {
  269. this.buttonGroup[0].text = '回复'
  270. } else {
  271. this.buttonGroup = []
  272. }
  273. this.getOrderType()
  274. }).catch(error => {
  275. this.$refs.uTips.show({
  276. title: error.data.msg,
  277. type: 'warning',
  278. })
  279. })
  280. },
  281. // 获取子组件的库存数量/
  282. getStockNum(num,index) {
  283. this.isClick = true
  284. debugger
  285. this.orderData.merchantInfoResVO.products[index].buyNum = num
  286. this.getEditSum()
  287. },
  288. // 计算实付额和订单总额
  289. getEditSum() {
  290. let price = this.orderData.merchantInfoResVO.products.reduce((total, site) => {
  291. return total + site.bizPrice * site.buyNum
  292. }, 0)
  293. this.orderData.orderSum = price.toFixed(2)
  294. this.orderData.paySum = (price - this.orderData.discountAmount).toFixed(2)
  295. },
  296. // 获取订单类型
  297. getOrderType() {
  298. switch (this.orderData.orderStatus) {
  299. case 1:
  300. this.orderType = {
  301. title: '等待买家付款',
  302. text: '订单将于' + this.orderData.overTime + '关闭',
  303. }
  304. break;
  305. case 2:
  306. this.orderType = {
  307. title: '待发货',
  308. text: '买家已付款,请尽快发货',
  309. }
  310. break;
  311. case 3:
  312. this.orderType = {
  313. title: '已发货',
  314. text: '商品正在运输中',
  315. }
  316. break;
  317. case 4:
  318. this.orderType = {
  319. title: '已送达',
  320. text: '商品已送达',
  321. }
  322. break;
  323. case 5:
  324. this.orderType = {
  325. title: '交易已完成',
  326. text: '',
  327. }
  328. break;
  329. default:
  330. this.orderType = {
  331. title: '交易已取消',
  332. text: '',
  333. }
  334. }
  335. },
  336. // 操作
  337. orderHandle(e) {
  338. if (this.orderData.orderStatus == 1) {
  339. this.buttonGroup = [{
  340. text: this.isEdit ? '修改订单' : '提交订单',
  341. backgroundColor: this.isEdit ? '#52A63A' : '#75BD60',
  342. color: '#fff'
  343. }]
  344. if (this.isEdit) {
  345. if (!this.isClick) {
  346. this.orderData.merchantInfoResVO.products.forEach(v => {
  347. if (v.productType == 3) {
  348. v.buyNum = 1
  349. }
  350. })
  351. this.getEditSum()
  352. }
  353. NET.request(API.editOrder, {
  354. orderId: this.orderData.orderId,
  355. orderSum: this.orderData.orderSum,
  356. paySum: this.orderData.paySum,
  357. products: this.orderData.merchantInfoResVO.products
  358. }, 'POST').then(res => {
  359. this.$refs.uTips.show({
  360. title: '修改成功',
  361. type: 'success',
  362. })
  363. this.getDetail()
  364. }).catch(error => {
  365. this.$refs.uTips.show({
  366. title: error.data.msg,
  367. type: 'warning',
  368. })
  369. })
  370. }
  371. this.isEdit = !this.isEdit
  372. } else if (this.orderData.orderStatus == 2) {
  373. if (e.index == 0) {
  374. // 发货
  375. uni.navigateTo({
  376. url: '/pagesMain/bindOrder?orderId=' + this.orderData.orderId
  377. });
  378. } else if (e.index == 1) {
  379. // 去自助采摘
  380. var that=this;
  381. if(uni.getStorageSync("firstTimeLive")==""){
  382. uni.setStorage({
  383. key: 'firstTimeLive',
  384. data: 1
  385. })
  386. uni.navigateTo({
  387. url: '/pagesMedia/pickVideo?tenantCode=' + that.orderData.tenantCode + '&orderId=' + that.orderData.orderId
  388. });
  389. }else{
  390. uni.navigateTo({
  391. url: '/pagesMedia/pickVideo?tenantCode=' + that.orderData.tenantCode + '&orderId=' + that.orderData.orderId
  392. });
  393. }
  394. }
  395. } else if (this.orderData.orderStatus == 3 || this.orderData.orderStatus == 4) {
  396. // 追踪物流
  397. uni.navigateTo({
  398. url: '/pagesMain/logisticsDeatil?logisticCode=' + this.orderData.logisticsNum
  399. });
  400. } else {
  401. // 回复
  402. uni.navigateTo({
  403. url: '/pagesMain/evaluateForm?orderId=' + this.orderData.orderId +'&mid='+this.orderData.mid
  404. });
  405. }
  406. },
  407. // 跳转留言列表
  408. goToMessage() {
  409. uni.navigateTo({
  410. url: '/pagesMain/messageList?orderId=' + this.orderData.orderId + '&tenantCode=' + this.orderData.tenantCode
  411. });
  412. },
  413. // 图片预览
  414. _previewImage(image,index) {
  415. var imgArr = [];
  416. imgArr.push(image);
  417. //预览图片
  418. uni.previewImage({
  419. urls: imgArr,
  420. current: imgArr[index]
  421. });
  422. }
  423. }
  424. }
  425. </script>
  426. <style>
  427. page {
  428. background-color: #f7f7f7;
  429. }
  430. </style>
  431. <style lang="less" scoped>
  432. page {
  433. width: 100%;
  434. height: 100%;
  435. }
  436. .container {
  437. width: 100%;
  438. height: 100%;
  439. float: left;
  440. background-color: #f7f7f7;
  441. box-sizing: border-box;
  442. overflow-y: auto;
  443. position: absolute;
  444. .order-type-info {
  445. width: 100%;
  446. height: 115px;
  447. float: left;
  448. box-sizing: border-box;
  449. padding: 22px 100px 0 15px;
  450. background: #52A63A;
  451. border-radius: 0px 0px 20px 20px;
  452. background-size: 62px;
  453. background-position: calc(100% - 48px) 12px;
  454. background-repeat: no-repeat;
  455. background-image: url(@/static/images/orderDetail.png);
  456. .order-type-title {
  457. width: 100%;
  458. float: left;
  459. height: 20px;
  460. line-height: 20px;
  461. font-size: 15px;
  462. font-family: PingFang SC;
  463. color: #FFFFFF;
  464. margin-bottom: 4px;
  465. }
  466. .order-type-text {
  467. width: 100%;
  468. float: left;
  469. height: 20px;
  470. line-height: 20px;
  471. font-size: 12px;
  472. font-family: PingFang SC;
  473. color: #FFFFFF;
  474. }
  475. }
  476. .address-info-box {
  477. width: calc(100% - 30px);
  478. float: left;
  479. box-sizing: border-box;
  480. padding: 16px 18px 16px 16px;
  481. margin: -34px 15px 10px 15px;
  482. background: #FFFFFF;
  483. border-radius: 10px;
  484. .address-icon {
  485. width: 36px;
  486. height: 40px;
  487. float: left;
  488. align-items: center;
  489. display: flex;
  490. .iconfont {
  491. color: #52A63A;
  492. font-size: 36px;
  493. }
  494. }
  495. .address-content {
  496. width: calc(100% - 56px);
  497. height: 40px;
  498. float: left;
  499. margin: 0 8px 0 12px;
  500. .address-info {
  501. height: 20px;
  502. font-family: PingFang SC;
  503. line-height: 20px;
  504. overflow: hidden;
  505. text-overflow: ellipsis;
  506. white-space: nowrap;
  507. .address-name {
  508. font-size: 16px;
  509. color: #333333;
  510. margin-right: 14px;
  511. }
  512. .address-phone {
  513. font-size: 12px;
  514. color: #666666;
  515. }
  516. }
  517. .address-detail {
  518. height: 20px;
  519. font-size: 16px;
  520. font-family: PingFang SC;
  521. color: #333333;
  522. line-height: 20px;
  523. overflow: hidden;
  524. text-overflow: ellipsis;
  525. white-space: nowrap;
  526. }
  527. }
  528. }
  529. .goods-info-box {
  530. width: calc(100% - 30px);
  531. float: left;
  532. margin: 0 15px 10px 15px;
  533. background: #FFFFFF;
  534. border-radius: 10px;
  535. .shop-info {
  536. width: 100%;
  537. height: 48px;
  538. float: left;
  539. box-sizing: border-box;
  540. padding: 13px 15px 12px 15px;
  541. border-bottom: 1px solid #EEEEEE;
  542. line-height: 22px;
  543. .iconwode {
  544. font-size: 22px;
  545. color: #333333;
  546. }
  547. .shop-name {
  548. font-size: 15px;
  549. font-family: PingFang SC;
  550. color: #333333;
  551. margin: 0 8px 0 10px;
  552. }
  553. .iconshangjia {
  554. font-size: 12px;
  555. color: #999999;
  556. }
  557. }
  558. .goods-list {
  559. width: 100%;
  560. float: left;
  561. box-sizing: border-box;
  562. padding: 10px 15px 0 15px;
  563. .goods-row {
  564. width: 100%;
  565. height: 110px;
  566. float: left;
  567. display: flex;
  568. margin-bottom: 10px;
  569. .goods-img {
  570. width: 90px;
  571. height: 90px;
  572. border-radius: 5px;
  573. object-fit: cover;
  574. }
  575. .goods-info {
  576. width: calc(100% - 106px);
  577. height: 90px;
  578. margin-left: 16px;
  579. .goods-name {
  580. width: 100%;
  581. height: 36px;
  582. float: left;
  583. font-size: 14px;
  584. font-family: PingFang SC;
  585. color: #333333;
  586. line-height: 18px;
  587. overflow: hidden;
  588. text-overflow: ellipsis;
  589. display: -webkit-box;
  590. -webkit-line-clamp: 2;
  591. -webkit-box-orient: vertical;
  592. word-wrap: break-word;
  593. }
  594. .goods-type {
  595. height: 20px;
  596. float: left;
  597. background: #F0F0F0;
  598. border-radius: 4px;
  599. padding: 0 8px;
  600. margin: 6px 0;
  601. font-size: 10px;
  602. font-family: PingFang SC;
  603. color: #666666;
  604. line-height: 20px;
  605. }
  606. .plant-area {
  607. height: 20px;
  608. float: right;
  609. margin: 6px 0;
  610. font-size: 12px;
  611. font-family: PingFang SC;
  612. color: #333333;
  613. }
  614. .goods-price-number {
  615. width: 60%;
  616. height: 20px;
  617. float: left;
  618. line-height: 40px;
  619. font-family: PingFang SC;
  620. color: #333333;
  621. .goods-unit {
  622. font-size: 12px;
  623. }
  624. .goods-price {
  625. font-size: 15px;
  626. margin-right: 6px;
  627. }
  628. .goods-number {
  629. font-size: 12px;
  630. }
  631. }
  632. .goods-editnumber {
  633. float: left;
  634. width: 35%
  635. }
  636. .plant-text {
  637. float: right;
  638. font-size: 12px;
  639. font-family: PingFang SC;
  640. color: #333333;
  641. }
  642. }
  643. }
  644. }
  645. .order-info {
  646. width: 100%;
  647. float: left;
  648. /deep/.u-cell {
  649. padding: 6px 16px;
  650. }
  651. }
  652. .pay-info {
  653. width: 100%;
  654. height: 46px;
  655. float: left;
  656. box-sizing: border-box;
  657. border-top: 1px solid #EEEEEE;
  658. padding-right: 15px;
  659. line-height: 44px;
  660. font-family: PingFang SC;
  661. font-size: 14px;
  662. text-align: right;
  663. white-space: nowrap;
  664. .pay-text {
  665. float: left;
  666. color: #333333;
  667. margin-left: 15px;
  668. }
  669. .pay-price {
  670. color: #52A63A;
  671. }
  672. }
  673. }
  674. .order-info-box {
  675. width: calc(100% - 30px);
  676. float: left;
  677. margin: 0 15px 10px 15px;
  678. background: #FFFFFF;
  679. border-radius: 10px;
  680. .info-title-box {
  681. width: 100%;
  682. height: 48px;
  683. float: left;
  684. box-sizing: border-box;
  685. padding: 15px 15px 14px 15px;
  686. border-bottom: 1px solid #EEEEEE;
  687. line-height: 18px;
  688. white-space: nowrap;
  689. .info-title {
  690. height: 18px;
  691. float: left;
  692. font-size: 15px;
  693. font-family: PingFang SC;
  694. color: #333333;
  695. margin-right: 8px;
  696. padding-left: 10px;
  697. border-left: 2px solid #74BD60;
  698. }
  699. .iconfangxiang {
  700. float: right;
  701. font-size: 12px;
  702. color: #999999;
  703. }
  704. }
  705. .info-content-box {
  706. width: 100%;
  707. float: left;
  708. padding: 15px 0;
  709. .message-row {
  710. width: 100%;
  711. float: left;
  712. box-sizing: border-box;
  713. padding: 0 15px;
  714. margin-bottom: 15px;
  715. .message-head {
  716. width: 50px;
  717. height: 50px;
  718. object-fit: cover;
  719. float: left;
  720. border-radius: 50%;
  721. overflow: hidden;
  722. }
  723. .message-info-box {
  724. width: calc(100% - 75px);
  725. float: right;
  726. .message-name {
  727. width: 50%;
  728. height: 30px;
  729. float: left;
  730. font-size: 15px;
  731. font-family: PingFang SC;
  732. color: #333333;
  733. line-height: 30px;
  734. overflow: hidden;
  735. text-overflow: ellipsis;
  736. white-space: nowrap;
  737. }
  738. .message-date {
  739. width: 50%;
  740. height: 30px;
  741. float: left;
  742. font-size: 12px;
  743. font-family: PingFang SC;
  744. color: #666666;
  745. text-align: right;
  746. line-height: 30px;
  747. overflow: hidden;
  748. text-overflow: ellipsis;
  749. white-space: nowrap;
  750. }
  751. .message-text {
  752. width: 100%;
  753. height: 20px;
  754. float: left;
  755. font-size: 12px;
  756. font-family: PingFang SC;
  757. color: #666666;
  758. line-height: 20px;
  759. overflow: hidden;
  760. text-overflow: ellipsis;
  761. white-space: nowrap;
  762. }
  763. .message-img-box {
  764. width: 100%;
  765. float: left;
  766. .message-img {
  767. width: 76px;
  768. height: 76px;
  769. object-fit: cover;
  770. float: left;
  771. margin: 0 10px 10px 0;
  772. }
  773. }
  774. }
  775. }
  776. .message-row:last-child {
  777. margin-bottom: 0;
  778. }
  779. .order-info-row {
  780. width: 100%;
  781. float: left;
  782. box-sizing: border-box;
  783. padding: 0 15px;
  784. font-size: 12px;
  785. font-family: PingFang SC;
  786. color: #333333;
  787. line-height: 26px;
  788. word-break:break-all;
  789. }
  790. }
  791. .assess-row {
  792. width: calc(100% - 30px);
  793. margin: 0 15px;
  794. float: left;
  795. // border-top: 1px solid #F6F6F6;
  796. padding: 12px 0;
  797. .assess-head {
  798. width: 50px;
  799. height: 50px;
  800. float: left;
  801. object-fit: cover;
  802. border-radius: 50%;
  803. }
  804. .assess-info {
  805. width: calc(100% - 62px);
  806. margin-left: 12px;
  807. float: left;
  808. .assess-name {
  809. height: 18px;
  810. float: left;
  811. line-height: 18px;
  812. font-size: 15px;
  813. font-family: PingFang SC;
  814. font-weight: bold;
  815. color: #343434;
  816. }
  817. .assess-date {
  818. height: 18px;
  819. float: right;
  820. line-height: 18px;
  821. font-size: 12px;
  822. font-family: PingFang SC;
  823. font-weight: bold;
  824. color: #666666;
  825. }
  826. .assess-sore-box {
  827. width: 100%;
  828. height: 16px;
  829. float: left;
  830. margin: 6px 0;
  831. }
  832. .assess-text {
  833. width: 100%;
  834. float: left;
  835. font-size: 12px;
  836. font-family: PingFang SC;
  837. font-weight: bold;
  838. color: #666666;
  839. line-height: 16px;
  840. margin: 8px 0 10px 0;
  841. overflow: hidden;
  842. text-overflow: ellipsis;
  843. display: -webkit-box;
  844. -webkit-line-clamp: 2;
  845. -webkit-box-orient: vertical;
  846. word-wrap: break-word;
  847. }
  848. .assess-img-box {
  849. width: 100%;
  850. float: left;
  851. display: flex;
  852. .img-col {
  853. height: 60px;
  854. width: 60px;
  855. object-fit: cover;
  856. margin: 0 10px 10px 0;
  857. }
  858. }
  859. }
  860. .shop-reply-box {
  861. width: 100%;
  862. float: left;
  863. background: #F5F5F5;
  864. border-radius: 5px;
  865. margin-top: 10px;
  866. .shop-head {
  867. width: 100%;
  868. height: 36px;
  869. float: left;
  870. box-sizing: border-box;
  871. padding: 10px 12px;
  872. .icondianpu {
  873. width: 16px;
  874. height: 16px;
  875. float: left;
  876. color: #52A63A;
  877. font-size: 20px;
  878. margin-right: 8px;
  879. }
  880. .shop-name {
  881. height: 16px;
  882. float: left;
  883. font-size: 15px;
  884. font-family: PingFang SC;
  885. color: #52A63A;
  886. line-height: 16px;
  887. }
  888. }
  889. .shop-reply {
  890. width: 100%;
  891. float: left;
  892. box-sizing: border-box;
  893. padding: 0 12px 12px 12px;
  894. font-size: 12px;
  895. font-family: PingFang SC;
  896. color: #666666;
  897. line-height: 16px;
  898. }
  899. }
  900. }
  901. }
  902. .order-handle {
  903. width: 100%;
  904. height: 50px;
  905. float: left;
  906. border-top: 1px solid #cccccc;
  907. }
  908. }
  909. .uni-popup-dialog {
  910. width: 80vw;
  911. border-radius: 15px;
  912. background-color: #fff;
  913. position: fixed;
  914. margin-left: 10vw;
  915. top: 34vh;
  916. z-index: 11;
  917. }
  918. .uni-dialog-title {
  919. /* #ifndef APP-NVUE */
  920. display: flex;
  921. /* #endif */
  922. flex-direction: row;
  923. justify-content: center;
  924. padding-top: 15px;
  925. padding-bottom: 5px;
  926. }
  927. .uni-dialog-title-text {
  928. font-size: 16px;
  929. font-weight: 500;
  930. }
  931. .uni-dialog-content {
  932. /* #ifndef APP-NVUE */
  933. display: flex;
  934. /* #endif */
  935. flex-direction: row;
  936. justify-content: center;
  937. align-items: center;
  938. padding: 5px 15px 15px 15px;
  939. text-align: center;
  940. }
  941. .uni-dialog-content-text {
  942. font-size: 14px;
  943. color: #6e6e6e;
  944. }
  945. .uni-dialog-button-group {
  946. /* #ifndef APP-NVUE */
  947. display: flex;
  948. /* #endif */
  949. flex-direction: row;
  950. border-top-color: #f5f5f5;
  951. border-top-style: solid;
  952. border-top-width: 1px;
  953. }
  954. .uni-dialog-button {
  955. /* #ifndef APP-NVUE */
  956. display: flex;
  957. /* #endif */
  958. background: rgba(0, 0, 0, 0);
  959. border: none;
  960. flex: 1;
  961. flex-direction: row;
  962. justify-content: center;
  963. align-items: center;
  964. height: 45px;
  965. }
  966. .uni-border-left {
  967. border-left-color: #f0f0f0;
  968. border-left-style: solid;
  969. border-left-width: 0px;
  970. }
  971. .uni-dialog-button-text {
  972. font-size: 14px;
  973. }
  974. .uni-button-color {
  975. color: #007aff;
  976. }
  977. .uni-dialog-input {
  978. flex: 1;
  979. font-size: 14px;
  980. }
  981. .uni-popup__success {
  982. color: #4cd964;
  983. }
  984. .uni-popup__warn {
  985. color: #f0ad4e;
  986. }
  987. .uni-popup__error {
  988. color: #dd524d;
  989. }
  990. .uni-popup__info {
  991. color: #909399;
  992. }
  993. .qx_bg{
  994. width: 100vw;
  995. height: 100vh;
  996. background: rgba(0, 0, 0, 0.25);
  997. position: fixed;
  998. top: 0px;
  999. left: 0px;
  1000. z-index: 10;
  1001. }
  1002. /deep/.uni-tab__cart-button-right{
  1003. border-right: 1px solid #ffffff;
  1004. }
  1005. /deep/.uni-tab__cart-button-right:last-child{
  1006. border-right: none;
  1007. }
  1008. </style>