|
@@ -15,18 +15,33 @@
|
|
|
label-width="140px"
|
|
|
v-loading="formLoading"
|
|
|
>
|
|
|
- <el-form-item label="会员套餐" prop="packageId" required :rules="[{ required: true, message: '请选择会员套餐', trigger: 'change' }]">
|
|
|
+ <el-form-item label="会员套餐" prop="packageId">
|
|
|
<el-select v-model="formData.packageId" placeholder="请选择会员套餐" @change="handleChange">
|
|
|
<el-option v-for="val in packList" :key="val.id" :label="val.name + ': ' + val.text + `(会员时效增加:${val.day}天)`" :value="val.id" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <div v-if="item && Object.keys(item).length">
|
|
|
- <el-form-item label="发布职位数量:">{{ item.publishJobCount }}个</el-form-item>
|
|
|
- <el-form-item label="搜索人才数量:">{{ item.searchCount }}次</el-form-item>
|
|
|
- <el-form-item label="发布职位数量:">{{ item.lookCvCount }}次</el-form-item>
|
|
|
- <el-form-item label="开启人才地图:">{{ item.personMap ? '是' : '否' }}</el-form-item>
|
|
|
- <el-form-item label="允许发布众聘职位:">{{ item.hireJob ? '是' : '否' }}</el-form-item>
|
|
|
- </div>
|
|
|
+ <el-form-item label="是否激活VIP" prop="entitlement.activateVip" :rules="[{ required: true, message: '请设置是否激活VIP', trigger: 'change' }]">
|
|
|
+ <el-switch v-model="formData.entitlement.activateVip" />
|
|
|
+ vip激活后到期,权益将无法使用;vip未激活,权益可以持续一直使用。
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="formData.entitlement.activateVip" label="VIP过期时间" prop="entitlement.vipExpireDate" :rules="[{ required: true, message: '请选择VIP过期时间', trigger: 'change' }]">
|
|
|
+ <el-date-picker v-model="formData.entitlement.vipExpireDate" :disabledDate="disabledDates" value-format="x" type="date" placeholder="请选择VIP过期时间" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="发布职位数量" prop="entitlement.publishJobCount" :rules="[{ required: true, message: '请输入发布职位数量', trigger: 'change' }]">
|
|
|
+ <el-input-number v-model="formData.entitlement.publishJobCount" :min="0" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="查看简历数量" prop="entitlement.lookCvCount" :rules="[{ required: true, message: '请输入查看简历数量', trigger: 'change' }]">
|
|
|
+ <el-input-number v-model="formData.entitlement.lookCvCount" :min="0" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="搜索人才数量" prop="entitlement.searchCount" :rules="[{ required: true, message: '请输入搜索人才数量', trigger: 'change' }]">
|
|
|
+ <el-input-number v-model="formData.entitlement.searchCount" :min="0" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="开启人才地图" prop="entitlement.personMap" :rules="[{ required: true, message: '请设置是否开启人才地图', trigger: 'change' }]">
|
|
|
+ <el-switch v-model="formData.entitlement.personMap" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="允许发布众聘职位" prop="entitlement.hireJob" :rules="[{ required: true, message: '请设置是否允许发布众聘职位', trigger: 'change' }]">
|
|
|
+ <el-switch v-model="formData.entitlement.hireJob" />
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
<template #footer>
|
|
|
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
|
@@ -44,7 +59,16 @@ const dialogVisible = ref(false) // 弹窗的是否展示
|
|
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
|
|
const formData = ref({
|
|
|
enterpriseId: '',
|
|
|
- packageId: undefined as any
|
|
|
+ packageId: undefined as any,
|
|
|
+ entitlement: {
|
|
|
+ activateVip: false,
|
|
|
+ vipExpireDate: undefined,
|
|
|
+ publishJobCount: 0,
|
|
|
+ searchCount: 0,
|
|
|
+ lookCvCount: 0,
|
|
|
+ personMap: false,
|
|
|
+ hireJob: false
|
|
|
+ }
|
|
|
})
|
|
|
const formRef = ref()
|
|
|
|
|
@@ -59,12 +83,27 @@ const getPackList = async () => {
|
|
|
const item = ref({})
|
|
|
const handleChange = (val) => {
|
|
|
if (!val) return
|
|
|
- item.value = packList.value.find(e => e.id === val)
|
|
|
+ const obj = packList.value.find(e => e.id === val)
|
|
|
+ for (let key in formData.value.entitlement) {
|
|
|
+ // 会员标识激活时才设置vip过期时间
|
|
|
+ if (key === 'vipExpireDate' && obj.activateVip) {
|
|
|
+ const currentDate = new Date()
|
|
|
+ currentDate.setDate(currentDate.getDate() + obj.day)
|
|
|
+ formData.value.entitlement[key] = currentDate.getTime()
|
|
|
+ } else formData.value.entitlement[key] = obj[key]
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 过去的日期不可选
|
|
|
+const disabledDates = (date) => {
|
|
|
+ const currentDate = new Date()
|
|
|
+ currentDate.setDate(currentDate.getDate() - 1)
|
|
|
+ return date.getTime() < currentDate.getTime()
|
|
|
}
|
|
|
|
|
|
/** 打开弹窗 */
|
|
|
const info = ref({})
|
|
|
-const open = async (id: number) => {
|
|
|
+const open = async (id: number, vipExpireDate) => {
|
|
|
await getPackList()
|
|
|
dialogVisible.value = true
|
|
|
resetForm()
|
|
@@ -75,6 +114,15 @@ const open = async (id: number) => {
|
|
|
try {
|
|
|
const data = await EnterpriseApi.getEnterprisePackagePrivilege(id)
|
|
|
info.value = data && data.length ? data[0] : {}
|
|
|
+ if (info.value && Object.keys(info.value).length) {
|
|
|
+ for (let key in formData.value.entitlement) {
|
|
|
+ formData.value.entitlement[key] = info.value[key]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (vipExpireDate) {
|
|
|
+ formData.value.entitlement.activateVip = true
|
|
|
+ formData.value.entitlement.vipExpireDate = vipExpireDate
|
|
|
+ }
|
|
|
} finally {
|
|
|
formLoading.value = false
|
|
|
}
|
|
@@ -106,7 +154,16 @@ const resetForm = () => {
|
|
|
item.value = {}
|
|
|
formData.value = {
|
|
|
enterpriseId: '',
|
|
|
- packageId: undefined
|
|
|
+ packageId: undefined,
|
|
|
+ entitlement: {
|
|
|
+ activateVip: false,
|
|
|
+ vipExpireDate: undefined,
|
|
|
+ publishJobCount: 0,
|
|
|
+ searchCount: 0,
|
|
|
+ lookCvCount: 0,
|
|
|
+ personMap: false,
|
|
|
+ hireJob: false
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
</script>
|