discountsGoods.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. <template>
  2. <view :style="viewColor">
  3. <view class="container" :class="popup.show==true?'on':''">
  4. <view class="header">
  5. <text class="title">优惠套餐({{discountsTotal}})</text>
  6. <text class="iconfont icon-guanbi5" @tap.stop="closePopup"></text>
  7. </view>
  8. <view class="main_count">
  9. <scroll-view scroll-y="true">
  10. <view v-for="(item, index) in discountsData" :key="index" class="list">
  11. <view class="acea-row list_title">
  12. <view class="combo_list_name">
  13. <image class="title_icon" :src="`${domain}/static/images/combo_title.png`"></image>
  14. <view class="name line1">套餐{{index+1}}: {{item.title}}</view>
  15. </view>
  16. <view class="combo_list_money">¥{{item.total_price}}</view>
  17. </view>
  18. <view v-if="item.is_time == 1">
  19. <view class="comb_time">
  20. <text class="count-time">距套餐结束</text>
  21. <countDown class="spike-count" :tip-text="' '" :day-text="'天'" :hour-text="':'" :minute-text="':'" :second-text="' '" :isDay="true" :datatime="item.stop_time" :isTheme="true" :isView="true"></countDown>
  22. </view>
  23. </view>
  24. <block v-for="(itemn, indexn) in item.discountsProduct" :key="indexn">
  25. <view class="pro_list">
  26. <view v-if="item.type == 1 && indexn!=0" class="checkbox" @tap.stop="checkedChange(item,itemn)">
  27. <text v-if="itemn.checked" class="iconfont icon-xuanzhong1"></text>
  28. <text v-else class="iconfont icon-weixuanzhong"></text>
  29. </view>
  30. <view v-if="item.type == 1 && indexn ==0" class="checkbox">
  31. <text class="iconfont icon-xuanzhong3"></text>
  32. </view>
  33. <view class="picture">
  34. <image :src="itemn.image" class="image"></image>
  35. <text v-if="itemn.product_id == id" class="current_pro">当前商品</text>
  36. </view>
  37. <view class="info">
  38. <view class="name line1" :class="item.type==1 ? 'names' : ''">{{itemn.store_name}}</view>
  39. <view class="list_attr" @click="selecAttr(index,indexn)">
  40. <text class="line1">
  41. {{itemn.attr || '默认'}}
  42. </text>
  43. <text class="iconfont icon-xiangxia"></text>
  44. </view>
  45. <view class="price acea-row">
  46. <view>
  47. <text>{{itemn.product.price}}</text>
  48. </view>
  49. <view class="ot_price">
  50. ¥{{itemn.product.ot_price}}
  51. </view>
  52. </view>
  53. </view>
  54. </view>
  55. </block>
  56. <view class="save_money"><text>省:</text> ¥{{item.checked_save_money}}</view>
  57. <view v-if="item.is_limit == 0 || (item.is_limit == 1 && item.limit_num > 0)" class="btn" @click="subData(index)">
  58. 购买此套餐{{item.checked_num}}件商品
  59. </view>
  60. <view v-else-if="item.is_limit == 1 && item.limit_num <= 0" class="btn disabled">
  61. 套餐已售罄
  62. </view>
  63. </view>
  64. </scroll-view>
  65. </view>
  66. </view>
  67. <view class='mask' catchtouchmove="true" :hidden='popup.show==false' @tap="closePopup"></view>
  68. <productWindow :attr="attr" :isShow="1" :title="selectTitle" :iSplus="1" @myevent="onMyEvent"
  69. @ChangeAttr="ChangeAttr" @attrVal="attrVal" @iptCartNum="iptCartNum" id="product-window" @goCat="goOrder()">
  70. </productWindow>
  71. </view>
  72. </template>
  73. <script>
  74. // +----------------------------------------------------------------------
  75. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  76. // +----------------------------------------------------------------------
  77. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  78. // +----------------------------------------------------------------------
  79. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  80. // +----------------------------------------------------------------------
  81. // | Author: CRMEB Team <admin@crmeb.com>
  82. // +----------------------------------------------------------------------
  83. import { goShopDetail } from '@/libs/order.js'
  84. import { discountsCartAdd, getDiscountsLst } from '@/api/store.js';
  85. import productWindow from './productWindow.vue'
  86. import { mapGetters } from "vuex";
  87. import { HTTP_REQUEST_URL } from '@/config/app';
  88. import countDown from '@/components/countDown';
  89. export default {
  90. components: {
  91. productWindow,
  92. countDown
  93. },
  94. props:{
  95. uid: {
  96. type: Number || String,
  97. },
  98. },
  99. computed: mapGetters(['viewColor']),
  100. data() {
  101. return {
  102. id: "",
  103. domain: HTTP_REQUEST_URL,
  104. discountsData: [],
  105. discountsTotal: 0,
  106. popup: {
  107. show: false
  108. },
  109. attr: {
  110. cartAttr: false,
  111. productAttr: [],
  112. productSelect: {},
  113. },
  114. productValue: [], //系统属性
  115. isOpen: false, //是否打开属性组件
  116. attrValue: [],
  117. attrTxt: "",
  118. selectAttr: [],
  119. selectValue: [], //选中的ID
  120. proNum: 0,
  121. images: [],
  122. selectCountPrice: [],
  123. selectTitle: "",
  124. seleNum: 0,
  125. isFirst: true,
  126. seleIndexn: -1,
  127. seleIndex: -1,
  128. unique: "0"
  129. };
  130. },
  131. mounted(){},
  132. methods: {
  133. // 点击关闭按钮
  134. closePopup() {
  135. this.$set(this.popup, 'show', false);
  136. },
  137. showPopup(id) {
  138. this.id = id
  139. this.$set(this.popup, 'show', true);
  140. this.getList();
  141. },
  142. initAttr(){
  143. this.discountsData.map((v, i) => {
  144. this.getData(i)
  145. })
  146. },
  147. getData(index){
  148. this.discountsData[index].discountsProduct.forEach((item, i) => {
  149. this.attr.productAttr = item.product.attr;
  150. this.productValue = item.product.sku
  151. this.DefaultSelect(index,i)
  152. this.getPrice(this.discountsData[index])
  153. })
  154. },
  155. /*获取套餐列表数据*/
  156. getList(){
  157. getDiscountsLst({product_id: this.id}).then(res => {
  158. res.data.list.forEach((item, index) => {
  159. item.total_price = 0;
  160. item.checked_num = item.count;
  161. item.checked_save_money = 0;
  162. item.discountsProduct.forEach((v, i) => {
  163. this.$set(v,'checked',true)
  164. this.$set(v,'attr','')
  165. this.$set(v,'unique','')
  166. item.total_price += parseFloat(v.product.price)
  167. item.checked_save_money += (parseFloat(v.product.ot_price) - parseFloat(v.product.price)).toFixed(2)
  168. })
  169. })
  170. this.discountsTotal = res.data.count;
  171. this.discountsData = res.data.list;
  172. this.initAttr()
  173. }).catch(err => {
  174. });
  175. },
  176. /**
  177. * 购物车手动填写
  178. *
  179. */
  180. iptCartNum: function(e) {
  181. this.$set(this.attr.productSelect, 'cart_num', e);
  182. },
  183. /**
  184. * 打开属性插件
  185. */
  186. selecAttr: function(index, n) {
  187. this.proNum = index
  188. this.seleNum = n
  189. this.selectTitle = this.discountsData[index].discountsProduct[n].product.store_name
  190. this.attr.productAttr = this.discountsData[index].discountsProduct[n].product.attr
  191. this.productValue = this.discountsData[index].discountsProduct[n].product.sku
  192. if(this.isFirst || (!this.isFirst &&
  193. (this.seleIndex != index && this.seleIndexn != n || this.seleIndex == index && this.seleIndexn != n || this.seleIndex != index && this.seleIndexn == n) || this.unique != this.attr.productSelect.unique)){
  194. this.DefaultSelect(index,n)
  195. }
  196. this.seleIndex = index;this.seleIndexn = n
  197. this.isFirst = false
  198. this.$nextTick((e) => {
  199. this.$set(this.attr, 'cartAttr', true);
  200. this.$set(this, 'isOpen', true);
  201. })
  202. },
  203. attrVal(val) {
  204. this.$set(this.attr.productAttr[val.indexw], 'index', this.attr.productAttr[val.indexw]
  205. .attr_values[val.indexn]);
  206. },
  207. /**
  208. * 属性变动赋值
  209. *
  210. */
  211. ChangeAttr: function(res) {
  212. let productSelect = this.productValue[res];
  213. if (productSelect && productSelect.stock > 0) {
  214. this.$set(this.attr.productSelect, 'image', productSelect.image);
  215. this.$set(this.attr.productSelect, 'price', productSelect.price);
  216. this.$set(this.attr.productSelect, 'stock', productSelect.stock);
  217. this.$set(this.attr.productSelect, 'product_stock', productSelect.stock);
  218. this.$set(this.attr.productSelect, 'unique', productSelect.unique);
  219. this.$set(this, 'unique', productSelect.unique);
  220. this.$set(this.attr.productSelect, 'cart_num', 1);
  221. this.$set(this.discountsData[this.proNum].discountsProduct[this.seleNum], 'attr', res || "");
  222. this.$set(this.discountsData[this.proNum].discountsProduct[this.seleNum]['product'], 'price', productSelect.price || 0);
  223. this.$set(this.discountsData[this.proNum].discountsProduct[this.seleNum]['product'], 'ot_price', productSelect.ot_price || 0);
  224. this.$set(this.discountsData[this.proNum].discountsProduct[this.seleNum], 'unique', productSelect.unique || "");
  225. } else {
  226. this.$set(this.attr.productSelect,"store_name",this.discountsData[this.proNum].discountsProduct[this.seleNum].product.store_name
  227. );
  228. this.$set(this.attr.productSelect, "image", this.discountsData[this.proNum].discountsProduct[this.seleNum].product.image);
  229. this.$set(this.attr.productSelect, "price", this.discountsData[this.proNum].discountsProduct[this.seleNum].product.price);
  230. this.$set(this.attr.productSelect, "ot_price", this.discountsData[this.proNum].discountsProduct[this.seleNum].product.ot_price);
  231. this.$set(this.attr.productSelect, "product_stock", 0);
  232. this.$set(this.attr.productSelect,"unique", "");
  233. return;
  234. }
  235. this.getPrice(this.discountsData[this.proNum])
  236. },
  237. /**
  238. * 默认选中属性
  239. *
  240. */
  241. DefaultSelect: function(index,indexn) {
  242. let productAttr = this.attr.productAttr;
  243. let value = [];
  244. for (var key in this.productValue) {
  245. if (this.productValue[key].stock > 0) {
  246. value = this.attr.productAttr.length ? key.split(',') : [];
  247. break;
  248. }
  249. }
  250. for (let i = 0; i < productAttr.length; i++) {
  251. this.$set(productAttr[i], 'index', value[i]);
  252. }
  253. //sort();排序函数:数字-英文-汉字;
  254. let productSelect = this.productValue[value.join(',')];
  255. if (productSelect && productAttr.length) {
  256. this.$set(this.attr.productSelect, 'store_name', productSelect.store_name);
  257. this.$set(this.attr.productSelect, 'image', productSelect.image);
  258. this.$set(this.attr.productSelect, 'price', productSelect.price);
  259. this.$set(this.attr.productSelect, 'ot_price', productSelect.ot_price);
  260. this.$set(this.attr.productSelect, 'stock', productSelect.stock);
  261. this.$set(this.attr.productSelect, 'product_stock', productSelect.stock);
  262. this.$set(this.attr.productSelect, 'unique', productSelect.unique);
  263. this.$set(this, 'unique', productSelect.unique);
  264. this.$set(this.attr.productSelect, 'cart_num', 1);
  265. this.$set(this.attr.productSelect, 'vip_price', productSelect.vip_price);
  266. this.$set(this.discountsData[index].discountsProduct[indexn], 'unique', productSelect.unique || "");
  267. this.$set(this.discountsData[index].discountsProduct[indexn], 'attr', value.join(','));
  268. this.$set(this.discountsData[index].discountsProduct[indexn]['product'], 'price', productSelect.price);
  269. this.$set(this.discountsData[index].discountsProduct[indexn]['product'], 'ot_price', productSelect.ot_price);
  270. this.$set(this.discountsData[index].discountsProduct[indexn]['product'], 'ot_price', productSelect.ot_price);
  271. } else if (productSelect && !productAttr.length) {
  272. this.$set(this.attr.productSelect, 'store_name', productSelect.store_name);
  273. this.$set(this.attr.productSelect, 'image', productSelect.image);
  274. this.$set(this.attr.productSelect, 'price', productSelect.price);
  275. this.$set(this.attr.productSelect, 'ot_price', productSelect.ot_price);
  276. this.$set(this.attr.productSelect, 'stock', productSelect.stock);
  277. this.$set(this.attr.productSelect, 'product_stock', productSelect.stock);
  278. this.$set(this.attr.productSelect, 'unique', productSelect.unique || '');
  279. this.$set(this, 'unique', productSelect.unique);
  280. this.$set(this.attr.productSelect, 'cart_num', 1);
  281. this.$set(this.attr.productSelect, 'vip_price', productSelect.vip_price);
  282. this.$set(this.discountsData[index].discountsProduct[indexn]['product'], 'price', productSelect.price);
  283. this.$set(this.discountsData[index].discountsProduct[indexn]['product'], 'ot_price', productSelect.ot_price);
  284. this.$set(this.discountsData[index].discountsProduct[indexn], 'attr', '')
  285. this.$set(this.discountsData[index].discountsProduct[indexn], 'unique', productSelect.unique || "");
  286. }else if (!productSelect && !productAttr.length || !productSelect && productAttr.length) {
  287. this.$set(this.attr.productSelect,"store_name",this.discountsData[0].discountsProduct[0].product.store_name
  288. );
  289. this.$set(this.attr.productSelect, "image", this.discountsData[0].discountsProduct[0].product.image);
  290. this.$set(this.attr.productSelect, "price", this.discountsData[0].discountsProduct[0].product.price);
  291. this.$set(this.attr.productSelect, "ot_price", this.discountsData[0].discountsProduct[0].product.ot_price);
  292. this.$set(this.attr.productSelect, "product_stock", 0);
  293. this.$set(this.attr.productSelect,"unique", "");
  294. this.$set(this, 'unique', "");
  295. }
  296. },
  297. onMyEvent: function() {
  298. this.$set(this.attr, 'cartAttr', false);
  299. this.$set(this, 'isOpen', false);
  300. },
  301. checkedChange(item,itemn) {
  302. itemn.checked = !itemn.checked
  303. if(itemn.checked){
  304. item.checked_num++
  305. }else{
  306. item.checked_num--;
  307. }
  308. this.getPrice(item)
  309. },
  310. /*计算此套餐总价及节省价*/
  311. getPrice(item){
  312. let checked_save_money = 0;
  313. let total_price = 0;
  314. item.discountsProduct.forEach((v, i) => {
  315. if(v.checked){
  316. checked_save_money += (parseFloat(v.product.ot_price) - parseFloat(v.product.price));
  317. total_price += parseFloat(v.product.price);
  318. }
  319. })
  320. this.$set(item, 'checked_save_money', checked_save_money.toFixed(2));
  321. this.$set(item, 'total_price', total_price);
  322. },
  323. subData(index) {
  324. let data = []
  325. let reqData = {
  326. is_new: 1,
  327. discount_id: this.discountsData[index].discount_id,
  328. data: [],
  329. }
  330. if (this.discountsData[index].type == 0) {
  331. this.selectValue = []
  332. this.discountsData[index].discountsProduct.map(v => {
  333. this.selectValue.push(v.discount_product_id + '')
  334. })
  335. } else {
  336. if (this.discountsData[index].checked_num < 2) {
  337. return this.$util.Tips({
  338. title: '请先选择套餐商品'
  339. });
  340. }
  341. this.selectValue = []
  342. this.discountsData[index].discountsProduct.map(v => {
  343. if(v.checked){
  344. this.selectValue.push(v.discount_product_id + '')
  345. }
  346. })
  347. }
  348. for (let i = 0; i < this.discountsData[index].discountsProduct.length; i++) {
  349. for (let j = 0; j < this.selectValue.length; j++) {
  350. if (this.discountsData[index].discountsProduct[i].discount_product_id == this.selectValue[j]) {
  351. reqData.data.push({
  352. cart_num: 1,
  353. product_attr_unique: this.discountsData[index].discountsProduct[i].unique,
  354. product_id: this.discountsData[index].discountsProduct[i].product_id
  355. })
  356. }
  357. }
  358. }
  359. discountsCartAdd(reqData)
  360. .then(function(res) {
  361. uni.navigateTo({
  362. url: '/pages/users/order_confirm/index?cartId=' + res
  363. .data
  364. .cart_id
  365. .join(',')
  366. });
  367. })
  368. .catch(err => {
  369. this.selectValue = []
  370. return this.$util.Tips({
  371. title: err
  372. });
  373. });
  374. },
  375. goOrder() {
  376. this.$set(this, 'isOpen', false);
  377. this.$set(this.attr, 'cartAttr', false);
  378. }
  379. }
  380. }
  381. </script>
  382. <style lang="scss" scoped>
  383. .container{
  384. position: fixed;
  385. bottom: 0;
  386. width: 100%;
  387. left: 0;
  388. background-color: #f5f5f5;
  389. z-index: 300;
  390. border-radius: 16rpx 16rpx 0 0;
  391. transform: translate3d(0, 100%, 0);
  392. transition: all .3s cubic-bezier(.25, .5, .5, .9);
  393. max-height: 1000rpx;
  394. &.on {
  395. transform: translate3d(0, 0, 0);
  396. }
  397. .header{
  398. position: relative;
  399. padding: 36rpx 30rpx;
  400. text-align: center;
  401. .title{
  402. color: #282828;
  403. font-size: 32rpx;
  404. font-weight: bold;
  405. }
  406. .iconfont{
  407. color: #8A8A8A;
  408. font-size: 28rpx;
  409. position: absolute;
  410. top: 0;
  411. right: 0;
  412. }
  413. .icon-guanbi5 {
  414. right: 20rpx;
  415. color: #8a8a8a;
  416. font-size: 30rpx;
  417. line-height: 30rpx;
  418. top: 40rpx;
  419. background-color: transparent;
  420. font-weight: normal;
  421. }
  422. }
  423. scroll-view{
  424. max-height: 900rpx;
  425. }
  426. .comb_time{
  427. display: flex;
  428. justify-items: center;
  429. margin-top: 24rpx;
  430. .count-time{
  431. color: #666666;
  432. font-size: 22rpx;
  433. }
  434. /deep/.time{
  435. align-items: center;
  436. }
  437. /deep/.red{
  438. height: 30rpx;
  439. line-height: 30rpx;
  440. }
  441. /deep/.styleAll{
  442. background-color: var(--view-theme);
  443. color: #ffffff;
  444. font-size: 22rpx;
  445. }
  446. /deep/.timeTxt{
  447. color: var(--view-theme);
  448. font-size: 20rpx;
  449. }
  450. }
  451. /deep/.styleAll{
  452. background-color: var(--view-theme);
  453. color: #ffffff;
  454. font-size: 22rpx;
  455. }
  456. .main_count{
  457. padding: 0 20rpx 30rpx;
  458. max-height: 900rpx;
  459. overflow-y: scroll;
  460. .list{
  461. margin-bottom: 20rpx;
  462. background: #ffffff;
  463. padding: 30rpx 20rpx;
  464. .list_title{
  465. color: #282828;
  466. font-weight: bold;
  467. display: flex;
  468. align-items: center;
  469. justify-content: space-between;
  470. .combo_list_name{
  471. font-size: 30rpx;
  472. display: flex;
  473. align-items: center;
  474. .name{
  475. max-width: 500rpx;
  476. margin-left: 8rpx;
  477. }
  478. .title_icon,uni-image,image{
  479. width: 26rpx;
  480. height:26rpx;
  481. }
  482. }
  483. .combo_list_money{
  484. color: var(--view-priceColor);
  485. font-size: 28rpx;
  486. }
  487. }
  488. &:last-child{
  489. margin-bottom: 0;
  490. }
  491. .btn{
  492. width: 670rpx;
  493. height: 60rpx;
  494. line-height: 60rpx;
  495. background-image: linear-gradient(270deg, var(--view-bntColor21) 0%, var(--view-bntColor22) 100%);
  496. border-radius: 43px;
  497. margin: 21rpx auto 0;
  498. color: #ffffff;
  499. text-align: center;
  500. font-size: 24rpx;
  501. &.disabled{
  502. cursor: not-allowed;
  503. background:#bbb
  504. }
  505. }
  506. .save_money{
  507. color: var(--view-priceColor);
  508. font-size: 26rpx;
  509. font-weight: bold;
  510. text-align: center;
  511. margin-top: 30rpx;
  512. text{
  513. font-weight: normal;
  514. display: inline-block;
  515. font-size: 20rpx;
  516. margin-right: 8rpx;
  517. }
  518. }
  519. }
  520. .pro_list{
  521. display: flex;
  522. align-items: center;
  523. padding: 30rpx 0;
  524. border-bottom: 1px solid #EEEEEE;
  525. &:last-child{
  526. border-bottom: none;
  527. }
  528. .checkbox{
  529. margin-right: 30rpx;
  530. }
  531. .icon-xuanzhong1{
  532. color: var(--view-theme);
  533. }
  534. .icon-xuanzhong1,.icon-weixuanzhong{
  535. font-size: 40rpx;
  536. }
  537. .icon-xuanzhong3{
  538. color: var(--view-theme);
  539. font-size: 18rpx;
  540. width: 40rpx;
  541. height: 40rpx;
  542. border-radius: 100%;
  543. background: var(--view-minorColor);
  544. line-height: 40rpx;
  545. }
  546. .picture,.image,uni-image{
  547. width: 180rpx;
  548. height: 180rpx;
  549. border-radius: 12rpx;
  550. position: relative;
  551. }
  552. .current_pro{
  553. background: linear-gradient(270deg, #F67A38 0%, #F11B09 100%);
  554. border-radius: 0 12rpx 0 12rpx;
  555. color: #fff;
  556. line-height: 34rpx;
  557. height: 34rpx;
  558. font-size: 16rpx;
  559. text-align: center;
  560. position: absolute;
  561. bottom: 0;
  562. left: 0;
  563. width: 100rpx;
  564. }
  565. .info{
  566. margin-left: 30rpx;
  567. position: relative;
  568. .name{
  569. max-width: 460rpx;
  570. color: #282828;
  571. font-size: 28rpx;
  572. line-height: 36rpx;
  573. &.names{
  574. max-width: 380rpx;
  575. }
  576. }
  577. .price{
  578. color: #282828;
  579. font-weight: bold;
  580. margin-top: 54rpx;
  581. font-size: 22rpx;
  582. font-weight: bold;
  583. align-items: center;
  584. text{
  585. font-size: 28rpx;
  586. }
  587. .ot_price{
  588. font-weight: normal;
  589. font-size: 20rpx;
  590. color: #999;
  591. text-decoration: line-through;
  592. margin-left: 10rpx;
  593. }
  594. }
  595. }
  596. }
  597. }
  598. .list_attr{
  599. max-width:390rpx;
  600. height: 34rpx;
  601. line-height: 34rpx;
  602. font-size: 22rpx;
  603. color: #666666;
  604. border-radius: 18rpx;
  605. background-color: #f5f5f5;
  606. padding: 0 60rpx 0 20rpx;
  607. margin-top: 20rpx;
  608. position: relative;
  609. .iconfont{
  610. font-size: 12rpx;
  611. position: absolute;
  612. right: 20rpx;
  613. top: 2rpx;
  614. }
  615. text{
  616. display: inline-block;
  617. max-width: 300rpx;
  618. }
  619. }
  620. }
  621. /deep/uni-checkbox .uni-checkbox-input{
  622. width: 38rpx;
  623. height: 38rpx;
  624. border-radius: 100%;
  625. margin-right: 30rpx;
  626. }
  627. </style>