Main.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877
  1. <template>
  2. <div class="app-bar-container">
  3. <div class="app-bar">
  4. <div class="header-section">
  5. <!-- -----------------------------------------------------Logo Section-------------------------------------------- -->
  6. <div class="logo-section">
  7. <div class="drawer-btn hamburger">
  8. <q-btn v-if="showHamburger"
  9. class="toolbar-button lt-md"
  10. icon="isax:menu-1"
  11. color="white"
  12. text-color="accent"
  13. dense
  14. unelevated
  15. @click="toggleLeftDrawer" />
  16. </div>
  17. <div class="logo-pic">
  18. <div class="homepage">
  19. <lazy-img src="https://nodes.alaatv.com/upload/alaa-logo.png"
  20. :alt="'logo'"
  21. width="40"
  22. height="40"
  23. class="logo-pic-img gt-sm"
  24. @click="routeTo('Public.Home')" />
  25. <lazy-img src="https://nodes.alaatv.com/upload/mobile-header-logo.png"
  26. :alt="'logo'"
  27. width="640"
  28. height="72"
  29. class="logo-pic-img lt-md"
  30. @click="routeTo('Public.Home')" />
  31. </div>
  32. </div>
  33. </div>
  34. <!-- -----------------------------------------------------Tabs Section-------------------------------------------- -->
  35. <div class="tab-section">
  36. <q-list class="tabs-list">
  37. <div v-for="(item , index) in items"
  38. :key="index"
  39. class="tabs-list-container">
  40. <div v-if="showMenuItem(/* item */)"
  41. class="self-center">
  42. <template v-if="item.type === 'itemMenu'">
  43. <item-menu :item="item" />
  44. </template>
  45. <template v-if="item.type === 'megaMenu'">
  46. <mega-menu :data="item" />
  47. </template>
  48. <template v-if="item.type === 'simpleMenu'">
  49. <simple-menu :menuContent="item" />
  50. </template>
  51. </div>
  52. </div>
  53. </q-list>
  54. </div>
  55. <!-- -----------------------------------------------------Actions Section-------------------------------------------- -->
  56. <div class="user-action gt-sm">
  57. <div class="action-container">
  58. <!-- <q-card-section ref="searchInput"-->
  59. <!-- class="search-section">-->
  60. <!-- <q-input v-model="searchInput"-->
  61. <!-- filled-->
  62. <!-- class="search-input"-->
  63. <!-- placeholder="جستجو در پالیزوانی...">-->
  64. <!-- <template v-slot:prepend>-->
  65. <!-- <q-btn flat-->
  66. <!-- rounded-->
  67. <!-- icon="isax:search-normal-1"-->
  68. <!-- class="search"-->
  69. <!-- @click="filterByStatement" />-->
  70. <!-- </template>-->
  71. <!-- </q-input>-->
  72. <!-- </q-card-section>-->
  73. <!-- <q-btn-->
  74. <!-- icon="isax:notification"-->
  75. <!-- unelevated-->
  76. <!-- rounded-->
  77. <!-- size="12px"-->
  78. <!-- class="action-btn"-->
  79. <!-- />-->
  80. <q-btn icon="isax:shopping-cart gt-xs"
  81. unelevated
  82. rounded
  83. size="12px"
  84. class="action-btn"
  85. :loading="cartLoading"
  86. :to="{name: 'Public.Checkout.Review'}">
  87. <q-badge v-if="mounted && cartOrdersCount > 0"
  88. color="primary"
  89. floating
  90. rounded>
  91. {{cartOrdersCount}}
  92. </q-badge>
  93. </q-btn>
  94. </div>
  95. <q-btn v-if="isUserLogin"
  96. flat
  97. class="btn-user-profile">
  98. <lazy-img :src="user.photo"
  99. :alt="'user photo'"
  100. width="48"
  101. height="48"
  102. class="user-photo" />
  103. <q-menu class="user-profile-dropdown"
  104. :offset="[170, 10]">
  105. <div class="dropdown-box">
  106. <div class="header">
  107. <div class="profile-box">
  108. <div class="profile-detail">
  109. <div class="profile-photo-box">
  110. <div class="profile-photo-img">
  111. <lazy-img :src="user.photo"
  112. :alt="'user photo'"
  113. width="60"
  114. height="60"
  115. class="user-photo" />
  116. </div>
  117. </div>
  118. <div v-if="isUserLogin"
  119. class="profile-detail-info">
  120. <div class="info-name">{{user.full_name}}</div>
  121. <div class="info-phoneNumber">{{user.mobile}}</div>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. <div class="body">
  127. <div class="user-panel-base-menu">
  128. <user-dashboard-items />
  129. </div>
  130. </div>
  131. </div>
  132. </q-menu>
  133. </q-btn>
  134. <div v-else
  135. class="sub-mit-box">
  136. <q-btn unelevated
  137. class="btn-style sign-up lt-lg"
  138. label="ورود"
  139. :to="{ name: 'login' }" />
  140. <q-btn unelevated
  141. class="btn-style gt-md"
  142. label="ورود"
  143. :to="{ name: 'login' }" />
  144. <q-btn unelevated
  145. class="btn-style sign-up gt-md"
  146. label="ثبت نام"
  147. :to="{ name: 'login' }" />
  148. </div>
  149. </div>
  150. </div>
  151. </div>
  152. </div>
  153. </template>
  154. <script>
  155. import { mapMutations } from 'vuex'
  156. import megaMenu from './magaMenu.vue'
  157. import simpleMenu from './simpleMenu.vue'
  158. import { User } from 'src/models/User.js'
  159. import LazyImg from 'src/components/lazyImg.vue'
  160. import menuItems from 'src/components/Template/menuData.js'
  161. import itemMenu from 'src/components/Template/Header/itemMenu.vue'
  162. import UserDashboardItems from 'src/components/UserDashboardItems.vue'
  163. import { Cart } from 'src/models/Cart'
  164. export default {
  165. name: 'MainHeaderTemplate',
  166. components: {
  167. UserDashboardItems,
  168. LazyImg,
  169. megaMenu,
  170. simpleMenu,
  171. itemMenu
  172. },
  173. data() {
  174. return {
  175. mounted: false,
  176. conferenceMenu: false,
  177. showHamburgerConfig: true,
  178. searchInput: '',
  179. user: new User(),
  180. isAdmin: false,
  181. isUserLogin: false,
  182. items: menuItems
  183. }
  184. },
  185. computed: {
  186. cart () {
  187. return new Cart()
  188. // return this.$store.getters['Cart/cart']
  189. },
  190. cartOrdersCount () {
  191. return 1
  192. // return this.cart.count
  193. },
  194. cartLoading () {
  195. return false
  196. // return this.cart.loading
  197. },
  198. showHamburger () {
  199. return this.$store.getters['AppLayout/showHamburgerBtn']
  200. },
  201. computedUserId () {
  202. const user = this.$store.getters['Auth/user']
  203. if (!user) {
  204. return null
  205. }
  206. return user.id
  207. },
  208. layoutLeftDrawerVisible() {
  209. return this.$store.getters['AppLayout/layoutLeftDrawerVisible']
  210. },
  211. showMenuItem () {
  212. return (/* item */) => {
  213. return true
  214. // return (item.permission === 'all' || this.user.hasPermission(item.permission))
  215. }
  216. }
  217. },
  218. watch: {
  219. computedUserId () {
  220. this.loadAuthData()
  221. }
  222. },
  223. mounted () {
  224. this.mounted = true
  225. this.loadAuthData()
  226. this.refreshCartListener()
  227. this.checkMenurItemsForAuthenticatedUser()
  228. },
  229. methods: {
  230. refreshCartListener () {
  231. this.$bus.on('busEvent-refreshCart', () => {
  232. this.$store.dispatch('Cart/reviewCart')
  233. })
  234. },
  235. checkMenurItemsForAuthenticatedUser () {
  236. // ToDo: check menu items by user role
  237. if (this.isAdmin) {
  238. const hasAdminPanel = this.items.find((item) => item.routeName === 'Admin.UploadCenter.Contents')
  239. if (!hasAdminPanel) {
  240. this.items.push({
  241. selected: 'adminPanel',
  242. title: 'پنل ادمین',
  243. routeName: 'Admin.UploadCenter.Contents',
  244. type: 'itemMenu',
  245. permission: 'all',
  246. show: false
  247. })
  248. }
  249. }
  250. },
  251. filterByStatement() {
  252. const param = {
  253. q: this.searchInput
  254. }
  255. this.$router.push({ name: 'Public.Home', query: param })
  256. },
  257. loadAuthData () { // prevent Hydration node mismatch
  258. this.user = this.$store.getters['Auth/user']
  259. this.isAdmin = this.$store.getters['Auth/isAdmin']
  260. this.isUserLogin = this.$store.getters['Auth/isUserLogin']
  261. },
  262. ...mapMutations('AppLayout', [
  263. 'updateVisibilityBreadcrumb',
  264. 'updateBreadcrumbs',
  265. 'updateBreadcrumbLoading',
  266. 'updateLayoutLeftDrawerVisible'
  267. ]),
  268. logOut() {
  269. return this.$store.dispatch('Auth/logOut')
  270. },
  271. toggleLeftDrawer() {
  272. this.updateLayoutLeftDrawerVisible(!this.layoutLeftDrawerVisible)
  273. },
  274. hasRoute(route) {
  275. if (!route) {
  276. return
  277. }
  278. return !!(route.name || route.path)
  279. },
  280. goToLogin() {
  281. this.$router.push({ name: 'login' })
  282. },
  283. routeTo(name) {
  284. this.$router.push({ name })
  285. }
  286. }
  287. }
  288. </script>
  289. <style lang="scss" scoped>
  290. .app-bar-container {
  291. background-color: #fff;
  292. height: 72px;
  293. width: 100%;
  294. color: #333333;
  295. @media screen and (max-width: 1023px) {
  296. height: 64px;
  297. }
  298. @media screen and (max-width: 599px) {
  299. background-color: #F4F6F9;
  300. }
  301. .app-bar {
  302. max-width: 1360px;
  303. //min-width: 1360px;
  304. margin: auto;
  305. height: 72px;
  306. @media screen and (max-width: 1919px) {
  307. width: 100%;
  308. //padding-left: 40px;
  309. //padding-right: 40px;
  310. }
  311. @media screen and (max-width: 1439px) {
  312. padding-left: 35px;
  313. padding-right: 35px;
  314. }
  315. @media screen and (max-width: 1023px) {
  316. padding-left: 30px;
  317. padding-right: 30px;
  318. height: 64px;
  319. }
  320. @media screen and (max-width: 599px) {
  321. padding-left: 20px;
  322. padding-right: 20px;
  323. }
  324. .header-section {
  325. display: grid;
  326. grid-template-columns: 86px auto 156px;
  327. height: 100%;
  328. @media screen and (max-width: 1023px) {
  329. //grid-template-columns: auto auto;
  330. grid-template-columns: 1fr;
  331. }
  332. @media screen and (max-width: 599px) {
  333. grid-template-columns: 1fr;
  334. }
  335. .logo-section {
  336. align-items: center;
  337. display: flex;
  338. justify-content: space-between;
  339. @media screen and (max-width: 1023px) {
  340. //justify-self: start;
  341. justify-self: center;
  342. justify-content: center;
  343. width: 100%;
  344. }
  345. @media screen and (max-width: 599px) {
  346. justify-self: center;
  347. justify-content: center;
  348. width: 100%;
  349. }
  350. .logo-pic {
  351. cursor: pointer;
  352. display: flex;
  353. height: 72px;
  354. align-items: center;
  355. @media screen and (max-width: 1023px) {
  356. width: 200px;
  357. height: 64px;
  358. }
  359. .homepage {
  360. .logo-pic-img {
  361. //height: 40px;
  362. //width: 40px;
  363. //width: 100%;
  364. display: flex;
  365. flex-flow: row;
  366. justify-content: center;
  367. align-items: center;
  368. height: 48px;
  369. width: 48px;
  370. @media screen and (max-width: 1023px) {
  371. width: 100%;
  372. img {
  373. height: auto !important;
  374. }
  375. }
  376. }
  377. @media screen and (max-width: 1023px) {
  378. width: 100%;
  379. }
  380. }
  381. @media screen and (max-width: 599px) {
  382. width: 200px;
  383. }
  384. //img {
  385. //
  386. //}
  387. }
  388. .hamburger {
  389. //display: none;
  390. @media screen and (max-width: 1023px) {
  391. //display: block;
  392. //margin-right: 20px;
  393. //margin-left: -8px;
  394. position: absolute;
  395. left: 20px;
  396. top: 10px;
  397. }
  398. @media screen and (max-width: 599px) {
  399. position: absolute;
  400. left: 20px;
  401. top: 10px;
  402. }
  403. }
  404. .drawer-btn {
  405. :deep(.q-btn) {
  406. flex-direction: row !important;
  407. }
  408. }
  409. }
  410. .tab-section {
  411. height: 72px;
  412. margin-left: 24px;
  413. overflow: auto;
  414. .tabs-list {
  415. height: 72px;
  416. display: flex;
  417. flex-flow: row;
  418. flex-wrap: nowrap;
  419. overflow: auto;
  420. .tabs-list-container {
  421. display: flex;
  422. justify-content: center;
  423. align-items: center;
  424. }
  425. }
  426. @media screen and (max-width: 1023px) {
  427. height: 64px;
  428. display: none;
  429. }
  430. }
  431. .active-item {
  432. color: #FFC107;
  433. }
  434. .user-action {
  435. .action-container {
  436. display: flex;
  437. height: 42px;
  438. .search-section {
  439. height: 40px;
  440. .search-input {
  441. width: 300px;
  442. height: 40px;
  443. background: #F1F3F4;
  444. //border-radius: 10px;
  445. &:deep(.q-field__append) {
  446. padding-right: 8px !important;
  447. .q-icon {
  448. color: #6D708B;
  449. cursor: pointer;
  450. }
  451. }
  452. &:deep(.q-field__control) {
  453. background: #F1F3F4;
  454. height: 40px;
  455. }
  456. &:deep(.q-field__marginal) {
  457. height: auto;
  458. padding: 0;
  459. }
  460. .search {
  461. color: #6D708B;
  462. height: 40px;
  463. width: 40px;
  464. :deep(.q-field__inner .q-field__control .q-field__append .q-icon) {
  465. color: #6D708B;
  466. }
  467. :deep(.q-btn__content) {
  468. margin: 0;
  469. }
  470. }
  471. }
  472. @media screen and (max-width: 780px) {
  473. display: none;
  474. }
  475. }
  476. &:deep(.q-card__section) {
  477. padding: 0;
  478. margin-right: 18px;
  479. .q-field--filled .q-field__inner .q-field__control {
  480. background: #F1F3F4;
  481. }
  482. .q-field--filled .q-field__inner .q-field__control .q-field__append, .q-field--filled .q-field__inner .q-field__control .q-field__prepend {
  483. padding-right: 16px;
  484. padding-left: 12px;
  485. height: 40px;
  486. }
  487. .q-field__inner {
  488. //border-radius: 0px;
  489. .q-field__control {
  490. color: transparent;
  491. min-height: 0;
  492. padding: 0;
  493. &:before {
  494. border-color: transparent;
  495. }
  496. &:hover:before {
  497. border-color: transparent;
  498. }
  499. }
  500. }
  501. }
  502. }
  503. .sign-up-btn {
  504. :deep(.q-btn .q-btn__content) {
  505. margin-left: 10px;
  506. margin-right: 10px;
  507. }
  508. }
  509. @media screen and (max-width: 1023px) {
  510. justify-self: end;
  511. height: 64px;
  512. }
  513. @media screen and (max-width: 599px) {
  514. //display: none;
  515. }
  516. display: flex;
  517. //justify-content: flex-end;
  518. align-items: center;
  519. height: 72px;
  520. justify-self: flex-end;
  521. .btn-user-profile {
  522. margin-left: 18px;
  523. width: 48px;
  524. height: 48px;
  525. border-radius: 16px;
  526. :deep(.q-btn__content) {
  527. width: 100%;
  528. margin: 0;
  529. .user-photo {
  530. width: 100%;
  531. img {
  532. border: 2px solid #FFB74D;
  533. border-radius: 16px;
  534. max-width: 100%;
  535. width: 100%;
  536. }
  537. }
  538. }
  539. }
  540. .action-btn {
  541. margin: 4px;
  542. color: #333;
  543. }
  544. .fit-profile-img {
  545. width: 48px;
  546. height: 48px;
  547. border-radius: 16px;
  548. }
  549. }
  550. }
  551. }
  552. .sub-mit-box{
  553. background: #FFFFFF;
  554. border-radius: 16px;
  555. display: flex;
  556. margin-bottom: 0px;
  557. padding: 0px;
  558. .btn-style{
  559. width: 96px;
  560. //color: #6D708B;
  561. color: #333333 !important;
  562. font-style: normal;
  563. font-weight: 600;
  564. font-size: 14px;
  565. line-height: 22px;
  566. align-items: center;
  567. text-align: center;
  568. letter-spacing: -0.03em;
  569. }
  570. .sign-up {
  571. background: #FFC107;
  572. }
  573. }
  574. }
  575. </style>
  576. <style lang="scss">
  577. .user-profile-dropdown {
  578. width: 280px;
  579. //height: 300px;
  580. background: #FFFFFF;
  581. border: 1px solid #F2F5F9;
  582. border-radius: 0 16px 16px 16px #{"/* rtl:ignore */"};
  583. .header {
  584. box-shadow: 0 6px 10px rgba(49, 46, 87, 0.04) #{"/* rtl:ignore */"};
  585. border-radius: 0 15px 0 0 #{"/* rtl:ignore */"};
  586. }
  587. .profile-box {
  588. font-style: normal;
  589. font-weight: 400;
  590. font-size: 14px;
  591. line-height: 22px;
  592. text-align: left;
  593. color: #6D708B;
  594. border-radius: 20px;
  595. padding: 16px;
  596. margin-bottom: 16px;
  597. .profile-detail {
  598. display: grid;
  599. grid-template-columns: 70px auto;
  600. align-items: center;
  601. .profile-photo-box {
  602. //background: #FFB74D;
  603. width: 60px;
  604. height: 60px;
  605. border: 3px solid #FFFFFF;
  606. border-radius: 16px;
  607. position: relative;
  608. .profile-photo-img {
  609. .q-img {
  610. border-radius: 16px;
  611. height: 100%;
  612. }
  613. width: 60px;
  614. height: 60px;
  615. border-radius: 16px;
  616. .user-photo {
  617. img {
  618. border: 2px solid #FFB74D;
  619. border-radius: 16px;
  620. max-width: 100%;
  621. width: 100%;
  622. }
  623. }
  624. }
  625. .profile-photo-badge {
  626. position: absolute;
  627. bottom: -15px;
  628. left: -7px;
  629. }
  630. }
  631. .profile-detail-info {
  632. .info-name {
  633. font-weight: 600;
  634. font-size: 16px;
  635. line-height: 25px;
  636. color: #434765;
  637. }
  638. .info-phoneNumber {}
  639. }
  640. }
  641. }
  642. .user-panel-base-menu {
  643. display: flex;
  644. flex-direction: column;
  645. color: #6D708B;
  646. .q-list {
  647. color: #6D708B;
  648. padding: 0;
  649. &.side-menu-list {
  650. .top-separator {
  651. margin: 0 40px 32px 40px;
  652. }
  653. .q-item {
  654. padding: 0;
  655. min-height: 0;
  656. &.item-list {
  657. display: flex;
  658. flex-direction: column;
  659. justify-content: center;
  660. font-weight: 400;
  661. font-size: 14px;
  662. line-height: 22px;
  663. cursor: pointer;
  664. padding: 0 14px 0 10px;
  665. border-radius: 14px;
  666. &.alone-item {
  667. height: 40px;
  668. &.active-route-side-mode {
  669. .indicator {
  670. height: 8px;
  671. width: 8px;
  672. background-color: white;
  673. border-radius: 50%;
  674. margin: auto;
  675. }
  676. }
  677. }
  678. &.alone-item-mode-drawer {
  679. &.active-route-side-mode {
  680. .indicator {
  681. background-color: #6D708B6B !important;
  682. }
  683. }
  684. }
  685. .section-title {
  686. height: 30px;
  687. display: flex;
  688. flex-direction: row;
  689. align-items: center;
  690. .title-icon {
  691. margin-left: 12px;
  692. }
  693. .q-item__section--side {
  694. padding: 0;
  695. }
  696. }
  697. .list-section {
  698. display: flex;
  699. flex-direction: row;
  700. justify-content: flex-start;
  701. .q-avatar {
  702. height: 22px;
  703. width: 22px;
  704. }
  705. }
  706. }
  707. }
  708. .side-expansion-list {
  709. &.top-expansion {
  710. margin-bottom: 10px;
  711. }
  712. .expansion-body {
  713. display: flex;
  714. margin-left: 8px;
  715. }
  716. .q-expansion-item__content {
  717. .vertical-separator {
  718. margin: 6px 9px 9px 9px;
  719. }
  720. }
  721. .q-list {
  722. &.list-expansion {
  723. margin-bottom: 0;
  724. .item-list-expansion {
  725. height: 30px;
  726. margin: 5px;
  727. .item-list-expansion-title {
  728. justify-content: start;
  729. }
  730. }
  731. .top-expansion-separator {
  732. }
  733. .list-child-item {
  734. height: 30px;
  735. justify-content: right;
  736. margin-bottom: 8px;
  737. width: 157px;
  738. border-radius: 10px;
  739. padding: 0 14px;
  740. &:last-child {
  741. margin-bottom: 0;
  742. }
  743. .list-child-section {
  744. font-size: 14px !important;
  745. justify-content: center;
  746. }
  747. }
  748. }
  749. }
  750. }
  751. .active-route-side-mode {
  752. background-color: #8075DC;
  753. .indicator {
  754. height: 6px;
  755. width: 6px;
  756. border-radius: 50%;
  757. margin: auto;
  758. }
  759. }
  760. .item-mode-drawer {
  761. background: #F6F9FF;
  762. .indicator {
  763. height: 6px;
  764. width: 6px;
  765. border-radius: 50%;
  766. margin: auto;
  767. background-color: #6D708B6B ;
  768. }
  769. }
  770. }
  771. .q-item__section--avatar {
  772. min-width: 0 !important;
  773. }
  774. a {
  775. text-decoration: none;
  776. padding: 0;
  777. }
  778. }
  779. &.list-side-mode {
  780. color: white;
  781. .q-list {
  782. a {
  783. color: white;
  784. }
  785. }
  786. }
  787. &.list-drawer-mode {
  788. color: #6D708B;
  789. .q-list {
  790. a {
  791. color: #6D708B;
  792. }
  793. }
  794. }
  795. .log-out {
  796. font-weight: 400;
  797. font-size: 14px;
  798. line-height: 22px;
  799. cursor: pointer;
  800. height: 40px !important;
  801. padding: 0 6px;
  802. //width: 232px;
  803. border-radius: 14px;
  804. display: flex;
  805. align-items: center;
  806. margin-top: 15px;
  807. //@media screen and (max-width: 1439px) {
  808. // margin: 0 31px 33px 31px;
  809. //}
  810. //@media screen and (max-width: 599px) {
  811. // margin: 0 30px 30px 30px;
  812. // //padding: 0 0 0 10px;
  813. //}
  814. &:hover {
  815. background-color: rgba(255, 255, 255, 0.1);
  816. }
  817. .q-avatar {
  818. height: 22px;
  819. width: 22px;
  820. margin-right: 12px;
  821. transform: matrix(-1, 0, 0, 1, 0, 0);
  822. }
  823. }
  824. }
  825. .body {
  826. padding-right: 16px;
  827. padding-left: 16px;
  828. }
  829. }
  830. </style>