Browse Source

求职意向中,增加左滑动删除功能。

lizeyu 10 months ago
parent
commit
095673ce21

+ 14 - 0
h5app/src/api/jobHuntInfo/index.ts

@@ -53,3 +53,17 @@ export function saveJobHunt(data: any) {
     );
 }
 
+export function deleteJobHuntAndRecommendMgt(id:any) {
+    return request<object>(
+        {
+            url: 'jobUserService/jobHunt/deleteJobHuntAndRecommendMgt',
+            method: 'post',
+            params: {id},
+        },
+        {
+            isNew: true,
+            successMsg: '删除成功!',
+            errorMsg: '删除失败!'
+        },
+    );
+}

+ 61 - 26
h5app/src/views/pages/jobhunt/recommend/list.vue

@@ -21,28 +21,37 @@
       <div class="bw-vue-list">
         <div class="list-content">
           <ion-list>
-            <ion-item v-for="(record,key) in dataList" :key="key">
-              <ion-label>
-                <div class="multi-title">
-                  <h2>{{ record.jobUserName }}</h2>
-                  <h2>{{ record.professionName }}</h2>
-                </div>
-                <p>人才类型:{{ record.jobUserTypeStr }}</p>
-                <div class="multi-title">
-                  <p>
-                    工作年限:{{ record.workYear }}
-                  </p>
-                  <p>
-                    求职类型:{{ record.jobHuntTypeStr }}
-                  </p>
-                </div>
-                <p>月薪要求:{{ record.minSalary }}至{{ record.maxSalary }}元</p>
-              </ion-label>
-              <ion-avatar @click="onRecommendJob(record);$event.preventDefault();$event.stopPropagation();"
-                          aria-hidden="true" class="container" slot="end">
-                <ion-button size="small" fill="outline">推荐</ion-button>
-              </ion-avatar>
-            </ion-item>
+            <div v-for="(record,key) in dataList" :key="key" detail>
+              <ion-item-sliding>
+                <ion-item>
+                  <ion-label>
+                    <div class="multi-title">
+                      <h2>{{ record.jobUserName }}</h2>
+                      <h2>{{ record.professionName }}</h2>
+                    </div>
+                    <p>人才类型:{{ record.jobUserTypeStr }}</p>
+                    <div class="multi-title">
+                      <p>
+                        工作年限:{{ record.workYear }}
+                      </p>
+                      <p>
+                        求职类型:{{ record.jobHuntTypeStr }}
+                      </p>
+                    </div>
+                    <p>月薪要求:{{ record.minSalary }}至{{ record.maxSalary }}元</p>
+                  </ion-label>
+                  <ion-avatar @click="onRecommendJob(record);$event.preventDefault();$event.stopPropagation();"
+                              aria-hidden="true" class="container" slot="end">
+                    <ion-button size="small" fill="outline">推荐</ion-button>
+                  </ion-avatar>
+                </ion-item>
+                <ion-item-options>
+                  <ion-item-option color="danger" @click="onDel(record.jobHuntID)">
+                    <ion-icon :icon="trashOutline"></ion-icon>
+                  </ion-item-option>
+                </ion-item-options>
+              </ion-item-sliding>
+            </div>
           </ion-list>
         </div>
       </div>
@@ -62,10 +71,10 @@
 import {computed, defineComponent, reactive, ref} from 'vue';
 import dayjs from "dayjs";
 import {useRoute, useRouter} from "vue-router";
-import {arrowBackOutline} from 'ionicons/icons';
-import {IonIcon, onIonViewDidEnter} from '@ionic/vue';
+import {arrowBackOutline,trashOutline} from 'ionicons/icons';
+import {alertController, IonIcon, onIonViewDidEnter} from '@ionic/vue';
 import BEmpty from "@/components/empty.vue";
-import {getJobHuntList} from '@/api/jobHuntInfo/index'
+import {getJobHuntList, deleteJobHuntAndRecommendMgt} from '@/api/jobHuntInfo/index'
 
 export default defineComponent({
   name: 'RecommendCompanyPostList',
@@ -130,6 +139,30 @@ export default defineComponent({
       });
     }
 
+    const onDel = async (id: any) => {
+      const alert = await alertController.create({
+        header: '提示!',
+        message: '是否确认删除?',
+        buttons: [
+          {
+            text: '取消',
+            role: 'cancel'
+          },
+          {
+            text: '确认删除',
+            handler: () => {
+              deleteJobHuntAndRecommendMgt(id).then(result => {
+                if (result)
+                  reload();
+              });
+            }
+          }
+        ],
+      });
+
+      await alert.present();
+    }
+
     const onBack = () => {
       router.push('../../');
     }
@@ -140,16 +173,18 @@ export default defineComponent({
 
     return {
       arrowBackOutline,
+      trashOutline,
       router,
       total,
       loading,
       dataList,
       pagination,
       searchParams,
+      loadData,
       onBack,
       onRecommendJob,
+      onDel,
       onScroll,
-      loadData,
       reload,
       dayjs,
     }

+ 2 - 2
h5app/src/views/pages/post/list.vue

@@ -140,7 +140,7 @@ export default defineComponent({
       router.push({path: './edit', query: {reload: 1, id: postID, status: 2}});
     }
 
-    const onDel = async (postID: any) => {
+    const onDel = async (id: any) => {
       const alert = await alertController.create({
         header: '提示!',
         message: '是否确认删除?',
@@ -152,7 +152,7 @@ export default defineComponent({
           {
             text: '确认删除',
             handler: () => {
-              deletePostAndRecommendMgt(postID).then(result => {
+              deletePostAndRecommendMgt(id).then(result => {
                 if (result)
                   reload();
               });

+ 10 - 0
src/main/java/com/hz/employmentsite/controller/jobUserManager/JobHuntController.java

@@ -2,6 +2,7 @@ package com.hz.employmentsite.controller.jobUserManager;
 
 import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.filter.exception.BaseErrorEnum;
+import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.filter.exception.BaseResponse;
 import com.hz.employmentsite.filter.exception.RespGenerstor;
 import com.hz.employmentsite.services.service.AccountService;
@@ -68,6 +69,15 @@ public class JobHuntController {
         return RespGenerstor.success(jobhuntService.delete(idList));
     }
 
+    @ResponseBody
+    @PostMapping("/deleteJobHuntAndRecommendMgt")
+    public BaseResponse<Integer> deleteJobHuntAndRecommendMgt(String id) {
+        Integer result = jobhuntService.deleteJobHuntAndRecommendMgt(id);
+        if (result <= 0)
+            throw new BaseException(BaseErrorEnum.DELETE_NOT_DATA_ERROR);
+        return RespGenerstor.success(1);
+    }
+
     @PostMapping("save")
     public BaseResponse<Integer> save(@RequestBody JobHuntVo data) {
         return RespGenerstor.success(jobhuntService.save(data,accountService.getLoginUserID()));

+ 1 - 2
src/main/java/com/hz/employmentsite/services/impl/companyService/PostServiceImpl.java

@@ -197,8 +197,7 @@ public class PostServiceImpl implements PostService {
             PcRecommendMgtExample.Criteria cro = exp.or();
             cro.andPostIDEqualTo(id);
             pcRecommendMgtMapper.deleteByExample(exp);
-            pcPostMapper.deleteByPrimaryKey(id);
-            return 1;
+            return pcPostMapper.deleteByPrimaryKey(id);
         }catch (Exception e){
             e.printStackTrace();
             return 0;

+ 17 - 0
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobHuntServiceImpl.java

@@ -6,6 +6,7 @@ import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.mapper.PcJobhuntMapper;
 import com.hz.employmentsite.mapper.PcJobuserMapper;
 import com.hz.employmentsite.mapper.PcProfessionMapper;
+import com.hz.employmentsite.mapper.PcRecommendMgtMapper;
 import com.hz.employmentsite.mapper.cquery.JobHuntCQuery;
 import com.hz.employmentsite.model.*;
 import com.hz.employmentsite.services.service.jobUserManager.JobHuntService;
@@ -36,6 +37,9 @@ public class JobHuntServiceImpl implements JobHuntService {
     @Autowired
     private PcProfessionMapper pcProfessionMapper;
 
+    @Autowired
+    private PcRecommendMgtMapper pcRecommendMgtMapper;
+
     @Autowired
     private DictionaryService dictionaryService;
 
@@ -75,6 +79,19 @@ public class JobHuntServiceImpl implements JobHuntService {
         return pcJobhuntMapper.deleteByExample(contactExample);
     }
 
+    @Override
+    public Integer deleteJobHuntAndRecommendMgt(String id){
+        try{
+            PcRecommendMgtExample emp = new PcRecommendMgtExample();
+            emp.or().andJobHuntIDEqualTo(id);
+            pcRecommendMgtMapper.deleteByExample(emp);
+            return pcJobhuntMapper.deleteByPrimaryKey(id);
+        }catch (Exception e){
+            e.printStackTrace();
+            return 0;
+        }
+    }
+
     @Override
     public Integer save(JobHuntVo data, String userId) {
         int result = 0;

+ 2 - 0
src/main/java/com/hz/employmentsite/services/service/jobUserManager/JobHuntService.java

@@ -15,6 +15,8 @@ public interface JobHuntService {
 
     Integer delete(List<String> idList);
 
+    Integer deleteJobHuntAndRecommendMgt(String id);
+
     Integer save(JobHuntVo data, String userId);
 
     List<JobHuntVo> importJobHunt(List<JobHuntVo> dataList, String userID);

+ 2 - 2
src/main/resources/mapping/cquery/RecommendMgtCQuery.xml

@@ -11,9 +11,9 @@
         ,e.jobuserId,c.companyId
         ,d.workYear
         from pc_recommend_mgt a
-        left join pc_post b on a.PostID = b.PostID
+        inner join pc_post b on a.PostID = b.PostID
         left join pc_company c on b.CompanyID = c.CompanyID
-        left join pc_jobhunt d on a.JobHuntID = d.JobHuntID
+        inner join pc_jobhunt d on a.JobHuntID = d.JobHuntID
         left join pc_jobuser e on d.JobUserID = e.JobuserID
         left join pc_profession f on b.ProfessionID = f.ProfessionID
         left join pc_profession f2 on d.ProfessionID = f2.ProfessionID