wode.vue 18 KB

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