mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-28 13:31:04 +00:00
fix(虚拟商品): 分类与标签 ID 统一转 int,修复后台编辑页无法回显
- 商品详情接口的 cate_id / label_id 由 explode 后仍为字符串数组,
而后台分类级联选择的 value 是数字,导致编辑页分类、标签回显为空。
统一 array_map('intval') 处理,与 label_list / protection_list 口径一致。
- 后台网盘商品编辑页兼容后端返回数组或逗号字符串两种格式,
并过滤非正数与 NaN 值,避免提交空节点。
This commit is contained in:
parent
e712f5554c
commit
05d46ed2f1
@ -131,8 +131,9 @@ class ProductServices
|
||||
// ============ 列表/JSON字段 ============
|
||||
$product['logistics'] = !empty($product['logistics']) ? explode(',', $product['logistics']) : [];
|
||||
$product['recommend_list'] = !empty($product['recommend_list']) ? explode(',', (string)$product['recommend_list']) : [];
|
||||
$product['cate_id'] = !empty($product['cate_id']) ? explode(',', (string)$product['cate_id']) : [];
|
||||
$product['label_id'] = !empty($product['label_id']) ? explode(',', (string)$product['label_id']) : [];
|
||||
// 分类/标签 ID 统一转 int:分类级联选项的 value 是数字,返回字符串会导致编辑页无法回显
|
||||
$product['cate_id'] = !empty($product['cate_id']) ? array_map('intval', explode(',', (string)$product['cate_id'])) : [];
|
||||
$product['label_id'] = !empty($product['label_id']) ? array_map('intval', explode(',', (string)$product['label_id'])) : [];
|
||||
$product['label_list'] = !empty($product['label_list']) ? array_map('intval', explode(',', (string)$product['label_list'])) : [];
|
||||
$product['protection_list'] = !empty($product['protection_list']) ? array_map('intval', explode(',', (string)$product['protection_list'])) : [];
|
||||
$product['params_list'] = !empty($product['params_list']) ? json_decode($product['params_list'], true) : [];
|
||||
|
||||
@ -511,8 +511,10 @@ async function loadProduct() {
|
||||
formValidate.value.slider_image = images;
|
||||
formValidate.value.image = images[0] || '';
|
||||
}
|
||||
const cate = data.cate_id || [];
|
||||
formValidate.value.cate_id = Array.isArray(cate) ? cate : [cate];
|
||||
// 分类回显:级联选项的 value 是数字,字符串 ID 无法命中节点,这里统一转成数字
|
||||
const cate = data.cate_id;
|
||||
const cateArr = Array.isArray(cate) ? cate : cate ? String(cate).split(',') : [];
|
||||
formValidate.value.cate_id = cateArr.map((v) => Number(v)).filter((v) => !Number.isNaN(v) && v > 0);
|
||||
// 规格回显(优先使用 attr/attrs 中的数据)
|
||||
if (data.attr && typeof data.attr === 'object') {
|
||||
oneFormValidate.value[0].price = parseFloat(data.attr.price) || 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user