wode.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897
  1. <template>
  2. <view>
  3. <view class="header">
  4. <DtCustomBar title="我的"></DtCustomBar>
  5. <view style="display: flex;align-items: center;margin: 0 30upx;">
  6. <view class="content" style="display: flex;" v-if="vuex_isAuth">
  7. <view class="userinfo-avatar">
  8. <open-data type="userAvatarUrl"></open-data>
  9. </view>
  10. <view class="center text-white margin-left-10" style="font-size: 34 rpx ;">
  11. <text >{{username || '微信用户'}}</text>
  12. </view>
  13. </view>
  14. <view class="content" style="display: flex;" v-else @click="goLogin()">
  15. <image class="userinfo-avatar" style="border: none;"
  16. src="https://wuye.nxzhsq.cn/oss/group1/M00/00/01/iwlnq1_AYZqAb30pAAAQNvkj3Wk302.png" mode="">
  17. </image>
  18. <view class="center text-white margin-left-10" style="font-size: 30rpx;">
  19. <text>用户未登录</text>
  20. </view>
  21. </view>
  22. </view>
  23. <view class="mine_order_statue">
  24. <view class="cu-list grid col-4 no-border margin-top-sm">
  25. <view class="cu-item" @click="tapToMenu(item)" v-for="(item,index) in gridList" :key="index">
  26. <view class="grid-icon ">
  27. <image style="width: 56rpx;height: 56rpx;" :src="item.icon" />
  28. </view>
  29. <view class="cu-tag bg-orange badge" v-if="item.badge>0">{{item.badge}}</view>
  30. <text style="font-size: 22rpx;font-family:Sans-serif">{{item.title}}</text>
  31. </view>
  32. </view>
  33. </view>
  34. <view class="item_list">
  35. <view class="item" v-if="item.path=='logout'?vuex_isAuth:true" v-for="(item, index) in systemItemList"
  36. :key="index" @tap="tapToMenu(item)">
  37. <view class="item_content">
  38. <image :src="item.itemIcon"></image>
  39. <text>{{ item.itemName }}</text>
  40. </view>
  41. <view class="">
  42. <text v-if="index==0" style="padding-right: 16rpx;font-size: 26rpx;"
  43. class="text-red">{{authStatus}}</text>
  44. <image src="https://szsq.nxzhsq.cn/community/miniofile/image/arrow.png"></image>
  45. </view>
  46. </view>
  47. </view>
  48. <view class="bg-white" style="80rpx">
  49. </view>
  50. </view>
  51. <DtService />
  52. </view>
  53. </template>
  54. <script>
  55. var app = getApp()
  56. import DtService from '../../comps/dt_service.vue';
  57. import DtCustomBar from '../../comps/dt_custom_bar.vue'
  58. export default {
  59. components: {
  60. DtService,
  61. DtCustomBar
  62. },
  63. data() {
  64. return {
  65. height: '',
  66. //todo
  67. gridList: [{
  68. icon: '../../static/wode/renliang.png',
  69. title: "通行人脸",
  70. badge: 0,
  71. auth: true,
  72. path: '/pages/uploadFace/uploadFace',
  73. },
  74. {
  75. icon: '../../static/wode/churu.png',
  76. title: "出入记录",
  77. badge: 0,
  78. auth: true,
  79. path: '/pages/wode/travelRecord/travelRecord',
  80. },
  81. {
  82. icon: '../../static/wode/wuye.png',
  83. title: "我的报修",
  84. badge: 0,
  85. auth: true,
  86. path: '../services/property/list/list'
  87. },
  88. {
  89. icon: '../../static/wode/contact.png',
  90. title: "联系物业",
  91. badge: 0,
  92. auth: false,
  93. path: "联系物业"
  94. }
  95. ],
  96. isFirst: false,
  97. //社区 begin
  98. userInfo: null,
  99. //微信用户信息
  100. state: null,
  101. anyHousePass: false,
  102. //社区end
  103. systemItemList: [{
  104. itemName: '住户认证',
  105. itemIcon: '/static/wode/renzheng.png',
  106. auth: true,
  107. path: "myInfo/myInfo"
  108. },
  109. {
  110. itemName: '问题反馈',
  111. auth: true,
  112. itemIcon: '/static/wode/fankui.png',
  113. path: "./feedback/feedback",
  114. index: 10
  115. },
  116. // {
  117. // itemName: '帮助中心',
  118. // auth: false,
  119. // path: "direction/direction",
  120. // itemIcon: '/static/wode/shuoming.png',
  121. // index: 11
  122. // },
  123. {
  124. itemName: '系统设置',
  125. auth: false,
  126. path: "/pagesM/pages/mine_setting",
  127. itemIcon: '/static/wode/setting.png',
  128. index: 12
  129. },
  130. {
  131. itemName: '退出登录',
  132. auth: false,
  133. path: "logout",
  134. itemIcon: '/static/wode/logout.png',
  135. index: 12,
  136. }
  137. ],
  138. //商城绑定的手机号
  139. shopPhone: '',
  140. memberId: '',
  141. dataDetail: {},
  142. orderStatusNum: {},
  143. userDetail: {},
  144. isLogin: false,
  145. };
  146. },
  147. computed: {
  148. authStatus: {
  149. get() {
  150. if (this.state == 0 && this.anyHousePass == false) {
  151. return "未认证"
  152. } else if (this.state == 1 && this.anyHousePass == false) {
  153. return "待审核"
  154. } else if (this.state == 2 || this.anyHousePass == true) {
  155. return "已认证"
  156. } else {
  157. return "未注册"
  158. }
  159. }
  160. },
  161. username: {
  162. get() {
  163. if (this.$isEmpty(getApp().globalData.member)) {
  164. if (this.$isEmpty(this.userDetail.username)) {
  165. return this.shopPhone
  166. } else {
  167. return this.userDetail.username
  168. }
  169. } else {
  170. return getApp().globalData.member.name
  171. }
  172. }
  173. }
  174. },
  175. methods: {
  176. goLogin() {
  177. uni.reLaunch({
  178. url: "/pages/index/index"
  179. })
  180. },
  181. async tapGetUserInfo(e) {
  182. if (e.detail.errMsg == 'getUserInfo:ok') {
  183. let userInfo = e.detail.userInfo;
  184. let resp = await this.$api.updateIcon({
  185. _isShowLoading: true,
  186. userId: this.memberId,
  187. avatar: userInfo.avatarUrl
  188. });
  189. this.userDetail.avatar = userInfo.avatarUrl;
  190. }
  191. },
  192. showLogin() {
  193. this.$refs.dialogLogin.show();
  194. },
  195. onSignIn(resp) {
  196. this.shopPhone = this.$auth.getMineBase().user.mobile || ''
  197. console.log(143, resp);
  198. this.onPullDownRefreshPage();
  199. },
  200. tapToWhich(aimUrl) {
  201. if (!this.$auth.isAuth) {
  202. this.showLogin();
  203. return;
  204. }
  205. uni.navigateTo({
  206. url: aimUrl
  207. });
  208. },
  209. tapToOrder() {
  210. this.$u.toast('暂未开放')
  211. return
  212. if (!this.$auth.isAuth) {
  213. this.showLogin();
  214. return;
  215. }
  216. uni.navigateTo({
  217. url: '/pagesM/pages/mine_order_list'
  218. });
  219. },
  220. tapToCar() {
  221. this.$u.toast('暂未开放')
  222. return
  223. if (!this.$auth.isAuth) {
  224. this.showLogin();
  225. return;
  226. }
  227. uni.navigateTo({
  228. url: '/pagesM/pages/shop_car'
  229. })
  230. },
  231. onShareAppMessage: function(e) {
  232. return {
  233. path: '/pagesM/pages/home'
  234. }
  235. },
  236. tapHeadMenu(index) {
  237. let url;
  238. if (index == 0) {
  239. url = '/pagesM/pages/coupon_list'
  240. } else if (index == 1) {
  241. url = '/pagesM/pages/mine_collection'
  242. } else if (index == 2) {
  243. url = '/pagesM/pages/browse_records'
  244. }
  245. uni.navigateTo({
  246. url: url
  247. });
  248. },
  249. logout() {
  250. uni.showModal({
  251. title: "提示",
  252. content: "是否退出登录?",
  253. success: (res) => {
  254. if (res.confirm) {
  255. uni.clearStorage()
  256. this.$u.vuex('vuex_isAuth', false)
  257. this.$u.vuex('vuex_member', null)
  258. this.$u.vuex('vuex_own_room_list', null)
  259. this.$u.vuex('vuex_auth_audit_count', 0)
  260. this.$u.vuex('vuex_relationshipType', -1)
  261. app.globalData.member = null
  262. app.globalData.userInfo = null
  263. this.state = null,
  264. this.anyHousePass = false
  265. this.onLoadPage()
  266. this.showPage()
  267. }
  268. }
  269. })
  270. },
  271. tapToMenu(item) {
  272. if (item.path == 'logout') {
  273. this.logout()
  274. return
  275. }
  276. if (item.path == '联系物业') {
  277. let phone = uni.getStorageSync("personTel")
  278. if (this.$isEmpty(phone)) {
  279. this.$u.toast('暂无电话')
  280. } else {
  281. this.makePhoneCall(phone);
  282. }
  283. return
  284. }
  285. if (!item.auth) {
  286. uni.navigateTo({
  287. url: item.path
  288. })
  289. return
  290. }
  291. if (this.vuex_isAuth) {
  292. if (this.buttonMethod()) {
  293. uni.navigateTo({
  294. url: item.path
  295. })
  296. }
  297. } else {
  298. this.goLogin()
  299. }
  300. },
  301. tapToMenuOld(index) {
  302. let url = ''
  303. switch (index) {
  304. case 1:
  305. //商城订单
  306. this.tapToOrder()
  307. break;
  308. case 2:
  309. //购物车
  310. this.tapToCar()
  311. break;
  312. case 3:
  313. // 我的报修
  314. if (this.buttonMethod()) {
  315. uni.navigateTo({
  316. url: '../services/property/list/list'
  317. })
  318. }
  319. break;
  320. case 4:
  321. // 联系物业
  322. let phone = uni.getStorageSync("personTel")
  323. if (this.$isEmpty(phone)) {
  324. this.$u.toast('暂无电话')
  325. } else {
  326. this.makePhoneCall(phone);
  327. }
  328. break;
  329. case 5:
  330. //物业缴费
  331. this.$u.toast('暂未开放')
  332. break;
  333. case 6:
  334. //住户认证
  335. if (this.buttonMethod()) {
  336. uni.navigateTo({
  337. url: "myInfo/myInfo"
  338. })
  339. }
  340. break;
  341. case 7:
  342. // 通行人脸
  343. if (this.buttonMethod()) {
  344. uni.navigateTo({
  345. url: "/pages/uploadFace/uploadFace"
  346. })
  347. }
  348. break;
  349. case 8:
  350. // 身份信息
  351. uni.showToast({
  352. title: "暂未开发",
  353. icon: "none"
  354. })
  355. break;
  356. case 9:
  357. // 收货地址
  358. url = '/pagesM/pages/address_list'
  359. break;
  360. case 10:
  361. // 问题反馈
  362. url = "./feedback/feedback"
  363. break;
  364. case 11:
  365. // 帮助中心
  366. url = "direction/direction"
  367. break;
  368. case 12:
  369. // 设置
  370. url = "/pagesM/pages/mine_setting"
  371. break;
  372. case 13:
  373. //出入记录
  374. if (this.buttonMethod()) {
  375. uni.navigateTo({
  376. url: "travelRecord/travelRecord"
  377. })
  378. }
  379. break;
  380. default:
  381. break;
  382. }
  383. if (url != '') {
  384. uni.navigateTo({
  385. url: url,
  386. });
  387. }
  388. },
  389. async getMyBaseDatas() {
  390. let resp = await this.$api.getMyBaseDatas({
  391. _isReject: true,
  392. _isPull: this.isPull,
  393. memberId: this.memberId
  394. });
  395. console.log(resp)
  396. this.$auth.getMineBase(resp);
  397. this.dataDetail = resp;
  398. this.orderStatusNum = resp.orderStatusNum || {};
  399. this.userDetail = resp.user || {};
  400. },
  401. getPageCtx(idx = 0) {
  402. let pages = getCurrentPages()
  403. if (pages.length > 0) {
  404. return pages[pages.length - 1 - idx] || {}
  405. }
  406. return {}
  407. },
  408. onLoadPage() {
  409. wx.hideShareMenu();
  410. this.communityInitData()
  411. this.memberId = this.$auth.getMemberId();
  412. // this.memberId = this.$auth.getMemberId();
  413. },
  414. // 社区 begin
  415. communityInitData() {
  416. var that = this; //从全局变量中获取用户信息
  417. if (app.globalData.member) {
  418. that.setData({
  419. state: app.globalData.member.state,
  420. anyHousePass: app.globalData.anyHousePass
  421. });
  422. }
  423. },
  424. login() {
  425. var that = this; //从全局变量中获取用户信息
  426. if (app.globalData.userInfo == null) {
  427. uni.login({
  428. success: function() {
  429. uni.getUserInfo({
  430. success: function(res) {
  431. console.log(res);
  432. that.isLogin = true
  433. app.globalData.userInfo = res.userInfo;
  434. that.setData({
  435. userInfo: res.userInfo
  436. });
  437. }
  438. });
  439. }
  440. });
  441. } else {
  442. that.isLogin = true
  443. that.setData({
  444. userInfo: app.globalData.userInfo
  445. });
  446. }
  447. if (app.globalData.member) {
  448. that.setData({
  449. state: app.globalData.member.state,
  450. anyHousePass: app.globalData.anyHousePass
  451. });
  452. }
  453. },
  454. //用户认证信息
  455. buttonMethod: function() {
  456. var that = this; //会员认证状态:{ 0:未认证,1:待审审核,2:已认证 }
  457. var member = app.globalData.member;
  458. var anyHousePass = app.globalData.anyHousePass;
  459. if (member == null) {
  460. //未注册
  461. uni.navigateTo({
  462. url: "../empty/empty"
  463. })
  464. return false;
  465. } else if (member.state == 0 && !anyHousePass) {
  466. //2未认证
  467. uni.navigateTo({
  468. url: "../empty/empty?type=2"
  469. })
  470. return false;
  471. } else if (member.state == 1 && !anyHousePass) {
  472. //待审核
  473. that.pending();
  474. return false;
  475. } else if (member.state == 2 || anyHousePass) {
  476. return true
  477. } else {
  478. return false
  479. }
  480. },
  481. //提示用户身份注册
  482. footaddmore: function() {
  483. uni.showModal({
  484. title: '提示',
  485. content: ' 请先完成注册',
  486. //cancelText:'去绑定',
  487. cancelText: '取消',
  488. confirmText: '去注册',
  489. success: function(res) {
  490. if (res.confirm) {
  491. console.log('用户点击了确认-去认证'); //跳转到认证页面
  492. uni.navigateTo({
  493. url: '../register/register'
  494. });
  495. } else { //res.cancel
  496. //绑定界面--暂时不用
  497. // wx.navigateTo({
  498. // url: '/pages/binding/binding',
  499. // })
  500. }
  501. }
  502. });
  503. },
  504. //用户信息待审核中
  505. pending: function() {
  506. let that = this;
  507. var openid = uni.getStorageSync("openid");
  508. let params = {};
  509. params['openid'] = openid;
  510. let operation = 'miniprogram/getMemberByOpenid';
  511. app.globalData.postRequest(params, operation, function(res) {
  512. //获取成功
  513. if (res.data.result_code == 1) {
  514. let member = res.data.member; //待审核
  515. if (member.state == 1 && !res.data.anyHousePass) {
  516. app.globalData.oneFailHint('亲,你的信息正在审核,请耐心等待');
  517. } else if (member.state == 2) {
  518. app.globalData.oneFailHint('亲,你的信息已审核通过', function() {
  519. that.setData({
  520. state: member.state
  521. });
  522. });
  523. }
  524. app.globalData.member = member;
  525. app.globalData.anyHousePass = res.data.anyHousePass;
  526. } else {
  527. app.globalData.oneFailHint(res.data.result_msg);
  528. }
  529. });
  530. },
  531. // 社区 end
  532. showPage() {
  533. //小程序审核期间隐藏掉
  534. let appletType = uni.getStorageSync('appletType')
  535. let tmp = this.mineItemList
  536. if (appletType == '0') {
  537. this.mineItemList.splice(1, 1)
  538. this.mineItemList.splice(1, 1)
  539. } else {
  540. this.mineItemList = tmp
  541. }
  542. if (this.isFirst) {
  543. this.isFirst = false
  544. } else {
  545. }
  546. this.onShowPage();
  547. wx.hideShareMenu();
  548. this.communityInitData()
  549. this.isLogin = this.$auth.isAuth;
  550. this.memberId = this.$auth.getMemberId();
  551. }
  552. },
  553. onShow() {
  554. this.showPage()
  555. },
  556. onPullDownRefresh() {
  557. this.onPullDownRefreshPage();
  558. }
  559. };
  560. </script>
  561. <style>
  562. page {
  563. background-color: #FFFFFF;
  564. }
  565. </style>
  566. <style lang="scss" scoped>
  567. .pageBg {
  568. // background-color: #FFFFFF;
  569. }
  570. button::after {
  571. border: none;
  572. }
  573. .header {
  574. // border-bottom-left-radius: 20rpx;
  575. border-bottom-right-radius: 60rpx;
  576. //todo
  577. background-image: url(https://szsq.nxzhsq.cn/community/miniofile/app/bg.png);
  578. height: 400upx;
  579. background-repeat: no-repeat;
  580. background-size: 100% 100%;
  581. .member_head_img {
  582. margin-right: 30upx;
  583. image {
  584. //todo
  585. width: 110upx;
  586. height: 110upx;
  587. border-radius: 59rpx;
  588. }
  589. .avatar-wrap {
  590. display: inline-flex;
  591. border: 0;
  592. background-color: transparent;
  593. }
  594. }
  595. .no_login {
  596. display: flex;
  597. flex-direction: column;
  598. .no_login_btn {
  599. border-radius: 25px;
  600. //todo
  601. font-size: 32upx;
  602. color: #fff;
  603. width: fit-content;
  604. padding: 0 15upx;
  605. height: 60upx;
  606. line-height: 60upx;
  607. background: transparent;
  608. }
  609. }
  610. .member_info {
  611. display: flex;
  612. flex-direction: column;
  613. .member_name_box {
  614. display: flex;
  615. flex-direction: row;
  616. align-items: center;
  617. .member_name {
  618. font-size: 40upx;
  619. color: #fff;
  620. font-weight: bold;
  621. }
  622. .member_level {
  623. background: #ffc600;
  624. color: #fff;
  625. font-size: 22upx;
  626. border-radius: 4upx;
  627. padding: 5upx 10upx;
  628. margin-left: 10upx;
  629. }
  630. }
  631. .member_phone_box {
  632. display: flex;
  633. flex-direction: row;
  634. align-items: center;
  635. .member_phone {
  636. font-size: 24upx;
  637. color: #FFFFFF;
  638. }
  639. image {
  640. width: 19upx;
  641. height: 19upx;
  642. padding: 20upx;
  643. }
  644. }
  645. }
  646. .member_benefits {
  647. background: #fff;
  648. width: 180upx;
  649. display: flex;
  650. flex-direction: row;
  651. align-items: center;
  652. text-align: center;
  653. border-radius: 27upx 0px 0px 27upx;
  654. height: 54upx;
  655. text-align: center;
  656. position: absolute;
  657. right: 0;
  658. image {
  659. width: 26upx;
  660. height: 23upx;
  661. padding: 0 10upx 0 30upx;
  662. }
  663. .member_benefits_text {
  664. font-size: 24upx;
  665. color: $dt-color-primary;
  666. letter-spacing: 2upx;
  667. }
  668. }
  669. button::after {
  670. border: none;
  671. }
  672. }
  673. .coupon_point {
  674. display: flex;
  675. flex-direction: row;
  676. align-items: center;
  677. height: 110upx;
  678. background: #fff;
  679. justify-content: space-around;
  680. .item {
  681. display: flex;
  682. flex-direction: column;
  683. align-items: center;
  684. width: 50%;
  685. .item_box {
  686. display: flex;
  687. flex-direction: row;
  688. align-items: center;
  689. letter-spacing: 2upx;
  690. .item_content {
  691. color: $dt-color-primary;
  692. font-size: 34upx;
  693. }
  694. .item_unit {
  695. color: $dt-color-primary;
  696. font-size: 22upx;
  697. margin-top: 6upx;
  698. }
  699. }
  700. .item_text {
  701. color: #333333;
  702. font-size: 22upx;
  703. }
  704. }
  705. .line {
  706. width: 1upx;
  707. height: 50upx;
  708. background: #e5e5e5;
  709. }
  710. }
  711. .mine_order_statue {
  712. //todo
  713. box-shadow: 0 10rpx #e7f1fd;
  714. margin: 0upx 20upx 0;
  715. background: #fff;
  716. padding: 10upx 20upx;
  717. border-radius: 20rpx;
  718. .order_wrap {
  719. display: flex;
  720. flex-direction: row;
  721. align-items: center;
  722. justify-content: space-between;
  723. box-sizing: border-box;
  724. .mine_order_text {
  725. font-size: 28upx;
  726. font-weight: bold;
  727. color: #333333;
  728. }
  729. .jump_all_order {
  730. display: flex;
  731. flex-direction: row;
  732. align-items: center;
  733. text {
  734. color: #999999;
  735. font-size: 22upx;
  736. margin-right: 10upx;
  737. }
  738. image {
  739. width: 10upx;
  740. height: 18upx;
  741. }
  742. }
  743. }
  744. .order_statue_list {
  745. display: flex;
  746. flex-direction: row;
  747. align-items: center;
  748. justify-content: space-between;
  749. .order_statue_item {
  750. display: flex;
  751. flex-direction: column;
  752. align-items: center;
  753. position: relative;
  754. margin-top: 32upx;
  755. image {
  756. width: 40upx;
  757. height: 40upx;
  758. }
  759. text {
  760. font-size: 24rpx;
  761. color: #333333;
  762. letter-spacing: 1upx;
  763. margin-top: 10upx;
  764. }
  765. .tip_count {
  766. position: absolute;
  767. right: 0upx;
  768. top: -6rpx;
  769. width: 24upx;
  770. height: 24upx;
  771. border-radius: 50%;
  772. background-color: #ff3b30;
  773. color: #fff;
  774. font-size: 18upx;
  775. text-align: center;
  776. line-height: 24upx;
  777. }
  778. }
  779. }
  780. }
  781. .item_list {
  782. display: flex;
  783. flex-direction: column;
  784. background: #fff;
  785. margin: 20rpx;
  786. border-radius: 20rpx;
  787. .item {
  788. display: flex;
  789. flex-direction: row;
  790. align-items: center;
  791. justify-content: space-between;
  792. padding: 0 30upx;
  793. height: 90upx;
  794. border-bottom: 1upx solid #f1f1f1;
  795. .item_content {
  796. display: flex;
  797. flex-direction: row;
  798. align-items: center;
  799. image {
  800. width: 42upx;
  801. height: 42upx;
  802. }
  803. text {
  804. font-size: 28upx;
  805. color: #333333;
  806. margin-left: 20upx;
  807. }
  808. }
  809. image {
  810. width: 10upx;
  811. height: 18upx;
  812. }
  813. }
  814. .item:first-child {
  815. border: none;
  816. }
  817. .item:last-child {
  818. border: none;
  819. }
  820. }
  821. .content {
  822. display: flex;
  823. .userinfo-avatar {
  824. overflow: hidden;
  825. display: block;
  826. width: 100rpx;
  827. height: 100rpx;
  828. margin: 20rpx 20rpx 40rpx;
  829. border-radius: 50%;
  830. border: 1rpx solid #fff;
  831. }
  832. }
  833. .center {
  834. display: flex;
  835. justify-content: center;
  836. align-items: center;
  837. }
  838. </style>