Browse Source

招聘会类别设置调整

Xiao_123 2 months ago
parent
commit
6fe623ff79

+ 5 - 0
src/api/menduner/system/jobFair/manage/index.ts

@@ -101,5 +101,10 @@ export const JobFairManageApi = {
   // 关闭招聘会门票权益
   disableTicketRights: async (id) => {
     return await request.post({ url: `/menduner/system/job-fair/admission/disable?id=${id}` })
+  },
+
+  // 更新招聘会类别
+  updateJobFairCategory: async (data: any) => {
+    return await request.put({ url: `/menduner/system/job-fair/update-category`, data })
   }
 }

+ 13 - 17
src/views/menduner/system/jobFair/manage/details/components/Category.vue

@@ -24,8 +24,13 @@
             <el-input v-model="val.title" clearable placeholder="请输入类别名称"/>
           </el-col>
           <el-col :span="10" class="mx-10px">
-            <el-select v-model="val.value" filterable multiple placeholder="请选择类别数值" collapse-tags collapse-tags-tooltip>
-              <el-option v-for="k in formData.category === '0' ? enterpriseList : position" :key="k.id" :label="formData.category === '0' ? k.name : k.nameCn" :value="k.id.toString()"/>
+            <!-- 企业 -->
+            <el-select v-if="formData.category === '0'" v-model="val.value" filterable multiple placeholder="请选择企业" collapse-tags collapse-tags-tooltip>
+              <el-option v-for="k in enterpriseList" :key="k.id" :label="k.name" :value="k.id.toString()"/>
+            </el-select>
+            <!-- 职位 -->
+            <el-select v-if="formData.category === '1'" v-model="val.value" filterable multiple placeholder="请选择职位类型" collapse-tags collapse-tags-tooltip>
+              <el-option v-for="k in position" :key="k.id" :label="k.nameCn" :value="k.id.toString()"/>
             </el-select>
           </el-col>
           <el-col :span="4">
@@ -51,10 +56,8 @@
 <script setup lang="ts">
 /** 招聘会管理 信息设置 */
 defineOptions({ name: 'JobFairManageInfoSettings' })
-import { JobFairManageApi, JobFairManageVO } from '@/api/menduner/system/jobFair/manage'
+import { JobFairManageApi } from '@/api/menduner/system/jobFair/manage'
 import { PositionApi } from '@/api/menduner/system/position'
-import { JobFairWhiteApi } from '@/api/menduner/system/jobFair/white'
-import { cloneDeep } from 'lodash-es'
 
 const props = defineProps({ formType: String, info: Object, enterpriseList: Array })
 
@@ -63,6 +66,7 @@ const message = useMessage() // 消息弹窗
 
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 const formData = ref({
+  id: undefined,
   category: '0',
   tag: []
 })
@@ -81,12 +85,13 @@ const getPositionList = async () => {
   const data = await PositionApi.getPositionList({})
   position.value = data || []
 }
