Commit b9582460 by yangchen

实现行业应用管理和活动资讯管理模块,并修复了更新和删除异常的bug,对字段、搜索框布局进行了整理

parent e301d0db
...@@ -247,5 +247,9 @@ export enum DICT_TYPE { ...@@ -247,5 +247,9 @@ export enum DICT_TYPE {
IOT_DATA_BRIDGE_TYPE_ENUM = 'iot_data_bridge_type_enum', // 桥梁类型 IOT_DATA_BRIDGE_TYPE_ENUM = 'iot_data_bridge_type_enum', // 桥梁类型
// ========== 首页信息模块 ========== // ========== 首页信息模块 ==========
HOME_INFO_STATUS = 'home_info_status',
HOME_INFO_COMPUTILITY_TYPE = 'home_info_computility_type', HOME_INFO_COMPUTILITY_TYPE = 'home_info_computility_type',
HOME_INFO_ASSEMBLY_TYPE = 'home_info_assembly_type',
HOME_INFO_INFORMATION_CATEGORY = 'home_info_information_category',
HOME_INFO_INDUSTRY_CATEGORY = 'home_info_industry_category',
} }
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<el-form-item label="状态" prop="showStatus"> <el-form-item label="状态" prop="showStatus">
<el-radio-group v-model="formData.showStatus"> <el-radio-group v-model="formData.showStatus">
<el-radio <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
:key="dict.value" :key="dict.value"
:label="dict.value" :label="dict.value"
> >
...@@ -72,7 +72,7 @@ const formData = ref({ ...@@ -72,7 +72,7 @@ const formData = ref({
information: undefined, information: undefined,
title: undefined, title: undefined,
url: undefined, url: undefined,
description: undefined, description: '',
orderNum: undefined, orderNum: undefined,
showStatus: undefined, showStatus: undefined,
remark: undefined remark: undefined
...@@ -94,7 +94,13 @@ const open = async (type: string, id?: number) => { ...@@ -94,7 +94,13 @@ const open = async (type: string, id?: number) => {
if (id) { if (id) {
formLoading.value = true formLoading.value = true
try { try {
formData.value = await BannerInfoApi.getBannerInfo(id) // formData.value = await BannerInfoApi.getBannerInfo(id)
const data = await BannerInfoApi.getBannerInfo(id)
// 确保 description 不为 null
if (data.description === null) {
data.description = ''
}
formData.value = data
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
placeholder="请输入内容" placeholder="请输入内容"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-160px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
placeholder="请输入标题" placeholder="请输入标题"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-160px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="排序值" prop="orderNum"> <el-form-item label="排序值" prop="orderNum">
...@@ -32,14 +32,14 @@ ...@@ -32,14 +32,14 @@
placeholder="请输入排序值" placeholder="请输入排序值"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-160px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="showStatus"> <el-form-item label="状态" prop="showStatus">
<el-select v-model="queryParams.showStatus" placeholder="请选择状态" clearable class="!w-120px"> <el-select v-model="queryParams.showStatus" placeholder="请选择状态" clearable class="!w-120px">
<el-option <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
...@@ -135,7 +135,7 @@ ...@@ -135,7 +135,7 @@
<!-- <el-table-column label="状态" align="center" prop="showStatus" />--> <!-- <el-table-column label="状态" align="center" prop="showStatus" />-->
<el-table-column label="状态" align="center" prop="showStatus"> <el-table-column label="状态" align="center" prop="showStatus">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.showStatus" /> <dict-tag :type="DICT_TYPE.HOME_INFO_STATUS" :value="scope.row.showStatus" />
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="计算资源应用类别" prop="category"> <el-form-item label="计算资源应用类别" prop="category">
<el-select v-model="formData.category" placeholder="请选择应用类别" clearable class="!w-120px"> <el-select v-model="formData.category" placeholder="请选择应用类别" clearable class="!w-160px">
<el-option <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_COMPUTILITY_TYPE)" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_COMPUTILITY_TYPE)"
:key="dict.value" :key="dict.value"
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<el-form-item label="状态" prop="showStatus"> <el-form-item label="状态" prop="showStatus">
<el-radio-group v-model="formData.showStatus"> <el-radio-group v-model="formData.showStatus">
<el-radio <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
:key="dict.value" :key="dict.value"
:label="dict.value" :label="dict.value"
> >
...@@ -87,7 +87,7 @@ const formData = ref({ ...@@ -87,7 +87,7 @@ const formData = ref({
information: undefined, information: undefined,
title: undefined, title: undefined,
url: undefined, url: undefined,
description: undefined, description: '',
category: undefined, category: undefined,
showStatus: undefined, showStatus: undefined,
remark: undefined remark: undefined
...@@ -110,7 +110,13 @@ const open = async (type: string, id?: number) => { ...@@ -110,7 +110,13 @@ const open = async (type: string, id?: number) => {
if (id) { if (id) {
formLoading.value = true formLoading.value = true
try { try {
formData.value = await ComputilityInformationApi.getComputilityInformation(id) // formData.value = await ComputilityInformationApi.getComputilityInformation(id)
const data = await ComputilityInformationApi.getComputilityInformation(id)
// 确保 description 不为 null
if (data.description === null) {
data.description = ''
}
formData.value = data
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
...@@ -150,7 +156,7 @@ const resetForm = () => { ...@@ -150,7 +156,7 @@ const resetForm = () => {
information: undefined, information: undefined,
title: undefined, title: undefined,
url: undefined, url: undefined,
description: undefined, description: '',
category: undefined, category: undefined,
showStatus: undefined, showStatus: undefined,
remark: undefined remark: undefined
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
placeholder="请输入内容" placeholder="请输入内容"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-160px"
/> />
</el-form-item> </el-form-item>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
placeholder="请输入标题" placeholder="请输入标题"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-160px"
/> />
</el-form-item> </el-form-item>
...@@ -48,8 +48,8 @@ ...@@ -48,8 +48,8 @@
<!-- <el-option label="请选择字典生成" value="" />--> <!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>--> <!-- </el-select>-->
<!-- </el-form-item>--> <!-- </el-form-item>-->
<el-form-item label="计算资源应用类别" prop="category"> <el-form-item label="应用类别" prop="category">
<el-select v-model="queryParams.category" placeholder="请选择应用类别" clearable class="!w-120px"> <el-select v-model="queryParams.category" placeholder="请选择计算资源应用类别" clearable class="!w-200px">
<el-option <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_COMPUTILITY_TYPE)" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_COMPUTILITY_TYPE)"
:key="dict.value" :key="dict.value"
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
<el-form-item label="状态" prop="showStatus"> <el-form-item label="状态" prop="showStatus">
<el-select v-model="queryParams.showStatus" placeholder="请选择状态" clearable class="!w-120px"> <el-select v-model="queryParams.showStatus" placeholder="请选择状态" clearable class="!w-120px">
<el-option <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="dict.value" :value="dict.value"
...@@ -144,11 +144,16 @@ ...@@ -144,11 +144,16 @@
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" />
<el-table-column label="链接地址" align="center" prop="url" /> <el-table-column label="链接地址" align="center" prop="url" />
<el-table-column label="描述内容" align="center" prop="description" /> <el-table-column label="描述内容" align="center" prop="description" />
<el-table-column label="计算资源应用类别" align="center" prop="category" /> <!-- <el-table-column label="计算资源应用类别" align="center" prop="category" />-->
<el-table-column label="计算资源应用类别" align="center" prop="category">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HOME_INFO_COMPUTILITY_TYPE" :value="scope.row.category" />
</template>
</el-table-column>
<!-- <el-table-column label="状态" align="center" prop="showStatus" />--> <!-- <el-table-column label="状态" align="center" prop="showStatus" />-->
<el-table-column label="状态" align="center" prop="showStatus"> <el-table-column label="状态" align="center" prop="showStatus">
<template #default="scope"> <template #default="scope">
<dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="Number(scope.row.showStatus)" /> <dict-tag :type="DICT_TYPE.HOME_INFO_STATUS" :value="Number(scope.row.showStatus)" />
</template> </template>
</el-table-column> </el-table-column>
...@@ -218,7 +223,8 @@ const queryParams = reactive({ ...@@ -218,7 +223,8 @@ const queryParams = reactive({
category: undefined, category: undefined,
showStatus: undefined, showStatus: undefined,
createTime: [], createTime: [],
remark: undefined remark: undefined,
description: '',
}) })
const queryFormRef = ref() // 搜索的表单 const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // 导出的加载中 const exportLoading = ref(false) // 导出的加载中
......
...@@ -22,22 +22,42 @@ ...@@ -22,22 +22,42 @@
<el-form-item label="描述内容" prop="description"> <el-form-item label="描述内容" prop="description">
<Editor v-model="formData.description" height="150px" /> <Editor v-model="formData.description" height="150px" />
</el-form-item> </el-form-item>
<el-form-item label="状态:0-已隐藏,1-已显示" prop="showStatus">
<el-form-item label="状态" prop="showStatus">
<el-radio-group v-model="formData.showStatus"> <el-radio-group v-model="formData.showStatus">
<el-radio value="1">请选择字典生成</el-radio> <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" placeholder="请输入备注" /> <el-input v-model="formData.remark" placeholder="请输入备注" />
</el-form-item> </el-form-item>
<el-form-item label="首页展示图片" prop="homeImage"> <el-form-item label="首页展示图片" prop="homeImage">
<UploadImg v-model="formData.homeImage" /> <UploadImg v-model="formData.homeImage" />
</el-form-item> </el-form-item>
<el-form-item label="组件类型:0-全部" prop="assemblyType"> <!-- <el-form-item label="组件类型:0-全部" prop="assemblyType">-->
<el-select v-model="formData.assemblyType" placeholder="请选择组件类型:0-全部"> <!-- <el-select v-model="formData.assemblyType" placeholder="请选择组件类型:0-全部">-->
<el-option label="请选择字典生成" value="" /> <!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="组件类型" prop="assemblyType">
<el-select v-model="formData.assemblyType" placeholder="请选择组件类型" clearable class="!w-150px">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_ASSEMBLY_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="排序值" prop="orderNum"> <el-form-item label="排序值" prop="orderNum">
<el-input v-model="formData.orderNum" placeholder="请输入排序值" /> <el-input v-model="formData.orderNum" placeholder="请输入排序值" />
</el-form-item> </el-form-item>
...@@ -50,6 +70,7 @@ ...@@ -50,6 +70,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { IndustryApplicationApi, IndustryApplication } from '@/api/biz/industryapplication' import { IndustryApplicationApi, IndustryApplication } from '@/api/biz/industryapplication'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
/** 行业应用 表单 */ /** 行业应用 表单 */
defineOptions({ name: 'IndustryApplicationForm' }) defineOptions({ name: 'IndustryApplicationForm' })
...@@ -67,7 +88,7 @@ const formData = ref({ ...@@ -67,7 +88,7 @@ const formData = ref({
information: undefined, information: undefined,
title: undefined, title: undefined,
url: undefined, url: undefined,
description: undefined, description: '',
showStatus: undefined, showStatus: undefined,
remark: undefined, remark: undefined,
homeImage: undefined, homeImage: undefined,
...@@ -91,7 +112,13 @@ const open = async (type: string, id?: number) => { ...@@ -91,7 +112,13 @@ const open = async (type: string, id?: number) => {
if (id) { if (id) {
formLoading.value = true formLoading.value = true
try { try {
formData.value = await IndustryApplicationApi.getIndustryApplication(id) // formData.value = await IndustryApplicationApi.getIndustryApplication(id)
const data = await IndustryApplicationApi.getIndustryApplication(id)
// 确保 description 不为 null
if (data.description === null) {
data.description = ''
}
formData.value = data
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
...@@ -131,7 +158,7 @@ const resetForm = () => { ...@@ -131,7 +158,7 @@ const resetForm = () => {
information: undefined, information: undefined,
title: undefined, title: undefined,
url: undefined, url: undefined,
description: undefined, description: '',
showStatus: undefined, showStatus: undefined,
remark: undefined, remark: undefined,
homeImage: undefined, homeImage: undefined,
...@@ -140,4 +167,4 @@ const resetForm = () => { ...@@ -140,4 +167,4 @@ const resetForm = () => {
} }
formRef.value?.resetFields() formRef.value?.resetFields()
} }
</script> </script>
\ No newline at end of file
...@@ -8,55 +8,88 @@ ...@@ -8,55 +8,88 @@
:inline="true" :inline="true"
label-width="68px" label-width="68px"
> >
<el-form-item label="内容" prop="information">
<el-input
v-model="queryParams.information"
placeholder="请输入内容"
clearable
@keyup.enter="handleQuery"
class="!w-160px"
/>
</el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.title"
placeholder="请输入标题" placeholder="请输入标题"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-160px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="showStatus"> <el-form-item label="状态" prop="showStatus">
<el-select <el-select v-model="queryParams.showStatus" placeholder="请选择状态" clearable class="!w-120px">
v-model="queryParams.showStatus" <el-option
placeholder="请选择状态:0-已隐藏,1-已显示" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
clearable :key="dict.value"
class="!w-240px" :label="dict.label"
> :value="dict.value"
<el-option label="请选择字典生成" value="" /> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="创建时间" prop="createTime"> <!-- <el-form-item label="状态" prop="showStatus">-->
<el-date-picker <!-- <el-select-->
v-model="queryParams.createTime" <!-- v-model="queryParams.showStatus"-->
value-format="YYYY-MM-DD HH:mm:ss" <!-- placeholder="请选择状态:0-已隐藏,1-已显示"-->
type="daterange" <!-- clearable-->
start-placeholder="开始日期" <!-- class="!w-240px"-->
end-placeholder="结束日期" <!-- >-->
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" <!-- <el-option label="请选择字典生成" value="" />-->
class="!w-220px" <!-- </el-select>-->
/> <!-- </el-form-item>-->
</el-form-item>
<el-form-item label="组件类型:0-全部" prop="assemblyType"> <!-- <el-form-item label="创建时间" prop="createTime">-->
<el-select <!-- <el-date-picker-->
v-model="queryParams.assemblyType" <!-- v-model="queryParams.createTime"-->
placeholder="请选择组件类型:0-全部" <!-- value-format="YYYY-MM-DD HH:mm:ss"-->
clearable <!-- type="daterange"-->
class="!w-240px" <!-- start-placeholder="开始日期"-->
> <!-- end-placeholder="结束日期"-->
<el-option label="请选择字典生成" value="" /> <!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
<!-- class="!w-220px"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="组件类型" prop="assemblyType">-->
<!-- <el-select-->
<!-- v-model="queryParams.assemblyType"-->
<!-- placeholder="请选择组件类型"-->
<!-- clearable-->
<!-- class="!w-240px"-->
<!-- >-->
<!-- <el-option label="请选择字典生成" value="" />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="组件类型" prop="assemblyType">
<el-select v-model="queryParams.assemblyType" placeholder="请选择组件类型" clearable class="!w-150px">
<el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_ASSEMBLY_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="排序值" prop="orderNum"> <!-- <el-form-item label="排序值" prop="orderNum">-->
<el-input <!-- <el-input-->
v-model="queryParams.orderNum" <!-- v-model="queryParams.orderNum"-->
placeholder="请输入排序值" <!-- placeholder="请输入排序值"-->
clearable <!-- clearable-->
@keyup.enter="handleQuery" <!-- @keyup.enter="handleQuery"-->
class="!w-240px" <!-- class="!w-240px"-->
/> <!-- />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
...@@ -101,12 +134,40 @@ ...@@ -101,12 +134,40 @@
@selection-change="handleRowCheckboxChange" @selection-change="handleRowCheckboxChange"
> >
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column label="展示图地址" align="center" prop="image" /> <el-table-column label="排序值" align="center" prop="orderNum" />
<el-table-column label="展示图地址" align="center" prop="image" width="100">
<template #default="scope">
<img :src="scope.row.image" alt="资源展示图" class="h-36px" />
</template>
</el-table-column>
<el-table-column label="首页展示图片" align="center" prop="homeImage" width="100">
<template #default="scope">
<img :src="scope.row.homeImage" alt="首页展示图片" class="h-36px" />
</template>
</el-table-column>
<!-- <el-table-column label="首页展示图片" align="center" prop="homeImage" />-->
<el-table-column label="内容" align="center" prop="information" /> <el-table-column label="内容" align="center" prop="information" />
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" />
<el-table-column label="链接地址" align="center" prop="url" /> <el-table-column label="链接地址" align="center" prop="url" />
<el-table-column label="描述内容" align="center" prop="description" />
<el-table-column label="状态" align="center" prop="showStatus" /> <el-table-column label="组件类型" align="center" prop="assemblyType">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HOME_INFO_ASSEMBLY_TYPE" :value="scope.row.assemblyType" />
</template>
</el-table-column>
<!-- <el-table-column label="描述内容" align="center" prop="description" />-->
<el-table-column label="描述内容" align="center" prop="description">
<template #default="scope">
<div v-html="scope.row.description" class="line-clamp-2"></div>
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="showStatus">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HOME_INFO_STATUS" :value="Number(scope.row.showStatus)" />
</template>
</el-table-column>
<el-table-column <el-table-column
label="创建时间" label="创建时间"
align="center" align="center"
...@@ -114,9 +175,8 @@ ...@@ -114,9 +175,8 @@
:formatter="dateFormatter" :formatter="dateFormatter"
width="180px" width="180px"
/> />
<el-table-column label="首页展示图片" align="center" prop="homeImage" />
<el-table-column label="组件类型:0-全部" align="center" prop="assemblyType" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="排序值" align="center" prop="orderNum" />
<el-table-column label="操作" align="center" min-width="120px"> <el-table-column label="操作" align="center" min-width="120px">
<template #default="scope"> <template #default="scope">
<el-button <el-button
...@@ -157,6 +217,7 @@ import { dateFormatter } from '@/utils/formatTime' ...@@ -157,6 +217,7 @@ import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { IndustryApplicationApi, IndustryApplication } from '@/api/biz/industryapplication' import { IndustryApplicationApi, IndustryApplication } from '@/api/biz/industryapplication'
import IndustryApplicationForm from './IndustryApplicationForm.vue' import IndustryApplicationForm from './IndustryApplicationForm.vue'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
/** 行业应用 列表 */ /** 行业应用 列表 */
defineOptions({ name: 'IndustryApplication' }) defineOptions({ name: 'IndustryApplication' })
......
...@@ -7,27 +7,48 @@ ...@@ -7,27 +7,48 @@
label-width="100px" label-width="100px"
v-loading="formLoading" v-loading="formLoading"
> >
<el-form-item label="咨询类别" prop="category">
<el-radio-group v-model="formData.category"> <el-form-item label="资讯类别" prop="category">
<el-radio value="1">请选择字典生成</el-radio> <el-select v-model="formData.category" placeholder="请选择资讯类别" clearable class="!w-160px">
</el-radio-group> <el-option
v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_INFORMATION_CATEGORY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="行业类别" prop="industryCategory"> <el-form-item label="行业类别" prop="industryCategory">
<el-radio-group v-model="formData.industryCategory"> <el-select v-model="formData.industryCategory" placeholder="请选择行业类别" clearable class="!w-160px">
<el-radio value="1">请选择字典生成</el-radio> <el-option
</el-radio-group> v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_INDUSTRY_CATEGORY)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input v-model="formData.title" placeholder="请输入标题" /> <el-input v-model="formData.title" placeholder="请输入标题" />
</el-form-item> </el-form-item>
<el-form-item label="描述内容" prop="description"> <el-form-item label="描述内容" prop="description">
<Editor v-model="formData.description" height="150px" /> <Editor v-model="formData.description" height="150px" />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="showStatus"> <el-form-item label="状态" prop="showStatus">
<el-radio-group v-model="formData.showStatus"> <el-radio-group v-model="formData.showStatus">
<el-radio value="1">请选择字典生成</el-radio> <el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
:key="dict.value"
:label="dict.value"
>
{{ dict.label }}
</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="预览图" prop="image"> <el-form-item label="预览图" prop="image">
<UploadImg v-model="formData.image" /> <UploadImg v-model="formData.image" />
</el-form-item> </el-form-item>
...@@ -43,6 +64,7 @@ ...@@ -43,6 +64,7 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { InformationApi, Information } from '@/api/biz/information' import { InformationApi, Information } from '@/api/biz/information'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
/** 活动资讯管理 表单 */ /** 活动资讯管理 表单 */
defineOptions({ name: 'InformationForm' }) defineOptions({ name: 'InformationForm' })
...@@ -59,7 +81,7 @@ const formData = ref({ ...@@ -59,7 +81,7 @@ const formData = ref({
category: undefined, category: undefined,
industryCategory: undefined, industryCategory: undefined,
title: undefined, title: undefined,
description: undefined, description: '',
showStatus: undefined, showStatus: undefined,
image: undefined, image: undefined,
remark: undefined remark: undefined
...@@ -82,7 +104,13 @@ const open = async (type: string, id?: number) => { ...@@ -82,7 +104,13 @@ const open = async (type: string, id?: number) => {
if (id) { if (id) {
formLoading.value = true formLoading.value = true
try { try {
formData.value = await InformationApi.getInformation(id) // formData.value = await InformationApi.getInformation(id)
const data = await InformationApi.getInformation(id)
// 确保 description 不为 null
if (data.description === null) {
data.description = ''
}
formData.value = data
} finally { } finally {
formLoading.value = false formLoading.value = false
} }
...@@ -121,7 +149,7 @@ const resetForm = () => { ...@@ -121,7 +149,7 @@ const resetForm = () => {
category: undefined, category: undefined,
industryCategory: undefined, industryCategory: undefined,
title: undefined, title: undefined,
description: undefined, description: '',
showStatus: undefined, showStatus: undefined,
image: undefined, image: undefined,
remark: undefined remark: undefined
......
...@@ -8,56 +8,60 @@ ...@@ -8,56 +8,60 @@
:inline="true" :inline="true"
label-width="68px" label-width="68px"
> >
<el-form-item label="咨询类别" prop="category">
<el-select <el-form-item label="资讯类别" prop="category">
v-model="queryParams.category" <el-select v-model="queryParams.category" placeholder="请选择资讯类别" clearable class="!w-160px">
placeholder="请选择咨询类别" <el-option
clearable v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_INFORMATION_CATEGORY)"
class="!w-240px" :key="dict.value"
> :label="dict.label"
<el-option label="请选择字典生成" value="" /> :value="dict.value"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="行业类别" prop="industryCategory"> <el-form-item label="行业类别" prop="industryCategory">
<el-select <el-select v-model="queryParams.industryCategory" placeholder="请选择行业类别" clearable class="!w-160px">
v-model="queryParams.industryCategory" <el-option
placeholder="请选择行业类别" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_INDUSTRY_CATEGORY)"
clearable :key="dict.value"
class="!w-240px" :label="dict.label"
> :value="dict.value"
<el-option label="请选择字典生成" value="" /> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="标题" prop="title"> <el-form-item label="标题" prop="title">
<el-input <el-input
v-model="queryParams.title" v-model="queryParams.title"
placeholder="请输入标题" placeholder="请输入标题"
clearable clearable
@keyup.enter="handleQuery" @keyup.enter="handleQuery"
class="!w-240px" class="!w-160px"
/> />
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="showStatus"> <el-form-item label="状态" prop="showStatus">
<el-select <el-select v-model="queryParams.showStatus" placeholder="请选择状态" clearable class="!w-120px">
v-model="queryParams.showStatus" <el-option
placeholder="请选择状态:0-已隐藏,1-已显示" v-for="dict in getIntDictOptions(DICT_TYPE.HOME_INFO_STATUS)"
clearable :key="dict.value"
class="!w-240px" :label="dict.label"
> :value="dict.value"
<el-option label="请选择字典生成" value="" /> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="创建时间" prop="createTime"> <!-- <el-form-item label="创建时间" prop="createTime">-->
<el-date-picker <!-- <el-date-picker-->
v-model="queryParams.createTime" <!-- v-model="queryParams.createTime"-->
value-format="YYYY-MM-DD HH:mm:ss" <!-- value-format="YYYY-MM-DD HH:mm:ss"-->
type="daterange" <!-- type="daterange"-->
start-placeholder="开始日期" <!-- start-placeholder="开始日期"-->
end-placeholder="结束日期" <!-- end-placeholder="结束日期"-->
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]" <!-- :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"-->
class="!w-220px" <!-- class="!w-220px"-->
/> <!-- />-->
</el-form-item> <!-- </el-form-item>-->
<el-form-item> <el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button> <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button> <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
...@@ -102,12 +106,36 @@ ...@@ -102,12 +106,36 @@
@selection-change="handleRowCheckboxChange" @selection-change="handleRowCheckboxChange"
> >
<el-table-column type="selection" width="55" /> <el-table-column type="selection" width="55" />
<el-table-column label="咨询类别" align="center" prop="category" /> <!-- <el-table-column label="资讯类别" align="center" prop="category" />-->
<el-table-column label="行业类别" align="center" prop="industryCategory" /> <el-table-column label="资讯类别" align="center" prop="category">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HOME_INFO_INFORMATION_CATEGORY" :value="Number(scope.row.category)" />
</template>
</el-table-column>
<!-- <el-table-column label="行业类别" align="center" prop="industryCategory" />-->
<el-table-column label="行业类别" align="center" prop="industryCategory">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HOME_INFO_INDUSTRY_CATEGORY" :value="Number(scope.row.industryCategory)" />
</template>
</el-table-column>
<el-table-column label="标题" align="center" prop="title" /> <el-table-column label="标题" align="center" prop="title" />
<el-table-column label="描述内容" align="center" prop="description" /> <el-table-column label="描述内容" align="center" prop="description" />
<el-table-column label="状态" align="center" prop="showStatus" />
<el-table-column label="预览图" align="center" prop="image" /> <el-table-column label="状态" align="center" prop="showStatus">
<template #default="scope">
<dict-tag :type="DICT_TYPE.HOME_INFO_STATUS" :value="Number(scope.row.showStatus)" />
</template>
</el-table-column>
<!-- <el-table-column label="预览图" align="center" prop="image" />-->
<el-table-column label="预览图" align="center" prop="image" width="100">
<template #default="scope">
<img :src="scope.row.image" alt="预览图" class="h-36px" />
</template>
</el-table-column>
<el-table-column <el-table-column
label="创建时间" label="创建时间"
align="center" align="center"
...@@ -155,6 +183,7 @@ import { dateFormatter } from '@/utils/formatTime' ...@@ -155,6 +183,7 @@ import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download' import download from '@/utils/download'
import { InformationApi, Information } from '@/api/biz/information' import { InformationApi, Information } from '@/api/biz/information'
import InformationForm from './InformationForm.vue' import InformationForm from './InformationForm.vue'
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
/** 活动资讯管理 列表 */ /** 活动资讯管理 列表 */
defineOptions({ name: 'Information' }) defineOptions({ name: 'Information' })
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment