340 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			340 lines
		
	
	
		
			8.9 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | |
|   <div class="box">
 | |
|     <div class="header">
 | |
|       <img class="portrait" :src="'http://lawpro.earnest.pro' + userimg" alt />
 | |
|       <div class="introduce">
 | |
|         <p class="name">{{username}}</p>
 | |
|         <div class="follow">
 | |
|           <p>
 | |
|             <span>{{attention}}</span>
 | |
|             关注我的
 | |
|           </p>
 | |
|           <p>
 | |
|             <span>{{myfollow}}</span>
 | |
|             我关注的
 | |
|           </p>
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|     <div class="classification">
 | |
|       <div class="page">
 | |
|         <div :class="types == 4?'select':''" @click="types=4">动态</div>
 | |
|         <div :class="types == 3?'select':''" @click="types=3">回答</div>
 | |
|         <div :class="types == 1?'select':''" @click="types=1">文章</div>
 | |
|         <div :class="types == 2?'select':''" @click="types=2">提问</div>
 | |
|         <div :class="types == 5?'select':''" @click="types=5">收藏</div>
 | |
|       </div>
 | |
|       <div class="list">
 | |
|         <div v-for="(item,index) in dynamiclist" :key="index">
 | |
|           <follow
 | |
|             v-if="item.status == 3 "
 | |
|             :operation="type[item.type] + '了该' + status[item.status]"
 | |
|             :day="item.time + '前'"
 | |
|             :title="item.title"
 | |
|             :nickname="item.nickname"
 | |
|             :userimg="'http://lawpro.earnest.pro' + item.avatar"
 | |
|             :num="item.islike"
 | |
|             :img="'http://lawpro.earnest.pro' + item.img"
 | |
|             :text="item.text"
 | |
|             :comment="item.comment"
 | |
|             :sid="item.id"
 | |
|             :type="item.status"
 | |
|           ></follow>
 | |
|           <answer
 | |
|             v-if="item.status == 1 || item.status == 2"
 | |
|             :operation="type[item.type] + '了该' + status[item.status]"
 | |
|             :day="item.time + '前'"
 | |
|             :title="item.title"
 | |
|             :types="item.status"
 | |
|             :id="item.id"
 | |
|             :sid="item.id"
 | |
|             :type="item.status"
 | |
|           ></answer>
 | |
|           <follow
 | |
|             v-if="types == 3"
 | |
|             operation="我发布了该回答"
 | |
|             :day="item.time"
 | |
|             :title="item.title"
 | |
|             :nickname="item.nickname"
 | |
|             :userimg="'http://lawpro.earnest.pro' + userimg"
 | |
|             :num="item.islike"
 | |
|             :img="'http://lawpro.earnest.pro' + item.avatar"
 | |
|             :text="item.text"
 | |
|             :comment="item.comment"
 | |
|             :sid="item.id"
 | |
|             :type="item.status"
 | |
|           ></follow>
 | |
|           <answer
 | |
|             v-if="types==1"
 | |
|             operation="我发布了该文章"
 | |
|             :day="item.time"
 | |
|             :title="item.title"
 | |
|             types="1"
 | |
|             :sid="item.id"
 | |
|             :type="item.status"
 | |
|           ></answer>
 | |
|           <answer
 | |
|             v-if="types==2"
 | |
|             operation="我发布了该问题"
 | |
|             :day="item.time"
 | |
|             :title="item.title"
 | |
|             types="2"
 | |
|             :sid="item.id"
 | |
|             :type="item.status"
 | |
|           ></answer>
 | |
|           <follow
 | |
|             v-if="types == 5 && item.type==3"
 | |
|             :operation="'我收藏了该'+ status[item.type]"
 | |
|             :day="item.time"
 | |
|             :title="item.title"
 | |
|             :nickname="item.nickname"
 | |
|             :userimg="'http://lawpro.earnest.pro' + userimg"
 | |
|             :num="item.islike"
 | |
|             :img="'http://lawpro.earnest.pro' + item.avatar"
 | |
|             :text="item.text"
 | |
|             :comment="item.comment"
 | |
|             :sid="item.id"
 | |
|             :type="item.type"
 | |
