From 6bac1630e5af5890a6922bdc624e591eb19a12eb Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期四, 13 三月 2025 18:36:07 +0800
Subject: [PATCH] 知识库对接rg

---
 app/models/resource_model.py |   50 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/app/models/resource_model.py b/app/models/resource_model.py
index 61e1bc9..c1c6960 100644
--- a/app/models/resource_model.py
+++ b/app/models/resource_model.py
@@ -5,6 +5,7 @@
 from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey
 from sqlalchemy.orm import relationship, backref
 
+from app.config.const import RESOURCE_STATUS_DELETE
 from app.models.base_model import Base
 
 class ResourceModel(Base):
@@ -25,7 +26,7 @@
     resource_id = Column(String(36), ForeignKey('resource.id'))
     parent = relationship('ResourceModel', remote_side=[id], backref='resources', uselist=False)
     children = relationship('ResourceModel')
-    status = Column(String(10))
+    status = Column(String(10), default="1")
     hidden = Column(Integer, default=0)
     def get_id(self):
         return str(self.ID)
@@ -56,7 +57,10 @@
             'menuId': self.id,
             'menuName': self.name,
             'menuType': self.resource_type_id,
-            'children': [res.to_tree_select_json() for res in self.children]
+            'parentId': self.get_pid(),
+            'status': self.status,
+            'parentName': self.get_pName(),
+            'children': [res.to_tree_select_json() for res in self.children if res if res.status != RESOURCE_STATUS_DELETE]
         }
 
     def to_router_json(self):
@@ -86,6 +90,34 @@
             router['component'] = 'Layout'
 
         return router
+
+
+    def to_router_dict(self):
+        router = {
+            'id': self.id,
+            'name': self.path.capitalize() if self.path else '',
+            # 'name': self.name,
+            'path': self.path,
+            'hidden': bool(self.hidden),
+            'redirect': 'noRedirect',
+            'component': self.url,
+            'alwaysShow': True,
+            'perms': self.perms,
+            'resourceType': self.get_type_json(),
+            'seq': self.seq,
+            'meta': {
+                'title': self.name,
+                'icon': self.icon,
+                'noCache': False,
+                'link': ''
+            },
+            'parentId': self.get_pid(),
+        }
+
+        if not router['component']:
+            router['component'] = 'Layout'
+        return router
+
 
     def to_menu_json(self):
         return {
@@ -133,8 +165,8 @@
     def to_json(self):
         return {
             'id': self.id,
-            'createdatetime': self.created_at,
-            'updatedatetime': self.updated_at,
+            # 'createdatetime': self.created_at,
+            # 'updatedatetime': self.updated_at,
             'name': self.name,
             'description': self.description
         }
@@ -151,7 +183,13 @@
     perms: Optional[str] = ""
     menuType: Optional[str] = ""
     description: Optional[str] = ""
+    icon: Optional[str] = ""
     parentId: str
     status: str
-    roles: list
-    groups: Optional[list] = []
\ No newline at end of file
+    # roles: list
+    # groups: Optional[list] = []
+
+
+class MenuStatus(BaseModel):
+    menuId: str
+    status: str
\ No newline at end of file

--
Gitblit v1.8.0