| 
					
				 | 
			
			
				@@ -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> 
			 |