Forráskód Böngészése

招聘会-剩余可发布职位数

Xiao_123 2 hónapja
szülő
commit
bd0920e534

+ 3 - 1
components.d.ts

@@ -30,7 +30,6 @@ declare module 'vue' {
     CtTextField: typeof import('./src/components/CtVuetify/CtTextField/index.vue')['default']
     DatePicker: typeof import('./src/components/DatePicker/index.vue')['default']
     Echarts: typeof import('./src/components/Echarts/index.vue')['default']
-    ElCascader: typeof import('element-plus/es')['ElCascader']
     ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
     Empty: typeof import('./src/components/Empty/index.vue')['default']
     File: typeof import('./src/components/Upload/file.vue')['default']
@@ -74,4 +73,7 @@ declare module 'vue' {
     VerifySlide: typeof import('./src/components/Verifition/Verify/VerifySlide.vue')['default']
     WangEditor: typeof import('./src/components/FormUI/wangEditor/index.vue')['default']
   }
+  export interface ComponentCustomProperties {
+    vLoading: typeof import('element-plus/es')['ElLoadingDirective']
+  }
 }

+ 8 - 0
src/api/recruit/enterprise/jobFair.js

@@ -98,4 +98,12 @@ export const updateJoinDate = async (data) => {
     url: '/app-api/flames/pracice/submit/record/update',
     data
   })
+}
+
+// 招聘会企业权益
+export const getJobFairRights = async (jobFairId) => {
+  return await request.get({
+    url: '/app-api/menduner/system/recruit/job-fair/admission/get',
+    params: { jobFairId }
+  })
 }

+ 1 - 1
src/views/recruit/components/jobFairEntShare/index.vue

@@ -109,7 +109,7 @@ const drawCanvas = () => {
           const tagWidth = ctx.measureText(truncatedTag).width + 2 * tagPaddingLeftRight
           const tagX = x + (secondImgWidth - tagWidth) / 2
 
-          ctx.fillStyle = '#246a6c'
+          ctx.fillStyle = '#00B760'
           ctx.beginPath()
           ctx.moveTo(tagX + tagRadius, tagY)
           ctx.lineTo(tagX + tagWidth - tagRadius, tagY)

+ 17 - 6
src/views/recruit/enterprise/jobFair/details.vue

@@ -2,12 +2,15 @@
   <v-card class="card-box pa-4" :style="`background-color: ${jobFairInfo?.backgroundColour}`">
     <div class="position-relative">
       <div class="text-center mb-5 mt-2 font-weight-bold font-size-20" style="color: #fff">{{ jobFairInfo?.title?.replace(/<\/?p[^>]*>/gi, '') }}</div>
-      <div class="text-end mb-3">
-        <v-btn color="#fff" :style="`color: ${jobFairInfo?.backgroundColour || 'var(--v-primary-base)'}`" @click="handleAdd">新增职位</v-btn>
-        <v-btn color="#fff" class="mx-3" variant="outlined" @click="handleJoin">选择已发布的职位加入招聘会</v-btn>
-        <v-btn color="#fff" v-if="jobFairInfo?.contentImg" variant="outlined" prepend-icon="mdi-share-all" @click="handleShare">我的分享海报</v-btn>
+      <div class="d-flex justify-space-between mb-3 align-center">
+        <div style="color: #fff;">剩余可发布职位数:{{ jobNum }}个</div>
+        <div>
+          <v-btn color="#fff" :style="`color: ${jobFairInfo?.backgroundColour || 'var(--v-primary-base)'}`" @click="handleAdd">新增职位</v-btn>
+          <v-btn color="#fff" class="mx-3" variant="outlined" @click="handleJoin">选择已发布的职位加入招聘会</v-btn>
+          <v-btn color="#fff" v-if="jobFairInfo?.contentImg" variant="outlined" prepend-icon="mdi-share-all" @click="handleShare">我的分享海报</v-btn>
+        </div>
       </div>
-      <JobItem :items="jobList" @refresh="getJobList"></JobItem>
+      <JobItem :items="jobList" @refresh="getJobList(), getJobNum()"></JobItem>
 
       <v-navigation-drawer v-model="showDrawer" location="right" temporary width="600">
         <Loading :visible="positionLoading" :contained="true"></Loading>
@@ -88,7 +91,7 @@
 <script setup>
 defineOptions({ name: 'jobFairJob'})
 import { ref } from 'vue'
-import { getJobFairPosition, getJobFair } from '@/api/recruit/enterprise/jobFair'
+import { getJobFairPosition, getJobFair, getJobFairRights } from '@/api/recruit/enterprise/jobFair'
 import { dealDictArrayData } from '@/utils/position.js'
 import JobItem from './job/item.vue'
 import { useRouter, useRoute } from 'vue-router'
@@ -178,6 +181,14 @@ const getPositionList = async () => {
 }
 getJobList()
 
+// 可发布职位数
+const jobNum = ref(0)
+const getJobNum = async () => {
+  const result = await getJobFairRights(id)
+  jobNum.value = result?.num || 0
+}
+getJobNum()
+
 // 获取招聘会信息
 const jobFairInfo = ref({})
 const getJobFairInfo = async () => {

+ 8 - 6
src/views/recruit/enterprise/jobFair/job/item.vue

@@ -75,12 +75,14 @@ const handleEdit = async (val) => {
 
 const handleRemove = ({ id }) => {
   Confirm('系统提示', '是否确认将此职位移出招聘会?').then(async () => {
-    await quitJobFairPosition({
-      jobFairId: route.params.id,
-      jobId: id
-    })
-    Snackbar.success('移出成功')
-    emit('refresh')
+    try {
+      await quitJobFairPosition({
+        jobFairId: route.params.id,
+        jobId: id
+      })
+      Snackbar.success('移出成功')
+      emit('refresh')
+    } catch {}
   })
   
 }