list.vue 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677
  1. <template>
  2. <div
  3. :class="mobile ? 'mobileMain' : ''"
  4. :style="{marginTop: mainMarginTop, marginBottom: mobile ? '0px' : '30px !important'}">
  5. <div class="consult-wrapper" v-if="!mobile">
  6. <div class="consult-top">
  7. <div class="tabs">
  8. <!-- <a href="/skill/" class="tabs-item">技能服务</a> -->
  9. <div class="tabs-item active">咨询服务</div>
  10. <a href="/learn/" class="tabs-item">客栈学院</a>
  11. <el-button class="add-btn" @click="handleClickAdd">添加咨询赚钱</el-button>
  12. </div>
  13. <div class="consult-category-wrapper">
  14. <!-- <div class="category-title">技术分类</div> -->
  15. <!-- 一级分类内容 -->
  16. <div
  17. class="category-one-wrapper"
  18. :class="categoryExpanded ? 'expand' : ''">
  19. <!-- 更多 -->
  20. <!-- <div
  21. class="category-more"
  22. @click="handleClickExpandCategory">{{ categoryExpanded ? '收起' : '更多' }}</div> -->
  23. <!-- 全部 -->
  24. <a
  25. href="/consult/"
  26. class="category-one-item"
  27. :class="pagination.selectedCateIdOne == '' ? 'active' : ''">全部</a>
  28. <!-- 一级分类 -->
  29. <a
  30. v-for="categoryOne in consultCate"
  31. :key="categoryOne.value"
  32. class="category-one-item"
  33. :class="pagination.selectedCateIdOne == categoryOne.value ? 'active' : ''"
  34. :href="`/consult/${categoryOne.value}/`">{{ categoryOne.label }}</a>
  35. </div>
  36. <!-- 二级分类内容 -->
  37. <div class="category-two-wrapper">
  38. <div
  39. class="category-two-content"
  40. v-for="categoryOne in consultCate"
  41. :key="`cate-two-parnet${categoryOne.value}`"
  42. v-show="pagination.selectedCateIdOne == categoryOne.value">
  43. <a
  44. class="category-two-item"
  45. :class="pagination.selectedCateIdTwo == categoryTwo.value ? 'active' : ''"
  46. :href="`/consult/${categoryTwo.value}/`"
  47. v-for="categoryTwo in categoryOne.children"
  48. :key="`cate-two-${categoryTwo.value}`">{{ categoryTwo.label }}</a>
  49. </div>
  50. </div>
  51. </div>
  52. <!-- 最新的交易数据 -->
  53. <div class="newest-trade-wrapper" :style="{ marginTop: pagination.selectedCateIdTwo ? '8px' : 0 }">
  54. <el-carousel
  55. height="34px"
  56. direction="vertical"
  57. autoplay
  58. loop
  59. :interval="1600"
  60. indicator-position="none">
  61. <el-carousel-item v-for="(item, index) in newestTradeList" :key="`newest-trade-${index}`">
  62. <div class="newest-trade-item">
  63. <div class="newest-trade-item-content">
  64. <img :src="item.avatar" class="avatar">
  65. <span class="time">{{ item.time }}</span>
  66. <span class="nickname">{{ item.nickname }}</span>
  67. <span class="event">{{ item.event_name }}</span>
  68. <span class="price">¥{{ item.price }}</span>
  69. </div>
  70. </div>
  71. </el-carousel-item>
  72. </el-carousel>
  73. </div>
  74. </div>
  75. <div class="consult-content">
  76. <div class="consult-list-wrapper" v-if="consultList.length">
  77. <div
  78. class="consult-item-new"
  79. v-for="item in consultList"
  80. :key="item.uid">
  81. <a class="consult-item-top" :href="`/c/${item.uid}`">
  82. <img class="consult-cover" :src="item.zx_sale_img" alt="cover">
  83. <div class="consult-info">
  84. <div class="consult-info-title">TA擅长的</div>
  85. <div
  86. class="consult-info-text"
  87. v-for="(consultItem, index) in item.saleList"
  88. v-show="index <= 2"
  89. :key="index">
  90. {{ index + 1 }}· {{ consultItem.title }}
  91. </div>
  92. </div>
  93. </a>
  94. <div class="owner-info">
  95. <a class="owner-content" :href="`/wo/${item.uid}`">
  96. <img :src="item.avatar" class="user-avatar" alt="userAvatar">
  97. <!-- <img class="img" :src="defaultImg" v-real-img="item.avatar" alt="userAvatar"> -->
  98. <span class="nickname">{{ item.nickname }}</span>
  99. <img class="cert-img" v-if="item.freework_level == 3" src="@/assets/img/common/cert-f3@2x.png">
  100. <img class="cert-img" v-if="item.freework_level == 2" src="@/assets/img/common/cert-f2@2x.png">
  101. </a>
  102. <div class="trade-info" v-if="item.zxLastOrder.buy_uid">
  103. <img :src="item.zxLastOrder.avatar" class="avatar">
  104. <!-- <span class="time">12</span> -->
  105. <span class="trade-text">{{ item.zxLastOrder.nickname }} 发起咨询</span>
  106. </div>
  107. </div>
  108. <div class="owner-company">{{ item.company }} {{ item.title }}</div>
  109. <div class="price-info">
  110. <div class="price-content">
  111. <div class="price">¥{{ item.zxPriceMin }}<span>起</span></div>
  112. <div class="num">{{ item.zxViewNum }}人浏览过</div>
  113. </div>
  114. <div class="buyer-content">
  115. <div v-if="item.zxViewInfo && item.zxViewInfo.length==4" style="display:flex;">
  116. <img
  117. class="buyer-item"
  118. v-for="(buyerInfo, index) in item.zxViewInfo"
  119. :key="`${buyerInfo.avatar}-${index}`"
  120. :src="buyerInfo.avatar"/>
  121. <span class="more-img">...</span>
  122. </div>
  123. <div v-else>
  124. <img
  125. class="buyer-item"
  126. v-for="(buyerInfo, index) in item.zxViewInfo"
  127. :key="`${buyerInfo.avatar}-${index}`"
  128. :src="buyerInfo.avatar">
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. <!-- <a
  134. class="consult-item"
  135. v-for="item in consultList"
  136. :key="item.uid"
  137. :href="`/c/${item.uid}`">
  138. <div class="owner-info">
  139. <img :src="item.avatar" style="border-radius:50% !important;" class="avatar" alt="avatar">
  140. <div class="owner-content">
  141. <div class="nickname">{{ item.nickname }}</div>
  142. <div class="company">{{ item.company }} {{ item.title }}</div>
  143. <div class="price">¥{{ item.zxPriceMin }}<span>起</span></div>
  144. </div>
  145. </div>
  146. <div class="consult-info">
  147. <div
  148. class="consult-info-item"
  149. v-for="(consultItem, index) in item.saleList"
  150. :key="index">
  151. · {{ consultItem.title }}
  152. </div>
  153. </div>
  154. <div class="stats-info">
  155. <div v-if="item.zxTotalNum"><span class="num">{{ item.zxTotalNum }}</span> 人咨询过</div>
  156. <div v-if="item.zxTotalNum && item.zxRating" class="line"></div>
  157. <div v-if="item.zxRating">响应率:<span class="rate">{{ item.zxRatingText }}</span></div>
  158. </div>
  159. </a> -->
  160. </div>
  161. <div class="result-empty-wrapper" v-else>
  162. <img src="@/assets/img/common/empty@2x.png" alt="empty">
  163. <span>暂无搜索内容</span>
  164. </div>
  165. <div class="pagination-wrapper" v-if="pagination.pageCount > 1">
  166. <el-pagination
  167. background
  168. layout="prev, pager, next"
  169. :current-page="pagination.page"
  170. :page-count="pagination.pageCount"
  171. @current-change="handlePageChange">
  172. </el-pagination>
  173. </div>
  174. </div>
  175. </div>
  176. <div class="consult-wrapper-mobile" v-else>
  177. <div class="consult-category">
  178. <div class="consult-category-one">
  179. <div class="category-scroller">
  180. <div
  181. class="consult-category-one-item"
  182. :class="!pagination.selectedCateIdOne ? 'active' : ''"
  183. @click="handleClickCategoryOne(0)">
  184. 全部
  185. </div>
  186. <div
  187. class="consult-category-one-item"
  188. :class="pagination.selectedCateIdOne == category.value ? 'active' : ''"
  189. v-for="(category) in consultCate"
  190. :key="`category-one-${category.value}`"
  191. @click="handleClickCategoryOne(category.value)">
  192. {{ category.label }}
  193. </div>
  194. </div>
  195. <!-- filter -->
  196. <div class="filter-bg"></div>
  197. <div class="filter-wrapper" @click="handleShowCategoryDrawer">
  198. <img src="@/assets/img/works/filter-icon@2x.png" alt="filter">
  199. </div>
  200. </div>
  201. <div class="consult-category-two">
  202. <!-- 全部二级分类 -->
  203. <div
  204. class="consult-category-two-wrapper"
  205. v-show="!pagination.selectedCateIdOne">
  206. <div
  207. class="consult-category-two-item"
  208. :class="pagination.selectedCateIdTwo == category.value ? 'active' : ''"
  209. v-for="category in consultCateAll"
  210. :key="`category-all-${category.value}`"
  211. @click="handleClickCategoryTwo(category.value)">
  212. {{ category.label }}
  213. </div>
  214. </div>
  215. <!-- 接口返回的二级分类 -->
  216. <div
  217. class="consult-category-two-wrapper"
  218. v-for="(category) in consultCate"
  219. :key="`category-two-wrapper-${category.value}`"
  220. v-show="pagination.selectedCateIdOne === category.value">
  221. <div
  222. class="consult-category-two-item"
  223. :class="pagination.selectedCateIdTwo == categoryChild.value ? 'active' : ''"
  224. v-for="categoryChild in category.children"
  225. :key="`category-two-${categoryChild.value}`"
  226. @click="handleClickCategoryTwo(categoryChild.value)">
  227. {{ categoryChild.label }}
  228. </div>
  229. </div>
  230. </div>
  231. </div>
  232. <div class="consult-list" :class="showWxHeader ? 'consult-list__showWxHeader' : ''">
  233. <ul
  234. class="consult-list-wrapper"
  235. v-infinite-scroll="handleLoadMoreConsult"
  236. :infinite-scroll-disabled="pagination.noMore"
  237. :infinite-scroll-immediate="false">
  238. <div
  239. class="consult-item"
  240. v-for="item in consultList"
  241. :key="item.uid"
  242. @click="handleClickConsultItem(item.uid)">
  243. <div class="owner-content">
  244. <img class="avatar" style="border-radius:50% !important;" v-lazy="item.avatar" alt="avatar">
  245. <div class="owner-info">
  246. <div class="nickname">{{ item.nickname }}</div>
  247. <div class="company">{{ item.company }} {{ item.title }}</div>
  248. <div class="price">¥{{ item.zxPriceMin }}<span>起</span></div>
  249. </div>
  250. </div>
  251. <div class="consult-info">
  252. <div
  253. class="consult-info-item"
  254. v-for="(consultItem, index) in item.saleList"
  255. :key="index">
  256. · {{ consultItem.title }}
  257. </div>
  258. </div>
  259. <div class="stats-info">
  260. <div v-if="item.zxTotalNum"><span class="num">{{ item.zxTotalNum }}</span> 人咨询过</div>
  261. <div v-if="item.zxTotalNum && item.zxRating" class="line"></div>
  262. <div v-if="item.zxRating">响应率:<span class="rate">{{ item.zxRatingText }}</span></div>
  263. </div>
  264. </div>
  265. <!-- 空数据 -->
  266. <div class="result-empty-wrapper" v-if="!consultList.length && !pagination.loading">
  267. <img src="@/assets/img/common/empty@2x.png" alt="empty">
  268. <span>暂无搜索内容</span>
  269. </div>
  270. <p v-if="pagination.loading" class="consult-list-tips">加载中...</p>
  271. <p v-if="consultList.length && pagination.noMore" class="consult-list-tips">没有更多了</p>
  272. </ul>
  273. </div>
  274. <!-- 弹出的分类选择 -->
  275. <el-drawer
  276. ref="categoryDrawer"
  277. class="category-drawer"
  278. :visible.sync="showCategoryDrawer"
  279. direction="ttb"
  280. :withHeader="false">
  281. <div class="drawer-category-one">
  282. <div
  283. class="drawer-category-one-item"
  284. :class="currentDrawerCategoryIndex === 0 ? 'active' : ''"
  285. @click="handleClickDrawerCategoryOne(0)">
  286. 全部
  287. </div>
  288. <div
  289. class="drawer-category-one-item"
  290. :class="currentDrawerCategoryIndex === index + 1 ? 'active' : ''"
  291. v-for="(category, index) in consultCate"
  292. :key="`drawer-category-one-${category.value}`"
  293. @click="handleClickDrawerCategoryOne(index + 1)">
  294. {{ category.label }}
  295. </div>
  296. </div>
  297. <div class="drawer-category-two">
  298. <!-- 全部二级分类 -->
  299. <div
  300. class="drawer-category-two-wrapper"
  301. v-show="currentDrawerCategoryIndex === 0">
  302. <div
  303. class="drawer-category-two-item"
  304. :class="currentDrawerCategoryId == category.value ? 'active' : ''"
  305. v-for="category in consultCateAll"
  306. :key="`drawer-category-all-${category.value}`"
  307. @click="handleClickDrawerCategoryTwo(category.value)">
  308. {{ category.label }}
  309. </div>
  310. </div>
  311. <!-- 接口返回的二级分类 -->
  312. <div
  313. class="drawer-category-two-wrapper"
  314. v-for="(category, index) in consultCate"
  315. :key="`drawer-category-two-wrapper-${category.value}`"
  316. v-show="currentDrawerCategoryIndex === index + 1">
  317. <div
  318. class="drawer-category-two-item"
  319. :class="currentDrawerCategoryId == categoryChild.value ? 'active' : ''"
  320. v-for="categoryChild in category.children"
  321. :key="`drawer-category-two-${categoryChild.value}`"
  322. @click="handleClickDrawerCategoryTwo(categoryChild.value)">
  323. {{ categoryChild.label }}
  324. </div>
  325. </div>
  326. </div>
  327. </el-drawer>
  328. </div>
  329. </div>
  330. </template>
  331. <script>
  332. import {mapState} from "vuex"
  333. import DealSeoList from "@/components/consult/dealSeoList"
  334. import qs from "qs"
  335. export default {
  336. name: 'SeoConsultList',
  337. data () {
  338. return {
  339. baseUrl: '',
  340. // firstLoad: true,
  341. isWeixinApp: true,
  342. categoryExpanded: true, // 更多按钮不要,默认为展开状态
  343. showCategoryDrawer: false,
  344. currentDrawerCategoryId: 0,
  345. currentDrawerCategoryIndex: 0,
  346. // defaultImg: require('@/assets/img/common/empty@2x.png')
  347. }
  348. },
  349. head() {
  350. const {
  351. title = "",
  352. keyword = "",
  353. description = "",
  354. h1 = "",
  355. canonical = "",
  356. metaLocation
  357. } = this.head || {}
  358. let obj = {
  359. title: title,
  360. meta: [{
  361. name: "keywords",
  362. content: keyword
  363. }, {
  364. name: "description",
  365. content: description
  366. }, {
  367. name: "h1",
  368. content: h1
  369. }],
  370. link: [{rel: "canonical", href: canonical}]
  371. }
  372. if (metaLocation) {
  373. obj.meta.push({name: "location", content: metaLocation})
  374. }
  375. return obj
  376. },
  377. computed: {
  378. ...mapState(["deviceType"]),
  379. showWxHeader () {
  380. return !this.deviceType.app && !this.isWeixinApp &&
  381. (this.deviceType.android || this.deviceType.ios)
  382. },
  383. mainMarginTop () {
  384. if (this.mobile && this.showWxHeader) {
  385. return '64px !important'
  386. } else if (this.mobile) {
  387. return '0px !important'
  388. } else {
  389. return '20px !important'
  390. }
  391. }
  392. },
  393. async asyncData ({...params}) {
  394. let dealDataObj = new DealSeoList(params)
  395. let ans = await dealDataObj.dealData()
  396. return {
  397. ...ans
  398. }
  399. },
  400. mounted () {
  401. this.baseUrl = this.$store.state.domainConfig.siteUrl
  402. this.isWeixinApp = navigator.userAgent.indexOf("miniProgram") > -1
  403. },
  404. methods: {
  405. /** 分页获取技能列表数据 */
  406. _getConsultList () {
  407. const self = this
  408. const data = {
  409. page: this.pagination.page,
  410. sale_zx_open: 1,
  411. cate_id_two_zx: this.pagination.selectedCateIdTwo || '',
  412. root_type: this.root_type
  413. }
  414. this.pagination.loading = true
  415. this.pagination.noMore = false
  416. this.$axios.$post('/api/user_list/list', data).then(res => {
  417. if (Number(res.status) === 1) {
  418. let consultList = res.data.list || []
  419. consultList = consultList.map(item => {
  420. let zxRating = item.zx_rating || ''
  421. let zxRatingText = ''
  422. if (zxRating >= 0.8) {
  423. zxRatingText = '高'
  424. } else if (zxRating >= 0.6) {
  425. zxRatingText = '较高'
  426. } else if (zxRating >= 0.4) {
  427. zxRatingText = '中'
  428. } else if (zxRating >= 0.2) {
  429. zxRatingText = '较低'
  430. } else {
  431. zxRatingText = '低'
  432. }
  433. return {
  434. uid: item.uid || '',
  435. nickname: item.nickname || '',
  436. avatar: item.icon_url || '',
  437. lineStatus: item.lineStatus || '',
  438. company: item.company || '',
  439. title: item.title || '',
  440. saleList: item.sale_list || [],
  441. zxTotalNum: item.zx_total_num || 0,
  442. zxRating: item.zx_rating || '',
  443. zxRatingText: zxRatingText,
  444. zxPriceMin: item.zx_price_min || '0.00'
  445. }
  446. })
  447. if (self.mobile) {
  448. self.consultList = self.consultList.concat(consultList)
  449. } else {
  450. self.consultList = consultList
  451. }
  452. this.pagination.total = res.data.total
  453. this.pagination.pageCount = res.data.pages
  454. // 当前页码 大于等于 页面总数:已加载所有数据
  455. if (this.pagination.page >= this.pagination.pageCount) {
  456. this.pagination.noMore = true
  457. } else {
  458. this.pagination.noMore = false
  459. }
  460. } else {
  461. // 查询错误时
  462. this.pagination.noMore = true
  463. }
  464. }).then(() => {
  465. self.pagination.loading = false
  466. })
  467. },
  468. /** 点击展开、收起 */
  469. handleClickExpandCategory () {
  470. this.categoryExpanded = !this.categoryExpanded
  471. },
  472. /** 点击一级分类时 */
  473. handleClickCategoryOne (id) {
  474. if (id === 0) {
  475. // 点击全部时,移除筛选分类
  476. this.pagination.selectedCateIdOne = id
  477. this.pagination.selectedCateIdTwo = ''
  478. this.currentDrawerCategoryId = ''
  479. this.pagination.page = 1
  480. this.consultList = []
  481. window.scroll(0, 0)
  482. this._getConsultList()
  483. return
  484. }
  485. if (this.pagination.selectedCateIdOne !== id) {
  486. this.pagination.selectedCateIdOne = id
  487. }
  488. },
  489. /** 分页页码改变时 */
  490. handlePageChange (val) {
  491. let query = {
  492. page: val
  493. }
  494. if (this.root_type && Number(this.root_type) > 0) {
  495. query.root_type = this.root_type
  496. }
  497. window.location.href = `${window.location.origin}${window.location.pathname}?${qs.stringify(query)}`
  498. },
  499. /** mobile 加载更多 */
  500. handleLoadMoreConsult () {
  501. if (this.pagination.loading) {
  502. return
  503. }
  504. this.pagination.page++
  505. this._getConsultList()
  506. },
  507. /** 点击筛选时 */
  508. handleClickFilter () {
  509. this.showCategoryDrawer = true
  510. },
  511. /**
  512. * 点击 mobile 分类 drawer 一级分类
  513. */
  514. handleClickDrawerCategoryOne (id) {
  515. console.log(id)
  516. if (id === 0) {
  517. this.showCategoryDrawer = false
  518. return
  519. }
  520. if (id !== this.currentDrawerCategoryIndex) {
  521. this.currentDrawerCategoryIndex = id
  522. }
  523. },
  524. /** 点击二级分类时:移动端 */
  525. handleClickCategoryTwo (id) {
  526. if (this.pagination.selectedCateIdTwo === id) {
  527. this.pagination.selectedCateIdTwo = ''
  528. this.currentDrawerCategoryId = ''
  529. } else {
  530. this.pagination.selectedCateIdTwo = id
  531. this.currentDrawerCategoryId = id
  532. }
  533. this.pagination.page = 1
  534. this.consultList = []
  535. window.scroll(0, 0)
  536. this._getConsultList()
  537. },
  538. /**
  539. * 点击 mobile 分类 drawer 二级分类
  540. */
  541. handleClickDrawerCategoryTwo (id) {
  542. if (this.currentDrawerCategoryId === id) {
  543. this.pagination.selectedCateIdTwo = ''
  544. } else {
  545. this.pagination.selectedCateIdTwo = id
  546. }
  547. this.currentDrawerCategoryId = id
  548. this.showCategoryDrawer = false
  549. this.pagination.page = 1
  550. this.consultList = []
  551. window.scroll(0, 0)
  552. this._getConsultList()
  553. },
  554. /** 点击筛选时 */
  555. handleShowCategoryDrawer () {
  556. this.showCategoryDrawer = true
  557. },
  558. /**
  559. * 点击 mobile 的一项咨询服务时
  560. */
  561. handleClickConsultItem (uid) {
  562. if (this.deviceType.android || this.deviceType.ios) {
  563. // 端跳转
  564. let jumpUrl = `${this.baseUrl}/wo/${uid}?from=consult`
  565. location.href = `proginn://webview?url=${jumpUrl}`
  566. } else {
  567. // web 跳转
  568. location.href = `/wo/${uid}?from=consult`
  569. }
  570. },
  571. /**
  572. * 点击专家入驻
  573. */
  574. handleClickAdd () {
  575. location.href = '/workbench/consult/index'
  576. }
  577. }
  578. }
  579. </script>
  580. <style lang="scss" scoped>
  581. @import "@/assets/css/consult/list.scss";
  582. </style>
  583. <style lang="scss">
  584. .category-drawer {
  585. .el-drawer {
  586. height: 100vh !important;
  587. .el-drawer__body {
  588. position: relative;
  589. width: 100%;
  590. display: flex;
  591. }
  592. }
  593. .drawer-category-one {
  594. width: 100px;
  595. height: 100vh;
  596. padding-bottom: 34px;
  597. background: #f4f5f9;
  598. overflow-x: hidden;
  599. overflow-y: auto;
  600. -webkit-overflow-scrolling: touch;
  601. &::-webkit-scrollbar {
  602. display: none;
  603. }
  604. .drawer-category-one-item {
  605. width: 100%;
  606. height: 50px;
  607. line-height: 50px;
  608. text-align: center;
  609. font-size: 15px;
  610. font-family: PingFangSC, PingFangSC-Medium;
  611. font-weight: 500;
  612. color: #222222;
  613. background: inherit;
  614. &.active {
  615. color: #308eff;
  616. background: #ffffff;
  617. }
  618. }
  619. }
  620. .drawer-category-two {
  621. width: calc(100% - 100px);
  622. height: 100vh;
  623. padding: 4px 10px 34px;
  624. background: #ffffff;
  625. overflow-x: hidden;
  626. overflow-y: auto;
  627. -webkit-overflow-scrolling: touch;
  628. &::-webkit-scrollbar {
  629. display: none;
  630. }
  631. .drawer-category-two-wrapper {
  632. width: 100%;
  633. display: flex;
  634. flex-wrap: wrap;
  635. .drawer-category-two-item {
  636. margin: 8px 8px 0 0;
  637. padding: 0 12px;
  638. height: 35px;
  639. line-height: 35px;
  640. background: rgba(244,245,249,.8);
  641. border-radius: 4px;
  642. // opacity: 0.8;
  643. font-size: 13px;
  644. font-family: PingFangSC, PingFangSC-Regular;
  645. font-weight: 400;
  646. color: #222222;
  647. &.active {
  648. height: 33px;
  649. line-height: 33px;
  650. border: 1px solid #308eff;
  651. background: #ffffff;
  652. font-size: 12px;
  653. font-family: PingFangSC, PingFangSC-Medium;
  654. font-weight: 500;
  655. color: #308eff;
  656. }
  657. }
  658. }
  659. }
  660. }
  661. .wx-header-custom-list {
  662. position: fixed !important;
  663. z-index: 11 !important;
  664. }
  665. </style>