feat: 完成基本的详情生成

This commit is contained in:
augushong
2026-01-09 00:02:33 +08:00
parent 0e92ab2363
commit d5be4cbbaa
8 changed files with 46 additions and 51 deletions

View File

@@ -1213,8 +1213,16 @@ class BuildCurdServiceBase
$selectList .= $this->buildSelectModel($field, $val['define']);
}
// 为多图片多文件字段生成获取器
if (in_array($val['formType'], ['images', 'files'])) {
// 为多图片多文件、多选字段生成获取器
if (in_array($val['formType'], ['images', 'files', 'checkbox'])) {
// checkbox 使用逗号分隔images/files 使用自定义分隔符
if ($val['formType'] == 'checkbox') {
$val['define'] = ','; // 多选框固定使用逗号分隔
} elseif ($val['formType'] == 'images' || $val['formType'] == 'files') {
if (!isset($val['define'])) {
$val['define'] = '|'; // 默认分隔符
}
}
$accessorList .= $this->buildAccessorModel($field, $val);
}
@@ -1873,15 +1881,16 @@ class BuildCurdServiceBase
} elseif ($val['formType'] == 'radio' || $val['formType'] == 'switch') {
$templateFile = "view{$this->DS}module{$this->DS}readSwitch";
if (isset($val['define']) && !empty($val['define'])) {
// 构建下拉选择的显示
// 使用 kv 格式直接获取
$var_name = $this->getFieldVarName($field);
$define = '{volist name="' . $var_name . '" id="vo"}{eq name="vo.value" value="$row.' . $field . '"}<span class="layui-badge">{volist name="' . $var_name . '" id="item"}{eq name="item.value" value="$row.' . $field . '"}{$item.label}{/eq}{/volist}</span>{/eq}{/volist}';
$define = '<span class="layui-badge">{$' . $var_name . '[$row.' . $field . ']|default=\'\'}</span>';
}
} elseif ($val['formType'] == 'checkbox') {
$templateFile = "view{$this->DS}module{$this->DS}readSelect";
if (isset($val['define']) && !empty($val['define'])) {
$var_name = $this->getFieldVarName($field);
$define = '{volist name="row.' . $field . '|explode=\',\'" id="item"><span class="layui-badge layui-badge-rim" style="margin-right: 5px;">{volist name="' . $var_name . '" id="vo"}{eq name="vo.value" value="$item"}{$vo.label}{/eq}{/volist}</span>{/volist}';
// 使用获取器列表,如 shop_type_list
$define = '{volist name="row.' . $field . '_list" id="item"}<span class="layui-badge layui-badge-rim" style="margin-right: 5px;">{$' . $var_name . '[$item]|default=\'\'}</span>{/volist}';
}
} elseif ($val['formType'] == 'select') {
$templateFile = "view{$this->DS}module{$this->DS}readSelect";
@@ -1889,7 +1898,7 @@ class BuildCurdServiceBase
$define = '{$row.' . $field . '}';
} elseif (isset($val['define']) && !empty($val['define'])) {
$var_name = $this->getFieldVarName($field);
$define = '{volist name="' . $var_name . '" id="vo"}{eq name="vo.value" value="$row.' . $field . '"}{$vo.label}{/eq}{/volist}';
$define = '{$' . $var_name . '[$row.' . $field . ']|default=\'\'}';
}
} elseif ($val['formType'] == 'relation') {
// 关联表字段暂时使用文本显示