index.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047
  1. <template>
  2. <view class="mycontent">
  3. <view class="banner"></view>
  4. <view class="header">
  5. <view class="userInfo">
  6. <view class="avator-box">
  7. <image
  8. class="avatar"
  9. :src="isHttpsImage(appStore.$userInfo?.avatar)"
  10. mode="scaleToFill"
  11. ></image>
  12. </view>
  13. <view class="right">
  14. <view class="name">
  15. <view class="left">
  16. <!-- 昵称: -->
  17. <span v-if="appStore.isLogin">
  18. {{ appStore.$userInfo?.nickname }}
  19. </span>
  20. <span v-else @click="navigateTo('/pages/users/login/index')">
  21. 未登录
  22. </span>
  23. <image
  24. v-if="appStore.$userInfo?.svip"
  25. style="height: 30rpx"
  26. :src="svipUrl"
  27. mode="heightFix"
  28. ></image>
  29. <image
  30. v-if="isDg"
  31. class="dgImg"
  32. style="height: 38rpx"
  33. src="https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/%E6%B0%B4%E8%B4%9D%E4%BB%A3%E8%B4%AD.png"
  34. mode="heightFix"
  35. ></image>
  36. <image
  37. v-if="isTjg"
  38. class="dgImg"
  39. style="height: 30rpx"
  40. src="https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/%E6%8E%A8%E8%8D%90%E5%AE%98.png"
  41. mode="heightFix"
  42. ></image>
  43. </view>
  44. <view class="vip-img">
  45. <image
  46. v-if="appStore.$userInfo?.vip"
  47. :src="appStore.$userInfo.vipIcon"
  48. mode="heightFix"
  49. ></image>
  50. </view>
  51. <view class="detail">
  52. <view class="detaik-item"
  53. >性别:{{
  54. { 0: "未知", 1: "男", 2: "女" }[appStore.$userInfo?.sex] ||
  55. "未知"
  56. }}</view
  57. >
  58. <view class="detaik-item"
  59. >年龄:{{ appStore.$userInfo?.age }}</view
  60. >
  61. <view class="detaik-item"
  62. >城市:{{ address ? address : "未知" }}</view
  63. >
  64. <view class="detaik-item"
  65. >贝币:{{ appStore.$userInfo?.integral }}</view
  66. >
  67. </view>
  68. </view>
  69. <!-- <view class="edit" @click="nativeTo('/pageA/user/setting')"></view> -->
  70. </view>
  71. </view>
  72. <!-- 滚动顶部提示 -->
  73. <view
  74. class="notice-bar-box"
  75. v-if="appStore.$wxConfig?.myPageAnnouncement"
  76. >
  77. <uni-notice-bar
  78. show-icon
  79. color="#e8c279"
  80. background-color="#ffffff"
  81. scrollable
  82. :text="appStore.$wxConfig?.myPageAnnouncement"
  83. />
  84. </view>
  85. <!-- 勋章 -->
  86. <view class="medal-content">
  87. <view
  88. v-for="(item, index) in medalList"
  89. :key="index"
  90. class="one-gird"
  91. @click="medalTip(item)"
  92. >
  93. <image
  94. mode="heightFix"
  95. class="medalIamge"
  96. :src="item.medalStatus ? item.icon : item.iconFail"
  97. ></image>
  98. </view>
  99. </view>
  100. <!-- <tm-listitem
  101. v-if="userInfo.role && userInfo.role.includes('manager')"
  102. title="管理后台"
  103. leftIcon="icon-display-code"
  104. showLeftIcon
  105. leftIconColor="mymain"
  106. @click="uni.navigateTo(`/pages/system/home`)"
  107. ></tm-listitem>
  108. <tm-listitem
  109. v-if="userInfo.role && userInfo.role.includes('manager')"
  110. title="数据看板"
  111. leftIcon="icon-display-code"
  112. showLeftIcon
  113. leftIconColor="mymain"
  114. @click="uni.navigateTo(`/pageA/user/adminData`)"
  115. ></tm-listitem> -->
  116. <view class="block">
  117. <view class="menu-group">
  118. <block v-for="(item, index) in group1" :key="index">
  119. <view
  120. class="menu-group-item"
  121. @click="nativeToOrder(item)"
  122. v-if="
  123. !item.is_show ||
  124. (item.is_show && !appStore.$wxConfig.auditModeEnabled)
  125. "
  126. >
  127. <view class="image-box">
  128. <image
  129. mode="widthFix"
  130. class="menu-img"
  131. :src="item.icon"
  132. :style="{
  133. width: item.width + 'rpx',
  134. height: item.height + 'rpx',
  135. }"
  136. />
  137. </view>
  138. <view class="menu-item-right">
  139. <text class="menu-item-title">{{ item.text }}</text>
  140. <view class="menu-btn">{{ ">" }}</view>
  141. </view>
  142. </view>
  143. </block>
  144. </view>
  145. </view>
  146. <up-popup
  147. :show="showOfficial"
  148. closeOnClickOverlay
  149. mode="center"
  150. @close="close"
  151. >
  152. <view class="upopup-box">
  153. <image
  154. style="width: 100%"
  155. src="https://mp-c7c90a6c-c53b-48dd-bd94-692abc111f89.cdn.bspapp.com/2025/08/04/85093216-23858947-0.jpg"
  156. mode="widthFix"
  157. showMenuByLongpress
  158. ></image>
  159. <view style="width: 100%; text-align: center; color: #999"
  160. >长按识别跳转公众号</view
  161. >
  162. </view>
  163. </up-popup>
  164. <!-- 弹窗 -->
  165. <uni-popup ref="popup" type="center" :isMaskClick="true">
  166. <view class="medal-loading" style="background-color: #fff">
  167. <view class="title">{{ medalTips.title }}</view>
  168. <view class="content">
  169. <view>{{ medalTips.content }}</view>
  170. <view>{{ medalTips.effect }}</view>
  171. </view>
  172. <view class="btn-box"
  173. ><view class="btn" @click="popup.close">我已了解</view></view
  174. >
  175. </view>
  176. </uni-popup>
  177. <up-popup
  178. :show="showCallList"
  179. closeOnClickOverlay
  180. mode="bottom"
  181. @close="showCallList = false"
  182. >
  183. <view class="callService">
  184. <view class="list-box">
  185. <view
  186. v-for="(item, index) in callList"
  187. :key="index"
  188. class="list-item"
  189. @click="callService(item)"
  190. >
  191. <view class="item-left">
  192. <view class="item-name">{{ item.serviceName }}</view>
  193. </view>
  194. </view>
  195. </view>
  196. </view>
  197. </up-popup>
  198. </view>
  199. </view>
  200. </template>
  201. <script setup>
  202. import { useAppStore } from "@/stores/app";
  203. import { onLoad, onLaunch } from "@dcloudio/uni-app";
  204. import { ref, computed, watch } from "vue";
  205. import { isHttpsImage } from "@/utils/util";
  206. // import { getCustomerServiceList } from "@/api/message";
  207. import { useToast } from "@/hooks/useToast";
  208. import { getOtherUserInfo } from "@/api/user";
  209. const appStore = useAppStore();
  210. const { Toast } = useToast();
  211. // 基础值类型
  212. const userInfo = ref({});
  213. const showPic = ref("");
  214. const encryptedKey = ref("");
  215. const invite_img = ref("");
  216. const invite_code = ref("");
  217. const show = ref(false);
  218. const showInvite = ref(false);
  219. const showOfficial = ref(false);
  220. const official_img = ref("");
  221. const system = ref(false);
  222. const vipImgWidth = ref(0);
  223. const isLogin = ref(false);
  224. const callList = ref([]);
  225. const showCallList = ref(false);
  226. const noticeText = ref("");
  227. const popup = ref(null);
  228. const svipUrl = ref(
  229. "https://sb-admin.oss-cn-shenzhen.aliyuncs.com/crmebimage/public/maintain/2025/08/28/956c1b714a7343a88844c630c9512faf1xcd2jqu1m.gif"
  230. );
  231. // 勋章列表
  232. const medalList = ref([]);
  233. // 勋章提示信息
  234. const medalTips = ref({
  235. title: "",
  236. content: "",
  237. effect: "",
  238. });
  239. // 地址信息
  240. const address = computed(() => {
  241. const address = appStore.$userInfo?.addres || "";
  242. const addressParts = address.split("-");
  243. const targetValue = addressParts[1];
  244. return targetValue;
  245. });
  246. // 订单列表2
  247. const secondOrderList = ref([
  248. {
  249. icon: `https://mp-c7c90a6c-c53b-48dd-bd94-692abc111f89.cdn.bspapp.com/static/lj.png`,
  250. text: "存金",
  251. url: "/pages/order/list",
  252. },
  253. {
  254. icon: `https://mp-c7c90a6c-c53b-48dd-bd94-692abc111f89.cdn.bspapp.com/static/我的/recieve@3x.png`,
  255. text: "回收",
  256. url: "/pageA/recycle/list",
  257. },
  258. ]);
  259. // 功能组1
  260. const group1 = ref([
  261. {
  262. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/address-card-solid%403x.png`,
  263. text: "基本资料",
  264. url: "/pages/personal_info/personal_info",
  265. is_show: false,
  266. width: 46,
  267. height: 70,
  268. },
  269. {
  270. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/user-check-solid%403x.png`,
  271. text: "实名认证",
  272. url: "/pages/users/face_detect/index",
  273. is_show: true,
  274. width: 46,
  275. height: 70,
  276. },
  277. {
  278. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/%E8%B7%AF%E5%BE%84717%403x.png
  279. `,
  280. text: "账号设置",
  281. url: "/pages/change_password/change_password",
  282. is_show: false,
  283. width: 43,
  284. height: 70,
  285. },
  286. {
  287. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/%E8%B7%AF%E5%BE%84716%403x.png
  288. `,
  289. text: "收货地址",
  290. url: "/pages/users/user_address_list/index",
  291. is_show: false,
  292. width: 43,
  293. height: 70,
  294. },
  295. {
  296. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/wallet-solid%403x.png`,
  297. text: "卡包管理",
  298. url: "/pages/users/bank_card_manage/index",
  299. is_show: true,
  300. width: 42,
  301. height: 70,
  302. },
  303. {
  304. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/pelpeo_20251011145117_887_6.png`,
  305. text: "关于我们",
  306. url: "/pages/users/about/index",
  307. is_show: false,
  308. width: 38,
  309. height: 70,
  310. },
  311. {
  312. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/%E7%BB%84779%403x.png
  313. `,
  314. text: "官方公众号",
  315. is_show: false,
  316. width: 46,
  317. height: 70,
  318. },
  319. // {
  320. // icon: `https://mp-ad17e5cd-05c1-4df9-b060-556e25dac130.cdn.bspapp.com/mini/user/加盟我们.png`,
  321. // text: "加盟我们",
  322. // url: "/pageA/user/joinUs/joinUs",
  323. // is_show: true,
  324. // width: 49,
  325. // height: 70,
  326. // },
  327. {
  328. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/%E5%9B%BE%E5%B1%82_x0020_1%403x.png
  329. `,
  330. text: "联系客服",
  331. is_show: false,
  332. width: 37,
  333. height: 70,
  334. url: "callList",
  335. },
  336. {
  337. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/%E5%9B%BE%E5%B1%82_x0020_1%403x.png`,
  338. text: "我的商家",
  339. is_show: false,
  340. width: 37,
  341. height: 70,
  342. url: "/pages/users/my_merchant/index",
  343. },
  344. {
  345. icon: `https://my-go-easy-im.oss-cn-shenzhen.aliyuncs.com/goeasy-im-%E6%B0%B4%E8%B4%9D%E5%95%86%E5%9F%8E/user_icon/%E5%9B%BE%E5%B1%82_x0020_1%403x.png`,
  346. text: "我的钱包",
  347. is_show: false,
  348. width: 37,
  349. height: 70,
  350. url: "/pages/users/vault/index",
  351. },
  352. ]);
  353. onLoad(async () => {
  354. // fetchUserInfo();
  355. });
  356. const medalTip = (item) => {
  357. // 打开弹窗
  358. popup.value.open();
  359. medalTips.value = {
  360. title: item.title,
  361. content: item.content,
  362. effect: item.effect,
  363. };
  364. };
  365. // 获取用户信息
  366. async function fetchUserInfo() {
  367. try {
  368. const { data } = await getOtherUserInfo(appStore.$userInfo.userId);
  369. userInfo.value = data;
  370. console.log("userInfo==>", userInfo.value);
  371. appStore.UPDATE_userPanelInfo(data);
  372. medalList.value = data.medalList;
  373. } catch (error) {
  374. console.error("otherUserinfo", error);
  375. Toast({ title: "获取用户信息失败" });
  376. }
  377. }
  378. const callService = async (item) => {
  379. wx.openCustomerServiceChat({
  380. corpId: item.enterpriseId,
  381. extInfo: {
  382. url: item.serviceLink,
  383. },
  384. });
  385. };
  386. const navigateTo = (url) => {
  387. if (!url) return;
  388. uni.navigateTo({ url });
  389. };
  390. const nativeToOrder = (item) => {
  391. // if (item?.text === "实名认证" && this?.auth_status) {
  392. // console.log(this.auth_status);
  393. // uni.navigateTo("/pageA/faceBioAssay/faceBioSuccess");
  394. // return true;
  395. // }
  396. if (item.text === "联系客服") {
  397. if (!appStore.isLogin) {
  398. Toast({ title: "未登录,请登录后再联系客服" });
  399. setTimeout(() => {
  400. uni.navigateTo({
  401. url: "/pages/users/login/index",
  402. });
  403. }, 1000);
  404. return;
  405. }
  406. showCallList.value = true;
  407. return true;
  408. }
  409. if (item.text === "官方公众号") {
  410. officialClick();
  411. return true;
  412. }
  413. if (item.text === "基本资料") {
  414. uni.navigateTo({
  415. url: "/pageA/user/setting",
  416. success: (res) => {
  417. // 1代表账号设置
  418. res.eventChannel.emit("setting", { setting: 1 });
  419. },
  420. });
  421. }
  422. console.log(item)
  423. uni.navigateTo({ url: item.url });
  424. };
  425. const officialClick = () => {
  426. showOfficial.value = true;
  427. };
  428. function close() {
  429. // 关闭逻辑,设置 show 为 false
  430. showOfficial.value = false;
  431. // console.log("close");
  432. }
  433. const isDg = computed(() => {
  434. if (userInfo.value.joinRoles) {
  435. return userInfo.value?.joinRoles.find((item) => item.roleType == 1);
  436. }
  437. });
  438. const isTjg = computed(() => {
  439. if (userInfo.value.joinRoles) {
  440. return userInfo.value?.joinRoles.find((item) => item.roleType == 2);
  441. }
  442. });
  443. </script>
  444. <style scoped lang="scss">
  445. .dgImg {
  446. margin-top: 2rpx;
  447. }
  448. .upopup-box {
  449. width: 600rpx;
  450. border-radius: 30rpx;
  451. overflow: hidden;
  452. }
  453. .medal-loading {
  454. width: 450rpx;
  455. height: auto;
  456. border-radius: 30rpx;
  457. display: flex;
  458. flex-direction: column;
  459. // align-items: center;
  460. position: relative;
  461. .title {
  462. height: 69rpx;
  463. width: 100%;
  464. border-bottom: 2rpx dashed #c1c1c1;
  465. display: flex;
  466. justify-content: center;
  467. align-items: center;
  468. font-size: 26rpx;
  469. }
  470. .content {
  471. font-size: 26rpx;
  472. margin: 20rpx 20rpx;
  473. text-align: center;
  474. }
  475. .btn-box {
  476. display: flex;
  477. justify-content: center;
  478. align-items: center;
  479. width: 100%;
  480. margin: 10rpx 0;
  481. margin-bottom: 20rpx;
  482. .btn {
  483. // position: absolute;
  484. // left: 50%;
  485. // bottom: 20rpx;
  486. // transform: translateX(-50%);
  487. display: flex;
  488. justify-content: center;
  489. align-items: center;
  490. background-color: #cc9933;
  491. width: 180rpx;
  492. height: 50rpx;
  493. border-radius: 30rpx;
  494. font-size: 26rpx;
  495. color: #ffffff;
  496. }
  497. }
  498. }
  499. .callService {
  500. padding: 20px 10px 0px;
  501. // background-color: #ddcca3;
  502. display: flex;
  503. justify-content: center;
  504. flex-direction: column;
  505. font-size: 16px;
  506. // margin-bottom: 30rpx;
  507. .list-box {
  508. background: #fff;
  509. border-radius: 20px;
  510. .list-item {
  511. width: 100%;
  512. height: 100rpx;
  513. display: flex;
  514. justify-content: center;
  515. align-items: center;
  516. border-bottom: 1px solid #e1e1e1;
  517. }
  518. }
  519. }
  520. .notice-bar-box {
  521. margin-bottom: 10rpx;
  522. }
  523. // 顶部提示
  524. .tips {
  525. width: 650rpx;
  526. height: 48rpx;
  527. background-color: #ffffff;
  528. box-shadow: 0rpx 3rpx 12rpx 0rpx rgba(0, 0, 0, 0.07);
  529. border-radius: 100rpx;
  530. font-family: Source Han Sans CN;
  531. font-size: 22rpx;
  532. color: #666666;
  533. display: flex;
  534. align-items: center;
  535. box-sizing: border-box;
  536. // padding: 0 40rpx;
  537. padding-left: 40rpx;
  538. margin: 30rpx auto;
  539. image {
  540. width: 26rpx;
  541. }
  542. text {
  543. margin-left: 20rpx;
  544. }
  545. }
  546. ::v-deep .uni-noticebar {
  547. box-shadow: 0rpx 3rpx 12rpx 0rpx rgba(0, 0, 0, 0.07);
  548. border-radius: 100rpx;
  549. height: 48rpx !important;
  550. width: 650rpx !important;
  551. justify-content: center;
  552. margin: 0 auto;
  553. // text {
  554. // font-size: 26rpx !important;
  555. // }
  556. }
  557. .orderlist-second {
  558. display: flex;
  559. justify-content: space-between;
  560. .order-box {
  561. flex: 1;
  562. display: flex;
  563. align-items: center;
  564. height: 100rpx;
  565. margin-left: 40rpx;
  566. box-sizing: border-box;
  567. &:nth-child(1) {
  568. border-right: 2rpx dashed #d9d9d9;
  569. }
  570. &:nth-child(2) {
  571. .image {
  572. padding-left: 64rpx;
  573. }
  574. }
  575. .image {
  576. height: 56rpx;
  577. }
  578. .text {
  579. margin-left: 30rpx;
  580. font-size: 28rpx;
  581. color: #000000;
  582. font-family: "Source Han Sans CN";
  583. }
  584. }
  585. }
  586. .menu-group {
  587. width: 100%;
  588. background-color: #ffffff;
  589. padding: 0 40rpx;
  590. border-radius: 20rpx;
  591. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  592. .menu-group-item {
  593. display: flex;
  594. justify-content: space-between;
  595. align-items: center;
  596. height: 95rpx;
  597. border-bottom: 2rpx dashed #c1c1c1;
  598. &:last-child {
  599. border-bottom: none;
  600. }
  601. .image-box {
  602. width: 70rpx;
  603. display: flex;
  604. justify-content: center;
  605. align-items: center;
  606. .menu-img {
  607. width: 46rpx;
  608. margin-left: 20rpx;
  609. // height: 40rpx;
  610. }
  611. }
  612. .menu-item-right {
  613. flex: 1;
  614. display: flex;
  615. justify-content: space-between;
  616. align-items: center;
  617. margin-left: 30rpx;
  618. .menu-item-title {
  619. color: #666666;
  620. font-family: "Source Han Sans CN";
  621. font-size: 26rpx;
  622. }
  623. .menu-btn {
  624. color: #999999;
  625. // font-family: 'Source Han Sans CN';
  626. font-size: 20rpx;
  627. }
  628. }
  629. &:nth-child(5) {
  630. .menu-img {
  631. width: 42rpx;
  632. }
  633. }
  634. }
  635. }
  636. .mycontent {
  637. height: 100vh;
  638. background-image: $uni-bg-primary !important;
  639. position: relative;
  640. z-index: 1;
  641. }
  642. .header {
  643. box-sizing: border-box;
  644. padding-top: 62.5px;
  645. margin-bottom: 28rpx;
  646. height: 100%;
  647. }
  648. .banner {
  649. box-sizing: border-box;
  650. // background: linear-gradient(to bottom, #b7ad94, #fcfcfc);
  651. position: absolute;
  652. top: 0;
  653. left: 0;
  654. width: 100%;
  655. height: 50vh;
  656. z-index: -1;
  657. }
  658. .bar {
  659. display: flex;
  660. justify-content: center;
  661. flex-wrap: wrap;
  662. align-items: center;
  663. box-sizing: border-box;
  664. width: 100%;
  665. padding: 10px;
  666. .barItem {
  667. width: 50%;
  668. box-sizing: border-box;
  669. display: flex;
  670. justify-content: center;
  671. align-items: center;
  672. margin-bottom: 15px;
  673. &:nth-child(odd) {
  674. border-right: 1px solid #5f5f5f;
  675. }
  676. }
  677. }
  678. .userInfo {
  679. margin-top: 80rpx;
  680. display: flex;
  681. margin-bottom: 60rpx;
  682. position: relative;
  683. padding: 0 40rpx;
  684. height: 150rpx;
  685. .avator-box {
  686. width: 150rpx;
  687. height: 100%;
  688. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  689. display: flex;
  690. justify-content: center;
  691. align-items: center;
  692. border-radius: 50%;
  693. .avatar {
  694. width: 100%;
  695. height: 100%;
  696. border-radius: 100%;
  697. flex-shrink: 0;
  698. }
  699. }
  700. .right {
  701. // flex: 1;
  702. margin-left: 15px;
  703. display: flex;
  704. justify-content: space-between;
  705. flex-direction: column;
  706. width: 66%;
  707. // padding: 20rpx 0;
  708. height: 100%;
  709. .name {
  710. width: 100%;
  711. align-items: center;
  712. font-size: 0.9375rem;
  713. font-weight: bold;
  714. white-space: nowrap;
  715. height: 100%;
  716. display: flex;
  717. text-overflow: ellipsis;
  718. flex-wrap: wrap;
  719. justify-content: flex-start;
  720. }
  721. .vip-img {
  722. width: 100%;
  723. display: flex;
  724. margin-top: 8rpx;
  725. image {
  726. height: 27rpx;
  727. }
  728. }
  729. .left {
  730. margin-right: 10px;
  731. display: flex;
  732. }
  733. .detail {
  734. width: 100%;
  735. color: #5f5f5f;
  736. display: flex;
  737. flex-wrap: wrap;
  738. justify-content: space-between;
  739. align-items: center;
  740. font-size: 24rpx;
  741. font-weight: 500;
  742. margin-top: 20rpx;
  743. .detaik-item {
  744. width: 33%;
  745. // margin-bottom: rpx;
  746. }
  747. }
  748. .progress-box {
  749. width: 90%;
  750. padding-top: 14px;
  751. }
  752. }
  753. .edit {
  754. width: 20px;
  755. height: 20px;
  756. background-image: url(https://mp-ad17e5cd-05c1-4df9-b060-556e25dac130.cdn.bspapp.com/mini/base/bg.png);
  757. background-position: -140px -279px;
  758. }
  759. }
  760. .block {
  761. padding: 0px 20px;
  762. margin-bottom: 10px;
  763. //height: calc(100vh - 750rpx);
  764. display: flex;
  765. justify-content: center;
  766. align-items: center;
  767. margin-top: 73rpx;
  768. .header {
  769. padding-left: 5px;
  770. position: relative;
  771. display: flex;
  772. align-items: center;
  773. justify-content: space-between;
  774. padding: 10px 10px;
  775. border-radius: 5px;
  776. background-color: #fff;
  777. margin-bottom: 10rpx;
  778. width: 100%;
  779. &::before {
  780. position: absolute;
  781. top: 50%;
  782. transform: translatey(-40%);
  783. left: 0;
  784. content: "";
  785. width: 2px;
  786. height: 18px;
  787. background-color: #daa520;
  788. }
  789. .title {
  790. font-weight: 500;
  791. font-size: 32rpx;
  792. font-family: "黑体";
  793. }
  794. }
  795. .group-item {
  796. margin: 10rpx;
  797. padding: 20rpx 10rpx;
  798. padding-left: 0;
  799. display: flex;
  800. justify-content: space-between;
  801. align-items: center;
  802. border-bottom: 1px dashed #cbcbcb;
  803. &:last-child {
  804. border-bottom: none;
  805. }
  806. .group-value {
  807. display: flex;
  808. align-items: center;
  809. width: 100%;
  810. .group-img-box {
  811. margin-right: 10rpx;
  812. height: 90rpx;
  813. .group-img {
  814. height: 100%;
  815. }
  816. .new-group-img {
  817. // height: 80rpx;
  818. width: 23px;
  819. height: 18px;
  820. }
  821. }
  822. .group-title-box {
  823. // width: 450rpx;
  824. flex: 1;
  825. padding-right: 20rpx;
  826. .group-title {
  827. margin-top: 5rpx;
  828. margin-left: 8rpx;
  829. font-size: 28rpx;
  830. color: #666666;
  831. font-weight: 500;
  832. font-family: "黑体";
  833. margin-top: 10rpx;
  834. }
  835. }
  836. .group-label {
  837. font-size: 20rpx;
  838. margin-top: 6rpx;
  839. color: #989898;
  840. font-weight: 400;
  841. font-family: "宋体";
  842. line-height: 30rpx;
  843. }
  844. }
  845. }
  846. .group-btn-box {
  847. width: 15rpx;
  848. height: 100%;
  849. display: flex;
  850. justify-content: right;
  851. align-items: center;
  852. .group-btn {
  853. color: #999999;
  854. font-size: 28rpx;
  855. margin-top: 10rpx;
  856. }
  857. }
  858. }
  859. .grouplist {
  860. display: flex;
  861. flex-wrap: wrap;
  862. margin-top: 30rpx;
  863. .listitem {
  864. display: flex;
  865. flex-wrap: wrap;
  866. justify-content: center;
  867. align-items: center;
  868. width: 150rpx;
  869. // height: 150rpx;
  870. margin-bottom: 50rpx;
  871. }
  872. .list-img,
  873. .list-tit {
  874. display: flex;
  875. justify-content: center;
  876. width: 100%;
  877. }
  878. .list-tit {
  879. font-size: 26rpx;
  880. color: #1c1c1c;
  881. font-weight: 400;
  882. margin-top: 15rpx;
  883. }
  884. }
  885. .footer {
  886. width: 100%;
  887. text-align: center;
  888. bottom: 40px;
  889. font-size: 12px;
  890. color: #b8b8b8;
  891. }
  892. // 勋章
  893. .medal-content {
  894. padding: 0px 20px;
  895. margin-bottom: 10px;
  896. display: flex;
  897. justify-content: space-between;
  898. .one-gird {
  899. .medalIamge {
  900. height: 67rpx;
  901. }
  902. }
  903. }
  904. .member-level {
  905. position: relative;
  906. margin-left: 14px;
  907. width: 60px;
  908. height: 16px;
  909. line-height: 16px;
  910. border-radius: 0 8px 8px 0;
  911. white-space: nowrap;
  912. }
  913. .myinvite {
  914. display: flex;
  915. justify-content: center;
  916. align-items: center;
  917. flex-direction: column;
  918. position: relative;
  919. .share-button {
  920. bottom: 54px;
  921. height: 34px;
  922. width: 120px;
  923. background-color: transparent;
  924. position: absolute;
  925. }
  926. }
  927. .loginPoup {
  928. display: flex;
  929. align-items: center;
  930. justify-content: center;
  931. flex-direction: column;
  932. /* #ifdef H5 */
  933. /* #endif */
  934. padding: 20px 0 50px;
  935. .loginTitle {
  936. font-size: 32rpx;
  937. font-weight: 600;
  938. }
  939. .xbtn {
  940. width: 300px;
  941. margin-top: 10px;
  942. border-radius: 40px;
  943. background-color: #b5aa90 !important;
  944. color: #ffffff;
  945. }
  946. .password {
  947. margin-top: 20px;
  948. font-size: 14px;
  949. }
  950. }
  951. .isOpen {
  952. height: 50px;
  953. background-color: #b9b9b9;
  954. position: fixed;
  955. bottom: 0px;
  956. /* #ifdef H5 */
  957. bottom: 50px;
  958. /* #endif */
  959. width: 100%;
  960. color: #f8f8f8;
  961. display: flex;
  962. justify-content: center;
  963. align-items: center;
  964. }
  965. </style>