login_Wechat.vue 24 KB

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