Xiao_123 hai 6 meses
pai
achega
05d85f2b5b

+ 33 - 8
src/views/menduner/system/web/PreferredGroup.vue

@@ -3,25 +3,36 @@
     <el-form
       ref="formRef"
       :model="formData"
-      label-width="100px"
+      label-width="170px"
       v-loading="formLoading"
     >
-			<el-form-item label="企业ID" prop="enterpriseId" :rules="[{ required: true, message: '请输入企业ID', trigger: 'blur'}]">
+			<!-- <el-form-item label="企业ID" prop="enterpriseId" :rules="[{ required: true, message: '请输入企业ID', trigger: 'blur'}]">
         <el-input v-model="formData.enterpriseId" />
       </el-form-item>
       <el-form-item label="企业名称" prop="title" :rules="[{ required: true, message: '请输入企业名称', trigger: 'blur'}]">
         <el-input v-model="formData.title" />
+      </el-form-item> -->
+      <el-form-item label="企业名称" prop="enterpriseId" :rules="[{ required: true, message: '请选择企业', trigger: 'blur'}]">
+        <el-select-v2
+          ref="selectRef"
+          v-model="formData.enterpriseId"
+          :options="enterpriseList"
+          placeholder="请输入企业名称进行查找"
+          filterable
+          :props="{ label: 'name', value: 'id' }"
+          @blur="handleChange"
+        />
       </el-form-item>
-      <el-form-item label="企业LOGO" prop="logo">
+      <el-form-item label="顶部轮播图左上角LOGO" prop="logo">
         <UploadImg v-model="formData.logo" height="150px" width="150px" />
       </el-form-item>
-      <el-form-item label="轮播图" prop="carousel" :rules="[{ required: true, message: '请上传企业轮播图', trigger: 'change'}]">
+      <el-form-item label="顶部轮播图" prop="carousel" :rules="[{ required: true, message: '请上传企业轮播图', trigger: 'change'}]">
         <UploadImgs v-model="formData.carousel" />
       </el-form-item>
 			<el-form-item label="简介标题" prop="introduce.title" :rules="[{ required: true, message: '请输入简介标题', trigger: 'blur'}]">
         <el-input v-model="formData.introduce.title" />
       </el-form-item>
-			<el-form-item label="简介内容" prop="introduce.describe" :rules="[{ required: true, message: '请输入简介内容', trigger: 'blur'}]">
+			<el-form-item label="集团简介" prop="introduce.describe" :rules="[{ required: true, message: '请输入简介内容', trigger: 'blur'}]">
         <Editor v-model:modelValue="formData.introduce.describe" />
       </el-form-item>
 			<el-form-item label="简介小图" prop="introduce.thumbnail">
@@ -33,11 +44,9 @@
 			<el-form-item label="简介大图高度" prop="introduce.bigPicture.height">
         <el-input v-model="formData.introduce.bigPicture.height" />
       </el-form-item>
-
       <el-form-item label="品牌介绍" prop="">
         <el-button @click="showBrandDialog = true" type="primary">编 辑</el-button>
       </el-form-item>
-
     </el-form>
     <template #footer>
       <el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
@@ -46,13 +55,16 @@
   </Dialog>
 
   <Dialog title="品牌介绍" v-model="showBrandDialog" style="width: 70%;">
+    <div class="text-right">
+      <el-button type="primary" @click="handleAdd"><Icon icon="ep:plus" class="mr-5px" />新 增</el-button>
+    </div>
     <el-table :data="formData.brandIntroduce" :stripe="true">
       <el-table-column label="品牌名称" align="center" prop="content">
         <template #default="scope">
           <el-input type="textarea" :rows="2" v-model="scope.row.content" />
         </template>
       </el-table-column>
-      <el-table-column label="品牌图片" align="center" prop="title" width="300">
+      <el-table-column label="品牌图片" align="center" prop="url" width="300">
         <template #default="scope">
           <UploadImg v-model="scope.row.url" height="150px" width="280px" />
         </template>
@@ -80,6 +92,7 @@ import { WebContentApi } from '@/api/menduner/system/web'
 
 /** 页面内容 表单 */
 defineOptions({ name: 'WebContentForm' })
