my.vue 21 KB

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