index.vue 24 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048
  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. url: "/pages/users/user_asset/asset_info/asset_info",
  352. },
  353. ]);
  354. onLoad(async () => {
  355. // fetchUserInfo();
  356. });
  357. const medalTip = (item) => {
  358. // 打开弹窗
  359. popup.value.open();
  360. medalTips.value = {
  361. title: item.title,
  362. content: item.content,
  363. effect: item.effect,
  364. };
  365. };
  366. // 获取用户信息
  367. async function fetchUserInfo() {
  368. try {
  369. const { data } = await getOtherUserInfo(appStore.$userInfo.userId);
  370. userInfo.value = data;
  371. console.log("userInfo==>", userInfo.value);
  372. appStore.UPDATE_userPanelInfo(data);
  373. medalList.value = data.medalList;
  374. } catch (error) {
  375. console.error("otherUserinfo", error);
  376. Toast({ title: "获取用户信息失败" });
  377. }
  378. }
  379. const callService = async (item) => {
  380. wx.openCustomerServiceChat({
  381. corpId: item.enterpriseId,
  382. extInfo: {
  383. url: item.serviceLink,
  384. },
  385. });
  386. };
  387. const navigateTo = (url) => {
  388. if (!url) return;
  389. uni.navigateTo({ url });
  390. };
  391. const nativeToOrder = (item) => {
  392. // if (item?.text === "实名认证" && this?.auth_status) {
  393. // console.log(this.auth_status);
  394. // uni.navigateTo("/pageA/faceBioAssay/faceBioSuccess");
  395. // return true;
  396. // }
  397. if (item.text === "联系客服") {
  398. if (!appStore.isLogin) {
  399. Toast({ title: "未登录,请登录后再联系客服" });
  400. setTimeout(() => {
  401. uni.navigateTo({
  402. url: "/pages/users/login/index",
  403. });
  404. }, 1000);
  405. return;
  406. }
  407. showCallList.value = true;
  408. return true;
  409. }
  410. if (item.text === "官方公众号") {
  411. officialClick();
  412. return true;
  413. }
  414. if (item.text === "基本资料") {
  415. uni.navigateTo({
  416. url: "/pageA/user/setting",
  417. success: (res) => {
  418. // 1代表账号设置
  419. res.eventChannel.emit("setting", { setting: 1 });
  420. },
  421. });
  422. }
  423. console.log(item)
  424. uni.navigateTo({ url: item.url });
  425. };
  426. const officialClick = () => {
  427. showOfficial.value = true;
  428. };
  429. function close() {
  430. // 关闭逻辑,设置 show 为 false
  431. showOfficial.value = false;
  432. // console.log("close");
  433. }
  434. const isDg = computed(() => {
  435. if (userInfo.value.joinRoles) {
  436. return userInfo.value?.joinRoles.find((item) => item.roleType == 1);
  437. }
  438. });
  439. const isTjg = computed(() => {
  440. if (userInfo.value.joinRoles) {
  441. return userInfo.value?.joinRoles.find((item) => item.roleType == 2);
  442. }
  443. });
  444. </script>
  445. <style scoped lang="scss">
  446. .dgImg {
  447. margin-top: 2rpx;
  448. }
  449. .upopup-box {
  450. width: 600rpx;
  451. border-radius: 30rpx;
  452. overflow: hidden;
  453. }
  454. .medal-loading {
  455. width: 450rpx;
  456. height: auto;
  457. border-radius: 30rpx;
  458. display: flex;
  459. flex-direction: column;
  460. // align-items: center;
  461. position: relative;
  462. .title {
  463. height: 69rpx;
  464. width: 100%;
  465. border-bottom: 2rpx dashed #c1c1c1;
  466. display: flex;
  467. justify-content: center;
  468. align-items: center;
  469. font-size: 26rpx;
  470. }
  471. .content {
  472. font-size: 26rpx;
  473. margin: 20rpx 20rpx;
  474. text-align: center;
  475. }
  476. .btn-box {
  477. display: flex;
  478. justify-content: center;
  479. align-items: center;
  480. width: 100%;
  481. margin: 10rpx 0;
  482. margin-bottom: 20rpx;
  483. .btn {
  484. // position: absolute;
  485. // left: 50%;
  486. // bottom: 20rpx;
  487. // transform: translateX(-50%);
  488. display: flex;
  489. justify-content: center;
  490. align-items: center;
  491. background-color: #cc9933;
  492. width: 180rpx;
  493. height: 50rpx;
  494. border-radius: 30rpx;
  495. font-size: 26rpx;
  496. color: #ffffff;
  497. }
  498. }
  499. }
  500. .callService {
  501. padding: 20px 10px 0px;
  502. // background-color: #ddcca3;
  503. display: flex;
  504. justify-content: center;
  505. flex-direction: column;
  506. font-size: 16px;
  507. // margin-bottom: 30rpx;
  508. .list-box {
  509. background: #fff;
  510. border-radius: 20px;
  511. .list-item {
  512. width: 100%;
  513. height: 100rpx;
  514. display: flex;
  515. justify-content: center;
  516. align-items: center;
  517. border-bottom: 1px solid #e1e1e1;
  518. }
  519. }
  520. }
  521. .notice-bar-box {
  522. margin-bottom: 10rpx;
  523. }
  524. // 顶部提示
  525. .tips {
  526. width: 650rpx;
  527. height: 48rpx;
  528. background-color: #ffffff;
  529. box-shadow: 0rpx 3rpx 12rpx 0rpx rgba(0, 0, 0, 0.07);
  530. border-radius: 100rpx;
  531. font-family: Source Han Sans CN;
  532. font-size: 22rpx;
  533. color: #666666;
  534. display: flex;
  535. align-items: center;
  536. box-sizing: border-box;
  537. // padding: 0 40rpx;
  538. padding-left: 40rpx;
  539. margin: 30rpx auto;
  540. image {
  541. width: 26rpx;
  542. }
  543. text {
  544. margin-left: 20rpx;
  545. }
  546. }
  547. ::v-deep .uni-noticebar {
  548. box-shadow: 0rpx 3rpx 12rpx 0rpx rgba(0, 0, 0, 0.07);
  549. border-radius: 100rpx;
  550. height: 48rpx !important;
  551. width: 650rpx !important;
  552. justify-content: center;
  553. margin: 0 auto;
  554. // text {
  555. // font-size: 26rpx !important;
  556. // }
  557. }
  558. .orderlist-second {
  559. display: flex;
  560. justify-content: space-between;
  561. .order-box {
  562. flex: 1;
  563. display: flex;
  564. align-items: center;
  565. height: 100rpx;
  566. margin-left: 40rpx;
  567. box-sizing: border-box;
  568. &:nth-child(1) {
  569. border-right: 2rpx dashed #d9d9d9;
  570. }
  571. &:nth-child(2) {
  572. .image {
  573. padding-left: 64rpx;
  574. }
  575. }
  576. .image {
  577. height: 56rpx;
  578. }
  579. .text {
  580. margin-left: 30rpx;
  581. font-size: 28rpx;
  582. color: #000000;
  583. font-family: "Source Han Sans CN";
  584. }
  585. }
  586. }
  587. .menu-group {
  588. width: 100%;
  589. background-color: #ffffff;
  590. padding: 0 40rpx;
  591. border-radius: 20rpx;
  592. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  593. .menu-group-item {
  594. display: flex;
  595. justify-content: space-between;
  596. align-items: center;
  597. height: 95rpx;
  598. border-bottom: 2rpx dashed #c1c1c1;
  599. &:last-child {
  600. border-bottom: none;
  601. }
  602. .image-box {
  603. width: 70rpx;
  604. display: flex;
  605. justify-content: center;
  606. align-items: center;
  607. .menu-img {
  608. width: 46rpx;
  609. margin-left: 20rpx;
  610. // height: 40rpx;
  611. }
  612. }
  613. .menu-item-right {
  614. flex: 1;
  615. display: flex;
  616. justify-content: space-between;
  617. align-items: center;
  618. margin-left: 30rpx;
  619. .menu-item-title {
  620. color: #666666;
  621. font-family: "Source Han Sans CN";
  622. font-size: 26rpx;
  623. }
  624. .menu-btn {
  625. color: #999999;
  626. // font-family: 'Source Han Sans CN';
  627. font-size: 20rpx;
  628. }
  629. }
  630. &:nth-child(5) {
  631. .menu-img {
  632. width: 42rpx;
  633. }
  634. }
  635. }
  636. }
  637. .mycontent {
  638. height: 100vh;
  639. background-image: $uni-bg-primary !important;
  640. position: relative;
  641. z-index: 1;
  642. }
  643. .header {
  644. box-sizing: border-box;
  645. padding-top: 62.5px;
  646. margin-bottom: 28rpx;
  647. height: 100%;
  648. }
  649. .banner {
  650. box-sizing: border-box;
  651. // background: linear-gradient(to bottom, #b7ad94, #fcfcfc);
  652. position: absolute;
  653. top: 0;
  654. left: 0;
  655. width: 100%;
  656. height: 50vh;
  657. z-index: -1;
  658. }
  659. .bar {
  660. display: flex;
  661. justify-content: center;
  662. flex-wrap: wrap;
  663. align-items: center;
  664. box-sizing: border-box;
  665. width: 100%;
  666. padding: 10px;
  667. .barItem {
  668. width: 50%;
  669. box-sizing: border-box;
  670. display: flex;
  671. justify-content: center;
  672. align-items: center;
  673. margin-bottom: 15px;
  674. &:nth-child(odd) {
  675. border-right: 1px solid #5f5f5f;
  676. }
  677. }
  678. }
  679. .userInfo {
  680. margin-top: 80rpx;
  681. display: flex;
  682. margin-bottom: 60rpx;
  683. position: relative;
  684. padding: 0 40rpx;
  685. height: 150rpx;
  686. .avator-box {
  687. width: 150rpx;
  688. height: 100%;
  689. box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  690. display: flex;
  691. justify-content: center;
  692. align-items: center;
  693. border-radius: 50%;
  694. .avatar {
  695. width: 100%;
  696. height: 100%;
  697. border-radius: 100%;
  698. flex-shrink: 0;
  699. }
  700. }
  701. .right {
  702. // flex: 1;
  703. margin-left: 15px;
  704. display: flex;
  705. justify-content: space-between;
  706. flex-direction: column;
  707. width: 66%;
  708. // padding: 20rpx 0;
  709. height: 100%;
  710. .name {
  711. width: 100%;
  712. align-items: center;
  713. font-size: 0.9375rem;
  714. font-weight: bold;
  715. white-space: nowrap;
  716. height: 100%;
  717. display: flex;
  718. text-overflow: ellipsis;
  719. flex-wrap: wrap;
  720. justify-content: flex-start;
  721. }
  722. .vip-img {
  723. width: 100%;
  724. display: flex;
  725. margin-top: 8rpx;
  726. image {
  727. height: 27rpx;
  728. }
  729. }
  730. .left {
  731. margin-right: 10px;
  732. display: flex;
  733. }
  734. .detail {
  735. width: 100%;
  736. color: #5f5f5f;
  737. display: flex;
  738. flex-wrap: wrap;
  739. justify-content: space-between;
  740. align-items: center;
  741. font-size: 24rpx;
  742. font-weight: 500;
  743. margin-top: 20rpx;
  744. .detaik-item {
  745. width: 33%;
  746. // margin-bottom: rpx;
  747. }
  748. }
  749. .progress-box {
  750. width: 90%;
  751. padding-top: 14px;
  752. }
  753. }
  754. .edit {
  755. width: 20px;
  756. height: 20px;
  757. background-image: url(https://mp-ad17e5cd-05c1-4df9-b060-556e25dac130.cdn.bspapp.com/mini/base/bg.png);
  758. background-position: -140px -279px;
  759. }
  760. }
  761. .block {
  762. padding: 0px 20px;
  763. margin-bottom: 10px;
  764. //height: calc(100vh - 750rpx);
  765. display: flex;
  766. justify-content: center;
  767. align-items: center;
  768. margin-top: 73rpx;
  769. .header {
  770. padding-left: 5px;
  771. position: relative;
  772. display: flex;
  773. align-items: center;
  774. justify-content: space-between;
  775. padding: 10px 10px;
  776. border-radius: 5px;
  777. background-color: #fff;
  778. margin-bottom: 10rpx;
  779. width: 100%;
  780. &::before {
  781. position: absolute;
  782. top: 50%;
  783. transform: translatey(-40%);
  784. left: 0;
  785. content: "";
  786. width: 2px;
  787. height: 18px;
  788. background-color: #daa520;
  789. }
  790. .title {
  791. font-weight: 500;
  792. font-size: 32rpx;
  793. font-family: "黑体";
  794. }
  795. }
  796. .group-item {
  797. margin: 10rpx;
  798. padding: 20rpx 10rpx;
  799. padding-left: 0;
  800. display: flex;
  801. justify-content: space-between;
  802. align-items: center;
  803. border-bottom: 1px dashed #cbcbcb;
  804. &:last-child {
  805. border-bottom: none;
  806. }
  807. .group-value {
  808. display: flex;
  809. align-items: center;
  810. width: 100%;
  811. .group-img-box {
  812. margin-right: 10rpx;
  813. height: 90rpx;
  814. .group-img {
  815. height: 100%;
  816. }
  817. .new-group-img {
  818. // height: 80rpx;
  819. width: 23px;
  820. height: 18px;
  821. }
  822. }
  823. .group-title-box {
  824. // width: 450rpx;
  825. flex: 1;
  826. padding-right: 20rpx;
  827. .group-title {
  828. margin-top: 5rpx;
  829. margin-left: 8rpx;
  830. font-size: 28rpx;
  831. color: #666666;
  832. font-weight: 500;
  833. font-family: "黑体";
  834. margin-top: 10rpx;
  835. }
  836. }
  837. .group-label {
  838. font-size: 20rpx;
  839. margin-top: 6rpx;
  840. color: #989898;
  841. font-weight: 400;
  842. font-family: "宋体";
  843. line-height: 30rpx;
  844. }
  845. }
  846. }
  847. .group-btn-box {
  848. width: 15rpx;
  849. height: 100%;
  850. display: flex;
  851. justify-content: right;
  852. align-items: center;
  853. .group-btn {
  854. color: #999999;
  855. font-size: 28rpx;
  856. margin-top: 10rpx;
  857. }
  858. }
  859. }
  860. .grouplist {
  861. display: flex;
  862. flex-wrap: wrap;
  863. margin-top: 30rpx;
  864. .listitem {
  865. display: flex;
  866. flex-wrap: wrap;
  867. justify-content: center;
  868. align-items: center;
  869. width: 150rpx;
  870. // height: 150rpx;
  871. margin-bottom: 50rpx;
  872. }
  873. .list-img,
  874. .list-tit {
  875. display: flex;
  876. justify-content: center;
  877. width: 100%;
  878. }
  879. .list-tit {
  880. font-size: 26rpx;
  881. color: #1c1c1c;
  882. font-weight: 400;
  883. margin-top: 15rpx;
  884. }
  885. }
  886. .footer {
  887. width: 100%;
  888. text-align: center;
  889. bottom: 40px;
  890. font-size: 12px;
  891. color: #b8b8b8;
  892. }
  893. // 勋章
  894. .medal-content {
  895. padding: 0px 20px;
  896. margin-bottom: 10px;
  897. display: flex;
  898. justify-content: space-between;
  899. .one-gird {
  900. .medalIamge {
  901. height: 67rpx;
  902. }
  903. }
  904. }
  905. .member-level {
  906. position: relative;
  907. margin-left: 14px;
  908. width: 60px;
  909. height: 16px;
  910. line-height: 16px;
  911. border-radius: 0 8px 8px 0;
  912. white-space: nowrap;
  913. }
  914. .myinvite {
  915. display: flex;
  916. justify-content: center;
  917. align-items: center;
  918. flex-direction: column;
  919. position: relative;
  920. .share-button {
  921. bottom: 54px;
  922. height: 34px;
  923. width: 120px;
  924. background-color: transparent;
  925. position: absolute;
  926. }
  927. }
  928. .loginPoup {
  929. display: flex;
  930. align-items: center;
  931. justify-content: center;
  932. flex-direction: column;
  933. /* #ifdef H5 */
  934. /* #endif */
  935. padding: 20px 0 50px;
  936. .loginTitle {
  937. font-size: 32rpx;
  938. font-weight: 600;
  939. }
  940. .xbtn {
  941. width: 300px;
  942. margin-top: 10px;
  943. border-radius: 40px;
  944. background-color: #b5aa90 !important;
  945. color: #ffffff;
  946. }
  947. .password {
  948. margin-top: 20px;
  949. font-size: 14px;
  950. }
  951. }
  952. .isOpen {
  953. height: 50px;
  954. background-color: #b9b9b9;
  955. position: fixed;
  956. bottom: 0px;
  957. /* #ifdef H5 */
  958. bottom: 50px;
  959. /* #endif */
  960. width: 100%;
  961. color: #f8f8f8;
  962. display: flex;
  963. justify-content: center;
  964. align-items: center;
  965. }
  966. </style>