From 9827e6f50616f665e6579e23c0afb4e78f08891c Mon Sep 17 00:00:00 2001 From: siyaqi Date: Thu, 14 Aug 2025 18:33:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E5=85=B8=E5=9B=BE=E8=B0=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/datastd_controller.py | 25 +- .../module_admin/service/datastd_service.py | 50 +++- vue-fastapi-frontend/src/api/datastd/std.js | 13 + .../src/views/datastd/main/index.vue | 4 +- .../src/views/datastd/main/stdMap.vue | 2 +- .../src/views/datastd/stddict/index.vue | 26 ++ .../src/views/datastd/stddict/stdMap.vue | 228 ++++++++++++++++++ 7 files changed, 340 insertions(+), 8 deletions(-) create mode 100644 vue-fastapi-frontend/src/views/datastd/stddict/stdMap.vue diff --git a/vue-fastapi-backend/module_admin/controller/datastd_controller.py b/vue-fastapi-backend/module_admin/controller/datastd_controller.py index 52dd0d8..c3789d9 100644 --- a/vue-fastapi-backend/module_admin/controller/datastd_controller.py +++ b/vue-fastapi-backend/module_admin/controller/datastd_controller.py @@ -79,7 +79,18 @@ async def get_std_code_map_list2( is_page=True) return ResponseUtil.success(model_content=code_page_query_result) - +@datastdController.get( + '/stdcode/code/maplistDict', response_model=PageResponseModel, + dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))] +) +async def get_std_code_map_dict_list( + request: Request, + code_page_query: DataStdCodePageQueryModel = Depends(DataStdCodePageQueryModel.as_query), + query_db: AsyncSession = Depends(get_db), +): + code_page_query_result = await DataStdService.get_std_dict_map_list_services(query_db, code_page_query, + is_page=True) + return ResponseUtil.success(model_content=code_page_query_result) @datastdController.get('/stdcode/code/listappr', response_model=PageResponseModel, dependencies=[Depends(CheckUserInterfaceAuth('datastd:stddict:dict:list'))] ) @@ -804,6 +815,18 @@ async def get_code_map_list2( code_page_query_result = await DataStdService.get_code_map_list2(request,query_db, id) logger.info('获取列配置列表成功') return ResponseUtil.success(data=code_page_query_result) +@datastdController.get( + '/stdcode/code/mapdictlist/{id}', response_model=PageResponseModel, + dependencies=[Depends(CheckUserInterfaceAuth('datastd:stdcode:code:list'))] +) +async def get_dict_map_list2( + request: Request, + id: str, + query_db: AsyncSession = Depends(get_db), +): + code_page_query_result = await DataStdService.get_dict_map_list(request,query_db, id) + logger.info('获取列配置列表成功') + return ResponseUtil.success(data=code_page_query_result) # -----------------------------------------------------导入---------------------------------------------------------------------- @datastdController.post('/stdMain/importTemplate', dependencies=[Depends(CheckUserInterfaceAuth('system:user:import'))]) async def export_std_main_template(request: Request, query_db: AsyncSession = Depends(get_db)): diff --git a/vue-fastapi-backend/module_admin/service/datastd_service.py b/vue-fastapi-backend/module_admin/service/datastd_service.py index 1bf5d9c..52b02a0 100644 --- a/vue-fastapi-backend/module_admin/service/datastd_service.py +++ b/vue-fastapi-backend/module_admin/service/datastd_service.py @@ -122,6 +122,20 @@ class DataStdService: col_list_result = await DataStdDao.get_std_main_map_list(query_db, query_object, is_page) return col_list_result @classmethod + async def get_std_dict_map_list_services( + cls, query_db: AsyncSession, query_object: DataStdMainModel, is_page: bool = False + ): + """ + 获取列配置列表信息service + + :param query_db: orm对象 + :param query_object: 查询参数对象 + :param is_page: 是否开启分页 + :return: 列配置列表信息对象 + """ + col_list_result = await DataStdDao.get_std_main_map_list(query_db, query_object, is_page) + return col_list_result + @classmethod async def get_std_code_by_id_services(cls, query_db: AsyncSession, id: str): """ 获取列配置详细信息service @@ -1630,8 +1644,8 @@ class DataStdService: for meta in meta_list: meta_node = { "id": f"meta_{meta.onum}", - "name": meta.fld_desc, - "label": meta.fld_eng_name+"("+meta.tab_eng_name+")", + "name": meta.fld_eng_name, + "label": meta.mdl_name+"("+meta.tab_eng_name+")", "rate": 1.0, "status": "Y", "variableValue": "元数据", @@ -1647,8 +1661,8 @@ class DataStdService: for meta in meta_list: meta_node = { "id": f"meta_{meta.onum}", - "name": meta.fld_desc, - "label": meta.fld_eng_name+"("+meta.tab_eng_name+")", + "name": meta.fld_eng_name, + "label": meta.mdl_name+"("+meta.tab_eng_name+")", "rate": 1.0, "status": "Y", "variableValue": "元数据", @@ -1660,7 +1674,35 @@ class DataStdService: "tableData": table_data, "children": children } + @classmethod + async def get_dict_map_list(cls, request: Request, query_db: AsyncSession, id: str): + """ + 获取字典的引用关系(固定两层:直接返回元数据节点列表) + :param id: 字典 onum + """ + # 获取该字典直接引用的元数据列表 + meta_list = await DataStdDao.get_meta_field_list_by_onum(query_db, id) + if not meta_list: + return {"children": []} + + children = [] + for meta in meta_list: + meta_node = { + "id": f"meta_{meta.onum}", + "name": meta.fld_eng_name, + "label": f"{meta.mdl_name}({meta.tab_eng_name})", + "rate": 1.0, + "status": "Y", + "variableValue": "元数据", + "variableUp": False, + } + children.append(meta_node) + return { + "tableData": [], + "children": children + } + @staticmethod async def get_main_import_template_services(): """ diff --git a/vue-fastapi-frontend/src/api/datastd/std.js b/vue-fastapi-frontend/src/api/datastd/std.js index db72628..ece12d1 100644 --- a/vue-fastapi-frontend/src/api/datastd/std.js +++ b/vue-fastapi-frontend/src/api/datastd/std.js @@ -37,6 +37,13 @@ export function listStdCodemap2(query) { params: query }) } +export function listDictMap(query) { + return request({ + url: '/default-api/datastd/stdcode/code/maplistDict', + method: 'get', + params: query + }) +} // 查询标准代码项列表 export function listStdCodeItem(query) { return request({ @@ -79,6 +86,12 @@ export function getStdMap(rowId) { method: 'get' }) } +export function getDictMap(rowId) { + return request({ + url: '/default-api/datastd/stdcode/code/mapdictlist/' + parseStrEmpty(rowId), + method: 'get' + }) +} // 新增标准代码 export function addStdCode(data) { return request({ diff --git a/vue-fastapi-frontend/src/views/datastd/main/index.vue b/vue-fastapi-frontend/src/views/datastd/main/index.vue index cc84408..6cec359 100644 --- a/vue-fastapi-frontend/src/views/datastd/main/index.vue +++ b/vue-fastapi-frontend/src/views/datastd/main/index.vue @@ -309,7 +309,7 @@ - + diff --git a/vue-fastapi-frontend/src/views/datastd/main/stdMap.vue b/vue-fastapi-frontend/src/views/datastd/main/stdMap.vue index ebba4b8..891fe48 100644 --- a/vue-fastapi-frontend/src/views/datastd/main/stdMap.vue +++ b/vue-fastapi-frontend/src/views/datastd/main/stdMap.vue @@ -174,7 +174,7 @@ const mockData = ref({ label: "", rate: 1.0, status: "G", - variableValue: "代码", + variableValue: "数据标准", variableUp: true, children:[] diff --git a/vue-fastapi-frontend/src/views/datastd/stddict/index.vue b/vue-fastapi-frontend/src/views/datastd/stddict/index.vue index 6de5a23..1c3b9a2 100644 --- a/vue-fastapi-frontend/src/views/datastd/stddict/index.vue +++ b/vue-fastapi-frontend/src/views/datastd/stddict/index.vue @@ -182,6 +182,19 @@ /> + + + + + + + + @@ -315,6 +333,7 @@ const { std_code_status, std_code_appr } = proxy.useDict( "std_code_appr" ); import { getToken } from "@/utils/auth"; +import stdMap from './stdMap'; // 引入第二个页面组件 const upload = reactive({ // 是否显示弹出层(用户导入) @@ -343,6 +362,8 @@ const queryParams = ref({ const queryStd = ref({ dataStdNo: "", }); +const codeMapId = ref(null); + const single = ref(true); const multiple = ref(true); const dbResoursName = ref(undefined); @@ -433,6 +454,7 @@ const getStdMainSelect = async () => { stdList.value = response.data; }; +const mapVisible = ref(false); const handleQuery = () => { queryParams.value.pageNum = 1; @@ -451,7 +473,11 @@ const resetQuery = () => { }; getList(); }; +const handleMapCodeClick = (row) => { + codeMapId.value=row.onum + mapVisible.value = true; +}; const handleRemove = (row) => { const idsToDelete = row.onum ? [row.onum] : ids.value; const codesToDelete = row.cdNo ? [row.cdNo] : cdNos.value; diff --git a/vue-fastapi-frontend/src/views/datastd/stddict/stdMap.vue b/vue-fastapi-frontend/src/views/datastd/stddict/stdMap.vue new file mode 100644 index 0000000..e0cc5a4 --- /dev/null +++ b/vue-fastapi-frontend/src/views/datastd/stddict/stdMap.vue @@ -0,0 +1,228 @@ + + + + + + +