yjryu / KERIS star
Stormen123 2023-11-09
231109 김성훈 기업홍보관 수정
@4266d6960230a5b778890708447cede00a18cf27
client/views/pages/user/networking/Matching.vue
--- client/views/pages/user/networking/Matching.vue
+++ client/views/pages/user/networking/Matching.vue
@@ -40,7 +40,8 @@
                                     <img :src="'http://localhost:8080'+item.file_path +'\\' + item.file_nm + '.' + item.file_extn_nm" width="20px" alt="">
                                     <p>{{ company_info }}</p>
                                     <div class="matchingbox-1">
-                                        <p><i class="fa-regular fa-heart fa-lg" style="color: #3f87f7;"></i> {{ item.company_pick_cnt }} </p>
+                                        <p v-if="item.pick_yn === 0" @click.stop="pickModal(item)"><i class="fa-regular fa-heart fa-lg" style="color: #3f87f7;"></i> {{ item.company_pick_cnt }} </p>
+                                        <p v-else @click.stop="pickCancelModal(item)"><i class="fa fa-heart fa-lg" style="color: #d41515;"></i> {{ item.company_pick_cnt }} </p>
                                         <p class="matchingbox-text">조회수 <span>{{ item.view_cnt }}</span></p>
                                     </div>
                                     <div class="matching-span">
@@ -59,14 +60,15 @@
             <div class="matching-box-main-two">
                 <div class="w1400">
                     <div class="matching-box-grid-two">
-                        <div class="matching-box-2">
-                            <div v-for="(item, idx) in companyList" :key="idx" @click="companySelectOnePage(item)">
+                        <div class="matching-box-2" v-for="(item, idx) in companyList" :key="idx" @click="companySelectOnePage(item)">
+                            <div>
                                 <h5>{{ item.company_nm }}</h5>
                                 <div class="matching-span">
                                         <span v-for="(item, idx) in keywordList" :key="idx">#{{ item }}</span>
                                     </div>
                                 <div class="matchingbox-2">
-                                    <p><i class="fa-regular fa-heart fa-lg" style="color: #3f87f7;"></i> {{ item.company_pick_cnt }} </p>
+                                    <p v-if="item.pick_yn === 0" @click.stop="pickModal(item)"><i class="fa-regular fa-heart fa-lg" style="color: #3f87f7;"></i> {{ item.company_pick_cnt }} </p>
+                                    <p v-else @click.stop="pickCancelModal(item)"><i class="fa fa-heart fa-lg" style="color: #d41515;"></i> {{ item.company_pick_cnt }} </p>
                                     <p>조회수 <span>{{ item.view_cnt }}</span> </p>
                                 </div>
 
@@ -97,7 +99,9 @@
             keywordList:[],
             companyTop6List:[],
             companyListCount: 0,
-            companyIdx: 0
+            companyIdx: 0,
+
+            pickModalOpen: false
         }
     },
     methods: {
@@ -116,14 +120,68 @@
                 vm.companyListCount = response.data.companySelectListCount;
                 vm.companyIdx = vm.companyListCount - (vm.companyListSearch.currentPage - 1) * vm.companyListSearch.perPage;
                 vm.companyTop6List = response.data.companyTop6;
+
                  for( let i = 0; i < vm.companyList.length; i++) {
                     vm.keywordList = vm.companyList[i].keyword.split('#');
-                    console.log('keyword', vm.keywordList);
                 }
                 
             }).then(function() {
                 vm.keywordList.splice(0, 1);
-                console.log( vm.keywordList);
+            }).catch(function(error) {
+                console.log('error - ', error)
+                alert('기업 목록 조회 오류, 관리자에게 문의하세요.');
+            })
+        },
+
+        pickModal: function(item) {
+            if(confirm(item.company_nm + "에 PICK 신청을 하시겠습니까?")) {
+                this.pick(item)
+            }
+        },
+
+        pickCancelModal: function(item) {
+            if(confirm(item.company_nm + "에게 신청한 PICK을 취소 하시겠습니까?")) {
+                this.pickCancel(item)
+            }
+        },
+
+        pick: function(item) {
+            const vm = this;
+
+            axios({
+                url: '/matching/pick.json',
+                method: 'post',
+                hearder: {
+                    'Content-Type': "application/json; charset=UTF-8",
+                },
+                data: item
+            }).then(function(response) {
+                alert(response.data);
+                vm.companySelectList();
+            }).catch(function(error) {
+                console.log('error - ', error)
+                alert('기업 목록 조회 오류, 관리자에게 문의하세요.');
+            })
+        },
+
+        pickCancel: function(item) {
+            const vm = this;
+
+            axios({
+                url: '/matching/pickCancel.json',
+                method: 'post',
+                hearder: {
+                    'Content-Type': "application/json; charset=UTF-8",
+                },
+                data: item
+            }).then(function(response) {
+                if(response.data > 0) {
+                    alert("PICK 취소 완료 되었습니다.")
+                    vm.companySelectList();
+                } else {
+                    alert("이미 취소된 PICK입니다.")
+                }
+                
             }).catch(function(error) {
                 console.log('error - ', error)
                 alert('기업 목록 조회 오류, 관리자에게 문의하세요.');
Add a comment
List