index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811
  1. <template>
  2. <view class="app-container">
  3. <custom :bgColor="'bg-them'" :backColor="'#FFFFFF'" :isBack="false" v-show="isCustom">
  4. <text slot="content" style="color: #FFFFFF; font-size: 36rpx;">我的</text>
  5. </custom>
  6. <view class="top-container">
  7. <image src="@/static/home/top_bg.png" mode="widthFix" class="bg"></image>
  8. <view class="content">
  9. <view class="title" :style="cuStyle">我的</view>
  10. <view class="user" v-if="isLogin">
  11. <view class="left" @tap="isShowInfoDialog = true">
  12. <block v-if="detail.avatar">
  13. <image :src="detail.avatar" mode="aspectFill" v-if="detail.avatar.indexOf('http') >= 0"></image>
  14. <image :src="imageUrl + detail.avatar" mode="aspectFill" v-else></image>
  15. </block>
  16. <view class="main" v-if="isServiceUser">
  17. <view class="name">{{detail.serviceWorkerBean.workerRealName}}</view>
  18. <view class="text" v-if="detail.serviceWorkerBean.websit">{{detail.serviceWorkerBean.websit}}</view>
  19. </view>
  20. <view class="main" v-else>
  21. <view class="name">{{detail.nickName}}</view>
  22. </view>
  23. </view>
  24. <view class="code" v-if="isServiceUser">
  25. <image src="@/static/mine/code.png" @tap="navigatePage('/pages/mine/mallCode')"></image>
  26. <text>商城二维码</text>
  27. </view>
  28. </view>
  29. <view class="user" @tap="navigatePage('/pages/login/index')" v-else>
  30. <view class="left">
  31. <image :src="configInfo.minLogo3" mode="aspectFill"></image>
  32. <view class="main">
  33. <view class="name">请先登录</view>
  34. </view>
  35. </view>
  36. </view>
  37. <view class="order">
  38. <view class="top">
  39. <view class="left">我的订单</view>
  40. <view class="right" @tap="toMyOrder('')">查看全部订单<image src="../../static/icon/right.png"></image></view>
  41. </view>
  42. <view class="list">
  43. <view class="item" @tap="toMyOrder('NOPAY')">
  44. <view class="image"><image src="../../static/mine/order_icon1.png"></image><text v-if="count.noPay > 0">{{count.noPay}}</text></view>
  45. <view>待付款</view>
  46. </view>
  47. <view class="item" @tap="toMyOrder('DFH')">
  48. <view class="image"><image src="../../static/mine/order_icon2.png"></image><text v-if="count.dfh > 0">{{count.dfh}}</text></view>
  49. <view>待发货</view>
  50. </view>
  51. <view class="item" @tap="toMyOrder('YFH')">
  52. <view class="image"><image src="../../static/mine/order_icon3.png"></image><text v-if="count.yfh > 0">{{count.yfh}}</text></view>
  53. <view>待收货</view>
  54. </view>
  55. <view class="item" @tap="toMyOrder('OVER')">
  56. <view class="image"><image src="../../static/mine/order_icon4.png"></image><text v-if="count.ywc > 0">{{count.ywc}}</text></view>
  57. <view>已完成</view>
  58. </view>
  59. <view class="item" @tap="toMyOrder('REFUND')">
  60. <view class="image"><image src="../../static/mine/order_icon5.png"></image><text v-if="count.sh > 0">{{count.sh}}</text></view>
  61. <view>售后服务</view>
  62. </view>
  63. </view>
  64. </view>
  65. </view>
  66. </view>
  67. <view class="list-container">
  68. <view class="group" v-if="userInfo && !userInfo.mobile">
  69. <view class="item" @tap="isShowPhoneDialog = true">
  70. <view class="left">
  71. <image src="/static/mine/mine_icon1.png"></image>获取手机号码
  72. </view>
  73. <view class="right"><image src="/static/icon/right.png"></image></view>
  74. </view>
  75. </view>
  76. <!-- <view class="group" v-if="!isServiceUser">
  77. <view class="item" @tap="navigatePage('/pages/mine/applySalesman')">
  78. <view class="left">
  79. <image src="/static/mine/mine_icon1.png"></image>申请成为业务员
  80. </view>
  81. <view class="right"><image src="/static/icon/right.png"></image></view>
  82. </view>
  83. </view> -->
  84. <!-- <view class="group" v-if="isHeadUser">
  85. <view class="item" @tap="navigatePage('/pages/mine/groupbuy/list')">
  86. <view class="left">
  87. <image src="/static/mine/mine_icon12.png"></image>我的团购
  88. </view>
  89. <view class="right"><image src="/static/icon/right.png"></image></view>
  90. </view>
  91. </view> -->
  92. <view class="group" v-if="isServiceUser || isHeadUser">
  93. <view class="item" @tap="navigatePage('/pages/mine/profit/list')" v-if="isServiceUser || isHeadUser">
  94. <view class="left">
  95. <image src="/static/mine/mine_icon7.png"></image>我的收益
  96. </view>
  97. <view class="right"><image src="/static/icon/right.png"></image></view>
  98. </view>
  99. <view class="item" @tap="navigatePage('/pages/mine/ranking/list')" v-if="isServiceUser">
  100. <view class="left">
  101. <image src="/static/mine/mine_icon10.png"></image>销售排行榜
  102. </view>
  103. <view class="right"><image src="/static/icon/right.png"></image></view>
  104. </view>
  105. </view>
  106. <view class="group" v-if="isServiceUser">
  107. <view class="item" @tap="navigatePage('/pages/mine/discode/list')" v-if="hasExchangeCode">
  108. <view class="left">
  109. <image src="/static/mine/mine_icon13.png"></image>我的优惠码
  110. </view>
  111. <view class="right"><image src="/static/icon/right.png"></image></view>
  112. </view>
  113. <view class="item" @tap="navigatePage('/pages/mine/discount/list')" v-if="isInnerrUser">
  114. <view class="left">
  115. <image src="/static/mine/mine_icon14.png"></image>用户减免金额{{isExamineUser ? '审核':'申请'}}
  116. </view>
  117. <view class="right"><image src="/static/icon/right.png"></image></view>
  118. </view>
  119. </view>
  120. <view class="group" v-if="isServiceUser">
  121. <view class="item" @tap="navigatePage('/pages/mine/mallCode')">
  122. <view class="left">
  123. <image src="/static/mine/mine_icon9.png"></image>商城二维码
  124. </view>
  125. <view class="right"><image src="/static/icon/right.png"></image></view>
  126. </view>
  127. <!-- <view class="item" @tap="navigatePage('/pages/mine/wxCode')">
  128. <view class="left">
  129. <image src="/static/mine/mine_icon9.png"></image>企微二维码
  130. </view>
  131. <view class="right"><image src="/static/icon/right.png"></image></view>
  132. </view> -->
  133. </view>
  134. <view class="group">
  135. <!-- <view class="item" @tap="navigatePage('/pages/mine/exchange/index')">
  136. <view class="left">
  137. <image src="/static/mine/mine_icon15.png"></image>兑换中心
  138. </view>
  139. <view class="right"><image src="/static/icon/right.png"></image></view>
  140. </view> -->
  141. <view class="item" @tap="navigatePage('/pages/mine/coupon/list')">
  142. <view class="left">
  143. <image src="/static/mine/mine_icon4.png"></image>我的优惠券
  144. </view>
  145. <view class="right"><image src="/static/icon/right.png"></image></view>
  146. </view>
  147. <!-- v-if="keyilingqude" -->
  148. <view class="item" @tap="navigatePage('/pages/index/coupon')">
  149. <view class="left">
  150. <image src="/static/mine/mine_icon4.png"></image>可领取优惠券
  151. </view>
  152. <view class="right"><image src="/static/icon/right.png"></image></view>
  153. </view>
  154. <view class="item" @tap="navigatePage('/pages/mine/address/list')">
  155. <view class="left">
  156. <image src="/static/mine/mine_icon5.png"></image>我的收货地址
  157. </view>
  158. <view class="right"><image src="/static/icon/right.png"></image></view>
  159. </view>
  160. </view>
  161. <view class="group">
  162. <view class="item" @tap="navigatePage('/pages/mine/collection')">
  163. <view class="left">
  164. <image src="/static/mine/mine_icon2.png"></image>我的收藏
  165. </view>
  166. <view class="right"><image src="/static/icon/right.png"></image></view>
  167. </view>
  168. <!-- <view class="item" v-if="!isServiceUser" @tap="toMyManager">
  169. <view class="left">
  170. <image src="/static/mine/mine_icon3.png"></image>我的客户经理
  171. </view>
  172. <view class="right"><image src="/static/icon/right.png"></image></view>
  173. </view> -->
  174. <view class="item" v-if="isServiceUser" @tap="navigatePage('/pages/mine/customer/list')">
  175. <view class="left">
  176. <image src="/static/mine/mine_icon8.png"></image>我的客户列表
  177. </view>
  178. <view class="right"><image src="/static/icon/right.png"></image></view>
  179. </view>
  180. <!-- <view class="item" @tap="navigatePage('/pages/mine/workOrder/list')">
  181. <view class="left">
  182. <image src="/static/mine/mine_icon11.png"></image>我的工单信息
  183. </view>
  184. <view class="right"><image src="/static/icon/right.png"></image></view>
  185. </view> -->
  186. </view>
  187. <view class="group">
  188. <button class="item" open-type="contact">
  189. <view class="left">
  190. <image src="/static/mine/mine_icon6.png"></image>联系客服
  191. </view>
  192. <view class="right"><image src="/static/icon/right.png"></image></view>
  193. </button>
  194. </view>
  195. </view>
  196. <modal-dialog showTitle="我的客户经理" :showText="myManagerDetail.workName + ' ' + myManagerDetail.workPhone" :isShowDialog="isManagerDialog" @cancel="isManagerDialog = false" @confirm="callPhone(myManagerDetail.workPhone)" confirmText="拨打电话"></modal-dialog>
  197. <!-- <drag-button :isDock="true" :customBar="false" ref="dragButton"></drag-button> -->
  198. <u-popup :round="10" :show="isShowInfoDialog">
  199. <view class="info-dialog">
  200. <view class="content">
  201. <view class="title">获取您的头像和昵称</view>
  202. <view class="text">为了方便识别您的身份,请授权您的头像和昵称</view>
  203. </view>
  204. <view class="form">
  205. <view class="item">
  206. <view class="label">头像</view>
  207. <view class="value">
  208. <button open-type="chooseAvatar" @chooseavatar="chooseAvatar">
  209. <image :src="imageUrl + infoForm.avatar" v-if="infoForm.avatar"></image>
  210. <view class="empty" v-else>请选择</view>
  211. </button>
  212. </view>
  213. </view>
  214. <view class="item">
  215. <view class="label">昵称</view>
  216. <view class="value">
  217. <input
  218. type="nickname"
  219. placeholder="请输入昵称"
  220. border="none"
  221. v-model="infoForm.nickname"
  222. @change="getNickname"
  223. ></input>
  224. </view>
  225. </view>
  226. </view>
  227. <view class="btn">
  228. <button @tap="isShowInfoDialog = false">取消</button>
  229. <button type="primary" @tap="saveUserInfo()">提交</button>
  230. </view>
  231. </view>
  232. </u-popup>
  233. <u-popup :round="10" :show="isShowPhoneDialog">
  234. <view class="phone-dialog">
  235. <view class="content">
  236. <view>申请获取以下权限</view>
  237. <text>获得你的公开信息(手机号码)</text>
  238. </view>
  239. <view class="btn">
  240. <button @tap="isShowPhoneDialog = false">取消</button>
  241. <button
  242. type="primary"
  243. open-type="getPhoneNumber"
  244. @getphonenumber="getPhoneNumber"
  245. >
  246. 确定授权
  247. </button>
  248. </view>
  249. </view>
  250. </u-popup>
  251. </view>
  252. </template>
  253. <script>
  254. import {mapState} from 'vuex';
  255. import modalDialog from '@/components/modalDialog.vue';
  256. // import dragButton from '@/components/drag-button.vue';
  257. import { uploadImg } from '@/api/axios.js';
  258. export default {
  259. components:{
  260. modalDialog,
  261. // dragButton
  262. },
  263. data() {
  264. return {
  265. isShowPhoneDialog: false,
  266. imageUrl: this.$imageUrl,
  267. configInfo: uni.getStorageSync('configInfo'),
  268. detail: {}, // 信息详情
  269. myManagerDetail: {}, // 我的客户经理信息
  270. count: {}, // 订单数量统计
  271. scrollTop: 0, // 滚动高度(用于控制自定义导航)
  272. isCustom: false, // 是否显示自定义导航
  273. isManagerDialog: false, // 是否显示联系客户经理弹窗
  274. isShowInfoDialog: false, // 是否显示获取用户信息弹窗
  275. infoForm: {
  276. avatar: '',
  277. nickname: '',
  278. },
  279. keyilingqude:false,
  280. }
  281. },
  282. computed:{
  283. ...mapState(['userInfo', 'isLogin', 'userId']),
  284. cuStyle(){
  285. return `height:${this.CustomBar-this.StatusBar}px; padding-top:${this.StatusBar}px;`
  286. },
  287. isServiceUser() { // 是否业务员
  288. return this.detail.type === 'SERVICE';
  289. },
  290. isHeadUser() { // 是否团长
  291. return false //this.detail.promotionGroupLeader;
  292. },
  293. isExamineUser() { // 是否审核人员
  294. return this.detail.promotionApplyExamineby;
  295. },
  296. isInnerrUser() { // 是否内部人员
  297. return this.detail.innerr;
  298. },
  299. hasExchangeCode() { // 是否有优惠码权限
  300. return this.detail.isExchangeCode;
  301. },
  302. },
  303. watch: {
  304. scrollTop() {
  305. if(this.scrollTop > 100) {
  306. this.isCustom = true;
  307. }else {
  308. this.isCustom = false;
  309. }
  310. }
  311. },
  312. onLoad() {
  313. if(!this.isLogin) {
  314. uni.navigateTo({
  315. url: '/pages/login/index'
  316. })
  317. }
  318. },
  319. onShow() {
  320. this.$axios({
  321. url: '/couponNew/list/all',
  322. method: 'get',
  323. params: {
  324. userId: this.userId
  325. },
  326. }).then(res => {
  327. this.keyilingqude = !!res.data.length
  328. })
  329. if(this.userId && this.isLogin) {
  330. this.getDetail();
  331. this.getCount();
  332. }
  333. // this.$refs.dragButton.init();
  334. },
  335. onPageScroll(res) {
  336. this.scrollTop = res.scrollTop;
  337. },
  338. methods: {
  339. // 获取手机号
  340. getPhoneNumber(e) {
  341. if(e?.detail?.iv &&e?.detail?.encryptedData){
  342. this.$axios({
  343. url: '/user/mobile/grant',
  344. params: {
  345. userId: this.userId,
  346. iv: e.detail.iv,
  347. encryptedData: e.detail.encryptedData,
  348. },
  349. }).then((res) => {
  350. uni.setStorageSync('token', res.data.token);
  351. uni.setStorageSync('isActiveLogout', false);
  352. this.isShowPhoneDialog = false;
  353. this.$getUserInfo();
  354. });
  355. }
  356. },
  357. // 获取个人信息
  358. async getDetail() {
  359. this.detail = await this.$getUserInfo();
  360. if(!this.detail.openId) {
  361. return uni.navigateTo({
  362. url: '/pages/login/index?isNotOpenid=' + true
  363. })
  364. }
  365. },
  366. // 获取订单数量
  367. getCount() {
  368. this.$axios({
  369. url: '/order/count',
  370. method: 'get',
  371. params: {
  372. userId: this.userId
  373. }
  374. }).then(res => {
  375. this.count = res.data;
  376. })
  377. },
  378. // 跳转页面
  379. navigatePage(url) {
  380. if(!this.isLogin) {
  381. return uni.navigateTo({
  382. url: '/pages/login/index'
  383. })
  384. }
  385. if(!url) {
  386. return this.$toast('跳转链接错误');
  387. }
  388. uni.navigateTo({
  389. url
  390. })
  391. },
  392. // 我的客户经理
  393. toMyManager() {
  394. if(!this.isLogin) {
  395. return uni.navigateTo({
  396. url: '/pages/login/index'
  397. })
  398. }
  399. this.$axios({
  400. url: '/user/parent',
  401. method: 'get',
  402. params: {
  403. userId: this.userId
  404. }
  405. }).then(res => {
  406. if(!res.data) {
  407. return this.$toast('您暂无客户经理');
  408. }else {
  409. this.myManagerDetail = res.data;
  410. this.isManagerDialog = true;
  411. }
  412. })
  413. },
  414. // 拨打电话
  415. callPhone(number) {
  416. uni.makePhoneCall({
  417. phoneNumber: number
  418. });
  419. },
  420. // 去我的订单列表
  421. toMyOrder(tab) {
  422. if(!this.isLogin) {
  423. return uni.navigateTo({
  424. url: '/pages/login/index'
  425. })
  426. }
  427. uni.navigateTo({
  428. url: '/pages/mine/order/list?tab=' + tab
  429. })
  430. },
  431. // 选择头像
  432. chooseAvatar(e) {
  433. uploadImg({
  434. path: e.detail.avatarUrl,
  435. name: e.detail.avatarUrl,
  436. }).then(data => {
  437. this.infoForm.avatar = data.url;
  438. })
  439. },
  440. // 用户昵称审核完毕
  441. getNickname(e) {
  442. this.infoForm.nickname = e.detail.value;
  443. },
  444. // 保存用户信息
  445. saveUserInfo() {
  446. if(!this.infoForm.avatar) {
  447. return this.$toast('请先上传头像');
  448. }
  449. if(!this.infoForm.nickname) {
  450. return this.$toast('请先输入昵称');
  451. }
  452. this.$axios({
  453. url: '/user/userinfo/save',
  454. params: {
  455. userId: this.userId,
  456. avatarUrl: this.infoForm.avatar,
  457. nickName: this.infoForm.nickname,
  458. },
  459. }).then(res => {
  460. this.isShowInfoDialog = false;
  461. this.getDetail();
  462. })
  463. },
  464. }
  465. }
  466. </script>
  467. <style lang="scss">
  468. .app-container {
  469. background: #F4F2F2;
  470. box-sizing: border-box;
  471. padding-bottom: 80rpx;
  472. }
  473. .top-container {
  474. position: relative;
  475. .bg {
  476. display: block;
  477. width: 750rpx;
  478. position: absolute;
  479. top: 0;
  480. z-index: 0;
  481. }
  482. .content {
  483. width: 710rpx;
  484. padding: 0 20rpx;
  485. position: relative;
  486. z-index: 1;
  487. }
  488. .title {
  489. display: flex;
  490. align-items: center;
  491. justify-content: center;
  492. color: #FFFFFF;
  493. font-size: 36rpx;
  494. }
  495. .user {
  496. display: flex;
  497. align-items: center;
  498. justify-content: space-between;
  499. margin-top: 40rpx;
  500. .left {
  501. display: flex;
  502. align-items: center;
  503. image {
  504. width: 120rpx;
  505. height: 120rpx;
  506. border-radius: 50%;
  507. border: 2px solid #FFFFFF;
  508. margin-right: 20rpx;
  509. }
  510. .main {
  511. width: 360rpx;
  512. display: flex;
  513. flex-direction: column;
  514. .name {
  515. font-size: 32rpx;
  516. color: #FFFFFF;
  517. line-height: 36rpx;
  518. }
  519. .text {
  520. font-size: 24rpx;
  521. color: #FFFFFF;
  522. line-height: 30rpx;
  523. margin-top: 12rpx;
  524. }
  525. }
  526. }
  527. .code {
  528. display: flex;
  529. flex-direction: column;
  530. align-items: center;
  531. justify-content: center;
  532. flex-shrink: 0;
  533. margin-right: 30rpx;
  534. image {
  535. width: 52rpx;
  536. height: 52rpx;
  537. display: block;
  538. }
  539. text {
  540. font-size: 20rpx;
  541. line-height: 20rpx;
  542. color: #FFFFFF;
  543. margin-top: 12rpx;
  544. }
  545. }
  546. }
  547. .order {
  548. margin-top: 20rpx;
  549. background: #FFFFFF;
  550. border-radius: 20rpx;
  551. .top {
  552. height: 88rpx;
  553. display: flex;
  554. justify-content: space-between;
  555. align-items: center;
  556. padding: 0 20rpx;
  557. .left {
  558. font-size: 32rpx;
  559. color: #333333;
  560. }
  561. .right {
  562. display: flex;
  563. align-items: center;
  564. font-size: 24rpx;
  565. color: #999999;
  566. image {
  567. width: 16rpx;
  568. height: 28rpx;
  569. margin-left: 12rpx;
  570. }
  571. }
  572. }
  573. .list {
  574. display: flex;
  575. border-top: 1px solid #eaeaea;
  576. padding: 10rpx 0 24rpx;
  577. .item {
  578. width: 20%;
  579. display: flex;
  580. flex-direction: column;
  581. align-items: center;
  582. .image {
  583. position: relative;
  584. }
  585. image {
  586. width: 60rpx;
  587. height: 60rpx;
  588. display: block;
  589. }
  590. text {
  591. position: absolute;
  592. right: -12rpx;
  593. top: -8rpx;
  594. z-index: 11;
  595. background: #FF3F42;
  596. width: 32rpx;
  597. height: 32rpx;
  598. line-height: 32rpx;
  599. text-align: center;
  600. border-radius: 32rpx;
  601. font-size: 20rpx;
  602. color: #FFFFFF;
  603. }
  604. view {
  605. font-size: 28rpx;
  606. line-height: 28rpx;
  607. color: #333333;
  608. margin-top: 10rpx;
  609. }
  610. }
  611. }
  612. }
  613. }
  614. .list-container {
  615. padding: 0 20rpx;
  616. margin-top: 20rpx;
  617. padding-bottom: 20rpx;
  618. .group {
  619. margin-bottom: 20rpx;
  620. background: #FFFFFF;
  621. border-radius: 20rpx;
  622. overflow: hidden;
  623. &:last-child {
  624. margin-bottom: 0;
  625. }
  626. .item {
  627. display: flex;
  628. align-items: center;
  629. justify-content: space-between;
  630. height: 88rpx;
  631. border-bottom: 1px solid #eaeaea;
  632. padding: 0 20rpx;
  633. background: #FFFFFF;
  634. color: #333333;
  635. &:last-child {
  636. border: none;
  637. }
  638. &::after {
  639. border: none;
  640. }
  641. .left {
  642. display: flex;
  643. align-items: center;
  644. font-size: 30rpx;
  645. image {
  646. width: 40rpx;
  647. height: 40rpx;
  648. margin-right: 20rpx;
  649. }
  650. }
  651. .right {
  652. image {
  653. width: 16rpx;
  654. height: 28rpx;
  655. display: block;
  656. }
  657. }
  658. }
  659. }
  660. }
  661. .info-dialog {
  662. padding: 40rpx 40rpx 80rpx;
  663. box-sizing: border-box;
  664. .content {
  665. .title {
  666. font-size: 32rpx;
  667. font-weight: 500;
  668. }
  669. .text {
  670. font-size: 24rpx;
  671. color: #999999;
  672. margin-top: 20rpx;
  673. }
  674. }
  675. .form {
  676. .item {
  677. display: flex;
  678. align-items: center;
  679. justify-content: space-between;
  680. margin-top: 30rpx;
  681. .label {
  682. color: #666666;
  683. }
  684. .value {
  685. button {
  686. padding: 0;
  687. background: none;
  688. border: none;
  689. &::after {
  690. border: none;
  691. }
  692. }
  693. input {
  694. width: 500rpx;
  695. height: 68rpx;
  696. text-align: right !important;
  697. }
  698. image {
  699. width: 88rpx;
  700. height: 88rpx;
  701. border-radius: 88rpx;
  702. display: block;
  703. }
  704. .empty {
  705. width: 88rpx;
  706. height: 88rpx;
  707. border-radius: 88rpx;
  708. background: #f5f5f5;
  709. text-align: center;
  710. line-height: 88rpx;
  711. font-size: 24rpx;
  712. color: #999999;
  713. }
  714. }
  715. }
  716. }
  717. .btn {
  718. display: flex;
  719. justify-content: center;
  720. margin-top: 60rpx;
  721. button::after {
  722. border: none;
  723. }
  724. button {
  725. width: 180rpx;
  726. height: 70rpx;
  727. line-height: 70rpx;
  728. margin: 0;
  729. font-size: 28rpx;
  730. margin: 0 30rpx;
  731. &:first-child {
  732. background: #f5f5f5;
  733. color: $theme-color;
  734. }
  735. &:last-child {
  736. background: $theme-color;
  737. color: #FFFFFF;
  738. }
  739. }
  740. }
  741. }
  742. .phone-dialog {
  743. padding: 40rpx;
  744. box-sizing: border-box;
  745. .content {
  746. margin-top: 30rpx;
  747. margin-bottom: 30rpx;
  748. line-height: 50rpx;
  749. text {
  750. color: #9d9d9d;
  751. }
  752. }
  753. .btn {
  754. display: flex;
  755. justify-content: center;
  756. margin-top: 60rpx;
  757. button::after {
  758. border: none;
  759. }
  760. button {
  761. width: 180rpx;
  762. height: 70rpx;
  763. line-height: 70rpx;
  764. margin: 0;
  765. font-size: 28rpx;
  766. margin: 0 30rpx;
  767. &:first-child {
  768. background: #f5f5f5;
  769. color: #00ba5c;
  770. }
  771. }
  772. }
  773. }
  774. </style>