|
@@ -2,9 +2,9 @@
|
|
<div>
|
|
<div>
|
|
<div v-if="props.items.length" class="d-flex align-center mb-1">
|
|
<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-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="handleRefreshAll" color="primary" variant="tonal">刷新</v-btn>
|
|
|
|
- <v-btn v-if="tab === 1" class="ml-3" :disabled="!selectAll" color="primary" variant="tonal">关闭</v-btn>
|
|
|
|
- <v-btn v-if="tab === 2" class="ml-8" color="primary" variant="tonal">激活</v-btn>
|
|
|
|
|
|
+ <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>
|
|
|
|
+ <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>
|
|
<div v-for="val in items" :key="val.id" class="itemBox mb-3">
|
|
<div v-for="val in items" :key="val.id" class="itemBox mb-3">
|
|
<div class="d-flex justify-space-between pa-5">
|
|
<div class="d-flex justify-space-between pa-5">
|
|
@@ -29,16 +29,16 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="d-flex align-center">
|
|
<div class="d-flex align-center">
|
|
- <div class="resume" v-if="val.count && val.count > '0'" @click="handleToReceiveResume">
|
|
|
|
|
|
+ <!-- <div class="resume" v-if="val.count && val.count > '0'">
|
|
<div class="resume-number">{{ val.count }}</div>
|
|
<div class="resume-number">{{ val.count }}</div>
|
|
<div>待筛选简历</div>
|
|
<div>待筛选简历</div>
|
|
- </div>
|
|
|
|
|
|
+ </div> -->
|
|
<div v-if="tab === 1">
|
|
<div v-if="tab === 1">
|
|
<v-btn color="primary" variant="tonal">人才搜索</v-btn>
|
|
<v-btn color="primary" variant="tonal">人才搜索</v-btn>
|
|
- <v-btn class="ml-3" color="primary" @click="handleRefresh(val)">刷新职位</v-btn>
|
|
|
|
|
|
+ <v-btn class="ml-3" color="primary" @click="handleAction(2, '', val)">刷新职位</v-btn>
|
|
</div>
|
|
</div>
|
|
<div v-if="tab === 2">
|
|
<div v-if="tab === 2">
|
|
- <v-btn color="primary" @click="handleActivation(val)">激活职位</v-btn>
|
|
|
|
|
|
+ <v-btn color="primary" @click="handleAction(1, '', val)">激活职位</v-btn>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -46,7 +46,7 @@
|
|
<div>刷新时间:{{ timesTampChange(val.updateTime).slice(0, 10) }} {{ val.expireDay && Number(val.expireDay) >= 1 ? `(${ val.expireDay }天后到期)` : '' }}</div>
|
|
<div>刷新时间:{{ timesTampChange(val.updateTime).slice(0, 10) }} {{ val.expireDay && Number(val.expireDay) >= 1 ? `(${ val.expireDay }天后到期)` : '' }}</div>
|
|
<div class="d-flex">
|
|
<div class="d-flex">
|
|
<div class="ml-10">
|
|
<div class="ml-10">
|
|
- <span class="cursor-pointer" v-if="tab === 1" @click="handleClose(val)">{{ $t('common.close') }}</span>
|
|
|
|
|
|
+ <span class="cursor-pointer" v-if="tab === 1" @click="handleAction(0, '', val)">{{ $t('common.close') }}</span>
|
|
<span class="lines" v-if="tab === 1"></span>
|
|
<span class="lines" v-if="tab === 1"></span>
|
|
<span class="cursor-pointer" @click="handleToStatistics">{{ $t('position.recruitmentStatistics') }}</span>
|
|
<span class="cursor-pointer" @click="handleToStatistics">{{ $t('position.recruitmentStatistics') }}</span>
|
|
<span v-if="tab !== 3" class="lines"></span>
|
|
<span v-if="tab !== 3" class="lines"></span>
|
|
@@ -64,7 +64,6 @@ import { defineEmits, ref, watch } from 'vue'
|
|
import { useRouter } from 'vue-router'
|
|
import { useRouter } from 'vue-router'
|
|
import { timesTampChange } from '@/utils/date'
|
|
import { timesTampChange } from '@/utils/date'
|
|
import { closeJobAdvertised, enableJobAdvertised, refreshJobAdvertised } from '@/api/position'
|
|
import { closeJobAdvertised, enableJobAdvertised, refreshJobAdvertised } from '@/api/position'
|
|
-import Confirm from '@/plugins/confirm'
|
|
|
|
import Snackbar from '@/plugins/snackbar'
|
|
import Snackbar from '@/plugins/snackbar'
|
|
|
|
|
|
const emit = defineEmits(['refresh'])
|
|
const emit = defineEmits(['refresh'])
|
|
@@ -121,37 +120,22 @@ watch(
|
|
{ deep: true }
|
|
{ deep: true }
|
|
)
|
|
)
|
|
|
|
|
|
-// 批量刷新
|
|
|
|
-const handleRefreshAll = () => {
|
|
|
|
- // const selectList = props.items.filter(e => e.select).map(k => k.id)
|
|
|
|
- // console.log(selectList, 'list')
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// 职位关闭
|
|
|
|
-const handleClose = ({ id }) => {
|
|
|
|
- Confirm('系统提示', '是否确认关闭此职位?').then(async () => {
|
|
|
|
- await closeJobAdvertised(id)
|
|
|
|
- Snackbar.success('关闭成功')
|
|
|
|
- emit('refresh')
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-// 职位激活
|
|
|
|
-const handleActivation = ({ id }) => {
|
|
|
|
- Confirm('系统提示', '是否确认激活此职位?').then(async () => {
|
|
|
|
- await enableJobAdvertised(id)
|
|
|
|
- Snackbar.success('激活成功')
|
|
|
|
- emit('refresh')
|
|
|
|
- })
|
|
|
|
-}
|
|
|
|
|
|
+const apiList = [
|
|
|
|
+ { api: closeJobAdvertised, desc: '关闭成功' },
|
|
|
|
+ { api: enableJobAdvertised, desc: '激活成功' },
|
|
|
|
+ { api: refreshJobAdvertised, desc: '刷新成功' }
|
|
|
|
+]
|
|
|
|
|
|
-// 职位刷新
|
|
|
|
-const handleRefresh = ({ id }) => {
|
|
|
|
- Confirm('系统提示', '是否确认刷新此职位?').then(async () => {
|
|
|
|
- await refreshJobAdvertised(id)
|
|
|
|
- Snackbar.success('刷新成功')
|
|
|
|
- emit('refresh')
|
|
|
|
- })
|
|
|
|
|
|
+// 职位关闭、激活、刷新
|
|
|
|
+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
|
|
|
|
+ await apiList[index].api(ids)
|
|
|
|
+ Snackbar.success(apiList[index].desc)
|
|
|
|
+ // 清空选项
|
|
|
|
+ selectList.value = []
|
|
|
|
+ selectAll.value = false
|
|
|
|
+ emit('refresh')
|
|
}
|
|
}
|
|
|
|
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
@@ -165,10 +149,6 @@ const handleDetails = (val) => {
|
|
window.open(`/enterprise/position/details/${val.id}`)
|
|
window.open(`/enterprise/position/details/${val.id}`)
|
|
}
|
|
}
|
|
|
|
|
|
-// 跳转简历管理-收到的简历
|
|
|
|
-const handleToReceiveResume = () => {
|
|
|
|
- router.push('/enterprise/resumeManagement/receive')
|
|
|
|
-}
|
|
|
|
// 跳转招聘统计
|
|
// 跳转招聘统计
|
|
const handleToStatistics = () => {
|
|
const handleToStatistics = () => {
|
|
router.push('/enterprise/statistics/overallAnalysis')
|
|
router.push('/enterprise/statistics/overallAnalysis')
|