|
@@ -1,13 +1,13 @@
|
|
|
<template>
|
|
|
<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-checkbox v-model="selectAll" :label="!selectAll ? $t('common.selectAll') : `已选中${selectList.length}条`" hide-details color="primary" @update:model-value="handleChangeSelectAll"></v-checkbox>
|
|
|
<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>
|
|
|
+ <v-btn :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(2, 'batch', {})">{{ $t('common.refresh') }}</v-btn>
|
|
|
+ <v-btn class="mx-3" :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(3, 'top', {})">{{ $t('common.topping') }}</v-btn>
|
|
|
+ <v-btn :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(0, 'close', {})">{{ $t('common.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>
|
|
|
+ <v-btn v-if="tab === 2" class="ml-8" :disabled="!selectAll" color="primary" variant="tonal" size="small" @click="handleAction(1, 'activation', {})">{{ $t('common.activation') }}</v-btn>
|
|
|
</div>
|
|
|
<div v-for="val in items" :key="val.id" class="itemBox mb-3">
|
|
|
<div class="d-flex justify-space-between pa-5">
|
|
@@ -34,20 +34,20 @@
|
|
|
</div>
|
|
|
<div class="d-flex align-center">
|
|
|
<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>
|
|
|
+ <v-btn color="primary" variant="tonal">{{ $t('position.talentSearch') }}</v-btn>
|
|
|
+ <v-btn class="ml-3" color="primary" @click="handleAction(2, '', val)">{{ $t('common.refresh') + $t('common.position') }}</v-btn>
|
|
|
</div>
|
|
|
<div v-if="tab === 2">
|
|
|
- <v-btn color="primary" @click="handleAction(1, '', val)">激活职位</v-btn>
|
|
|
+ <v-btn color="primary" @click="handleAction(1, '', val)">{{ $t('common.activatePosition') }}</v-btn>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<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>{{ $t('position.refreshTime') }} :{{ timesTampChange(val.updateTime).slice(0, 10) }} {{ val.expireDay && Number(val.expireDay) >= 1 ? `(${ val.expireDay }天后到期)` : '' }}</div>
|
|
|
<div class="d-flex">
|
|
|
<div class="ml-10 d-flex">
|
|
|
<div v-if="tab === 1">
|
|
|
- <span class="cursor-pointer" @click="handleAction(3, '', val)">置顶</span>
|
|
|
+ <span class="cursor-pointer" @click="handleAction(3, '', val)">{{ $t('common.topping') }}</span>
|
|
|
<span class="lines"></span>
|
|
|
<span class="cursor-pointer" @click="handleAction(0, '', val)">{{ $t('common.close') }}</span>
|
|
|
<span class="lines"></span>
|
|
@@ -73,9 +73,11 @@ defineOptions({ name: 'enterprise-position-item'})
|
|
|
import { defineEmits, ref, watch } from 'vue'
|
|
|
import { useRouter } from 'vue-router'
|
|
|
import { timesTampChange } from '@/utils/date'
|
|
|
+import { useI18n } from '@/hooks/web/useI18n'
|
|
|
import { closeJobAdvertised, enableJobAdvertised, refreshJobAdvertised, topJobAdvertised } from '@/api/position'
|
|
|
import Snackbar from '@/plugins/snackbar'
|
|
|
|
|
|
+const { t } = useI18n()
|
|
|
const emit = defineEmits(['refresh'])
|
|
|
const props = defineProps({
|
|
|
tab: {
|
|
@@ -130,19 +132,14 @@ watch(
|
|
|
{ deep: true }
|
|
|
)
|
|
|
|
|
|
-const apiList = [
|
|
|
- { api: closeJobAdvertised, desc: '关闭成功' },
|
|
|
- { api: enableJobAdvertised, desc: '激活成功' },
|
|
|
- { api: refreshJobAdvertised, desc: '刷新成功' },
|
|
|
- { api: topJobAdvertised, desc: '置顶成功' }
|
|
|
-]
|
|
|
+const apiList = [ closeJobAdvertised, enableJobAdvertised, refreshJobAdvertised, topJobAdvertised ]
|
|
|
|
|
|
// 职位关闭、激活、刷新、置顶
|
|
|
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)
|
|
|
+ await apiList[index](ids)
|
|
|
+ Snackbar.success(t('common.operationSuccessful'))
|
|
|
// 清空选项
|
|
|
selectList.value = []
|
|
|
selectAll.value = false
|