manageIndex.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757
  1. <template>
  2. <view class="content container">
  3. <view class="bg" v-if="!viewload"></view>
  4. <view class="cont-box" v-if="!viewload">
  5. <view class="user-cont" @click="navTo('/pages_managedata/userInfo')">
  6. <view class="user-box" v-if="user!=null">
  7. <view class="left">
  8. <u-avatar :src="user.avatar" size="50"></u-avatar>
  9. <!-- <image class="img" :src="user.avatar" mode="aspectFill"></image> -->
  10. <view class="user">
  11. <view class="username">{{user.nickName}}</view>
  12. <view class="account">{{user.email}}</view>
  13. </view>
  14. </view>
  15. <view class="right">
  16. <image :src="imgPath+'/app/images/right_arrow.png'"></image>
  17. </view>
  18. </view>
  19. <view class="justify-between align-center">
  20. <view class="company" v-if="user!=null">
  21. <!-- <image :src="imgPath+'/app/images/icon_comp.png'"></image> -->
  22. <view class="base-color-6">公司:</view>
  23. <view class="name">{{user.companyName||'暂无数据'}}</view>
  24. </view>
  25. <view class="company" v-if="user!=null">
  26. <view class="base-color-6">部门:</view>
  27. <view class="name">{{user.dept.deptName||'无'}}</view>
  28. </view>
  29. </view>
  30. <view class="justify-between align-center">
  31. <view class="company" v-if="user!=null">
  32. <view class="base-color-6">岗位:</view>
  33. <view class="name">{{user.postname||'无'}}</view>
  34. </view>
  35. <view class="company" v-if="user!=null">
  36. <view class="base-color-6">角色:</view>
  37. <view class="name">{{user.rolesname||'无'}}</view>
  38. </view>
  39. </view>
  40. </view>
  41. <view class="bgf radius15 p30 justify-between align-center mb40" v-if="balance">
  42. <view class="fs24">红包剩余金额</view>
  43. <view class="fs40 bold">{{balance.toFixed(2)}}</view>
  44. </view>
  45. <view class="menu-box" style="margin-top: -20rpx;">
  46. <view class="title-box">
  47. <image class="icon" :src="imgPath+'/app/manergevip/chang.png'"></image>
  48. <view class="title">常用功能</view>
  49. </view>
  50. <view class="line"></view>
  51. <view class="menus" v-if="user!=null">
  52. <view class="menu-item" @click="navTo('/pages_managedata/managedetail')">
  53. <image :src="imgPath+'/app/images/menu_info.png'"></image>
  54. <view class="m-name">销售管理</view>
  55. </view>
  56. <view class="menu-item" @click="navTo('/pages_managedata/users')" v-if="user.userType=='00'">
  57. <image :src="imgPath+'/app/manergevip/qudao.png'"></image>
  58. <view class="m-name">审核销售</view>
  59. </view>
  60. <view class="menu-item" @click="handleShare" v-if="user.userType=='00'">
  61. <image :src="imgPath+'/app/manergevip/share-manage.png'"></image>
  62. <view class="m-name">邀请销售</view>
  63. </view>
  64. <view class="menu-item" @click="navTo('/pages_managedata/lableSetup')">
  65. <image :src="imgPath+'/app/images/changeLable.png'"></image>
  66. <view class="m-name">标签设置</view>
  67. </view>
  68. </view>
  69. </view>
  70. <view class="menu-box">
  71. <view class="title-box">
  72. <image class="icon" :src="imgPath+'/app/manergevip/qita.png'"></image>
  73. <view class="title">其它工具</view>
  74. </view>
  75. <view class="line"></view>
  76. <view class="menus">
  77. <view class="menu-item" @click="navTo('/pages_managedata/about')">
  78. <image :src="imgPath+'/app/manergevip/about.png'"></image>
  79. <view class="m-name">关于我们</view>
  80. </view>
  81. <view class="menu-item" @click="navTo('/pages_managedata/editUser')">
  82. <image :src="imgPath+'/app/manergevip/setup.png'"></image>
  83. <view class="m-name">设置</view>
  84. </view>
  85. <!-- <view class="menu-item" @click="navTo('/pages_course/exportlist/exportlist')">
  86. <u-icon name="attach" color="#2979ff" size="28"></u-icon>
  87. <view class="m-name">导出列表</view>
  88. </view> -->
  89. </view>
  90. </view>
  91. <view class="btn-box">
  92. <view class="sub-btn" @click="showLogout()">退出登录</view>
  93. </view>
  94. </view>
  95. <!-- 分享弹窗 -->
  96. <u-popup :show="showShare" :closeOnClickOverlay="true" :round='20' @close="closeShare" @open="openShare">
  97. <view class="sharePop x-ac">
  98. <!--#ifdef MP-WEIXIN-->
  99. <view class="sharePop-item y-f" @click="shareimg">
  100. <image :src="imgPath+'/app/images/card_icon.png'" mode="aspectFill"
  101. style="width: 80rpx; height: 80rpx;margin-top: 20rpx;"></image>
  102. <view style="font-weight: bold;margin-bottom: 4px;">生成卡片</view>
  103. <view style="font-size: 12px;color: #888;">指导分享轻松转发</view>
  104. <button open-type="share" class="share">分享课程</button>
  105. </view>
  106. <!--#endif-->
  107. <!-- <view class="sharePop-item y-f" @click="buildimg">
  108. <image :src="imgPath+'/app/images/poster_icon.png'" mode="aspectFill"></image>
  109. <view style="font-weight: bold;margin-bottom: 4px;">生成海报</view>
  110. <view style="font-size: 12px;color: #888;">保存海报美观宣传</view>
  111. </view> -->
  112. <!--#ifdef H5-->
  113. <view class="sharePop-item y-f" @click="shareSale">
  114. <image :src="imgPath+'/app/images/link_icon.png'" mode="aspectFill"></image>
  115. <view style="font-weight: bold;margin-bottom: 4px;">复制链接</view>
  116. <view style="font-size: 12px;color: #888;">生成链接一键复制</view>
  117. </view>
  118. <!--#endif-->
  119. </view>
  120. </u-popup>
  121. <!-- 长按保存海报 -->
  122. <u-popup :show="setImg" @close="closeimg" :round="12">
  123. <view class="w100 h500">
  124. <image :src="codeLink.url" class="codeimg w660" mode="widthFix"></image>
  125. </view>
  126. <view class="justify-around mtb40">
  127. <view class="column justify-center align-center" @click="downimg">
  128. <image :src="imgPath+'/app/image/downicon.png'" class="w80 h80"></image>
  129. <view class="mt10">长按图片保存</view>
  130. </view>
  131. </view>
  132. </u-popup>
  133. <!-- 设置链接有效时长弹窗 -->
  134. <!-- <u-modal :show="setTimeShow" content='content' class="model" @confirm="confirmTime">
  135. <view class="setTimebox">
  136. <view class="timetip">不传默认以系统参数为准</view>
  137. <view class="x-f">
  138. <text style="margin-right: 20px;">链接有效时长(分钟)</text>
  139. <u-input fontSize="14px" placeholder="链接有效时长" border="none" v-model="time" maxlength="5"></u-input>
  140. </view>
  141. </view>
  142. </u-modal> -->
  143. <!-- 卡片分享引导 -->
  144. <u-overlay :show="showzhidao" @click="showzhidao = false" style="z-index: 9999;">
  145. <view class="point-box">
  146. <view class="imgshe">
  147. <image :src="imgPath+'/app/image/point.png'" class="w300 h300"></image>
  148. </view>
  149. <view class="column colorf fs32 xu-box fs40 align-center justify-center">
  150. <view class="justify-center">点击右上角
  151. <image :src="imgPath+'/app/image/wxmore.png'" class="w50 h50 mlr10"></image>
  152. </view>
  153. <view class="mt20">选择 “转发给朋友”</view>
  154. <view style="color: #cbcbcb;" class="fs28 mt40">点击任意位置关闭弹窗</view>
  155. </view>
  156. </view>
  157. </u-overlay>
  158. <u-modal :show="show" title="提示" :showCancelButton="true" @cancel="hideLogout()" @confirm="logout()"
  159. content='确认退出吗?'></u-modal>
  160. <u-loading-page :loading="viewload" iconSize="32" loadingColor="#3c9cff" fontSize="20"
  161. :loading-text="loadingtext"></u-loading-page>
  162. </view>
  163. </template>
  164. <script>
  165. import {
  166. getCompanyUser
  167. } from '@/api/manageCompany.js'
  168. // import {
  169. // sharecourselink,
  170. // buildCode,
  171. // getSDK,
  172. // becomeVipuser,
  173. // becomeVipuserImg
  174. // } from '@/api/courseManage'
  175. // import wx from 'weixin-js-sdk'
  176. export default {
  177. data() {
  178. return {
  179. viewload: true,
  180. loadingtext: "数据加载中...",
  181. show: false,
  182. user: null,
  183. showShare: false,
  184. copyLinks: '',
  185. setTimeShow: false,
  186. time: '',
  187. setImg: false,
  188. codeLink: '',
  189. showzhidao: false,
  190. imgs: this.$store.state.imgpath + '/app/image/logo.png',
  191. balance: 0
  192. }
  193. },
  194. onShow() {
  195. console.log(this.imgs)
  196. },
  197. onShareAppMessage() {
  198. return {
  199. title: this.$store.state.logoname + '小程序的' + this.user.nickName + '邀请您成为销售', // 分享卡片标题
  200. path: '/pages_course/course/becomeSale?id=' + this.user.companyId, // 目标页面路径
  201. // 携带参数:将当前页面的数据拼接到路径中
  202. imageUrl: this.user.avatar || this.imgs, // 分享卡片封面图(可选)
  203. success: (res) => {
  204. console.log("分享成功", res);
  205. },
  206. fail: (err) => {
  207. console.log("分享失败", err);
  208. },
  209. }
  210. },
  211. computed: {
  212. imgPath() {
  213. return this.$store.state.imgpath
  214. }
  215. },
  216. mounted() {
  217. this.getCompanyUsers()
  218. },
  219. methods: {
  220. shareSale() {
  221. const fullUrl = location.href;
  222. const Path = fullUrl.split('/#')[0] || '';
  223. setTimeout(() => {
  224. uni.setClipboardData({
  225. data: Path + '/#/pages_course/course/becomeSale?id=' + this.user.companyId,
  226. success: () => {
  227. uni.showToast({
  228. title: '邀请链接已复制',
  229. icon: 'none',
  230. duration: 2000
  231. });
  232. // this.setTimeShow = !this.setTimeShow
  233. this.showShare = false
  234. // console.log(res)
  235. },
  236. fail: () => {
  237. uni.showToast({
  238. title: '复制失败',
  239. icon: 'none'
  240. });
  241. }
  242. });
  243. }, 100)
  244. },
  245. // 获取jssdk
  246. getjssdklist() {
  247. const param = {
  248. url: window.location.href.split('#')[0] // 注意去除 hash
  249. }
  250. getSDK(param).then(res => {
  251. wx.config({
  252. debug: false,
  253. appId: res.data.appId, // 必填,公众号的唯一标识
  254. timestamp: res.data.timestamp, // 必填,生成签名的时间戳
  255. nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
  256. signature: res.data.signature, // 必填,签名
  257. jsApiList: ["updateAppMessageShareData",
  258. "onMenuShareAppMessage",
  259. ] // 必填,需要使用的JS接口列表
  260. });
  261. })
  262. },
  263. shareimg() {
  264. //分享好友
  265. let self = this
  266. // 配置--配置全局
  267. wx.ready(function() { //需在用户可能点击分享按钮前就先调用
  268. wx.updateAppMessageShareData({
  269. title: self.user.userName + "邀请您成为销售", // 分享标题
  270. desc: self.user.deptName, // 分享描述
  271. link: self.copyLinks,
  272. imgUrl: self.codeLink.url || self.imgs, // 分享图标
  273. success: function(res) {
  274. self.showzhidao = true
  275. self.setImg = false
  276. self.showShare = false
  277. // 设置成功
  278. uni.showToast({
  279. title: '卡片已生成',
  280. icon: 'none',
  281. duration: 1000
  282. });
  283. },
  284. fail: function(err) {
  285. // console.log(err);
  286. uni.showToast({
  287. title: '卡片生成失败,请重试',
  288. icon: 'none',
  289. duration: 2000
  290. })
  291. }
  292. })
  293. });
  294. },
  295. handleShare() {
  296. this.showShare = true
  297. const pages = '/pages_course/becomeSale?id=' + this.user.companyId
  298. this.$emit('childsales', pages);
  299. // this.getjssdklist()
  300. // this.getlink('preload'); // 提前加载链接
  301. },
  302. //设置链接时长
  303. confirmTime() {
  304. this.setTimeShow = false
  305. this.showShare = false
  306. this.getlink('preload')
  307. this.copyLink()
  308. },
  309. closeimg() {
  310. this.setImg = false
  311. this.showShare = false
  312. },
  313. buildimg() {
  314. //生成海报
  315. this.setImg = !this.setImg
  316. this.getshareimg()
  317. },
  318. getshareimg() {
  319. //生成海报
  320. uni.showLoading({
  321. title: '正在生成中...'
  322. })
  323. const param = {
  324. code: '',
  325. companyId: this.user.companyId,
  326. companyUserId: this.user.userId
  327. }
  328. becomeVipuserImg(param).then(res => {
  329. if (res.code == 200) {
  330. this.codeLink = res.data
  331. this.getlink()
  332. // console.log(res)
  333. } else {
  334. uni.showToast({
  335. title: res.msg,
  336. icon: 'none',
  337. duration: 2000
  338. });
  339. }
  340. })
  341. },
  342. getlink(type) {
  343. //生成链接
  344. const param = {
  345. companyId: this.user.companyId,
  346. companyUserId: this.user.userId,
  347. tagids: '',
  348. limitTime: this.time
  349. }
  350. becomeVipuser(param).then(res => {
  351. if (res.code == 200) {
  352. this.copyLinks = res.data
  353. if (this.copyLinks.startsWith('http://')) {
  354. this.copyLinks = this.copyLinks.replace('http://', 'https://');
  355. }
  356. // console.log(this.copyLinks,'分享链接')
  357. } else {}
  358. })
  359. },
  360. copyLink() {
  361. console.log(this.showShare)
  362. setTimeout(() => {
  363. uni.setClipboardData({
  364. data: this.copyLinks,
  365. success: () => {
  366. uni.showToast({
  367. title: '链接已复制',
  368. icon: 'none',
  369. duration: 2000
  370. });
  371. // this.setTimeShow = !this.setTimeShow
  372. this.showShare = false
  373. },
  374. fail: () => {
  375. uni.showToast({
  376. title: '复制失败',
  377. icon: 'none'
  378. });
  379. }
  380. });
  381. }, 100)
  382. },
  383. closeShare() {
  384. this.showShare = false
  385. },
  386. openShare() {
  387. // this.showShare = false
  388. },
  389. showLogout() {
  390. this.show = true;
  391. },
  392. hideLogout() {
  393. this.show = false;
  394. },
  395. logout() {
  396. uni.removeStorageSync('ManageToken')
  397. // 条件编译判断平台,设置不同登录页路径
  398. let loginPage = '';
  399. // #ifdef H5
  400. loginPage = '/pages/auth/login';
  401. // #endif
  402. // #ifdef MP-WEIXIN
  403. loginPage = '/pages_manage/login';
  404. // #endif
  405. uni.navigateTo({
  406. url: loginPage,
  407. })
  408. },
  409. navTo(url) {
  410. uni.navigateTo({
  411. url
  412. })
  413. },
  414. getCompanyUsers() {
  415. var data = {};
  416. getCompanyUser(data).then(res => {
  417. if (res.code == 200) {
  418. this.viewload = false
  419. console.log(res)
  420. this.user = res.user;
  421. this.balance = res.balance
  422. if (res.user.posts) {
  423. this.user.postname = res.user.posts.map(item => item.postName).join(",")
  424. }
  425. if (res.user.roles) {
  426. this.user.rolesname = res.user.roles.map(item => item.roleName).join(",")
  427. }
  428. if (this.user.avatar) {
  429. this.user.avatar = uni.getStorageSync('requestPath') + res.user.avatar
  430. } else {
  431. this.user.avatar == '';
  432. }
  433. console.log('头像', this.user.avatar)
  434. } else {
  435. }
  436. });
  437. },
  438. }
  439. }
  440. </script>
  441. <style scoped lang="scss">
  442. page {
  443. height: 100%;
  444. background: #f6f6f6;
  445. }
  446. .share {
  447. display: inline-block;
  448. position: absolute;
  449. top: 0;
  450. left: 0;
  451. width: 100%;
  452. height: 100%;
  453. opacity: 0;
  454. }
  455. .container {
  456. font-family: PingFang SC, PingFang SC;
  457. font-weight: 400;
  458. font-size: 14px;
  459. color: #222222;
  460. height: 100%;
  461. overflow: hidden;
  462. }
  463. .imgshe {
  464. display: flex;
  465. flex-direction: row-reverse
  466. }
  467. .point-box {
  468. height: 100%;
  469. width: 100%;
  470. .xu-box {
  471. border: #f5f5f5 4rpx dashed;
  472. padding: 20rpx 20rpx;
  473. }
  474. }
  475. .setTimebox {
  476. font-family: PingFang SC, PingFang SC;
  477. font-weight: 400;
  478. font-size: 14px;
  479. width: fit-content;
  480. height: fit-content;
  481. }
  482. .codeimg {
  483. position: absolute;
  484. z-index: 9999;
  485. left: 40rpx;
  486. top: 40rpx;
  487. }
  488. .timetip {
  489. font-family: PingFang SC, PingFang SC;
  490. font-weight: 400;
  491. font-size: 14px;
  492. color: #2979ff;
  493. text-align: center;
  494. margin-bottom: 5px;
  495. }
  496. .content {
  497. position: relative;
  498. height: 100%;
  499. width: 100%;
  500. .bg {
  501. width: 100%;
  502. height: 550upx;
  503. position: absolute;
  504. top: 0;
  505. left: 0;
  506. z-index: 1;
  507. background: linear-gradient(to bottom, #dae9ff, #e1e1fd);
  508. // background: linear-gradient(to bottom, #8bbfff, #1773ff);
  509. border-radius: 0rpx 0rpx 60rpx 60rpx;
  510. }
  511. .cont-box {
  512. position: relative;
  513. z-index: 2;
  514. padding: 30rpx 30rpx 200rpx;
  515. .user-cont {
  516. // box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  517. padding: 30rpx;
  518. // background-color: #fff;
  519. border-radius: 15rpx;
  520. .user-box {
  521. width: 100%;
  522. display: flex;
  523. align-items: center;
  524. justify-content: flex-start;
  525. .left {
  526. flex: 1;
  527. display: flex;
  528. align-items: center;
  529. justify-content: flex-start;
  530. image {
  531. border-radius: 50%;
  532. width: 120rpx;
  533. height: 120rpx;
  534. }
  535. .user {
  536. margin-left: 20rpx;
  537. width: calc(100% - 140rpx);
  538. display: flex;
  539. flex-direction: column;
  540. align-items: flex-start;
  541. justify-content: flex-start;
  542. .username {
  543. font-size: 38rpx;
  544. font-family: PingFang SC;
  545. color: #111;
  546. font-weight: bold;
  547. }
  548. .account {
  549. padding: 5rpx 0rpx;
  550. border-radius: 30rpx;
  551. margin-top: 20rpx;
  552. font-size: 24rpx;
  553. font-family: PingFang SC;
  554. color: #515151;
  555. }
  556. }
  557. }
  558. .right {
  559. image {
  560. width: 15rpx;
  561. height: 30rpx;
  562. }
  563. }
  564. }
  565. .company {
  566. margin-top: 20rpx;
  567. display: flex;
  568. align-items: center;
  569. justify-content: flex-start;
  570. image {
  571. width: 40rpx;
  572. height: 40rpx;
  573. }
  574. .name {
  575. margin-left: 15rpx;
  576. font-size: 28rpx;
  577. color: #111;
  578. }
  579. }
  580. }
  581. .menu-box {
  582. box-shadow: 0px 0px 5px 2px rgba(0, 0, 0, 0.05);
  583. width: 100%;
  584. margin-top: 30rpx;
  585. padding: 30rpx;
  586. background-color: #fff;
  587. border-radius: 15rpx;
  588. .title-box {
  589. display: flex;
  590. align-items: center;
  591. justify-content: flex-start;
  592. .icon {
  593. width: 40rpx;
  594. height: 40rpx;
  595. }
  596. .title {
  597. margin-left: 10rpx;
  598. font-size: 28rpx;
  599. font-family: PingFang SC;
  600. color: #111;
  601. }
  602. }
  603. .line {
  604. margin-top: 15rpx;
  605. height: 0.5rpx;
  606. width: 100%;
  607. background-color: #efefef;
  608. }
  609. .menus {
  610. margin-top: 30rpx;
  611. display: flex;
  612. align-items: center;
  613. justify-content: flex-start;
  614. flex-wrap: wrap;
  615. }
  616. .menu-item {
  617. display: flex;
  618. flex-direction: column;
  619. align-items: center;
  620. justify-content: center;
  621. width: 25%;
  622. margin-bottom: 20rpx;
  623. image {
  624. width: 60rpx;
  625. height: 60rpx;
  626. }
  627. .m-name {
  628. margin-top: 10rpx;
  629. font-size: 24rpx;
  630. font-family: PingFang SC;
  631. color: #111;
  632. }
  633. }
  634. }
  635. .menu-box1 {
  636. width: 100%;
  637. margin-top: 30rpx;
  638. padding: 0rpx 30rpx;
  639. background-color: #fff;
  640. border-radius: 15rpx;
  641. .menu-item {
  642. width: 100%;
  643. display: flex;
  644. align-items: center;
  645. justify-content: flex-start;
  646. line-height: 100rpx;
  647. .left {
  648. flex: 1;
  649. display: flex;
  650. align-items: center;
  651. justify-content: flex-start;
  652. image {
  653. width: 30rpx;
  654. height: 30rpx;
  655. }
  656. .label {
  657. margin-left: 10rpx;
  658. }
  659. }
  660. .right {
  661. image {
  662. width: 10rpx;
  663. height: 15rpx;
  664. }
  665. }
  666. }
  667. }
  668. }
  669. }
  670. .btn-box {
  671. margin: 30rpx 0rpx 30rpx;
  672. display: flex;
  673. align-items: center;
  674. justify-content: center;
  675. .sub-btn {
  676. // box-shadow: 0px 0px 5px 2px rgba(0,0,0,0.05);
  677. border: 1rpx solid #f8f8f8;
  678. background: #FFFFFF;
  679. width: 100%;
  680. height: 88upx;
  681. line-height: 88upx;
  682. text-align: center;
  683. font-size: 30upx;
  684. font-family: PingFang SC;
  685. color: #2979ff;
  686. }
  687. }
  688. .sharePop {
  689. background-color: #fff;
  690. padding: 20px 0;
  691. border-radius: 20px 20px 0 0;
  692. &-item {
  693. padding: 0 10px;
  694. box-sizing: border-box;
  695. font-family: PingFang SC, PingFang SC;
  696. font-weight: 400;
  697. font-size: 14px;
  698. display: inline-flex !important;
  699. image {
  700. height: 48px;
  701. width: 48px;
  702. margin-bottom: 10px;
  703. }
  704. }
  705. }
  706. </style>