mine.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963
  1. <template>
  2. <view>
  3. <u-navbar back-text="我的" back-icon-size="0" :customBack="customBack" back-icon-color="#ffffff"
  4. :background="{backgroundColor: '#2795FD',}" :back-text-style="{color: '#ffffff'}"></u-navbar>
  5. <view class="top">
  6. <view class="photo">
  7. <u-avatar :src="src" :gender="userInfo.gender" ></u-avatar>
  8. </view>
  9. <!-- <view class="login">
  10. 请登录
  11. </view> -->
  12. <!-- 已登录 -->
  13. <view class="logined">
  14. <view class="name">
  15. <template v-if="userInfo&&userInfo.id">
  16. 你好,{{userInfo.realName?userInfo.realName:'用户'+userInfo.id.slice(0,3)}}
  17. </template>
  18. <template v-else>
  19. 未登录
  20. </template>
  21. <view class="img-box" v-if="userInfo.status==1">
  22. <img src="@/assets/img/riFill-shield-user-fill@1x.png" alt="">
  23. </view>
  24. </view>
  25. <view class="tel" @click="changePhone" v-if="userInfo&&userInfo.id">
  26. {{userInfo.phone}}
  27. <img src="@/pages/tab/as-components/riLine-edit-2-line.svg">
  28. </view>
  29. </view>
  30. </view>
  31. <!-- 求职信息 -->
  32. <view class="card card1">
  33. <view class="title">
  34. 求职信息
  35. <u-icon size="34" v-if="ck1()" name="checkmark-circle-fill" style="color: #54b86c;"></u-icon>
  36. <u-icon size="34" @click="showIcon(1)" v-else name="error-circle-fill" style="color: #dc4441;"></u-icon>
  37. </view>
  38. <u-grid :col="3" :border="false">
  39. <u-grid-item @click="gotoUrl0('pages/packages/mine/myJobInformation/myJobInformation')">
  40. <u-badge :count="num3==2?0:(num3==0?'未创建':'审批中')"
  41. :type="num3==0?'error':'warning'"
  42. size="mini" :offset="[18,4]"></u-badge>
  43. <view class="icon">
  44. <img src="@/assets/img/riLine-folder-user-line@1x.png" alt="">
  45. </view>
  46. <view class="grid-text">我的简历</view>
  47. </u-grid-item>
  48. <u-grid-item @click="gotoUrl1('pages/packages/mine/myJobInformation/myRegistration?c=0')">
  49. <view class="icon">
  50. <img src="@/assets/img/riLine-todo-line@1x.png" alt="">
  51. </view>
  52. <view class="grid-text">我的报名</view>
  53. </u-grid-item>
  54. <u-grid-item @click="gotoUrl1('pages/packages/mine/myJobInformation/myRegistration?c=1')">
  55. <u-badge :count="num1" size="mini" :offset="[28,34]"></u-badge>
  56. <view class="icon">
  57. <img src="@/assets/img/riLine-mail-star-line@1x.png" alt="">
  58. </view>
  59. <view class="grid-text">收到邀请</view>
  60. </u-grid-item>
  61. <u-grid-item
  62. @click="gotoUrl0('pages/packages/mine/privacy')">
  63. <view class="icon">
  64. <img src="@/assets/img/riLine-shield-keyhole-line@3x.png" alt="">
  65. </view>
  66. <view class="grid-text">隐私设置</view>
  67. </u-grid-item>
  68. </u-grid>
  69. </view>
  70. <!-- 用工服务 -->
  71. <!-- 幻灯片 -->
  72. <view class="swiper" v-if="bannerlist.length">
  73. <u-swiper img-mode="scaleToFill" mode="none" height="100" :list="bannerlist" @click="clickBanner" ></u-swiper>
  74. </view>
  75. <view class="card ">
  76. <view class="title">
  77. 用工服务
  78. <u-icon size="34" v-if="ck2()" name="checkmark-circle-fill" style="color: #54b86c;"></u-icon>
  79. <u-icon size="34" @click="showIcon(2)" v-else name="error-circle-fill" style="color: #dc4441;"></u-icon>
  80. </view>
  81. <u-grid :col="4" :border="false">
  82. <u-grid-item @click="gotoUrl2('pages/packages/mine/employmentService/laborManagement/laborManagement')">
  83. <view class="icon">
  84. <img src="@/assets/img/riLine-folder-2-line@1x.png" alt="">
  85. </view>
  86. <view class="grid-text">用工管理</view>
  87. </u-grid-item>
  88. <u-grid-item @click="gotoUrl2('pages/packages/mine/employmentService/receiveRegistration?c=0')">
  89. <u-badge :count="num2" size="mini" :offset="[28,34]"></u-badge>
  90. <view class="icon">
  91. <img src="@/assets/img/riLine-inbox-archive-line@1x.png" alt="">
  92. </view>
  93. <view class="grid-text">收到报名</view>
  94. </u-grid-item>
  95. <u-grid-item @click="gotoUrl2('pages/packages/mine/employmentService/receiveRegistration?c=1')">
  96. <view class="icon">
  97. <img src="@/assets/img/riLine-time-line@1x.png" alt="">
  98. </view>
  99. <view class="grid-text">邀请记录</view>
  100. </u-grid-item>
  101. <u-grid-item @click="gotoUrl2('pages/packages/mine/employmentService/shareEmployment')">
  102. <view class="icon">
  103. <img src="@/assets/img/riLine-service-line@1x.png" alt="">
  104. </view>
  105. <view class="grid-text">共享用工</view>
  106. </u-grid-item>
  107. </u-grid>
  108. </view>
  109. <!-- 其他服务 -->
  110. <view class="card ">
  111. <view class="title">
  112. 其他服务
  113. </view>
  114. <u-grid :col="3" :border="false">
  115. <u-grid-item @click="toAuthentication">
  116. <u-icon v-if="ck1()||ck2()" name="checkmark-circle-fill" style="color: #54b86c;"
  117. class="checked"></u-icon>
  118. <u-icon v-else name="error-circle-fill" style="color: #dc4441;" class="badge-icon"></u-icon>
  119. <view class="icon">
  120. <img src="@/assets/img/riLine-shield-user-line@1x.png" alt="">
  121. </view>
  122. <view class="grid-text">实名认证</view>
  123. </u-grid-item>
  124. <!-- <u-grid-item @click="showPhoneMethod">
  125. <view class="icon">
  126. <img src="@/assets/img/riLine-customer-service-line@1x.png" alt="">
  127. </view>
  128. <view class="grid-text">联系客服</view>
  129. </u-grid-item> -->
  130. <u-grid-item >
  131. <button class="btncontact" open-type="contact">
  132. <view class="icon">
  133. <img src="@/assets/img/riLine-customer-service-line@1x.png" alt="">
  134. </view>
  135. <view class="grid-text">联系客服</view>
  136. </button>
  137. </u-grid-item>
  138. <u-grid-item v-show="showPrivacy" @click="authorize2" >
  139. <button class="btncontact" open-type="agreePrivacyAuthorization">
  140. <view class="icon">
  141. <img src="@/assets/img/riLine-logout-box-r-line@1x.png" alt="">
  142. </view>
  143. <view class="grid-text">授权</view>
  144. </button>
  145. </u-grid-item>
  146. <!-- <u-grid-item>
  147. <view class="icon">
  148. <img src="@/assets/img/riLine-logout-box-r-line@1x.png" alt="">
  149. </view>
  150. <view class="grid-text">退出登录</view>
  151. </u-grid-item> -->
  152. </u-grid>
  153. </view>
  154. <!-- 登录弹窗 -->
  155. <u-popup v-model="show" mode="center" border-radius="24" :closeable="true" @close="close">
  156. <view class="u-mode-center-main">
  157. <view class="title">
  158. 登录荆州经开区共享用工平台
  159. </view>
  160. <view>
  161. <button class="login-btn" @click="decryptPhoneNumberH5" open-type="getPhoneNumber"
  162. @getphonenumber="decryptPhoneNumber"
  163. >
  164. <u-icon name="phone-fill" size="46"></u-icon> <text>手机号码一键登录</text>
  165. </button>
  166. </view>
  167. <view class="radio" v-if="false">
  168. <!-- <radio></radio>
  169. <view class="agreement">
  170. 阅读并同意<text style="color: #2795FD">《用户隐私协议》</text>
  171. </view> -->
  172. <u-radio-group v-model="value">
  173. <u-radio active-color="red">阅读并同意<text style="color: #2795FD">《用户隐私协议》</text></u-radio>
  174. </u-radio-group>
  175. </view>
  176. </view>
  177. </u-popup>
  178. <u-modal v-model="showPhone" @confirm="confirmPhone" :confirm-text="confirmText" confirm-color="#606266"
  179. :show-cancel-button="true" ref="uModal" :asyncClose="true" title="客服电话" :content="content"
  180. :content-style="{fontSize: '24px',color: '#101010'}"></u-modal>
  181. <tabbar :current="4"></tabbar>
  182. </view>
  183. </template>
  184. <script>
  185. import * as API from '@/apis/pagejs/tab.js'
  186. import * as API_weixin from '@/apis/weixin.js'
  187. import tabbar from "@/components/Tabbar.vue"
  188. export default {
  189. components: {
  190. tabbar
  191. },
  192. data() {
  193. return {
  194. src: '',
  195. show: false,
  196. value: 'false',
  197. userInfo: {},
  198. showPhone: false,
  199. confirmText: '拨打电话',
  200. content: "",
  201. num1: 0,
  202. num2: 0,
  203. num3: 0,//0 未创建 ,1 审批中, 2 成功
  204. isReady:false,
  205. updateintention:false,
  206. bannerlist: [
  207. ],
  208. showPrivacy:false,
  209. intentionList:[
  210. {
  211. value: '1',
  212. label: '求职中'
  213. },
  214. {
  215. value: '2',
  216. label: '已入职/勿扰'
  217. }
  218. ],
  219. }
  220. },
  221. onLoad() {
  222. this.userInfo = this.carhelp.getPersonInfo()
  223. this.findByOpenId();
  224. this.getNewsInfo()
  225. this.authorize(true)
  226. },
  227. onShow(){
  228. this.authorize()
  229. if(this.isReady){
  230. this.findByOpenId();
  231. }
  232. },
  233. methods: {
  234. authorize2(){
  235. uni.authorize({
  236. scope:'scope.camera',
  237. success() {
  238. uni.showToast({
  239. title:"授权成功"
  240. })
  241. },
  242. fail(res){
  243. console.log(res)
  244. if(res.errMsg=="authorize:fail auth deny"||res.errMsg=="authorize:fail:auth deny"){
  245. }
  246. uni.showModal({
  247. showCancel:false,
  248. content:"授权失败,可点击'右上角...'-'设置'-'摄像头'授权",
  249. title:"提示",
  250. })
  251. },
  252. complete:()=> {
  253. this.authorize()
  254. }
  255. })
  256. },
  257. authorize(bl){
  258. uni.getSetting({
  259. success:(settingRes)=> {
  260. if(!settingRes.authSetting['scope.camera']){
  261. this.showPrivacy=true
  262. }else{
  263. this.showPrivacy=false
  264. }
  265. },fail(res){
  266. console.log(res)
  267. }
  268. })
  269. },
  270. handleAgreePrivacyAuthorization(){
  271. },
  272. getNewsInfo(){
  273. API_weixin.bannerList({
  274. classify:4,
  275. }).then((res) => {
  276. uni.hideLoading();
  277. //this.newsList = res.data.data;
  278. this.bannerlist =res.data.data.map(item=>{
  279. item.image=item.picUrl
  280. return item
  281. })
  282. }).catch(error => {
  283. uni.showToast({icon: 'none',
  284. title: error,
  285. icon: "none"
  286. })
  287. })
  288. },
  289. changePhone(){
  290. var _this=this;
  291. uni.showModal({
  292. title: '提示',
  293. content: '是否修改当前手机号',
  294. //confirmText:"",
  295. showCancel: true,
  296. success: function(res) {
  297. if (res.confirm) {
  298. _this.show=true
  299. //uni.navigateBack()
  300. } else if (res.cancel) {
  301. //.log('用户点击取消');
  302. }
  303. }
  304. });
  305. },
  306. updateintentionBtn(e){
  307. console.log(e);
  308. var intention=e[0].value
  309. uni.showLoading({
  310. title: "加载中",
  311. mask: true,
  312. })
  313. API.updateIntention({
  314. intention: intention
  315. }).then((res) => {
  316. uni.hideLoading();
  317. this.userInfo.intention=intention;
  318. }).catch(error => {
  319. this.showPhone = false;
  320. uni.hideLoading();
  321. })
  322. },
  323. showIcon(i) {
  324. if (i == 1) {
  325. uni.showToast({
  326. title: "未进行实名认证",
  327. icon: "none"
  328. })
  329. }
  330. if (i == 2) {
  331. uni.showToast({
  332. title: "未进行企业认证",
  333. icon: "none"
  334. })
  335. }
  336. },
  337. ck1() {
  338. var user = this.carhelp.getPersonInfo();
  339. if (user.status != 1) {
  340. return false
  341. }
  342. return true
  343. },
  344. ck2() {
  345. var enterpriseInfo = this.carhelp.getPersonInfoPlus().enterpriseInfo;
  346. if (!enterpriseInfo || enterpriseInfo.status != 1) {
  347. return false
  348. }
  349. return true
  350. },
  351. gotoUrl1(url) {
  352. if (this.ck1()) {
  353. } else {
  354. uni.showToast({
  355. icon: 'none',
  356. title: "当前操作需要实名认证"
  357. })
  358. return
  359. }
  360. uni.navigateTo({
  361. url: "/" + url
  362. })
  363. },
  364. gotoUrl0(url) {
  365. var user = this.carhelp.getPersonInfo();
  366. if (!user.id) {
  367. uni.showToast({
  368. title:"请登录",
  369. icon:"none"
  370. })
  371. return false
  372. }
  373. uni.navigateTo({
  374. url: "/" + url
  375. })
  376. },
  377. gotoUrl2(url) {
  378. if (this.ck2()) {
  379. } else {
  380. uni.showToast({
  381. icon: 'none',
  382. title: "当前操作需要进行企业认证"
  383. })
  384. return
  385. }
  386. uni.navigateTo({
  387. url: "/" + url
  388. })
  389. },
  390. gotoMyJobInformation() {
  391. //zkx 需要认证
  392. uni.navigateTo({
  393. url: "/pages/packages/mine/myJobInformation/myJobInformation"
  394. })
  395. },
  396. confirmPhone() {
  397. this.showPhone = false;
  398. uni.makePhoneCall({
  399. phoneNumber: this.content //仅为示例
  400. });
  401. },
  402. showPhoneMethod() {
  403. if (this.content == "") {
  404. uni.showLoading({
  405. title: "加载中",
  406. mask: true,
  407. })
  408. API_weixin.findValueByName({
  409. name: '客服电话'
  410. }).then((res) => {
  411. this.content = res.data
  412. uni.hideLoading();
  413. this.showPhone = true;
  414. }).catch(error => {
  415. this.showPhone = false;
  416. uni.hideLoading();
  417. })
  418. } else {
  419. this.showPhone = true;
  420. }
  421. },
  422. getNum1() {
  423. API.myRegistrationNotReadNum().then((res) => {
  424. this.num1 = res.data.notReadNum
  425. }).catch(error => {
  426. //.log(error)
  427. })
  428. },
  429. getNum2() {
  430. API.myReceivedRegistrationNotReadNum().then((res) => {
  431. this.num2 = res.data.notReadNum
  432. }).catch(error => {
  433. //.log(error)
  434. })
  435. },
  436. findByOpenId() {
  437. uni.showLoading({
  438. title: "加载中",
  439. mask: true,
  440. })
  441. API_weixin.findByOpenId({
  442. openId: this.carhelp.getOpenId(),
  443. noerror: true
  444. }).then((res) => {
  445. this.isReady=true;
  446. this.carhelp.setPersonInfo(res.data.regUser);
  447. this.carhelp.setToken(res.data.token);
  448. this.carhelp.setPersonInfoPlus(res.data);
  449. this.userInfo = res.data.regUser;
  450. this.src = this.userInfo.photo
  451. uni.hideLoading();
  452. this.show = false;
  453. var jobInformationInfo = this.carhelp.getPersonInfoPlus().jobInformationInfo;
  454. if(jobInformationInfo==null){
  455. this.num3=0
  456. }else{
  457. if(jobInformationInfo.status==1){
  458. this.num3=2
  459. }else{
  460. this.num3=1
  461. }
  462. }
  463. if (this.ck1()) {
  464. this.getNum1()
  465. }
  466. if (this.ck2()) {
  467. this.getNum2()
  468. }
  469. }).catch(error => {
  470. //.log("11111")
  471. this.carhelp.logoff();
  472. this.userInfo = {};
  473. uni.hideLoading();
  474. this.show = true;
  475. this.isReady=true;
  476. // uni.showToast({icon: 'none',
  477. // title: error
  478. // })
  479. //this.getPhone()
  480. })
  481. },
  482. close() {
  483. // #ifdef MP-WEIXIN
  484. if (this.userInfo.id) {
  485. } else {
  486. uni.reLaunch({
  487. url: "/"
  488. })
  489. }
  490. // #endif
  491. },
  492. changePhoneUser(phone) {
  493. API.changePhone(phone).then((res2) => {
  494. this.findByOpenId()
  495. }).catch(error2 => {
  496. uni.showToast({
  497. icon: 'none',
  498. title: error2
  499. })
  500. })
  501. },
  502. createUser(phone) {
  503. if (this.userInfo.id) {
  504. console.log("changePhoneUser",phone)
  505. this.changePhoneUser(phone)
  506. } else{
  507. console.log("createUser",phone)
  508. API.createUser({
  509. phone: phone,
  510. openId: this.carhelp.getOpenId()
  511. }).then((res2) => {
  512. API_weixin.saveLoginRecord({
  513. openId:this.carhelp.getOpenId()
  514. }).then((res) => {
  515. console.log('App createUser 记录用户登陆')
  516. }).catch(error => {
  517. console.log('App createUser 记录用户登陆 失败')
  518. })
  519. this.findByOpenId()
  520. }).catch(error2 => {
  521. uni.showToast({
  522. icon: 'none',
  523. title: error2
  524. })
  525. })
  526. }
  527. },
  528. decryptPhoneNumberH5() {
  529. // #ifdef H5
  530. this.show = false
  531. var _this = this
  532. uni.showModal({
  533. title: '输入手机号测试',
  534. editable: true,
  535. //content: '这是一个模态弹窗',
  536. success: function(res) {
  537. if (res.confirm) {
  538. //_this.createUser(res.content)
  539. if (_this.userInfo.id) {
  540. _this.changePhoneUser(res.content)
  541. } else{
  542. _this.createUser(res.content)
  543. }
  544. } else if (res.cancel) {
  545. //.log('用户点击取消');
  546. }
  547. }
  548. });
  549. // #endif
  550. },
  551. decryptPhoneNumber(e) {
  552. console.log(e, this.carhelp.getOpenId())
  553. var _this=this;
  554. if (!e.detail.code&&e.detail.errMsg == 'getPhoneNumber:ok') {
  555. uni.login({
  556. provider: 'weixin', //使用微信登录
  557. success: function(loginRes) {
  558. API_weixin.decryptData({
  559. code: loginRes.code,
  560. encryptedData: e.detail.encryptedData,
  561. iv: e.detail.iv
  562. }).then((res) => {
  563. console.log(res)
  564. if (res.data) {
  565. console.log(_this.userInfo.id)
  566. _this.createUser(res.data)
  567. } else {
  568. uni.showToast({
  569. icon: 'none',
  570. title: "获取手机号失败,请检查"
  571. })
  572. }
  573. }).catch(error => {
  574. uni.showToast({
  575. icon: 'none',
  576. title: error
  577. })
  578. //this.getPhone()
  579. })
  580. }
  581. });
  582. } else {
  583. uni.showLoading({
  584. title: "加载中",
  585. mask: true,
  586. })
  587. API_weixin.findUserPhoneNumber(e.detail.code).then((res) => {
  588. if (res.data) {
  589. this.createUser(res.data)
  590. } else {
  591. uni.showToast({
  592. icon: 'none',
  593. title: "获取手机号失败,请检查"
  594. })
  595. }
  596. }).catch(error => {
  597. uni.showToast({
  598. icon: 'none',
  599. title: error
  600. })
  601. //this.getPhone()
  602. })
  603. }
  604. },
  605. customBack() {
  606. },
  607. toAuthentication() {
  608. var user = this.carhelp.getPersonInfo();
  609. if (!user.id) {
  610. uni.showToast({
  611. title:"请登录",
  612. icon:"none"
  613. })
  614. return false
  615. }
  616. uni.navigateTo({
  617. url: '/pages/packages/mine/otherServices/authentication'
  618. })
  619. },
  620. toShareEmployment() {
  621. uni.navigateTo({
  622. url: '/pages/packages/mine/employmentService/shareEmployment'
  623. })
  624. }
  625. }
  626. }
  627. </script>
  628. <style>
  629. page {
  630. background: #F0F0F2;
  631. padding-bottom: 150px;
  632. }
  633. </style>
  634. <style lang="scss" scoped>
  635. .swiper{
  636. margin: 32rpx;
  637. }
  638. .showImg {
  639. width: 38rpx;
  640. height: 38rpx;
  641. }
  642. .top {
  643. display: flex;
  644. align-items: center;
  645. padding: 40rpx 32rpx 88rpx;
  646. background: url(@/assets/img/mineCover.png), linear-gradient(180deg, rgba(39, 149, 253, 1) 0%, rgba(118, 182, 255, 1) 100%);
  647. background-repeat: no-repeat;
  648. background-position: right;
  649. .photo {
  650. /deep/.u-avatar {
  651. width: 120rpx !important;
  652. height: 120rpx !important;
  653. box-shadow: 0px 1px 3px 0px rgba(39, 149, 253, 100);
  654. border: 2px solid rgba(255, 255, 255, 1);
  655. }
  656. }
  657. .login {
  658. color: rgba(255, 255, 255, 1);
  659. font-size: 40rpx;
  660. text-align: left;
  661. font-family: 'PingFangSC-medium';
  662. margin-left: 24rpx;
  663. }
  664. .logined {
  665. color: rgba(255, 255, 255, 1);
  666. margin-left: 24rpx;
  667. .name {
  668. font-size: 40rpx;
  669. font-family: 'PingFangSC-medium';
  670. display: flex;
  671. align-items: center;
  672. .img-box {
  673. margin-left: 8rpx;
  674. overflow: hidden;
  675. img {
  676. width: 40rpx;
  677. height: 40rpx;
  678. vertical-align: middle;
  679. z-index: 999;
  680. position: relative;
  681. }
  682. }
  683. }
  684. .tel {
  685. margin-top: 8rpx;
  686. font-size: 32rpx;
  687. display: flex;
  688. img {
  689. width: 40rpx;
  690. height: 40rpx;
  691. }
  692. }
  693. }
  694. }
  695. .card1 {
  696. margin-top: -32rpx !important;
  697. }
  698. .card {
  699. background-color: #fff;
  700. border-radius: 12px;
  701. margin: 32rpx;
  702. padding: 32rpx;
  703. /deep/.u-grid-item {
  704. width: 25% !important;
  705. }
  706. .title {
  707. color: rgba(16, 16, 16, 1);
  708. font-size: 40rpx;
  709. margin-bottom: 20rpx;
  710. }
  711. .grid-text {
  712. color: rgba(51, 51, 51, 1);
  713. margin-top: 8rpx;
  714. }
  715. .icon {
  716. width: 56rpx;
  717. height: 56rpx;
  718. img {
  719. width: 100%;
  720. height: 100%;
  721. }
  722. }
  723. .badge-icon {
  724. position: absolute;
  725. top: 24rpx;
  726. right: 40rpx;
  727. width: 30rpx;
  728. height: 30rpx;
  729. }
  730. .checked {
  731. position: absolute;
  732. bottom: 72rpx;
  733. right: 40rpx;
  734. width: 30rpx;
  735. height: 30rpx;
  736. }
  737. }
  738. // 弹窗
  739. .u-mode-center-main {
  740. width: 560rpx !important;
  741. border-radius: 12px;
  742. padding: 80rpx 48rpx;
  743. .title {
  744. color: rgba(16, 16, 16, 1);
  745. font-size: 32rpx;
  746. font-family: 'PingFangSC-medium';
  747. }
  748. .login-btn {
  749. background-color: rgba(0, 188, 99, 1);
  750. color: #fff;
  751. padding: 8rpx 70rpx;
  752. margin-top: 56rpx;
  753. margin-bottom: 16rpx;
  754. border-radius: 8px;
  755. display: flex;
  756. font-size: 32rpx;
  757. text {
  758. margin-left: 8rpx;
  759. }
  760. }
  761. .radio {
  762. display: inline-block;
  763. width: 100%;
  764. display: flex;
  765. justify-content: center;
  766. font-size: 24rpx;
  767. color: #777777;
  768. margin-left: 20rpx;
  769. .uni-radio-input {
  770. width: 24rpx;
  771. height: 24rpx;
  772. }
  773. .uni-radio-input-checked:before {
  774. font-size: 24rpx;
  775. background-color: rgb(0, 122, 255);
  776. border-color: rgb(0, 122, 255);
  777. }
  778. }
  779. }
  780. .btncontact:after{
  781. content: none;
  782. }
  783. .btncontact{
  784. display: flex;
  785. flex-direction: column;
  786. background: white;
  787. padding:0;
  788. .icon{
  789. margin: 0 auto;
  790. }
  791. .grid-text{
  792. margin-top: 8rpx;
  793. font-size: 28rpx;
  794. line-height: 44rpx;
  795. }
  796. }
  797. .intentionClass{
  798. font-size: 32rpx;
  799. float: right;
  800. .intentionClassSpan{
  801. margin-left: 8rpx;
  802. }
  803. .intentionClassSpan1{
  804. color: #4caf50;
  805. }
  806. .intentionClassSpan2{
  807. color: #ff5722;
  808. }
  809. }
  810. </style>