|
@@ -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,20 +157,25 @@ 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 () => {
|
|
|
-
|
|
|
// 校验表单
|
|
|
await formRef.value.validate()
|
|
|
|
|
|
- if (!editId.value) {
|
|
|
- result.value[currentKey.value][formData.value.enterpriseId] = formData.value
|
|
|
- delete result.value[currentKey.value][formData.value.enterpriseId].enterpriseId
|
|
|
- }
|
|
|
+ result.value[currentKey.value][formData.value.enterpriseId] = formData.value
|
|
|
+ if (editId.value !== formData.value.enterpriseId) delete result.value[currentKey.value][editId.value]
|
|
|
+ else delete result.value[currentKey.value][formData.value.enterpriseId].enterpriseId
|
|
|
|
|
|
// 提交请求
|
|
|
formLoading.value = true
|