Xiao_123 преди 11 месеца
родител
ревизия
651ff9a86d

+ 7 - 0
src/api/position.js

@@ -187,4 +187,11 @@ export const closeJobAdvertised = async (id) => {
   return await request.post({
     url: `/app-admin-api/menduner/system/job-advertised/disable?ids=${id}`,
   })
+}
+
+// 招聘端-置顶职位
+export const topJobAdvertised = async (id) => {
+  return await request.post({
+    url: `/app-admin-api/menduner/system/job-advertised/top?ids=${id}`
+  })
 }

+ 3 - 4
src/components/Enterprise/details.vue

@@ -122,15 +122,14 @@ handleEnterpriseClick()
 // 企业详情
 const info = ref({})
 const getDetails = async () => {
-  const id = Number(props.id)
-  if (!id) return
-  const data = await getEnterpriseDetails({ id })
+  if (!props.id) return
+  const data = await getEnterpriseDetails({ id: props.id })
   // 成立日期
   const time = timesTampChange(data.business.establishmentTime)
   data.business.establishmentTime = time.slice(0, 10)
 
   info.value = { ...data, ...dealDictObjData({}, data.enterprise) }
-  getCollectionStatus(id)
+  getCollectionStatus(props.id)
 }
 getDetails()
 

+ 1 - 1
src/components/Enterprise/hotPromoted.vue

@@ -60,7 +60,7 @@ const desc = [
 
 // 职位详情
 const handleClickPosition = (k) => {
-  window.open(`/recruit/position/details/${k.positionId}`)
+  window.open(`/recruit/position/details/${k.id}`)
 }
 // 企业详情
 const handleClickEnterprise = (item) => {

+ 1 - 2
src/layout/company/side.vue

@@ -72,8 +72,7 @@ const getList = (arr, obj = []) => {
     }
     obj.push(data)
   })
-
-  if (!isAdmin) obj = obj.filter(e => !e.isAdmin)
+  if (isAdmin === 'false') obj = obj.filter(e => !e.isAdmin)
   return obj
 }
 </script>

+ 2 - 2
src/layout/personal/navBar.vue

@@ -137,10 +137,10 @@ const changeLoginType = async () => {
     // changeRole()
     if (data.length > 1) {
       // 未开发
-      toEnterprise(data[0].id)
+      toEnterprise(data[0].enterpriseId)
     } else {
       //只有一个企业直接切换
-      toEnterprise(data[0].id)
+      toEnterprise(data[0].enterpriseId)
     }
   }
   else getApplyInfo()

+ 1 - 1
src/views/PersonalCenter/dynamic/left.vue

