Bläddra i källkod

个人信息接口

zweizhao 7 år sedan
förälder
incheckning
1dc60b9218
2 ändrade filer med 51 tillägg och 15 borttagningar
  1. 47 15
      components/header.vue
  2. 4 0
      store/index.js

+ 47 - 15
components/header.vue

@@ -10,7 +10,13 @@
       <a href="/community" class="nav-item">技术圈</a>
       <section>
         <section style="position: relative;">
-          <input class="input" autocomplete="off" placeholder="搜索您感兴趣的程序员" v-model="keywork" @keyup.enter="clickInputEnter">
+          <input
+            class="input"
+            autocomplete="off"
+            placeholder="搜索您感兴趣的程序员"
+            v-model="keywork"
+            @keyup.enter="clickInputEnter"
+          >
           <i class="el-icon-search"></i>
         </section>
         <div class="dropdown" style="display:none;"></div>
@@ -22,16 +28,24 @@
         </el-button>
         <el-dropdown-menu slot="dropdown">
           <el-dropdown-item>
-            <a href="/wo/work_todo"><i class="el-icon-edit"></i>我的待办</a>
+            <a href="/wo/work_todo">
+              <i class="el-icon-edit"></i>我的待办
+            </a>
           </el-dropdown-item>
           <el-dropdown-item>
-            <a href="/wo/work_platform"><i class="el-icon-date"></i>我的项目</a>
+            <a href="/wo/work_platform">
+              <i class="el-icon-date"></i>我的项目
+            </a>
           </el-dropdown-item>
           <el-dropdown-item>
-            <a href="/wo/work_hire"><i class="el-icon-news"></i>我的雇佣</a>
+            <a href="/wo/work_hire">
+              <i class="el-icon-news"></i>我的雇佣
+            </a>
           </el-dropdown-item>
           <el-dropdown-item>
-            <a href="/wo/work_cloud"><i class="el-icon-service"></i>我的云端</a>
+            <a href="/wo/work_cloud">
+              <i class="el-icon-service"></i>我的云端
+            </a>
           </el-dropdown-item>
         </el-dropdown-menu>
       </el-dropdown>
@@ -41,27 +55,30 @@
           <span class="message-count message-total">{{messageCount.total}}</span>
         </el-button>
         <el-dropdown-menu slot="dropdown">
-          <el-dropdown-item class='message-box'>
+          <el-dropdown-item class="message-box">
             <i class="circle blue"></i>系统消息
             <span v-if="messageCount.system" class="message-count">{{messageCount.system}}</span>
           </el-dropdown-item>
-          <el-dropdown-item class='message-box'>
+          <el-dropdown-item class="message-box">
             <i class="circle orange"></i>工作通知
             <span v-if="messageCount.work" class="message-count">{{messageCount.work}}</span>
           </el-dropdown-item>
-          <el-dropdown-item class='message-box'>
+          <el-dropdown-item class="message-box">
             <i class="circle red"></i>评论回复
             <span v-if="messageCount.reply" class="message-count">{{messageCount.reply}}</span>
           </el-dropdown-item>
-          <el-dropdown-item class='message-box'>
+          <el-dropdown-item class="message-box">
             <i class="circle green"></i>@我的
             <span v-if="messageCount.at" class="message-count">{{messageCount.at}}</span>
           </el-dropdown-item>
-          <el-dropdown-item class='message-box'>
+          <el-dropdown-item class="message-box">
             <i class="circle pink"></i>赞及其它
-            <span v-if="messageCount.community_other" class="message-count">{{messageCount.community_other}}</span>
+            <span
+              v-if="messageCount.community_other"
+              class="message-count"
+            >{{messageCount.community_other}}</span>
           </el-dropdown-item>
-          <el-dropdown-item class='message-box'>
+          <el-dropdown-item class="message-box">
             <i class="circle yellow"></i>收支信息
             <span v-if="messageCount.balance" class="message-count">{{messageCount.balance}}</span>
           </el-dropdown-item>
@@ -72,7 +89,7 @@
           <a class="nav-header" href="/wo/work_todo">
             <img
               class="header-user"
-              src="https://programmerinn.b0.upaiyun.com/useralbum/64168/icon641681476172013.jpg!mediumicon"
+              :src="userinfo.icon_url"
               alt="header"
             >
             <img
@@ -81,7 +98,7 @@
               alt="vip-icon"
             >
           </a>
-          <span class="nickname dib">yyyy</span>
+          <span class="nickname dib">{{userinfo.nickname}}</span>
         </section>
         <section class="menu">
           <section class="vip-info vip-info-com">
@@ -112,7 +129,7 @@
             <a class="vip-item" href="/wo/work_cloud">
               <i class="el-icon-service"></i>我的云端
             </a>
-            <a class="vip-item divider" href="/wo/64168">
+            <a class="vip-item divider" :href="`/wo/${userinfo.uid}`">
               <i class="el-icon-document"></i>我的主页
             </a>
             <a class="vip-item" href="/index/app">
@@ -129,6 +146,8 @@
 </template>
 
 <script>
+import { mapState, mapMutations } from 'vuex'
+
 export default {
   data() {
     return {
@@ -138,10 +157,23 @@ export default {
       messageCount: {},
     }
   },
+  computed: {
+    ...mapState(['userinfo']),
+  },
   mounted() {
+    this.getUserinfo()
     this.getMessageCount()
   },
   methods: {
+    ...mapMutations(['updateUserinfo']),
+    async getUserinfo() {
+      let res = await this.$get('/api/user/getInfo')
+      console.log(JSON.stringify(res.data))
+      console.log(res.data)
+      this.updateUserinfo({
+        userinfo: res.data
+      })
+    },
     clickInputEnter() {
       this.$router.push({
         path: '/search',

+ 4 - 0
store/index.js

@@ -5,8 +5,12 @@ Vue.use(Vuex)
 const store = () => new Vuex.Store({
   state: {
     isPC: -1,
+    userinfo: {},
   },
   mutations: {
+    updateUserinfo(state, payload) {
+      state.userinfo = payload.userinfo
+    },
     updateIsPC(state, payload) {
       state.isPC = payload.isPC
     }