applyRefund.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981
  1. <template>
  2. <view class="container">
  3. <!-- 商品信息 -->
  4. <view class="product-block">
  5. <view class="refund-title">退款商品</view>
  6. <view class="product-detail">
  7. <view class="profuct-info">
  8. <image mode="aspectFit" class="product-img" :src="orderInfo.picUrl"></image>
  9. <view class="info-right">
  10. <view class="info-main">
  11. <view class="product-name">{{ orderInfo.goodsName }}</view>
  12. <view class="price">
  13. ¥
  14. <text style="font-size: 24rpx">{{ orderInfo.actualPrice }}</text>
  15. </view>
  16. </view>
  17. <view class="other-sku">规格:{{ orderInfo.skuName }}</view>
  18. <view class="other-info">服务{{ orderInfo.serviceTimes }}次</view>
  19. </view>
  20. </view>
  21. </view>
  22. <view class="real-price">
  23. 实际付款:
  24. <text>¥{{ orderInfo.actualPrice }}</text>
  25. </view>
  26. </view>
  27. <view class="card">
  28. <view class="refund-title">退款信息</view>
  29. <view class="tt-cell">
  30. <view>退款金额</view>
  31. <view class="refund-price">¥{{ aftersale.amount }}</view>
  32. </view>
  33. <view class="tt-cell" @tap="showReason">
  34. <view style="width: 150rpx">
  35. <text class="need">*</text>
  36. 退款原因
  37. </view>
  38. <view class="cell-right default" v-if="reasonActive.id == ''">请选择</view>
  39. <view class="cell-right" v-else>{{ reasonActive.name }}</view>
  40. <view class="arrow-wrapper">
  41. <image src="https://mall.zhaijieshi.cc/file/wx-dy/arrow-grey.png" mode="aspectFit"
  42. class="arrow-img"></image>
  43. </view>
  44. </view>
  45. <!-- </picker> -->
  46. <view class="tt-cell">
  47. <view style="width: 150rpx">
  48. <text class="need">*</text>
  49. 补充描述
  50. </view>
  51. <input :value="aftersale.reason" placeholder="补充描述,有助于更好的处理售后问题。"
  52. placeholder-style="font-size:24rpx;color:#ACADB1;" @input="onReasonChange" />
  53. </view>
  54. <view class="upload-text">上传凭证</view>
  55. <view class="comment-tips">最多上传3张</view>
  56. <!-- 图片上传 -->
  57. <view class="upload-wrapper">
  58. <view class="img-item" v-for="(item, index) in imgList" :key="index">
  59. <image mode="aspectFill" :src="item" class="user-upload" @tap="previewImg" :data-img="item"></image>
  60. <image class="close-img" mode="aspectFill" src="/static/images/icon-close.png" @tap="delImg"
  61. :data-index="index"></image>
  62. </view>
  63. <view class="upload" @tap="uploadImg">
  64. <image mode="aspectFill" src="/static/images/icon-add.png"></image>
  65. <view>上传照片</view>
  66. </view>
  67. </view>
  68. </view>
  69. <view class="submit-btn" @tap="submit">申请退款</view>
  70. <!-- 备注退款原因 -->
  71. <view class="appoint-overlay-wrapper remark-overlay" v-if="reasonPopupShow" @tap="onReasonPopupClose">
  72. <view class="remark-select" @tap.stop.prevent="onReasonClick">
  73. <view class="title">选择退款原因</view>
  74. <view class="remark-list">
  75. <view class="remark-item" :data-reason="item" @tap.stop.prevent="reasonItemSelect"
  76. v-for="(item, index) in reasonList" :key="index">
  77. <view class="remark-value">{{ item.name }}</view>
  78. <image mode="aspectFit" src="https://mall.zhaijieshi.cc/file/wx-huawang/dian2.png"
  79. class="radio-img" v-if="reasonActive.id == item.id"></image>
  80. <image mode="aspectFit" src="https://mall.zhaijieshi.cc/file/wx-huawang/dian1.png"
  81. class="radio-img" v-else></image>
  82. </view>
  83. </view>
  84. <view class="remark-conf-btn" @tap.stop.prevent="reasonItemConfirm">确定</view>
  85. </view>
  86. </view>
  87. <van-overlay :show="showOverLay" @click="onClickHide" z-index=999 root-portal='true'>
  88. <view class="wrapper">
  89. <view class="title-icon">
  90. <image src="https://mall.zhaijieshi.cc/file/wx-huawang/qq.png" mode=""
  91. style="height:178rpx;width: 236rpx;"></image>
  92. </view>
  93. <text class="tips-content">
  94. {{showErrorMsg}}
  95. </text>
  96. <text style="color: #999;display: block;margin-left: 200rpx;font-size: 22rpx;">如需帮助,请联系在线客服</text>
  97. <view class="btn-service" @tap="toService"
  98. style="margin-left: 105rpx; border-radius: 55rpx; color: #d77958;border: #d77958 1rpx solid;width: 438rpx ;height: 82rpx; line-height: 82rpx;text-align: center;font-size: 29rpx;">
  99. 在线客服
  100. </view>
  101. </view>
  102. </van-overlay>
  103. </view>
  104. </template>
  105. <script>
  106. var util = require('../../../utils/util.js');
  107. var api = require('../../../config/api.js');
  108. export default {
  109. data() {
  110. return {
  111. index: '',
  112. orderId: 0,
  113. orderInfo: {
  114. picUrl: '',
  115. goodsName: '',
  116. actualPrice: '',
  117. serviceTimes: '',
  118. skuName: ''
  119. },
  120. orderGoods: [],
  121. aftersale: {
  122. pictures: [],
  123. typeDesc: '',
  124. reason: '',
  125. amount: '',
  126. comment: '',
  127. type: ''
  128. },
  129. reasonActive: {
  130. id: '',
  131. name: ''
  132. },
  133. reasonPopupShow: false,
  134. reasonList: [],
  135. columns: ['地址约错', '约不到想要的服务时间', '活动/优惠未享受', '服务质量问题'],
  136. contentLength: 0,
  137. fileList: [],
  138. imgList: [],
  139. showPicker: false,
  140. showOverLay: false,
  141. showErrorMsg: ''
  142. };
  143. },
  144. onLoad: function(options) {
  145. // 页面初始化 options为页面跳转所带来的参数
  146. this.setData({
  147. orderId: options.id
  148. });
  149. this.getOrderDetail();
  150. this.getRefudnType();
  151. this.getAmount();
  152. },
  153. onReady: function() {
  154. // 页面渲染完成
  155. },
  156. onShow: function() {
  157. // 页面显示
  158. },
  159. onHide: function() {
  160. // 页面隐藏
  161. },
  162. onUnload: function() {
  163. // 页面关闭
  164. },
  165. methods: {
  166. onClickHide() {
  167. this.setData({
  168. showOverLay: false
  169. })
  170. },
  171. getRefudnType() {
  172. let that = this;
  173. util.request(api.AftersaleRefundType).then(function(res) {
  174. if (res.errno === 0) {
  175. that.setData({
  176. reasonList: res.data,
  177. columns: res.data.map((obj) => obj.name)
  178. });
  179. console.info(that.refundTypes);
  180. }
  181. });
  182. },
  183. getAmount: function() {
  184. util.request(api.AftersaleAmount, {
  185. orderId: this.orderId
  186. }).then((res) => {
  187. if (res.errno === 0) {
  188. console.log(res.data);
  189. this.setData({
  190. 'aftersale.amount': res.data.refundAmount
  191. });
  192. }
  193. });
  194. },
  195. getOrderDetail: function() {
  196. uni.showLoading({
  197. title: '加载中'
  198. });
  199. setTimeout(function() {
  200. uni.hideLoading();
  201. }, 2000);
  202. let that = this;
  203. util.request(api.OrderDetail, {
  204. orderId: that.orderId
  205. }).then(function(res) {
  206. if (res.errno === 0) {
  207. console.log("商品信息", res.data);
  208. that.setData({
  209. orderInfo: res.data
  210. });
  211. }
  212. uni.hideLoading();
  213. });
  214. },
  215. deleteImage(event) {
  216. const {
  217. fileList = []
  218. } = this;
  219. fileList.splice(event.detail.index, 1);
  220. this.setData({
  221. fileList: fileList
  222. });
  223. let urls = [];
  224. fileList.forEach(function(e) {
  225. urls.push(e.url);
  226. });
  227. this.setData({
  228. 'aftersale.pictures': urls
  229. });
  230. },
  231. afterRead(event) {
  232. const {
  233. file
  234. } = event.detail;
  235. let that = this;
  236. const uploadTask = uni.uploadFile({
  237. url: api.StorageUpload,
  238. filePath: file.path,
  239. name: 'file',
  240. success: function(res) {
  241. var _res = JSON.parse(res.data);
  242. if (_res.errno === 0) {
  243. var url = _res.data.url;
  244. that.aftersale.pictures.push(url);
  245. const {
  246. fileList = []
  247. } = that;
  248. fileList.push({
  249. ...file,
  250. url: url
  251. });
  252. that.setData({
  253. fileList: fileList
  254. });
  255. }
  256. },
  257. fail: function(e) {
  258. uni.showModal({
  259. title: '错误',
  260. content: '上传失败',
  261. showCancel: false
  262. });
  263. }
  264. });
  265. },
  266. previewImage: function(e) {
  267. uni.previewImage({
  268. current: e.currentTarget.id,
  269. // 当前显示图片的http链接
  270. urls: this.files // 需要预览的图片http链接列表
  271. });
  272. },
  273. contentInput: function(e) {
  274. this.setData({
  275. contentLength: e.detail.cursor,
  276. 'aftersale.comment': e.detail.value
  277. });
  278. },
  279. onReasonChange: function(e) {
  280. console.log(e);
  281. this.setData({
  282. 'aftersale.reason': e.detail.value
  283. });
  284. },
  285. onCommentChange: function(e) {
  286. console.log(e);
  287. this.setData({
  288. 'aftersale.comment': e.detail.value
  289. });
  290. },
  291. showTypePicker: function() {
  292. this.setData({
  293. showPicker: true
  294. });
  295. },
  296. onCancel: function() {
  297. this.setData({
  298. showPicker: false
  299. });
  300. },
  301. bindPickerChange: function(event) {
  302. console.log(event);
  303. this.setData({
  304. 'aftersale.type': event.detail.value,
  305. 'aftersale.typeDesc': this.columns[event.detail.value]
  306. });
  307. },
  308. submit: function() {
  309. let that = this;
  310. if (that.reasonActive.id == '') {
  311. util.showErrorToast('请选择退款原因');
  312. return false;
  313. }
  314. if (that.aftersale.reason == '') {
  315. util.showErrorToast('请填写补充描述');
  316. return false;
  317. }
  318. // uni.showLoading({
  319. // title: '提交中...',
  320. // mask: true,
  321. // success: function() {}
  322. // });
  323. let params = {
  324. orderId: this.orderId,
  325. pictures: this.imgList,
  326. type: this.reasonActive.id,
  327. typeDesc: this.reasonActive.name,
  328. reason: this.aftersale.reason,
  329. amount: this.aftersale.amount
  330. };
  331. util.request(api.AftersaleSubmit, params, 'POST').then(function(res) {
  332. // uni.hideLoading();
  333. if (res.errno === 0) {
  334. uni.showToast({
  335. title: '退款申请成功,请留意原支付账户!',
  336. icon: 'none'
  337. });
  338. setTimeout(function() {
  339. uni.hideToast()
  340. uni.navigateBack({
  341. delta: 1
  342. });
  343. }, 1000);
  344. } else {
  345. that.setData({
  346. showOverLay: true,
  347. showErrorMsg: res.errmsg
  348. })
  349. }
  350. });
  351. },
  352. previewImg(e) {
  353. let img = e.currentTarget.dataset.img;
  354. let imgs = this.imgList;
  355. uni.previewImage({
  356. current: img,
  357. // 当前显示图片的http链接
  358. urls: imgs // 需要预览的图片http链接列表
  359. });
  360. },
  361. delImg(e) {
  362. let imgs = this.imgList;
  363. let index = e.currentTarget.dataset.index;
  364. imgs.splice(index, 1);
  365. this.setData({
  366. imgList: imgs
  367. });
  368. },
  369. uploadImg() {
  370. if (this.imgList.length >= 3) {
  371. uni.showToast({
  372. title: '最多上传3张图片',
  373. icon: 'none',
  374. duration: 2000
  375. });
  376. return false;
  377. }
  378. let that = this;
  379. let count = 3 - that.imgList.length;
  380. uni.chooseImage({
  381. count: count,
  382. sizeType: ['original', 'compressed'],
  383. sourceType: ['album', 'camera'],
  384. success: function(res) {
  385. console.log(res);
  386. let tempFilePaths = res.tempFilePaths;
  387. uni.showLoading({
  388. title: '上传中...'
  389. });
  390. for (let i = 0; i < tempFilePaths.length; i++) {
  391. let imgs = that.imgList;
  392. if (imgs.length >= 3) {
  393. that.setData({
  394. imgList: imgs
  395. });
  396. return false;
  397. } else {
  398. uni.uploadFile({
  399. url: api.StorageUpload,
  400. filePath: tempFilePaths[i],
  401. name: 'file',
  402. success(res) {
  403. console.log(res);
  404. let data = JSON.parse(res.data);
  405. if (data.errno == 0) {
  406. imgs.push(data.data.url);
  407. that.setData({
  408. imgList: imgs
  409. });
  410. } else {
  411. console.log('上传失败');
  412. }
  413. }
  414. });
  415. }
  416. }
  417. uni.hideLoading();
  418. }
  419. });
  420. },
  421. showReason() {
  422. this.setData({
  423. reasonPopupShow: true
  424. });
  425. },
  426. onReasonPopupClose() {
  427. this.setData({
  428. reasonPopupShow: false
  429. });
  430. },
  431. onReasonClick() {
  432. //阻止事件冒泡,不要删
  433. },
  434. reasonItemSelect(e) {
  435. let reason = e.currentTarget.dataset.reason;
  436. this.setData({
  437. reasonActive: reason
  438. });
  439. },
  440. reasonItemConfirm() {
  441. if (this.reasonActive.id === '') {
  442. util.showErrorToast('请选择退款原因');
  443. return false;
  444. }
  445. this.setData({
  446. reasonPopupShow: false
  447. });
  448. },
  449. toService() {
  450. uni.navigateTo({
  451. url: "/pages/im/im"
  452. })
  453. }
  454. }
  455. };
  456. </script>
  457. <style>
  458. page {
  459. /* height: 100%; */
  460. width: 100%;
  461. background: #f4f4f4;
  462. padding: 0 0 80rpx;
  463. }
  464. .container {
  465. padding: 0 30rpx;
  466. }
  467. .order-goods {
  468. margin-top: 30rpx;
  469. background: #fff;
  470. border-radius: 10rpx;
  471. width: 690rpx;
  472. padding: 30rpx 20rpx;
  473. }
  474. .order-goods .h {
  475. height: 30rpx;
  476. line-height: 30rpx;
  477. margin-bottom: 30rpx;
  478. font-size: 30rpx;
  479. color: #333;
  480. }
  481. .order-goods .h .label {
  482. float: left;
  483. font-size: 30rpx;
  484. color: #333;
  485. }
  486. .order-goods .h .status {
  487. float: right;
  488. font-size: 30rpx;
  489. color: #b4282d;
  490. }
  491. .order-goods .item {
  492. display: flex;
  493. align-items: center;
  494. height: 190rpx;
  495. }
  496. .order-goods .item:last-child {
  497. border-bottom: none;
  498. }
  499. .order-goods .item .img {
  500. height: 190rpx;
  501. width: 190rpx;
  502. background: #f4f4f4;
  503. margin-right: 20rpx;
  504. border-radius: 10rpx;
  505. }
  506. .order-goods .item .img image {
  507. height: 190rpx;
  508. border-radius: 10rpx;
  509. width: 190rpx;
  510. }
  511. .order-goods .item .info {
  512. flex: 1;
  513. height: 190rpx;
  514. }
  515. .order-goods .item .t {
  516. margin-top: 10rpx;
  517. /* height: 33rpx; */
  518. line-height: 34rpx;
  519. margin-bottom: 30rpx;
  520. display: flex;
  521. justify-content: space-between;
  522. }
  523. .order-goods .item .t .name {
  524. max-height: 68rpx;
  525. line-height: 34rpx;
  526. color: #333;
  527. font-size: 30rpx;
  528. width: 360rpx;
  529. margin-right: 40rpx;
  530. /* text-overflow: ellipsis;
  531. white-space: nowrap;*/
  532. overflow: hidden;
  533. }
  534. .order-goods .item .t .number {
  535. line-height: 36rpx;
  536. color: #666;
  537. font-size: 26rpx;
  538. }
  539. .order-goods .item .attr {
  540. height: 26rpx;
  541. line-height: 26rpx;
  542. color: #666;
  543. font-size: 26rpx;
  544. }
  545. .order-goods .item .price {
  546. height: 26rpx;
  547. line-height: 26rpx;
  548. color: #666;
  549. font-size: 26rpx;
  550. margin-top: 16rpx;
  551. }
  552. .module-title {
  553. height: 80rpx;
  554. padding: 0 8rpx;
  555. line-height: 80rpx;
  556. font-size: 30rpx;
  557. color: #333;
  558. border-bottom: 1rpx solid #efefef;
  559. }
  560. .tt-cell {
  561. display: flex;
  562. /* padding:0 4rpx 0 8rpx; */
  563. align-items: flex-end;
  564. justify-content: space-between;
  565. background: #fff;
  566. height: 78rpx;
  567. padding-bottom: 12rpx;
  568. /* border-bottom:2rpx solid #ebedf0; */
  569. }
  570. .tt-cell view {
  571. font-size: 26rpx;
  572. color: #191919;
  573. font-weight: bold;
  574. }
  575. .tt-cell view.cell-right {
  576. font-family: normal;
  577. flex: 1;
  578. border-bottom: 2rpx solid #e0e0e0;
  579. padding-bottom: 8rpx;
  580. }
  581. .arrow-wrapper {
  582. border-bottom: 2rpx solid #e0e0e0;
  583. height: 40rpx;
  584. }
  585. .arrow-img {
  586. width: 28rpx;
  587. height: 28rpx;
  588. }
  589. .tt-cell view.cell-right.default {
  590. color: #acadb1;
  591. font-size: 24rpx;
  592. font-weight: normal;
  593. }
  594. .tt-cell input {
  595. flex: 1;
  596. border-bottom: 2rpx solid #e0e0e0;
  597. }
  598. .need {
  599. color: red;
  600. }
  601. .tt-cell.comment-cell {
  602. border: none;
  603. }
  604. .tt-cell.comment-cell view {
  605. padding-left: 14rpx;
  606. }
  607. .comment-tips {
  608. /* padding-left:22rpx; */
  609. height: 50rpx;
  610. line-height: 30rpx;
  611. color: #777;
  612. font-size: 20rpx;
  613. background: #fff;
  614. }
  615. .submit-btn {
  616. text-align: center;
  617. color: #fff;
  618. margin: 120rpx 26rpx 60rpx;
  619. width: 650rpx;
  620. height: 90rpx;
  621. line-height: 90rpx;
  622. background: #d77958;
  623. border-radius: 90rpx;
  624. font-size: 34rpx;
  625. }
  626. .upload-text {
  627. height: 88rpx;
  628. line-height: 88rpx;
  629. /* padding-left:22rpx; */
  630. background: #fff;
  631. font-size: 26rpx;
  632. color: #191919;
  633. font-weight: bold;
  634. }
  635. .upload-wrapper {
  636. /* margin:18rpx -20rpx 56rpx 0; */
  637. display: flex;
  638. flex-wrap: wrap;
  639. background: #fff;
  640. padding: 0 24rpx 40rpx 0;
  641. }
  642. .upload {
  643. width: 160rpx;
  644. height: 160rpx;
  645. background: #fafafa;
  646. border-radius: 4rpx;
  647. border: 1rpx solid #d9d9d9;
  648. display: flex;
  649. align-items: center;
  650. flex-direction: column;
  651. justify-content: center;
  652. margin-right: 16rpx;
  653. box-sizing: border-box;
  654. }
  655. .upload image {
  656. width: 38rpx;
  657. height: 38rpx;
  658. margin-bottom: 22rpx;
  659. }
  660. .upload view {
  661. font-weight: 400;
  662. color: #c5c3c3;
  663. line-height: 48rpx;
  664. font-size: 26rpx;
  665. }
  666. .img-item {
  667. width: 160rpx;
  668. height: 160rpx;
  669. background: #fff;
  670. border-radius: 2rpx;
  671. border: 1rpx solid #d9d9d9;
  672. margin: 0 20rpx 24rpx 0;
  673. padding: 8rpx;
  674. position: relative;
  675. box-sizing: border-box;
  676. }
  677. .img-item .user-upload {
  678. width: 144rpx;
  679. height: 144rpx;
  680. }
  681. .img-item .close-img {
  682. width: 28rpx;
  683. height: 28rpx;
  684. position: absolute;
  685. top: 0;
  686. right: 0;
  687. }
  688. .refund-tips {
  689. color: #ee0a24;
  690. font-size: 22rpx;
  691. line-height: 40rpx;
  692. padding-left: 8rpx;
  693. margin: 4rpx 0 8rpx;
  694. }
  695. .card {
  696. background: #fff;
  697. border-radius: 24rpx;
  698. padding: 30rpx 24rpx;
  699. }
  700. .tt-cell input {
  701. flex: 1;
  702. font-size: 26rpx;
  703. color: #666;
  704. }
  705. /* 产品订单信息 */
  706. .product-block {
  707. background: #ffffff;
  708. border-radius: 24rpx;
  709. padding: 24rpx;
  710. margin: 28rpx 0 30rpx;
  711. }
  712. .product-block .title {
  713. height: 88rpx;
  714. line-height: 78rpx;
  715. }
  716. .profuct-info {
  717. height: 190rpx;
  718. display: flex;
  719. align-items: flex-start;
  720. }
  721. .product-img {
  722. width: 190rpx;
  723. height: 190rpx;
  724. border-radius: 10rpx;
  725. margin-right: 20rpx;
  726. }
  727. .info-right {
  728. /* padding-top: 10rpx; */
  729. flex: 1;
  730. }
  731. .info-main {
  732. display: flex;
  733. height: 40rpx;
  734. align-items: center;
  735. justify-content: space-between;
  736. margin-bottom: 25rpx;
  737. }
  738. .product-name {
  739. line-height: 40rpx;
  740. font-size: 28rpx;
  741. /* padding-left: 20rpx;
  742. text-indent: -16rpx; */
  743. overflow: hidden;
  744. text-overflow: ellipsis;
  745. white-space: nowrap;
  746. width: 328rpx;
  747. font-weight: bold;
  748. color: rgba(0, 0, 0, 0.9);
  749. }
  750. .info-main .price {
  751. color: rgba(0, 0, 0, 0.9);
  752. font-size: 18rpx;
  753. font-weight: bold;
  754. }
  755. .info-right .other-info {
  756. font-size: 22rpx;
  757. color: rgba(0, 0, 0, 0.9);
  758. line-height: 34rpx;
  759. font-weight: bold;
  760. }
  761. .refund-title {
  762. color: #191919;
  763. font-size: 30rpx;
  764. font-weight: bold;
  765. margin-bottom: 28rpx;
  766. height: 30rpx;
  767. line-height: 30rpx;
  768. }
  769. .real-price {
  770. display: flex;
  771. align-items: center;
  772. height: 36rpx;
  773. justify-content: flex-end;
  774. font-size: 26rpx;
  775. font-weight: bold;
  776. margin: 20rpx 0 12rpx;
  777. }
  778. .real-price text {
  779. color: #ff004e;
  780. font-size: 26rpx;
  781. }
  782. .tt-cell view.refund-price {
  783. color: #ff004e;
  784. }
  785. /* 选择备注 */
  786. .appoint-overlay-wrapper {
  787. position: fixed;
  788. top: 0;
  789. left: 0;
  790. width: 100%;
  791. height: 100%;
  792. background-color: rgba(0, 0, 0, 0.7);
  793. z-index: 999;
  794. }
  795. .appoint-overlay-wrapper.remark-overlay {
  796. display: flex;
  797. align-items: flex-end;
  798. justify-content: center;
  799. }
  800. .remark-select {
  801. width: 750rpx;
  802. padding: 0 24rpx 56rpx;
  803. background: #ffffff;
  804. border-radius: 24rpx 24rpx 0 0;
  805. }
  806. .remark-select .title {
  807. font-weight: 600;
  808. color: #191919;
  809. font-size: 30rpx;
  810. height: 90rpx;
  811. line-height: 90rpx;
  812. text-align: center;
  813. border-bottom: 2rpx solid #e0e0e0;
  814. }
  815. .remark-list {
  816. height: 340rpx;
  817. overflow-y: scroll;
  818. }
  819. .remark-item .remark-value {
  820. color: #191919;
  821. font-size: 26rpx;
  822. font-weight: bold;
  823. flex: 1;
  824. text-align: left;
  825. }
  826. .remark-list .remark-item {
  827. height: 84rpx;
  828. display: flex;
  829. border-bottom: 2rpx solid #e0e0e0;
  830. align-items: center;
  831. }
  832. .remark-item .radio-img {
  833. width: 26rpx;
  834. height: 26rpx;
  835. }
  836. .remark-conf-btn {
  837. width: 652rpx;
  838. height: 90rpx;
  839. line-height: 90rpx;
  840. border-radius: 90rpx;
  841. border: 4rpx solid #d77958;
  842. text-align: center;
  843. font-size: 36rpx;
  844. color: #d77958;
  845. margin: 0 auto;
  846. margin-top: 54rpx;
  847. }
  848. .other-sku {
  849. color: #999;
  850. font-size: 22rpx;
  851. margin-bottom: 25rpx;
  852. }
  853. .wrapper {
  854. width: 652rpx;
  855. height: 627rpx;
  856. background-color: #fff;
  857. position: absolute;
  858. top: 400rpx;
  859. left: 49rpx;
  860. border-radius: 16rpx;
  861. }
  862. .title-icon {
  863. padding: 30rpx 220rpx;
  864. height: 255rpx;
  865. background: #d77958;
  866. border-radius: 16rpx 16rpx 0 0;
  867. background: url('https://mall.zhaijieshi.cc/file/wx-huawang/bj3.png') no-repeat;
  868. background-size: cover;
  869. }
  870. .wrapper .tips-content {
  871. font-weight: bold;
  872. font-size: 33rpx;
  873. display: block;
  874. width: 574rpx;
  875. text-align: center;
  876. margin: 58rpx 0 30rpx 30rpx;
  877. }
  878. </style>