mineEdit.vue 24 KB

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