diff --git a/app/admin/controller/test/Goods.php b/app/admin/controller/test/Goods.php index 9d9a9eb..3601754 100644 --- a/app/admin/controller/test/Goods.php +++ b/app/admin/controller/test/Goods.php @@ -27,29 +27,13 @@ class Goods extends AdminController $this->model = new \app\admin\model\TestGoods(); - $select_list_status_list = []; - foreach ($this->model::SELECT_LIST_STATUS as $key => $value) { - $select_list_status_list[] = ['value' => $key, 'label' => $value]; - } - $this->assign('select_list_status', $select_list_status_list, true); + $this->assign('select_list_status', $this->model::SELECT_LIST_STATUS, true); - $select_list_time_status_list = []; - foreach ($this->model::SELECT_LIST_TIME_STATUS as $key => $value) { - $select_list_time_status_list[] = ['value' => $key, 'label' => $value]; - } - $this->assign('select_list_time_status', $select_list_time_status_list, true); + $this->assign('select_list_time_status', $this->model::SELECT_LIST_TIME_STATUS, true); - $select_list_is_recommend_list = []; - foreach ($this->model::SELECT_LIST_IS_RECOMMEND as $key => $value) { - $select_list_is_recommend_list[] = ['value' => $key, 'label' => $value]; - } - $this->assign('select_list_is_recommend', $select_list_is_recommend_list, true); + $this->assign('select_list_is_recommend', $this->model::SELECT_LIST_IS_RECOMMEND, true); - $select_list_shop_type_list = []; - foreach ($this->model::SELECT_LIST_SHOP_TYPE as $key => $value) { - $select_list_shop_type_list[] = ['value' => $key, 'label' => $value]; - } - $this->assign('select_list_shop_type', $select_list_shop_type_list, true); + $this->assign('select_list_shop_type', $this->model::SELECT_LIST_SHOP_TYPE, true); } diff --git a/app/admin/model/TestGoods.php b/app/admin/model/TestGoods.php index b7d911c..49b5126 100644 --- a/app/admin/model/TestGoods.php +++ b/app/admin/model/TestGoods.php @@ -73,6 +73,18 @@ class TestGoods extends TimeModel } return explode('|', $data['verfiy_file']); } + /** + * 商品类型获取器 + * @param $value + * @return array + */ + public function getShopTypeListAttr($value, $data) + { + if (empty($data['shop_type'])) { + return []; + } + return explode(',', $data['shop_type']); + } public function mallCate() diff --git a/app/admin/view/test/goods/read.html b/app/admin/view/test/goods/read.html index d0513e9..2d6a677 100644 --- a/app/admin/view/test/goods/read.html +++ b/app/admin/view/test/goods/read.html @@ -8,14 +8,13 @@
ID: {$row.id}
- - - + +
-
+
@@ -154,19 +153,19 @@
秒杀状态
- {volist name="select_list_time_status" id="vo"}{eq name="vo.value" value="$row.time_status"}{$vo.label}{/eq}{/volist} + {$select_list_time_status[$row.time_status]|default=''}
是否推荐
- {volist name="select_list_is_recommend" id="vo"}{eq name="vo.value" value="$row.is_recommend"}{volist name="select_list_is_recommend" id="item"}{eq name="item.value" value="$row.is_recommend"}{$item.label}{/eq}{/volist}{/eq}{/volist} + {$select_list_is_recommend[$row.is_recommend]|default=''}
商品类型
- {volist name="row.shop_type|explode=','" id="item">{volist name="select_list_shop_type" id="vo"}{eq name="vo.value" value="$item"}{$vo.label}{/eq}{/volist}{/volist} + {volist name="row.shop_type_list" id="item"}{$select_list_shop_type[$item]|default=''}{/volist}
@@ -273,7 +272,7 @@
状态
- {volist name="select_list_status" id="vo"}{eq name="vo.value" value="$row.status"}{volist name="select_list_status" id="item"}{eq name="item.value" value="$row.status"}{$item.label}{/eq}{/volist}{/eq}{/volist} + {$select_list_status[$row.status]|default=''}
diff --git a/extend/base/admin/service/curd/BuildCurdServiceBase.php b/extend/base/admin/service/curd/BuildCurdServiceBase.php index 7c1a79c..d63eea8 100644 --- a/extend/base/admin/service/curd/BuildCurdServiceBase.php +++ b/extend/base/admin/service/curd/BuildCurdServiceBase.php @@ -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 . '"}{volist name="' . $var_name . '" id="item"}{eq name="item.value" value="$row.' . $field . '"}{$item.label}{/eq}{/volist}{/eq}{/volist}'; + $define = '{$' . $var_name . '[$row.' . $field . ']|default=\'\'}'; } } 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">{volist name="' . $var_name . '" id="vo"}{eq name="vo.value" value="$item"}{$vo.label}{/eq}{/volist}{/volist}'; + // 使用获取器列表,如 shop_type_list + $define = '{volist name="row.' . $field . '_list" id="item"}{$' . $var_name . '[$item]|default=\'\'}{/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') { // 关联表字段暂时使用文本显示 diff --git a/extend/base/admin/service/curd/templates/controller/select.code b/extend/base/admin/service/curd/templates/controller/select.code index 1387626..ac7ddda 100644 --- a/extend/base/admin/service/curd/templates/controller/select.code +++ b/extend/base/admin/service/curd/templates/controller/select.code @@ -1,6 +1,2 @@ - ${{var_name}}_list = []; - foreach ($this->model::{{name}} as $key => $value) { - ${{var_name}}_list[] = ['value' => $key, 'label' => $value]; - } - $this->assign('{{var_name}}', ${{var_name}}_list, true); + $this->assign('{{var_name}}', $this->model::{{name}}, true); diff --git a/extend/base/admin/service/curd/templates/view/read.code b/extend/base/admin/service/curd/templates/view/read.code index 1ce63aa..18e0e62 100644 --- a/extend/base/admin/service/curd/templates/view/read.code +++ b/extend/base/admin/service/curd/templates/view/read.code @@ -8,14 +8,13 @@
ID: {$row.id}
- - - + +
-
+
diff --git a/public/static/admin/css/public.css b/public/static/admin/css/public.css index 1aad26a..33a23ae 100644 --- a/public/static/admin/css/public.css +++ b/public/static/admin/css/public.css @@ -587,8 +587,7 @@ table样式 font-size: 16px; font-weight: bold; color: #333; - margin-bottom: 15px; - padding-bottom: 10px; + padding: 5px; border-bottom: 1px solid #e8e8e8; } @@ -599,8 +598,7 @@ table样式 /* 字段项样式 */ .detail-field-item { - margin-bottom: 15px; - padding-bottom: 15px; + padding: 5px; border-bottom: 1px solid #f0f0f0; overflow: hidden; } diff --git a/public/static/admin/css/public.scss b/public/static/admin/css/public.scss index 401dba3..bfa8629 100644 --- a/public/static/admin/css/public.scss +++ b/public/static/admin/css/public.scss @@ -593,8 +593,7 @@ table样式 font-size: 16px; font-weight: bold; color: #333; - margin-bottom: 15px; - padding-bottom: 10px; + padding: 5px; border-bottom: 1px solid #e8e8e8; } @@ -605,8 +604,7 @@ table样式 /* 字段项样式 */ .detail-field-item { - margin-bottom: 15px; - padding-bottom: 15px; + padding: 5px; border-bottom: 1px solid #f0f0f0; overflow: hidden; }