@@ -99,7 +99,7 @@ getDict('menduner_job_status').then(({ data }) => {
 let baseInfo = ref({})
 const getBasicInfo = () => {
   baseInfo.value = JSON.parse(localStorage.getItem('baseInfo')) // 人才信息
-  selectVal.value = baseInfo.value.jobStatus
+  selectVal.value = baseInfo?.value?.jobStatus || '0'
 }
 getBasicInfo()
 

+ 10 - 7
src/views/PersonalCenter/dynamic/right.vue

@@ -24,13 +24,16 @@
         </span>
       </div>
       <span class="more-text">{{ $t('resume.uploadUpToFiveCopies') }}</span>
-      <div class="d-flex attachment-item my-2 cursor-pointer" v-for="k in attachmentList" :key="k.id">
-        <v-icon color="primary">mdi-file-account</v-icon>
-        <div class="file-name ellipsis ml-2">{{ k.title }}</div>
-        <v-icon color="primary" @click="previewFile(k.url)">mdi-eye-outline</v-icon>
-        <v-icon class="mx-2" color="primary" @click="handleDownload(k)">mdi-download-box-outline</v-icon>
-        <v-icon color="error" @click="handleDelete(k)">mdi-trash-can-outline</v-icon>
+      <div v-if="attachmentList.length">
+        <div class="d-flex attachment-item my-2 cursor-pointer" v-for="k in attachmentList" :key="k.id">
+          <v-icon color="primary">mdi-file-account</v-icon>
+          <div class="file-name ellipsis ml-2">{{ k.title }}</div>
+          <v-icon color="primary" @click="previewFile(k.url)">mdi-eye-outline</v-icon>
+          <v-icon class="mx-2" color="primary" @click="handleDownload(k)">mdi-download-box-outline</v-icon>
+          <v-icon color="error" @click="handleDelete(k)">mdi-trash-can-outline</v-icon>
+        </div>
       </div>
+      <div v-else class="more-text d-flex justify-center">暂无简历,请先上传</div>
     </div>
   </div>
 </template>
@@ -90,7 +93,7 @@ const handleUploadFile = async (e) => {
   if (!data) return
   Snackbar.success(t('common.uploadSucMsg'))
   await savePersonResumeCv({ title: file.name, url: data })
-  await getList()
+  getList()
 }
 
 // 删除

+ 0 - 15
src/views/enterprise/positionManagement/components/baseInfo.vue

@@ -55,19 +55,6 @@ const items = ref({
       noParam: true,
       rules: [v => !!v || '请选择职位类型']
     },
-    {
-      type: 'autocomplete',
-      key: 'top',
-      value: null,
-      label: '是否置顶展示 *',
-      itemText: 'label',
-      itemValue: 'value',
-      rules: [v => !!v || '请选择是否置顶展示'],
-      items: [
-        { label: '是', value: '1' },
-        { label: '否', value: '0' }
-      ]
-    },
     {
       type: 'datePicker',
       key: 'expireTime',
@@ -130,7 +117,6 @@ watch(
   (val) => {
     if (!Object.keys(val).length) return
     items.value.options.forEach(e => {
-      if (e.key === 'top') return e.value = props.itemData[e.key] === true ? '1' : '0'
       if (e.labelKey) {
         query[e.key] = val[e.key]
         e.value = val[e.labelKey]
@@ -161,7 +147,6 @@ const getQuery = async () => {
   const obj = {}
   items.value.options.forEach(e => {
     if (e.noParam) return
-    if (e.key === 'top') return obj[e.key] = e.value === '1' ? true : false
     obj[e.key] = e.value
   })
   query = Object.assign(query, obj)

+ 20 - 14
src/views/enterprise/positionManagement/components/item.vue

@@ -2,8 +2,11 @@
   <div>
     <div v-if="props.items.length" class="d-flex align-center mb-1">
       <v-checkbox v-model="selectAll" :label="!selectAll ? '全选' : `已选中${selectList.length}条`" hide-details color="primary" @update:model-value="handleChangeSelectAll"></v-checkbox>
-      <v-btn v-if="tab === 1" class="ml-8" :disabled="!selectAll" @click="handleAction(2, 'batch', {})" color="primary" variant="tonal" size="small">刷新</v-btn>
-      <v-btn v-if="tab === 1" class="ml-3" :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(0, 'close', {})">关闭</v-btn>
+      <div v-if="tab === 1" class="ml-8">
+        <v-btn :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(2, 'batch', {})">刷新</v-btn>
+        <v-btn class="mx-3" :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(3, 'top', {})">置顶</v-btn>
+        <v-btn :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(0, 'close', {})">关闭</v-btn>
+      </div>
       <v-btn v-if="tab === 2" class="ml-8" :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(1, 'activation', {})">激活</v-btn>
     </div>
     <div v-for="val in items" :key="val.id" class="itemBox mb-3">
@@ -29,10 +32,6 @@
           </div>
         </div>
         <div class="d-flex align-center">
-          <!-- <div class="resume" v-if="val.count && val.count > '0'">
-            <div class="resume-number">{{ val.count }}</div>
-            <div>待筛选简历</div>
-          </div> -->
           <div v-if="tab === 1">
             <v-btn color="primary" variant="tonal">人才搜索</v-btn>
             <v-btn class="ml-3" color="primary" @click="handleAction(2, '', val)">刷新职位</v-btn>
@@ -45,12 +44,18 @@
       <div class="bottom pa-5 d-flex justify-space-between align-center">
         <div>刷新时间:{{ timesTampChange(val.updateTime).slice(0, 10) }} {{ val.expireDay && Number(val.expireDay) >= 1 ? `(${ val.expireDay }天后到期)` : '' }}</div>
         <div class="d-flex">
-          <div class="ml-10">
-            <span class="cursor-pointer" v-if="tab === 1" @click="handleAction(0, '', val)">{{ $t('common.close') }}</span>
-            <span class="lines" v-if="tab === 1"></span>
+          <div class="ml-10 d-flex">
+            <div v-if="tab === 1">
+              <span class="cursor-pointer" @click="handleAction(3, '', val)">置顶</span>
+              <span class="lines"></span>
+              <span class="cursor-pointer" @click="handleAction(0, '', val)">{{ $t('common.close') }}</span>
+              <span class="lines"></span>
+            </div>
             <span class="cursor-pointer" @click="handleToStatistics">{{ $t('position.recruitmentStatistics') }}</span>
-            <span v-if="tab !== 3" class="lines"></span>
-            <span v-if="tab !== 3" class="cursor-pointer" @click="handleEdit(val)">{{ $t('common.edit') }}</span>
+            <div v-if="tab !== 3">
+              <span class="lines"></span>
+              <span class="cursor-pointer" @click="handleEdit(val)">{{ $t('common.edit') }}</span>
+            </div>
           </div>
         </div>
       </div>
@@ -63,7 +68,7 @@ defineOptions({ name: 'enterprise-position-item'})
 import { defineEmits, ref, watch } from 'vue'
 import { useRouter } from 'vue-router'
 import { timesTampChange } from '@/utils/date'
-import { closeJobAdvertised, enableJobAdvertised, refreshJobAdvertised } from '@/api/position'
+import { closeJobAdvertised, enableJobAdvertised, refreshJobAdvertised, topJobAdvertised } from '@/api/position'
 import Snackbar from '@/plugins/snackbar'
 
 const emit = defineEmits(['refresh'])
@@ -123,10 +128,11 @@ watch(
 const apiList = [
   { api: closeJobAdvertised, desc: '关闭成功' },
   { api: enableJobAdvertised, desc: '激活成功' },
-  { api: refreshJobAdvertised, desc: '刷新成功' }
+  { api: refreshJobAdvertised, desc: '刷新成功' },
+  { api: topJobAdvertised, desc: '置顶成功' }
 ]
 
-// 职位关闭、激活、刷新
+// 职位关闭、激活、刷新、置顶
 const handleAction = async (index, type, { id }) => {
   const ids = type ? props.items.filter(e => e.select).map(k => k.id) : [id]
   if (!ids.length && !index) return

+ 1 - 0
src/views/recruit/position/components/details.vue

@@ -199,6 +199,7 @@ const handleSubmit = async () =>{
   await jobCvRelSend({ jobId: id, title: obj.title, url: obj.url })
   Snackbar.success(t('resume.deliverySuccess'))
   handleClose()
+  deliveryCheck()
 }
 </script>
 

+ 1 - 1
src/views/resume/components/jobIntention.vue

@@ -30,7 +30,7 @@
           </div>
         </div>
       </div>
-      <div v-else class="resumeNoDataText">{{ $t('resume.dataDefaultPrompt') }}{{ $t('resume.jobIntention') }}</div>
+      <div v-else class="resumeNoDataText">{{ $t('resume.dataDefaultPrompt') }}{{ $t('resume.jobIntention') }}...</div>
     </div>
     <div v-if="isAdd" class="mt-2">
       <CtForm ref="formPageRef" :items="items" style="width: 100%;">

+ 2 - 2
src/views/resume/components/selfEvaluation.vue

@@ -7,7 +7,7 @@
     <div v-if="isEdit" class="mt-3 edit">
       <v-textarea 
         v-model="advantage" 
-        label="请输入您的个人优势..." 
+        :label="$t('resume.dataDefaultPrompt') + $t('resume.personalAdvantages') + '...'" 
         variant="outlined" 
         counter="300" 
         color="primary" 
@@ -21,7 +21,7 @@
     </div>
     <div v-else class="content-list mt-3">
       <div v-if="advantage" class="resumeNoDataText" v-html="advantage"></div>
-      <div v-else class="resumeNoDataText">{{ $t('resume.dataDefaultPrompt') }}{{ $t('resume.personalAdvantages') }}</div>
+      <div v-else class="resumeNoDataText">{{ $t('resume.dataDefaultPrompt') }}{{ $t('resume.personalAdvantages') }}...</div>
     </div>
   </div>
 </template>