"feat: 1-实现动态层级树形库位管理功能
2 - 首页新增库位设置按钮和树形管理弹窗
3 - 后端添加 SysWarehouseLocation 模型和 CRUD API
4 - 树形结构支持无限层级,自动计算 full_path
5 - 修复 product.vue 中 defaultColumns 未定义 bug
This commit is contained in:
@ -130,6 +130,19 @@ def create_app():
|
||||
except ImportError as e:
|
||||
print(f"❌ 错误: Permission 模块导入失败 (请检查 app/api/v1/permission.py 是否存在): {e}")
|
||||
|
||||
# -----------------------------------------------------
|
||||
# 2.8 注册库位管理模块 (Warehouse)
|
||||
# -----------------------------------------------------
|
||||
try:
|
||||
from app.api.v1.warehouse import warehouse_bp
|
||||
# 标准: /api/v1/warehouse/tree
|
||||
app.register_blueprint(warehouse_bp, url_prefix='/api/v1/warehouse')
|
||||
# 兼容: /api/warehouse/tree
|
||||
app.register_blueprint(warehouse_bp, url_prefix='/api/warehouse', name='warehouse_legacy')
|
||||
print("✅ Warehouse 模块注册成功")
|
||||
except ImportError as e:
|
||||
print(f"❌ 错误: Warehouse 模块导入失败: {e}")
|
||||
|
||||
# =========================================================
|
||||
# 3. 预加载数据模型
|
||||
# =========================================================
|
||||
@ -145,7 +158,7 @@ def create_app():
|
||||
from app.models.outbound import TransOutbound
|
||||
|
||||
# 系统与业务模型 (SysRolePermission 等在 models.system 中)
|
||||
from app.models.system import SysUser, SysLog, SysMenu, SysElement, SysRolePermission
|
||||
from app.models.system import SysUser, SysLog, SysMenu, SysElement, SysRolePermission, SysWarehouseLocation
|
||||
# 确保借还模型被加载
|
||||
from app.models.transaction import TransBorrow, TransRepair, TransScrap
|
||||
|
||||
|
||||
@ -148,4 +148,39 @@ class SysRolePermission(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
role_code = db.Column(db.String(50), nullable=False)
|
||||
target_code = db.Column(db.String(100), nullable=False) # menu_code 或 element_code
|
||||
type = db.Column(db.String(20), nullable=False) # 'menu' 或 'element'
|
||||
type = db.Column(db.String(20), nullable=False) # 'menu' 或 'element'
|
||||
|
||||
|
||||
# ==========================================
|
||||
# 4. 库位管理模型
|
||||
# ==========================================
|
||||
class SysWarehouseLocation(db.Model):
|
||||
"""
|
||||
库位字典表(支持无限层级树形结构)
|
||||
对应数据库: sys_warehouse_location
|
||||
"""
|
||||
__tablename__ = 'sys_warehouse_location'
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
parent_id = db.Column(db.Integer, db.ForeignKey('sys_warehouse_location.id'), nullable=True)
|
||||
name = db.Column(db.String(100), nullable=False)
|
||||
full_path = db.Column(db.String(500)) # 完整路径,如 "A区/货架1/第3层"
|
||||
level = db.Column(db.Integer, default=0) # 层级深度,顶级为0
|
||||
is_enabled = db.Column(db.Boolean, default=True)
|
||||
created_at = db.Column(db.DateTime, default=datetime.now)
|
||||
updated_at = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)
|
||||
|
||||
# 自关联
|
||||
children = db.relationship('SysWarehouseLocation', backref=db.backref('parent', remote_side=[id]), lazy='dynamic')
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
'id': self.id,
|
||||
'parent_id': self.parent_id,
|
||||
'name': self.name,
|
||||
'full_path': self.full_path,
|
||||
'level': self.level,
|
||||
'is_enabled': self.is_enabled,
|
||||
'created_at': self.created_at.isoformat() if self.created_at else None,
|
||||
'updated_at': self.updated_at.isoformat() if self.updated_at else None
|
||||
}
|
||||
Reference in New Issue
Block a user