my.vue 23 KB

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