my.vue 24 KB

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