-getPositionList()
+
 
 onMounted(() => {
+  getPositionList()
   if (props.info && Object.keys(props.info).length > 0) {
 		formLoading.value = true
-		formData.value = cloneDeep(props.info)
+    formData.value.id = props.info.id
 		if (!formData.value.tag || !formData.value.tag.length) {
 			formData.value.tag = []
 		}
@@ -131,21 +136,12 @@ const submitForm = async () => {
     if (!check) return message.warning('请将类别详情中的项填写完整')
     if (formData.value.tag.length < 2) return message.warning('请至少填写两个类别详情')
     formData.value.tag.forEach(e => e.key = formData.value.category === '0' ? 'enterpriseId' : 'positionId')
-
-		if (formData.value.category === '0') {
-		  try {
-				await message.confirm('是否要将选中的企业同步到白名单中?')
-				const enterpriseIds = formData.value.tag.map(e => e.value.join(',')).join(',')
-				await JobFairWhiteApi.addJobFairWhiteList({ jobFairId: formData.value.id, enterpriseIds }) 
-			} catch {}
-		}
   }
 
   // 提交请求
   formLoading.value = true
   try {
-    const data = formData.value as unknown as JobFairManageVO
-		await JobFairManageApi.updateJobFair(data)
+		await JobFairManageApi.updateJobFairCategory(formData.value)
 		message.success(t('common.updateSuccess'))
   } finally {
     formLoading.value = false

+ 2 - 2
src/views/menduner/system/jobFair/manage/details/components/WhiteList.vue

@@ -49,7 +49,7 @@
   />
 
   <!-- 表单弹窗:添加/修改 -->
-  <JobFairForm ref="formRef" :enterpriseList="enterpriseList" @success="getList" />
+  <JobFairForm ref="formRef" @success="getList" />
 </template>
 
 <script setup lang="ts">
@@ -59,7 +59,7 @@ import { JobFairWhiteApi } from '@/api/menduner/system/jobFair/white'
 import JobFairForm from '../jobFairForm.vue'
 import { formatName } from '@/utils'
 
-const props = defineProps({ info: Object, enterpriseList: Array })
+const props = defineProps({ info: Object })
 const message = useMessage() // 消息弹窗
 
 const loading = ref(false) // 列表的加载中

+ 36 - 3
src/views/menduner/system/jobFair/manage/details/jobFairForm.vue

@@ -8,10 +8,11 @@
       v-loading="formLoading"
     >
       <el-form-item label="企业名称" prop="enterpriseIds">
-        <el-select v-model="formData.enterpriseIds" multiple filterable clearable placeholder="请输入企业全称进行查找">
+        <el-select v-model="formData.enterpriseIds" multiple filterable clearable remote :remote-method="remoteMethod" :loading="loading"  placeholder="请输入企业全称进行查找">
           <el-option v-for="(item, index) in enterpriseList" :key="index" :label="item.name" :value="item.id">
-            <span>{{ formatName(item.anotherName || item.name) }}</span>
+            <span>{{ formatName(item.name || item.anotherName) }}</span>
           </el-option>
+          <p v-if="showLoadMore" class="text-center color-lightblue cursor-pointer" @click="handleLoadMore">加载更多</p>
         </el-select>
       </el-form-item>
     </el-form>
@@ -25,12 +26,12 @@
 <script setup lang="ts">
 import { JobFairWhiteApi } from '@/api/menduner/system/jobFair/white'
 import { formatName } from '@/utils'
+import { EnterpriseApi } from '@/api/menduner/system/enterprise/message'
 
 /** 招聘会 表单 */
 defineOptions({ name: 'JobFairDetailsForm' })
 
 const message = useMessage() // 消息弹窗
-defineProps({ enterpriseList: Array })
 
 const dialogVisible = ref(false) // 弹窗的是否展示
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
@@ -43,6 +44,38 @@ const formRules = reactive({
 })
 const formRef = ref() // 表单 Ref
 
+const showLoadMore = ref(true) // 是否展示加载更多按钮
+const loading = ref(false)
+const enterpriseList = ref([])
+
+const queryParams = reactive({
+  pageNo: 1,
+  pageSize: 20
+})
+const getEnterpriseList = async () => {
+  const result = await EnterpriseApi.getEnterprisePage(queryParams)
+  const list = result.list || []
+  enterpriseList.value = enterpriseList.value.concat(list)
+  if (enterpriseList.value.length === result.total) showLoadMore.value = false
+}
+getEnterpriseList()
+
+const remoteMethod = async (query: string) => {
+  if (query) {
+    loading.value = true
+    enterpriseList.value = []
+    queryParams.pageNo = 1
+    queryParams.anotherName = query
+    await getEnterpriseList()
+    loading.value = false
+  }
+}
+
+const handleLoadMore = () => {
+  queryParams.pageNo++
+  getEnterpriseList()
+}
+
 /** 打开弹窗 */
 const open = async (id: string) => {
   resetForm()