my.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937
  1. <template>
  2. <view>
  3. <!-- 公共组件-每个页面必须引入 -->
  4. <public-module></public-module>
  5. <!-- 头部信息Start -->
  6. <view class="prodet-intro d-flex" v-show="prodetIntroShow">
  7. <view class="icon iconfont icon-notice d-flex a-center j-center"></view>
  8. <view class="u-f1">
  9. <p class="animate">掌柜爆款百万医疗!众安尊享e生2020版,最高300万一般医疗保障,100种重疾+121种罕见病医疗最高600万保障,四大增值服务,一年低至136元起!点击了解>>
  10. </p>
  11. </view>
  12. <view class="icon iconfont icon-cuo d-flex a-center j-center" @tap="controlProdetIntro"></view>
  13. </view>
  14. <view class="home-info d-flex">
  15. <view class="mystatus d-flex a-center j-center">{{userInfo.sysUser.status=='1'?'已认证':'未认证'}}</view>
  16. <image :src="avatar" mode="aspectFill" @tap="popupShow = true"></image>
  17. <view class="person-info" @tap="openDetail">
  18. <h3>{{userInfo.sysUser.name}}</h3>
  19. <p>你身边最贴心、最权威的保险咨询专家【个性化签名】</p>
  20. </view>
  21. </view>
  22. <!-- 头部信息End -->
  23. <!-- 我的订单Start -->
  24. <scroll-view scroll-x class="my-orders ">
  25. <view :style="'width: calc(((690upx)/4)*'+orderTypeList.length+')'">
  26. <uni-grid :column="orderTypeList.length" :show-border="false" :square="false" @change="openOrder">
  27. <uni-grid-item style="width: calc((690upx)/4)" class="" v-for="(item ,index) in orderTypeList"
  28. :index="index" :key="index">
  29. <view style="width: calc((690upx)/4)"
  30. class="grid-item-box d-flex a-center j-center flex-column">
  31. <view class="icon iconfont" :class="item.icon" :style="'color:'+item.iconColor"></view>
  32. <text class="text">{{item.text}}</text>
  33. <view v-if="item.badge" class="grid-dot" v-show="item.badge>0">
  34. <uni-badge :text="(item.badge>99)?'99+':item.badge" :type="item.type" size="small"
  35. :inverted="false" />
  36. </view>
  37. </view>
  38. </uni-grid-item>
  39. </uni-grid>
  40. </view>
  41. </scroll-view>
  42. <!-- 我的订单End -->
  43. <!-- 广告轮播 -->
  44. <view class="swiper-view">
  45. <swiper class="swiper" indicator-dots="true" autoplay="true" circular="true"
  46. indicator-active-color="#ffffff" :indicator-dots="swiperList.length>1">
  47. <swiper-item v-for="swiper in swiperList" :key="swiper.sid">
  48. <image mode="aspectFill" :src="swiper.img" lazy-load></image>
  49. </swiper-item>
  50. </swiper>
  51. </view>
  52. <!-- 广告End -->
  53. <!-- 我的钱包Start -->
  54. <view class="my-wallet">
  55. <view class="header d-flex a-center j-sb">
  56. <view>我的钱包</view>
  57. <span @tap="toWallet" style="font-size: 24upx;color: #333;">更多</span>
  58. </view>
  59. <view class="wallet-body d-flex">
  60. <view class="flex-1" @tap="toBillDetails(1)">
  61. <view class="d-flex a-center j-center">预收账户</view>
  62. <view style="color: #33AAEE;" class="d-flex a-center j-center">¥{{advanceMoney}}</view>
  63. </view>
  64. <view class="flex-1" @tap="toBillDetails(2)">
  65. <view class="d-flex a-center j-center">可提现余额</view>
  66. <view style="color: #33AAEE;" class="d-flex a-center j-center">¥{{withdrawal}}</view>
  67. </view>
  68. <view class="flex-1" @tap="toBillDetails(3)">
  69. <view class="d-flex a-center j-center">推广费</view>
  70. <view style="color: #DA4452;" class="d-flex a-center j-center">¥{{extendMoney}}</view>
  71. </view>
  72. </view>
  73. </view>
  74. <!-- 我的钱包End -->
  75. <!-- 我的工具Start -->
  76. <view class="my-tools">
  77. <view class="header d-flex a-center j-sb">
  78. <view>我的工具</view>
  79. </view>
  80. <view class="order-body d-flex a-center">
  81. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  82. <swiper style="height:calc(324upx)" class="swiper" :indicator-dots="(toolsListLength!=1)?true:false">
  83. <swiper-item class="swiper" v-for="(count,cindex) of toolsListLength" :key="count">
  84. <uni-grid :column="4" :show-border="false" :square="false" :highlight="false"
  85. @change="toTools($event,'toolsList')">
  86. <uni-grid-item class="d-flex a-center j-center"
  87. v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)" v-for="(item ,index) in toolsList"
  88. :index="index" :key="item.text">
  89. <view class="grid-item-box d-flex a-center j-center flex-column">
  90. <view class="icon iconfont" :class="item.icon" :style="'color:'+item.iconColor">
  91. </view>
  92. <text class="text">{{item.text}}</text>
  93. </view>
  94. </uni-grid-item>
  95. </uni-grid>
  96. </swiper-item>
  97. </swiper>
  98. </view>
  99. </view>
  100. <!-- 我的工具End -->
  101. <!-- 售后管理Start -->
  102. <view class="my-tools">
  103. <view class="header d-flex a-center j-sb">
  104. <view>售后管理</view>
  105. </view>
  106. <view class="order-body d-flex a-center">
  107. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  108. <swiper style="height:calc(162upx)" class="swiper" :indicator-dots="(serviceListLength!=1)?true:false">
  109. <swiper-item class="swiper" v-for="(count,cindex) of serviceListLength" :key="count">
  110. <uni-grid :column="4" :show-border="false" :square="false" :highlight="false"
  111. @change="toTools($event,'serviceList')">
  112. <uni-grid-item class="d-flex a-center j-center"
  113. v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)"
  114. v-for="(item ,index) in serviceList" :index="index" :key="item.text">
  115. <view class="grid-item-box d-flex a-center j-center flex-column">
  116. <view class="icon iconfont" :class="item.icon" :style="'color:'+item.iconColor">
  117. </view>
  118. <text class="text">{{item.text}}</text>
  119. </view>
  120. </uni-grid-item>
  121. </uni-grid>
  122. </swiper-item>
  123. </swiper>
  124. </view>
  125. </view>
  126. <!-- 售后管理End -->
  127. <!-- 我的关于Start -->
  128. <view class="my-tools">
  129. <view class="header d-flex a-center j-sb">
  130. <view>关于掌柜</view>
  131. </view>
  132. <view class="order-body d-flex a-center">
  133. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  134. <swiper style="height:calc(162upx)" class="swiper" :indicator-dots="(aboutListLength!=1)?true:false">
  135. <swiper-item class="swiper" v-for="(count,cindex) of aboutListLength" :key="count">
  136. <uni-grid :column="4" :show-border="false" :square="false" :highlight="false"
  137. @change="toTools($event,'aboutList')">
  138. <uni-grid-item class="d-flex a-center j-center"
  139. v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)" v-for="(item ,index) in aboutList"
  140. :index="index" :key="item.text">
  141. <view class="grid-item-box d-flex a-center j-center flex-column">
  142. <view class="icon iconfont" :class="item.icon" :style="'color:'+item.iconColor">
  143. </view>
  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. <!-- 头像预览Start -->
  159. <z-popup v-model="popupShow" :hideOnBlur="false" type="center" width="600upx" radius="12upx">
  160. <view class="popup_title">
  161. <text @click="popupShow = false">取消</text>
  162. <view>头像预览</view>
  163. <text @click="changeAvatar">更换</text>
  164. </view>
  165. <view class="popup_content">
  166. <view class="body d-flex a-center j-center">
  167. <image :src="avatar" mode="aspectFill" @longtap="saveAvatar"></image>
  168. </view>
  169. </view>
  170. </z-popup>
  171. </view>
  172. </template>
  173. <script>
  174. import {
  175. mapState,
  176. mapMutations
  177. } from "vuex"
  178. import zPopup from '@/components/common/z-popup.vue'
  179. import {
  180. pathToBase64,
  181. base64ToPath
  182. } from '@/common/image-tools-base64.js';
  183. import myListItem from "@/components/modules/my/my-list-item.vue";
  184. export default {
  185. components: {
  186. zPopup,
  187. myListItem
  188. },
  189. data() {
  190. return {
  191. popupShow: false, //头像是否展示
  192. mystatusText: "已认证",
  193. prodetIntroShow: true, //显示滚动公告
  194. advanceMoney: '0', // 预收账户金额
  195. withdrawal: '0', //可提现金额
  196. extendMoney: '0', //推广费
  197. //轮播
  198. swiperList: [{
  199. sid: 0,
  200. src: '自定义src0',
  201. img: '/static/image/my/ads/ban1.png'
  202. }],
  203. orderTypeList: [{
  204. icon: 'icon-jixurenwu',
  205. orderstatus: 0,
  206. text: '报价中',
  207. badge: '0',
  208. type: "primary",
  209. orderStage: 0,
  210. iconColor: '#0696FF'
  211. },
  212. {
  213. icon: 'icon-hebaozhong',
  214. orderstatus: 1,
  215. text: '待核保',
  216. badge: '0',
  217. type: "success",
  218. orderStage: 1,
  219. iconColor: '#FFA22A'
  220. },
  221. {
  222. icon: 'icon-querenzhifu',
  223. orderstatus: 2,
  224. text: '待缴费',
  225. badge: '0',
  226. type: "error",
  227. orderStage: 2,
  228. iconColor: '#DD525E'
  229. },
  230. {
  231. icon: 'icon-peisong',
  232. orderstatus: 3,
  233. text: '已承保',
  234. badge: '0',
  235. type: "error",
  236. orderStage: 3,
  237. iconColor: '#0696FF'
  238. },
  239. ],
  240. toolsList: [{
  241. icon: 'icon-shandian',
  242. text: '闪电增员',
  243. url: '/pages/tools/addStaff/addStaff',
  244. iconColor: '#0696FF'
  245. },
  246. {
  247. icon: 'icon-tuanduiguanli',
  248. text: '团队管理',
  249. url: '/pages/tools/team/team',
  250. iconColor: '#FFA22A'
  251. },
  252. {
  253. icon: 'icon-kehuguanli',
  254. text: '客户管理',
  255. url: '/pages/tools/customer/customer',
  256. iconColor: '#0696FF'
  257. },
  258. {
  259. icon: 'icon-yejiguanli',
  260. text: '业绩管理',
  261. url: '/pages/tools/achievement/achievement',
  262. iconColor: '#0696FF'
  263. },
  264. {
  265. icon: 'icon-20xiaoshifuwurexian',
  266. text: '报案服务',
  267. url: '/pages/tools/insuranceClaims/insuranceClaims',
  268. iconColor: '#DD525E'
  269. },
  270. {
  271. icon: 'icon-qianbao',
  272. text: '钱包',
  273. url: '/pages/wallet/wallet',
  274. iconColor: '#FFA22A'
  275. },
  276. {
  277. icon: 'icon-baodan',
  278. text: '保单',
  279. url: '/pages/tools/policy',
  280. iconColor: '#0696FF'
  281. },
  282. {
  283. icon: 'icon-jisuanqi',
  284. text: '计算器',
  285. url: '/pages/tools/calculator/calculator',
  286. iconColor: '#0696FF'
  287. },
  288. {
  289. icon: 'icon-xiaomishu',
  290. text: '掌柜秘书',
  291. url: '/pages/tools/messageReminder/messageReminder',
  292. iconColor: '#DD525E'
  293. },
  294. {
  295. icon: 'icon-xiaomishu',
  296. text: '海报管理',
  297. url: '/pages/tools/poster/poster',
  298. iconColor: '#0696FF'
  299. },
  300. {
  301. icon: 'icon-xiaomishu',
  302. text: '优惠劵',
  303. url: '/pages/tools/coupon/coupon',
  304. iconColor: '#0696FF'
  305. }
  306. ],
  307. aboutList: [{
  308. icon: 'icon-yejiguanli',
  309. text: '常见问题',
  310. url: '/pages/set/question',
  311. iconColor: '#0696FF'
  312. },
  313. // { icon: 'icon-baodan',text: '意见反馈',url:'/pages/set/suggest',iconColor:'#DD525E'},
  314. {
  315. icon: 'icon-baodan',
  316. text: '意见反馈',
  317. url: '',
  318. iconColor: '#DD525E'
  319. },
  320. {
  321. icon: 'icon-yongjinguanli',
  322. text: '联系客服',
  323. tel: '4006333016',
  324. iconColor: '#FFA22A'
  325. },
  326. {
  327. icon: 'icon-qianbao',
  328. text: '关于我们',
  329. url: '/pages/set/about',
  330. iconColor: '#0696FF'
  331. }
  332. ],
  333. serviceList: [{
  334. icon: 'icon-yejiguanli',
  335. text: '发票申请',
  336. popup: '请加微信15513511113,联系客服操作',
  337. iconColor: '#0696FF'
  338. },
  339. {
  340. icon: 'icon-yongjinguanli',
  341. text: '保单批改',
  342. popup: '请加微信15513511113,联系客服操作',
  343. iconColor: '#FFA22A'
  344. },
  345. {
  346. icon: 'icon-qianbao',
  347. text: '申请退保',
  348. popup: '请加微信15513511113,联系客服操作',
  349. iconColor: '#0696FF'
  350. },
  351. {
  352. icon: 'icon-qianbao',
  353. text: '自助理赔',
  354. popup: '请加微信15513511113,联系客服操作',
  355. iconColor: '#0696FF'
  356. }
  357. ],
  358. menusList: [{
  359. icon: "shangcheng",
  360. name: "掌柜商场",
  361. clicktype: "nothing",
  362. url: "",
  363. auth: true
  364. },
  365. {
  366. icon: "chexiandingdan",
  367. name: "车险之家",
  368. clicktype: "navigateTo",
  369. url: "/pages/carInsure/entry",
  370. auth: true
  371. }
  372. ]
  373. }
  374. },
  375. onNavigationBarButtonTap(e) {
  376. if (e.index == 0) {
  377. uni.navigateTo({
  378. url: "/pages/set/set"
  379. })
  380. }
  381. },
  382. computed: {
  383. ...mapState(['avatar', 'userInfo', "userCheckInfo"]),
  384. toolsListLength() {
  385. return Math.ceil(this.toolsList.length / 8);
  386. },
  387. aboutListLength() {
  388. return Math.ceil(this.aboutList.length / 4);
  389. },
  390. serviceListLength() {
  391. return Math.ceil(this.serviceList.length / 4);
  392. }
  393. },
  394. onShow() {
  395. if (this.userInfo.sysUser.status == '1') {
  396. this.mystatusText = "已认证";
  397. } else if (this.userStatus == '2') {
  398. this.mystatusText = "未认证";
  399. }
  400. },
  401. async onload() {
  402. await this.getAdvanceMoney(); //预收金额
  403. await this.getPayAccount(); //可提现余额
  404. await this.getExtendMoney(); //推广费
  405. await this.getOrderNum(); //获取订单数量
  406. },
  407. methods: {
  408. ...mapMutations(['setUserModules', 'setOrderType', 'setOrderStage']),
  409. //获得订单数量
  410. async getOrderNum() {
  411. console.log(this.userInfo)
  412. var data = {
  413. "columnFilters": {
  414. "orderstatus": {
  415. "name": "orderstatus",
  416. "value": ""
  417. },
  418. "userid": {
  419. "name": "userid",
  420. // "value": this.userInfo.sysUser.id
  421. },
  422. "quotestatus": {
  423. "name": "quotestatus",
  424. "value": '1'
  425. }
  426. },
  427. "pageNum": 1,
  428. "pageSize": 1
  429. };
  430. for (let i = 0; i < this.orderTypeList.length; i++) {
  431. data.columnFilters.orderstatus.value = this.orderTypeList[i].orderstatus;
  432. let res = await this.$http.post('/insOrder/findPage', data, {
  433. load: false
  434. });
  435. // 请求失败处理
  436. if (res.code == 200) {
  437. this.orderTypeList[i].badge = res.data.totalSize;
  438. } else {
  439. this.orderTypeList[i].badge = '0';
  440. }
  441. }
  442. },
  443. // 预收账户金额查询
  444. async getAdvanceMoney() {
  445. let res = await this.$http.get('/insPayApply/advanceAccount?userid=', {}, {
  446. load: false
  447. });
  448. // 请求失败处理
  449. if (res.code == 200) {
  450. this.advanceMoney = res.data;
  451. } else {
  452. this.advanceMoney = '0';
  453. }
  454. },
  455. // 可提现余额查询
  456. async getPayAccount() {
  457. let res = await this.$http.get('/insPayApply/payAccount?userid=', {}, {
  458. load: false
  459. });
  460. // 请求失败处理
  461. if (res.code == 200) {
  462. this.withdrawal = res.data.accountBalance;
  463. } else {
  464. this.withdrawal = '0';
  465. }
  466. },
  467. //推广费
  468. async getExtendMoney() {
  469. let res = await this.$http.get('/insPayApply/extendAccount?userid=', {}, {
  470. load: false
  471. });
  472. // 请求失败处理
  473. if (res.code == 200) {
  474. this.extendMoney = res.data.accountBalance;
  475. } else {
  476. this.extendMoney = '0';
  477. }
  478. },
  479. // 广告滚动
  480. controlProdetIntro() {
  481. this.prodetIntroShow = !this.prodetIntroShow;
  482. },
  483. //保存头像
  484. saveAvatar() {
  485. var that = this;
  486. uni.saveImageToPhotosAlbum({ //保存图片
  487. filePath: that.avatar,
  488. success: (res) => {
  489. uni.showToast({
  490. title: '保存成功',
  491. })
  492. }
  493. })
  494. },
  495. //修改头像
  496. async changeAvatar() {
  497. let [err, chooseImageRes] = await uni.chooseImage({
  498. count: 1,
  499. sizeType: ['compressed']
  500. });
  501. if (!chooseImageRes) return;
  502. const isLt2M = chooseImageRes.tempFiles[0].size / 1024 / 1024 < 2;
  503. if (!isLt2M) {
  504. return uni.showToast({
  505. title: '上传图片大小不能超过 2MB!',
  506. icon: "none"
  507. });
  508. }
  509. // 上传
  510. pathToBase64(chooseImageRes.tempFilePaths[0])
  511. .then(async base64 => {
  512. var paramImg = {
  513. "imgList": [base64],
  514. "imgtype": "avatar",
  515. "taskid": "",
  516. }
  517. let res = await this.$http.post('/insTaskImage/save', paramImg);
  518. if (res.code == 200) {
  519. this.setUserModules({
  520. title: 'avatar',
  521. data: base64
  522. })
  523. uni.showToast({
  524. title: '更换头像成功!',
  525. icon: 'none',
  526. duration: 2000
  527. });
  528. } else {
  529. uni.showToast({
  530. title: '更换头像失败!',
  531. icon: 'none',
  532. duration: 2000
  533. });
  534. }
  535. })
  536. },
  537. //去工具页面
  538. toTools(e, listName) {
  539. if (!!this[listName][e.detail.index].url && (this[listName][e.detail.index].url ==
  540. '/pages/wallet/wallet')) {
  541. if ((!!this.userInfo.esmUserInternal) && (!!this.userInfo.esmUserInternal.accountno)) {
  542. this.navigate({
  543. url: this[listName][e.detail.index].url
  544. }, "navigateTo", true)
  545. } else {
  546. this.navigate({
  547. url: '/pages/wallet/bindBank',
  548. complete: () => {
  549. setTimeout(() => {
  550. uni.showToast({
  551. title: '请先绑定银行卡',
  552. duration: 3000,
  553. icon: "none"
  554. });
  555. }, 500);
  556. }
  557. }, "navigateTo", true)
  558. }
  559. } else if (this[listName][e.detail.index].url) {
  560. this.navigate({
  561. url: this[listName][e.detail.index].url
  562. }, "navigateTo", true)
  563. } else if (this[listName][e.detail.index].tel) {
  564. uni.makePhoneCall({
  565. phoneNumber: this[listName][e.detail.index].tel,
  566. })
  567. } else if (this[listName][e.detail.index].popup) {
  568. uni.showModal({
  569. showCancel: false,
  570. content: this[listName][e.detail.index].popup,
  571. });
  572. } else {
  573. uni.showToast({
  574. title: this[listName][e.detail.index].text + '更新中...',
  575. icon: 'none'
  576. })
  577. }
  578. },
  579. // 去账单明细
  580. toBillDetails(type) {
  581. this.navigate({
  582. url: "/pages/wallet/billDetails" + type
  583. }, "navigateTo", true)
  584. },
  585. // 去账单明细
  586. toWallet(type) {
  587. this.navigate({
  588. url: "/pages/wallet/wallet"
  589. }, "navigateTo", true)
  590. },
  591. //跳转个人信息页面
  592. openDetail() {
  593. this.navigate({
  594. url: "/pages/user/userInfo"
  595. }, "navigateTo", false)
  596. },
  597. //跳转订单页面
  598. openOrder(e) {
  599. let index = e.detail.index;
  600. this.setOrderStage(this.orderTypeList[index].orderStage);
  601. this.navigate({
  602. url: "/pages/orders/orders"
  603. }, "switchTab", true)
  604. }
  605. }
  606. }
  607. </script>
  608. <style lang="scss" scoped>
  609. @import '@/style/mixin.scss';
  610. page {
  611. background-color: #FEFEFE;
  612. }
  613. /* 产品介绍Start */
  614. .prodet-intro {
  615. width: 100%;
  616. height: 70upx;
  617. background-color: #333;
  618. color: #3ae;
  619. white-space: nowrap;
  620. border-top: 1upx solid #666;
  621. border-bottom: 1upx solid #666;
  622. box-sizing: border-box;
  623. }
  624. .prodet-intro>view:nth-of-type(1) {
  625. width: 60upx;
  626. height: 100%;
  627. flex-shrink: 1;
  628. padding-left: 20upx;
  629. font-size: 36upx;
  630. }
  631. .prodet-intro>view:nth-of-type(2) {
  632. overflow: hidden;
  633. line-height: 70upx;
  634. font-size: 24upx;
  635. }
  636. .prodet-intro>view:nth-of-type(3) {
  637. width: 60upx;
  638. padding-right: 20upx;
  639. flex-shrink: 1;
  640. height: 100%;
  641. font-size: 36upx;
  642. }
  643. .animate {
  644. padding-left: 40rpx;
  645. display: inline-block;
  646. white-space: nowrap;
  647. animation: 20s wordsLoop linear infinite normal;
  648. }
  649. @keyframes wordsLoop {
  650. 0% {
  651. transform: translateX(750rpx);
  652. -webkit-transform: translateX(750rpx);
  653. }
  654. 100% {
  655. transform: translateX(-100%);
  656. -webkit-transform: translateX(-100%);
  657. }
  658. }
  659. /* 产品介绍End */
  660. /* 头像预览Start */
  661. .popup_box {
  662. width: 100%;
  663. }
  664. .popup_title {
  665. display: flex;
  666. justify-content: space-between;
  667. height: 88upx;
  668. line-height: 88upx;
  669. border-bottom: 2upx solid #ebebeb;
  670. padding: 0 20upx;
  671. background-color: #FFF;
  672. }
  673. .popup_title view {
  674. font-size: 32upx;
  675. display: flex;
  676. align-items: center;
  677. }
  678. .popup_title text {
  679. width: 80upx;
  680. flex-shrink: 0;
  681. text-align: center;
  682. }
  683. .popup_title text {
  684. font-size: 28upx;
  685. color: #999;
  686. }
  687. .popup_title text:last-child {
  688. color: $themeColor;
  689. }
  690. .popup_content {
  691. padding: 40rpx 30rpx;
  692. background-color: #FFFFFF;
  693. text-align: center;
  694. }
  695. .popup_content .body image {
  696. width: 300upx;
  697. height: 300upx;
  698. }
  699. /* 头像预览End */
  700. /* 个人信息Start */
  701. .home-info {
  702. height: 243upx;
  703. padding-top: 25upx;
  704. /* background: #343740; */
  705. background: url(/static/image/my/infoBg.jpg) no-repeat 50%;
  706. background-size: 100% 100%;
  707. color: #FFFFFF;
  708. position: relative;
  709. }
  710. .home-info .mystatus {
  711. position: absolute;
  712. top: 100upx;
  713. left: 45upx;
  714. border-radius: 20upx;
  715. z-index: 10;
  716. font-size: 20upx;
  717. height: 35upx;
  718. width: 100upx;
  719. background-color: #007AFF;
  720. }
  721. .home-info>image {
  722. width: 110upx;
  723. height: 110upx;
  724. margin: 0upx 20upx 0upx 40upx;
  725. border-radius: 50%;
  726. flex-shrink: 1;
  727. }
  728. .home-info .person-info {
  729. display: inline-block;
  730. width: 70%;
  731. vertical-align: top;
  732. padding-top: 5upx;
  733. color: #fff;
  734. }
  735. .home-info .person-info>p {
  736. font-size: 24upx;
  737. line-height: 30upx;
  738. opacity: .4;
  739. overflow: hidden;
  740. text-overflow: ellipsis;
  741. white-space: nowrap;
  742. }
  743. /* 个人信息End */
  744. /* 我的订单Start */
  745. .my-orders {
  746. display: flex;
  747. justify-content: center;
  748. align-items: center;
  749. }
  750. .my-orders,
  751. .wallet-body {
  752. position: relative;
  753. width: 95%;
  754. height: 180upx;
  755. margin: -80rpx auto 0;
  756. background: #FFFFFF;
  757. border-radius: 20upx;
  758. box-shadow: 0upx 0upx 10upx #efeff4;
  759. overflow: hidden;
  760. }
  761. .my-orders .grid-item-box {
  762. padding: 20upx 0;
  763. }
  764. .my-orders .grid-item-box .icon {
  765. width: 60upx;
  766. height: 70upx;
  767. font-size: 55upx;
  768. color: #1396DB;
  769. margin-bottom: 15upx;
  770. }
  771. .my-orders .grid-item-box .text {
  772. font-size: 24upx;
  773. color: #666666;
  774. }
  775. /* 我的订单End */
  776. /* 我的钱包Start */
  777. .wallet-body {
  778. margin-top: 0upx;
  779. padding: 20upx 20upx 0;
  780. box-sizing: border-box;
  781. }
  782. .wallet-body>view {
  783. flex-shrink: 1;
  784. }
  785. .wallet-body>view>view {
  786. line-height: 65upx;
  787. }
  788. .wallet-body>view>view:nth-of-type(1) {
  789. font-size: 24upx;
  790. }
  791. .wallet-body>view>view:nth-of-type(2) {
  792. font-size: 28upx;
  793. font-weight: bold;
  794. }
  795. /* 我的钱包End */
  796. /* 小的分项标题Start */
  797. .header {
  798. margin-top: 30upx;
  799. height: 50upx;
  800. padding: 0upx 50upx;
  801. font-size: 28upx;
  802. line-height: 50upx;
  803. margin-bottom: 10upx;
  804. }
  805. .header>view:nth-of-type(1) {
  806. font-weight: bold;
  807. }
  808. .header>view:nth-of-type(2) {
  809. font-size: 24upx;
  810. color: #BBBBBB;
  811. }
  812. .header>view:nth-of-type(2) .icon {
  813. font-size: 20upx;
  814. }
  815. /* 小的分项标题End */
  816. .order-body {
  817. margin: 15upx 30upx;
  818. box-shadow: 0upx 0upx 10upx #efeff4;
  819. border-radius: 20upx;
  820. }
  821. .grid-item-box {
  822. flex: 1;
  823. padding: 20upx 0;
  824. }
  825. .grid-item-box .icon {
  826. width: 60upx;
  827. height: 70upx;
  828. font-size: 50upx;
  829. color: #1396DB;
  830. }
  831. .grid-item-box .text {
  832. font-size: 24upx;
  833. color: #666666;
  834. }
  835. .grid-dot {
  836. position: absolute;
  837. top: 20upx;
  838. right: 25upx;
  839. background-color: none;
  840. }
  841. .swiper {
  842. width: 100%;
  843. }
  844. .swiper-view .keep-out {
  845. width: 100%;
  846. height: 30upx;
  847. border-radius: 100% 100% 0 0;
  848. margin-top: -15upx;
  849. position: absolute;
  850. }
  851. .swiper-view .swiper {
  852. overflow: hidden;
  853. padding: 30upx 20upx 0;
  854. box-sizing: border-box;
  855. width: 100%;
  856. height: 200upx;
  857. }
  858. .swiper-view .swiper image {
  859. width: 100%;
  860. height: 200upx;
  861. }
  862. </style>