giftpackage-order.vue 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815
  1. <template>
  2. <view class="gift-package" v-if="!loadding">
  3. <view class="top-tabbar">
  4. <block>
  5. <view :class="tab_type == 0 ? 'tab-item active' : 'tab-item'" @click="tabFunc(0)">快递配送</view>
  6. </block>
  7. <block>
  8. <view :class="tab_type == 1 ? 'tab-item active' : 'tab-item'" @click="tabFunc(1)">上门自提</view>
  9. </block>
  10. </view>
  11. <Myinfo v-if="tab_type == 0" :Address="Address" :exist_address="exist_address"></Myinfo>
  12. <Storeinfo v-if="tab_type == 1" ref="getShopinfoData" :extract_store="extract_store" :last_extract="last_extract"></Storeinfo>
  13. <view class="gift-package-main">
  14. <view class="order_tit">
  15. {{detail.name}}
  16. </view>
  17. <view class="">
  18. <view class="p-0-30">
  19. <view class="integral" v-if="detail.is_point">
  20. <view class="title">
  21. 积分礼包
  22. </view>
  23. <view class="integral_btom d-s-c">
  24. <image src="/static/gift.png" mode="widthFix"></image>
  25. <view class="info">
  26. <view class="num">
  27. {{parseFloat(detail.point)}}积分
  28. </view>
  29. <view>无门槛 全品类</view>
  30. </view>
  31. </view>
  32. </view>
  33. </view>
  34. <view class="p-0-30" v-if="detail.is_coupon">
  35. <view class="cuopon-title">
  36. 优惠券礼包
  37. </view>
  38. <view class="cuopon-group borbox" if="detail.is_coupon">
  39. <view class="body">
  40. <view class="item" v-for="(item,index) in detail.coupon_list" :key="index">
  41. <view class="cuopon_item">
  42. <view>
  43. <image class="cuopon_img" src="../../static/youhuiquan2.png" mode=""></image>
  44. </view>
  45. <view class="d-s-c">
  46. <view class="d-s-c item_cuopon">
  47. <view class="price">
  48. <view class="">
  49. <text class="f22">¥</text><text class="f34">{{parseFloat(item.reduce_price)}}</text>
  50. </view>
  51. <view class="f22">优惠券</view>
  52. </view>
  53. <view class="des">
  54. <view class="des_t">{{item.name}}</view>
  55. <view class="des_b" v-if="item.expire_type==20">有效期至{{item.end_time.text}}</view>
  56. <view class="des_b" v-if="item.expire_type==10">领取后{{item.expire_day}}天内有效</view>
  57. </view>
  58. </view>
  59. </view>
  60. <view class="cuopon_num"><text class="f12">x</text>{{item.coupon_num}}</view>
  61. </view>
  62. </view>
  63. </view>
  64. </view>
  65. </view>
  66. <view class="p-0-30" v-if="detail.is_product">
  67. <view class="cuopon-group" if="detail.is_coupon">
  68. <view class="title f30">
  69. <view>商品礼包({{detail.product_list.length}}选{{detail.product_num}})</view>
  70. </view>
  71. <view class="body">
  72. <view class="item mb30 borbox bg-white" v-for="(item,index) in detail.product_list" :key="index" @click="choosePro(item.product_id)">
  73. <image v-if="hasId(item.product_id)" class="pro_choose" src="../../static/yes.png" mode=""></image>
  74. <view v-else class="pro_not"></view>
  75. <view class="d-s-c">
  76. <view>
  77. <image class="product_img" :src="item.image[0].file_path" mode="aspectFill"></image>
  78. </view>
  79. <view class="pro">
  80. <view class="pro_t">{{item.product_name}}</view>
  81. <view class="pro_c" v-if="alreadyChioce[item.product_id]">{{alreadyChioce[item.product_id]}}</view>
  82. <view class="d-b-c">
  83. <view class="pro_b"><text class="f18">¥</text>{{item.product_price}}</view>
  84. <view class="speci" v-if="item.product_multi_spec!=null" @click="openPopup('order',item.product_multi_spec,item)">选规格</view>
  85. </view>
  86. </view>
  87. </view>
  88. </view>
  89. </view>
  90. </view>
  91. </view>
  92. </view>
  93. <view class="buy-checkout">
  94. <view v-if="detail.money!=0" :class="payType==20?'item active border-b-e':'item border-b-e'" @click="choosePaytype(20)">
  95. <view class="d-s-c">
  96. <view class="icon-box d-c-c mr10">
  97. <span class="icon iconfont icon-weixin"></span>
  98. </view>
  99. <text class="key">微信支付</text>
  100. </view>
  101. <view class="icon-box d-c-c type_activ" v-if="payType==20">
  102. <span class="icon iconfont icon-tijiaochenggong"></span>
  103. </view>
  104. </view>
  105. <view v-if="showAlipay" :class="payType==30?'item active border-b-e':'item border-b-e'" @click="choosePaytype(30)">
  106. <view class="d-s-c">
  107. <view class="icon-box d-c-c mr10">
  108. <span class="icon iconfont icon-yue"></span>
  109. </view>
  110. <text class="key">支付宝支付</text>
  111. </view>
  112. <view class="icon-box d-c-c type_activ" v-if="payType==30">
  113. <span class="icon iconfont icon-tijiaochenggong"></span>
  114. </view>
  115. </view>
  116. <view :class="payType==10?'item active':'item'" @click="choosePaytype(10)">
  117. <view class="d-s-c">
  118. <view class="icon-box d-c-c mr10">
  119. <span class="icon iconfont icon-yue"></span>
  120. </view>
  121. <text class="key">余额支付</text>
  122. </view>
  123. <view class="icon-box d-c-c type_activ" v-if="payType==10">
  124. <span class="icon iconfont icon-tijiaochenggong"></span>
  125. </view>
  126. </view>
  127. </view>
  128. </view>
  129. <view class="btns">
  130. <view class="order_price">¥{{detail.money}}</view>
  131. <button @click="onPay()">立即支付</button>
  132. </view>
  133. <!--购物确定-->
  134. <spec :isPopup="isPopup" :productModel="productModel" @close="closePopup"></spec>
  135. </view>
  136. </template>
  137. <script>
  138. import {pay} from '@/common/pay.js';
  139. import Myinfo from './giftpackage/my-info';
  140. import Storeinfo from './giftpackage/store-info';
  141. import spec from './giftpackage/spec.vue';
  142. import utils from '@/common/utils.js';
  143. export default {
  144. components: {
  145. Myinfo,
  146. Storeinfo,
  147. spec
  148. },
  149. data() {
  150. return {
  151. /*是否加载完成*/
  152. loadding: false,
  153. indicatorDots: true,
  154. autoplay: true,
  155. interval: 2000,
  156. duration: 500,
  157. id: 0,
  158. tab_type: 0,
  159. /*礼包详情*/
  160. detail: {
  161. name: '',
  162. point: '',
  163. money: '',
  164. coupon_list: [],
  165. },
  166. store_id: 0,
  167. // 是否存在收货地址
  168. exist_address: false,
  169. /*默认地址*/
  170. Address: null,
  171. /* 配送类别 */
  172. delivery: 10,
  173. extract_store: {},
  174. last_extract: {},
  175. chooseProlist: [],
  176. /*是否显示支付类别弹窗*/
  177. isPayPopup: false,
  178. payType: 10,
  179. /*子级页面传参*/
  180. productModel: {},
  181. /*规格选择弹窗*/
  182. isPopup: false,
  183. /*已经选择的规格*/
  184. alreadyChioce: {},
  185. code: 0,
  186. /* 点击的商品规格 */
  187. chooseSpecData: null,
  188. /*点击的商品详情*/
  189. chooseDetail: {
  190. product_sku: {},
  191. show_sku: {
  192. product_price: '',
  193. product_sku_id: 0,
  194. line_price: '',
  195. stock_num: 0,
  196. sku_image: ''
  197. }
  198. },
  199. params: [],
  200. /*是否显示支付宝支付,只有在h5,非微信内打开才显示*/
  201. showAlipay: false,
  202. }
  203. },
  204. onLoad(e) {
  205. let self = this;
  206. let scene = utils.getSceneData(e);
  207. self.$fire.on('selectStoreId', function(store_id) {
  208. self.store_id = store_id;
  209. });
  210. /*商品id*/
  211. this.package_id = e.package_id;
  212. this.code = e.code;
  213. },
  214. onShow() {
  215. this.getData();
  216. },
  217. methods: {
  218. /*获取数据*/
  219. getData() {
  220. let self = this;
  221. uni.showLoading({
  222. title: '加载中'
  223. })
  224. if (self.detail.name == '') {
  225. self.delivery = 0;
  226. }
  227. let params = {
  228. package_id: self.package_id,
  229. delivery_type: self.delivery,
  230. code: self.code
  231. }
  232. if (self.delivery == 20) {
  233. params.store_id = self.store_id
  234. }
  235. params.pay_source = self.getPlatform();
  236. self._get('plus.package.package/buy', params, function(res) {
  237. self.detail = res.data.data;
  238. self.extract_store = res.data.data.extract_store;
  239. self.exist_address = res.data.data.exist_address;
  240. self.Address = res.data.data.address;
  241. self.delivery = res.data.data.delivery_type;
  242. self.showAlipay = res.data.show_alipay;
  243. uni.hideLoading()
  244. self.loadding = false;
  245. }, function(res) {
  246. uni.navigateBack({
  247. delta: 1
  248. })
  249. });
  250. },
  251. hasType(e) {
  252. if (this.deliverySetting.indexOf(e) != -1) {
  253. return true;
  254. } else {
  255. return false;
  256. }
  257. },
  258. /*选择配送方式*/
  259. tabFunc(e) {
  260. this.tab_type = e;
  261. if (e == 0) {
  262. this.delivery = 10;
  263. } else {
  264. this.delivery = 20;
  265. }
  266. this.getData();
  267. },
  268. hasId(id) {
  269. let self = this;
  270. let n = self.chooseProlist.indexOf(id);
  271. if (n == -1) {
  272. return false;
  273. } else {
  274. return true;
  275. }
  276. },
  277. choosePro(id) {
  278. let self = this;
  279. let n = self.chooseProlist.indexOf(id);
  280. if (n == -1) {
  281. self.chooseProlist.push(id);
  282. } else {
  283. self.chooseProlist.splice(n, 1);
  284. }
  285. },
  286. choosePaytype(payType) {
  287. this.payType = payType;
  288. },
  289. /*购买*/
  290. payTypeFunc() {
  291. let self = this;
  292. uni.showLoading({
  293. title: '正在提交...'
  294. });
  295. let prolist = [];
  296. let errflag = false;
  297. console.log(self.params);
  298. console.log(self.chooseProlist);
  299. self.chooseProlist.forEach((proitem, proindex) => {
  300. let flag = false;
  301. self.params.forEach((pramaitem, pramaindex) => {
  302. if (proitem == pramaitem.product_id) {
  303. flag = true;
  304. prolist.push({
  305. product_id: pramaitem.product_id,
  306. product_sku_id: pramaitem.product_sku_id
  307. })
  308. }
  309. })
  310. if (!flag) {
  311. self.detail.product_list.forEach((item, index) => {
  312. if (item.product_id == proitem) {
  313. if (item.spec_type == 20 && item.product_multi_spec.spec_attr.length > 0) {
  314. uni.showToast({
  315. title: '请选择商品规格',
  316. icon: 'none'
  317. })
  318. errflag = true
  319. } else {
  320. prolist.push({
  321. product_id: item.product_id,
  322. product_sku_id: 0
  323. })
  324. }
  325. }
  326. })
  327. }
  328. })
  329. if (errflag) {
  330. return;
  331. }
  332. let _linkman = null;
  333. let _phone = null;
  334. if (self.$refs != null) {
  335. if (self.$refs.getShopinfoData != null) {
  336. _phone = self.$refs.getShopinfoData.phone;
  337. _linkman = self.$refs.getShopinfoData.linkman;
  338. }
  339. }
  340. let extract = {
  341. phone: _phone,
  342. linkman: _linkman,
  343. store_id: self.store_id
  344. }
  345. let pay_source = 'wx';
  346. // #ifdef H5
  347. pay_source = 'mp';
  348. // #endif
  349. let params = {
  350. code: self.code,
  351. package_id: self.package_id,
  352. pay_source: pay_source,
  353. pay_type: self.payType,
  354. product_ids: JSON.stringify(prolist),
  355. delivery_type: self.delivery,
  356. address: JSON.stringify(self.Address),
  357. extract: JSON.stringify(extract)
  358. }
  359. if (self.delivery == 10) {
  360. params.extract = null;
  361. }
  362. if (self.delivery == 20) {
  363. params.address = null;
  364. }
  365. self._post('plus.package.package/buy', params, function(res) {
  366. pay(res, self, self.paySuccess, self.payError);
  367. });
  368. },
  369. paySuccess: function(result) {
  370. this.showSuccess('礼包购买成功,请在个人中心查看', () => {
  371. uni.switchTab({
  372. url: '/pages/user/index/index'
  373. });
  374. });
  375. },
  376. payError: function(result) {
  377. this.showError('订单未支付成功', () => {
  378. console.log('payError');
  379. });
  380. },
  381. /*支付方式选择*/
  382. onPay() {
  383. let self = this;
  384. // 是否选择了商品
  385. if (self.chooseProlist.length < self.detail.product_num&&self.detail.is_product==1) {
  386. uni.showToast({
  387. icon: 'none',
  388. title: '请选择商品'
  389. });
  390. return;
  391. }
  392. self.payTypeFunc()
  393. },
  394. /*关闭弹窗*/
  395. closePopup(e, params, cart_total_num) {
  396. this.isPopup = false;
  397. let n = this.chooseProlist.indexOf(params.product_id);
  398. if (n == -1) {
  399. this.chooseProlist.push(params.product_id);
  400. }
  401. console.log(params)
  402. if (e && e.spec_attr) {
  403. this.alreadyChioce[params.product_id] = '';
  404. let has = '已选:';
  405. let noone = '';
  406. e.spec_attr.forEach(item => {
  407. if (item.spec_items) {
  408. let h = '';
  409. for (let i = 0; i < item.spec_items.length; i++) {
  410. let child = item.spec_items[i];
  411. if (child.checked) {
  412. h = child.spec_value + ' / ';
  413. break;
  414. }
  415. }
  416. if (h != '') {
  417. has += h;
  418. } else {
  419. noone += item.group_name;
  420. }
  421. }
  422. });
  423. let flag = false;
  424. this.params.forEach((item, index) => {
  425. if (item.product_id == params.product_id) {
  426. flag = true;
  427. item = params;
  428. }
  429. })
  430. if (!flag) {
  431. this.params.push(params)
  432. }
  433. if (noone != '') {
  434. this.alreadyChioce[params.product_id] = noone;
  435. } else {
  436. has = has.replace(/(\s\/\s)$/gi, '');
  437. this.alreadyChioce[params.product_id] = has;
  438. }
  439. }
  440. if (cart_total_num) {
  441. this.cart_total_num = cart_total_num;
  442. }
  443. },
  444. /* 打开弹窗 */
  445. openPopup(e, spe, detail) {
  446. let obj = {
  447. specData: spe,
  448. detail: detail,
  449. productSpecArr: spe != null ? new Array(spe.spec_attr.length) : [],
  450. show_sku: {
  451. sku_image: '',
  452. seckill_price: 0,
  453. product_sku_id: 0,
  454. line_price: 0,
  455. seckill_stock: 0,
  456. seckill_product_sku_id: 0,
  457. sum: 1
  458. },
  459. type: e
  460. };
  461. this.productModel = obj;
  462. this.isPopup = true;
  463. },
  464. }
  465. }
  466. </script>
  467. <style lang="scss">
  468. page {
  469. background-color: #f2f2f2;
  470. }
  471. /*top-tab*/
  472. .top-tabbar {
  473. height: 90rpx;
  474. line-height: 86rpx;
  475. display: flex;
  476. justify-content: space-between;
  477. align-items: center;
  478. background: #FFFFFF;
  479. border-bottom: 1px solid #DDDDDD;
  480. }
  481. .tab-item {
  482. flex: 1;
  483. height: 90rpx;
  484. display: flex;
  485. justify-content: center;
  486. align-items: center;
  487. font-size: 28rpx;
  488. color: #666666;
  489. }
  490. .tab-item.active {
  491. border-bottom: 2px solid $dominant-color;
  492. margin-bottom: -2px;
  493. color: $dominant-color;
  494. }
  495. /* */
  496. .gift-package {
  497. position: relative;
  498. min-height: 100vh;
  499. padding-bottom: 100rpx;
  500. }
  501. .gift-package .gift-package-main {
  502. width: 750rpx;
  503. background: #FFFFFF;
  504. padding: 30rpx;
  505. box-sizing: border-box;
  506. }
  507. .order_tit {
  508. padding-left: 30rpx;
  509. font-size: 28rpx;
  510. margin-bottom: 73rpx;
  511. }
  512. .gift-package-main .giftpackagr-info {
  513. margin: 0 auto;
  514. width: 350rpx;
  515. height: 43rpx;
  516. line-height: 43rpx;
  517. border: 1rpx solid #fa212c;
  518. margin-top: 18rpx;
  519. background: rgba(255, 255, 255, .8);
  520. border-radius: 30rpx;
  521. text-align: center;
  522. }
  523. .gift-package-main .giftpackagr-info .detatime {
  524. /* padding:10px 30px; */
  525. font-size: 18rpx;
  526. color: #fa1f29;
  527. font-weight: 800;
  528. }
  529. .cuopon-group {
  530. color: #ffffff;
  531. text-align: center;
  532. font-size: 30rpx;
  533. background-color: #ffffff30;
  534. border-radius: 15rpx;
  535. padding: 35rpx 0;
  536. }
  537. .cuopon-title {
  538. color: #919191;
  539. font-size: 35rpx;
  540. margin-bottom: 20rpx;
  541. }
  542. .cuopon-group .title {
  543. font-size: 24rpx;
  544. color: #cacaca;
  545. text-align: left;
  546. }
  547. .cuopon-group .body {}
  548. .cuopon_item {
  549. position: relative;
  550. }
  551. .item_cuopon {
  552. z-index: 50;
  553. }
  554. .cuopon-group .body .item {
  555. padding: 20rpx;
  556. display: flex;
  557. flex-direction: column;
  558. border-radius: 20rpx;
  559. position: relative;
  560. }
  561. .cuopon_img {
  562. width: 493rpx;
  563. height: 123rpx;
  564. position: absolute;
  565. top: 0;
  566. left: 0;
  567. }
  568. .cuopon-group .body .item .price {
  569. z-index: 50;
  570. font-size: 18rpx;
  571. margin-left: 26rpx;
  572. }
  573. .cuopon-group .body .item .des {
  574. z-index: 50;
  575. padding: 26rpx 0;
  576. font-size: 24rpx;
  577. text-align: left;
  578. margin-left: 50rpx;
  579. }
  580. .item .des .des_t {
  581. font-size: 26rpx;
  582. color: #000000;
  583. margin-bottom: 12rpx;
  584. }
  585. .item .des .des_c {
  586. font-size: 18rpx;
  587. color: #6b6b6b;
  588. margin-bottom: 8rpx;
  589. }
  590. .item .des .des_b {
  591. font-size: 18rpx;
  592. color: #6b6b6b;
  593. }
  594. .t-c {
  595. text-align: center;
  596. }
  597. .gift-package-main .integral {
  598. background-color: #ffffff66;
  599. padding-bottom: 60rpx;
  600. border-radius: 15rpx;
  601. }
  602. .gift-package-main .integral .title {
  603. font-size: 24rpx;
  604. color: #cacaca;
  605. text-align: left;
  606. }
  607. .gift-package-main .integral_btom {
  608. border: 1rpx solid #cacaca;
  609. height: 193rpx;
  610. background-color: #ffffff;
  611. margin-top: 20rpx;
  612. border-radius: 15rpx;
  613. }
  614. .gift-package-main .integral .info {
  615. margin-left: 30rpx;
  616. width: 300rpx;
  617. color: #f0510e;
  618. }
  619. .gift-package-main .integral image {
  620. width: 135rpx;
  621. height: 135rpx;
  622. margin-left: 40rpx;
  623. }
  624. .gift-package-main .integral .num {
  625. font-size: 50rpx;
  626. }
  627. .btns {
  628. width: 100%;
  629. height: 100rpx;
  630. display: flex;
  631. justify-content: space-between;
  632. align-items: center;
  633. position: fixed;
  634. bottom: 0;
  635. background-color: #FFFFFF;
  636. border-top: 1rpx solid #EEEEEE;
  637. z-index: 99;
  638. }
  639. .order_price {
  640. text-align: right;
  641. color: #fd0000;
  642. font-size: 30rpx;
  643. margin-left: 30rpx;
  644. }
  645. .btns button {
  646. width: 266rpx;
  647. height: 70rpx;
  648. background-color: #ee1413;
  649. color: #FFFFFF;
  650. text-align: center;
  651. line-height: 70rpx;
  652. border-radius: 35rpx;
  653. }
  654. .rule {
  655. overflow: hidden;
  656. position: absolute;
  657. right: 0;
  658. top: 480rpx;
  659. z-index: 100;
  660. }
  661. .rule_btn {
  662. margin-top: 27rpx;
  663. width: 183rpx;
  664. height: 62rpx;
  665. line-height: 62rpx;
  666. text-align: center;
  667. background-color: #e83514;
  668. border: 1rpx solid #ffffff;
  669. border-top-left-radius: 32rpx;
  670. border-bottom-left-radius: 32rpx;
  671. color: #ffffff;
  672. font-size: 26rpx;
  673. }
  674. .add {
  675. font-size: 73rpx;
  676. font-weight: 900;
  677. text-align: center;
  678. color: #FFFFFF;
  679. }
  680. .cuopon_num {
  681. display: inline-block;
  682. width: 40rpx;
  683. height: 40rpx;
  684. border: 1rpx solid #939393;
  685. margin-left: 150rpx;
  686. text-align: center;
  687. line-height: 40rpx;
  688. font-size: 18rpx;
  689. border-radius: 10rpx;
  690. position: absolute;
  691. top: 40px;
  692. right: 15px;
  693. color: #000000;
  694. }
  695. .product_img {
  696. width: 140rpx;
  697. height: 140rpx;
  698. }
  699. .pro {
  700. margin-left: 12rpx;
  701. text-align: left;
  702. flex: 1;
  703. }
  704. .pro_t {
  705. font-size: 24rpx;
  706. color: #000000;
  707. margin-bottom: 15rpx;
  708. }
  709. .pro_c {
  710. font-size: 20rpx;
  711. color: #686868;
  712. }
  713. .pro_b {
  714. font-size: 28rpx;
  715. color: #fd0000;
  716. }
  717. .f18 {
  718. font-size: 18rpx;
  719. }
  720. .pro_choose {
  721. width: 33rpx;
  722. height: 33rpx;
  723. position: absolute;
  724. right: 10rpx;
  725. top: 6rpx;
  726. }
  727. .borbox {
  728. border: 1rpx solid #cacaca;
  729. }
  730. .type_activ {
  731. width: 40rpx;
  732. height: 40rpx;
  733. background-color: #04BE01;
  734. border-radius: 50%;
  735. overflow: hidden;
  736. text-align: center;
  737. line-height: 1;
  738. }
  739. .icon-tijiaochenggong {
  740. color: #FFFFFF;
  741. font-size: 22rpx;
  742. }
  743. .speci {
  744. font-size: 24rpx;
  745. width: 100rpx;
  746. height: 44rpx;
  747. color: #FFFFFF;
  748. text-align: center;
  749. border-radius: 22rpx;
  750. background-color: #fd0000;
  751. line-height: 44rpx;
  752. }
  753. .pro_not{
  754. width: 33rpx;
  755. height: 33rpx;
  756. position: absolute;
  757. right: 10rpx;
  758. top: 6rpx;
  759. border: 1rpx solid #CACACA;
  760. border-radius: 50%;
  761. }
  762. </style>