Browse Source

问题提交

master
si@aidatagov.com 4 weeks ago
parent
commit
fa49d8fe65
  1. 35
      vue-fastapi-backend/module_admin/service/data_asset_service.py
  2. 22
      vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue

35
vue-fastapi-backend/module_admin/service/data_asset_service.py

@ -5,6 +5,7 @@ from exceptions.exception import ServiceException
from typing import Dict, Any, List
from utils.common_util import export_list2excel
import json
class DataAssetService:
"""
@ -183,7 +184,9 @@ class DataAssetService:
# 处理状态字段
cleaned_item["dataAstStat"] = "有效" if cleaned_item.get("dataAstStat") == "有效" else "废弃"
cleaned_item["dataAstClas"] = format_asset_tags(
cleaned_item.get("dataAstClas")
)
# 按mapping_dict的键顺序构建数据
mapped_item = {
mapping_dict[key]: cleaned_item.get(key, "")
@ -193,3 +196,33 @@ class DataAssetService:
# 直接调用export_list2excel,只传入数据参数
return export_list2excel(new_data)
import json
def format_asset_tags(value):
"""
将资产标签转为clasName:clasValueclasName:clasValue
"""
if not value:
return ""
# 如果是字符串,尝试反序列化
if isinstance(value, str):
try:
value = json.loads(value)
except Exception:
return value # 非 JSON,直接原样返回
# 如果不是 list,直接返回字符串
if not isinstance(value, list):
return str(value)
result = []
for item in value:
if not isinstance(item, dict):
continue
name = item.get("clasName", "")
val = item.get("clasValue", "")
if name or val:
result.append(f"{name}:{val}")
return "".join(result)

22
vue-fastapi-frontend/src/views/dataAsset/assetDetail/index.vue

@ -33,10 +33,14 @@
<el-input v-model="queryParams.name" placeholder="请输入名称" clearable style="width: 160px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="类型" prop="dataAstType">
<!-- <el-form-item label="类型" prop="dataAstType">
<el-select v-model="queryParams.dataAstType" placeholder="请选择" clearable style="width: 160px">
<el-option v-for="(item, index) in dataAstType_list" :key="index" :label="item" :value="item" />
<el-option v-for="(item, index) in dataAstType_list" :key="index" :label="item.label" :value="item.value" />
</el-select>
</el-form-item> -->
<el-form-item label="类型" prop="dataAstType">
<el-input v-model="queryParams.dataAstType" placeholder="请输入" clearable style="width: 160px"
@keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="标签" prop="dataAstClas">
<el-input v-model="queryParams.dataAstClas" placeholder="请输入" clearable style="width: 160px"
@ -111,7 +115,11 @@
<el-table-column label="常见问题" align="center" width="150" key="" prop="dataAstFaq" v-if="columns[9].visible" />
<el-table-column label="负责人" align="center" width="150" key="" prop="dataAstCont" v-if="columns[10].visible" />
<el-table-column label="建立时间" align="center" width="200" key="" prop="dataAstEstbTime" v-if="columns[11].visible" />
<el-table-column label="更新时间" align="center" width="200" key="" prop="dataAstUpdTime" v-if="columns[12].visible" />
<el-table-column label="更新时间" align="center" prop="dataAstUpdTime" v-if="columns[12].visible" width="160">
<template #default="scope">
<span>{{ parseTime(scope.row.dataAstUpdTime) }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="100" class-name="small-padding fixed-width">
<template #default="scope">
<el-tooltip content="修改" placement="top">
@ -498,7 +506,7 @@ const handleDelete = (row) => {
}
const handleExport = () => {
proxy.download("/default-api/system/dataAsset/export", {
proxy.download("/system/dataAsset/export", {
...queryParams.value,
}, `dataAsset_${new Date().getTime()}.xlsx`);
}
@ -525,7 +533,11 @@ const handleSelectionChange = (selection) => {
// });
const dataAstType_list = computed(() => {
return ['表', '报表','其他应用'];
return [
{ label: '表', value: 'TABLE' },
{ label: '报表', value: '报表' },
{ label: '其他应用', value: '其他应用' }
];
});

Loading…
Cancel
Save