order.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925
  1. <template>
  2. <view class="back">
  3. <!-- 地址 -->
  4. <view class="address" @click="toadd">
  5. <view class="u-flex u-row-between">
  6. <view class="add" v-if="addinfo">{{addinfo.full_address}}</view>
  7. <view class="" v-else>请添加您的收货地址</view>
  8. <u-icon name="arrow-right" size='16'></u-icon>
  9. </view>
  10. <view class="info" v-if="addinfo">
  11. <text>{{addinfo.name}}</text>
  12. <text style="margin-left: 20rpx;">{{replacePhoneToStar(addinfo.mobile)}}</text>
  13. </view>
  14. </view>
  15. <!-- 商品 -->
  16. <view class="shop">
  17. <view class="">
  18. <image :src="goodinfo.merchant.image" style="width: 38rpx;height: 38rpx;" mode=""></image>
  19. <text class="name">{{goodinfo.merchant.merchant_name}}</text>
  20. </view>
  21. <view class="u-flex" style="margin-top: 32rpx;">
  22. <image :src="sku_info.image" style="width: 184rpx;height: 184rpx;" mode=""></image>
  23. <view class=" "
  24. style="margin-left: 20rpx;flex-direction: column;justify-content: space-between;height: 184rpx;display: flex;flex:1">
  25. <view class="">
  26. <text>{{goodinfo.name_cn}}</text>
  27. <view class="weight">{{sku_info.item}} </view>
  28. <!-- <view class="">{{Number(sku_info.weight)*value}}kg</view> -->
  29. </view>
  30. <view class="u-flex u-row-between">
  31. <view class="">
  32. <text class="money">¥</text>
  33. <text class="money"
  34. style="font-size: 34rpx;">{{goodinfo.is_discount==1? (Number(sku_info.price*1000)*Number(value*1000))/1000000:(Number(sku_info.discount_price*1000)*Number(value)*1000)/1000000}}</text>
  35. </view>
  36. <u-number-box v-model="value">
  37. <!-- <view class="bu"> -->
  38. <view slot="minus" class="">
  39. <u-icon name="minus" size="12"></u-icon>
  40. </view>
  41. <input slot="input" v-model="value" style="width: 40px;text-align: center;"
  42. class="input"></input>
  43. <view slot="plus" class="">
  44. <u-icon name="plus" size="12"></u-icon>
  45. </view>
  46. <!-- </view> -->
  47. </u-number-box>
  48. </view>
  49. </view>
  50. </view>
  51. </view>
  52. <!-- 物流 -->
  53. <view class="logistics u-flex u-row-between">
  54. <text style="font-weight: 600;">{{i18n.flow}}</text>
  55. <view class="u-flex" @click="show = true">
  56. <text class="change">{{containname1?type1+' | '+containname1 :i18n.selection}}</text>
  57. <u-icon name="arrow-right" size='16'></u-icon>
  58. </view>
  59. </view>
  60. <!-- 推荐 -->
  61. <view class="recommend">
  62. <view class="top">
  63. <image src="static/images/recommend.png" style="width: 124rpx;height: 30rpx;" mode=""></image>
  64. </view>
  65. <view class="bottom">
  66. <scroll-view scroll-x class="u-flex" style="column: gap 28rpx; display: flex;">
  67. <view class="u-flex" style="column-gap: 16rpx; ">
  68. <view class="" v-for="(item,idx) in swiptlist" :key="idx" @click="">
  69. <image :src="item.image" style="width: 156rpx;height: 156rpx;" mode="">
  70. </image>
  71. <view class="title" v-if="language =='zh-CN'">
  72. {{item.name_cn}}
  73. </view>
  74. <view class="title" v-if="language =='en-US'">
  75. {{item.name_en}}
  76. </view>
  77. <view class="title" v-if="language =='es-ES'">
  78. {{item.name_es}}
  79. </view>
  80. <view class="title" v-if="language =='it-IT'">
  81. {{item.name_ita}}
  82. </view>
  83. <view class="money" style="color: #F83224;font-size: 20rpx;">
  84. <text>¥</text>
  85. <text
  86. style="font-size: 28rpx;">{{item.is_discount==0?item.discount_price.slice(0,-3):item.price.slice(0,-3)}}</text>
  87. <text>{{item.is_discount==0?item.discount_price.slice(-3):item.price.slice(-3)}}</text>
  88. </view>
  89. </view>
  90. </view>
  91. </scroll-view>
  92. </view>
  93. </view>
  94. <!-- 商品相关 -->
  95. <view class="abount" style="margin-top: 20rpx;">
  96. <view class="u-flex u-row-between" style='margin-bottom:40rpx'>
  97. <view class="name">{{i18n.Commodityamount}}</view>
  98. <view class="money">
  99. ¥{{goodinfo.is_discount==1? (Number(sku_info.price*100)*Number(value*100))/10000:(Number(sku_info.discount_price*100)*Number(value*100))/10000}}
  100. </view>
  101. </view>
  102. <view class="u-flex u-row-between">
  103. <view class="name">{{i18n.Grosscommodityweight}}</view>
  104. <view class="money">{{Number(sku_info.weight)*value}}kg</view>
  105. </view>
  106. <view class="back u-flex" v-if="containname1">
  107. <image src="static/images/warning.png" style="width: 32rpx;height: 32rpx;" mode=""></image>
  108. <text
  109. style="margin-left: 12rpx;">{{i18n.buy}}{{max_weight}}kg{{i18n.price}}¥{{unit_fee}},{{i18n.morefavorable}}</text>
  110. </view>
  111. <view class="u-flex u-row-between" style='margin-bottom:40rpx;margin-top: 20rpx;'>
  112. <view class="name">{{i18n.Costperkilogram}}</view>
  113. <view class="money">{{containname1?unit_price:'需先选择货运方式'}}</view>
  114. </view>
  115. <view class="u-flex u-row-between">
  116. <view class="name">{{i18n.freight}}</view>
  117. <view class="money">{{containname1?sum:'需先选择货运方式'}}</view>
  118. </view>
  119. <view class="zong u-flex u-row-right">
  120. <view class="">
  121. <text class="small">{{i18n.subtotal}}</text>
  122. <text class="mon">¥</text>
  123. <text class="mon"
  124. style="font-size: 40rpx;">{{goodinfo.is_discount==1? (Number(sku_info.price*100)*Number(value*100))/10000:(Number(sku_info.discount_price*100)*Number(value*100))/10000}}</text>
  125. </view>
  126. </view>
  127. </view>
  128. <view class="" style="height: 166rpx;"></view>
  129. <view class="btn u-flex u-row-right">
  130. <view class="">
  131. <text class="kg">{{i18n.Atotalof}}{{Number(sku_info.weight) * value}}kg,</text>
  132. <text>{{i18n.total}}:</text>
  133. <text class="money" style="font-size: 28rpx;">¥</text>
  134. <text class="money" v-if="goodinfo.is_discount==1"
  135. style="font-weight: bold;">{{(Number(sum*10000+ Number(sku_info.price)*Number(value)*10000))/10000}}</text>
  136. <text class="money" v-if="goodinfo.is_discount==0"
  137. style="font-weight: bold;">{{(Number(sum*10000+ Number(sku_info.discount_price)*Number(value)*10000))/10000}}</text>
  138. </view>
  139. <view class="order" @click="topay">
  140. {{i18n.Submitorder}}
  141. </view>
  142. </view>
  143. <!-- 跨境物流 -->
  144. <u-popup :show="show" @close="close" mode="bottom" closeIconPos='top-right' round='28'>
  145. <view style="padding: 40rpx 28rpx;box-sizing:border-box;">
  146. <view class="u-flex u-row-between">
  147. <view class="" style="width: 28px;height: 28px;"></view>
  148. <view class="poptitle">
  149. {{i18n.flow}}
  150. </view>
  151. <u-icon name="close" @click="close" color="background: #333333;" size="28"></u-icon>
  152. </view>
  153. <view class="u-flex u-row-between" style="margin-top: 60rpx;flex-wrap: wrap;">
  154. <view :class="index==idx?'active':'unactive'" v-for="(item,idx) in containerList"
  155. @click="change(item,idx)"
  156. style="display: flex;flex-direction: column;align-items: center;justify-content: center;margin-bottom: 28rpx;position: relative;">
  157. <image v-if="index==idx" src="static/images/change.png"
  158. style="width: 36rpx;height: 32rpx;position: absolute;top: 0;right: 0;" mode=""></image>
  159. <view class="logname" v-if="language =='zh-CN'">{{item.name_cn}}</view>
  160. <view class="logname" v-if="language =='en-US'">{{item.name_en}}</view>
  161. <view class="logname" v-if="language =='es-ES'">{{item.name_es}}</view>
  162. <view class="logname" v-if="language =='it-IT'">{{item.name_ita}}</view>
  163. <!-- <view class="wei">¥{{goodinfo.cate==0?item.normal_delivery_fee:item.special_delivery_fee}}/kg</view> -->
  164. <view class="wei">¥{{item.unit_price}}/kg</view>
  165. </view>
  166. </view>
  167. <view class="nextto" @click="next">{{i18n.next}}</view>
  168. </view>
  169. </u-popup>
  170. <!-- 跨境物流下一步 -->
  171. <u-popup :safeAreaInsetTop='true' :show="show1" @close="close" mode="bottom" closeIconPos='top-right' round='28'
  172. bgColor='#F4F4F4'>
  173. <view style="padding: 40rpx 28rpx;box-sizing:border-box;position: relative;">
  174. <view class="u-flex u-row-between">
  175. <view class="" style="width: 28px;height: 28px;"></view>
  176. <view class="poptitle">
  177. {{i18n.flow}}
  178. </view>
  179. <u-icon name="close" @click="close" color="background: #333333;" size="28"></u-icon>
  180. </view>
  181. <scroll-view :scroll-y="true" style="500rpx">
  182. <view class="transport" style="margin-top: 32rpx;" @click="activea(item,idx)"
  183. v-for="(item,idx) in containlist" v-if="item.sum !=0">
  184. <view class="u-flex u-row-between">
  185. <text class="yundate">{{i18n.Shipmentdate}} {{item.end_date}}</text>
  186. <image v-if="datechan==idx" src="/pageA/static/images/active.png"
  187. style="width: 36rpx;height: 36rpx;" mode=""></image>
  188. <image v-else src="/pageA/static/images/unactive.png" style="width: 36rpx;height: 36rpx;"
  189. mode=""></image>
  190. </view>
  191. <view class="u-flex u-row-between" style="margin-top: 28rpx;">
  192. <view class="chest">
  193. <text v-if="language =='zh-CN'">{{item.name_cn}}</text>
  194. <text v-if="language =='en-US'">{{item.name_en}}</text>
  195. <text v-if="language =='es-ES'">{{item.name_es}}</text>
  196. <text v-if="language =='it-IT'">{{item.name_ita}}</text>
  197. <text style="margin: 0 16rpx;">|</text>
  198. <text>{{i18n.Estimatedtimeofarrival}}{{item.transport_days}}{{i18n.Workingday}}</text>
  199. </view>
  200. <view class="mone">
  201. <text>¥</text>
  202. <text style="font-size: 32rpx;">{{item.sum}}</text>
  203. </view>
  204. </view>
  205. </view>
  206. </scroll-view>
  207. <view class="" style="height: 166rpx;"></view>
  208. <view class="enbottom u-flex u-row-between">
  209. <view class="cancel" @click="close">{{i18n.Cancel}}</view>
  210. <view class="confirm" @click="confirm">{{i18n.enter}}</view>
  211. </view>
  212. </view>
  213. </u-popup>
  214. </view>
  215. </template>
  216. <script>
  217. export default {
  218. data() {
  219. return {
  220. value: 1,
  221. show: false,
  222. index: '',
  223. show1: false,
  224. datechan: '',
  225. sku_info: {},
  226. goodinfo: {},
  227. swiptlist: [], //推荐列表
  228. language: 'zh-CN',
  229. containerList: [], //列表
  230. province_id: '',
  231. transport_type_id: '',
  232. containlist: [],
  233. containid: '', //货柜id
  234. containname: '', //货柜名称
  235. type: '', //货运方式名称
  236. containname1: '',
  237. type1: '',
  238. sum: '',
  239. unit_price: '',
  240. recommend_weight: '',
  241. sum1: '',
  242. unit_price1: '',
  243. recommend_weight1: '',
  244. max_weight: '',
  245. min_weight: '',
  246. unit_fee: '',
  247. addinfo: '',
  248. huoid:''
  249. };
  250. },
  251. computed: {
  252. i18n() {
  253. return this.$t('index')
  254. },
  255. },
  256. onLoad(options) {
  257. // url: '/pageA/order?sku=' + this.sku_info + '&value=' + this.value+'&goodinfo='+this.goodinfo
  258. if (options) {
  259. this.value = options.value
  260. this.sku_info = JSON.parse(decodeURIComponent(options.sku));
  261. this.goodinfo = JSON.parse(decodeURIComponent(options.goodinfo))
  262. console.log(this.goodinfo);
  263. console.log(this.sku_info);
  264. }
  265. },
  266. onShow() {
  267. if (uni.getStorageSync('language') != '') {
  268. this.language = uni.getStorageSync('language')
  269. }
  270. this.recommend()
  271. // this.container()
  272. },
  273. methods: {
  274. //正则匹配手机号
  275. replacePhoneToStar: function(phone) {
  276. if (phone) {
  277. return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
  278. }
  279. },
  280. //推荐重量
  281. recommendweight() {
  282. uni.$u.http.get('/api/express-order/recommend-container', {
  283. params: {
  284. container_id: this.containid,
  285. type: this.goodinfo.cate == 0 ? 'normal' : 'special'
  286. }
  287. }).then((res) => {
  288. console.log(res);
  289. this.max_weight = res.max_weight
  290. this.min_weight = res.min_weight
  291. this.unit_fee = res.unit_fee
  292. }).catch(() => {
  293. })
  294. },
  295. //货运类型列表
  296. transport() {
  297. uni.$u.http.get('/api/transport-type', {
  298. params: {
  299. province_id: this.province_id,
  300. }
  301. }).then((res) => {
  302. this.containerList = res
  303. this.transport_type_id = res[0].id
  304. if (this.language == 'zh-CN') {
  305. this.type = res[0].name_cn
  306. }
  307. if (this.language == 'en-US') {
  308. this.type = res[0].name_en
  309. }
  310. if (this.language == 'es-ES') {
  311. this.type = res[0].name_es
  312. }
  313. if (this.language == 'it-IT') {
  314. this.type = res[0].name_ita
  315. }
  316. }).catch(() => {
  317. })
  318. },
  319. //跳转到填写地址
  320. toadd() {
  321. var that = this
  322. uni.navigateTo({
  323. url: '/pageC/addressManagement/addressManagement',
  324. events: {
  325. getadd(res) {
  326. that.addinfo = res
  327. that.province_id = res.province_id
  328. // console.log(res);
  329. that.transport()
  330. }
  331. }
  332. })
  333. },
  334. //货柜列表
  335. container() {
  336. uni.$u.http.get('/api/container-base', {
  337. params: {
  338. is_page: 0,
  339. province_id: this.province_id,
  340. transport_type_id: this.transport_type_id,
  341. weight: Number(this.sku_info.weight) * this.value,
  342. type: this.goodinfo.cate == 0 ? 'normal' : 'special',
  343. length: Number(this.goodinfo.length) * this.value, // 是 String 长
  344. width: this.goodinfo.width, // 是 String 宽
  345. height: this.goodinfo.height, // 是 String 高
  346. }
  347. }).then((res) => {
  348. // this.containlist = res
  349. this.containlist = []
  350. res.forEach((item) => {
  351. if (item.sum != 0) {
  352. this.containlist.push(item)
  353. }
  354. })
  355. this.sum = this.containlist[0].sum
  356. this.unit_price = this.containlist[0].unit_price
  357. this.recommend_weight = this.containlist[0].recommend_weight
  358. this.containid = this.containlist[0].id
  359. if (this.language == 'zh-CN') {
  360. this.containname = this.containlist[0].name_cn
  361. }
  362. if (this.language == 'en-US') {
  363. this.containname = this.containlist[0].name_en
  364. }
  365. if (this.language == 'es-ES') {
  366. this.containname = this.containlist[0].name_es
  367. }
  368. if (this.language == 'it-IT') {
  369. this.containname = this.containlist[0].name_ita
  370. }
  371. }).catch(() => {
  372. })
  373. },
  374. //商品推荐
  375. recommend() {
  376. uni.$u.http.post('/api/goods/recommend', {
  377. keyword: ''
  378. }).then((res) => {
  379. // this.swiptlist = res.reduce((a, b) => {
  380. // let lastIndex = a.length - 1
  381. // if (a[lastIndex].length < 3) {
  382. // a[lastIndex].push(b)
  383. // } else {
  384. // a.push([b])
  385. // }
  386. // return a
  387. // }, [
  388. // []
  389. // ])
  390. this.swiptlist = res
  391. }).catch(() => {
  392. })
  393. },
  394. change(item, index) {
  395. this.transport_type_id = item.id
  396. this.index = index
  397. if (this.language == 'zh-CN') {
  398. this.type = item.name_cn
  399. }
  400. if (this.language == 'en-US') {
  401. this.type = item.name_en
  402. }
  403. if (this.language == 'es-ES') {
  404. this.type = item.name_es
  405. }
  406. if (this.language == 'it-IT') {
  407. this.type = item.name_ita
  408. }
  409. },
  410. next() {
  411. this.show = false
  412. this.show1 = true
  413. this.type1 = this.type
  414. this.container()
  415. },
  416. activea(item, idx) {
  417. this.datechan = idx
  418. this.sum = item.sum
  419. this.unit_price = item.unit_price
  420. this.recommend_weight = item.recommend_weight
  421. this.containid = item.id
  422. if (this.language == 'zh-CN') {
  423. this.containname = item.name_cn
  424. }
  425. if (this.language == 'en-US') {
  426. this.containname = item.name_en
  427. }
  428. if (this.language == 'es-ES') {
  429. this.containname = item.name_es
  430. }
  431. if (this.language == 'it-IT') {
  432. this.containname = item.name_ita
  433. }
  434. },
  435. //确定
  436. confirm() {
  437. this.show1 = false
  438. this.containname1 = this.containname
  439. this.recommendweight()
  440. },
  441. // 取消
  442. close() {
  443. this.show = false
  444. this.show1 = false
  445. },
  446. //提交订单
  447. topay() {
  448. uni.$u.http.post('/api/order', {
  449. address_id: this.addinfo.id, //3 是 String 地址ID
  450. goods_id: this.goodinfo.id, //65 是 String 商品id
  451. goods_num: this.value, //2 是 String 商品数量
  452. sku_item_id: this.sku_info.id, //60 是 String 规格id
  453. cart_ids: '', //8,9 是 String 购物车id
  454. remark: '', //备注 是 String 备注
  455. merchant_goods_id: this.goodinfo.merchant_goods_id, //39 是 String 团长商品id
  456. container_id: this.containid, //1 是 String 货柜id
  457. share_merchant_id: '', // 是 String 分享团长id 分享商品的时候传
  458. belong: 0 //0 是 String 商品归属 0团长 1平台自营 2团长发布或者分享的平台自营商品、供应链商品
  459. }).then((res) => {
  460. console.log(res);
  461. uni.navigateTo({
  462. // url: '/pageA/payorder?sum=' + (Number(this.sum*10000+ Number(this.sku_info.discount_price)*Number(this.value)*10000))/10000 +'&orderid=' + res.id
  463. url: '/pageA/payorder?orderid=' + res.id + '&sum=' + res.amount
  464. })
  465. }).catch(() => {})
  466. }
  467. }
  468. }
  469. </script>
  470. <style lang="scss" scoped>
  471. ::v-deep .u-status-bar {
  472. height: 0 !important;
  473. }
  474. .confirm {
  475. width: 398rpx;
  476. height: 84rpx;
  477. background: #F83224;
  478. border-radius: 42rpx;
  479. text-align: center;
  480. font-family: PingFangSC, PingFang SC;
  481. font-weight: 500;
  482. font-size: 32rpx;
  483. color: #FFFFFF;
  484. line-height: 84rpx;
  485. text-align: center;
  486. font-style: normal;
  487. }
  488. .cancel {
  489. width: 280rpx;
  490. height: 84rpx;
  491. border-radius: 42rpx;
  492. border: 2rpx solid rgba(151, 151, 151, 0.3);
  493. font-family: PingFangSC, PingFang SC;
  494. font-weight: 400;
  495. font-size: 32rpx;
  496. color: #444444;
  497. line-height: 84rpx;
  498. text-align: center;
  499. font-style: normal;
  500. }
  501. .enbottom {
  502. width: 750rpx;
  503. height: 166rpx;
  504. background: #FFFFFF;
  505. position: absolute;
  506. left: 0rpx;
  507. bottom: 0;
  508. padding: 0 24rpx;
  509. box-sizing: border-box;
  510. }
  511. .mone {
  512. font-family: JDZhengHT, JDZhengHT;
  513. font-weight: 400;
  514. font-size: 26rpx;
  515. color: #F83224;
  516. line-height: 32rpx;
  517. text-align: left;
  518. font-style: normal;
  519. }
  520. .yundate {
  521. font-family: PingFangSC, PingFang SC;
  522. font-weight: 550;
  523. font-size: 32rpx;
  524. color: #333333;
  525. line-height: 44rpx;
  526. text-align: left;
  527. font-style: normal;
  528. }
  529. .chest {
  530. font-family: SFPro, SFPro;
  531. font-weight: 400;
  532. font-size: 24rpx;
  533. color: #555555;
  534. line-height: 28rpx;
  535. text-align: left;
  536. font-style: normal;
  537. }
  538. .act {
  539. width: 702rpx;
  540. height: 164rpx;
  541. background: #FFFFFF;
  542. border-radius: 12rpx;
  543. padding: 24rpx 20rpx;
  544. box-sizing: border-box;
  545. border: 1rpx solid #F83224;
  546. }
  547. .transport {
  548. width: 702rpx;
  549. height: 164rpx;
  550. background: #FFFFFF;
  551. border-radius: 12rpx;
  552. padding: 24rpx 20rpx;
  553. box-sizing: border-box;
  554. }
  555. .nextto {
  556. width: 702rpx;
  557. height: 84rpx;
  558. background: #F83224;
  559. border-radius: 44rpx;
  560. font-family: PingFangSC, PingFang SC;
  561. font-weight: 500;
  562. font-size: 32rpx;
  563. color: #FFFFFF;
  564. line-height: 84rpx;
  565. text-align: center;
  566. font-style: normal;
  567. margin-top: 108rpx;
  568. }
  569. .logname {
  570. font-family: PingFangSC, PingFang SC;
  571. font-weight: 400;
  572. font-size: 28rpx;
  573. color: #333333;
  574. line-height: 40rpx;
  575. text-align: right;
  576. font-style: normal;
  577. overflow: hidden;
  578. width: 220rpx;
  579. white-space: nowrap;
  580. text-overflow: ellipsis;
  581. text-align: center;
  582. }
  583. .wei {
  584. font-family: JDZhengHT, JDZhengHT;
  585. font-weight: 400;
  586. font-size: 32rpx;
  587. color: #F83224;
  588. line-height: 40rpx;
  589. text-align: right;
  590. font-style: normal;
  591. margin-top: 8rpx;
  592. }
  593. .active {
  594. width: 218rpx;
  595. height: 148rpx;
  596. background: rgba(247, 50, 36, 0.05);
  597. border-radius: 8rpx;
  598. border: 1rpx solid #F83224;
  599. }
  600. .unactive {
  601. width: 218rpx;
  602. height: 148rpx;
  603. border-radius: 12rpx;
  604. border: 1rpx solid #C3C3C3;
  605. }
  606. .poptitle {
  607. width: 142rpx;
  608. height: 50rpx;
  609. font-family: PingFangSC, PingFang SC;
  610. font-weight: 600;
  611. font-size: 36rpx;
  612. color: #333333;
  613. text-align: center;
  614. width: 100%;
  615. }
  616. .back {
  617. background: rgba(244, 244, 244, 1);
  618. padding: 20rpx 24rpx;
  619. box-sizing: border-box;
  620. .btn {
  621. width: 750rpx;
  622. height: 166rpx;
  623. background: #FFFFFF;
  624. box-shadow: 0rpx -1rpx 0rpx 0rpx rgba(0, 0, 0, 0.05);
  625. position: fixed;
  626. bottom: 0;
  627. left: 0;
  628. padding: 0 24rpx 5rpx 5rpx;
  629. box-sizing: border-box;
  630. .money {
  631. font-family: HarmonyOS_Sans_Medium;
  632. font-size: 48rpx;
  633. color: #F83224;
  634. line-height: 38rpx;
  635. text-align: left;
  636. font-style: normal;
  637. // font-weight: 500;
  638. font-weight: bold;
  639. }
  640. .kg {
  641. font-family: PingFangSC, PingFang SC;
  642. font-weight: 400;
  643. font-size: 24rpx;
  644. color: #333333;
  645. line-height: 34rpx;
  646. text-align: left;
  647. font-style: normal;
  648. }
  649. .order {
  650. width: 232rpx;
  651. height: 80rpx;
  652. background: #F83224;
  653. border-radius: 40rpx;
  654. font-family: PingFangTC, PingFangTC;
  655. font-weight: 500;
  656. font-size: 32rpx;
  657. color: #FFFFFF;
  658. line-height: 80rpx;
  659. text-align: center;
  660. font-style: normal;
  661. margin-left: 20rpx;
  662. }
  663. }
  664. //商品相关
  665. .abount {
  666. padding: 28rpx 24rpx;
  667. box-sizing: border-box;
  668. background: #FFFFFF;
  669. border-radius: 16rpx;
  670. width: 702rpx;
  671. .zong {
  672. width: 654rpx;
  673. padding: 22rpx 0 0 0;
  674. border-top: 2rpx solid rgba(151, 151, 151, 0.1);
  675. margin-top: 32rpx;
  676. .small {
  677. font-family: PingFangTC, PingFangTC;
  678. font-weight: 400;
  679. font-size: 24rpx;
  680. color: #444444;
  681. line-height: 34rpx;
  682. text-align: left;
  683. font-style: normal;
  684. }
  685. .mon {
  686. font-family: HarmonyOS_Sans_Medium;
  687. font-size: 28rpx;
  688. color: #F83224;
  689. line-height: 38rpx;
  690. text-align: left;
  691. font-style: normal;
  692. margin-left: 12rpx;
  693. font-weight: bold;
  694. }
  695. }
  696. .back {
  697. background: rgba(244, 244, 244, 1);
  698. padding: 22rpx 16rpx;
  699. box-sizing: border-box;
  700. margin-top: 10rpx;
  701. // margin-bottom: 20rpx;
  702. }
  703. .name {
  704. font-family: PingFangSC, PingFang SC;
  705. font-weight: 400;
  706. font-size: 28rpx;
  707. color: #333333;
  708. line-height: 40rpx;
  709. text-align: left;
  710. font-style: normal;
  711. }
  712. .money {
  713. font-family: HarmonyOS_Sans_Medium;
  714. font-size: 28rpx;
  715. color: #222222;
  716. line-height: 38rpx;
  717. text-align: left;
  718. font-style: normal;
  719. font-weight: 600;
  720. }
  721. }
  722. .recommend {
  723. margin-top: 20rpx;
  724. .title {
  725. font-family: PingFangSC, PingFang SC;
  726. font-weight: 400;
  727. font-size: 22rpx;
  728. color: #222222;
  729. line-height: 32rpx;
  730. text-align: left;
  731. font-style: normal;
  732. width: 148rpx;
  733. height: 64rpx;
  734. overflow: hidden;
  735. text-overflow: ellipsis;
  736. -webkit-line-clamp: 2;
  737. display: -webkit-box;
  738. -webkit-box-orient: vertical;
  739. }
  740. .top {
  741. width: 702rpx;
  742. height: 64rpx;
  743. background: linear-gradient(180deg, #FFE7E3 0%, rgba(255, 255, 255, 1) 100%);
  744. border-radius: 16rpx 16rpx 0 0;
  745. padding: 24rpx 22rpx;
  746. box-sizing: border-box;
  747. }
  748. .bottom {
  749. padding: 0 20rpx 22rpx;
  750. box-sizing: border-box;
  751. background: #fff;
  752. }
  753. }
  754. //物流
  755. .logistics {
  756. width: 702rpx;
  757. height: 96rpx;
  758. background: #FFFFFF;
  759. border-radius: 16rpx;
  760. padding: 28rpx 22rpx;
  761. box-sizing: border-box;
  762. margin-top: 20rpx;
  763. .change {
  764. font-family: PingFangSC, PingFang SC;
  765. font-weight: 400;
  766. font-size: 28rpx;
  767. color: #F83224;
  768. line-height: 40rpx;
  769. text-align: left;
  770. font-style: normal;
  771. margin-right: 8rpx;
  772. }
  773. }
  774. //商城
  775. .shop {
  776. width: 702rpx;
  777. // height: 322rpx;
  778. background: #FFFFFF;
  779. border-radius: 16rpx;
  780. padding: 30rpx 24rpx;
  781. margin-top: 20rpx;
  782. box-sizing: border-box;
  783. .bu {
  784. width: 120rpx;
  785. height: 40rpx;
  786. border-radius: 20rpx;
  787. border: 1rpx solid rgba(151, 151, 151, 0.3);
  788. }
  789. .money {
  790. font-family: HarmonyOS_Sans_Medium;
  791. font-size: 24rpx;
  792. color: #F83224;
  793. line-height: 34rpx;
  794. text-align: left;
  795. font-style: normal;
  796. font-weight: 600;
  797. }
  798. .name {
  799. font-family: PingFangSC, PingFang SC;
  800. font-weight: 400;
  801. font-size: 30rpx;
  802. color: #222222;
  803. line-height: 42rpx;
  804. text-align: left;
  805. font-style: normal;
  806. margin-left: 10rpx;
  807. }
  808. .weight {
  809. font-family: PingFangSC, PingFang SC;
  810. font-weight: 400;
  811. font-size: 24rpx;
  812. color: rgba(34, 34, 34, 0.6);
  813. line-height: 34rpx;
  814. text-align: left;
  815. font-style: normal;
  816. margin-top: 16rpx;
  817. }
  818. }
  819. // 地址
  820. .address {
  821. width: 702rpx;
  822. // height: 182rpx;
  823. background: #FFFFFF;
  824. border-radius: 16rpx;
  825. padding: 32rpx 24rpx;
  826. box-sizing: border-box;
  827. .add {
  828. font-family: SFPro, SFPro;
  829. font-weight: 500;
  830. font-size: 32rpx;
  831. color: #222222;
  832. line-height: 36rpx;
  833. text-align: left;
  834. font-style: normal;
  835. }
  836. .info {
  837. font-family: SFPro, SFPro;
  838. font-weight: 400;
  839. font-size: 24rpx;
  840. color: #555555;
  841. line-height: 28rpx;
  842. text-align: left;
  843. font-style: normal;
  844. margin-top: 20rpx;
  845. }
  846. }
  847. }
  848. .minus {
  849. width: 22px;
  850. height: 22px;
  851. border-width: 1px;
  852. border-color: #E6E6E6;
  853. border-style: solid;
  854. border-top-left-radius: 100px;
  855. border-top-right-radius: 100px;
  856. border-bottom-left-radius: 100px;
  857. border-bottom-right-radius: 100px;
  858. @include flex;
  859. justify-content: center;
  860. align-items: center;
  861. }
  862. .input {
  863. padding: 0 10px;
  864. }
  865. .plus {
  866. width: 22px;
  867. height: 22px;
  868. background-color: #FF0000;
  869. border-radius: 50%;
  870. /* #ifndef APP-NVUE */
  871. display: flex;
  872. /* #endif */
  873. justify-content: center;
  874. align-items: center;
  875. }
  876. </style>