Bladeren bron

白名单

Xiao_123 6 maanden geleden
bovenliggende
commit
1e52961a8f

+ 19 - 0
src/api/menduner/system/jobFair/white/index copy.ts

@@ -0,0 +1,19 @@
+import request from '@/config/axios'
+
+// 招聘会 API
+export const JobFairWhiteApi = {
+  // 获得招聘会白名单企业
+  getJobFairWhiteList: async () => {
+    return await request.get({ url: `/menduner/system/job-fair/get-white-enterprise` })
+  },
+
+  // 添加企业白名单
+  addJobFairWhiteList: async (enterpriseIds: array) => {
+    return await request.put({ url: `/menduner/system/job-fair/add-white-list?enterpriseIds=${enterpriseIds}` })
+  },
+
+  // 移除企业白名单
+  removeJobFairWhiteList: async (enterpriseIds: array) => {
+    return await request.put({ url: `/menduner/system/job-fair/remove-white-list?enterpriseIds=${enterpriseIds}` })
+  }
+}

+ 6 - 6
src/api/menduner/system/jobFair/white/index.ts

@@ -3,17 +3,17 @@ import request from '@/config/axios'
 // 招聘会 API
 export const JobFairWhiteApi = {
   // 获得招聘会白名单企业
-  getJobFairWhiteList: async () => {
-    return await request.get({ url: `/menduner/system/job-fair/get-white-enterprise` })
+  getJobFairWhiteList: async (params: any) => {
+    return await request.get({ url: `/menduner/system/job-fair/get-white-enterprise`, params })
   },
 
   // 添加企业白名单
-  addJobFairWhiteList: async (enterpriseIds: array) => {
-    return await request.put({ url: `/menduner/system/job-fair/add-white-list?enterpriseIds=${enterpriseIds}` })
+  addJobFairWhiteList: async (enterpriseNames: array) => {
+    return await request.put({ url: `/menduner/system/job-fair/add-white-list2?enterpriseNames=${enterpriseNames}` })
   },
 
   // 移除企业白名单
-  removeJobFairWhiteList: async (enterpriseIds: array) => {
-    return await request.put({ url: `/menduner/system/job-fair/remove-white-list?enterpriseIds=${enterpriseIds}` })
+  removeJobFairWhiteList: async (enterpriseNames: array) => {
+    return await request.put({ url: `/menduner/system/job-fair/remove-white-list2?enterpriseNames=${enterpriseNames}` })
   }
 }

+ 85 - 0
src/views/menduner/system/jobFair/white copy/index.vue

@@ -0,0 +1,85 @@
+<template>
+  <!-- 列表 -->
+  <ContentWrap>
+    <div style="text-align: end;">
+      <el-button
+        type="primary"
+        plain
+        @click="handleAdd"
+      >
+        <Icon icon="ep:plus" class="mr-5px" /> 新增
+      </el-button>
+    </div>
+    <el-table v-loading="loading" :data="list" :stripe="true">
+      <el-table-column label="招聘会" align="center" prop="title" />
+      <el-table-column label="企业全称" align="center" prop="name" />
+      <el-table-column label="企业别称" align="center" prop="anotherName" />
+      <el-table-column label="企业logo" align="center" prop="logoUrl">
+        <template #default="scope">
+          <el-image style="width: 80px; height: 80px" :src="scope.row.logoUrl" />
+        </template>
+      </el-table-column>
+      <el-table-column label="用户名" align="center" prop="contact" />
+      <el-table-column label="操作" align="center">
+        <template #default="scope">
+          <el-button
+            link
+            type="primary"
+            @click="handleRemoveWhiteList(scope.row.id)"
+          >
+            移出白名单
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+  </ContentWrap>
+
+  <!-- 表单弹窗:添加/修改 -->
+  <JobFairForm ref="formRef" @success="getList" />
+</template>
+
+<script setup lang="ts">
+import { JobFairWhiteApi } from '@/api/menduner/system/jobFair/white'
+import JobFairForm from './jobFairForm.vue'
+
+/** 招聘会 列表 */
+defineOptions({ name: 'JobFair' })
+
+const message = useMessage() // 消息弹窗
+
+const loading = ref(true) // 列表的加载中
+const list = ref([]) // 列表的数据
+
+/** 查询列表 */
+const getList = async () => {
+  loading.value = true
+  try {
+    const data = await JobFairWhiteApi.getJobFairWhiteList()
+    if (!data) return list.value = []
+    list.value = data.enterpriseList.map(e => {
+      return { ...e, title: data.fair.title }
+    })
+  } finally {
+    loading.value = false
+  }
+}
+
+const formRef = ref()
+const handleAdd = () => {
+  formRef.value.open()
+}
+
+const handleRemoveWhiteList = async (id: number) => {
+  try {
+    await message.confirm('确定要将该企业移出白名单吗?')
+    await JobFairWhiteApi.removeJobFairWhiteList([id])
+    message.success('移出成功')
+    getList()
+  } catch (err) {}
+}
+
+/** 初始化 **/
+onMounted(() => {
+  getList()
+})
+</script>

+ 90 - 0
src/views/menduner/system/jobFair/white copy/jobFairForm.vue

@@ -0,0 +1,90 @@
+<template>
+  <Dialog title="添加白名单" v-model="dialogVisible">
+    <el-form
+      ref="formRef"
+      :model="formData"
+      :rules="formRules"
+      label-width="100px"
+      v-loading="formLoading"
+    >
+      <el-form-item label="企业名称" prop="enterpriseIds">
+        <el-select v-model="formData.enterpriseIds" filterable clearable multiple placeholder="请输入企业名称进行查找">
+          <el-option
+            v-for="item in enterpriseList"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          />
+        </el-select>
+      </el-form-item>
+    </el-form>
+    <template #footer>
+      <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
+      <el-button @click="dialogVisible = false">取 消</el-button>
+    </template>
+  </Dialog>
+</template>
+
+<script setup lang="ts">
+import { JobFairWhiteApi } from '@/api/menduner/system/jobFair/white'
+import { EnterpriseUserBindApi } from '@/api/menduner/system/enterprise/userBind'
+
+/** 招聘会 表单 */
+defineOptions({ name: 'JobFairForm' })
+
+const message = useMessage() // 消息弹窗
+
+const enterpriseList = ref([])
+const dialogVisible = ref(false) // 弹窗的是否展示
+const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
+const formData = ref({
+  enterpriseIds: []
+})
+const formRules = reactive({
+  enterpriseIds: [{ required: true, message: '请选择要添加的企业', trigger: 'blur' }]
+})
+const formRef = ref() // 表单 Ref
+
+/** 打开弹窗 */
+const open = async () => {
+  dialogVisible.value = true
+  resetForm()
+}
+defineExpose({ open }) // 提供 open 方法,用于打开弹窗
+
+// 企业列表
+const getEnterpriseListData = async () => {
+  try {
+    const data = await EnterpriseUserBindApi.getEnterpriseList()
+    enterpriseList.value = data
+  } catch (err) {}
+}
+getEnterpriseListData()
+
+/** 提交表单 */
+const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
+const submitForm = async () => {
+  // 校验表单
+  await formRef.value.validate()
+  
+  // 提交请求
+  formLoading.value = true
+  try {
+    await JobFairWhiteApi.addJobFairWhiteList(formData.value.enterpriseIds)
+    message.success('添加成功')
+    dialogVisible.value = false
+    // 发送操作成功的事件
+    emit('success')
+  } finally {
+    formLoading.value = false
+  }
+}
+
+/** 重置表单 */
+const resetForm = () => {
+  formData.value = {
+    enterpriseIds: []
+  }
+  formRef.value?.resetFields()
+}
+</script>

+ 60 - 26
src/views/menduner/system/jobFair/white/index.vue

@@ -1,37 +1,54 @@
 <template>
+  <ContentWrap>
+    <!-- 搜索工作栏 -->
+    <el-form
+      class="-mb-15px"
+      :model="queryParams"
+      ref="queryFormRef"
+      :inline="true"
+      label-width="68px"
+      @submit.prevent
+    >
+      <el-form-item label="企业名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入企业名称"
+          clearable
+          @keyup.enter="handleQuery"
+          class="!w-240px"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
+        <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
+        <el-button type="primary" plain @click="handleAdd"><Icon icon="ep:plus" class="mr-5px" /> 新增</el-button>
+      </el-form-item>
+    </el-form>
+  </ContentWrap>
+
   <!-- 列表 -->
   <ContentWrap>
-    <div style="text-align: end;">
-      <el-button
-        type="primary"
-        plain
-        @click="handleAdd"
-      >
-        <Icon icon="ep:plus" class="mr-5px" /> 新增
-      </el-button>
-    </div>
     <el-table v-loading="loading" :data="list" :stripe="true">
-      <el-table-column label="招聘会" align="center" prop="title" />
-      <el-table-column label="企业全称" align="center" prop="name" />
-      <el-table-column label="企业别称" align="center" prop="anotherName" />
-      <el-table-column label="企业logo" align="center" prop="logoUrl">
-        <template #default="scope">
-          <el-image style="width: 80px; height: 80px" :src="scope.row.logoUrl" />
-        </template>
-      </el-table-column>
-      <el-table-column label="用户名" align="center" prop="contact" />
+      <el-table-column label="招聘会标题" align="center" prop="jobFair.title" />
+      <el-table-column label="企业名称" align="center" prop="name" />
       <el-table-column label="操作" align="center">
         <template #default="scope">
           <el-button
             link
             type="primary"
-            @click="handleRemoveWhiteList(scope.row.id)"
+            @click="handleRemoveWhiteList(scope.row.name)"
           >
             移出白名单
           </el-button>
         </template>
       </el-table-column>
     </el-table>
+    <Pagination
+      :total="total"
+      v-model:page="queryParams.pageNo"
+      v-model:limit="queryParams.pageSize"
+      @pagination="getList"
+    />
   </ContentWrap>
 
   <!-- 表单弹窗:添加/修改 -->
@@ -49,30 +66,47 @@ const message = useMessage() // 消息弹窗
 
 const loading = ref(true) // 列表的加载中
 const list = ref([]) // 列表的数据
+const total = ref(0)
+const queryParams = ref({
+  pageNo: 1,
+  pageSize: 10,
+  name: undefined
+})
 
 /** 查询列表 */
 const getList = async () => {
   loading.value = true
   try {
-    const data = await JobFairWhiteApi.getJobFairWhiteList()
-    if (!data) return list.value = []
-    list.value = data.enterpriseList.map(e => {
-      return { ...e, title: data.fair.title }
-    })
+    const data = await JobFairWhiteApi.getJobFairWhiteList(queryParams.value)
+    total.value = data.total
+    list.value = data.list
   } finally {
     loading.value = false
   }
 }
 
+const handleQuery = () => {
+  queryParams.value.pageNo = 1
+  getList()
+}
+
+/** 重置按钮操作 */
+const queryFormRef = ref()
+const resetQuery = () => {
+  queryFormRef.value.resetFields()
+  handleQuery()
+}
+
 const formRef = ref()
 const handleAdd = () => {
   formRef.value.open()
 }
 
-const handleRemoveWhiteList = async (id: number) => {
+// 移出白名单
+const handleRemoveWhiteList = async (enterpriseName: string) => {
   try {
     await message.confirm('确定要将该企业移出白名单吗?')
-    await JobFairWhiteApi.removeJobFairWhiteList([id])
+    await JobFairWhiteApi.removeJobFairWhiteList([enterpriseName])
     message.success('移出成功')
     getList()
   } catch (err) {}

+ 9 - 13
src/views/menduner/system/jobFair/white/jobFairForm.vue

@@ -7,15 +7,11 @@
       label-width="100px"
       v-loading="formLoading"
     >
-      <el-form-item label="企业名称" prop="enterpriseIds">
-        <el-select v-model="formData.enterpriseIds" filterable clearable multiple placeholder="请输入企业名称进行查找">
-          <el-option
-            v-for="item in enterpriseList"
-            :key="item.id"
-            :label="item.name"
-            :value="item.id"
-          />
-        </el-select>
+      <el-form-item label="企业名称" prop="enterpriseName">
+        <!-- <el-select v-model="formData.enterpriseNames" filterable clearable multiple allow-create placeholder="请输入企业名称进行查找">
+          <el-option v-for="item in enterpriseList" :key="item.id" :label="item.name" :value="item.name" />
+        </el-select> -->
+        <el-input v-model="formData.enterpriseName" clearable placeholder="请输入要添加的企业名称" />
       </el-form-item>
     </el-form>
     <template #footer>
@@ -38,10 +34,10 @@ const enterpriseList = ref([])
 const dialogVisible = ref(false) // 弹窗的是否展示
 const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
 const formData = ref({
-  enterpriseIds: []
+  enterpriseName: ''
 })
 const formRules = reactive({
-  enterpriseIds: [{ required: true, message: '请选择要添加的企业', trigger: 'blur' }]
+  enterpriseName: [{ required: true, message: '请输入要添加的企业', trigger: 'blur' }]
 })
 const formRef = ref() // 表单 Ref
 
@@ -70,7 +66,7 @@ const submitForm = async () => {
   // 提交请求
   formLoading.value = true
   try {
-    await JobFairWhiteApi.addJobFairWhiteList(formData.value.enterpriseIds)
+    await JobFairWhiteApi.addJobFairWhiteList([formData.value.enterpriseName])
     message.success('添加成功')
     dialogVisible.value = false
     // 发送操作成功的事件
@@ -83,7 +79,7 @@ const submitForm = async () => {
 /** 重置表单 */
 const resetForm = () => {
   formData.value = {
-    enterpriseIds: []
+    enterpriseName: ''
   }
   formRef.value?.resetFields()
 }