"feat: 1-实现动态层级树形库位管理功能

2 - 首页新增库位设置按钮和树形管理弹窗
     3 - 后端添加 SysWarehouseLocation 模型和 CRUD API
     4 - 树形结构支持无限层级,自动计算 full_path
     5 - 修复 product.vue 中 defaultColumns 未定义 bug
This commit is contained in:
dxc
2026-03-06 14:33:13 +08:00
parent cc26f91b50
commit 359b8a8345
4 changed files with 272 additions and 5 deletions

View File

@ -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
}