mineEdit.vue 24 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004
  1. <template>
  2. <view>
  3. <statusBar :item="navBarData"></statusBar>
  4. <view class="editBox">
  5. <view class="edit_avatar">
  6. <view class="edit_title">
  7. <text>头像</text>
  8. </view>
  9. <view class="userAvatar" @click="updateava">
  10. <image :src="userData.avatar" mode="aspectFill"></image>
  11. </view>
  12. </view>
  13. <view class="setName">
  14. <view class="edit_title">
  15. <text>姓名</text>
  16. </view>
  17. <view class="input_details">
  18. <view class="nickname">
  19. <input type="text" style=" text-align: right;" maxlength="10" placeholder="请输入昵称"
  20. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);"
  21. v-model="userData.username" />
  22. </view>
  23. </view>
  24. </view>
  25. <view class="setPicker">
  26. <view class="edit_title">
  27. <text>性别</text>
  28. </view>
  29. <picker mode="selector" :range="genderList" :value="userData.sex" @change="handelGender">
  30. <!-- <view class="content"> -->
  31. <view class="input_details">
  32. <view class="details">
  33. <view class="uni-input text">{{!genderList[userData.sex]?'请选择':genderList[userData.sex]}}
  34. </view>
  35. </view>
  36. <view class="arrow">
  37. <image src="https://teacherapi.cocorobo.cn/teaching-file/static//mine/arrow-right_gray.png"
  38. mode="aspectFill"></image>
  39. </view>
  40. </view>
  41. <!-- </view> -->
  42. </picker>
  43. </view>
  44. <view class="shade" v-if="allShow" @click="hiddenShade">
  45. </view>
  46. <view class="setPicker">
  47. <!-- <view class="content"> -->
  48. <view class="edit_title">
  49. <text>学院</text>
  50. </view>
  51. <view class="InpLeft" @click="show">
  52. <view class="" style="position: relative;">
  53. <view class="">
  54. {{ !userData.stuName?'请选择学院':userData.stuName }}
  55. </view>
  56. <view class="stuListSty" v-if="isshow">
  57. <view class="Usearch">
  58. <u-search placeholder="搜索学院" :showAction="false" shape="square"
  59. v-model="searchStudent"></u-search>
  60. <view class="UsearchBtn" @click.stop="typeIn(0)">
  61. 手动录入
  62. </view>
  63. </view>
  64. <scroll-view scroll-y="true" show-scrollbar="true" class="list">
  65. <view id="demo1" class="listcon" @click.stop="addStu" :data-item="i"
  66. v-for="(i,index) in colleges" :key="i">{{i.name}}</view>
  67. </scroll-view>
  68. </view>
  69. </view>
  70. <view class="arrow">
  71. <image src="https://teacherapi.cocorobo.cn/teaching-file/static/mine/arrow-right_gray.png"
  72. mode="aspectFill"></image>
  73. </view>
  74. </view>
  75. </view>
  76. <view class="setPicker">
  77. <view class="edit_title">
  78. <text>专业</text>
  79. </view>
  80. <view class="InpLeft" @click.stop="majorshow">
  81. <view class="" style="position: relative;">
  82. <view class="">
  83. {{ !userData.majorName?'请选择专业':userData.majorName }}
  84. </view>
  85. <view class="stuListSty" v-if="jorshow">
  86. <view class="Usearch">
  87. <u-search placeholder="搜索专业" :showAction="false" shape="square"
  88. v-model="searchMajor"></u-search>
  89. <view class="UsearchBtn" @click.stop="typeIn(1)">
  90. 手动录入
  91. </view>
  92. </view>
  93. <scroll-view scroll-y="true" show-scrollbar="true" class="list">
  94. <view class="listcon" v-if="!majorList.length">
  95. 此学院暂时没有专业分类哦
  96. </view>
  97. <view id="demo1" class="listcon" @click.stop="addmajor" :data-jor="i"
  98. v-for="(i,index) in majorList" :key="i">{{i.name}}</view>
  99. </scroll-view>
  100. </view>
  101. </view>
  102. <view class="arrow">
  103. <image src="https://teacherapi.cocorobo.cn/teaching-file/static/mine/arrow-right_gray.png"
  104. mode="aspectFill"></image>
  105. </view>
  106. <!--
  107. <input class="uni-input" v-model="searchMajor" style="width: 100%;" @click.stop="majorshow"
  108. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" placeholder="请选择专业" /> -->
  109. <!-- <scroll-view scroll-y="true" show-scrollbar="true" class="list" v-if="jorshow">
  110. <view id="demo1" class="listcon" @click="addmajor" :data-jor="i" v-for="(i,index) in majorList"
  111. :key="index">{{i.name}}</view>
  112. </scroll-view>
  113. <view class="arrow">
  114. <image src="https://teacherapi.cocorobo.cn/teaching-file/static/mine/arrow-right_gray.png"
  115. mode="aspectFill"></image>
  116. </view> -->
  117. </view>
  118. </view>
  119. <view class="setPicker">
  120. <view class="edit_title">
  121. <text>职称</text>
  122. </view>
  123. <picker mode="selector" :range="rankList" :value="userData.rankl" @change="handelrank">
  124. <view class="input_details">
  125. <view class="details">
  126. <view class="uni-input text">{{!userData.rankl?'请选择':userData.rankl}}</view>
  127. </view>
  128. <view class="arrow">
  129. <image src="https://teacherapi.cocorobo.cn/teaching-file/static//mine/arrow-right_gray.png"
  130. mode="aspectFill"></image>
  131. </view>
  132. </view>
  133. </picker>
  134. </view>
  135. <view class="setIntro">
  136. <view class="edit_title">
  137. <text>简介</text>
  138. </view>
  139. <view class="input_details">
  140. <view class="selfdomIntro">
  141. <textarea type="text" placeholder="请输入你的个性签名" maxlength="75"
  142. placeholder-style="font-size: 28rpx; color: rgb(153, 153, 153);" style="color: black;"
  143. v-model="userData.brief" />
  144. </view>
  145. </view>
  146. </view>
  147. </view>
  148. <view class="btnBox">
  149. <view class="btn">
  150. <button @click="saveInfo">保存修改</button>
  151. <button @click="gotoLogin">退出登录</button>
  152. </view>
  153. </view>
  154. <!-- 弹窗 -->
  155. <view>
  156. <view class="mask" v-show="showPopup" @click="closePopup"></view>
  157. <view class="popup-container" v-show="showPopup">
  158. <view class="popup">
  159. <view class="header">
  160. <text>确认修改</text>
  161. </view>
  162. <view class="footer">
  163. <view class="cancel-btn" @click="closePopup">取消</view>
  164. <view class="confirm-btn" @click="conf">确认</view>
  165. </view>
  166. </view>
  167. </view>
  168. </view>
  169. <view>
  170. <view class="popup-container2" style="height: 175px;" v-show="showPopupConfirm">
  171. <view class="popup">
  172. <view class="header" style="margin-top: 15px;">
  173. <view class="imgShade">
  174. <image src="../../static/mine/gou3.png" mode="aspectFill">
  175. </view>
  176. </image>
  177. <text style="margin-bottom: 24px;">修改成功</text>
  178. </view>
  179. </view>
  180. </view>
  181. </view>
  182. <u-popup :show="popupshow" mode="center" round="10" :closeable='true' @close="popupclose">
  183. <view style="width: 600rpx;box-sizing: border-box;padding: 40px 20rpx; padding-bottom: 30px;">
  184. <view class="" style="display: flex;align-items: center;">
  185. <!-- <text>{{ typyInall?'专业':'学校' }} :</text> -->
  186. <u--input :placeholder="typyInall?'请输入专业':'请输入学院'" border="surround" v-model="typyInCon"></u--input>
  187. </view>
  188. <view style="display: flex;width: 100%;justify-content: space-around;margin-top: 20rpx;">
  189. <view class="typyInbtn" @click="popupclose">
  190. 取消
  191. </view>
  192. <view class="typyInbtn" @click="popupaffirm">
  193. 确定
  194. </view>
  195. </view>
  196. </view>
  197. </u-popup>
  198. <!-- <van-popup v-model="popupshow" round position="bottom" :style="{ height: '30%' }" /> -->
  199. </view>
  200. </template>
  201. <script>
  202. export default {
  203. data() {
  204. // const currentDate = this.getDate({
  205. // format: true
  206. // })
  207. return {
  208. navBarData: {
  209. title: '个人资料',
  210. btn: 1
  211. },
  212. allShow: false,
  213. searchStudent: '', //学校搜索栏
  214. searchMajor: '', //专业搜索栏
  215. // 相别选项
  216. genderList: ['男', '女'],
  217. //学校选项
  218. isshow: false,
  219. stuName: '', //学校名称
  220. colleges: [], //学校列表
  221. // schoolList: ['深圳信息XX学院', '深圳XX学院', '深圳XX学院'],
  222. //专业选项
  223. jorshow: false,
  224. majorList: [],
  225. majorName: '',
  226. // speList: ['互联网', '网络通信', '航空', '汽修', '珠宝', '文秘', '设计'],
  227. //职称选项
  228. rankList: ['教授', '副教授', '讲师', '助教', '其他'],
  229. // rankList: ['xx', 'xx', 'xx'],
  230. // 兴趣选项
  231. hobbyList: ['篮球', '编程', '钢琴', '美术', '摄影'],
  232. gender: '男',
  233. school: 'xx学院',
  234. //控制弹窗
  235. showPopup: false,
  236. //修改成功弹窗
  237. showPopupConfirm: false,
  238. // isFirstShow: true,
  239. // 手动录入弹窗
  240. popupshow: false,
  241. typyInCon: '',
  242. typyInall: 0,
  243. // 用户信息数据
  244. // 这两个因为要监视,所以不能放对象里面
  245. inpTxt: '', //学校id
  246. majorInpTxt: '', //专业id
  247. userData: {
  248. // oid: '',
  249. // avatar: '', //头像
  250. // username: '', //用户名
  251. // sex: '', //用户性别
  252. // inpTxt: '', //学校
  253. // majorInpTxt: '', //专业
  254. // rankl: '', //职称
  255. // brief: '', //用户简介
  256. }
  257. };
  258. },
  259. watch: {
  260. searchMajor: {
  261. handler(val) {
  262. // console.log('val', val);
  263. if (val === '') {
  264. this.majorInpTxt = ''
  265. }
  266. // 模糊搜索专业
  267. let data = {
  268. mid: this.inpTxt,
  269. txt: val
  270. }
  271. this.$request('/selectLikeMajors', "get", data).then(res => {
  272. // console.log('模糊搜索专业', res);
  273. this.majorList = res[0]
  274. })
  275. // this.selectMajor(val)
  276. }
  277. },
  278. searchStudent: {
  279. handler(val) {
  280. // console.log('val', val);
  281. // 模糊搜索学院
  282. // if (val === '') {
  283. // this.inpTxt = ''
  284. // this.majorName = ''
  285. // this.majorInpTxt = ''
  286. // }
  287. this.$request('/selectLikeColleges', "get", {
  288. txt: val
  289. }).then(res => {
  290. // console.log(res);
  291. this.colleges = res[0]
  292. })
  293. // this.selectMajor(val)
  294. }
  295. },
  296. inpTxt: {
  297. handler(val) {
  298. // console.log('val', val);
  299. this.selectMajor(val)
  300. }
  301. }
  302. },
  303. methods: {
  304. popupclose() {
  305. this.popupshow = false
  306. this.typyInCon = ''
  307. this.searchStudent = ''
  308. },
  309. popupaffirm() {
  310. if (!this.typyInall) {
  311. if (!this.typyInCon) return uni.showToast({
  312. title: '请输入学院',
  313. icon: 'none',
  314. })
  315. this.userData.stuName = this.typyInCon
  316. this.searchStudent = ''
  317. this.inpTxt = ''
  318. this.majorInpTxt = ''
  319. this.searchMajor = ''
  320. this.userData.majorName = ''
  321. this.popupshow = false
  322. // 赋值完清空
  323. this.typyInCon = ''
  324. } else {
  325. if (!this.typyInCon) return uni.showToast({
  326. title: '请输入专业',
  327. icon: 'none',
  328. })
  329. this.userData.majorName = this.typyInCon
  330. this.majorInpTxt = ''
  331. this.searchMajor = ''
  332. this.popupshow = false
  333. // 赋值完清空
  334. this.typyInCon = ''
  335. }
  336. },
  337. // 遮罩层关闭
  338. hiddenShade() {
  339. this.isshow = false
  340. this.jorshow = false
  341. this.allShow = false
  342. },
  343. typeIn(e) {
  344. this.hiddenShade()
  345. this.typyInall = e
  346. this.popupshow = true
  347. },
  348. // typeInMajor() {
  349. // if (!this.searchMajor) return
  350. // this.userData.majorName = this.searchMajor
  351. // this.majorInpTxt = ''
  352. // this.searchMajor = ''
  353. // this.hiddenShade()
  354. // },
  355. // 学校list显示与隐藏
  356. show() {
  357. this.isshow = true
  358. this.allShow = true
  359. },
  360. // 专业list显示与隐藏
  361. majorshow() {
  362. // console.log('专业list显示与隐藏',this.inpTxt);
  363. if (!this.userData.stuName) {
  364. uni.showToast({
  365. title: '请先选择学院',
  366. icon: 'none',
  367. duration: 1000
  368. });
  369. return
  370. }
  371. this.allShow = true
  372. this.jorshow = true
  373. },
  374. // 选择学校
  375. addStu(e) {
  376. let data = e.currentTarget.dataset.item
  377. if (this.inpTxt == data.id) {
  378. // uni.showToast({
  379. // title: '请勿选择相同学校',
  380. // icon: 'none',
  381. // })
  382. // this.userData.majorName = ''
  383. this.userData.stuName = data.name
  384. this.isshow = false
  385. this.allShow = false
  386. return
  387. }
  388. // 选择学校时,将专业的数据清除,让其重新选择
  389. this.majorInpTxt = ''
  390. this.userData.majorName = ''
  391. this.majorList = []
  392. // console.log(data);
  393. this.inpTxt = data.id
  394. this.userData.stuName = data.name
  395. this.isshow = false
  396. this.allShow = false
  397. },
  398. // 选择专业
  399. addmajor(e) {
  400. let data = e.currentTarget.dataset.jor
  401. // console.log('选择专业', e);
  402. this.majorInpTxt = data.id
  403. this.userData.majorName = data.name
  404. // console.log('选择专业', this.majorInpTxt);
  405. this.jorshow = false
  406. this.allShow = false
  407. },
  408. // 根据选择的学校来进行显示专业
  409. selectMajor(e) {
  410. // console.log('根据选择的学校来进行显示专业', e);
  411. let data = {
  412. mid: e
  413. }
  414. this.$request('/selectMajors', "get", data).then(res => {
  415. console.log('显示专业列表', res);
  416. // if (res[0].length === 0) {
  417. // this.majorList[0] = {
  418. // name: '此学校没有专业分类哦'
  419. // }
  420. // } else {
  421. this.majorList = res[0]
  422. // }
  423. })
  424. },
  425. // 上传图片
  426. updateava() {
  427. let that = this
  428. uni.chooseImage({
  429. count: 1, // 图片数量
  430. sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
  431. sourceType: ['album', 'camera'], //从相册选择或者拍照
  432. success: (res) => {
  433. const tempFilePaths = res.tempFilePaths[0];
  434. // that.userData.avatar = tempFilePaths
  435. const uploadTask = uni.uploadFile({
  436. url: 'https://awsupload.cocorobo.cn/img', // post请求地址
  437. // url: 'http://139.159.246.165:7006/img', // post请求地址
  438. filePath: tempFilePaths,
  439. name: 'file', // 待确认
  440. header: {
  441. // 不要写这个不然报错
  442. // 'Content-Type': 'multipart/form-data',
  443. },
  444. success: function(res) {
  445. // console.log(res);
  446. that.userData.avatar = res.data
  447. let img = JSON.parse(res.data)
  448. console.log('上传图片', img);
  449. that.userData.avatar = img.fileUrl
  450. },
  451. fail: function(uploadFileFail) {
  452. console.log('Error:', uploadFileFail.data);
  453. },
  454. complete: () => {
  455. // 接口调用结束的回调函数(调用成功、失败都会执行)
  456. // console.log('Complete:');
  457. }
  458. });
  459. }
  460. });
  461. },
  462. // 获取渲染数据
  463. getData() {
  464. const value = this.$store.state.user.openid;
  465. if (value == '') return
  466. // console.log('????', this.$store.state.user.openid);
  467. this.$request('/selectUser', "POST", {
  468. openid: this.$store.state.user.openid
  469. }).then(res => {
  470. // 假如简介为null
  471. // console.log('res[0][0].brief', res);
  472. if (!res[0][0].brief) {
  473. res[0][0].brief = ''
  474. }
  475. // console.log('获取渲染数据', res[0][0]);
  476. this.userData = res[0][0]
  477. this.inpTxt = res[0][0].school
  478. this.majorInpTxt = res[0][0].spe
  479. // this.stuName = res[0][0].stuName
  480. // console.log('this.stuName', this.stuName);
  481. this.majorName = res[0][0].majorName
  482. this.selectMajor(this.inpTxt)
  483. })
  484. // 获取学院
  485. this.$request('/selectColleges', "get", {}).then(res => {
  486. // console.log(res);
  487. this.colleges = res[0]
  488. })
  489. },
  490. // 取消操作
  491. closePopup() {
  492. this.showPopup = false;
  493. },
  494. // 确认操作
  495. conf() {
  496. this.showPopup = false;
  497. // console.log(' this.userData', this.userData);
  498. this.userData.school = this.inpTxt
  499. this.userData.spe = this.majorInpTxt
  500. this.userData.username=encodeURIComponent(this.userData.username)
  501. this.userData.stuName=encodeURIComponent(this.userData.stuName)
  502. this.userData.majorName=encodeURIComponent(this.userData.majorName)
  503. this.userData.brief=encodeURIComponent(this.userData.brief)
  504. // return console.log('提交修改', this.userData);
  505. this.$request('/updateUserInfo', "POST", this.userData).then(res => {
  506. this.showPopupConfirm = true
  507. // console.log('this', this);
  508. this.$request('/selectUser', 'POST', {
  509. oId: this.$store.state.user.openid
  510. }).then(res => {
  511. // console.log('获取caozuo', res[0][0]);
  512. this.$store.dispatch('asyncUpdateUser', res[0][0])
  513. })
  514. setTimeout(() => {
  515. this.showPopupConfirm = false
  516. this.getData()
  517. }, 1500)
  518. })
  519. },
  520. // 点击保存修改
  521. saveInfo() {
  522. // console.log('点击保存修改', this.userData);
  523. const value = this.$store.state.user.openid;
  524. if (value == '') return uni.showToast({
  525. title: '未登录',
  526. icon: 'none'
  527. })
  528. if (!this.userData.username) {
  529. return uni.showToast({
  530. title: '昵称不能为空',
  531. icon: 'none'
  532. })
  533. }
  534. if (!this.userData.stuName) {
  535. return uni.showToast({
  536. title: '学院不能为空',
  537. icon: 'none'
  538. })
  539. }
  540. this.showPopup = true
  541. },
  542. // 选择用户性别
  543. handelGender(e) {
  544. // console.log(e);
  545. this.userData.sex = e.detail.value
  546. },
  547. // 职位
  548. handelrank(e) {
  549. // console.log(e);
  550. this.userData.rankl = this.rankList[e.detail.value]
  551. },
  552. // 兴趣
  553. handeHobby(e) {
  554. this.userData.tag = e.detail.value
  555. },
  556. // 清除vuex的数据
  557. gotoLogin() {
  558. let user = {
  559. openid: '',
  560. avatar: '', //头像
  561. username: '', //用户名
  562. sex: '', //用户性别
  563. school: '', //学校id
  564. spe: '', //专业id
  565. rankl: '', //职称
  566. brief: '', //用户简介
  567. stuName: '', //学校名称
  568. majorName: '' //专业名称
  569. }
  570. this.$store.dispatch('asyncUpdateUser', user)
  571. uni.navigateTo({
  572. url: '/pages/login_Wechat/login_Wechat'
  573. })
  574. // 清除本页面数据
  575. this.userData = {}
  576. },
  577. },
  578. onReady() {
  579. // console.log(this.$store.state);
  580. this.getData()
  581. }
  582. }
  583. </script>
  584. <style lang="scss" scoped>
  585. // .popupInp{
  586. // width: 100%;
  587. // display: flex;
  588. // justify-content: center;
  589. // align-items: center;
  590. // }
  591. // .typyInbtnS{
  592. // width: 100%;
  593. // display: flex;
  594. // align-items: center;
  595. // justify-content: flex-end;
  596. .typyInbtn {
  597. // width: 40rpx;
  598. // width: 200rpx;
  599. box-sizing: border-box;
  600. padding: 10rpx 60rpx;
  601. border-radius: 10rpx;
  602. color: #fff;
  603. // display: flex;
  604. // justify-content: center;
  605. // align-items: center;
  606. background-color: #0081FE;
  607. }
  608. ::v-deep .u-safe-bottom {
  609. display: none;
  610. }
  611. .typyInbtn2 {
  612. box-sizing: border-box;
  613. padding: 10rpx 20rpx;
  614. border-radius: 10rpx;
  615. display: flex;
  616. justify-content: center;
  617. align-items: center;
  618. background-color: #0081FE;
  619. color: #E7E7E7;
  620. margin-right: 20px;
  621. }
  622. // }
  623. .mask {
  624. position: fixed;
  625. top: 0;
  626. left: 0;
  627. width: 100%;
  628. height: 100%;
  629. background-color: rgba(0, 0, 0, 0.3);
  630. z-index: 999;
  631. overflow: hidden;
  632. // display: none;
  633. }
  634. .stuListSty {
  635. position: absolute;
  636. top: calc(100% + 15rpx);
  637. right: -20rpx;
  638. display: flex;
  639. flex-direction: column;
  640. justify-content: center;
  641. z-index: 12;
  642. background-color: #fff;
  643. border-radius: 20rpx;
  644. box-shadow: 0 0 20rpx 0 #ccc;
  645. padding: 30rpx;
  646. padding-top: 10rpx;
  647. .Usearch {
  648. margin: 20rpx 0;
  649. // background-color: #0056a8;
  650. width: 100%;
  651. display: flex;
  652. align-items: center;
  653. justify-content: flex-start;
  654. .UsearchBtn {
  655. width: 120rpx;
  656. flex-shrink: 0;
  657. display: flex;
  658. justify-content: center;
  659. align-items: center;
  660. // background-color: #0056a8;
  661. // color: #fff;
  662. }
  663. }
  664. }
  665. .shade {
  666. position: absolute;
  667. top: 0;
  668. left: 0;
  669. width: 100%;
  670. height: 100%;
  671. // background-color: #0056a8;
  672. z-index: 10;
  673. }
  674. .list {
  675. position: relative;
  676. // top: calc(100% + 15rpx);
  677. // right: -20rpx;
  678. width: 550rpx;
  679. height: 600rpx;
  680. display: flex;
  681. flex-direction: column;
  682. background-color: #fff;
  683. // padding: 10rpx 15rpx;
  684. border-radius: 20rpx;
  685. // box-shadow: 0 0 20rpx 0 #ccc;
  686. z-index: 11;
  687. .listcon {
  688. width: 100%;
  689. padding: 20rpx 0;
  690. font-size: 28rpx;
  691. border-bottom: 1rpx #e7e7e7 solid;
  692. }
  693. }
  694. // .list {
  695. // position: absolute;
  696. // top: calc(100% + 15rpx);
  697. // right: -20rpx;
  698. // width: 550rpx;
  699. // height: 600rpx;
  700. // display: flex;
  701. // flex-direction: column;
  702. // background-color: #fff;
  703. // padding: 10rpx 15rpx;
  704. // border-radius: 20rpx;
  705. // box-shadow: 0 0 20rpx 0 #ccc;
  706. // z-index: 10;
  707. // .listcon {
  708. // width: 100%;
  709. // padding: 20rpx 0;
  710. // border-bottom: 1rpx #ccc solid;
  711. // }
  712. // }
  713. .arrow {
  714. display: flex;
  715. image {
  716. width: 32rpx;
  717. height: 32rpx;
  718. }
  719. }
  720. .uni-input {
  721. text-align: right;
  722. color: rgb(153, 153, 153);
  723. }
  724. .popup-container2 {
  725. position: fixed;
  726. top: 50%;
  727. left: 50%;
  728. transform: translate(-50%, -50%);
  729. width: 520rpx;
  730. height: 260rpx;
  731. z-index: 1000;
  732. border-radius: 16rpx;
  733. // display: none;
  734. box-shadow: 0rpx 3rpx 10rpx 5rpx rgba(0, 0, 0, .1);
  735. overflow: hidden;
  736. .popup {
  737. width: 100%;
  738. height: 100%;
  739. display: flex;
  740. flex-direction: column;
  741. background-color: #fff;
  742. border-radius: 16rpx;
  743. overflow: hidden;
  744. .header {
  745. flex: 1;
  746. display: flex;
  747. justify-content: center;
  748. align-items: center;
  749. flex-direction: column;
  750. margin-top: 24px;
  751. font-size: 34rpx;
  752. font-weight: 600;
  753. .imgShade {
  754. width: 170rpx;
  755. height: 170rpx;
  756. display: flex;
  757. justify-content: center;
  758. align-items: center;
  759. border: 10rpx #0056A8 solid;
  760. border-radius: 50%;
  761. box-shadow: 0 0 10rpx #0056A8;
  762. margin-bottom: 10rpx;
  763. }
  764. image {
  765. width: 150rpx;
  766. height: 150rpx;
  767. margin-top: 15px;
  768. margin-bottom: 15px;
  769. }
  770. }
  771. .footer {
  772. width: 100%;
  773. display: flex;
  774. overflow: hidden;
  775. .cancel-btn {
  776. width: 50%;
  777. height: 100rpx;
  778. background-color: #F7F7F7;
  779. color: #000;
  780. font-size: 34rpx;
  781. text-align: center;
  782. border-bottom-left-radius: 16rpx;
  783. line-height: 50px;
  784. }
  785. .confirm-btn {
  786. width: 50%;
  787. height: 100rpx;
  788. background-color: #0081FE;
  789. color: #fff;
  790. font-size: 34rpx;
  791. text-align: center;
  792. line-height: 50px;
  793. }
  794. }
  795. }
  796. }
  797. .edit_title {
  798. display: flex;
  799. align-items: center;
  800. font-size: 32rpx;
  801. width: 60px;
  802. flex-shrink: 0;
  803. }
  804. .editBox {
  805. width: 100%;
  806. // height: 800rpx;
  807. display: flex;
  808. flex-direction: column;
  809. background-color: #fff;
  810. border-top: 1px solid #E7E7E7;
  811. padding: 0 18px;
  812. .edit_avatar {
  813. height: 164rpx;
  814. display: flex;
  815. justify-content: space-between;
  816. .userAvatar {
  817. display: flex;
  818. align-items: center;
  819. image {
  820. width: 120rpx;
  821. height: 120rpx;
  822. }
  823. }
  824. }
  825. .setName {
  826. display: flex;
  827. justify-content: space-between;
  828. height: 92rpx;
  829. border-top: 1px solid #E7E7E7;
  830. .input_details {
  831. display: flex;
  832. align-items: center;
  833. flex-direction: row;
  834. .nickname {
  835. width: 350rpx;
  836. text-align: end;
  837. // padding-right: 10rpx;
  838. // margin-right: 10rpx;
  839. font-size: 28rpx;
  840. color: rgb(153, 153, 153);
  841. }
  842. }
  843. }
  844. .setPicker {
  845. height: 92rpx;
  846. border-top: 1px solid #E7E7E7;
  847. display: flex;
  848. justify-content: space-between;
  849. align-items: center;
  850. font-size: 28rpx;
  851. .InpLeft {
  852. color: rgb(153, 153, 153);
  853. display: flex;
  854. justify-content: flex-end;
  855. align-items: center;
  856. }
  857. // .content {
  858. // height: 92rpx;
  859. // display: flex;
  860. // align-items: center;
  861. // justify-content: space-between;
  862. .input_details {
  863. display: flex;
  864. align-items: center;
  865. justify-content: flex-end;
  866. }
  867. // }
  868. }
  869. .setIntro {
  870. display: flex;
  871. flex-direction: column;
  872. justify-content: space-evenly;
  873. height: 230rpx;
  874. border-top: 1px solid #E7E7E7;
  875. .input_details {
  876. display: flex;
  877. align-items: center;
  878. .selfdomIntro {
  879. width: 100%;
  880. height: 120rpx;
  881. textarea {
  882. width: 100%;
  883. height: 120rpx;
  884. font-size: 28rpx;
  885. color: rgb(153, 153, 153);
  886. }
  887. }
  888. }
  889. }
  890. }
  891. .btnBox {
  892. position: absolute;
  893. margin: 0 85rpx;
  894. bottom: 40px;
  895. .btn {
  896. button {
  897. width: 580rpx;
  898. height: 88rpx;
  899. border: none;
  900. border-radius: 100rpx;
  901. border: 1px solid lightgray;
  902. font-size: 36rpx;
  903. display: flex;
  904. justify-content: center;
  905. align-items: center;
  906. color: #545454;
  907. text-align: center;
  908. &:first-child {
  909. background-color: rgb(0, 86, 168);
  910. color: white;
  911. margin-bottom: 24rpx;
  912. }
  913. &::after {
  914. border: none;
  915. }
  916. }
  917. }
  918. }
  919. </style>