+defineProps({ enterpriseList: Array })
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
@@ -108,6 +121,11 @@ const formData = ref({
 const showBrandDialog = ref(false)
 
 const formRef = ref() // 表单 Ref
+const selectRef = ref()
+
+const handleChange = () => {
+  formData.value.title = selectRef.value.currentPlaceholder
+}
 
 /** 打开弹窗 */
 const result = ref({})
@@ -139,9 +157,16 @@ const handleDeleteBrand = (index) => {
   delete formData.value.brandIntroduce[index]
 }
 const handleBrandSubmit = () => {
+  const checkValue = formData.value.brandIntroduce.every(item => item.content.trim() && item.url && item.desc.trim())
+  if (!checkValue) return message.warning('请将列表中的项填写完整')
   showBrandDialog.value = false
 }
 
+// 提交表单
+const handleAdd = () => {
+  formData.value.brandIntroduce.push({ content: '', url: '', desc: '' })
+}
+
 /** 提交表单 */
 const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
 const submitForm = async () => {

+ 18 - 3
src/views/menduner/system/web/WebContentForm.vue

@@ -4,7 +4,7 @@
       ref="formRef"
       :model="formData"
       :rules="formRules"
-      label-width="140px"
+      label-width="130px"
       v-loading="formLoading"
     >
       <el-form-item label="上传图片尺寸" prop="imgSize" required>
@@ -16,9 +16,22 @@
         </div>
         <div style="display: flex; color: orange; align-items: center;"><Icon :size="20" icon="ep:warning" class="mr-3px" />提示:请严格按照图片规格上传</div>
       </el-form-item>
-      <el-form-item label="点击图片跳转链接" prop="link">
+      <el-form-item label="展示现有企业详情">
+        <el-switch v-model="showEnterprise" style="display: block;" />
+        <div>点击图片跳转场景:1、跳转到平台现有企业详情页面(有定制集团页面的则会跳转到集团页面),2.跳转已关联的公众号链接或其它外部链接</div>
+      </el-form-item>
+      <el-form-item v-if="showEnterprise" label="平台现有企业" prop="link">
+        <el-select-v2
+          ref="selectRef"
+          v-model="formData.link"
+          :options="enterpriseList"
+          placeholder="请输入企业名称进行查找"
+          filterable
+          :props="{ label: 'name', value: 'id' }"
+        />
+      </el-form-item>
+      <el-form-item v-else label="跳转链接" prop="link" placeholder="请填写">
         <el-input v-model="formData.link" />
-        <div style="color: orange;">提示:跳转已有的优选集团页面或者平台上的企业(详情页面),请将“招聘企业管理-招聘企业”列表中的ID复制填入此处!</div>
       </el-form-item>
       <el-form-item label="标题" prop="title">
         <el-input v-model="formData.title" placeholder="请填写" />
@@ -42,6 +55,7 @@ import { WebContentApi } from '@/api/menduner/system/web'
 
 /** 页面内容 表单 */
 defineOptions({ name: 'WebContentForm' })
+defineProps({ enterpriseList: Array })
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗
@@ -89,6 +103,7 @@ const query = ref({
   appAdvertisement: undefined,
   status: undefined
 })
+const showEnterprise = ref(true)
 
 const formRules = reactive({
   url: [{ required: true, message: '图片不能为空', trigger: 'blur' }],

+ 13 - 2
src/views/menduner/system/web/index.vue

@@ -55,10 +55,10 @@
   </ContentWrap>
 
   <!-- 表单弹窗:添加/修改 -->
-  <WebContentForm ref="formRef" @success="getList" />
+  <WebContentForm ref="formRef" :enterpriseList="enterpriseList" @success="getList" />
 
   <!-- 优选集团 -->
-  <PreferredGroup ref="preferredGroupRef" @success="getList" />
+  <PreferredGroup ref="preferredGroupRef" :enterpriseList="enterpriseList" @success="getList" />
 
 </template>
 
@@ -67,6 +67,7 @@ import { WebContentApi } from '@/api/menduner/system/web'
 import WebContentForm from './WebContentForm.vue'
 import PreferredGroup from './PreferredGroup.vue'
 import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
+import { EnterpriseUserBindApi } from '@/api/menduner/system/enterprise/userBind'
 
 /** 页面内容 列表 */
 defineOptions({ name: 'WebContent' })
@@ -109,6 +110,16 @@ const getList = async () => {
   }
 }
 
+// 企业列表
+const enterpriseList = ref([])
+const getEnterpriseListData = async () => {
+  try {
+    const data = await EnterpriseUserBindApi.getEnterpriseList()
+    enterpriseList.value = data
+  } catch (err) {}
+}
+getEnterpriseListData()
+
 // 优选集团
 const preferredGroup = computed(() => (data) => {
   const list = []