Browse Source

删除职位过期时间

Xiao_123 3 ngày trước cách đây
mục cha
commit
7b7b8a3b98

+ 11 - 15
src/views/menduner/system/analysis/statisticAnalysis/index.vue

@@ -385,8 +385,8 @@ const paginationChange = () => {
 const tableHeaders = {
   // 职位浏览量
   pageViews: [
-    { name: '浏览量', prop: 'num' },
     { name: '招聘职位', prop: 'name' },
+    { name: '浏览量', prop: 'num' },
     { name: '发布企业', prop: 'enterpriseName' },
     { name: '薪酬', prop: 'salaryDisplay' },
     { name: '工作地区', prop: 'areaName' },
@@ -406,7 +406,6 @@ const tableHeaders = {
     { name: '学历要求', prop: 'eduName' },
     { name: '发布时间', prop: 'createTime' },
     { name: '更新时间', prop: 'updateTime' },
-    // { name: '众聘', prop: 'hire' },
   ],
   // 发布中职位数量
   pushNum: [
@@ -417,7 +416,6 @@ const tableHeaders = {
     { name: '工作地区', prop: 'areaName' },
     { name: '工作经验', prop: 'expName' },
     { name: '学历要求', prop: 'eduName' },
-    // { name: '众聘', prop: 'hire' },
     { name: '发布时间', prop: 'createTime' },
     { name: '更新时间', prop: 'updateTime' },
   ],
@@ -446,7 +444,7 @@ const tableHeaders = {
     { name: '投递职位', prop: 'job.name' },
     { name: '发布企业', prop: 'enterpriseName' },
     { name: '投递类型', prop: 'typeName' },
-    { name: '推荐人', prop: 'recommendPersonName' },
+    // { name: '推荐人', prop: 'recommendPersonName' },
   ],
   // 已邀面试
   invitedInterviews: [
@@ -494,8 +492,8 @@ const dealTableData = async () => {
       item.enterpriseName = formatName(item.enterpriseName)
       item.salaryDisplay = item.payFrom && item.payTo ? `${item.payFrom}-${item.payTo}/${getDictLabel(DICT_TYPE.MENDUNER_PAY_UNIT, item.payUnit)}` : '面议'
       item.areaName = !item.areaId ? '全国' : getText(item.areaId, areaList)
-      item.expName = getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType)
-      item.eduName = getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType)
+      item.expName = item.expType ? getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType) : '经验不限'
+      item.eduName = item.eduType ? getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType) : '学历不限'
       item.updateTime = timesTampChange(item.updateTime)
       item.createTime = timesTampChange(item.createTime)
       return item
@@ -512,9 +510,8 @@ const dealTableData = async () => {
       item.positionName = getText(item.positionId, positionData, 'nameCn', 'id')
       item.salaryDisplay = item.payFrom && item.payTo ? `${item.payFrom}-${item.payTo}/${getDictLabel(DICT_TYPE.MENDUNER_PAY_UNIT, item.payUnit)}` : '面议'
       item.jobStatus = getDictLabel(DICT_TYPE.MENDUNER_JOB_SEEK_STATUS, item.jobStatus)
-      item.expName = getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType)
-      item.eduName = getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType)
-      // item.hire = item.hire ? '是' : '否'
+      item.expName = item.expType ? getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType) : '经验不限'
+      item.eduName = item.eduType ? getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType) : '学历不限'
       item.updateTime = timesTampChange(item.updateTime)
       item.createTime = timesTampChange(item.createTime)
       return item
@@ -531,9 +528,8 @@ const dealTableData = async () => {
       item.positionName = getText(item.positionId, positionData, 'nameCn', 'id')
       item.salaryDisplay = item.payFrom && item.payTo ? `${item.payFrom}-${item.payTo}/${getDictLabel(DICT_TYPE.MENDUNER_PAY_UNIT, item.payUnit)}` : '面议'
       item.jobStatus = getDictLabel(DICT_TYPE.MENDUNER_JOB_SEEK_STATUS, item.jobStatus)
-      item.expName = getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType)
-      item.eduName = getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType)
-      // item.hire = item.hire ? '是' : '否'
+      item.expName = item.expType ? getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType) : '经验不限'
+      item.eduName = item.eduType ? getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType) : '学历不限'
       item.updateTime = timesTampChange(item.updateTime)
       item.createTime = timesTampChange(item.createTime)
       return item
