ソースを参照

招聘会白名单

Xiao_123 8 ヶ月 前
コミット
ff939eacf4

+ 2 - 2
.env.local

@@ -5,13 +5,13 @@ VITE_DEV=true
 
 # 请求路径
 VITE_BASE_URL='https://www.menduner.com:1443/'
-#VITE_BASE_URL='http://192.168.3.80'
+# VITE_BASE_URL='http://192.168.3.80'
 
 # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
 VITE_UPLOAD_TYPE=server
 # 上传路径
 VITE_UPLOAD_URL='https://www.menduner.com:1443/admin-api/infra/file/upload'
-#VITE_UPLOAD_URL='http://192.168.3.80/admin-api/infra/file/upload'
+# VITE_UPLOAD_URL='http://192.168.3.80/admin-api/infra/file/upload'
 
 # 接口地址
 VITE_API_URL=/admin-api

+ 19 - 0
src/api/menduner/system/jobFair/white/index.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}` })
+  }
+}

+ 0 - 1
src/views/menduner/system/enterprise/register/index.vue

@@ -88,7 +88,6 @@
   <!-- 列表 -->
   <ContentWrap>
     <el-table v-loading="loading" :data="list" :stripe="true">
-      <el-table-column label="id" align="center" prop="id" />
       <el-table-column label="用户id" align="center" prop="userId" />
       <el-table-column label="企业名称" align="center" prop="name" />
       <el-table-column label="管理员姓名" align="center" prop="contactName" />

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

@@ -0,0 +1,81 @@
+<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" :show-overflow-tooltip="true">
+      <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()
+    list.value = data?.enterpriseList
+  } 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>

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

@@ -0,0 +1,91 @@
+<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()
+  getEnterpriseListData()
+}
+
+// 企业列表
+const getEnterpriseListData = async () => {
+  try {
+    const data = await EnterpriseUserBindApi.getEnterpriseList()
+    enterpriseList.value = data
+  } catch (err) {}
+}
+
+defineExpose({ open }) // 提供 open 方法,用于打开弹窗
+
+/** 提交表单 */
+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>