index.vue 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440
  1. <template>
  2. <view class="container">
  3. <!-- <scroll-view @scrolltolower="scrollTolower" :scroll-top="userScrollTop" scroll-y="true" class="container"
  4. @scroll="userScroll"> -->
  5. <view class="top-cont u-f es-ver">
  6. <view :class="fixedTop?'inner fixed':'inner'">
  7. <!-- 状态栏 -->
  8. <view :class="fixedTop?'status-bar es-bc-theme':'status-bar'" :style="{ background:headerBG }"></view>
  9. <view class="top-title-box show" :style="{ background:headerBG }">
  10. <view>个人中心</view>
  11. </view>
  12. </view>
  13. <!-- <view class="my-header-right inner fixed">
  14. <image :class="isNew ? 'badge':''" @tap="goToMsg()" src="@/static/image/hall/new_hall_icon.png"
  15. mode="aspectFill"></image>
  16. </view> -->
  17. <!-- 用于顶部固定定位后占位 -->
  18. <view :class="fixedTop?'seat show':'seat'"></view>
  19. <view class="mybox">
  20. <view class="mybox-info">
  21. <image class="heads es-br-ban" @tap="navToUserInfo('./userInfo')" :src="user&&user.avatar||avatar"
  22. mode="aspectFill"></image>
  23. <view>
  24. <view class="flexBetween">
  25. <view class="flex-center es-c-22 fs20" @tap="navToUserInfo('./userInfo')">
  26. <text
  27. class="mybox-info-name ellipsis2">{{ isLogin&&user&&user.nickName || '请登录' }}</text>
  28. <!-- <image class="arrow_black" src="@/static/image/my/right_arrow_black_icon.png"
  29. mode="aspectFill"></image> -->
  30. </view>
  31. <!-- <image v-if="isOpen" class="es-w-40 es-h-40 es-mr-10" src="@/static/svg/code_icon20.svg"
  32. @tap="toSelfQr()" mode="aspectFill"></image> -->
  33. </view>
  34. <view class="flexBetween es-mt-20" @tap="toSelfQr()" v-if="isOpen">
  35. <view class="qyh es-c-75">
  36. ID:U{{user.userId}}
  37. </view>
  38. <!-- <image class="arrow_black" src="@/static/image/my/right_arrow_black_icon.png"
  39. mode="aspectFill"></image> -->
  40. </view>
  41. <view class="flex-center" style="margin-top: 14rpx;" v-if="false">
  42. <view class="flex-center vipbox" v-if="user.isVip==1&&(!isIos || (isIos&&showIOSPay==1))"
  43. @click="loginNavTo('/pages/course/vipBuy')">
  44. <image class="arrow_black" src="@/static/image/my/lv_icon.png" mode="aspectFill">
  45. </image>
  46. <text class="es-c-FEF5EA">会员</text>
  47. </view>
  48. <view class="flex-center vipbox intelligentBox" style="margin-left: 16rpx;"
  49. v-if="user.vipLevel">
  50. <image class="arrow_black" src="@/static/image/my/intelligent_icon.png"
  51. mode="aspectFill">
  52. </image>
  53. <text class="es-c-FEF5EA">LV.{{user.vipLevel}}</text>
  54. </view>
  55. </view>
  56. </view>
  57. </view>
  58. <!-- 福币,币,券信息 -->
  59. <view class="mybox-integral" v-if="false">
  60. <view class="mybox-integral-item" @click="loginNavTo('/pages/user/integral/points')">
  61. <view class="num">{{user.integral}}</view>
  62. <view>福币</view>
  63. </view>
  64. <view class="mybox-integral-item" @click="loginNavTo('/pages/user/coupon/myCouponList?type=0')">
  65. <view class="num">{{coupons.notUsedCount}}</view>
  66. <view>待用券</view>
  67. </view>
  68. <view class="mybox-integral-item" @click="loginNavTo('/pages/user/coupon/myCouponList?type=1')">
  69. <view class="num">{{coupons.usedCount}}</view>
  70. <view>已用券</view>
  71. </view>
  72. <view class="mybox-integral-item" @click="loginNavTo('/pages/user/coupon/myCouponList?type=2')">
  73. <view class="num">{{coupons.expiredCount}}</view>
  74. <view>过期券</view>
  75. </view>
  76. </view>
  77. <!-- vip会员 -->
  78. <!-- <view class="vip-card" v-if="false && user.userId&&(!isIos || (isIos&&showIOSPay==1))">
  79. <view>
  80. <view class="flex-center vip-card-info">
  81. <image src="@/static/image/my/VIP_member.png" mode="aspectFill"></image>
  82. <text>{{getDayMix(user.vipEndDate)}}</text>
  83. </view>
  84. <view class="flex-center vip-card-price">续费享季卡会员约<text>6.5</text>折</view>
  85. </view>
  86. <view class="buyvip" @click="loginNavTo('/pages/course/vipBuy')" >立即续费</view>
  87. </view> -->
  88. <!-- 我的订单 医疗服务等 -->
  89. <view class="menuBox">
  90. <view class="mybox-menu" v-for="(item, index) in menuList" :key="index"
  91. :style="{marginTop:index === 0 ? '40rpx':'30rpx'}">
  92. <view class="u-f-jsb u-f" style="margin-bottom: 36rpx;">
  93. <view class="mybox-menu-title">{{item.menuTitle}}</view>
  94. <navigator url="/pages_user/user/storeOrder" v-if="index==0" class="u-f-ajc">
  95. <text class="allOrderTextClass">全部订单</text>
  96. <u-icon name="arrow-right" size="26rpx" color="#00000073"></u-icon>
  97. </navigator>
  98. <!-- <view class="es-c-99 es-fs-24 u-f-ajc" v-if="index==0" @tap="myOrderFun">
  99. <view class="es-mr-10">我的订单</view>
  100. <view class="u-f-ajc">
  101. <u-icon name="arrow-right" size="24rpx" color="#999999"></u-icon>
  102. </view>
  103. </view> -->
  104. </view>
  105. <view class="mybox-menu-box">
  106. <!-- :class="[index==0?'w20':'']" -->
  107. <view class="mybox-menu-item" v-for="(menu, idx) in item.menus" :key="idx"
  108. @click="handleMenu(menu)">
  109. <view class="mybox-menu-itemImage">
  110. <image :src="menu.icon" mode="aspectFill"></image>
  111. <view v-if="index==0 && 0" class="numBox es-c-white es-fs-20">8</view>
  112. </view>
  113. <text>{{menu.name}}</text>
  114. </view>
  115. </view>
  116. </view>
  117. <view class="mybox-menu" v-for="(item, index) in menuToolList" :key="index"
  118. style="margin-top: 30rpx;">
  119. <view class="u-f-jsb u-f" style="margin-bottom: 36rpx;">
  120. <view class="mybox-menu-title">{{item.menuTitle}}</view>
  121. </view>
  122. <view class="mybox-menu-box-tool">
  123. <view class="myboxToolMenuItem" v-for="(menu, idx) in item.menus" :key="idx"
  124. @click="handleMenu(menu)">
  125. <view class="myboxToolMenuItemLeft">
  126. <image :src="menu.icon" mode="aspectFill"></image>
  127. <text>{{menu.name}}</text>
  128. </view>
  129. <u-icon name="arrow-right" size="28rpx" color="#000000A6"></u-icon>
  130. </view>
  131. </view>
  132. </view>
  133. </view>
  134. <view class="btns es-mt-40" v-if="isLogin">
  135. <view class="login-btn" @click="showLogout">退出登录</view>
  136. </view>
  137. </view>
  138. </view>
  139. <u-popup :show="inviteShow" @close="inviteShow=false" round="32rpx">
  140. <view class="popupBox">
  141. <view class="u-f-ajc u-f-jsb">
  142. <view class="es-fs-36 es-c-00 es-fw-500">
  143. 填写朋友邀请码
  144. </view>
  145. <view class="" @tap="scanCodeFun">
  146. <image class="es-icon-48" src="/static/img/scan_icon24.eb4f6feb.svg" mode=""></image>
  147. </view>
  148. </view>
  149. <input type="text" v-model="inviteCode" class="es-mt-42 es-fs-32" placeholder="请输入邀请码"
  150. placeholder-style="{color: #B2B2B2;}" />
  151. <view class="u-f-ajc es-mt-56">
  152. <view class="popupBox-btn es-mr-32 u-f-ajc colorE62129" @tap="inviteShow=false">
  153. 取消
  154. </view>
  155. <view class="popupBox-btn u-f-ajc bgE62129 es-c-white" @tap="invitationCodeFun">
  156. 确认
  157. </view>
  158. </view>
  159. </view>
  160. </u-popup>
  161. <!-- </scroll-view> -->
  162. </view>
  163. </template>
  164. <script>
  165. import {
  166. getConfigByKey,
  167. getIOSPayStatus
  168. } from '@/api/common.js';
  169. import {
  170. startDrugReport,
  171. getUserFollowDoctor
  172. } from '@/api/drugReport';
  173. import {
  174. getUserInfo,
  175. bindSales,
  176. getMyCouponCount
  177. } from '@/api/user'
  178. // #ifdef APP-PLUS
  179. import permision1 from "@/utils/permission.js"
  180. // #endif
  181. const avatar = "/static/image/hall/my_heads_icon.png";
  182. import IMSDK, {
  183. SessionType
  184. } from "openim-uniapp-polyfill";
  185. import {
  186. navigateToDesignatedConversation,
  187. callingModule,
  188. meetingModule,
  189. setConversation
  190. } from "@/pages_im/util/imCommon";
  191. import {
  192. Igexin
  193. } from '@/pages_im/util/common.js';
  194. import {
  195. isMiOpen
  196. } from '@/api/common.js';
  197. export default {
  198. data() {
  199. return {
  200. inviteCode: '',
  201. inviteShow: false,
  202. isLogin: false,
  203. coupons: {
  204. expiredCount: 0,
  205. notUsedCount: 0,
  206. usedCount: 0
  207. },
  208. show: false,
  209. avatar: avatar,
  210. defUser: {
  211. avatar: avatar,
  212. nickName: "请登录",
  213. userName: "请登录",
  214. phone: "",
  215. integral: 0,
  216. balance: 0
  217. },
  218. user: {
  219. avatar: "/static/image/hall/my_heads_icon.png",
  220. userName: "",
  221. phone: "",
  222. nickName: "",
  223. integral: 0,
  224. balance: 0,
  225. userId: null
  226. },
  227. isNew: false,
  228. top: 0,
  229. userScrollTop: 0,
  230. isOpen: true,
  231. fixedTop: false, // 是否固定头部
  232. statusBarHeight: uni.getStorageSync('statusBarHeight'),
  233. menuList: [],
  234. menuToolList: [{
  235. menuTitle: "常用工具",
  236. menus: [{
  237. name: '地址管理',
  238. icon: "/static/image/my/address_management_icon.png",
  239. pageUrl: "/pages/user/address"
  240. },
  241. {
  242. name: '优惠券',
  243. icon: "/static/image/my/coupon_collection.png",
  244. pageUrl: "/pages_shopping/shopping/myCoupon"
  245. },
  246. {
  247. name: '关于我们',
  248. icon: "/static/image/my/feedback_icon.png",
  249. pageUrl: "/pages/user/about"
  250. }
  251. ]
  252. }],
  253. isIos: false,
  254. showIOSPay: 0
  255. }
  256. },
  257. onLoad() {
  258. let that = this;
  259. uni.$on('refreshUserInfo', function() {
  260. if (that.$isLogin()) {
  261. that.getUserInfo();
  262. that.$updateMsgDot()
  263. } else {
  264. that.isLogin = that.$isLogin()
  265. }
  266. });
  267. if (!this.$qconfig.isAppStore) { //应用市场版本隐藏福币商城
  268. let integralMenus = (this.menuList[2]).menus;
  269. let integralSubMenu = {
  270. name: '福币商城',
  271. icon: "../../static/image/my/my_points_icon.png",
  272. pageUrl: "/pages/user/integral/integralGoodsList"
  273. };
  274. integralMenus.splice(2, 0, integralSubMenu);
  275. }
  276. // #ifdef APP-PLUS
  277. permision1.checkPush();
  278. this.isIos = (plus.os.name == "iOS")
  279. if (this.isIos) {
  280. this.getIOSPayStatusFun()
  281. }
  282. // #endif
  283. },
  284. onUnload() {
  285. uni.$off('refreshUserInfo');
  286. },
  287. onShow() {
  288. uni.showTabBar();
  289. this.isLogin = this.$isLogin()
  290. let token = uni.getStorageSync('AppToken');
  291. if (this.$isLogin()) {
  292. this.getUserInfo();
  293. this.getMyCouponCount();
  294. this.$updateMsgDot()
  295. } else {
  296. this.user = this.defUser;
  297. uni.navigateTo({
  298. url: '/pages/auth/loginIndex'
  299. })
  300. return;
  301. }
  302. },
  303. created() {
  304. this.initMenu();
  305. },
  306. methods: {
  307. async initMenu() {
  308. this.menuList = [{
  309. menuTitle: "我的订单",
  310. menus: [{
  311. name: '待付款',
  312. icon: "/static/image/mall/payment.png",
  313. myOrder: true
  314. }, {
  315. name: '待发货',
  316. icon: "/static/image/mall/send_goods.png",
  317. myOrder: true
  318. }, {
  319. name: '待收货',
  320. icon: "/static/image/mall/sou_goods.png",
  321. myOrder: true
  322. }, {
  323. name: '已完成',
  324. icon: "/static/image/mall/completed.png",
  325. myOrder: true
  326. }, {
  327. name: '售后退款',
  328. icon: "/static/image/mall/after_sales.png",
  329. pageUrl: "/pages_user/user/refundOrderList"
  330. }]
  331. },
  332. // {
  333. // menuTitle: "医疗服务",
  334. // menus: [
  335. // {
  336. // name: '我的处方',
  337. // icon: "../../static/image/my/my_prescription_icon.png",
  338. // pageUrl:"/pages/store/prescribeList"
  339. // },{
  340. // name: '我的医生',
  341. // icon: "../../static/image/my/my_doctor_icon.png",
  342. // pageUrl:"./myDoctorList"
  343. // },{
  344. // name: '随访服务',
  345. // icon: "../../static/image/my/follow_up_icon.png",
  346. // pageUrl:"/pages/user/followList"
  347. // },{
  348. // name: '用药咨询',
  349. // icon: "../../static/image/my/medical_consultation_icon.png",
  350. // pageUrl:"/pages/store/inquiryOrderList",
  351. // isIm:true
  352. // },{
  353. // name: '用药报告',
  354. // icon: "../../static/image/my/medication_report_icon.png",
  355. // pageUrl:"/pages/user/drugReportList"
  356. // }
  357. // ]
  358. // },
  359. // {
  360. // menuTitle: "我的应用",
  361. // menus: [
  362. // // {
  363. // // name: '健康档案',
  364. // // icon: "../../static/image/my/my_order_icon.png",
  365. // // pageUrl: "/pages/user/healthRecords/index"
  366. // // }
  367. // // ,{
  368. // // name: '就诊管理',
  369. // // icon: "../../static/image/my/visit_icon.png",
  370. // // pageUrl:"./patient"
  371. // // },
  372. // {
  373. // name: '地址管理',
  374. // icon: "../../static/image/my/address_management_icon.png",
  375. // pageUrl: "./address"
  376. // },
  377. // // {
  378. // // name: '福币管理',
  379. // // icon: "/static/image/my/my_points_icon.png",
  380. // // pageUrl: "/pages_user/user/integral"
  381. // // },
  382. // {
  383. // name: '优惠券',
  384. // icon: "../../static/image/my/coupon_collection.png",
  385. // pageUrl: "/pages_shopping/shopping/myCoupon"
  386. // },
  387. // // {
  388. // // name: '购物车',
  389. // // icon: "/static/image/mall/cart.png",
  390. // // pageUrl: "/pages/shopping/cart"
  391. // // },
  392. // // {
  393. // // name: '我的足迹',
  394. // // icon: "/static/image/mall/footprint.png",
  395. // // pageUrl: "/pages_user/user/storeProductRelation"
  396. // // },
  397. // // {
  398. // // name: '制单管理',
  399. // // icon: "/static/image/my/my_cforder_icon.png",
  400. // // documentPreparation: true
  401. // // }
  402. // // {
  403. // // name: '专属客服',
  404. // // icon: "/static/image/my/drzy_icon.png",
  405. // // isService: true
  406. // // },
  407. // // {
  408. // // name: '领券中心',
  409. // // icon: "../../static/image/my/coupon_collection.png",
  410. // // pageUrl: "/pages/company/couponList?couponType=6"
  411. // // }
  412. // // ,{
  413. // // name: '健康产品',
  414. // // icon: "../../static/image/my/my_points_icon.png",
  415. // // pageUrl:"/pages/shopping/index"
  416. // // }
  417. // // ,{
  418. // // name: '会员中心',
  419. // // icon: "../../static/image/my/member_icon.png",
  420. // // isUserService:true,
  421. // // pageUrl:""
  422. // // }
  423. // // ,{
  424. // // name: '健康管家',
  425. // // icon: "../../static/image/my/my_doctor_icon.png",
  426. // // pageUrl: "/pages/user/addHealthButler"
  427. // // }
  428. // // ,{
  429. // // name: '开票历史',
  430. // // icon: "../../static/image/my/invoicing_icon.png",
  431. // // pageUrl:"/pages/store/invoice/invoiceList",
  432. // // }
  433. // // ,{
  434. // // name: '客服中心',
  435. // // icon: "../../static/image/my/service_center_icon.png",
  436. // // pageUrl:""
  437. // // },
  438. // {
  439. // name: '看课通知',
  440. // icon: "../../static/image/my/my_order_icon.png",
  441. // pageUrl: "/pages/courseAnswer/list"
  442. // }, {
  443. // name: '投诉建议',
  444. // icon: "../../static/image/my/tsjy.png",
  445. // pageUrl: "/pages/user/feedback"
  446. // },
  447. // {
  448. // name: '直播',
  449. // icon: "/static/images/live/live.png",
  450. // pageUrl: "/pages_live/livingList",
  451. // isShow: true
  452. // },
  453. // {
  454. // name: '直播订单',
  455. // icon: "../../static/image/my/my_cforder_icon.png",
  456. // pageUrl: "/pages_live/shopping/order",
  457. // isShow: true
  458. // },
  459. // {
  460. // name: '直播售后',
  461. // icon: "../../static/images/live/live_sale.png",
  462. // pageUrl: "/pages_live/shopping/storeOrderRefundList",
  463. // isShow: true
  464. // },
  465. // {
  466. // name: '商城订单',
  467. // icon: "../../static/image/my/my_cforder_icon.png",
  468. // pageUrl: "/pages_user/user/storeOrder?status=",
  469. // isShow: true
  470. // },
  471. // {
  472. // name: '商城售后',
  473. // icon: "../../static/images/live/live_sale.png",
  474. // pageUrl: "/pages_user/user/refundOrderList",
  475. // isShow: true
  476. // },
  477. // ]
  478. // },
  479. // {
  480. // menuTitle: "我的视频",
  481. // menus: [{
  482. // name: '我的收藏',
  483. // icon: "../../static/image/my/collect_icon.png",
  484. // pageUrl: "./myFavoriteVideo"
  485. // }, {
  486. // name: '我的评论',
  487. // icon: "../../static/image/my/evaluate_icon.png",
  488. // pageUrl: "/pages/store/inquiryOrderPingList"
  489. // }]
  490. // },
  491. // {
  492. // menuTitle: "管理应用",
  493. // menus: [
  494. // // {
  495. // // name: '医生入驻',
  496. // // icon: "../../static/image/my/doctor_entrance_icon.png",
  497. // // pageUrl:"/pages/user/registerDoctor?type=1"
  498. // // },{
  499. // // name: '药师入驻',
  500. // // icon: "../../static/image/my/pharmacist_entrance_icon.png",
  501. // // pageUrl:"/pages/user/registerDoctor?type=2"
  502. // // },
  503. // {
  504. // name: '达人主页',
  505. // icon: "../../static/image/my/drzy_icon.png",
  506. // pageUrl: "/pages/expert/index"
  507. // },
  508. // // {
  509. // // name: '销售登录',
  510. // // icon: "../../static/image/my/login_icon.png",
  511. // // isSale: true,
  512. // // pageUrl: "",
  513. // // },
  514. // // {
  515. // // name: '客服登录',
  516. // // icon: "../../static/image/my/login_icon.png",
  517. // // isService: true,
  518. // // pageUrl: "",
  519. // // },
  520. // {
  521. // name: '关于我们',
  522. // icon: "../../static/image/my/feedback_icon.png",
  523. // pageUrl: "./about"
  524. // }
  525. // ]
  526. // }
  527. ]
  528. let param = {
  529. key: "app.config"
  530. };
  531. let result = await getConfigByKey(param)
  532. result = result.data && JSON.parse(result.data)
  533. if (result.tongueFlag && result.tongueFlag != '0') {
  534. const menuExists3 = this.menuList[0].menus.some(menu => menu.name === '舌苔报告');
  535. if (!menuExists3) {
  536. this.menuList[0].menus.push({
  537. name: '舌苔报告',
  538. icon: "../../static/image/my/shetai.png",
  539. pageUrl: "/pages/user/tongue/tongueList"
  540. })
  541. }
  542. const menuExists4 = this.menuList[0].menus.some(menu => menu.name === 'AI舌诊');
  543. if (!menuExists4) {
  544. this.menuList[0].menus.push({
  545. name: 'AI舌诊',
  546. icon: "/static/image/my/tongue.png",
  547. pageUrl: "/pages/user/tongue/index"
  548. })
  549. }
  550. }
  551. if (this.user && !this.user.invitedBySalesId) {
  552. const isExist = this.menuList.some(item => item.name === '填写邀请码');
  553. if (!isExist) {
  554. this.menuList[2].menus.push({
  555. name: '填写邀请码',
  556. icon: "../../static/image/my/my_cforder_icon.png",
  557. isIinvitation: true
  558. })
  559. }
  560. }
  561. if (this.user && this.user.isCompanyUser) {
  562. const menuExists = this.menuList[2].menus.some(menu => menu.name === '客服登录');
  563. if (!menuExists) {
  564. this.menuList[2].menus.push({
  565. name: '客服登录',
  566. icon: "../../static/image/my/login_icon.png",
  567. isService: true,
  568. pageUrl: "",
  569. })
  570. }
  571. const menuExists1 = this.menuList[2].menus.some(menu => menu.name === '销售登录');
  572. if (!menuExists1) {
  573. this.menuList[2].menus.push({
  574. name: '销售登录',
  575. icon: "../../static/image/my/login_icon.png",
  576. isSale: true,
  577. pageUrl: "",
  578. })
  579. }
  580. }
  581. },
  582. scanCodeFun() {
  583. let that = this
  584. uni.scanCode({
  585. onlyFromCamera: true,
  586. success: function(res) {
  587. console.log('条码内容:' + res.result);
  588. const uIndex = res.result.indexOf('U');
  589. that.inviteCode = uIndex !== -1 ? res.result.slice(uIndex + 1) : res.result;
  590. that.invitationCodeFun()
  591. }
  592. });
  593. },
  594. async invitationCodeFun() {
  595. let params = {
  596. userId: this.user.userId,
  597. inviteCode: this.inviteCode
  598. }
  599. const res = await bindSales(params)
  600. if (res.code == 200) {
  601. uni.showToast({
  602. icon: 'none',
  603. title: '绑定成功!'
  604. })
  605. this.inviteShow = false
  606. this.getUserInfo()
  607. this.menuList[2].menus.pop();
  608. } else {
  609. uni.showToast({
  610. icon: 'none',
  611. title: res.msg
  612. })
  613. }
  614. },
  615. getIOSPayStatusFun() {
  616. getIOSPayStatus().then(res => {
  617. if (res.code == 200) {
  618. this.showIOSPay = res.iosPayStatus
  619. }
  620. })
  621. },
  622. doIM() {
  623. uni.showLoading({
  624. title: "处理中..."
  625. });
  626. getUserFollowDoctor().then(res => {
  627. if (res.code == 200) {
  628. if (res.data != null) {
  629. let data = res.data;
  630. var params = {
  631. followId: data.followId
  632. };
  633. console.log(data);
  634. startDrugReport(params).then(res => {
  635. uni.hideLoading();
  636. var that = this;
  637. var user = JSON.parse(uni.getStorageSync('userInfo'));
  638. var uid = 'U' + user.userId;
  639. var did = 'D' + data.followDoctorId;
  640. var conversationID = `si_${did}_${uid}`;
  641. this.$store.commit("timStore/setOrderId", data.orderId);
  642. this.$store.commit("timStore/setFollowId", data.followId);
  643. this.$store.commit("timStore/setImType", 2);
  644. this.$store.commit("timStore/setConversationID", conversationID);
  645. navigateToDesignatedConversation(did, SessionType.Single, false)
  646. .then((
  647. res) => {
  648. // setConversation(conversationID,JSON.stringify(ex)).then(() => {
  649. // console.log("qxj setConversation ex:"+JSON.stringify(ex));
  650. // }).catch(() => {});
  651. }).catch(() => uni.$u.toast("操作失败"));
  652. },
  653. rej => {}
  654. );
  655. } else {
  656. uni.hideLoading()
  657. uni.showToast({
  658. icon: 'none',
  659. title: "当前没有药师为您服务",
  660. });
  661. }
  662. } else {
  663. uni.showToast({
  664. icon: 'none',
  665. title: "请求失败",
  666. });
  667. }
  668. },
  669. rej => {}
  670. );
  671. },
  672. toIM() {
  673. if (this.$isLogin()) {
  674. this.doIM();
  675. } else {
  676. this.$showLoginPage();
  677. }
  678. },
  679. toCompany() {
  680. if (this.$isLogin()) {
  681. var token = uni.getStorageSync('CompanyUserToken');
  682. if (token) {
  683. uni.navigateTo({
  684. url: '/pages/company/index'
  685. })
  686. } else {
  687. uni.navigateTo({
  688. url: '/pages/company/login'
  689. })
  690. }
  691. } else {
  692. this.$showLoginPage();
  693. }
  694. },
  695. showLogout() {
  696. //this.show=true;
  697. let that = this;
  698. uni.showActionSheet({
  699. title: "确认退出吗",
  700. itemList: ["确定"],
  701. success: function(res) {
  702. that.logout();
  703. that.isLogin = that.$isLogin()
  704. // uni.navigateTo({
  705. // url: '/pages/auth/loginIndex'
  706. // })
  707. }
  708. });
  709. },
  710. hideLogout() {
  711. this.show = false;
  712. },
  713. logout() {
  714. uni.clearStorage()
  715. this.$logout();
  716. let IMUserID = uni.getStorageSync('IMUserID');
  717. IMSDK.asyncApi(IMSDK.IMMethods.Logout, IMSDK.uuid()).then(() => {
  718. callingModule?.endCall();
  719. meetingModule?.endCall();
  720. }).catch((err) => console.log(err))
  721. .finally(() => {
  722. Igexin.unbindAlias(IMUserID);
  723. uni.removeStorage({
  724. key: "IMToken"
  725. });
  726. uni.removeStorage({
  727. key: "IMUserID"
  728. });
  729. uni.removeStorage({
  730. key: "IMHasLogin"
  731. });
  732. });
  733. this.user = this.defUser;
  734. this.coupons.expiredCount = 0;
  735. this.coupons.notUsedCount = 0;
  736. this.coupons.usedCount = 0;
  737. },
  738. toSale() {
  739. if (this.$isLogin()) {
  740. var token = uni.getStorageSync('ManageToken');
  741. if (token) {
  742. uni.navigateTo({
  743. url: '/pages_manage/index'
  744. })
  745. } else {
  746. uni.navigateTo({
  747. url: '/pages_manage/login'
  748. });
  749. }
  750. } else {
  751. this.$showLoginPage();
  752. }
  753. },
  754. documentPreparationFun() {
  755. if (this.$checkCompanyUserLoginState()) {
  756. uni.navigateTo({
  757. url: '/pages_company/index'
  758. })
  759. } else {
  760. uni.navigateTo({
  761. url: '/pages_company/auth/login'
  762. })
  763. }
  764. },
  765. myOrderFun(item) {
  766. const arr = ['待付款', '待发货', '待收货', '已完成']
  767. let status = ''
  768. if (item.name) {
  769. status = arr.indexOf(item.name)
  770. }
  771. uni.navigateTo({
  772. url: '/pages_user/user/storeOrder?status=' + status
  773. })
  774. },
  775. handleMenu(item) {
  776. if (item.isIm != undefined && item.isIm) {
  777. this.toIM();
  778. } else if (item.isIinvitation != undefined && item.isIinvitation) {
  779. this.inviteShow = true
  780. } else if (item.documentPreparation != undefined && item.documentPreparation) {
  781. this.documentPreparationFun();
  782. } else if (item.myOrder != undefined && item.myOrder) {
  783. this.myOrderFun(item);
  784. } else if (item.isService != undefined && item.isService) {
  785. this.toCompany();
  786. } else if (item.isSale != undefined && item.isSale) {
  787. this.toSale();
  788. } else if (item.isUserService != undefined && item.isUserService) {
  789. this.loginNavTo('/pages/course/vipBuy')
  790. } else if (item.isServerCenter != undefined && item.isServerCenter) {
  791. this.gotoMiniProgram("/page_user/service");
  792. } else if (item.name == '客服中心') {
  793. const url = getApp().globalData.kfurl //企业微信客服链接
  794. const corpId = getApp().globalData.corpId //企业id
  795. this.openCustomerServiceChat(url, corpId)
  796. } else {
  797. this.loginNavTo(item.pageUrl)
  798. }
  799. },
  800. navTo(url) {
  801. console.log(url);
  802. uni.navigateTo({
  803. url: url
  804. });
  805. },
  806. loginNavTo(url) {
  807. if (!this.$isLogin()) {
  808. this.$showLoginPage();
  809. return;
  810. }
  811. uni.navigateTo({
  812. url: url
  813. });
  814. },
  815. navToUserInfo(url) {
  816. if (!this.$isLogin() || !this.user.userId) {
  817. this.$showLoginPage();
  818. return;
  819. }
  820. uni.navigateTo({
  821. url: "./userInfo?userId=" + this.user.userId
  822. });
  823. },
  824. navToServerCenter() {
  825. if (!this.$isLogin()) {
  826. this.$showLoginPage();
  827. return;
  828. }
  829. },
  830. getUserInfo() {
  831. let that = this;
  832. getUserInfo().then(res => {
  833. if (res.code == 200) {
  834. if (res.user != null) {
  835. uni.setStorageSync('userInfo', JSON.stringify(res.user));
  836. this.user = res.user;
  837. this.initMenu()
  838. } else {
  839. uni.showToast({
  840. icon: 'none',
  841. title: res.msg,
  842. });
  843. }
  844. }
  845. },
  846. rej => {}
  847. );
  848. },
  849. getMyCouponCount() {
  850. let that = this;
  851. getMyCouponCount().then(res => {
  852. if (res.code == 200) {
  853. this.coupons = res.data;
  854. }
  855. },
  856. rej => {}
  857. );
  858. },
  859. getUserNickName() {
  860. let nickName = "";
  861. if (!this.$isLogin()) { //已登录
  862. nickName = "请登录";
  863. return nickName;
  864. }
  865. nickName = this.$isEmpty(this.user.nickName) ? "请登录" : this.user.nickName;
  866. return nickName;
  867. },
  868. userScroll(e) {
  869. if (e.detail.scrollTop >= 50) {
  870. this.fixedTop = true
  871. } else {
  872. this.fixedTop = false
  873. }
  874. this.top = e.detail.scrollTop;
  875. },
  876. scrollTolower() {
  877. },
  878. getDayMix(vipEndDate) {
  879. // 假设 vipEndDate 字符串
  880. //let vipEndDate = "2024-09-06T14:43:36.000+0800";
  881. // 将 vipEndDate 解析为日期对象
  882. let endDate = new Date(vipEndDate);
  883. // 获取当前日期
  884. let currentDate = new Date();
  885. // 计算时间差(毫秒)
  886. let timeDiff = endDate - currentDate;
  887. // 计算天数差
  888. let dayDiff = Math.ceil(timeDiff / (1000 * 3600 * 24));
  889. let dayStr = "";
  890. // 输出结果
  891. if (dayDiff > 0) {
  892. dayStr = `VIP到期还有${dayDiff}天`;
  893. } else if (dayDiff === 0) {
  894. dayStr = "今天是VIP到期日";
  895. } else {
  896. dayStr = `VIP已过期${Math.abs(dayDiff)}天`;
  897. }
  898. return dayStr;
  899. },
  900. goToMsg() {
  901. uni.switchTab({
  902. url: '/pages_im/pages/conversation/conversationList/index'
  903. });
  904. },
  905. async openCustomerServiceChat(url, corpId) {
  906. // #ifdef H5
  907. window.location.href = url
  908. // #endif
  909. // #ifdef MP-WEIXIN
  910. wx.openCustomerServiceChat({
  911. extInfo: {
  912. url
  913. },
  914. corpId,
  915. success(res) {
  916. console.log('成功');
  917. },
  918. fail(err) {
  919. console.log(err, '报错');
  920. }
  921. })
  922. // #endif
  923. // #ifdef APP-PLUS
  924. let shares = await this.getAppShare().catch(err => {
  925. throw Error(err)
  926. });
  927. shares['weixin'].openCustomerServiceChat({
  928. corpid: corpId,
  929. url
  930. }, suc => {
  931. console.log("客服打开成功", JSON.stringify(res))
  932. }, err => {
  933. console.log("error", JSON.stringify(err))
  934. })
  935. // #endif
  936. },
  937. getAppShare() {
  938. // #ifdef APP-PLUS
  939. return new Promise((re, rj) => {
  940. let shares = null;
  941. var pusher = plus.share.getServices(function(s) {
  942. shares = {};
  943. s.forEach(e => shares[e.id] = e);
  944. re(shares)
  945. }, function(e) {
  946. rj(e);
  947. });
  948. });
  949. // #endif
  950. },
  951. gotoMiniProgram(pageUrl) {
  952. plus.share.getServices(function(res) {
  953. var sweixin = null;
  954. for (var i = 0; i < res.length; i++) {
  955. var t = res[i];
  956. if (t.id == 'weixin') {
  957. sweixin = t;
  958. }
  959. }
  960. if (sweixin) {
  961. //唤起微信跳转小程序
  962. sweixin.launchMiniProgram({
  963. id: getApp().globalData.miniprogamId,
  964. path: pageUrl,
  965. type: 0
  966. }, function() {
  967. console.log("微信唤起成功");
  968. return true;
  969. }, function(e) {
  970. console.log("微信唤起失败", e);
  971. uni.showToast({
  972. title: '微信唤起失败,请检查是否有微信应用',
  973. icon: 'none'
  974. })
  975. return false;
  976. })
  977. } else {
  978. uni.showToast({
  979. title: '微信唤起失败,请检查是否有微信应用',
  980. icon: 'none',
  981. duration: 3000
  982. })
  983. return false;
  984. }
  985. }, function(res) {
  986. });
  987. },
  988. toSelfQr() {
  989. uni.navigateTo({
  990. url: '/pages_im/pages/common/userOrGroupQrCode/index',
  991. });
  992. },
  993. userIsDel() {
  994. return this.user.status == 0;
  995. },
  996. isMiOpen() {
  997. isMiOpen().then((res) => {
  998. if (res.code == 200) {
  999. uni.setStorageSync('isOpen', res.data);
  1000. this.isOpen = res.data;
  1001. }
  1002. });
  1003. },
  1004. },
  1005. computed: {
  1006. // 计算属性的 getter
  1007. headerBG: function() {
  1008. var top = this.top / 88;
  1009. return 'rgba(253,224,204, ' + top + ')';
  1010. },
  1011. }
  1012. }
  1013. </script>
  1014. <style scoped lang="scss">
  1015. page {
  1016. height: 100%;
  1017. background: #F4F6F7;
  1018. }
  1019. .top-cont {
  1020. height: 100vh;
  1021. // overflow: hidden;
  1022. // height: 370rpx;
  1023. position: relative;
  1024. display: flex;
  1025. flex-direction: column;
  1026. &::after {
  1027. content: '';
  1028. width: 100%;
  1029. height: 370rpx;
  1030. position: absolute;
  1031. z-index: -1;
  1032. left: 0;
  1033. top: 0;
  1034. border-radius: 0 0 50rpx 50rpx;
  1035. }
  1036. .inner.fixed {
  1037. width: 100%;
  1038. position: fixed;
  1039. top: 0;
  1040. left: 0;
  1041. z-index: 999;
  1042. }
  1043. .seat {
  1044. display: none;
  1045. height: var(--status-bar-height);
  1046. &.show {
  1047. display: block;
  1048. }
  1049. }
  1050. .status-bar {
  1051. background-color: rgba(253, 224, 204, 1);
  1052. height: var(--status-bar-height);
  1053. }
  1054. .status-bar.main-bg {
  1055. background-color: #fff;
  1056. }
  1057. .top-title-box {
  1058. height: 88rpx;
  1059. line-height: 88rpx;
  1060. text-align: center;
  1061. background-color: #fff;
  1062. font-size: 18px;
  1063. color: #333;
  1064. font-weight: 550;
  1065. display: none;
  1066. &.show {
  1067. display: block;
  1068. }
  1069. }
  1070. }
  1071. .top-section {
  1072. .bg-img {
  1073. position: fixed;
  1074. width: 100%;
  1075. top: 0;
  1076. left: 0;
  1077. right: 0;
  1078. height: 524rpx;
  1079. z-index: 0;
  1080. }
  1081. }
  1082. @mixin u-flex($flexD, $alignI, $justifyC) {
  1083. display: flex;
  1084. flex-direction: $flexD;
  1085. align-items: $alignI;
  1086. justify-content: $justifyC;
  1087. }
  1088. .flex-center {
  1089. @include u-flex(row, center, flex-start);
  1090. }
  1091. .flexBetween {
  1092. width: calc(100vw - 240rpx);
  1093. @include u-flex(row, center, space-between);
  1094. }
  1095. .container {
  1096. background-image: url("@/static/images/bg.png");
  1097. background-size: contain;
  1098. background-repeat: no-repeat;
  1099. background-position: top;
  1100. font-family: PingFang SC, PingFang SC;
  1101. // padding-top: var(--status-bar-height);
  1102. padding-bottom: 20rpx;
  1103. // height: 100%;
  1104. }
  1105. .my-header-right {
  1106. height: 88rpx;
  1107. padding-right: 28rpx;
  1108. margin-top: var(--status-bar-height);
  1109. @include u-flex(row, center, flex-end);
  1110. image {
  1111. margin-left: 32rpx;
  1112. width: 48rpx;
  1113. height: 48rpx;
  1114. position: relative;
  1115. }
  1116. .badge::after {
  1117. content: "";
  1118. width: 16rpx;
  1119. height: 16rpx;
  1120. background: #FF233C;
  1121. border-radius: 50%;
  1122. position: absolute;
  1123. right: 0;
  1124. top: 0;
  1125. }
  1126. }
  1127. .mybox {
  1128. flex: 1;
  1129. overflow-y: auto;
  1130. overflow-x: hidden;
  1131. padding: 12rpx 24rpx;
  1132. &-info {
  1133. @include u-flex(row, flex-start, flex-start);
  1134. &-name {
  1135. font-weight: 600;
  1136. font-size: 40rpx;
  1137. color: #000000;
  1138. }
  1139. .heads {
  1140. width: 150rpx;
  1141. height: 150rpx;
  1142. border: 4rpx solid #FFFFFF;
  1143. border-radius: 50%;
  1144. margin-right: 20rpx;
  1145. }
  1146. .arrow_black {
  1147. width: 48rpx;
  1148. height: 48rpx;
  1149. }
  1150. .vipbox {
  1151. background: linear-gradient(90deg, #F26F00 0%, #FF9D1F 100%);
  1152. border-radius: 20rpx 20rpx 20rpx 20rpx;
  1153. border: 1rpx solid #FEDDB9;
  1154. font-weight: 500;
  1155. font-size: 22rpx;
  1156. color: #FEF5EA;
  1157. padding: 0 22rpx 0 12rpx;
  1158. }
  1159. }
  1160. &-integral {
  1161. margin-top: 48rpx;
  1162. @include u-flex(row, center, flex-start);
  1163. &-item {
  1164. width: 25%;
  1165. text-align: center;
  1166. font-weight: 400;
  1167. font-size: 24rpx;
  1168. color: #757575;
  1169. }
  1170. .num {
  1171. margin-bottom: 12rpx;
  1172. font-family: DIN, DIN;
  1173. font-weight: 500;
  1174. font-size: 40rpx;
  1175. color: #313131;
  1176. }
  1177. }
  1178. &-menu {
  1179. background: #FFFFFF;
  1180. border-radius: 16rpx;
  1181. padding: 30rpx 32rpx 40rpx 24rpx;
  1182. margin: 20rpx 0;
  1183. &-title {
  1184. font-weight: 600;
  1185. font-size: 40rpx;
  1186. color: rgba(0, 0, 0, 0.85);
  1187. }
  1188. &-box {
  1189. @include u-flex(row, center, flex-start);
  1190. margin-bottom: -40rpx;
  1191. flex-wrap: wrap;
  1192. }
  1193. .mybox-menu-box-tool {
  1194. @include u-flex(column, center, center);
  1195. padding: 2rpx 16rpx;
  1196. .myboxToolMenuItem {
  1197. @include u-flex(row, center, space-between);
  1198. width: 100%;
  1199. padding-bottom: 44rpx;
  1200. margin-bottom: 38rpx;
  1201. border-bottom: 2rpx solid #D8D8D8;
  1202. .myboxToolMenuItemLeft {
  1203. @include u-flex(row, center, center);
  1204. image {
  1205. width: 50rpx;
  1206. height: 50rpx;
  1207. }
  1208. text {
  1209. font-weight: 400;
  1210. font-size: 36rpx;
  1211. color: rgba(0, 0, 0, 0.85);
  1212. margin-left: 42rpx;
  1213. }
  1214. }
  1215. }
  1216. .myboxToolMenuItem:last-child {
  1217. border-bottom: none;
  1218. padding-bottom: 0;
  1219. margin-bottom: 0;
  1220. }
  1221. }
  1222. .w20 {
  1223. width: 20% !important;
  1224. }
  1225. &-item {
  1226. width: 33.3%;
  1227. margin-bottom: 34rpx;
  1228. @include u-flex(column, center, center);
  1229. font-weight: 400;
  1230. font-size: 36rpx;
  1231. color: rgba(0, 0, 0, 0.85);
  1232. .mybox-menu-itemImage {
  1233. position: relative;
  1234. margin-bottom: 10rpx;
  1235. .numBox {
  1236. position: absolute;
  1237. top: -16rpx;
  1238. right: -16rpx;
  1239. border-radius: 50%;
  1240. padding: 8rpx;
  1241. background: #FF7163;
  1242. }
  1243. image {
  1244. height: 60rpx;
  1245. width: 60rpx;
  1246. }
  1247. }
  1248. }
  1249. }
  1250. }
  1251. .vip-card {
  1252. height: 172rpx;
  1253. margin-top: 28rpx;
  1254. background: url("@/static/image/my/vip_bg_left.png") no-repeat left / 128rpx 172rpx,
  1255. url("@/static/image/my/vip_bg_right.png") no-repeat right / 324rpx 172rpx,
  1256. linear-gradient(90deg, #FFF3DF 0%, #FADBA9 100%);
  1257. border-radius: 16rpx 16rpx 16rpx 16rpx;
  1258. padding: 0 32rpx;
  1259. box-sizing: border-box;
  1260. @include u-flex(row, center, space-between);
  1261. &-info {
  1262. font-weight: 400;
  1263. font-size: 24rpx;
  1264. color: #834F00;
  1265. margin-bottom: 26rpx;
  1266. image {
  1267. width: 126rpx;
  1268. height: 30rpx;
  1269. margin-right: 34rpx;
  1270. }
  1271. }
  1272. &-price {
  1273. font-weight: 500;
  1274. font-size: 32rpx;
  1275. color: #885201;
  1276. line-height: 38rpx;
  1277. text {
  1278. font-family: Roboto, Roboto;
  1279. font-weight: bold;
  1280. font-size: 40rpx;
  1281. color: #EA8F07;
  1282. margin: 0 8rpx;
  1283. }
  1284. }
  1285. .buyvip {
  1286. height: 72rpx;
  1287. background: #885201;
  1288. border-radius: 36rpx 36rpx 36rpx 36rpx;
  1289. font-weight: 600;
  1290. font-size: 28rpx;
  1291. color: #FFF6E7;
  1292. line-height: 72rpx;
  1293. padding: 0 32rpx;
  1294. display: inline-block;
  1295. }
  1296. }
  1297. .btns {
  1298. // height: 110rpx;
  1299. padding-bottom: 88rpx;
  1300. }
  1301. .login-btn {
  1302. display: flex;
  1303. align-items: center;
  1304. justify-content: center;
  1305. flex: 1;
  1306. margin: 0 30rpx;
  1307. height: 80rpx;
  1308. background: #fff;
  1309. // box-shadow: 0px 7rpx 6rpx 0px rgba(229, 138, 0, 0.22);
  1310. border-radius: 40rpx;
  1311. font-size: 30rpx;
  1312. font-family: PingFang SC;
  1313. font-weight: 500;
  1314. color: #333;
  1315. }
  1316. .popupBox {
  1317. padding: 36rpx 40rpx;
  1318. input {
  1319. padding: 30rpx 0;
  1320. border-bottom: 1rpx solid #EAEAEA;
  1321. margin-top: 42rpx;
  1322. }
  1323. .es-mt-56 {
  1324. margin-top: 56rpx;
  1325. }
  1326. .popupBox-btn {
  1327. width: 282rpx;
  1328. height: 104rpx;
  1329. border-radius: 12rpx;
  1330. background: #F2F2F2;
  1331. }
  1332. .colorE62129 {
  1333. color: #E62129;
  1334. }
  1335. .bgE62129 {
  1336. background: #E62129;
  1337. }
  1338. }
  1339. .menuBox {
  1340. // flex: 1;
  1341. // overflow-y: scroll;
  1342. // overflow-x: hidden;
  1343. }
  1344. .qyh {
  1345. font-size: 32rpx !important;
  1346. color: rgba(0, 0, 0, 0.85) !important;
  1347. }
  1348. .allOrderTextClass {
  1349. font-weight: 400;
  1350. font-size: 32rpx;
  1351. color: #00000073;
  1352. margin-right: 10rpx;
  1353. }
  1354. </style>