Improve category selection in goods management - Simplify HTML structure and recommend a concise coding method for

category selection in both add and edit pages of the mall goods module.
- Modify the corresponding JS file to support the new category display format.
- Refactor controller code to assign categories using a more efficient method.
- Ensure consistent category data processing across all related views.

Note: This change updates the way categories are presented to the admin user,
enhancing usability and maintainability of the goods management system.
This commit is contained in:
wolfcode
2024-06-20 10:23:27 +08:00
parent 88035326a4
commit 5855a97255
6 changed files with 37 additions and 4 deletions

View File

@@ -2,6 +2,7 @@
namespace app\admin\controller\mall;
use app\admin\model\MallCate;
use app\admin\model\MallGoods;
use app\common\controller\AdminController;
use app\admin\service\annotation\ControllerAnnotation;
@@ -25,6 +26,7 @@ class Goods extends AdminController
{
parent::__construct($app);
$this->model = new MallGoods();
$this->assign('cate', (new MallCate())->column('title', 'id'));
}
/**

View File

@@ -1,5 +1,7 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<!-- 可以使用该方式 推荐写法-->
<div class="layui-form-item">
<label class="layui-form-label">商品分类</label>
<div class="layui-input-block">
@@ -8,6 +10,19 @@
</div>
</div>
<!--也可以使用该方式-->
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">商品分类</label>-->
<!-- <div class="layui-input-block">-->
<!-- <select name="cate_id" lay-verify="required">-->
<!-- <option value="">请选择</option>-->
<!-- {volist name='cate' id='vo'}-->
<!-- <option value="{$key}">{$vo}</option>-->
<!-- {/volist}-->
<!-- </select>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">商品标题</label>
<div class="layui-input-block">

View File

@@ -1,6 +1,7 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<!-- 可以使用该方式 推荐写法-->
<div class="layui-form-item">
<label class="layui-form-label">商品分类</label>
<div class="layui-input-block">
@@ -9,6 +10,19 @@
</div>
</div>
<!--也可以使用该方式-->
<!-- <div class="layui-form-item">-->
<!-- <label class="layui-form-label">商品分类</label>-->
<!-- <div class="layui-input-block">-->
<!-- <select name="cate_id" lay-verify="required">-->
<!-- <option value="">请选择</option>-->
<!-- {volist name='cate' id='vo'}-->
<!-- <option value="{$key}" {if $key==$row.cate_id}selected{/if}>{$vo}</option>-->
<!-- {/volist}-->
<!-- </select>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-form-item">
<label class="layui-form-label">商品标题</label>
<div class="layui-input-block">

View File

@@ -8,4 +8,7 @@
lay-filter="currentTable">
</table>
</div>
</div>
</div>
<script>
let cateSelects=JSON.parse('{$cate|json_encode=256|raw}')
</script>

View File

@@ -9,6 +9,5 @@
</div>
</div>
<script>
let upload_types = '{$upload_types|json_encode|raw}'
upload_types = JSON.parse(upload_types)
let upload_types = JSON.parse('{$upload_types|json_encode=256|raw}')
</script>

View File

@@ -31,7 +31,7 @@ define(["jquery", "easy-admin"], function ($, ea) {
{type: "checkbox"},
{field: 'id', width: 80, title: 'ID', searchOp: '='},
{field: 'sort', width: 80, title: '排序', edit: 'text'},
{field: 'cate.title', minWidth: 80, title: '商品分类'},
{field: 'cate_id', minWidth: 80, title: '商品分类', search: 'select', selectList: cateSelects},
{field: 'title', minWidth: 80, title: '商品名称'},
{field: 'logo', minWidth: 80, title: '分类图片', search: false, templet: ea.table.image},
{field: 'market_price', width: 100, title: '市场价', templet: ea.table.price},