mineEdit.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002
  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. // delete this.userData.stuName;
  501. // delete this.userData.majorName;
  502. // this.userData.stuName=this.searchStudent
  503. // this.userData.majorName=this.searchMajor
  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>