|
@@ -0,0 +1,112 @@
|
|
|
+<template>
|
|
|
+ <Dialog title="会员套餐" v-model="dialogVisible">
|
|
|
+ <el-descriptions class="mb-50px" title="企业当前会员套餐权益" :column="2" border>
|
|
|
+ <el-descriptions-item label="是否开启人才地图">{{ info.personMap ? '是' : '否' }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="是否允许发布众聘职位">{{ info.hireJob ? '是' : '否' }}</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="剩余发布职位数量">{{ info.publishJobCount }}个</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="剩余搜索人才数量">{{ info.searchCount }}次</el-descriptions-item>
|
|
|
+ <el-descriptions-item label="剩余查看简历数量">{{ info.lookCvCount }}次</el-descriptions-item>
|
|
|
+ </el-descriptions>
|
|
|
+
|
|
|
+ <h3 style="color: #303133;">会员套餐设置</h3>
|
|
|
+ <el-form
|
|
|
+ ref="formRef"
|
|
|
+ :model="formData"
|
|
|
+ label-width="140px"
|
|
|
+ v-loading="formLoading"
|
|
|
+ >
|
|
|
+ <el-form-item label="会员套餐" prop="packageId" required :rules="[{ required: true, message: '请选择会员套餐', trigger: 'change' }]">
|
|
|
+ <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>
|
|
|
+ <template #footer>
|
|
|
+ <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
|
|
+ <el-button @click="dialogVisible = false">取 消</el-button>
|
|
|
+ </template>
|
|
|
+ </Dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup lang="ts">
|
|
|
+defineOptions({ name: 'EnterpriseMessageSetVip' })
|
|
|
+import { EnterpriseApi } from '@/api/menduner/system/enterprise/message'
|
|
|
+
|
|
|
+const message = useMessage() // 消息弹窗
|
|
|
+const dialogVisible = ref(false) // 弹窗的是否展示
|
|
|
+const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
|
|
+const formData = ref({
|
|
|
+ enterpriseId: '',
|
|
|
+ packageId: undefined as any
|
|
|
+})
|
|
|
+const formRef = ref()
|
|
|
+
|
|
|
+// 套餐列表
|
|
|
+const packList = ref([])
|
|
|
+const getPackList = async () => {
|
|
|
+ const data = await EnterpriseApi.getEnterprisePackageList()
|
|
|
+ packList.value = data
|
|
|
+}
|
|
|
+
|
|
|
+// 套餐选择
|
|
|
+const item = ref({})
|
|
|
+const handleChange = (val) => {
|
|
|
+ if (!val) return
|
|
|
+ item.value = packList.value.find(e => e.id === val)
|
|
|
+}
|
|
|
+
|
|
|
+/** 打开弹窗 */
|
|
|
+const info = ref({})
|
|
|
+const open = async (id: number) => {
|
|
|
+ await getPackList()
|
|
|
+ dialogVisible.value = true
|
|
|
+ resetForm()
|
|
|
+ formData.value.enterpriseId = id
|
|
|
+ // 修改时,设置数据
|
|
|
+ if (id) {
|
|
|
+ formLoading.value = true
|
|
|
+ try {
|
|
|
+ const data = await EnterpriseApi.getEnterprisePackagePrivilege(id)
|
|
|
+ info.value = data && data.length ? data[0] : {}
|
|
|
+ } finally {
|
|
|
+ formLoading.value = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
|
|
+
|
|
|
+/** 提交表单 */
|
|
|
+const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
|
|
|
+const submitForm = async () => {
|
|
|
+ // 校验表单
|
|
|
+ await formRef.value.validate()
|
|
|
+ // 提交请求
|
|
|
+ formLoading.value = true
|
|
|
+ try {
|
|
|
+ await EnterpriseApi.updateEnterprisePackage(formData.value)
|
|
|
+ dialogVisible.value = false
|
|
|
+ message.success('操作成功')
|
|
|
+ // 发送操作成功的事件
|
|
|
+ emit('success')
|
|
|
+ resetForm()
|
|
|
+ } finally {
|
|
|
+ formLoading.value = false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+/** 重置表单 */
|
|
|
+const resetForm = () => {
|
|
|
+ item.value = {}
|
|
|
+ formData.value = {
|
|
|
+ enterpriseId: '',
|
|
|
+ packageId: undefined
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|