feat: 将产品图/说明书备注字段从JSON数组中分离为独立数据库列
- 数据库新增 product_image_remark 和 manual_link_remark 两个TEXT列 - 备注文字不再与上传文件URL混存在 generalImage/generalManual JSON数组中 - 前端输入框改为textarea,绑定独立的备注字段 - 修复 handlePasteLink 忽略field参数的bug - 新增 isInternalFile 辅助函数,用于区分上传文件与纯文本 - 同步修改 list.vue 和 buyOdoo.vue 两个页面
This commit is contained in:
@ -29,6 +29,10 @@ class MaterialBase(db.Model):
|
||||
manual_link = db.Column(db.Text, comment='通用说明书')
|
||||
product_image = db.Column(db.Text, comment='通用产品图')
|
||||
|
||||
# 备注字段(纯文本,与文件 URL 分离存储)
|
||||
product_image_remark = db.Column(db.Text, default='', comment='产品图备注')
|
||||
manual_link_remark = db.Column(db.Text, default='', comment='说明书备注')
|
||||
|
||||
# 启用状态
|
||||
is_enabled = db.Column(db.Boolean, default=True, comment='是否启用')
|
||||
|
||||
@ -86,6 +90,8 @@ class MaterialBase(db.Model):
|
||||
'visibilityLevel': self.visibility_level,
|
||||
'generalManual': parse_list(self.manual_link),
|
||||
'generalImage': parse_list(self.product_image),
|
||||
'productImageRemark': self.product_image_remark or '',
|
||||
'manualLinkRemark': self.manual_link_remark or '',
|
||||
# 【核心修改】:直接返回布尔值,不再转成 1 或 0
|
||||
'isEnabled': bool(self.is_enabled),
|
||||
# 强制质检标记
|
||||
|
||||
@ -580,6 +580,8 @@ class MaterialBaseService:
|
||||
visibility_level=data.get('visibilityLevel'),
|
||||
manual_link=json.dumps(data.get('generalManual', [])),
|
||||
product_image=json.dumps(data.get('generalImage', [])),
|
||||
product_image_remark=data.get('productImageRemark', ''),
|
||||
manual_link_remark=data.get('manualLinkRemark', ''),
|
||||
is_enabled=is_enabled_val
|
||||
)
|
||||
db.session.add(new_material)
|
||||
@ -623,6 +625,9 @@ class MaterialBaseService:
|
||||
if 'unit' in data: material.unit = data['unit']
|
||||
if 'visibilityLevel' in data: material.visibility_level = data['visibilityLevel']
|
||||
|
||||
if 'productImageRemark' in data: material.product_image_remark = data['productImageRemark']
|
||||
if 'manualLinkRemark' in data: material.manual_link_remark = data['manualLinkRemark']
|
||||
|
||||
if 'generalManual' in data:
|
||||
material.manual_link = json.dumps(data['generalManual'])
|
||||
if 'generalImage' in data:
|
||||
|
||||
Reference in New Issue
Block a user