|             :types="item.type"
 | |
|           ></follow>
 | |
|           <answer
 | |
|             v-if="types==5 && (item.type == 1|| item.type == 2)"
 | |
|             :operation="'我收藏了该'+ status[item.type]"
 | |
|             :day="item.time"
 | |
|             :title="item.title"
 | |
|             :types="item.type"
 | |
|             :sid="item.id"
 | |
|             :type="item.type"
 | |
| 
 | |
|           ></answer>
 | |
|         </div>
 | |
|       </div>
 | |
|     </div>
 | |
|   </div>
 | |
| </template>
 | |
| <style lang="scss" scoped>
 | |
| .box {
 | |
|   background-color: #f6f6f6;
 | |
|   min-height: 100vh;
 | |
|   .header {
 | |
|     width: 100%;
 | |
|     height: 227px;
 | |
|     background-color: #fff;
 | |
|     box-sizing: border-box;
 | |
|     padding: 51px 30px;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
|     margin-bottom: 20px;
 | |
|     .portrait {
 | |
|       width: 126px;
 | |
|       height: 126px;
 | |
|       border-radius: 50%;
 | |
|       margin-right: 31px;
 | |
|     }
 | |
|     .introduce {
 | |
|       height: 90px;
 | |
|       display: flex;
 | |
|       flex-direction: column;
 | |
| 
 | |
|       .name {
 | |
|         margin: 0;
 | |
|         font-size: 36px;
 | |
|         color: #333;
 | |
|         font-weight: 400;
 | |
|         margin-bottom: 29px;
 | |
|       }
 | |
|       .follow {
 | |
|         display: flex;
 | |
|         color: #999;
 | |
|         font-size: 28px;
 | |
| 
 | |
|         > p {
 | |
|           display: flex;
 | |
|           margin-right: 69px;
 | |
|           > span {
 | |
|             color: #333;
 | |
|             display: block;
 | |
|             min-width: 23px;
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   .classification {
 | |
|     width: 100%;
 | |
|     background-color: #fff;
 | |
|     // min-height: 300px;
 | |
|     box-sizing: border-box;
 | |
|     padding: 30px 30px;
 | |
|     .page {
 | |
|       width: 100%;
 | |
|       display: flex;
 | |
|       height: 62px;
 | |
|       border-bottom: 1px solid #dfdfdf;
 | |
|       > div {
 | |
|         width: 100%;
 | |
|         font-size: 28px;
 | |
|         text-align: center;
 | |
|       }
 | |
|       .select {
 | |
|         border-bottom: 4px solid #6b9147;
 | |
|       }
 | |
|     }
 | |
|     .list {
 | |
|       width: 100%;
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </style>
 | |
| <script>
 | |
| import follow from "./components/PersonafFollow";
 | |
| // import follows from "./components/PersonafFollows"
 | |
| import answer from "./components/PersonalAnswer";
 | |
| // import { log } from 'util';
 | |
| export default {
 | |
|   name: "Personal-homepage",
 | |
|   data() {
 | |
|     return {
 | |
|       userimg: "",
 | |
|       username: "",
 | |
|       myfollow: "",
 | |
|       attention: "",
 | |
|       dynamiclist: [],
 | |
|       status: ["", "文章", "问题", "回答"],
 | |
|       type: ["", "我点赞", "我收藏", "我关注", "我评论", "我回答"],
 | |
|       types: 4,
 | |
|       page: 1,
 | |
|       lock: false
 | |
|     };
 | |
|   },
 | |
|   components: {
 | |
|     follow,
 | |
|     answer
 | |
|   },
 | |
|   methods: {
 | |
|     wzs(a, b) {
 | |
|       // console.log(a,b,12)
 | |
|       // this.$router.replace('/')
 | |
| 
 | |
|       this.$router.push({
 | |
|         path: "/articledetail?id=" + b
 | |
|       });
 | |
|     },
 | |
|     getlist() {
 | |
|       if (this.lock) {
 | |
|         return;
 | |
|       }
 | |
|       this.lock = true;
 | |
|       this.page += 1;
 | |
|       this.axios
 | |
|         .post("https://lawpro.earnest.pro/api/login_main/getUserListDetails", {
 | |
|           token: localStorage.getItem("token"),
 | |
|           type: this.types,
 | |
|           page: this.page
 | |
|         })
 | |
|         .then(res => {
 | |
|           window.console.log(res);
 | |
|           if (res.data.code == 200) {
 | |
|             if (res.data.data.length == 0) {
 | |
|               // alert(1)
 | |
| 
 | |
|               return;
 | |
|             }
 | |
|             this.dynamiclist = res.data.data;
 | |
|             this.lock = false;
 | |
|           }
 | |
|         });
 | |
|     },
 | |
|     getlists() {
 | |
|       if (this.lock) {
 | |
|         return;
 | |
|       }
 | |
|       this.lock = true;
 | |
|       this.page += 1;
 | |
|       this.axios
 | |
|         .post("https://lawpro.earnest.pro/api/login_main/getCollectList", {
 | |
|           token: localStorage.getItem("token"),
 | |
|           page: this.page
 | |
|         })
 | |
|         .then(res => {
 | |
|           window.console.log(res);
 | |
|           if (res.data.code == 200) {
 | |
|             // if(res.data.data.length == 0){
 | |
| 
 | |
|             //   return ;
 | |
|             // }
 | |
|             // alert(1)
 | |
| 
 | |
|             this.dynamiclist = res.data.data;
 | |
|             this.lock = false;
 | |
|           }
 | |
|         });
 | |
|     }
 | |
|   },
 | |
|   mounted() {
 | |
|       document.title= "个人中心"
 | |
|     
 | |
|     if (localStorage.getItem("token") == "") {
 | |
|       this.$router.push({ path: "/login" });
 | |
|     }
 | |
|     this.axios
 | |
|       .post("https://lawpro.earnest.pro/api/login_main/getUserDetails", {
 | |
|         token: localStorage.getItem("token")
 | |
|       })
 | |
|       .then(res => {
 | |
|         // window.console.log(res.data)
 | |
|         if (res.data.code == 200) {
 | |
|           (this.userimg = res.data.data.user.avatar),
 | |
|             (this.username = res.data.data.user.nickname),
 | |
|             (this.myfollow = res.data.data.myfollow),
 | |
|             (this.attention = res.data.data.user.attention);
 | |
|         }
 | |
|       });
 | |
|     this.axios
 | |
|       .post("https://lawpro.earnest.pro/api/login_main/getUserListDetails", {
 | |
|         token: localStorage.getItem("token"),
 | |
|         type: 4,
 | |
|         page: 1
 | |
|       })
 | |
|       .then(res => {
 | |
|         window.console.log(res);
 | |
|         if (res.data.code == 200) {
 | |
|           this.dynamiclist = res.data.data;
 | |
|         }
 | |
|       });
 | |
|     var t = this;
 | |
|     window.$(window).scroll(() => {
 | |
|       var windowH = window.$(window).height(); //设备可见区域高度
 | |
|       var documentH = window.$(document).height(); //整个网页的高度(包括未显示的部分)
 | |
|       var scrollH = window.$(window).scrollTop(); //滚动条滚动上去的高度
 | |
|       //或者  scrollH = $(document).scrollTop();
 | |
|       if (windowH + scrollH >= documentH) {
 | |
|         // do something
 | |
|         // alert(2);
 | |
|         window.console.log(1);
 | |
|         if (this.types == 5) {
 | |
|           t.getlists(0);
 | |
|         } else {
 | |
|           t.getlist();
 | |
|         }
 | |
|       }
 | |
|     });
 | |
|   },
 | |
|   watch: {
 | |
|     types() {
 | |
|       this.page = 0;
 | |
|       this.dynamiclist = [];
 | |
|       this.lock = false;
 | |
|       if (this.types == 5) {
 | |
|         this.getlists(0);
 | |
|       } else {
 | |
|         this.getlist();
 | |
|       }
 | |
|     }
 | |
|   },
 | |
|   beforeRouteLeave(a, b, c) {
 | |
|     window.$(window).scroll(() => {});
 | |
|     c();
 | |
|   }
 | |
| };
 | |
| </script> |