diff --git a/src/components/NavClub.vue b/src/components/NavClub.vue index 883b23ac28dc96f27a689101c3a550c590bb2cf0..4bba7c7f5af963a884d6e8105b31f3f19be7fd0d 100644 --- a/src/components/NavClub.vue +++ b/src/components/NavClub.vue @@ -3,9 +3,10 @@ <div id="clubMenu"> <router-link :to="{path:`/club_page/${club[0].id}`}">홈페이지</router-link> | <router-link :to="{path:`/club_post/${club[0].id}`}">활동일지 </router-link> | - <router-link :to="{path:`/club_free/${club[0].id}`}">자유게시판 </router-link> | - <router-link :to="{path:`/club_manage/${club[0].id}`}">회원 관리</router-link> | + <button @click="post()">자유게시판</button> ㅣ + <button @click="post2()">회원 관리</button> ㅣ <router-link :to="{path:`/club_join/${club[0].id}`}">가입신청</router-link> + </div> </div> </template> @@ -18,8 +19,9 @@ export default { data(){ return { club:[{ - id:'' - }] + id:'', + }], + } }, computed: { @@ -31,7 +33,28 @@ export default { this.club = res.data.result }, methods:{ - + async post(){ + const res = await axios.post(`http://jnhonlinux.ddns.net:3000/freeBoard/auth`,{ + user: this.userInfo.name, + id: this.$route.params.clubId + }) + if(res.data.auth == false){ + alert("동아리 회원만 이용할 수 있습니다.") + } else{ + router.push(`/club_free/${this.club[0].id}`) + } + }, + async post2(){ + const res = await axios.post(`http://jnhonlinux.ddns.net:3000/joinedClub/auth`,{ + user: this.userInfo.name, + id: this.$route.params.clubId + }) + if(res.data.auth == false){ + alert("동아리 회원만 이용할 수 있습니다.") + } else{ + router.push(`/club_manage/${this.club[0].id}`) + } + } } } </script> diff --git a/src/router/index.js b/src/router/index.js index d8a4929ea5a07448fa1b958ebcb33b0fb0d209f2..43ba8a619a698635ece64ac8f8d296462247a257 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -122,7 +122,7 @@ const routes = [ import(/* webpackChunkName: "about" */ "../views/club_Detail.vue") }, { - path: "/applymember/:clubId/:uid", + path: "/applymember/:clubId/:name", name: "applymember", component: () => import(/* webpackChunkName: "about" */ "../views/applymember.vue") diff --git a/src/store/index.js b/src/store/index.js index 102c9c154e5eb5c2196aad0c025f719ccb15315a..4e9d521fb6aa96f8c8d2fde7ad8fcbf48cd566be 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -3,12 +3,13 @@ import Vuex from 'vuex' import router from "../router/index" import axios from "axios" Vue.use(Vuex) - +var user = []; export default new Vuex.Store({ state: { userInfo:null, isLogin: false, - isLoginError: false + isLoginError: false, + isUpdateError: false }, mutations: { loginSuccess(state, payload){ @@ -24,6 +25,10 @@ export default new Vuex.Store({ state.isLogin = false state.isLoginError = false state.userInfo = null + }, + update(state, payload){ + state.isUpdateError = false; + state.userInfo = payload; } }, actions: { @@ -33,6 +38,7 @@ export default new Vuex.Store({ .then(res=>{ if(res.data.success == true){ let userInfo = res.data.result[0] + user = userInfo commit('loginSuccess', userInfo) alert("로그인이 되었습니다.") router.push('/mypage') @@ -50,6 +56,20 @@ export default new Vuex.Store({ commit('logout') alert("로그아웃 되었습니다.") router.push('/') + }, + update({commit}, updateObj){ + let id = user.id + console.log(id) + axios + .post(`http://jnhonlinux.ddns.net:3000/users/${id}`,updateObj) + .then(res=>{ + if(res.data.success == true){ + let userInfo = res.data.result + console.log(userInfo) + commit('update',userInfo) + router.push('/mypage'); + } + }) } }, modules: {} diff --git a/src/views/Free.vue b/src/views/Free.vue index a3d1d6ccba76b2f215380c101a07f0d44be86e63..86107e9a7bc7087ee8487f9d8aa90360d1a00575 100644 --- a/src/views/Free.vue +++ b/src/views/Free.vue @@ -1,19 +1,28 @@ <!--자유게시판에서 게시글 눌렀을 때--> <template> <div class="Free"> - <NavClub id="navClub"></NavClub> - <div> - 제목: {{free[0].title}}<br> - 내용: {{free[0].content}}<br> - 글쓴이: {{free[0].writer}}<br> - 작성 날짜: {{free[0].date}}<br> - </div> - <router-link :to="{path:`/club_free/${club[0].id}`}">뒤로 가기</router-link> + <NavClub id="navClub"></NavClub> + <div> + 제목: {{free[0].title}}<br> + 내용: {{free[0].content}}<br> + 글쓴이: {{free[0].writer}}<br> + 작성 날짜: {{free[0].date}}<br> + </div> + <router-link :to="{path:`/club_free/${club[0].id}`}">뒤로 가기</router-link> + <button @click="toggle = true">댓글 달기</button> + <div v-if="toggle == true"> + <input type="text" v-model = "comment"> + <button @click="post()">달기</button> + </div> + <div v-for="com in commentlist"> + {{com.uid}} ㅣ {{com.comment}} + </div> </div> </template> <script> import axios from "axios" +import {mapState} from "vuex" import NavClub from '@/components/NavClub.vue' export default { components: { @@ -26,9 +35,15 @@ export default { }], free:[{ title:'' - }] + }], + commentlist:[], + toggle: false, + comment:'' } }, + computed: { + ...mapState(['userInfo']) + }, async created(){ let id = this.$route.params.clubId; const res = await this.$http.get(`http://jnhonlinux.ddns.net:3000/club/${id}`) @@ -36,6 +51,21 @@ export default { let fid = this.$route.params.freeId; const free = await this.$http.get(`http://jnhonlinux.ddns.net:3000/freeBoard/one/${id}/${fid}`) this.free = free.data.result + + const comment = await axios.get(`http://jnhonlinux.ddns.net:3000/freeBoard/one/${fid}/${id}/comment`) + this.commentlist = comment.data.result + }, + methods:{ + post(){ + let id = this.$route.params.clubId; + let fid = this.$route.params.freeId; + axios.post(`http://jnhonlinux.ddns.net:3000/freeBoard/one/${fid}/${id}/comment`,{ + uid: this.userInfo.uid, + comment: this.comment + }) + this.comment = '' + this.toggle = false + } } } diff --git a/src/views/Modify_profile.vue b/src/views/Modify_profile.vue index c3fcebc9a0afddda25fe2f7d3b4255181c4d0d67..f27b7632b6f45fde59984668723c030c143dd694 100644 --- a/src/views/Modify_profile.vue +++ b/src/views/Modify_profile.vue @@ -1,4 +1,3 @@ -<!--내 정보 수정할 때--> <template> <div class="modify"> <div> @@ -73,4 +72,4 @@ export default { <style scoped> -</style> \ No newline at end of file +</style> diff --git a/src/views/applymember.vue b/src/views/applymember.vue index deb2c5d87b161ef278836577d4395625dc2d0d28..9da305352e657382b2a82f1d4d1033bae140edb4 100644 --- a/src/views/applymember.vue +++ b/src/views/applymember.vue @@ -3,6 +3,7 @@ <div class="detail"> <NavClub id="navClub"></NavClub> <div> + {{member}} 이름: {{member[0].name}} <br> 학과: {{member[0].department}} @@ -13,12 +14,16 @@ <br> 전화번호: {{member[0].phone}} </div> + <button @click="apply">승인</button> <router-link :to="{path:`/club_manage/${club[0].id}`}">뒤로 가기</router-link> </div> </template> <script> import NavClub from '@/components/NavClub.vue' +import router from "../router/index" +import axios from "axios" +// import router from '' export default { name: 'applymember', components: { @@ -42,10 +47,20 @@ export default { let id = this.$route.params.clubId; const res = await this.$http.get(`http://jnhonlinux.ddns.net:3000/club/${id}`) this.club = res.data.result - let uid = this.$route.params.uid - const res2 = await this.$http.get(`http://jnhonlinux.ddns.net:3000/joinedClub/detail/${uid}`) + let name = this.$route.params.name + const res2 = await this.$http.get(`http://jnhonlinux.ddns.net:3000/joinedClub/detail/${name}`) this.member = res2.data.result - + console.log(this.member) + }, + methods:{ + apply(){ + let id = this.$route.params.clubId; + axios.post(`http://jnhonlinux.ddns.net:3000/joinedClub/${id}`,{ + user: this.member[0].name, + club: id + }) + router.push(`/club_manage/${id}`) + } } } </script> \ No newline at end of file diff --git a/src/views/club_Detail.vue b/src/views/club_Detail.vue index 47a20a00c2cab30bd7c60694b09df87e83356800..8e77b972f481f1f236026832e8c0eb3bf420f27e 100644 --- a/src/views/club_Detail.vue +++ b/src/views/club_Detail.vue @@ -13,7 +13,7 @@ <br> 전화번호: {{member[0].phone}} </div> - <router-link :to="{path:`/club_manage/${club[0].id}`}">뒤로 가기</router-link> + <router-link :to="{path:`/club_manage/${this.$route.params.clubId}`}">뒤로 가기</router-link> </div> </template> @@ -35,11 +35,12 @@ export default { } }, async created(){ - let id = this.$route.params.clubId; - const res = await this.$http.get(`http://jnhonlinux.ddns.net:3000/club/${id}`) - this.club = res.data.result - let uid = this.$route.params.uid - const res2 = await this.$http.get(`http://jnhonlinux.ddns.net:3000/users/${uid}`) + // let id = this.$route.params.clubId; + // const res = await this.$http.get(`http://jnhonlinux.ddns.net:3000/club/${id}`) + // this.club = res.data.result + + let user = this.$route.params.id + const res2 = await this.$http.get(`http://jnhonlinux.ddns.net:3000/users/${user}`) this.member = res2.data diff --git a/src/views/club_top_bar/club_Manage.vue b/src/views/club_top_bar/club_Manage.vue index b6e78f1cbe9cd80d595dd9d402094cc68bb3bde3..09a3032375fa86419574d5f5f66abd2c5df51b97 100644 --- a/src/views/club_top_bar/club_Manage.vue +++ b/src/views/club_top_bar/club_Manage.vue @@ -5,8 +5,9 @@ <h3>동아리원 목록</h3> <div class="clubmember"> <div v-for="clubmem in member"> + {{clubmem}} <h3 style="display:inline">이름: {{clubmem.user}}</h3> - <button><router-link :to="{name:'club_detail', params:{clubId: `${club[0].id}`, uid:clubmem.user}}">자세히</router-link></button> + <button><router-link :to="{name:'club_detail', params:{clubId: `${club[0].id}`, id:clubmem.user}}">자세히</router-link></button> </div> </div> <h3>가입 신청자 목록</h3> @@ -14,9 +15,8 @@ <div v-for="applymem in applymember"> <h3 style="display:inline">이름: {{applymem.user}}</h3> {{applymem}} - <button><router-link :to="{name:'applymember', params:{clubId: `${club[0].id}`, uid: applymem.user}}">자세히</router-link></button> + <button><router-link :to="{name:'applymember', params:{clubId: `${club[0].id}`, name: applymem.user}}">자세히</router-link></button> </div> - <!--관리자만 볼 수 있도록 가입 신청 대기자들 목록 표시--> </div> <br><br> </div> @@ -46,7 +46,7 @@ export default { const applymember = await axios.get(`http://jnhonlinux.ddns.net:3000/applyClub/${id}`) this.applymember = applymember.data.result - console.log(this.applymember) + }, } </script> diff --git a/src/views/left_bar/Login.vue b/src/views/left_bar/Login.vue index ed50e76bb2e1d94e17fe7c72f0f99b4b50e5de96..6f771369738af61aaaf1e3558299f6ea47628941 100644 --- a/src/views/left_bar/Login.vue +++ b/src/views/left_bar/Login.vue @@ -29,7 +29,7 @@ export default { ...mapActions(['login']) }, computed: { - ...mapState(["isLigin","isLoginError"]) + ...mapState(["isLogin","isLoginError"]) } } </script> diff --git a/src/views/left_bar/Myclub.vue b/src/views/left_bar/Myclub.vue index b9a30977dd70d1e14b5da36b18a7867a3b46864e..2850ec397606dc903ca5517999b610f8ff73ceba 100644 --- a/src/views/left_bar/Myclub.vue +++ b/src/views/left_bar/Myclub.vue @@ -24,10 +24,11 @@ export default { ...mapState(['userInfo']) }, async created(){ - let uid = this.userInfo.uid const res2 = await axios.get('http://jnhonlinux.ddns.net:3000/club') this.club = res2.data.result - const res = await axios.get(`http://jnhonlinux.ddns.net:3000/joinedClub/user/${uid}`) + + let user = this.userInfo.name + const res = await axios.get(`http://jnhonlinux.ddns.net:3000/joinedClub/user/${user}`) this.clublist = res.data.result } diff --git a/src/views/left_bar/Mypage.vue b/src/views/left_bar/Mypage.vue index 7e0eeb989db9be8665fcb7aa78b87a3a7aa320d1..8e86c9fb4b94a87b4fbcb5ffd1ef4317c6f8bf16 100644 --- a/src/views/left_bar/Mypage.vue +++ b/src/views/left_bar/Mypage.vue @@ -2,28 +2,35 @@ <template> <div class="mypage"> <div> - <pre>학교: {{userInfo.univ}}</pre> - <pre>학과: {{userInfo.department}}</pre> - <pre>학번: {{userInfo.sid}}</pre> - <pre>이메일: {{userInfo.email}}</pre> - <pre>전화번호: {{userInfo.phone}}</pre> + <pre>학교: {{user[0].univ}}</pre> + <pre>학과: {{user[0].department}}</pre> + <pre>학번: {{user[0].sid}}</pre> + <pre>이메일: {{user[0].email}}</pre> + <pre>전화번호: {{user[0].phone}}</pre> </div> <router-link to="/modify_profile">수정하기</router-link> - </div> </template> <script> import {mapState} from "vuex" +import axios from "axios" export default { data() { return { - editDate: null + user: [{ + univ:'' + }] } }, computed: { ...mapState(['userInfo']) - } + }, + async created(){ + let user = this.userInfo.name; + const res = await axios.get(`http://jnhonlinux.ddns.net:3000/users/${user}`) + this.user = res.data; + }, } </script>