| 
					
				 | 
			
			
				@@ -1,22 +1,53 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  <Dialog :title="dialogTitle" v-model="dialogVisible"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <Dialog :title="dialogTitle" v-model="dialogVisible" class="!w-60%"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <el-form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ref="formRef" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       :model="formData" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       :rules="formRules" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      label-width="110px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      label-width="140px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       v-loading="formLoading" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      <el-form-item label="标题" prop="title"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <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 label="招聘会背景色" prop="backgroundColour"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-color-picker v-model="formData.backgroundColour" size="large" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div>为了页面的美观性,请勿选择白色(#FFF / #FFFFFF)作为页面背景颜色</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </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 label="PC封面海报" prop="pcPreviewImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <UploadImg v-model="formData.pcPreviewImg" 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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="小程序封面海报" prop="previewImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <UploadImg v-model="formData.previewImg" 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> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="PC顶部banner" prop="pcHeadImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <UploadImgs v-model="formData.pcHeadImg" :limit="20" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex" style="color: orange; align-items: center;"><Icon :size="20" icon="ep:warning" class="mr-3px" />提示:请上传宽1920px*高553px规格的图片</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="小程序顶部banner" prop="headImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <UploadImgs v-model="formData.headImg" :limit="20" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex" style="color: orange; align-items: center;"><Icon :size="20" icon="ep:warning" class="mr-3px" />提示:请上传宽750px*高350px规格的图片</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="招聘会分享海报" prop="shareImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <UploadImg v-model="formData.shareImg" height="300px" width="250px" :fileSize="10" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="企业分享海报" prop="contentImg"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <UploadImg v-model="formData.contentImg" height="300px" width="250px" :fileSize="10" :validSpecifications="true" :maxWidth="540" :maxHeight="788" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div class="flex" style="color: orange; align-items: center;"><Icon :size="20" icon="ep:warning" class="mr-3px" />提示:请上传宽540px*高788px规格的图片</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <el-form-item label="开始时间" prop="startTime"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <el-date-picker v-model="formData.startTime" type="date" value-format="x" placeholder="选择开始时间" /> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,6 +66,38 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           </el-radio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         </el-radio-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="类别" prop="category" @change="handleChangeCategory"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-radio-group v-model="formData.category"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-for="dict in categoryList" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :key="dict.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :label="dict.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {{ dict.label }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-radio> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-radio-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form-item label="类别详情" prop="tag"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-row v-for="(val, index) in formData.tag" :key="index" class="mb-10px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-col :span="8"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-input v-model="val.title" clearable placeholder="请输入类别名称"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-col :span="10" class="mx-10px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-select v-model="val.value" filterable multiple placeholder="请选择类别数值" collapse-tags collapse-tags-tooltip> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-option v-for="k in formData.category === '0' ? industry : position" :key="k.id" :label="k.nameCn" :value="k.id.toString()"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-col :span="4"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-button text circle @click="handleDelete(index)"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <Icon icon="ep:close" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-button type="primary" @click="handleAdd"><Icon class="mr-5px" icon="ep:plus" />添加类别</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <div>若填写了类别,请最少填写两项</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <template #footer> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -42,9 +105,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   </Dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <script setup lang="ts"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { getIntDictOptions, DICT_TYPE } from '@/utils/dict' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { JobFairManageApi, JobFairManageVO } from '@/api/menduner/system/jobFair/manage' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { PositionApi } from '@/api/menduner/system/position' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { IndustryApi } from '@/api/menduner/system/industry' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 招聘会管理 表单 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 defineOptions({ name: 'JobFairManageForm' }) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -60,32 +126,58 @@ 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, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  headImg: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pcHeadImg: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  backgroundColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pcPreviewImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  previewImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   startTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   endTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  shareImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  contentImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   status: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  // vipRequire: undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  category: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tag: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { title: '', value: [] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const formRules = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  headImg: [{ required: true, message: '小程序背景图不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  pcHeadImg: [{ required: true, message: 'PC背景图不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  backgroundColour: [{ required: true, message: '招聘会背景颜色不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  previewImg: [{ required: true, message: 'PC封面海报不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pcPreviewImg: [{ required: true, message: '小程序封面海报不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  headImg: [{ required: true, message: '小程序顶部banner图片不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  pcHeadImg: [{ required: true, message: 'PC顶部banner图片不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  shareImg: [{ required: true, message: '招聘会分享海报不能为空', trigger: 'change' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  contentImg: [{ required: true, message: '企业分享海报不能为空', 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' }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  status: [{ required: true, message: '状态不能为空', trigger: 'blur' }], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  category: [{ required: true, message: '展示类别不能为空', trigger: 'blur' }] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const categoryList = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { label: '企业', value: '0' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { label: '招聘职位', value: '1' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const formRef = ref() // 表单 Ref 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 职位类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const position = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const getPositionList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const data = await PositionApi.getPositionList({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  position.value = data || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+getPositionList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 企业行业类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const industry = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const getIndustryList = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const data = await IndustryApi.getIndustryList({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  industry.value = data || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+getIndustryList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 打开弹窗 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const open = async (type: string, id?: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   dialogVisible.value = true 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,6 +189,10 @@ const open = async (type: string, id?: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     formLoading.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       formData.value = await JobFairManageApi.getJobFair(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!formData.value.tag || !formData.value.tag.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        formData.value.tag = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       formLoading.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -104,11 +200,46 @@ const open = async (type: string, id?: number) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 defineExpose({ open }) // 提供 open 方法,用于打开弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 切换类别时需将数据清空 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleChangeCategory = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formData.value.tag.forEach(e => e.value = []) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleDelete = (index) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formData.value.tag.splice(index, 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleAdd = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  formData.value.tag.push({ title: '', value: [] }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 效验内容是否填写完整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const checkObjectValues = (obj) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  for (let key in obj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (obj.hasOwnProperty(key)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (obj[key] === undefined || obj[key] === null || obj[key] === '' || obj[key].length === 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 提交表单 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const submitForm = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (['#ffffff', '#FFFFFF'].indexOf(formData.value.backgroundColour) !== -1) return message.warning('请勿将白色作为页面背景色') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // 校验表单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   await formRef.value.validate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (formData.value?.tag && formData.value?.tag.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 效验类别项是否填写完整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const check = formData.value.tag.every(e => checkObjectValues(e)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!check) return message.warning('请将类别详情中的项填写完整') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (formData.value.tag.length < 2) return message.warning('请至少填写两个类别详情') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    formData.value.tag.forEach(e => e.key = formData.value.category === '0' ? 'industryId' : 'positionId') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // 提交请求 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   formLoading.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   try { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -134,22 +265,27 @@ const resetForm = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     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, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    headImg: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pcHeadImg: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    backgroundColour: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    pcPreviewImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    previewImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     startTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     endTime: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    shareImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    contentImg: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     status: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // vipRequire: undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    category: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tag: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      { title: '', value: [] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   formRef.value?.resetFields() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+.el-row { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  width: 100%; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |