index.vue 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600
  1. <template>
  2. <view class="mine-container" >
  3. <!--顶部个人信息栏-->
  4. <view class="home_top">
  5. <uni-nav-bar title="我的" :background-color="backgroundColor" :border="navborder" statusBar='true' fixed="true">
  6. <!-- checkPermi(['system:notice:list']) -->
  7. <!-- <block slot="left" >
  8. <view class="min_top" @click="getMessage">
  9. <image :src="noticimg"></image>
  10. <view class="circ"></view>
  11. </view>
  12. </block> -->
  13. </uni-nav-bar>
  14. </view>
  15. <image :src="abg" class="abg"></image>
  16. <view style="margin-top: -487rpx;position: relative;padding:0 34rpx 20rpx;">
  17. <view class="header_top flexc mb6" @click="handleToinfo">
  18. <image v-if="avatar" @click.stop="handleToAvatar" :src="baseUrl+avatar" class="flex0 limg" mode="aspectFill"></image>
  19. <image v-else @click.stop="handleToAvatar" :src="avatarimg" class="flex0 limg" mode="aspectFill"></image>
  20. <view class="flex1 hcen">
  21. <view class="f17 fw c16 mb8 flexc">{{name}}
  22. <text v-if="choseroles=='teacher'">老师</text>
  23. <text v-if="choseroles=='school'">学校管理员</text>
  24. <text v-if="choseroles=='parents'">家长</text>
  25. </view>
  26. <view class="f15 co6" v-if="choseroles=='teacher'">{{schoolName}}/{{discipline}}</view>
  27. <view class="f15 co6" v-else-if="choseroles!='parents'" >{{schoolName}}</view>
  28. </view>
  29. <image :src="rimg" class="flex0 rimg"></image>
  30. </view>
  31. <!-- 新样式 -->
  32. <view class="mnbox">
  33. <view class="mn_tit">学校设置</view>
  34. <view class="mn_list">
  35. <view class="mlist flexc" @click="handleClass" v-if="checkPermi(['system:dept:add'])">
  36. <view class="mlistl"><image :src="miconn" class="imgb"></image></view>
  37. <view class="mlistc">添加班级</view>
  38. </view>
  39. <view class="mlist flexc" @click="handleWord">
  40. <view class="mlistl"><image :src="miconk" class="imgk"></image></view>
  41. <view class="mlistc">口令码</view>
  42. </view>
  43. <view class="mlist flexc" @click="handleQuery">
  44. <view class="mlistl"><image :src="micona" class="imga"></image></view>
  45. <view class="mlistc">账号信息</view>
  46. </view>
  47. <view class="mlist flexc" v-if="checkPermi(['course:table:edit'])" @click="handleTime(1)">
  48. <view class="mlistl"><image :src="miconb" class="imgb"></image></view>
  49. <view class="mlistc">放学时间</view>
  50. </view>
  51. <view class="mlist flexc" v-if="checkPermi(['course:table:edit'])" @click="handleTime(2)">
  52. <view class="mlistl"><image :src="miconh" class="imge"></image></view>
  53. <view class="mlistc">延迟放学</view>
  54. </view>
  55. <view class="mlist flexc" v-if="checkPermi(['register:teacher:list','register:student:list'])" @click="handleZhaccount">
  56. <view class="mlistl"><image :src="micono" class="imgc"></image></view>
  57. <view class="mlistc">账号审核</view>
  58. </view>
  59. <!-- v-if="checkPermi(['course:change:list'])&&choseroles!='parents' -->
  60. <view class="mlist flexc" v-if="checkPermi(['course:change:reply'])" @click="handleTkcourse">
  61. <view class="mlistl"><image :src="micond" class="imgd"></image></view>
  62. <view class="mlistc">调课审核</view>
  63. </view>
  64. <view class="mlist flexc" @click="handlelimit">
  65. <view class="mlistl"><image :src="miconp" class="imga"></image></view>
  66. <view class="mlistc">权限授权</view>
  67. </view>
  68. <view class="mlist flexc" @click="handleAuth">
  69. <view class="mlistl"><image :src="micone" class="imgf"></image></view>
  70. <view class="mlistc">身份切换</view>
  71. </view>
  72. <view class="mlist flexc" @click="handleaddAuth">
  73. <view class="mlistl"><image :src="miconm" class="imga"></image></view>
  74. <view class="mlistc">添加角色</view>
  75. </view>
  76. <view class="mlist flexc" @click="handleClassSet" v-if="checkPermi(['formal:class:add'])&&choseroles=='teacher'">
  77. <view class="mlistl"><image :src="miconc" class="imgg"></image></view>
  78. <view class="mlistc">班级设置</view>
  79. </view>
  80. <view class="mlist flexc" @click="handleaddStu" v-if="choseroles=='parents'">
  81. <view class="mlistl"><image :src="miconq" class="imgg"></image></view>
  82. <view class="mlistc">添加学生</view>
  83. </view>
  84. <view class="mlist flexc" @click="handleCollect">
  85. <view class="mlistl"><image :src="miconi" class="imgc"></image></view>
  86. <view class="mlistc">我的收藏</view>
  87. </view>
  88. <view class="mlist flexc" @click="handleInvite" v-if="choseroles!='parents'">
  89. <view class="mlistl"><image :src="miconr" class="imgl"></image></view>
  90. <view class="mlistc">预约码</view>
  91. </view>
  92. </view>
  93. </view>
  94. <view class="mnbox">
  95. <view class="mn_tit">账号设置</view>
  96. <view class="mn_list">
  97. <view class="mlist flexc" @click="handleUpassword">
  98. <view class="mlistl"><image :src="miconj" class="imgh"></image></view>
  99. <view class="mlistc">修改密码</view>
  100. </view>
  101. <view class="mlist flexc" @click="handlePrivacy">
  102. <view class="mlistl"><image :src="miconf" class="imgd"></image></view>
  103. <view class="mlistc">用户协议</view>
  104. </view>
  105. <view class="mlist flexc" @click="handleLogout">
  106. <view class="mlistl"><image :src="miconl" class="imgl"></image></view>
  107. <view class="mlistc">退出登录</view>
  108. </view>
  109. </view>
  110. </view>
  111. </view>
  112. <footers v-if="isfootflag" :footlist="footlist" :footerindex="footerindex" :color_checked="color_checked" :color_nochecked="color_nochecked" :isHomeIndex="true"></footers>
  113. <pop-up :type='type' :yycode="yy_code" :confdat='confdat' :teacherClass='teacherClass' :timetit="timetit" :timelist="timelist" @getClose="getClose" @getKeyFn="getKeyFn" @getConfirm="getConfirm" @getKeyNext="getKeyNext"></pop-up>
  114. </view>
  115. </template>
  116. <script>
  117. import popUp from "@/components/popup/popup.vue"
  118. import config from '@/config'
  119. const baseUrl = config.baseUrl
  120. import storage from '@/utils/storage'
  121. import footers from '@/components/footer/footer.vue'
  122. import {getConfigKey,getupdConfigKey,getDeptList,getselfList} from "@/api/mine/mine.js"
  123. import {getDictionaryFn} from '@/api/mine/register.js'
  124. import { checkPermi, checkRole } from "@/utils/permission"; // 权限判断函数
  125. import {getInfo } from '@/api/login'
  126. import QR from "@/utils/wxqrcode.js" // 二维码生成器
  127. export default {
  128. components:{
  129. popUp,footers
  130. },
  131. data() {
  132. return {
  133. footlist:[
  134. {module:'home',title:'首页',icon_checked:require('@/static/images/tabbar/home_.png'),icon_nochecked:require('@/static/images/tabbar/home.png'),},
  135. {module:'work',title:'课表',icon_checked:require('@/static/images/tabbar/work_.png'),icon_nochecked:require('@/static/images/tabbar/work.png'),limit:'course:table:list'},
  136. {module:'trends',title:'动态',icon_checked:require('@/static/images/tabbar/trends_.png'),icon_nochecked:require('@/static/images/tabbar/trends.png'),limit:'xiaoYuan:notice:list'},
  137. {module:'mine',title:'我的',icon_checked:require('@/static/images/tabbar/mine_.png'),icon_nochecked:require('@/static/images/tabbar/mine.png')},
  138. ],
  139. footerindex:'mine',
  140. isfootflag:true,
  141. color_checked :'161616',
  142. color_nochecked :'666666',
  143. abg:require('@/static/images/index/habg.png'),
  144. noticimg:require('@/static/images/mnotic.png'),
  145. rimg:require('@/static/images/rimg.png'),
  146. wrimg:require('@/static/images/wrimg.png'),
  147. micona:require('@/static/images/micona.png'),
  148. miconb:require('@/static/images/miconb.png'),
  149. miconc:require('@/static/images/miconc.png'),
  150. micond:require('@/static/images/micond.png'),
  151. micone:require('@/static/images/micone.png'),
  152. miconf:require('@/static/images/miconf.png'),
  153. micong:require('@/static/images/micong.png'),
  154. miconh:require('@/static/images/miconh.png'),
  155. miconi:require('@/static/images/miconi.png'),
  156. miconj:require('@/static/images/miconj.png'),
  157. miconk:require('@/static/images/miconk.png'),
  158. miconl:require('@/static/images/miconl.png'),
  159. miconm:require('@/static/images/miconm.png'),
  160. miconn:require('@/static/images/miconn.png'),
  161. micono:require('@/static/images/micono.png'),
  162. miconp:require('@/static/images/miconp.png'),
  163. miconq:require('@/static/images/miconq.png'),
  164. miconr:require('@/static/images/miconr.png'),
  165. type:0,
  166. confdat:{tit:'系统提示',txt:"确定注销并退出系统吗?",closetxt:'取消',suretxt:'确认'},
  167. backgroundColor:"transparent",
  168. navborder:false,
  169. timetit:'',
  170. timelist:[],
  171. timetype:'',
  172. discipline:'',
  173. schoolName:'',
  174. schoolId:'',
  175. classId:'',
  176. teacherClass:[],
  177. roles:'',
  178. baseUrl:'',
  179. yy_code:'',
  180. name: this.$store.state.user.name,
  181. avatarimg:require("@/static/images/profile.png"),
  182. version: getApp().globalData.config.appInfo.version,
  183. codeurl:'https://xygl.cnzxy.cn'
  184. }
  185. },
  186. computed: {
  187. avatar() {
  188. return this.$store.state.user.avatar
  189. },
  190. choseroles() {
  191. return this.$store.state.user.choseroles
  192. },
  193. windowHeight() {
  194. return uni.getSystemInfoSync().windowHeight - 50
  195. }
  196. },
  197. onUnload(){
  198. uni.$off('refreshdatalis')
  199. },
  200. onPullDownRefresh:function(){
  201. this.init();
  202. this.getClassFn();
  203. setTimeout(function () {
  204. uni.stopPullDownRefresh();
  205. }, 1000);
  206. },
  207. onShow() {
  208. return
  209. var choseroles=this.$store.state.user.choseroles;
  210. if(this.roles&&choseroles&&this.roles!=choseroles){
  211. this.roles=choseroles;
  212. this.schoolName=this.$store.state.user.deptName
  213. // 当前人的角色
  214. if(uni.getStorageSync('checkclass')&&choseroles=='teacher'){
  215. var newobj=JSON.parse(JSON.stringify(uni.getStorageSync('checkclass')))
  216. this.discipline=newobj.discipline;
  217. this.schoolName=newobj.schoolName;
  218. this.schoolId=newobj.schoolId;
  219. this.classId=newobj.classId;
  220. }
  221. this.getClassFn()
  222. }
  223. },
  224. onLoad() {
  225. this.baseUrl=baseUrl;
  226. var choseroles=this.$store.state.user.choseroles;
  227. this.roles=choseroles;
  228. this.schoolName=this.$store.state.user.deptName
  229. // 当前人的角色
  230. if(uni.getStorageSync('checkclass')&&choseroles=='teacher'){
  231. var newobj=JSON.parse(JSON.stringify(uni.getStorageSync('checkclass')))
  232. this.discipline=newobj.discipline;
  233. this.schoolName=newobj.schoolName;
  234. this.schoolId=newobj.schoolId;
  235. this.classId=newobj.classId;
  236. }
  237. var url=this.codeurl+'/pages/order/come?id='+this.$store.state.user.tenantId;
  238. this.yy_code = QR.createQrCodeImg(url, {
  239. size: parseInt(240),//二维码大小
  240. typeNumber:10
  241. })
  242. uni.$on('refreshdatalis',(e) => {
  243. this.getClassFn();
  244. })
  245. this.init();
  246. this.getClassFn()
  247. },
  248. onPageScroll(e) {
  249. var scrollTop=Number(e.scrollTop);
  250. if(scrollTop>0){
  251. this.backgroundColor='#c4defb'
  252. }else{
  253. this.backgroundColor='transparent'
  254. }
  255. },
  256. methods: {
  257. checkPermi, checkRole,
  258. handleLogout() {
  259. this.type=1
  260. // this.$modal.confirm('确定注销并退出系统吗?').then(() => {
  261. // this.$store.dispatch('LogOut').then(() => {
  262. // this.$tab.reLaunch('/pages/index/index')
  263. // })
  264. // })
  265. },
  266. getConfirm(){
  267. this.$store.dispatch('LogOut').then(() => {
  268. this.$tab.reLaunch('/pages/index/index')
  269. })
  270. },
  271. init(){
  272. // 放学时间
  273. getDictionaryFn('sys_time').then(res=>{
  274. if(res.code==200){
  275. this.timelist = res.data.map(v => {
  276. return {
  277. dictLabel: v.dictLabel,
  278. dictValue: v.dictValue
  279. }
  280. })
  281. }
  282. })
  283. },
  284. getselfList(id){
  285. var params={
  286. parentId:id,
  287. }
  288. params['params[role]']=this.$store.state.user.choseroles
  289. getselfList(params).then(res=>{
  290. if(res.code==200){
  291. var newArr=res.data;
  292. if(newArr&&newArr.length){
  293. this.teacherClass = newArr.map(v => {
  294. return {
  295. dictLabel: v.deptName,
  296. dictValue: v.deptId
  297. }
  298. })
  299. }
  300. }else{
  301. this.$toast(res.msg)
  302. }
  303. })
  304. },
  305. getClassFn(){
  306. var that=this;
  307. var choseroles=this.$store.state.user.choseroles||'';
  308. var roles=choseroles;
  309. that.roles=roles;
  310. if(choseroles=='school'){
  311. that.classId='';
  312. that.schoolId=that.$store.state.user.deptId;
  313. this.getselfList(0)
  314. }else if(roles=='teacher'){
  315. var id=that.$store.state.user.schoolId;
  316. this.getselfList(id)
  317. }
  318. },
  319. // 班级
  320. getclassListFn(){
  321. getDeptList(this.schoolId).then(res=>{
  322. if(res.code==200){
  323. this.teacherClass = res.data.map(v => {
  324. return {
  325. dictLabel: v.deptName,
  326. dictValue:v.deptId
  327. }
  328. })
  329. }else{
  330. this.$toast(res.msg)
  331. }
  332. })
  333. },
  334. handleAuth(){
  335. var roles=this.$store.state.user.roles;
  336. if(roles.length>0){
  337. this.$tab.navigateTo('/mine/pages/mine/auth')
  338. }else{
  339. //当前只有一种身份
  340. this.$toast("您当前只有一种身份")
  341. // this.$tab.switchTab('/pages/index/index')
  342. }
  343. },
  344. handleaddAuth(){
  345. // this.$tab.navigateTo('/mine/pages/mine/auth?type=add')
  346. this.$tab.navigateTo('/mine/pages/mine/roles')
  347. },
  348. handleCollect(){
  349. this.$tab.navigateTo('/mine/pages/trends/mycollect')
  350. },
  351. handleToinfo(){
  352. this.$tab.navigateTo('/mine/pages/mine/exit')
  353. },
  354. handlePrivacy(){
  355. this.$tab.navigateTo(`/pages/agreement`)
  356. },
  357. handleUpassword(){
  358. this.$tab.navigateTo(`/pages/mine/pwd/index`)
  359. },
  360. handleSchool(){
  361. var id=this.$store.state.user.deptId
  362. this.$tab.navigateTo('/mine/pages/mine/applyregister?type=update&id='+id)
  363. // this.$tab.navigateTo('/mine/pages/mine/applyteacher')
  364. },
  365. handleWord(){
  366. this.$tab.navigateTo('/mine/pages/mine/word')
  367. },
  368. handleQuery(){
  369. this.$tab.navigateTo('/mine/pages/login/query?from=mine')
  370. },
  371. handleClass(){
  372. this.$tab.navigateTo('/mine/pages/mine/addclass')
  373. },
  374. handlelimit(){
  375. this.$tab.navigateTo('/mine/pages/mine/limit')
  376. },
  377. handleClassSet(){
  378. this.$tab.navigateTo('/mine/pages/mine/setclass')
  379. },
  380. handleaddStu(){
  381. this.$tab.navigateTo('/mine/pages/mine/setstuent')
  382. },
  383. handleTime(e){
  384. this.type=5;
  385. this.timetype=e;
  386. },
  387. getKeyNext(data){
  388. this.type=3;
  389. this.classId=data;
  390. this.getConfigKey(data)
  391. },
  392. handleInvite(){
  393. this.type=8;
  394. },
  395. handleZhaccount(){
  396. this.$tab.navigateTo('/work/pages/examine/zhaccount')
  397. },
  398. handleTkcourse(){
  399. this.$tab.navigateTo('/work/pages/examine/tkcourse')
  400. },
  401. handleToAvatar() {
  402. this.$tab.navigateTo('/pages/mine/avatar/index')
  403. },
  404. getKeyFn(data){
  405. var params={
  406. 'configKey':this.classId,
  407. 'configValue':data,
  408. "configType":this.timetype
  409. }
  410. getupdConfigKey(params).then(res=>{
  411. if(res.code==200){
  412. this.$toast('修改成功')
  413. this.type=0;
  414. }else{
  415. this.$toast(res.msg)
  416. }
  417. })
  418. },
  419. getClose(){
  420. this.type=0
  421. },
  422. getConfigKey(e){
  423. var params={
  424. configType:this.timetype,
  425. configKey:e
  426. }
  427. //班级id
  428. // configType "1:准备下课 2:延迟下课",
  429. getConfigKey(params).then(res=>{
  430. if(res.code==200){
  431. this.type=3
  432. this.timetit=res.msg||5;
  433. }else{
  434. this.$toast(res.msg)
  435. }
  436. })
  437. },
  438. handleToInfo() {
  439. this.$tab.navigateTo('/pages/mine/info/index')
  440. },
  441. handleToEditInfo() {
  442. this.$tab.navigateTo('/pages/mine/info/edit')
  443. },
  444. handleToSetting() {
  445. this.$tab.navigateTo('/pages/mine/setting/index')
  446. },
  447. handleToLogin() {
  448. this.$tab.reLaunch('/pages/login')
  449. },
  450. handleLogout() {
  451. this.$modal.confirm('确定注销并退出系统吗?').then(() => {
  452. this.$store.dispatch('LogOut').then(() => {
  453. this.$tab.reLaunch('/pages/index/index')
  454. })
  455. })
  456. },
  457. handleHelp() {
  458. this.$tab.navigateTo('/pages/mine/help/index')
  459. },
  460. handleAbout() {
  461. this.$tab.navigateTo('/pages/mine/about/index')
  462. },
  463. handleJiaoLiuQun() {
  464. this.$modal.showToast('QQ群:133713780')
  465. },
  466. handleBuilding() {
  467. this.$modal.showToast('模块建设中~')
  468. }
  469. }
  470. }
  471. </script>
  472. <style lang="scss">
  473. page {
  474. background-color: #f5f6f7;
  475. }
  476. .home_top /deep/ .uni-navbar__placeholder{height: 0 !important;}
  477. .abg{width: 100%;height: 622rpx;}
  478. .min_top{position: relative;width: 40rpx;height: 40rpx;display: flex;align-items: center;justify-content: center;
  479. image{width: 32rpx;height: 32rpx;}
  480. .circ{width: 12rpx;height: 12rpx;background: #EB5663;border-radius: 50%;position: absolute;right: 4rpx;top: 4rpx;}
  481. }
  482. .header_top{padding: 34rpx 26rpx;
  483. .limg{width: 120rpx;height: 120rpx;border-radius: 50%;margin-right: 26rpx;}
  484. .rimg{width: 14rpx;height: 24rpx;margin-left: 26rpx;}
  485. .hcen{
  486. text{height: 34rpx;background: #89A8F6;border-radius: 16rpx;line-height: 34rpx;font-weight: normal;font-size: 24rpx;color: #ffffff;display: inline-block;min-width: 78rpx;padding: 0 10rpx;box-sizing: border-box;margin-left: 24rpx;}
  487. }
  488. }
  489. .bgf{
  490. .mlist{padding:30rpx 34rpx;
  491. .mlistl{width: 40rpx;height: 40rpx;display: flex;align-items: center;justify-content: center;margin-right: 16rpx;
  492. .imga{width: 38rpx;height: 38rpx;}
  493. .imgb{width: 32rpx;height: 32rpx;}
  494. .imgc{width: 30rpx;height: 30rpx;}
  495. .imgd{width: 32rpx;height: 34rpx;}
  496. .imge{width: 32rpx;height: 26rpx;}
  497. .imgf{width: 32rpx;height: 30rpx;}
  498. .imgg{width: 34rpx;height: 34rpx;}
  499. .imgi{width: 34rpx;height: 34rpx;}
  500. .imgk{width: 32rpx;height: 30rpx;}
  501. }
  502. .mlistc{flex: 1;font-size: 32rpx;font-weight: 500;
  503. color: #161616;}
  504. .mlistr{width: 14rpx;height: 24rpx;marign-left:16rpx}
  505. }
  506. }
  507. .mnbox{
  508. background: #FFFFFF;border-radius: 18rpx;margin-bottom: 24rpx;padding: 40rpx 0 16rpx;
  509. .mn_tit{font-size: 32rpx;font-weight: bold;
  510. color: #161616;padding-left: 68rpx;position: relative;margin-bottom: 12rpx;
  511. &::before{width: 6rpx;background: #1f57e6;border-radius: 4rpx;position: absolute;left: 36rpx;top: 4rpx;content: '';bottom: 4rpx;}
  512. }
  513. .mn_list{display: flex;flex-wrap: wrap;
  514. .mlist{width: 25%;box-sizing: border-box;display: flex;flex-direction: column;align-items: center;padding: 26rpx 0;
  515. .mlistl{width: 50rpx;height: 50rpx;display: flex;align-items: center;justify-content: center;margin-bottom: 16rpx;
  516. .imga{width: 42rpx;height: 44rpx;}
  517. .imgb{width: 44rpx;height: 44rpx;}
  518. .imgc{width: 44rpx;height: 42rpx;}
  519. .imgd{width: 42rpx;height: 44rpx;}
  520. .imge{width: 44rpx;height: 42rpx;}
  521. .imgf{width: 32rpx;height: 30rpx;}
  522. .imgg{width: 44rpx;height: 44rpx;}
  523. .imgh{width: 40rpx;height: 44rpx;}
  524. .imgk{width: 40rpx;height: 42rpx;}
  525. .imgl{width: 46rpx;height: 46rpx;}
  526. }
  527. .mlistc{flex: 1;font-size: 30rpx;font-weight: 500;color: #666666;}
  528. }
  529. }
  530. }
  531. .mine-container {
  532. width: 100%;
  533. height: 100%;
  534. .header-section {
  535. padding: 15px 15px 45px 15px;
  536. color: white;
  537. .login-tip {
  538. font-size: 18px;
  539. margin-left: 10px;
  540. }
  541. .cu-avatar {
  542. border: 2px solid #eaeaea;
  543. .icon {
  544. font-size: 40px;
  545. }
  546. }
  547. .user-info {
  548. margin-left: 15px;
  549. .u_title {
  550. font-size: 18px;
  551. line-height: 30px;
  552. }
  553. }
  554. }
  555. .content-section {
  556. position: relative;
  557. top: -50px;
  558. .mine-actions {
  559. margin: 15px 15px;
  560. padding: 20px 0px;
  561. border-radius: 8px;
  562. background-color: white;
  563. .action-item {
  564. .icon {
  565. font-size: 28px;
  566. }
  567. .text {
  568. display: block;
  569. font-size: 13px;
  570. margin: 8px 0px;
  571. }
  572. }
  573. }
  574. }
  575. }
  576. </style>