login_Wechat.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942
  1. <template>
  2. <view class="login_Wechat">
  3. <statusBar :item='navBarData'></statusBar>
  4. <view class="block">
  5. <button class="avatar-wrapper" open-type="chooseAvatar" @chooseavatar="onChooseAvatar">
  6. <!-- <button class="avatar-wrapper" @click="getImg"> -->
  7. <image class="avatar" :src="avatarUrl"></image>
  8. </button>
  9. </view>
  10. <view class="collpopul" v-if="popmsg">
  11. <view class="contxt">
  12. 登录成功
  13. </view>
  14. </view>
  15. <view class="mid">
  16. <view class="" style="position: relative;padding-left:30rpx;">
  17. 我已阅读并同意<text>《教育小程序服务条款》</text>和 <text>《 隐私协议》</text>新用户自动注册
  18. <view class="quan" @click="isDui">
  19. <image v-if="isShow" class="dui"
  20. src="https://teacherapi.cocorobo.cn/teaching-file/static//yym/dui.png" mode="aspectFill">
  21. </image>
  22. </view>
  23. </view>
  24. </view>
  25. <button class="btn" @click="gotoIndex">一键登录</button>
  26. <view class="popupBlock" v-if="popupShow">
  27. <view class="shade" v-if="allShow" @click="hiddenShade">
  28. </view>
  29. <view class="pop">
  30. <view class="poptit">
  31. 完善信息
  32. </view>
  33. <view class="infoTxt">
  34. <view class="txtcell">
  35. <view class="">
  36. <text class="celTit">学号/工号</text>
  37. </view>
  38. <input @blur="judgeNum" type="number" class="inpSty" maxlength="11" placeholder="输入后自动获取信息"
  39. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" v-model="judgeNumber" />
  40. </view>
  41. <view class="txtcell">
  42. <view class="">
  43. <text class="dian">*</text><text class="celTit">姓名</text>
  44. </view>
  45. <input type="text" class="inpSty" placeholder="请输入真实姓名"
  46. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);"
  47. v-model="uname" />
  48. </view>
  49. <view class="txtcell">
  50. <view class="">
  51. <text class="dian">*</text><text class="celTit">联系方式</text>
  52. </view>
  53. <input @blur="handleInput" type="number" class="inpSty" maxlength="11" placeholder="请输入联系方式"
  54. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" v-model="userData.tel" />
  55. </view>
  56. <view class="txtcell">
  57. <view class="">
  58. <text class="dian">*</text><text class="celTit">院校全称</text>
  59. </view>
  60. <input type="text" class="inpSty" placeholder="请输入院校全称"
  61. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" v-model="stuName" />
  62. </view>
  63. <view class="txtcell">
  64. <view class="">
  65. <text class="celTit">所在部门</text>
  66. </view>
  67. <input type="text" class="inpSty" placeholder="请输入所在部门"
  68. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" v-model="majorName" />
  69. </view>
  70. <view class="txtcell">
  71. <view class="">
  72. <text class="celTit">职称</text><text
  73. style="color: rgba(0, 0, 0, 0.26);padding-left: 10rpx;">(选填)</text>
  74. </view>
  75. <view class="pickerBlock">
  76. <picker mode="selector" @change="rankChange" :range="rankList">
  77. <view class="uni-input">{{!userData.rankl?'请选择':userData.rankl}}</view>
  78. </picker>
  79. <uni-icons type="right" class="icooo" size="20" color='rgba(0, 0, 0, 0.4)'></uni-icons>
  80. </view>
  81. </view>
  82. </view>
  83. <view class="logbtn2" @click="register">
  84. 完善信息并登录
  85. </view>
  86. <view class="logbri">
  87. 完善个人信息后即可加入“丽湖国际双创虚拟教研室”会员,免费获取海量精品资源~
  88. </view>
  89. </view>
  90. </view>
  91. <u-popup :show="popupshow" mode="center" round="10" :closeable='true' @close="popupclose">
  92. <view style="width: 600rpx;box-sizing: border-box;padding: 40px 20rpx; padding-bottom: 30px;">
  93. <view class="" style="display: flex;align-items: center;">
  94. <u--input :placeholder="typyInall?'请输入专业':'请输入学院'" border="surround" v-model="typyInCon"></u--input>
  95. </view>
  96. <view style="display: flex;width: 100%;justify-content: space-around;margin-top: 20rpx;">
  97. <view class="typyInbtn" @click="popupclose">
  98. 取消
  99. </view>
  100. <view class="typyInbtn" @click="popupaffirm">
  101. 确定
  102. </view>
  103. </view>
  104. </view>
  105. </u-popup>
  106. </view>
  107. </template>
  108. <script>
  109. export default {
  110. data() {
  111. return {
  112. // 遮罩框
  113. allShow: false,
  114. isLogin: false,
  115. searchStudent: '', //学校搜索栏
  116. searchMajor: '', //专业搜索栏
  117. popmsg: false,
  118. logbtn: 'logbtn',
  119. logbtn2: 'logbtn2',
  120. avatarUrl: '',
  121. nickname: '',
  122. // 学校
  123. isshow: false,
  124. stuName: '', //学校名称
  125. uname:'',
  126. colleges: [], //学校列表
  127. // inpTxt: '', //学校id
  128. // scharray: ['深圳城市××大学', '深圳××大学', '深圳××大学', '深圳××大学'],
  129. // 专业
  130. jorshow: false,
  131. majorList: [],
  132. majorName: '',
  133. // majorInpTxt: '', //专业id
  134. // speList: ['互联网', '网络通信', '航空', '汽修', '珠宝', '文秘', '设计'],
  135. // 职称
  136. rankList: ['教授', '副教授', '讲师', '助教', '其他'],
  137. // 默认头像的
  138. isShow: false,
  139. // 完善信息弹窗的
  140. popupShow: false,
  141. navBarData: {
  142. title: '登录',
  143. btn: 2 //判断是否显示返回按钮
  144. },
  145. btnCol: [],
  146. // 这两个因为要监视,所以不能放对象里面
  147. inpTxt: '', //学校id
  148. majorInpTxt: '', //专业id
  149. // 手动录入弹窗
  150. popupshow: false,
  151. typyInCon: '',
  152. typyInall: 0,
  153. // 第一次登录
  154. // name2:'', //被监视name
  155. // 学号工号
  156. judgeNumber: '',
  157. userData: {
  158. openid: '',
  159. username: '',
  160. avatar: '',
  161. tel: '',
  162. inpTxt: '', //学校id
  163. majorInpTxt: '', //专业id
  164. rankl: '', //职称
  165. schName: '', //学校名字
  166. jorName: '' //专业名字
  167. }
  168. };
  169. },
  170. watch: {
  171. searchMajor: {
  172. handler(val) {
  173. // 模糊搜索专业
  174. let data = {
  175. mid: this.inpTxt,
  176. txt: val
  177. }
  178. this.$request('/selectLikeMajors', "get", data).then(res => {
  179. // console.log('模糊搜索专业', res);
  180. this.majorList = res[0]
  181. })
  182. // this.selectMajor(val)
  183. }
  184. },
  185. searchStudent: {
  186. handler(val) {
  187. this.$request('/selectLikeColleges', "get", {
  188. txt: val
  189. }).then(res => {
  190. // console.log(res);
  191. this.colleges = res[0]
  192. })
  193. // this.selectMajor(val)
  194. }
  195. },
  196. inpTxt: {
  197. handler(val) {
  198. // console.log('val', val);
  199. this.selectMajor(val)
  200. }
  201. }
  202. },
  203. methods: {
  204. popupclose() {
  205. this.popupshow = false
  206. this.typyInCon = ''
  207. this.searchStudent = ''
  208. },
  209. popupaffirm() {
  210. if (!this.typyInall) {
  211. if (!this.typyInCon) return uni.showToast({
  212. title: '请输入学院',
  213. icon: 'none',
  214. })
  215. this.stuName = this.typyInCon
  216. this.searchStudent = ''
  217. this.inpTxt = ''
  218. this.majorInpTxt = ''
  219. this.searchMajor = ''
  220. this.majorName = ''
  221. this.popupshow = false
  222. // 赋值完清空
  223. this.typyInCon = ''
  224. } else {
  225. if (!this.typyInCon) return uni.showToast({
  226. title: '请输入专业',
  227. icon: 'none',
  228. })
  229. this.majorName = this.typyInCon
  230. this.majorInpTxt = ''
  231. this.searchMajor = ''
  232. this.popupshow = false
  233. // 赋值完清空
  234. this.typyInCon = ''
  235. }
  236. },
  237. typeIn(e) {
  238. this.hiddenShade()
  239. this.typyInall = e
  240. this.popupshow = true
  241. },
  242. // 遮罩层
  243. hiddenShade() {
  244. this.isshow = false
  245. this.jorshow = false
  246. this.allShow = false
  247. },
  248. // 学校list显示与隐藏
  249. show() {
  250. this.isshow = true
  251. // this.jorshow = false
  252. this.allShow = true
  253. },
  254. // 选择学校
  255. addStu(e) {
  256. // 选择学校时,将专业的数据清除,让其重新选择
  257. this.majorInpTxt = ''
  258. this.majorName = ''
  259. this.majorList = []
  260. // 为学校选项赋值
  261. let data = e.currentTarget.dataset.item
  262. this.inpTxt = data.id
  263. this.stuName = data.name
  264. // 学校list隐藏/显示
  265. this.isshow = false
  266. // 遮罩层隐藏
  267. this.allShow = false
  268. },
  269. // 专业list显示与隐藏
  270. majorshow() {
  271. // 学校未选择则提示
  272. if (!this.stuName) {
  273. uni.showToast({
  274. title: '请先选择学院',
  275. icon: 'none',
  276. duration: 1000
  277. });
  278. return
  279. }
  280. // 遮罩层显示
  281. this.allShow = true
  282. this.jorshow = true
  283. },
  284. // 选择专业
  285. addmajor(e) {
  286. let data = e.currentTarget.dataset.jor
  287. // console.log('选择专业', e);
  288. this.majorInpTxt = data.id
  289. this.majorName = data.name
  290. // console.log('选择专业', this.majorInpTxt);
  291. this.jorshow = false
  292. this.allShow = false
  293. },
  294. // 根据选择的学校来进行显示专业
  295. selectMajor(e) {
  296. // console.log('根据选择的学院来进行显示专业', e);
  297. let data = {
  298. mid: e
  299. }
  300. this.$request('/selectMajors', "get", data).then(res => {
  301. this.majorList = res[0]
  302. })
  303. },
  304. // 判断手机号
  305. handleInput(e) {
  306. const {
  307. value
  308. } = e.target
  309. const newValue = value.replace(/\s*/g, '') // 只允许输入数字
  310. this.userData.tel = newValue
  311. },
  312. // 失去焦点查询学号工号
  313. judgeNum() {
  314. if (!this.judgeNumber) return
  315. let opid = uni.getStorageSync('oId')
  316. let data = {
  317. txt: this.judgeNumber
  318. }
  319. this.$request('/selectStudentNumber', "Get", data).then(res => {
  320. console.log('失去焦点查询学号工号', res);
  321. if (res[0].length) {
  322. let aaa = res[0][0]
  323. console.log('aaaaaaaa',aaa);
  324. if (aaa.cid !== null) {
  325. this.inpTxt = aaa.cid
  326. }
  327. if (aaa.sid !== null) {
  328. this.majorInpTxt = aaa.sid
  329. }
  330. if (aaa.department === '') {
  331. this.stuName = ''
  332. } else {
  333. this.stuName = aaa.department
  334. }
  335. if (aaa.class_name === '') {
  336. this.majorName = ''
  337. } else {
  338. this.majorName = aaa.class_name
  339. }
  340. this.uname = aaa.name
  341. } else {
  342. uni.showToast({
  343. title: '学号/工号暂无查询结果',
  344. icon: 'none',
  345. duration: 1000
  346. })
  347. }
  348. })
  349. },
  350. // 选择用户名称
  351. inpvalue(e) {
  352. this.nickname = e.detail.value
  353. },
  354. rankChange(e) {
  355. // console.log('picker发送选择改变,携带值为', e.detail)
  356. this.userData.rankl = this.rankList[e.detail.value]
  357. },
  358. // 上传图片
  359. onChooseAvatar(e) {
  360. // 获取上传的图片
  361. const {
  362. avatarUrl
  363. } = e.detail
  364. // this.avatarUrl = avatarUrl
  365. // console.log(avatarUrl)
  366. let that = this
  367. const uploadTask = uni.uploadFile({
  368. // url: 'http://127.0.0.1:7334/img', // post请求地址
  369. url: 'https://awsupload.cocorobo.cn/img', // post请求地址
  370. // url: 'https://cxcy.ssti.net.cn/api/UploadFirmFile', // post请求地址
  371. // filePath: tempFilePaths,
  372. filePath: avatarUrl,
  373. name: 'file', // 待确认
  374. header: {
  375. // 不要写这个不然报错
  376. // 'Content-Type': 'multipart/form-data',
  377. },
  378. success: function(res) {
  379. let img = JSON.parse(res.data)
  380. console.log('上传图片', img);
  381. that.avatarUrl = img.fileUrl
  382. },
  383. fail: function(uploadFileFail) {
  384. console.log('Error:', uploadFileFail.data);
  385. },
  386. complete: () => {
  387. // 接口调用结束的回调函数(调用成功、失败都会执行)
  388. // console.log('Complete:');
  389. }
  390. });
  391. // this.avatarUrl = avatarUrl
  392. },
  393. // 登录
  394. gotoIndex() {
  395. // if (this.avatarUrl ==
  396. // 'https://mmbiz.qpic.cn/mmbiz/icTdbqWNOwNRna42FI242Lcia07jQodd2FJGIYQfG0LAJGFxM4FbnQP6yfMxBgJ0F3YRqJCJ1aPAK2dQagdusBZg/0'
  397. // ) {
  398. // uni.showToast({
  399. // title: '请选择头像',
  400. // icon: 'error',
  401. // duration: 1000
  402. // });
  403. // return
  404. // }
  405. if (!this.isShow) return uni.showToast({
  406. title: '请勾选条约',
  407. icon: 'error',
  408. duration: 1000
  409. });
  410. let oId = uni.getStorageSync('oId')
  411. // 判断是否登录过
  412. if (this.isLogin) {
  413. // console.log('已注册过直接登录', res[0][0]);
  414. // 修改昵称头像
  415. this.$request('/updateUser', "POST", {
  416. openid: oId,
  417. Nme: this.nickname,
  418. avatar: this.avatarUrl
  419. }).then(res => {
  420. // console.log('updateUser', res);
  421. this.$request('/selectUser', 'POST', {
  422. oId: oId,
  423. }).then(res => {
  424. console.log('已注册过直接登录', res[0]);
  425. this.$store.dispatch('asyncUpdateUser', res[0][0])
  426. this.popmsg = true
  427. setTimeout(() => {
  428. uni.switchTab({
  429. url: '/pages/index/index'
  430. })
  431. }, 1000)
  432. })
  433. })
  434. } else {
  435. console.log('还未注册过,开始注册');
  436. this.userData.openid = oId
  437. this.userData.username = this.nickname
  438. this.userData.avatar = this.avatarUrl
  439. return this.popupShow = true
  440. }
  441. },
  442. register() {
  443. if (!this.uname) return uni.showToast({
  444. title: '请输入姓名',
  445. icon: 'none'
  446. });
  447. if (!this.userData.tel) return uni.showToast({
  448. title: '请输入联系方式',
  449. icon: 'none'
  450. });
  451. if (!this.stuName) return uni.showToast({
  452. title: '请输入院校全称',
  453. icon: 'none'
  454. });
  455. if (this.userData.tel.length != 11) return uni.showToast({
  456. title: '号码不足11位,请检查',
  457. icon: 'none'
  458. });
  459. this.userData.inpTxt = this.inpTxt
  460. this.userData.majorInpTxt = this.majorInpTxt
  461. this.userData.username = encodeURIComponent(this.uname)
  462. this.userData.schName = encodeURIComponent(this.stuName)
  463. this.userData.jorName = encodeURIComponent(this.majorName)
  464. // return console.log(this.userData);
  465. let oId = uni.getStorageSync('oId')
  466. this.$request('/login', 'POST', this.userData).then(res => {
  467. console.log('注册成功', res);
  468. // 添加消息页面系统通知提示已加入会员
  469. this.addMessage()
  470. this.$request('/selectUser', 'POST', {
  471. oId: oId,
  472. }).then(res => {
  473. this.$store.dispatch('asyncUpdateUser', res[0][0])
  474. uni.switchTab({
  475. url: '/pages/index/index'
  476. })
  477. })
  478. })
  479. },
  480. // 添加消息页面系统通知提示加入会员
  481. addMessage() {
  482. let opid = uni.getStorageSync('oId')
  483. let data = {
  484. oid: opid,
  485. acid: '',
  486. type: 1,
  487. }
  488. this.$request('/insertMessage', "POST", data).then(res => {
  489. console.log(res);
  490. })
  491. },
  492. // 勾选取消条约
  493. isDui() {
  494. this.isShow = !this.isShow
  495. },
  496. //获取用户信息(授权)
  497. getImg() {
  498. uni.getUserProfile({
  499. desc: "获取你的昵称、头像、地区及性别",
  500. success: (res) => {
  501. // console.log("所有", res);
  502. this.avatarUrl = res.userInfo.avatarUrl; //获取微信头像
  503. },
  504. fail() {}
  505. })
  506. },
  507. getdata() {
  508. this.$request('/selectUserInfo', "POST", {
  509. openid: uni.getStorageSync('oId')
  510. }).then(res => {
  511. // console.log('获取渲染数据', res[0][0]);
  512. let data = res[0][0]
  513. // console.log(data);
  514. if (!data) {
  515. return
  516. } else {
  517. this.isLogin = true
  518. this.avatarUrl = data.avatar
  519. this.nickname = data.username
  520. }
  521. })
  522. // 获取学院
  523. this.$request('/selectColleges', "get", {}).then(res => {
  524. // console.log(res);
  525. this.colleges = res[0]
  526. })
  527. }
  528. },
  529. onLoad() {
  530. this.avatarUrl =
  531. 'https://ccrb.s3.cn-northwest-1.amazonaws.com.cn/file-1720687971964.jpeg';
  532. this.getdata()
  533. }
  534. }
  535. </script>
  536. <style lang="scss" scoped>
  537. .login_Wechat {
  538. width: 750rpx;
  539. height: 100vh;
  540. background-color: #ffffff;
  541. }
  542. ::v-deep .u-safe-bottom {
  543. display: none;
  544. }
  545. .collpopul {
  546. position: absolute;
  547. padding: 0 30rpx;
  548. background-color: #fff;
  549. top: 10%;
  550. box-shadow: 0rpx 10rpx 10rpx 5rpx rgba(0, 0, 0, .1);
  551. z-index: 100;
  552. width: 650rpx;
  553. height: 90rpx;
  554. left: 50%;
  555. transform: translate(-50%, 0);
  556. border-radius: 30rpx;
  557. display: flex;
  558. align-items: center;
  559. // animation: collpopul 1s cubic-bezier(0,0,0.25,1) forwards;
  560. .contxt {
  561. flex: 1;
  562. font-weight: 580;
  563. font-size: 30rpx;
  564. display: flex;
  565. align-items: center;
  566. image {
  567. padding-right: 10rpx;
  568. }
  569. }
  570. .goMore {
  571. // width: 120rpx;
  572. display: flex;
  573. // height: 35rpx;
  574. height: 100%;
  575. line-height: 30rpx;
  576. align-items: center;
  577. color: #F44265;
  578. font-size: 30rpx;
  579. font-weight: bold;
  580. }
  581. }
  582. @keyframes collpopul {
  583. 0% {
  584. // background: red;
  585. top: 0;
  586. }
  587. 100% {
  588. // background: red;
  589. top: 15%;
  590. }
  591. // 100%{
  592. // opacity: 0;
  593. // }
  594. }
  595. .typyInbtn {
  596. box-sizing: border-box;
  597. padding: 10rpx 60rpx;
  598. border-radius: 10rpx;
  599. color: #fff;
  600. background-color: #0081FE;
  601. }
  602. .typyInbtn2 {
  603. box-sizing: border-box;
  604. padding: 10rpx 20rpx;
  605. border-radius: 10rpx;
  606. display: flex;
  607. justify-content: center;
  608. align-items: center;
  609. background-color: #0081FE;
  610. color: #E7E7E7;
  611. margin-right: 20px;
  612. }
  613. .shade {
  614. position: absolute;
  615. top: 0;
  616. left: 0;
  617. width: 100%;
  618. height: 100%;
  619. // background-color: #0056a8;
  620. z-index: 12;
  621. }
  622. .uni-input {
  623. text-align: right;
  624. }
  625. .stuListSty {
  626. position: absolute;
  627. top: calc(100% + 15rpx);
  628. right: -20rpx;
  629. display: flex;
  630. flex-direction: column;
  631. justify-content: center;
  632. z-index: 12;
  633. background-color: #fff;
  634. border-radius: 20rpx;
  635. box-shadow: 0 0 20rpx 0 #ccc;
  636. padding: 30rpx;
  637. padding-top: 10rpx;
  638. .Usearch {
  639. margin: 20rpx 0;
  640. // background-color: #0056a8;
  641. width: 100%;
  642. display: flex;
  643. align-items: center;
  644. justify-content: flex-start;
  645. .UsearchBtn {
  646. width: 130rpx;
  647. flex-shrink: 0;
  648. display: flex;
  649. justify-content: center;
  650. align-items: center;
  651. // background-color: #0056a8;
  652. // color: #fff;
  653. }
  654. }
  655. }
  656. .list {
  657. position: relative;
  658. // top: calc(100% + 15rpx);
  659. // right: -20rpx;
  660. width: 550rpx;
  661. height: 600rpx;
  662. display: flex;
  663. flex-direction: column;
  664. background-color: #fff;
  665. // padding: 10rpx 15rpx;
  666. border-radius: 20rpx;
  667. // box-shadow: 0 0 20rpx 0 #ccc;
  668. z-index: 11;
  669. .listcon {
  670. width: 100%;
  671. padding: 20rpx 0;
  672. font-size: 28rpx;
  673. border-bottom: 1rpx #e7e7e7 solid;
  674. }
  675. }
  676. .dian {
  677. color: rgba(245, 69, 69, 1);
  678. }
  679. .celTit {
  680. color: rgba(0, 0, 0, 0.8);
  681. }
  682. .icooo {
  683. transform: translate(0, 5rpx);
  684. }
  685. .block {
  686. width: 750rpx;
  687. height: 30vh;
  688. display: flex;
  689. justify-content: center;
  690. align-items: center;
  691. }
  692. .footer {
  693. display: flex;
  694. justify-content: center;
  695. font-size: 28rpx;
  696. margin: auto;
  697. color: #666666;
  698. }
  699. .avatar-wrapper {
  700. width: 200rpx;
  701. height: 200rpx;
  702. padding: 0;
  703. image {
  704. width: 200rpx;
  705. height: 200rpx;
  706. }
  707. }
  708. .inp {
  709. display: flex;
  710. align-items: center;
  711. padding: 0rpx 50rpx;
  712. .nc {
  713. // width: 150rpx;
  714. text-align: left;
  715. }
  716. .weui-input {}
  717. }
  718. .mid {
  719. display: flex;
  720. justify-content: flex-start;
  721. width: 750rpx;
  722. padding: 0rpx 50rpx;
  723. font-size: 13px;
  724. margin-top: 80rpx;
  725. .quan {
  726. position: absolute;
  727. flex-shrink: 0;
  728. top: 0;
  729. left: -10rpx;
  730. width: 32rpx;
  731. height: 32rpx;
  732. border-radius: 50%;
  733. margin-top: 5rpx;
  734. margin-right: 10rpx;
  735. border: 1px #bdbdbd solid;
  736. display: flex;
  737. justify-content: center;
  738. align-items: center;
  739. .dui {
  740. width: 32rpx;
  741. height: 32rpx;
  742. }
  743. }
  744. text {
  745. color: #4a97f2;
  746. }
  747. }
  748. .btn {
  749. background-color: #0056a8;
  750. color: #ffffff;
  751. border-radius: 30px;
  752. margin: 30rpx 55rpx;
  753. // padding: 10rpx 0;
  754. display: flex;
  755. align-items: center;
  756. justify-content: center;
  757. margin-top: 30rpx;
  758. // padding: 0rpx 10rpx;
  759. font-size: 16px;
  760. }
  761. .popupBlock {
  762. position: absolute;
  763. left: 0;
  764. top: 0;
  765. width: 750rpx;
  766. height: 100vh;
  767. background-color: rgba(0, 0, 0, 0.6);
  768. display: flex;
  769. justify-content: center;
  770. align-items: center;
  771. z-index: 10;
  772. .pop {
  773. width: 690rpx;
  774. height: 936rpx;
  775. background-color: #ffffff;
  776. border-radius: 30rpx;
  777. padding: 30rpx;
  778. .poptit {
  779. text-align: center;
  780. height: 48rpx;
  781. line-height: 48rpx;
  782. color: rgba(0, 0, 0, 0.88);
  783. }
  784. .infoTxt {
  785. width: 100%;
  786. height: 448rpx;
  787. margin-top: 40rpx;
  788. margin-bottom: 40rpx;
  789. display: flex;
  790. flex-direction: column;
  791. justify-content: space-between;
  792. .txtcell {
  793. display: flex;
  794. justify-content: space-between;
  795. align-items: center;
  796. border-bottom: 1rpx rgba(231, 231, 231, 1) solid;
  797. padding-bottom: 10rpx;
  798. margin-bottom: 20px;
  799. .inpSty {
  800. right: 0;
  801. bottom: 0;
  802. text-align: right;
  803. }
  804. .pickerBlock {
  805. flex: 1;
  806. display: flex;
  807. justify-content: flex-end;
  808. color: rgba(0, 0, 0, 0.4);
  809. // .uni-input {
  810. // width: 100%;
  811. // height: 100%;
  812. // }
  813. }
  814. }
  815. }
  816. .logbtn2 {
  817. background-color: rgba(0, 86, 168, 1);
  818. width: 580rpx;
  819. height: 88rpx;
  820. border-radius: 60rpx;
  821. display: flex;
  822. justify-content: center;
  823. align-items: center;
  824. color: #fff;
  825. font-size: 36rpx;
  826. margin: 150rpx auto;
  827. margin-bottom: 30rpx;
  828. }
  829. .logbtn {
  830. width: 580rpx;
  831. height: 88rpx;
  832. border-radius: 60rpx;
  833. display: flex;
  834. justify-content: center;
  835. align-items: center;
  836. color: #fff;
  837. font-size: 36rpx;
  838. background-color: rgba(139, 190, 255, 1);
  839. margin: 150rpx auto;
  840. margin-bottom: 30rpx;
  841. }
  842. .logbri {
  843. width: 580rpx;
  844. margin: auto;
  845. text-align: center;
  846. font-size: 24rpx;
  847. color: rgba(48, 129, 232, 1);
  848. }
  849. }
  850. }
  851. </style>