my.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813
  1. <template>
  2. <view>
  3. <!-- 公共组件-每个页面必须引入 -->
  4. <public-module></public-module>
  5. <!-- 头部信息Start -->
  6. <view class="headers " :style="headerStyle">
  7. <view class="dis a-c j-c">
  8. <text>我的</text>
  9. <image @tap="tool" src="/static/image/my/Frame.png" mode=""></image>
  10. </view>
  11. </view>
  12. <view class="Personnel">
  13. <view class="dis a-c" @tap="openDetail">
  14. <image :src="avatar" class="avatar" mode=""></image>
  15. <view class="info">
  16. <view class="dis a-c">
  17. <text>{{userInfo.sysUser.name}}</text>
  18. <u-tag :text="userInfo.sysUser.status=='1'?'已认证':'未认证'" mode="dark"
  19. style="background: linear-gradient( 268deg, #FF8B2F 0%, #FF5A00 100%);" />
  20. </view>
  21. <text>你身边最贴心,最权威的保险咨询专家。</text>
  22. </view>
  23. </view>
  24. <view class="my-wallet">
  25. <view class="wallet-body dis f-c">
  26. <view class="dis a-c j-s route">
  27. <view class="flex-1 dis f-c a-c" @tap="accountTool('/pages/wallet/wallet')">
  28. <image src="/static/image/my/qianbao.png" mode=""></image>
  29. <text>钱包</text>
  30. </view>
  31. <view class="flex-1 dis f-c a-c" @tap="accountTool('/pages/wallet/bankCard')">
  32. <image src="/static/image/my/ka.png" mode=""></image>
  33. <text>银行卡</text>
  34. </view>
  35. <view class="flex-1 dis f-c a-c" @tap="accountTool()">
  36. <image src="/static/image/my/chongzhi.png" mode="">
  37. </image>
  38. <text>充值</text>
  39. </view>
  40. </view>
  41. </view>
  42. </view>
  43. </view>
  44. <view class="my-tools">
  45. <view class="header ">
  46. <text>我的工具</text>
  47. </view>
  48. <view class="order-body d-flex a-center">
  49. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  50. <uni-swiper-dot :info="info" :current="current" field="content" :mode="mode" :dots-styles="dotsStyles">
  51. <swiper style="height:calc(324upx)" class="swiper" @change="change">
  52. <swiper-item class="swiper" v-for="(count,cindex) of toolsListLength" :key="count">
  53. <uni-grid :column="4" :show-border="false" :square="false" :highlight="false"
  54. @change="toTools($event,'toolsList')">
  55. <uni-grid-item class="" v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)"
  56. v-for="(item ,index) in toolsList" :index="index" :key="item.text">
  57. <view class="grid-item-box dis a-c j-c f-c">
  58. <view class="icon iconfont" :class="item.icon">
  59. </view>
  60. <text class="text">{{item.text}}</text>
  61. <u-badge v-if="item.text=='客户管理'" size="mini" type="error" :count="InsureCount"
  62. :offset="[10, 10]"></u-badge>
  63. </view>
  64. </uni-grid-item>
  65. </uni-grid>
  66. </swiper-item>
  67. </swiper>
  68. </uni-swiper-dot>
  69. </view>
  70. </view>
  71. <!-- 我的工具End -->
  72. <!-- 售后管理Start -->
  73. <view class="my-tools">
  74. <view class="header d-flex a-center j-sb">
  75. <view>售后管理</view>
  76. </view>
  77. <view class="order-body d-flex a-center">
  78. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  79. <swiper style="height:calc(162upx)" class="swiper" :indicator-dots="(serviceListLength!=1)?true:false">
  80. <swiper-item class="swiper dis a-c" v-for="(count,cindex) of serviceListLength" :key="count">
  81. <uni-grid :column="4" :show-border="false" :square="false" :highlight="false"
  82. @change="toTools($event,'serviceList')">
  83. <uni-grid-item v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)"
  84. v-for="(item ,index) in serviceList" :index="index" :key="item.text">
  85. <view class="grid-item-box dis a-c f-c">
  86. <image :src="item.image" mode=""></image>
  87. <text class="text">{{item.text}}</text>
  88. </view>
  89. </uni-grid-item>
  90. </uni-grid>
  91. </swiper-item>
  92. </swiper>
  93. </view>
  94. </view>
  95. <!-- 售后管理End -->
  96. <!-- 我的关于Start -->
  97. <view class="my-tools">
  98. <view class="header d-flex a-center j-sb">
  99. <view>关于掌柜</view>
  100. </view>
  101. <view class="order-body d-flex a-center">
  102. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  103. <swiper style="height:calc(162upx)" class="swiper" :indicator-dots="(aboutListLength!=1)?true:false">
  104. <swiper-item class="swiper dis a-c" v-for="(count,cindex) of aboutListLength" :key="count">
  105. <uni-grid :column="4" :show-border="false" :square="false" :highlight="false"
  106. @change="toTools($event,'aboutList')">
  107. <uni-grid-item class="d-flex a-center j-center"
  108. v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)" v-for="(item ,index) in aboutList"
  109. :index="index" :key="item.text">
  110. <view class="grid-item-box d-flex a-center j-center flex-column">
  111. <image :src="item.image" mode=""></image>
  112. <text class="text">{{item.text}}</text>
  113. </view>
  114. </uni-grid-item>
  115. </uni-grid>
  116. </swiper-item>
  117. </swiper>
  118. </view>
  119. </view>
  120. <!-- 我的关于End -->
  121. <!-- 菜单Start -->
  122. <!-- <block v-for="(item,index) in menusList" :key="index">
  123. <my-list-item :item="item" :index="index"></my-list-item>
  124. </block> -->
  125. <!-- 菜单End -->
  126. <u-modal v-model="modalshow" :show-title="false">
  127. <view class="slot-content dis a-c j-c" style="padding: 20px;">
  128. <img :src="promoImage" alt="" style="width: 150px;height: 150px;" />
  129. </view>
  130. </u-modal>
  131. </view>
  132. </template>
  133. <script>
  134. import store from '@/store';
  135. import {
  136. mapState,
  137. mapMutations
  138. } from "vuex"
  139. import zPopup from '@/components/common/z-popup.vue'
  140. import {
  141. pathToBase64,
  142. base64ToPath
  143. } from '@/common/image-tools-base64.js';
  144. import myListItem from "@/components/modules/my/my-list-item.vue";
  145. import QR from "@/common/wxqrcode.js"
  146. export default {
  147. components: {
  148. zPopup,
  149. myListItem
  150. },
  151. data() {
  152. return {
  153. promoImage: "",
  154. modalshow: false,
  155. info: ["", ""],
  156. dotsStyles: {
  157. backgroundColor: '#E5E5E5',
  158. selectedBackgroundColor: '#0052FF',
  159. },
  160. current: 0,
  161. mode: 'default',
  162. headerStyle: {
  163. backgroundColor: '',
  164. backgroundImage: '',
  165. backgroundSize: '',
  166. backgroundPosition: '',
  167. boxShadow: ''
  168. // 其他样式属性...
  169. },
  170. showBackground: false,
  171. prevScrollTop: 0,
  172. popupShow: false, //头像是否展示
  173. mystatusText: "已认证",
  174. prodetIntroShow: true, //显示滚动公告
  175. avatar: "",
  176. orderTypeList: [{
  177. icon: 'icon-jixurenwu',
  178. orderstatus: 0,
  179. text: '报价中',
  180. badge: '0',
  181. type: "primary",
  182. orderStage: 0,
  183. iconColor: '#0696FF'
  184. },
  185. {
  186. icon: 'icon-hebaozhong',
  187. orderstatus: 1,
  188. text: '待核保',
  189. badge: '0',
  190. type: "success",
  191. orderStage: 1,
  192. iconColor: '#FFA22A'
  193. },
  194. {
  195. icon: 'icon-querenzhifu',
  196. orderstatus: 2,
  197. text: '待缴费',
  198. badge: '0',
  199. type: "error",
  200. orderStage: 2,
  201. },
  202. {
  203. icon: 'icon-peisong',
  204. orderstatus: 3,
  205. text: '已承保',
  206. badge: '0',
  207. type: "error",
  208. orderStage: 3,
  209. },
  210. ],
  211. toolsList: [{
  212. icon: 'icon-Frame-1',
  213. text: '会员分享',
  214. url: '/pages/tools/addStaff/addStaff',
  215. },
  216. {
  217. icon: 'icon-Frame',
  218. text: '会员管理',
  219. url: '/pages/tools/team/team',
  220. },
  221. {
  222. icon: 'icon-Frame-2',
  223. text: '客户管理',
  224. url: '/pages/tools/customer/customer',
  225. },
  226. {
  227. icon: 'icon-Frame-3',
  228. text: '业绩管理',
  229. url: '/pages/tools/achievement/achievement',
  230. },
  231. {
  232. icon: 'icon-Frame-5',
  233. text: '报案服务',
  234. url: '/pages/tools/insuranceClaims/insuranceClaims',
  235. },
  236. {
  237. icon: 'icon-Frame-4',
  238. text: '掌柜秘书',
  239. url: '/pages/tools/messageReminder/messageReminder',
  240. },
  241. {
  242. icon: 'icon-Frame-6',
  243. text: '保单',
  244. url: '/pages/tools/policy/policy',
  245. },
  246. {
  247. icon: 'icon-Frame-7',
  248. text: '计算器',
  249. url: '/pages/tools/calculator/calculator',
  250. },
  251. {
  252. icon: 'icon-a-02',
  253. text: '海报管理',
  254. url: '/pages/tools/poster/poster',
  255. },
  256. {
  257. icon: 'icon-a-01',
  258. text: '优惠劵',
  259. url: '/pages/tools/coupon/coupon',
  260. },
  261. {
  262. icon: 'icon-a-03',
  263. text: '掌柜商城',
  264. },
  265. {
  266. icon: 'icon-a-04',
  267. text: '车险之家',
  268. url: "/pages/carInsure/entry",
  269. },
  270. {
  271. icon: 'icon-renwuzhongxin',
  272. text: '任务中心',
  273. url: "/pages/ad/index",
  274. }
  275. ],
  276. aboutList: [{
  277. image: '/static/image/my/Frame5.png',
  278. text: '常见问题',
  279. url: '/pages/set/question',
  280. },
  281. // { icon: 'icon-baodan',text: '意见反馈',url:'/pages/set/suggest',iconColor:'#DD525E'},
  282. {
  283. image: '/static/image/my/Frame6.png',
  284. text: '意见反馈',
  285. url: '',
  286. },
  287. {
  288. image: '/static/image/my/Frame7.png',
  289. text: '联系客服',
  290. tel: '4006333016',
  291. },
  292. {
  293. image: '/static/image/my/Frame8.png',
  294. text: '关于我们',
  295. url: '/pages/set/about',
  296. }
  297. ],
  298. serviceList: [{
  299. image: '/static/image/my/Frame1.png',
  300. text: '发票申请',
  301. popup: '此功能还未开放,有需要请联系客服',
  302. },
  303. {
  304. image: '/static/image/my/Frame2.png',
  305. text: '保单批改',
  306. popup: '此功能还未开放,有需要请联系客服',
  307. },
  308. {
  309. image: '/static/image/my/Frame3.png',
  310. text: '申请退保',
  311. popup: '此功能还未开放,有需要请联系客服',
  312. },
  313. {
  314. image: '/static/image/my/Frame4.png',
  315. text: '自助理赔',
  316. popup: '此功能还未开放,有需要请联系客服',
  317. }
  318. ],
  319. menusList: [{
  320. icon: "shangcheng",
  321. name: "掌柜商场",
  322. clicktype: "nothing",
  323. url: "",
  324. auth: true
  325. },
  326. {
  327. icon: "chexiandingdan",
  328. name: "车险之家",
  329. clicktype: "navigateTo",
  330. url: "/pages/carInsure/entry",
  331. auth: true
  332. }
  333. ],
  334. InsureCount: 0,
  335. }
  336. },
  337. computed: {
  338. ...mapState(['userInfo', "userCheckInfo", ]),
  339. toolsListLength() {
  340. // let length = Math.ceil(this.toolsList.length / 8);
  341. let list = ["1", "2"]
  342. return list;
  343. },
  344. aboutListLength() {
  345. return Math.ceil(this.aboutList.length / 4);
  346. },
  347. serviceListLength() {
  348. return Math.ceil(this.serviceList.length / 4);
  349. }
  350. },
  351. async onShow() {
  352. await this.getInsureCount();
  353. if (this.userInfo.sysUser.headSculpture) {
  354. this.avatar = this.$base.baseUrl + this.userInfo.sysUser.headSculpture;
  355. } else {
  356. this.avatar = "/static/image/my/avatar1.png"
  357. }
  358. if (this.userInfo.sysUser.status == '1') {
  359. this.mystatusText = "已认证";
  360. } else if (this.userStatus == '2') {
  361. this.mystatusText = "未认证";
  362. }
  363. },
  364. async onload() {
  365. await this.getInsureCount();
  366. },
  367. onPageScroll(e) {
  368. this.handleScroll(e);
  369. },
  370. mounted() {
  371. uni.pageScrollTo({
  372. scrollTop: 0,
  373. duration: 0
  374. });
  375. uni.$on('scroll', this.handleScroll);
  376. },
  377. destroyed() {
  378. uni.$off('scroll', this.handleScroll);
  379. },
  380. methods: {
  381. ...mapMutations(['setUserModules', 'setOrderType', 'setOrderStage']),
  382. //头部颜色变化js
  383. change(e) {
  384. this.current = e.detail.current;
  385. },
  386. async getInsureCount() {
  387. let res = await this.$http.post('/insurance/order/getExpirationInsureCount');
  388. if (res.code == '200') {
  389. this.InsureCount = res.data;
  390. }
  391. },
  392. handleScroll(e) {
  393. const scrollTop = e.scrollTop;
  394. if (scrollTop > this.prevScrollTop) {
  395. // 向下滚动
  396. this.showBackground = true; // 显示背景图
  397. } else if (scrollTop < 50) {
  398. // 在顶部附近,隐藏背景图
  399. this.showBackground = false;
  400. } else {
  401. // 向上滚动
  402. this.showBackground = true; // 显示背景图
  403. }
  404. this.headerStyle.backgroundColor = this.showBackground ? '#fff' : 'transparent';
  405. this.headerStyle.backgroundImage = this.showBackground ? 'url("/static/image/my/banner.png")' : '';
  406. this.headerStyle.backgroundSize = this.showBackground ? 'cover' : '';
  407. this.headerStyle.backgroundPosition = this.showBackground ? 'center' : '';
  408. this.prevScrollTop = scrollTop;
  409. },
  410. tool() {
  411. uni.navigateTo({
  412. url: "/pages/set/set"
  413. })
  414. },
  415. //去工具页面
  416. async toTools(e, listName) {
  417. if (this.userInfo.sysUser.status == '2') {
  418. return uni.showToast({
  419. icon: "none",
  420. title: '请先通过实名认证',
  421. duration: 1500
  422. })
  423. }
  424. if (!!this[listName][e.detail.index].url && (this[listName][e.detail.index].url ==
  425. '/pages/wallet/wallet')) {
  426. if ((!!this.userInfo.esmUserInternal) && (!!this.userInfo.esmUserInternal.accountno)) {
  427. this.navigate({
  428. url: this[listName][e.detail.index].url
  429. }, "navigateTo", true)
  430. } else {
  431. this.navigate({
  432. url: '/pages/wallet/bindBank',
  433. complete: () => {
  434. setTimeout(() => {
  435. uni.showToast({
  436. title: '请先绑定银行卡',
  437. duration: 3000,
  438. icon: "none"
  439. });
  440. }, 500);
  441. }
  442. }, "navigateTo", true)
  443. }
  444. } else if (this[listName][e.detail.index].url) {
  445. this.navigate({
  446. url: this[listName][e.detail.index].url
  447. }, "navigateTo", true)
  448. } else if (this[listName][e.detail.index].tel) {
  449. uni.makePhoneCall({
  450. phoneNumber: this[listName][e.detail.index].tel,
  451. })
  452. } else if (this[listName][e.detail.index].popup) {
  453. let res = await this.$http.get('/sys/qy/wechat/find/picture');
  454. if (res.code == '200') {
  455. this.promoImage = QR.createQrCodeImg(res.data.wechatPictureUrl, {
  456. size: parseInt(200) //二维码大小
  457. })
  458. this.modalshow = true;
  459. } else {
  460. uni.showModal({
  461. showCancel: false,
  462. content: this[listName][e.detail.index].popup,
  463. });
  464. }
  465. } else {
  466. uni.showToast({
  467. title: this[listName][e.detail.index].text + '更新中...',
  468. icon: 'none'
  469. })
  470. }
  471. },
  472. async accountTool(path) {
  473. if (path) {
  474. if (path == '/pages/wallet/bankCard') {
  475. let res = await this.$http.post('/userBank/getUserBankList', {
  476. auditStatus: '',
  477. });
  478. if (!res.data.length) {
  479. this.navigate({
  480. url: '/pages/wallet/bindBank',
  481. complete: () => {
  482. setTimeout(() => {
  483. uni.showToast({
  484. title: '请先绑定银行卡',
  485. duration: 3000,
  486. icon: "none"
  487. });
  488. }, 500);
  489. }
  490. }, "navigateTo", true)
  491. } else {
  492. this.navigate({
  493. url: path,
  494. }, "navigateTo", true)
  495. }
  496. } else {
  497. this.navigate({
  498. url: path,
  499. }, "navigateTo", true)
  500. }
  501. } else {
  502. uni.showToast({
  503. title: '功能待开发...',
  504. icon: "none"
  505. });
  506. }
  507. },
  508. // 去账单明细
  509. toBillDetails(type) {
  510. this.navigate({
  511. url: `/pages/wallet/billDetails${type}`,
  512. }, "navigateTo", true)
  513. },
  514. // 去账单明细
  515. toWallet(type) {
  516. this.navigate({
  517. url: "/pages/wallet/wallet"
  518. }, "navigateTo", true)
  519. },
  520. //跳转个人信息页面
  521. openDetail() {
  522. this.navigate({
  523. url: "/pages/user/userInfo"
  524. }, "navigateTo", false)
  525. },
  526. //跳转订单页面
  527. openOrder(e) {
  528. this.setOrderStage(this.orderTypeList[e].orderStage);
  529. this.navigate({
  530. url: "/pages/orders/orders"
  531. }, "switchTab", true)
  532. }
  533. }
  534. }
  535. </script>
  536. <style lang="scss" scoped>
  537. @import '@/style/mixin.scss';
  538. page {
  539. background-color: #F8FAFE;
  540. }
  541. .headers {
  542. position: fixed;
  543. top: 0;
  544. left: 0;
  545. height: auto;
  546. width: 100%;
  547. z-index: 999999;
  548. padding: 16px;
  549. padding-top: 50px;
  550. >view {
  551. width: 100%;
  552. height: 100%;
  553. position: relative;
  554. }
  555. image {
  556. position: absolute;
  557. right: 0;
  558. width: 20px;
  559. height: 20px;
  560. }
  561. text {
  562. font-size: 18px;
  563. font-weight: bold;
  564. color: #000;
  565. }
  566. }
  567. .Personnel {
  568. height: auto;
  569. width: 100%;
  570. background: #fff;
  571. background-image: url("/static/image/my/banner.png");
  572. background-size: 100% 100%;
  573. padding: 110px 16px 10px 16px;
  574. .avatar {
  575. width: 60px;
  576. height: 60px;
  577. border-radius: 50%;
  578. }
  579. .info {
  580. margin-left: 10px;
  581. text {
  582. margin-right: 10px;
  583. color: #333333;
  584. font-size: 13px;
  585. }
  586. text:last-child {
  587. color: rgba(51, 51, 51, 0.8);
  588. font-size: 12px;
  589. }
  590. }
  591. }
  592. .my-tools {
  593. padding: 0 16px;
  594. .header {
  595. padding: 10px 0;
  596. font-size: 14px;
  597. color: #232832;
  598. font-weight: bold;
  599. }
  600. .order-body {
  601. background: #fff;
  602. box-shadow: 0px 4px 10px 0px #DAE3F4;
  603. border-radius: 6px;
  604. }
  605. }
  606. /* 产品介绍Start */
  607. .prodet-intro {
  608. width: 100%;
  609. height: 70upx;
  610. background-color: #333;
  611. color: #3ae;
  612. white-space: nowrap;
  613. border-top: 1upx solid #666;
  614. border-bottom: 1upx solid #666;
  615. box-sizing: border-box;
  616. }
  617. .prodet-intro>view:nth-of-type(1) {
  618. width: 60upx;
  619. height: 100%;
  620. flex-shrink: 1;
  621. padding-left: 20upx;
  622. font-size: 36upx;
  623. }
  624. .prodet-intro>view:nth-of-type(2) {
  625. overflow: hidden;
  626. line-height: 70upx;
  627. font-size: 24upx;
  628. }
  629. .prodet-intro>view:nth-of-type(3) {
  630. width: 60upx;
  631. padding-right: 20upx;
  632. flex-shrink: 1;
  633. height: 100%;
  634. font-size: 36upx;
  635. }
  636. .animate {
  637. padding-left: 40rpx;
  638. display: inline-block;
  639. white-space: nowrap;
  640. animation: 20s wordsLoop linear infinite normal;
  641. }
  642. @keyframes wordsLoop {
  643. 0% {
  644. transform: translateX(750rpx);
  645. -webkit-transform: translateX(750rpx);
  646. }
  647. 100% {
  648. transform: translateX(-100%);
  649. -webkit-transform: translateX(-100%);
  650. }
  651. }
  652. /* 产品介绍End */
  653. /* 个人信息Start */
  654. /* 个人信息End */
  655. /* 我的订单Start */
  656. .my-orders {
  657. display: flex;
  658. justify-content: center;
  659. align-items: center;
  660. }
  661. .my-orders,
  662. .wallet-body {
  663. position: relative;
  664. width: 95%;
  665. height: 180upx;
  666. background: #FFFFFF;
  667. border-radius: 20upx;
  668. box-shadow: 0upx 0upx 10upx #efeff4;
  669. overflow: hidden;
  670. }
  671. /* 我的订单End */
  672. /* 我的钱包Start */
  673. .my-wallet {
  674. .wallet-body {
  675. width: 100%;
  676. height: auto;
  677. padding: 8px 16px;
  678. background: #FFFFFF;
  679. box-shadow: 0px 4px 10px 0px #DAE3F4;
  680. border-radius: 6px;
  681. margin-top: 10px;
  682. .route {
  683. text {
  684. font-size: 12px;
  685. color: #333;
  686. font-weight: 400;
  687. }
  688. image {
  689. width: 45px;
  690. height: 40px;
  691. }
  692. }
  693. .money {
  694. padding: 8px 0;
  695. background-color: #F9F8FD;
  696. border-radius: 4px;
  697. margin-top: 8px;
  698. text {
  699. font-size: 12px;
  700. color: #333;
  701. font-weight: 400;
  702. }
  703. }
  704. }
  705. }
  706. /* 我的钱包End */
  707. /* 小的分项标题Start */
  708. /* 小的分项标题End */
  709. .grid-item-box {
  710. .icon {
  711. font-size: 26px;
  712. }
  713. .text {
  714. font-size: 12px;
  715. }
  716. image {
  717. width: 32px;
  718. height: 32px;
  719. }
  720. }
  721. .swiper {
  722. width: 100%;
  723. }
  724. .swiper-view .keep-out {
  725. width: 100%;
  726. height: 30upx;
  727. border-radius: 100% 100% 0 0;
  728. margin-top: -15upx;
  729. position: absolute;
  730. }
  731. .swiper-view .swiper {
  732. overflow: hidden;
  733. padding: 30upx 20upx 0;
  734. box-sizing: border-box;
  735. width: 100%;
  736. height: 200upx;
  737. }
  738. .swiper-view .swiper image {
  739. width: 100%;
  740. height: 200upx;
  741. }
  742. </style>