"feat: 1-实现动态层级树形库位管理功能
2 - 首页新增库位设置按钮和树形管理弹窗
3 - 后端添加 SysWarehouseLocation 模型和 CRUD API
4 - 树形结构支持无限层级,自动计算 full_path
5 - 修复 product.vue 中 defaultColumns 未定义 bug
This commit is contained in:
@ -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