| 
					
				 | 
			
			
				@@ -0,0 +1,155 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <Dialog :title="dialogTitle" v-model="dialogVisible"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ref="formRef" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :model="formData" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :rules="formRules" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      label-width="110px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      v-loading="formLoading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="标题" prop="title"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-input v-model="formData.title" :rows="3" type="textarea" placeholder="请输入标题" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="PC背景图" prop="pcHeadImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <UploadImg v-model="formData.pcHeadImg" height="150px" width="300px" :fileSize="10" :validSpecifications="true" :maxWidth="800" :maxHeight="300" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="flex" style="color: orange; align-items: center;"><Icon :size="20" icon="ep:warning" class="mr-3px" />提示:请上传宽800px*高300px规格的图片</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="小程序背景图" prop="headImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <UploadImg v-model="formData.headImg" height="150px" width="300px" :fileSize="10" :validSpecifications="true" :maxWidth="750" :maxHeight="350" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="flex" style="color: orange; align-items: center;"><Icon :size="20" icon="ep:warning" class="mr-3px" />提示:请上传宽750px*高350px规格的图片</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="开始时间" prop="startTime"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-date-picker v-model="formData.startTime" type="date" value-format="x" placeholder="选择开始时间" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="结束时间" prop="endTime"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-date-picker v-model="formData.endTime" type="date" value-format="x" placeholder="选择结束时间" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="状态" prop="status"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-radio-group v-model="formData.status"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_STATUS)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :key="dict.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :label="dict.value.toString()" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {{ dict.label }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-radio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-radio-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </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"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { JobFairManageApi, JobFairManageVO } from '@/api/menduner/system/jobFair/manage' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 招聘会管理 表单 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+defineOptions({ name: 'JobFairManageForm' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const { t } = useI18n() // 国际化 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const message = useMessage() // 消息弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const dialogVisible = ref(false) // 弹窗的是否展示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const dialogTitle = ref('') // 弹窗的标题 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formType = ref('') // 表单的类型:create - 新增;update - 修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formData = ref({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  id: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  type: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  title: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // slogan: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  headImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pcHeadImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // bottomImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // pcHeadImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // pcBackgroundImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // pcBottomImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // insideColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // jobColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // backgroundColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // shareImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  startTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  status: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // vipRequire: undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formRules = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  headImg: [{ required: true, message: '小程序背景图不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pcHeadImg: [{ required: true, message: 'PC背景图不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  title: [{ required: true, message: '标题不能为空', trigger: 'blur' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  startTime: [{ required: true, message: '开始时间不能为空', trigger: 'blur' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  endTime: [{ required: true, message: '结束时间不能为空', trigger: 'blur' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  status: [{ required: true, message: '状态不能为空', trigger: 'blur' }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const formRef = ref() // 表单 Ref 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 打开弹窗 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const open = async (type: string, id?: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dialogVisible.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dialogTitle.value = t('action.' + type) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formType.value = type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  resetForm() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 修改时,设置数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    formLoading.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      formData.value = await JobFairManageApi.getJobFair(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      formLoading.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+defineExpose({ open }) // 提供 open 方法,用于打开弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 提交表单 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const submitForm = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 校验表单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  await formRef.value.validate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 提交请求 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formLoading.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const data = formData.value as unknown as JobFairManageVO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (formType.value === 'create') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await JobFairManageApi.createJobFair(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      message.success(t('common.createSuccess')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      await JobFairManageApi.updateJobFair(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      message.success(t('common.updateSuccess')) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    dialogVisible.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 发送操作成功的事件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    emit('success') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    formLoading.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 重置表单 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const resetForm = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formData.value = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    id: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    type: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    title: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // slogan: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    headImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pcHeadImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // bottomImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // pcHeadImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // pcBackgroundImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // pcBottomImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // insideColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // jobColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // backgroundColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // shareImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    startTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    endTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    status: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // vipRequire: undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formRef.value?.resetFields() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 |