@@ -558,8 +554,8 @@ const dealTableData = async () => {
       item.areaName = !item.job.areaId ? '全国' : getText(item.job.areaId, areaList)
       item.salaryDisplay = item.job?.payFrom && item.job.payTo ? `${item.job.payFrom}-${item.job.payTo}/${getDictLabel(DICT_TYPE.MENDUNER_PAY_UNIT, item.job.payUnit)}` : '面议'
       item.jobStatus = getDictLabel(DICT_TYPE.MENDUNER_JOB_SEEK_STATUS, item.person.jobStatus)
-      item.expName = getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.job.expType)
-      item.eduName = getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.job.eduType)
+      item.expName = item.expType ? getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType) : '经验不限'
+      item.eduName = item.eduType ? getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType) : '学历不限'
       item.personName = item.person.name
       return item
     })
@@ -571,7 +567,7 @@ const dealTableData = async () => {
       item.enterpriseName = formatName(item.enterpriseName)
       item.personName = item.person.name
       item.address = item.job.address
-      item.typeName = Number(item.type) === 0 ? '平台投递': '赏金投递'
+      // item.typeName = Number(item.type) === 0 ? '平台投递': '赏金投递'
       item.recommendPersonName = item.recommendPerson?.name || ''
       return item
     })

+ 8 - 12
src/views/menduner/system/enterprise/message/details/components/job.vue

@@ -27,12 +27,14 @@
     </el-table-column>
     <el-table-column label="要求学历" align="center" prop="eduType">
       <template #default="scope">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="scope.row.eduType" />
+        <dict-tag v-if="scope.row.eduType" :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="scope.row.eduType" />
+        <el-tag v-else>学历不限</el-tag>
       </template>
     </el-table-column>
     <el-table-column label="工作经验" align="center" prop="expType">
       <template #default="scope">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="scope.row.expType" />
+        <dict-tag v-if="scope.row.expType" :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="scope.row.expType" />
+        <el-tag v-else>经验不限</el-tag>
       </template>
     </el-table-column>
     <el-table-column label="职位状态" align="center" prop="status">
@@ -46,11 +48,6 @@
         {{ timesTampChange(scope.row.updateTime, 'Y-M-D h:m') }}
       </template>
     </el-table-column>
-    <el-table-column label="到期时间" align="center" prop="expireTime" width="180px">
-      <template #default="scope">
-        {{ scope.row.expireTime ? timesTampChange(scope.row.expireTime, 'Y-M-D') : '长期有效' }}
-      </template>
-    </el-table-column>
     <el-table-column label="操作" align="center">
       <template #default="scope">
         <el-button link type="primary" @click="openDetail(scope.row)">详情</el-button>
@@ -85,15 +82,14 @@
         <dict-tag :type="DICT_TYPE.MENDUNER_JOB_TYPE" :value="itemData.type" />
       </el-descriptions-item>
       <el-descriptions-item label="学历要求">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="itemData.eduType" />
+        <dict-tag v-if="itemData.eduType" :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="itemData.eduType" />
+        <el-tag v-else>学历不限</el-tag>
       </el-descriptions-item>
       <el-descriptions-item label="工作经验">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="itemData.expType" />
+        <dict-tag v-if="itemData.expType" :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="itemData.expType" />
+        <el-tag v-else>经验不限</el-tag>
       </el-descriptions-item>
       <el-descriptions-item label="刷新时间">{{ timesTampChange(itemData.updateTime, 'Y-M-D h:m') }}</el-descriptions-item>
-      <el-descriptions-item label="到期时间">
-        {{ itemData.expireTime ? timesTampChange(itemData.expireTime, 'Y-M-D') : '长期有效' }}
-      </el-descriptions-item>
       <el-descriptions-item label="岗位职责">
         <div v-html="cleanedHtml(itemData.content)"></div>
       </el-descriptions-item>

+ 2 - 22
src/views/menduner/system/job/JobAdvertisedForm.vue

@@ -27,10 +27,6 @@
       <el-form-item label="职位名称" prop="name">
         <el-input v-model="formData.name" placeholder="请输入职位名称" class="!w-240px"/>
       </el-form-item>
-      <el-form-item label="到期时间" prop="expireTime">
-        <el-date-picker v-model="formData.expireTime" :disabled="disabled" :disabledDate="disabledDates" value-format="x" type="date" placeholder="请选择职位到期时间"  class="!w-240px" />
-        <el-checkbox v-model="loadingTerm" label="长期有效" size="large" style="margin-left: 20px;" @change="handleLongTerm"/>
-      </el-form-item>
       <el-form-item label="职位内容" prop="content">
         <Editor v-model="formData.content" height="150px" />
       </el-form-item>
@@ -96,7 +92,6 @@ defineProps({
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
 
-const loadingTerm = ref(false) // 长期有效
 const showTemplateBtn = ref(true) // 职位模板按钮
 const dialogVisible = ref(false) // 弹窗的是否展示
 const dialogTitle = ref('') // 弹窗的标题
@@ -109,7 +104,7 @@ const formData = ref({
   positionId: undefined,
   type: undefined,
   expType: undefined,
-  expireTime: undefined,
+  expireTime: null,
   eduType: undefined,
   payFrom: 6000,
   payTo: 8000,
@@ -157,20 +152,6 @@ const formRules = reactive({
   address: [{ required: true, message: '工作详情地址不能为空', trigger: 'change' }],
 })
 const formRef = ref() // 表单 Ref
-const disabled = ref(false) // 是否禁用日期选择器
-
-// 过去的日期不可选
-const disabledDates = (date) => {
-  const currentDate = new Date()
-  currentDate.setDate(currentDate.getDate() - 1)
-  return date.getTime() < currentDate.getTime()
-}
-
-// 职位过期时间长期有效
-const handleLongTerm = (e) => {
-  if (e) formData.value.expireTime = null
-  disabled.value = e ? true : false
-}
 
 // 获取众聘分配比例
 const ratio = ref({})
@@ -238,7 +219,6 @@ const emit = defineEmits(['success']) // 定义 success 事件,用于操作成
 const submitForm = async () => {
   // 校验表单
   await formRef.value.validate()
-  if (!loadingTerm.value && !formData.value.expireTime) return message.warning('请选择过期时间')
   // 提交请求
   formLoading.value = true
   try {
@@ -268,7 +248,7 @@ const resetForm = () => {
     type: undefined,
     expType: undefined,
     payUnit: undefined,
-    expireTime: undefined,
+    expireTime: null,
     eduType: undefined,
     payFrom: 6000,
     tagList: undefined,

+ 4 - 2
src/views/menduner/system/job/index.vue

@@ -127,12 +127,14 @@
       </el-table-column>
       <el-table-column label="工作经验" align="center" prop="expType">
         <template #default="scope">
-          <dict-tag :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="scope.row.expType" />
+          <dict-tag v-if="scope.row.expType" :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="scope.row.expType" />
+          <el-tag v-else>经验不限</el-tag>
         </template>
       </el-table-column>
       <el-table-column label="学历要求" align="center" prop="eduType">
         <template #default="scope">
-          <dict-tag :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="scope.row.eduType" />
+          <dict-tag v-if="scope.row.eduType" :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="scope.row.eduType" />
+          <el-tag v-else>学历不限</el-tag>
         </template>
       </el-table-column>
       <el-table-column label="薪资" align="center" prop="payFrom">

+ 4 - 1
src/views/menduner/system/person/details/components/edu.vue

@@ -30,6 +30,7 @@ defineOptions({ name: 'PersonEduList'})
 import { PersonInfoApi } from '@/api/menduner/system/person'
 import { DICT_TYPE } from '@/utils/dict'
 import { dateFormatter2 } from '@/utils/formatTime'
+import { formatName } from '@/utils'
 
 const props = defineProps({
   userId: String
@@ -48,7 +49,9 @@ const getList = async () => {
   loading.value = true
   try {
     const data = await PersonInfoApi.getPersonEduPage(queryParams)
-    tableData.value = data.list
+    tableData.value = data.list ? data.list.map(e => {
+      return { ...e, schoolName: formatName(e.schoolName), major: formatName(e.major), content: formatName(e.content) }
+    }) : []
     total.value = data.total
   } finally {
     loading.value = false

+ 4 - 1
src/views/menduner/system/person/details/components/exp.vue

@@ -24,6 +24,7 @@ import { PersonInfoApi } from '@/api/menduner/system/person'
 import { DICT_TYPE } from '@/utils/dict'
 import { dateFormatter2 } from '@/utils/formatTime'
 import { timesTampChange } from '@/utils/transform/date'
+import { formatName } from '@/utils'
 
 const props = defineProps({
   userId: String
@@ -42,7 +43,9 @@ const getList = async () => {
   loading.value = true
   try {
     const data = await PersonInfoApi.getPersonExpPage(queryParams)
-    tableData.value = data.list
+    tableData.value = data.list ? data.list.map(e => {
+      return { ...e, enterpriseName: formatName(e.enterpriseName), positionName: formatName(e.positionName), content: formatName(e.content) }
+    }) : []
     total.value = data.total
   } finally {
     loading.value = false