my.vue 25 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082
  1. <template>
  2. <view class="page">
  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. <image src="../../static/image/my/decor1.png" class="decor" mode="widthFix"></image>
  14. <view class="promotion dis a-c j-c " @click="promotionQrde" v-if="userInfo.sysUser.status=='1'">
  15. <image src="../../static/image/my/qrcode.png" mode="widthFix"></image>
  16. <text>我的推广码</text>
  17. </view>
  18. <view class="dis a-c" @tap.stop="openDetail">
  19. <image :src="avatar" class="avatar" mode=""></image>
  20. <view class="info dis f-c a-start">
  21. <view class="dis a-end">
  22. <view class="dis a-c">
  23. <text
  24. style="margin-right: 10px;color: #082E5D;font-size: 18px;font-weight: bold;">{{userInfo.sysUser.name}}</text>
  25. <image v-if="userInfo.sysUser.status=='1'" src="../../static/image/my/renzheng.png" mode="">
  26. </image>
  27. </view>
  28. <view v-if="userInfo.sysUser.status!='1'" class="cloudAlert dis a-c j-c"
  29. @click.stop="cloudAlert">
  30. {{getStatusInfo(userInfo.sysUser.status,userInfo.sysUser.factorVerify,userInfo.sysUser.managementSource).message}}
  31. </view>
  32. </view>
  33. <text>专属领地 开心溢满 绽放璀璨</text>
  34. </view>
  35. </view>
  36. <view class="my-wallet">
  37. <view class="wallet-body dis f-c">
  38. <view class="dis a-c j-s route">
  39. <view class="bg dis f-c" @tap="accountTool('/pages/wallet/wallet')">
  40. <text>我的钱包</text>
  41. <view class="dis a-c details" style="margin-top: 7rpx;">
  42. <text>查看详情</text>
  43. <image src="../../static/image/my/qianbao-icon.png" mode=""></image>
  44. </view>
  45. <image class="imgIcon" src="../../static/image/my/qianbao.png" mode=""></image>
  46. <image class="shape" src="../../static/image/my/qianbao-shape.png" mode=""></image>
  47. </view>
  48. <view class="bg dis f-c" @tap="accountTool('/pages/wallet/bankCard')">
  49. <text>我的银行卡</text>
  50. <view class="dis a-c details" style="margin-top: 7rpx;">
  51. <text>查看详情</text>
  52. <image src="../../static/image/my/ka-icon.png" mode=""></image>
  53. </view>
  54. <image class="imgIcon" src="../../static/image/my/ka.png" mode=""></image>
  55. <image class="shape" src="../../static/image/my/ka-shape.png" mode=""></image>
  56. </view>
  57. <view class="bg dis f-c" @tap="accountTool()" v-if="featureHideHandling">
  58. <text>我的充值</text>
  59. <view class="dis a-c details" style="margin-top: 7rpx;">
  60. <text>查看详情</text>
  61. <image src="../../static/image/my/chongzhi-icon.png" mode=""></image>
  62. </view>
  63. <image class="imgIcon" src="../../static/image/my/chongzhi.png" mode=""></image>
  64. <image class="shape" src="../../static/image/my/chongzhi-shape.png" mode=""></image>
  65. </view>
  66. </view>
  67. </view>
  68. </view>
  69. </view>
  70. <view class="my-tools mb-2" style="margin-top: -126rpx;">
  71. <view class="order-body dis f-c ">
  72. <view class="header dis a-c">
  73. <view class="tag"></view>
  74. <text>我的工具</text>
  75. </view>
  76. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  77. <uni-swiper-dot :info="info" :current="current" field="content" :mode="mode" :dots-styles="dotsStyles">
  78. <swiper style="height:calc(324upx)" class="swiper" @change="change">
  79. <swiper-item class="swiper" v-for="(count,cindex) of toolsListLength" :key="count">
  80. <uni-grid :column="4" :show-border="false" :square="false" :highlight="false"
  81. @change="toTools($event,'toolsList')">
  82. <uni-grid-item class="" v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)"
  83. v-for="(item ,index) in toolsList" :index="index" :key="item.text"
  84. v-if="item.featureHideHandling">
  85. <view class="grid-item-box dis a-c j-c f-c">
  86. <image :src="item.image" mode=""
  87. style="width: 34px;height: 34px;margin: 10px 9px 4px;"></image>
  88. <text class="text">{{item.text}}</text>
  89. <u-badge v-if="item.text=='客户管理'" size="mini" type="error" :count="InsureCount"
  90. :offset="[10, 10]"></u-badge>
  91. </view>
  92. </uni-grid-item>
  93. </uni-grid>
  94. </swiper-item>
  95. </swiper>
  96. </uni-swiper-dot>
  97. </view>
  98. </view>
  99. <!-- 我的工具End -->
  100. <!-- 售后管理Start -->
  101. <view class="my-tools mb-2" v-if="featureHideHandling">
  102. <view class="order-body dis f-c">
  103. <view class="header dis a-c">
  104. <view class="tag"></view>
  105. <text>后台管理</text>
  106. </view>
  107. <!-- 因为swiper特性的关系,请指定swiper的高度 ,swiper的高度并不会被内容撑开-->
  108. <swiper style="height:calc(162upx)" class="swiper" :indicator-dots="(serviceListLength!=1)?true:false">
  109. <swiper-item class="swiper dis a-c" 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 v-show="(index>=(cindex)*8) && (index<(cindex+1)*8)"
  113. v-for="(item ,index) in serviceList" :index="index" :key="item.text">
  114. <view class="grid-item-box dis a-c f-c">
  115. <image :src="item.image" mode="" style="width: 24px;height: 24px;margin: 5px 12px;">
  116. </image>
  117. <text class="text">{{item.text}}</text>
  118. </view>
  119. </uni-grid-item>
  120. </uni-grid>
  121. </swiper-item>
  122. </swiper>
  123. </view>
  124. </view>
  125. <!-- 售后管理End -->
  126. <!-- 我的关于Start -->
  127. <view class="my-tools mb-2">
  128. <view class="order-body dis f-c">
  129. <view class="header dis a-c">
  130. <view class="tag"></view>
  131. <text>关于掌柜</text>
  132. </view>
  133. <view class="shopKeeper mt-2">
  134. <view class="item dis a-c j-s" v-for="(item,index) in aboutList" :key="index"
  135. @click="toTools(index,'aboutList')">
  136. <view class="dis a-c ">
  137. <image :src="item.image" mode=""></image>
  138. <text>{{item.text}}</text>
  139. </view>
  140. <image :src="item.icon" mode="" style="width: 15px;height: 15px;"></image>
  141. </view>
  142. </view>
  143. </view>
  144. </view>
  145. <!-- 我的关于End -->
  146. <!-- 菜单Start -->
  147. <!-- <block v-for="(item,index) in menusList" :key="index">
  148. <my-list-item :item="item" :index="index"></my-list-item>
  149. </block> -->
  150. <!-- 菜单End -->
  151. <u-modal v-model="modalshow" :show-title="false">
  152. <view class="slot-content dis a-c j-c" style="padding: 20px;">
  153. <img :src="promoImage" alt="" style="width: 150px;height: 150px;" />
  154. </view>
  155. </u-modal>
  156. <service-widget @btnClick="btn_click"></service-widget>
  157. <auth-Modal :authShow="authShow" @btnClick="authShow=false" @maskClick="authShow=false"></auth-Modal>
  158. </view>
  159. </template>
  160. <script>
  161. import authModal from '@/components/modules/user/authModal.vue'; //实名认证弹窗
  162. import store from '@/store';
  163. import {
  164. mapState,
  165. mapMutations
  166. } from "vuex"
  167. import zPopup from '@/components/common/z-popup.vue'
  168. import {
  169. pathToBase64,
  170. base64ToPath
  171. } from '@/common/image-tools-base64.js';
  172. import myListItem from "@/components/modules/my/my-list-item.vue";
  173. import QR from "@/common/wxqrcode.js"
  174. export default {
  175. components: {
  176. zPopup,
  177. myListItem,
  178. authModal,
  179. },
  180. data() {
  181. return {
  182. authShow: false,
  183. promoImage: "",
  184. modalshow: false,
  185. info: ["", ""],
  186. dotsStyles: {
  187. backgroundColor: '#E5E5E5',
  188. selectedBackgroundColor: '#0052FF',
  189. },
  190. current: 0,
  191. mode: 'default',
  192. headerStyle: {
  193. backgroundColor: '',
  194. backgroundImage: '',
  195. backgroundSize: '',
  196. backgroundPosition: '',
  197. boxShadow: ''
  198. // 其他样式属性...
  199. },
  200. showBackground: false,
  201. prevScrollTop: 0,
  202. popupShow: false, //头像是否展示
  203. mystatusText: "已认证",
  204. prodetIntroShow: true, //显示滚动公告
  205. avatar: "",
  206. orderTypeList: [{
  207. icon: 'icon-jixurenwu',
  208. orderstatus: 0,
  209. text: '报价中',
  210. badge: '0',
  211. type: "primary",
  212. orderStage: 0,
  213. iconColor: '#0696FF'
  214. },
  215. {
  216. icon: 'icon-hebaozhong',
  217. orderstatus: 1,
  218. text: '待核保',
  219. badge: '0',
  220. type: "success",
  221. orderStage: 1,
  222. iconColor: '#FFA22A'
  223. },
  224. {
  225. icon: 'icon-querenzhifu',
  226. orderstatus: 2,
  227. text: '待缴费',
  228. badge: '0',
  229. type: "error",
  230. orderStage: 2,
  231. },
  232. {
  233. icon: 'icon-peisong',
  234. orderstatus: 3,
  235. text: '已承保',
  236. badge: '0',
  237. type: "error",
  238. orderStage: 3,
  239. },
  240. ],
  241. toolsList: [{
  242. image: '/static/image/my/icon1.png',
  243. text: '闪电增员',
  244. url: '/pages/tools/addStaff/addStaff',
  245. },
  246. {
  247. image: '/static/image/my/icon2.png',
  248. text: '团队管理',
  249. url: '/pages/tools/team/team1',
  250. },
  251. {
  252. image: '/static/image/my/icon3.png',
  253. text: '客户管理',
  254. url: '/pages/tools/customer/customer',
  255. },
  256. {
  257. image: '/static/image/my/icon4.png',
  258. text: '业绩管理',
  259. url: '/pages/tools/achievement/achievement',
  260. },
  261. {
  262. image: '/static/image/my/icon5.png',
  263. text: '报案电话',
  264. url: '/pages/tools/insuranceClaims/insuranceClaims',
  265. },
  266. {
  267. image: '/static/image/my/icon6.png',
  268. text: '掌柜秘书',
  269. url: '/pages/tools/messageReminder/messageReminder',
  270. },
  271. {
  272. image: '/static/image/my/icon7.png',
  273. text: '保单管理',
  274. url: '/pages/tools/policy/policy',
  275. },
  276. {
  277. image: '/static/image/my/icon8.png',
  278. text: '计算器',
  279. url: '/pages/tools/calculator/calculator',
  280. },
  281. {
  282. image: '/static/image/my/icon9.png',
  283. text: '海报管理',
  284. url: '/pages/tools/poster/poster',
  285. },
  286. {
  287. image: '/static/image/my/icon10.png',
  288. text: '优惠劵',
  289. // url: '/pages/tools/coupon/coupon',
  290. },
  291. {
  292. image: '/static/image/my/icon11.png',
  293. text: '掌柜商城',
  294. },
  295. {
  296. image: '/static/image/my/icon12.png',
  297. text: '车险之家',
  298. url: "/pages/carInsure/entry",
  299. },
  300. {
  301. image: '/static/image/my/icon13.png',
  302. text: '任务中心',
  303. // url: "/pages/ad/index",
  304. }
  305. ],
  306. aboutList: [{
  307. image: '/static/image/my/Frame5.png',
  308. text: '常见问题',
  309. url: '/pages/set/question',
  310. icon: '/static/image/my/right-jiantou.png'
  311. },
  312. // {
  313. // image: '/static/image/my/Frame6.png',
  314. // text: '意见反馈',
  315. // url: '',
  316. // icon: '/static/image/my/right-jiantou.png'
  317. // },
  318. {
  319. image: '/static/image/my/Frame7.png',
  320. text: '联系客服',
  321. tel: '4006333016',
  322. icon: '/static/image/my/right-jiantou.png'
  323. },
  324. {
  325. image: '/static/image/my/Frame8.png',
  326. text: '关于我们',
  327. url: '/pages/set/about',
  328. icon: '/static/image/my/right-jiantou.png'
  329. }
  330. ],
  331. serviceList: [{
  332. image: '/static/image/my/Frame1.png',
  333. text: '发票申请',
  334. popup: '此功能还未开放,有需要请联系客服',
  335. },
  336. {
  337. image: '/static/image/my/Frame2.png',
  338. text: '保单批改',
  339. popup: '此功能还未开放,有需要请联系客服',
  340. },
  341. {
  342. image: '/static/image/my/Frame3.png',
  343. text: '申请退保',
  344. popup: '此功能还未开放,有需要请联系客服',
  345. },
  346. {
  347. image: '/static/image/my/Frame4.png',
  348. text: '自助理赔',
  349. popup: '此功能还未开放,有需要请联系客服',
  350. }
  351. ],
  352. menusList: [{
  353. icon: "shangcheng",
  354. name: "掌柜商场",
  355. clicktype: "nothing",
  356. url: "",
  357. auth: true
  358. },
  359. {
  360. icon: "chexiandingdan",
  361. name: "车险之家",
  362. clicktype: "navigateTo",
  363. url: "/pages/carInsure/entry",
  364. auth: true
  365. }
  366. ],
  367. InsureCount: 0,
  368. }
  369. },
  370. computed: {
  371. ...mapState(['userInfo', "userCheckInfo", 'featureHideHandling']),
  372. toolsListLength() {
  373. // let length = Math.ceil(this.toolsList.length / 8);
  374. let list = ["1", "2"]
  375. return list;
  376. },
  377. aboutListLength() {
  378. return Math.ceil(this.aboutList.length / 4);
  379. },
  380. serviceListLength() {
  381. return Math.ceil(this.serviceList.length / 4);
  382. }
  383. },
  384. async onShow() {
  385. await this.loginUser();
  386. await this.getInsureCount();
  387. this.initializeCategoryList();
  388. if (this.userInfo.sysUser.headSculpture) {
  389. this.avatar = this.$base.baseUrl + this.userInfo.sysUser.headSculpture;
  390. } else {
  391. this.avatar = "/static/image/my/avatar1.png"
  392. }
  393. if (this.userInfo.sysUser.status == '1') {
  394. this.mystatusText = "已认证";
  395. } else if (this.userStatus == '2') {
  396. this.mystatusText = "未认证";
  397. }
  398. },
  399. async onPullDownRefresh() {
  400. await this.loginUser();
  401. uni.stopPullDownRefresh();
  402. },
  403. async onload() {
  404. await this.getInsureCount();
  405. },
  406. onPageScroll(e) {
  407. this.handleScroll(e);
  408. },
  409. mounted() {
  410. uni.pageScrollTo({
  411. scrollTop: 0,
  412. duration: 0
  413. });
  414. uni.$on('scroll', this.handleScroll);
  415. },
  416. destroyed() {
  417. uni.$off('scroll', this.handleScroll);
  418. },
  419. methods: {
  420. ...mapMutations(['setUserModules', 'setOrderType', 'setOrderStage']),
  421. //头部颜色变化js
  422. btn_click() {
  423. uni.navigateTo({
  424. url: '/pages/chat/chat'
  425. })
  426. },
  427. initializeCategoryList() {
  428. this.toolsList.map(val => {
  429. if (!val.url) {
  430. val["featureHideHandling"] = this.featureHideHandling;
  431. } else {
  432. val["featureHideHandling"] = true;
  433. }
  434. return val;
  435. })
  436. },
  437. promotionQrde() {
  438. uni.navigateTo({
  439. url: '/pages/tools/addStaff/addStaff'
  440. })
  441. },
  442. async loginUser() {
  443. let userInfoRes = await this.$http.get('/user/loginUser')
  444. store.commit('setUserModules', {
  445. title: 'userInfo',
  446. data: {
  447. sysUser: {
  448. ...userInfoRes.data
  449. }
  450. }
  451. })
  452. },
  453. getStatusInfo(status, factorVerify, managementSource) {
  454. // 定义状态与页面路径及消息的映射
  455. const statusInfo = {
  456. 0: {
  457. page: '',
  458. message: '您还未实名认证 请去实名认证',
  459. status: 0,
  460. },
  461. 2: {
  462. page: '/pages/user/authResult1',
  463. message: '入司资料审核中 请耐心等待',
  464. status: 2,
  465. },
  466. 3: {
  467. page: '/pages/user/practitionerInfo',
  468. message: '入司资料审核不通过,请查看详情',
  469. status: 3,
  470. },
  471. 8: {
  472. page: '/pages/user/practitionerInfo',
  473. message: '入司待补充资料 请去补充资料',
  474. status: 8,
  475. },
  476. };
  477. const factorVerifyInfo = {
  478. 2: {
  479. page: '/pages/user/authInfo',
  480. message: '您的实名认证失败,请查看详情',
  481. status: 2,
  482. },
  483. };
  484. if (status == '0' && managementSource == '2') {
  485. if (factorVerify == '2') {
  486. return factorVerifyInfo[factorVerify];
  487. } else {
  488. return statusInfo[status];
  489. }
  490. } else {
  491. return statusInfo[status];
  492. }
  493. },
  494. cloudAlert() {
  495. let info = this.getStatusInfo(this.userInfo.sysUser.status, this.userInfo.sysUser.factorVerify, this
  496. .userInfo.sysUser
  497. .managementSource)
  498. switch (info.status) {
  499. case 0:
  500. this.authShow = true;
  501. break;
  502. case 2:
  503. case 3:
  504. case 8:
  505. uni.navigateTo({
  506. url: info.page
  507. })
  508. break;
  509. }
  510. },
  511. change(e) {
  512. this.current = e.detail.current;
  513. },
  514. async getInsureCount() {
  515. let res = await this.$http.post('/insurance/order/getExpirationInsureCount');
  516. if (res.code == '200') {
  517. // this.InsureCount = res.data;
  518. }
  519. },
  520. handleScroll(e) {
  521. const scrollTop = e.scrollTop;
  522. if (scrollTop > this.prevScrollTop) {
  523. // 向下滚动
  524. this.showBackground = true; // 显示背景图
  525. } else if (scrollTop < 50) {
  526. // 在顶部附近,隐藏背景图
  527. this.showBackground = false;
  528. } else {
  529. // 向上滚动
  530. this.showBackground = true; // 显示背景图
  531. }
  532. this.headerStyle.backgroundColor = this.showBackground ? '#fff' : 'transparent';
  533. this.headerStyle.backgroundImage = this.showBackground ? 'url("/static/image/my/banner.png")' : '';
  534. this.headerStyle.backgroundSize = this.showBackground ? 'cover' : '';
  535. this.headerStyle.backgroundPosition = this.showBackground ? 'center' : '';
  536. this.prevScrollTop = scrollTop;
  537. },
  538. tool() {
  539. uni.navigateTo({
  540. url: "/pages/set/set"
  541. })
  542. },
  543. //去工具页面
  544. async toTools(e, listName) {
  545. let index = e.detail ? e.detail.index : e;
  546. if (this.userInfo.sysUser.status == '0' && this.userInfo.sysUser.managementSource == '2') {
  547. if (this.userInfo.sysUser.factorVerify == '2') {
  548. uni.navigateTo({
  549. url: "/pages/user/authInfo"
  550. })
  551. } else {
  552. this.authShow = true;
  553. }
  554. } else if (this.userInfo.sysUser.status == '8' || this.userInfo.sysUser.status == '3') {
  555. uni.navigateTo({
  556. url: "/pages/user/practitionerInfo"
  557. })
  558. } else if (this.userInfo.sysUser.status == '2') {
  559. uni.navigateTo({
  560. url: "/pages/user/authResult1"
  561. })
  562. } else if (this.userInfo.sysUser.status == '1') {
  563. if (this[listName][index].url) {
  564. this.navigate({
  565. url: this[listName][index].url
  566. }, "navigateTo", true)
  567. } else if (this[listName][index].tel) {
  568. uni.makePhoneCall({
  569. phoneNumber: this[listName][index].tel,
  570. })
  571. } else if (this[listName][index].popup) {
  572. let res = await this.$http.get('/sys/qy/wechat/find/picture');
  573. if (res.code == '200') {
  574. this.promoImage = QR.createQrCodeImg(res.data.wechatPictureUrl, {
  575. size: parseInt(200) //二维码大小
  576. })
  577. this.modalshow = true;
  578. } else {
  579. uni.showModal({
  580. showCancel: false,
  581. content: this[listName][index].popup,
  582. });
  583. }
  584. } else {
  585. uni.showToast({
  586. title: this[listName][index].text + '更新中...',
  587. icon: 'none'
  588. })
  589. }
  590. }
  591. },
  592. async accountTool(path) {
  593. if (this.userInfo.sysUser.status == '0' && this.userInfo.sysUser.managementSource == '2') {
  594. if (this.userInfo.sysUser.factorVerify == '2') {
  595. uni.navigateTo({
  596. url: "/pages/user/authInfo"
  597. })
  598. } else {
  599. this.authShow = true;
  600. }
  601. } else if (this.userInfo.sysUser.status == '8' || this.userInfo.sysUser.status == '3') {
  602. uni.navigateTo({
  603. url: "/pages/user/practitionerInfo"
  604. })
  605. } else if (this.userInfo.sysUser.status == '2') {
  606. uni.navigateTo({
  607. url: "/pages/user/authResult1"
  608. })
  609. } else if (this.userInfo.sysUser.status == '1') {
  610. if (path) {
  611. if (path == '/pages/wallet/bankCard') {
  612. let res = await this.$http.post('/userBank/getUserBankList', {
  613. auditStatus: '',
  614. });
  615. if (!res.data.length) {
  616. this.navigate({
  617. url: '/pages/wallet/bindBank',
  618. complete: () => {
  619. setTimeout(() => {
  620. uni.showToast({
  621. title: '请先绑定银行卡',
  622. duration: 3000,
  623. icon: "none"
  624. });
  625. }, 500);
  626. }
  627. }, "navigateTo", true)
  628. } else {
  629. this.navigate({
  630. url: path,
  631. }, "navigateTo", true)
  632. }
  633. } else {
  634. this.navigate({
  635. url: path,
  636. }, "navigateTo", true)
  637. }
  638. } else {
  639. uni.showToast({
  640. title: '功能待开发...',
  641. icon: "none"
  642. });
  643. }
  644. }
  645. },
  646. //跳转个人信息页面
  647. openDetail() {
  648. this.navigate({
  649. url: "/pages/user/userInfo"
  650. }, "navigateTo", false)
  651. },
  652. }
  653. }
  654. </script>
  655. <style lang="scss" scoped>
  656. @import '@/style/mixin.scss';
  657. .page {
  658. background-color: #EEF1F7;
  659. padding-bottom: 10px;
  660. }
  661. .headers {
  662. position: fixed;
  663. top: 0;
  664. left: 0;
  665. height: auto;
  666. width: 100%;
  667. z-index: 999999;
  668. padding: 16px;
  669. padding-top: 50px;
  670. >view {
  671. width: 100%;
  672. height: 100%;
  673. position: relative;
  674. }
  675. image {
  676. position: absolute;
  677. right: 0;
  678. width: 20px;
  679. height: 20px;
  680. }
  681. text {
  682. font-size: 18px;
  683. font-weight: bold;
  684. color: #000;
  685. }
  686. }
  687. .Personnel {
  688. height: auto;
  689. width: 100%;
  690. background: #fff;
  691. background-image: url("/static/image/my/banner.png");
  692. background-size: 100% 100%;
  693. padding: 110px 16px 73px 16px;
  694. position: relative;
  695. .decor {
  696. position: absolute;
  697. width: 230rpx;
  698. height: 210rpx;
  699. right: 21px;
  700. top: 58px;
  701. }
  702. .promotion {
  703. position: absolute;
  704. background: rgba(0, 82, 255, 0.7);
  705. border-radius: 50px 0px 0px 50px;
  706. right: 0;
  707. top: 114px;
  708. color: #fff;
  709. font-size: 20rpx;
  710. padding: 9rpx 10rpx;
  711. line-height: 1;
  712. letter-spacing: 1px;
  713. image {
  714. width: 13px;
  715. height: 13px;
  716. margin-right: 2px;
  717. }
  718. }
  719. .avatar {
  720. width: 42px;
  721. height: 42px;
  722. border-radius: 50%;
  723. }
  724. .info {
  725. margin-left: 12px;
  726. text {
  727. margin-right: 10px;
  728. color: #082E5D;
  729. font-size: 18px;
  730. font-weight: bold;
  731. }
  732. text:last-child {
  733. color: rgba(8, 46, 93, 0.9);
  734. font-size: 22rpx;
  735. }
  736. image {
  737. width: 95rpx;
  738. height: 40rpx;
  739. }
  740. .cloudAlert {
  741. position: relative;
  742. width: 85px;
  743. background: rgba(0, 0, 0, 0.6);
  744. border-radius: 2px;
  745. margin-left: 10px;
  746. color: #fff;
  747. font-size: 22rpx;
  748. padding: 3px 4px;
  749. line-height: 1.5;
  750. }
  751. .cloudAlert::before {
  752. content: '';
  753. position: absolute;
  754. top: 40%;
  755. /* 箭头垂直位置 */
  756. left: -10px;
  757. /* 箭头左侧位置 */
  758. border-width: 5px;
  759. /* 箭头大小 */
  760. border-style: solid;
  761. /* 实心箭头 */
  762. border-color: transparent rgba(0, 0, 0, 0.6) transparent transparent;
  763. /* 左边框有色,其他透明 */
  764. }
  765. }
  766. }
  767. .my-tools {
  768. padding: 0 16px;
  769. position: relative;
  770. .header {
  771. padding: 10px 0 0;
  772. font-size: 16px;
  773. color: #232832;
  774. font-weight: bold;
  775. .tag {
  776. width: 4px;
  777. height: 16px;
  778. background: #0052FF;
  779. border-radius: 0 6px 6px 0;
  780. margin-right: 11px;
  781. }
  782. }
  783. .order-body {
  784. background: #fff;
  785. box-shadow: 0px 4px 10px 0px #DAE3F4;
  786. border-radius: 6px;
  787. }
  788. .shopKeeper {
  789. padding: 0 15px;
  790. .item {
  791. padding: 25rpx 0;
  792. color: #333;
  793. font-size: 28rpx;
  794. border-top: 1px solid #EEEEEE;
  795. image {
  796. width: 40rpx;
  797. height: 40rpx;
  798. margin-right: 10px;
  799. }
  800. }
  801. }
  802. }
  803. /* 产品介绍Start */
  804. .prodet-intro {
  805. width: 100%;
  806. height: 70upx;
  807. background-color: #333;
  808. color: #3ae;
  809. white-space: nowrap;
  810. border-top: 1upx solid #666;
  811. border-bottom: 1upx solid #666;
  812. box-sizing: border-box;
  813. }
  814. .prodet-intro>view:nth-of-type(1) {
  815. width: 60upx;
  816. height: 100%;
  817. flex-shrink: 1;
  818. padding-left: 20upx;
  819. font-size: 36upx;
  820. }
  821. .prodet-intro>view:nth-of-type(2) {
  822. overflow: hidden;
  823. line-height: 70upx;
  824. font-size: 24upx;
  825. }
  826. .prodet-intro>view:nth-of-type(3) {
  827. width: 60upx;
  828. padding-right: 20upx;
  829. flex-shrink: 1;
  830. height: 100%;
  831. font-size: 36upx;
  832. }
  833. .animate {
  834. padding-left: 40rpx;
  835. display: inline-block;
  836. white-space: nowrap;
  837. animation: 20s wordsLoop linear infinite normal;
  838. }
  839. @keyframes wordsLoop {
  840. 0% {
  841. transform: translateX(750rpx);
  842. -webkit-transform: translateX(750rpx);
  843. }
  844. 100% {
  845. transform: translateX(-100%);
  846. -webkit-transform: translateX(-100%);
  847. }
  848. }
  849. /* 产品介绍End */
  850. /* 个人信息Start */
  851. /* 个人信息End */
  852. /* 我的订单Start */
  853. .my-orders {
  854. display: flex;
  855. justify-content: center;
  856. align-items: center;
  857. }
  858. .my-orders,
  859. .wallet-body {
  860. position: relative;
  861. width: 95%;
  862. height: 180upx;
  863. background: #FFFFFF;
  864. border-radius: 20upx;
  865. box-shadow: 0upx 0upx 10upx #efeff4;
  866. overflow: hidden;
  867. }
  868. /* 我的订单End */
  869. /* 我的钱包Start */
  870. .my-wallet {
  871. .wallet-body {
  872. width: 100%;
  873. height: auto;
  874. padding: 12px;
  875. background: #FFFFFF;
  876. box-shadow: 0px 4px 10px 0px #DAE3F4;
  877. border-radius: 6px;
  878. margin-top: 10px;
  879. .route {
  880. .bg {
  881. width: 31%;
  882. border-radius: 4px;
  883. padding: 10px 6px;
  884. position: relative;
  885. background: linear-gradient(180deg, #FFF1E3 0%, #FCF6EF 100%);
  886. .imgIcon {
  887. position: absolute;
  888. right: 0;
  889. bottom: 6rpx;
  890. width: 68rpx;
  891. height: 72rpx;
  892. }
  893. .shape {
  894. position: absolute;
  895. left: 12rpx;
  896. bottom: 0;
  897. width: 50rpx;
  898. height: 18rpx;
  899. }
  900. >text {
  901. color: #FF9520;
  902. font-size: 26rpx;
  903. font-weight: bold;
  904. }
  905. .details {
  906. margin-top: 7rpx;
  907. >text {
  908. color: #FFB767;
  909. font-size: 18rpx;
  910. margin-right: 4rpx;
  911. }
  912. image {
  913. width: 16rpx;
  914. height: 16rpx;
  915. }
  916. }
  917. }
  918. .bg:nth-child(2) {
  919. background: linear-gradient(180deg, #E0F1FF 0%, #F6FBFF 100%);
  920. text {
  921. color: #2099FE;
  922. }
  923. .imgIcon {
  924. width: 71rpx;
  925. height: 72rpx;
  926. }
  927. }
  928. .bg:nth-child(3) {
  929. background: linear-gradient(180deg, #FDEBE4 0%, #FFF7F3 100%);
  930. text {
  931. color: #FF5D52;
  932. }
  933. .imgIcon {
  934. width: 65rpx;
  935. height: 72rpx;
  936. }
  937. }
  938. }
  939. .money {
  940. padding: 8px 0;
  941. background-color: #F9F8FD;
  942. border-radius: 4px;
  943. margin-top: 8px;
  944. text {
  945. font-size: 12px;
  946. color: #333;
  947. font-weight: 400;
  948. }
  949. }
  950. }
  951. }
  952. /* 我的钱包End */
  953. /* 小的分项标题Start */
  954. /* 小的分项标题End */
  955. .grid-item-box {
  956. .icon {
  957. font-size: 26px;
  958. }
  959. .text {
  960. font-size: 12px;
  961. color: #232832;
  962. }
  963. }
  964. .swiper {
  965. width: 100%;
  966. }
  967. .swiper-view .keep-out {
  968. width: 100%;
  969. height: 30upx;
  970. border-radius: 100% 100% 0 0;
  971. margin-top: -15upx;
  972. position: absolute;
  973. }
  974. .swiper-view .swiper {
  975. overflow: hidden;
  976. padding: 30upx 20upx 0;
  977. box-sizing: border-box;
  978. width: 100%;
  979. height: 200upx;
  980. }
  981. .swiper-view .swiper image {
  982. width: 100%;
  983. height: 200upx;
  984. }
  985. </style>