index.vue 23 KB

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