club-remind.vue 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858
  1. <template>
  2. <view class="container club clearfix">
  3. <view class="club-search clearfix" :style="{ paddingTop: StatusBar + 'px' }">
  4. <view class="search-top" :style="{ height: CustomBar - StatusBar + 'px' }">
  5. <view
  6. class="search-icon"
  7. :style="{
  8. width: CustomBar - StatusBar + 'px',
  9. height: CustomBar - StatusBar + 'px',
  10. lineHeight: CustomBar - StatusBar + 'px;'
  11. }"
  12. >
  13. <text v-if="isShowIndex" @click="handleNavigateIndex" class="iconfont icon-shouye"></text>
  14. <text v-else @click="handleNavigateBack" class="iconfont icon-fanhui"></text>
  15. </view>
  16. <view class="title">机构列表</view>
  17. </view>
  18. <view class="search-main">
  19. <view class="search-from name">
  20. <text class="iconfont icon-iconfonticonfontsousuo1"></text>
  21. <input
  22. class="input"
  23. type="text"
  24. confirm-type="search"
  25. v-model="listQuery.name"
  26. @input="onShowClose"
  27. @confirm="getList"
  28. placeholder="机构名称/联系人/手机号"
  29. maxlength="16"
  30. :style="{ lineHeight: capsule.height + 'px' }"
  31. />
  32. <text class="iconfont icon-shanchu1" v-if="isShowClose" @click="delInputText()"></text>
  33. </view>
  34. </view>
  35. </view>
  36. <view class="club-main">
  37. <view v-if="isEmpty" class="empty-container">
  38. <image
  39. class="club-empty-image"
  40. src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AY2ZjAABpmnBICH4247.png"
  41. mode="aspectFit"
  42. ></image>
  43. <view class="txt">暂无机构数据</view>
  44. </view>
  45. <view v-else class="club-list">
  46. <scroll-view scroll-y="true">
  47. <view class="list" v-for="(club, index) in clubList" :key="index">
  48. <view class="list-cell-top">
  49. <view class="list-logo">
  50. <image
  51. :src="
  52. club.headpic
  53. ? club.headpicx
  54. : 'https://static.caimei365.com/app/img/icon/icon-club@3x.png'
  55. "
  56. mode=""
  57. ></image>
  58. <text class="list-id">编号:{{ club.newClubId }}</text>
  59. <text class="list-tips">{{ club.userIdentity === 2 ? '资质机构' : '个人机构' }}</text>
  60. </view>
  61. <view class="list-content">
  62. <view class="list-name">
  63. {{ club.userIdentity === 2 ? club.name : club.linkMan }}
  64. <text class="tags" v-if="club.vipFlag == 0 && club.userIdentity === 2">VIP</text>
  65. <text class="tags sv" v-if="club.vipFlag == 1">SVIP</text>
  66. <text class="tags xf" v-if="club.newDeal === 1">新分配</text>
  67. </view>
  68. <view class="list-tags">
  69. <text
  70. class="tags"
  71. @click.stop="
  72. this.$api.navigateTo('/pages/service/service?id=1041&title=标签说明')
  73. "
  74. >
  75. {{ club.activeState }} <text class="iconfont icon-xiayibu"></text>
  76. </text>
  77. <text
  78. class="tags"
  79. @click.stop="
  80. this.$api.navigateTo('/pages/service/service?id=1041&title=标签说明')
  81. "
  82. >
  83. {{ club.customerValue }} <text class="iconfont icon-xiayibu"></text>
  84. </text>
  85. <text class="tags-or" @click.stop="handleOrderHistory(club)">
  86. <text class="iconfont icon-dingdan"></text> 订单列表
  87. <text
  88. v-if="club.orderNum > 0"
  89. class="opea-badge uni-badge uni-badge-error uni-small uni-badge--small icon-num"
  90. >
  91. {{ showBadge(club.orderNum) }}
  92. </text>
  93. </text>
  94. </view>
  95. <view class="list-ntel">
  96. <text class="list-link">{{ club.linkMan ? club.linkMan : '' }}</text>
  97. <text class="list-texl" @click="handlePhone(club.contractMobile)">
  98. {{ club.contractMobile ? club.contractMobile : '' }}
  99. </text>
  100. </view>
  101. <view class="list-ntel">
  102. <text class="list-link">最近访问时间:{{ club.providerTime | dateConversion }}</text>
  103. </view>
  104. </view>
  105. </view>
  106. <view class="club-list-bot">
  107. <view class="btn" @click.stop="handleClickOper(1, club)">
  108. <text class="iconfont icon-jigouhuaxiang"></text> 机构画像
  109. </view>
  110. <view class="btn" @click.stop="handleClickOper(2, club)">
  111. <text class="iconfont icon-tianxie"></text> 填写咨询记录
  112. </view>
  113. <view class="btn" @click.stop="handleClickOper(3, club)">
  114. <text class="iconfont icon-shangcheng"></text> 商城访问记录
  115. </view>
  116. <view
  117. class="btn"
  118. @click.stop="handleShowBubble(club, index)"
  119. >
  120. <text class="iconfont icon-gengduo2"></text>
  121. <view
  122. class="btn-bubble"
  123. :style="{
  124. height: isManage ? '180rpx' : '120rpx',
  125. top: isManage ? '-180rpx' : '-120rpx'
  126. }"
  127. v-if="currentIndex === index && club.bubble"
  128. >
  129. <view class="btn-view border" @click.stop="handleClickOper(6, club)">
  130. <text class="iconfont icon-tianxie"></text> 全部咨询记录
  131. </view>
  132. </view>
  133. </view>
  134. </view>
  135. </view>
  136. <!--加载loadding-->
  137. <tui-loadmore :visible="loadding" :index="3" type="black" />
  138. <tui-nomore :visible="!pullUpOn" bgcolor="#f7f7f7" :text="nomoreText" />
  139. </scroll-view>
  140. </view>
  141. </view>
  142. </view>
  143. </template>
  144. <script>
  145. import { mapState, mapMutations } from 'vuex'
  146. import authorize from '@/common/config/authorize.js'
  147. import wxLogin from '@/common/config/wxLogin.js'
  148. const defaultListQuery = {
  149. userIdentity: '',
  150. name: '',
  151. pageNum: 1,
  152. pageSize: 10,
  153. spId: 0,
  154. status: '',
  155. type: 1,
  156. groupServiceId: 0
  157. }
  158. export default {
  159. components: {
  160. },
  161. data() {
  162. return {
  163. listTab: [{ name: '个人机构' }, { name: '资质机构' }],
  164. listQuery: Object.assign({}, defaultListQuery),
  165. isShowClose: false,
  166. isEmpty: false,
  167. nomoreText: '上拉显示更多',
  168. pageNum: 1,
  169. pageSize: 10,
  170. hasNextPage: false,
  171. loadding: false,
  172. pullUpOn: true,
  173. pullFlag: true,
  174. tabCurrentNum: 0,
  175. tabCurrentIndex: 0,
  176. clubList: [],
  177. isIphoneX: this.$store.state.isIphoneX,
  178. CustomBar: this.CustomBar,
  179. StatusBar: this.StatusBar,
  180. capsule: this.capsule,
  181. show_index: 0, //控制显示那个组件
  182. rightDrawer: false,
  183. salesParams: {
  184. choseServiceId: 0,
  185. clubId: 0,
  186. spId: 0
  187. },
  188. isShowIndex: false,
  189. currentIndex: 0
  190. }
  191. },
  192. filters: {
  193. dateConversion(val) {
  194. const date = new Date(val)
  195. const setZero = val => (val < 10 ? '0' + val : val)
  196. return `${date.getFullYear()}-${setZero(date.getMonth() + 1)}-${setZero(date.getDate())} ${setZero(
  197. date.getHours()
  198. )}:${setZero(date.getMinutes())}:${setZero(date.getSeconds())}`
  199. }
  200. },
  201. onLoad(option) {
  202. if (option.type === 'wechat') {
  203. this.isShowIndex = true
  204. }
  205. },
  206. computed: {
  207. ...mapState(['isManage'])
  208. },
  209. methods: {
  210. async initGetStotage() {
  211. // 初始化
  212. const userInfo = await this.$api.getStorage()
  213. this.listQuery.spId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
  214. this.salesParams.choseServiceId = userInfo.serviceProviderId ? userInfo.serviceProviderId : 0
  215. this.getList()
  216. },
  217. async getList() {
  218. try{
  219. this.listQuery.pageNum = 1
  220. const res = await this.SellerService.GetSellerClubList(this.listQuery)
  221. const data = res.data
  222. if (data.list && data.list.length > 0) {
  223. this.isEmpty = false
  224. this.hasNextPage = data.hasNextPage
  225. this.clubList = data.list.map((el, index) => {
  226. el.bubble = false
  227. return el
  228. })
  229. this.pullFlag = false
  230. setTimeout(() => {
  231. this.pullFlag = true
  232. }, 500)
  233. if (this.hasNextPage) {
  234. this.pullUpOn = false
  235. this.nomoreText = '上拉显示更多'
  236. } else {
  237. this.pullUpOn = true
  238. this.loadding = false
  239. this.nomoreText = '已至底部'
  240. }
  241. } else {
  242. this.isEmpty = true
  243. }
  244. }catch(error){
  245. //TODO handle the exception
  246. this.$util.msg(error.msg, 2000)
  247. }
  248. },
  249. async getOnReachBottomData() {
  250. try{
  251. this.listQuery.pageNum++
  252. const res = await this.SellerService.GetSellerClubList(this.listQuery)
  253. const data = res.data
  254. if (data.list && data.list.length > 0) {
  255. this.hasNextPage = data.hasNextPage
  256. this.clubList = this.clubList.concat(data.list)
  257. this.pullFlag = false // 防上拉暴滑
  258. setTimeout(() => {
  259. this.pullFlag = true
  260. }, 500)
  261. if (this.hasNextPage) {
  262. this.pullUpOn = false
  263. this.nomoreText = '上拉显示更多'
  264. } else {
  265. this.pullUpOn = false
  266. this.loadding = false
  267. this.nomoreText = '已至底部'
  268. }
  269. }
  270. }catch(error){
  271. //TODO handle the exception
  272. this.$util.msg(error.msg, 2000)
  273. }
  274. },
  275. // 按钮操作
  276. handleClickOper(type, club) {
  277. /**
  278. * 1:机构画像 2:填写咨询记录 3:商城访问记录 4:修改资料 5:更换协销
  279. * */
  280. console.log('type', type)
  281. switch (type) {
  282. case 1:
  283. this.$api.navigateTo(`/pages/seller/club/club-portrait?userId=${club.userId}`)
  284. break
  285. case 2:
  286. this.$api.navigateTo(`/pages/seller/remarks/add?userId=${club.userId}`)
  287. break
  288. case 3:
  289. this.$api.navigateTo(`/pages/seller/club/club-visit?clubId=${club.clubId}`)
  290. break
  291. case 4:
  292. this.handleReturnPath(club)
  293. break
  294. case 5:
  295. this.handleReplaceClub(club)
  296. break
  297. case 6:
  298. this.$api.navigateTo(`/pages/seller/remarks/record-club-list?clubId=${club.clubId}`)
  299. break
  300. }
  301. },
  302. handleOrderHistory(club) {
  303. //跳转机构历史订单
  304. this.$api.setStorage('orderUserInfo', club)
  305. this.$api.navigateTo(`/pages/seller/order/order-historylist?clubId=${club.clubId}&listType=0`)
  306. },
  307. // 拨打电话
  308. handlePhone(phoneNumber) {
  309. uni.makePhoneCall({
  310. phoneNumber: phoneNumber //拨打电话
  311. })
  312. },
  313. onShowClose() {
  314. //输入框失去焦点时触发
  315. if (this.listQuery.name != '') {
  316. this.isShowClose = true
  317. } else {
  318. this.isShowClose = false
  319. }
  320. },
  321. delInputText() {
  322. //清除输入框内容
  323. this.listQuery.name = ''
  324. this.isShowClose = false
  325. },
  326. showBadge(n) {
  327. let num = ''
  328. if (n > 100) {
  329. num = 99
  330. } else {
  331. num = n
  332. }
  333. return num
  334. },
  335. handleNavigateBack() {
  336. this.$api.navigateBack(1)
  337. },
  338. handleNavigateIndex() {
  339. this.$api.navigateTo('/pages/seller/index/index')
  340. },
  341. handleShowBubble(club, index) {
  342. this.currentIndex = index
  343. club.bubble = !club.bubble
  344. }
  345. },
  346. onReachBottom() {
  347. if (this.hasNextPage) {
  348. this.loadding = true
  349. this.pullUpOn = true
  350. this.getOnReachBottomData()
  351. }
  352. },
  353. onShow() {
  354. wxLogin.wxLoginAuthorize()
  355. this.initGetStotage()
  356. }
  357. }
  358. </script>
  359. <style lang="scss">
  360. page {
  361. height: auto;
  362. }
  363. page,
  364. .container {
  365. /* padding-bottom: 120upx; */
  366. background: #FFFFFF;
  367. }
  368. .container {
  369. position: relative;
  370. }
  371. .club-search {
  372. height: auto;
  373. width: 100%;
  374. background: #ffffff;
  375. display: flex;
  376. flex-direction: column;
  377. position: fixed;
  378. top: 0;
  379. left: 0;
  380. z-index: 99;
  381. .search-top {
  382. flex: 1;
  383. display: flex;
  384. align-items: center;
  385. box-sizing: border-box;
  386. position: relative;
  387. .title {
  388. position: absolute;
  389. left: 50%;
  390. top: 50%;
  391. transform: translate(-50%, -50%);
  392. }
  393. .search-icon {
  394. text-align: center;
  395. float: left;
  396. .icon-fanhui {
  397. font-size: 44rpx;
  398. color: #333333;
  399. }
  400. .icon-shouye {
  401. font-size: 44rpx;
  402. color: #333333;
  403. }
  404. }
  405. }
  406. .search-main {
  407. width: 100%;
  408. height: 80rpx;
  409. box-sizing: border-box;
  410. padding: 10rpx 24rpx;
  411. .search-from {
  412. background: #f7f7f7;
  413. position: relative;
  414. width: 642rpx;
  415. height: 100%;
  416. padding-right: 60rpx;
  417. box-sizing: border-box;
  418. padding: 0 10rpx;
  419. float: left;
  420. border-radius: 30rpx;
  421. .icon-iconfonticonfontsousuo1 {
  422. width: 60rpx;
  423. height: 60rpx;
  424. line-height: 60rpx;
  425. text-align: center;
  426. display: block;
  427. font-size: $font-size-38;
  428. float: left;
  429. color: #999999;
  430. }
  431. .input {
  432. width: 520rpx;
  433. height: 100%;
  434. float: left;
  435. color: $text-color;
  436. font-size: $font-size-24;
  437. box-sizing: border-box;
  438. padding-left: 10rpx;
  439. }
  440. .icon-shanchu1 {
  441. font-size: $font-size-32;
  442. color: #999999;
  443. position: absolute;
  444. width: 60rpx;
  445. height: 60rpx;
  446. line-height: 60rpx;
  447. text-align: center;
  448. top: 0;
  449. right: 0;
  450. z-index: 10;
  451. }
  452. }
  453. .search-btn {
  454. width: 60rpx;
  455. height: 60rpx;
  456. line-height: 60rpx;
  457. text-align: center;
  458. font-size: $font-size-28;
  459. color: $color-system;
  460. float: left;
  461. background: #ffffff;
  462. .icon-shaixuan {
  463. font-size: 44rpx;
  464. color: #333333;
  465. }
  466. }
  467. }
  468. .search-tab {
  469. height: 80rpx;
  470. display: flex;
  471. flex: 1;
  472. background: #ffffff;
  473. border-bottom: 1px solid #efefef;
  474. .tab-item {
  475. flex: 1;
  476. line-height: 80rpx;
  477. text-align: center;
  478. color: $text-color;
  479. font-size: $font-size-28;
  480. position: relative;
  481. .item-text {
  482. padding: 10rpx 0;
  483. border-bottom: 2px solid #ffffff;
  484. }
  485. &:nth-child(1)::before {
  486. content: '';
  487. width: 2px;
  488. height: 50rpx;
  489. position: absolute;
  490. right: 0;
  491. top: 15rpx;
  492. background: #ebebeb;
  493. }
  494. &.current {
  495. color: $color-system;
  496. .item-text {
  497. border-color: $color-system;
  498. }
  499. }
  500. }
  501. }
  502. .search-smalltab {
  503. width: 100%;
  504. height: 104rpx;
  505. background: #ffffff;
  506. box-sizing: border-box;
  507. padding: 20rpx 24rpx;
  508. .tab-item {
  509. width: 168rpx;
  510. height: 64rpx;
  511. line-height: 64rpx;
  512. text-align: center;
  513. color: $text-color;
  514. font-size: $font-size-28;
  515. float: left;
  516. border-radius: 32rpx;
  517. border: 1px solid #b2b2b2;
  518. margin-right: 32rpx;
  519. &.current {
  520. color: #ff5b00;
  521. border: 1px solid #ff5b00;
  522. }
  523. }
  524. }
  525. }
  526. .club-main {
  527. width: 100%;
  528. padding-top: 248rpx;
  529. .list {
  530. width: 100%;
  531. height: 320rpx;
  532. padding: 24rpx;
  533. box-sizing: border-box;
  534. background: #ffffff;
  535. position: relative;
  536. border-bottom: 1px solid #ebebeb;
  537. .list-cell-top {
  538. width: 100%;
  539. height: 140rpx;
  540. box-sizing: border-box;
  541. .list-logo {
  542. width: 140rpx;
  543. height: 140rpx;
  544. float: left;
  545. position: relative;
  546. image {
  547. width: 140rpx;
  548. height: 140rpx;
  549. border-radius: 8rpx;
  550. }
  551. .list-tips {
  552. display: inline-block;
  553. width: 100%;
  554. height: 32rpx;
  555. line-height: 32rpx;
  556. background: rgba(0, 0, 0, 0.1);
  557. color: #333;
  558. position: absolute;
  559. bottom: 0;
  560. left: 0;
  561. box-sizing: border-box;
  562. text-align: left;
  563. font-size: 20rpx;
  564. padding-left: 4rpx;
  565. border-radius: 8rpx 8rpx 0 0;
  566. text-align: center;
  567. }
  568. .list-id {
  569. display: inline-block;
  570. width: 100%;
  571. height: 32rpx;
  572. line-height: 32rpx;
  573. background: rgba(0, 0, 0, 0.1);
  574. color: #333;
  575. position: absolute;
  576. top: 0;
  577. left: 0;
  578. box-sizing: border-box;
  579. text-align: left;
  580. font-size: 20rpx;
  581. padding-left: 4rpx;
  582. border-radius: 8rpx 8rpx 0 0;
  583. text-align: center;
  584. }
  585. }
  586. .list-content {
  587. width: 560rpx;
  588. height: 180rpx;
  589. float: left;
  590. padding-left: 20rpx;
  591. box-sizing: border-box;
  592. .list-name {
  593. width: 100%;
  594. height: 50rpx;
  595. float: left;
  596. line-height: 50rpx;
  597. text-align: left;
  598. font-size: $font-size-26;
  599. color: #333333;
  600. .tags {
  601. display: inline-block;
  602. height: 36rpx;
  603. box-sizing: border-box;
  604. padding: 0 15rpx;
  605. border-radius: 8rpx;
  606. background: #f0cb72;
  607. font-size: $font-size-22;
  608. color: #4e4539;
  609. text-align: center;
  610. line-height: 36rpx;
  611. margin-left: 20rpx;
  612. margin-top: 7rpx;
  613. &.sv {
  614. background: #333333;
  615. color: #f0cb72;
  616. }
  617. &.xf {
  618. background-color: #f94b4b;
  619. color: #ffffff;
  620. }
  621. }
  622. }
  623. .list-tags {
  624. width: 100%;
  625. height: 36rpx;
  626. float: left;
  627. line-height: 36rpx;
  628. margin: 7rpx 0;
  629. .tags {
  630. display: inline-block;
  631. height: 36rpx;
  632. box-sizing: border-box;
  633. padding: 0 8rpx 0 15rpx;
  634. border-radius: 8rpx;
  635. background: #faede5;
  636. font-size: $font-size-22;
  637. color: $color-system;
  638. text-align: center;
  639. line-height: 36rpx;
  640. margin-right: 16rpx;
  641. .icon-xiayibu {
  642. font-size: 20rpx;
  643. margin-left: 10rpx;
  644. }
  645. }
  646. .tags-or {
  647. display: inline-block;
  648. height: 36rpx;
  649. box-sizing: border-box;
  650. font-size: $font-size-22;
  651. color: #1890f9;
  652. text-align: center;
  653. line-height: 36rpx;
  654. position: relative;
  655. .opea-badge {
  656. position: absolute;
  657. right: -30rpx;
  658. top: -15rpx;
  659. }
  660. .icon-xiayibu {
  661. font-size: 22rpx;
  662. color: #1890f9;
  663. }
  664. }
  665. }
  666. .list-ntel {
  667. width: 100%;
  668. height: 50rpx;
  669. float: left;
  670. line-height: 50rpx;
  671. text-align: left;
  672. font-size: $font-size-24;
  673. color: #666666;
  674. .list-link {
  675. display: inline-block;
  676. float: left;
  677. margin-right: 12rpx;
  678. }
  679. .list-texl {
  680. display: inline-block;
  681. float: left;
  682. text-decoration: underline;
  683. }
  684. }
  685. }
  686. }
  687. .club-list-bot {
  688. width: 100%;
  689. height: 80rpx;
  690. float: left;
  691. background-color: #f7f7f7;
  692. border-radius: 8rpx;
  693. margin-top: 20rpx;
  694. .btn {
  695. height: 80rpx;
  696. box-sizing: border-box;
  697. line-height: 80rpx;
  698. padding: 0 20rpx;
  699. font-size: $font-size-24;
  700. color: #333333;
  701. text-align: center;
  702. float: left;
  703. position: relative;
  704. &:nth-child(1) {
  705. &:before {
  706. content: '';
  707. width: 1px;
  708. height: 20rpx;
  709. background-color: #b2b2b2;
  710. position: absolute;
  711. right: 0;
  712. top: 30rpx;
  713. }
  714. }
  715. &:nth-child(2) {
  716. &:before {
  717. content: '';
  718. width: 1px;
  719. height: 20rpx;
  720. background-color: #b2b2b2;
  721. position: absolute;
  722. right: 0;
  723. top: 30rpx;
  724. }
  725. }
  726. &:nth-child(3) {
  727. &:before {
  728. content: '';
  729. width: 1px;
  730. height: 20rpx;
  731. background-color: #b2b2b2;
  732. position: absolute;
  733. right: 0;
  734. top: 30rpx;
  735. }
  736. }
  737. &:last-child {
  738. padding: 0 28rpx;
  739. .iconfont {
  740. font-weight: bold;
  741. }
  742. .btn-bubble {
  743. width: 200rpx;
  744. height: 120rpx;
  745. background: rgba(51, 51, 51, 0.8);
  746. position: absolute;
  747. top: -120rpx;
  748. right: 0;
  749. border-radius: 8rpx;
  750. &:before {
  751. content: '';
  752. width: 0;
  753. height: 0;
  754. border: 15rpx solid transparent;
  755. border-top: 15rpx solid rgba(51, 51, 51, 0.8);
  756. position: absolute;
  757. bottom: -26rpx;
  758. right: 35rpx;
  759. }
  760. .btn-view {
  761. width: 100%;
  762. height: 60rpx;
  763. box-sizing: border-box;
  764. line-height: 60rpx;
  765. font-size: $font-size-24;
  766. color: #ffffff;
  767. text-align: center;
  768. float: left;
  769. .iconfont {
  770. font-size: 28rpx;
  771. color: #ffffff;
  772. margin-right: 5rpx;
  773. font-weight: normal;
  774. }
  775. &.border {
  776. border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  777. }
  778. }
  779. }
  780. }
  781. &.none {
  782. &::before {
  783. background-color: #f7f7f7 !important;
  784. }
  785. }
  786. .iconfont {
  787. font-size: 30rpx;
  788. color: #333333;
  789. margin-right: 5rpx;
  790. }
  791. }
  792. }
  793. }
  794. }
  795. .tabBar {
  796. width: 100%;
  797. height: 98rpx;
  798. background: #fff;
  799. border-top: 1px solid #e5e5e5;
  800. position: fixed;
  801. bottom: 0px;
  802. left: 0px;
  803. right: 0px;
  804. z-index: 99;
  805. display: flex;
  806. align-items: center;
  807. justify-content: center;
  808. .tabBar_list {
  809. width: 86%;
  810. display: flex;
  811. justify-content: space-between;
  812. .tabBar_item {
  813. width: 120rpx;
  814. display: flex;
  815. justify-content: center;
  816. align-items: center;
  817. flex-direction: column;
  818. font-size: 20rpx;
  819. color: #999999;
  820. &.current {
  821. color: #166ce1;
  822. .iconfont {
  823. color: #166ce1;
  824. }
  825. }
  826. &.current1 {
  827. color: #16e15c;
  828. .iconfont {
  829. color: #16e15c;
  830. }
  831. }
  832. &.current2 {
  833. color: #ff0000;
  834. .iconfont {
  835. color: #ff0000;
  836. }
  837. }
  838. .iconfont {
  839. width: 48rpx;
  840. height: 48rpx;
  841. display: block;
  842. margin-bottom: 2rpx;
  843. text-align: center;
  844. font-size: 46rpx;
  845. color: #999999;
  846. }
  847. }
  848. }
  849. }
  850. .nav_active {
  851. color: $color-system;
  852. }
  853. </style>