Browse Source

Merge remote-tracking branch 'origin/master'

moshaorui 5 months ago
parent
commit
59321ab7e0

+ 12 - 5
app/Distributor/Controllers/DistProductCategoryController.php

@@ -73,11 +73,11 @@ class DistProductCategoryController extends AdminController
                 return html_entity_decode($name); // 或者直接返回 $name,如果你确定不需要转义
             });
             $grid->column('parent_id');
-            $grid->column('distProductParameter.name',admin_trans_label('parameter_name'));
-            $grid->column('order')->orderable();
+            //$grid->column('distProductParameter.name',admin_trans_label('parameter_name'));
+            $grid->column('order');//->orderable();
             $grid->column('enabled')->switch();
             $grid->column('created_at');
-            $grid->column('updated_at')->sortable();
+            $grid->column('updated_at');//->sortable();
 //            $grid->filter(function (Grid\Filter $filter) {
 //                $filter->like('name');
 //            });
@@ -100,13 +100,20 @@ class DistProductCategoryController extends AdminController
         return Form::make(new DistProductCategory(), function (Form $form) {
             $form->display('id', 'ID');
             $form->select('parent_id', admin_trans_field('parent'))
-                ->options(DistProductCategory::selectOptions())
+                ->options(DistProductCategory::selectMainOptions(function ($query) {
+                    // 在这里定义查询条件
+                    $query->where('parent_id', 0);
+                }))
                 ->saving(function ($v) {
                     return (int) $v;
                 });
             $form->text('name')->required();
-          //  $form->select('parameter_id', 'parameter')->options(DistProductParameter::selectOptions())->required();// DIST不需要绑定 parameter
+            $form->text('order')
+                ->default(0)
+                ->rules('numeric')
+                ->help(admin_trans_label('order_tips')); // 添加备注
             $form->switch('enabled')->default(1);
+          //  $form->select('parameter_id', 'parameter')->options(DistProductParameter::selectOptions())->required();// DIST不需要绑定 parameter
           //  $form->display('created_at');
           //  $form->display('updated_at');
         });

+ 36 - 30
app/Distributor/Repositories/DistProductCategory.php

@@ -18,40 +18,39 @@ class DistProductCategory extends EloquentRepository
 
 
     // 调用模型方法
-    public static function selectOptions(\Closure $closure = null)
+    public static function selectMainOptions(\Closure $closure = null)
     {
-        $selectOptions = Model::class::selectOptions($closure);
 
-// 用于存储结果
-        $headings = [];
+        $query = Model::query();
 
-// 遍历数组,提取以 ├─ 开头的部分
-        foreach ($selectOptions as $key => $value) {
-            // 检查字符串是否以 ├─ 开头
-            if (strpos($value, '├─') === 0 || strpos($value, '└─') === 0) {
+        if ($closure) {
+            $closure($query);
+        }
 
-                // 保存结果
-                $headings[$key] = $value;
-            }
+        // 确保查询构造器不为空
+        if (!$query) {
+            return [];
         }
 
-        return $headings;
-//        $query = Model::query();
-//
-//        if ($closure) {
-//            $closure($query);
-//        }
-//
-//        // 确保查询构造器不为空
-//        if (!$query) {
-//            return [];
-//        }
-//
-//        // 返回键值对数组
-//        return $query->orderBy('name')->pluck('name', 'id')->all();
+        // 返回键值对数组,并按 'name' 和 'order' 字段排序
+        $results = $query->orderBy('name')->orderBy('order')->pluck('name', 'id');
+
+        // 在每个 name 前面加上 '├─'
+        $results = $results->map(function ($name) {
+            return '├─' . $name;
+        });
+
+        return $results->all();
 
     }
 
+    // 调用模型方法
+    public static function selectOptions(\Closure $closure = null)
+    {
+        $selectOptions = Model::class::selectOptions($closure);
+        return $selectOptions;
+    }
+
 
     public static function getParameter($categoryId)
     {
@@ -63,6 +62,10 @@ class DistProductCategory extends EloquentRepository
         }
     }
 
+    /**
+     * @param Grid\Model|\Dcat\Admin\Grid\Model $model
+     * @return array
+     */
     public function get(Grid\Model|\Dcat\Admin\Grid\Model $model)
     {
         $obj = new Model();
@@ -94,15 +97,17 @@ class DistProductCategory extends EloquentRepository
            }
         }
 
-
-
         return $model->makePaginator(
             1, // 传入总记录数
             $data // 传入数据二维数组
         );
     }
 
-
+    /**
+     * @param array $nodes
+     * @param $level 默认层级
+     * @return array
+     */
     function flattenTree(array $nodes, $level = 1)
     {
         $flat = [];
@@ -116,14 +121,15 @@ class DistProductCategory extends EloquentRepository
             // 根据层级在 name 字段前添加空格
             $nodeCopy['name'] = str_repeat('&nbsp; ', $level * 2). ' <i class="fa fa-angle-right"></i>&nbsp; ' . $nodeCopy['name'];
 
-
             // 将去除 'children' 属性的节点添加到平坦数组中
             $flat[] = $nodeCopy;
 
             // 如果存在子节点,则递归处理子节点
-            if (isset($node['children']) && is_array($node['children'])) {
+            if (isset($node['children']) && is_array($node['children']))
+            {
                 $flat = array_merge($flat, $this->flattenTree($node['children'], $level + 1));
             }
+
         }
 
         return $flat;

+ 3 - 0
lang/en/admin.php

@@ -228,4 +228,7 @@ return [
    'language' => 'language',
     'products_list'=>'Products List',
     'proudct_category'=>'Product Category',
+    'product_parameter'=>'Product Parameter',
+    'video_category'=>'Video Category',
+    'video_list'=>'Video List',
 ];

+ 2 - 0
lang/en/global.php

@@ -4,6 +4,8 @@
 return [
     'labels' => [
         'category_name' => 'Category Name',
+        'parameter_name'=> 'Parameter Name',
+        'order_tips' => 'Enter a number. The higher the number, the higher the ranking.',
     ],
     'options' => [
         //

+ 3 - 0
lang/zh_CN/admin.php

@@ -230,4 +230,7 @@ return [
     'language'          => '语言',
     'products_list'=>'产品列表',
     'proudct_category'=>'产品分类',
+    'product_parameter'=>'产品参数',
+    'video_category'=>'视频分类',
+    'video_list'=>'视频列表'
 ];

+ 8 - 2
lang/zh_CN/global.php

@@ -26,7 +26,7 @@ return [
         'title'                 => '产品标题',
         'keywords'              => '关健字',
         'description'           => '描述',
-        'sku'                   => 'sku',
+        'sku'                   => '商品sku',
         'category_id'           => '分类ID',
         'issuance_date'         => '发报日期',
         'enabled'               => '启用-1',
@@ -36,7 +36,10 @@ return [
         'parent_id'             => '上级ID',
         'remark'                => '备注',
         'parameter_id'          => '参数',
-        'products_list'         => '产品列表'
+        'products_list'         => '产品列表',
+        'images'                => '图片',
+        'parent'                => '上级',
+
     ],
     'labels' => [
         'list'     => '列表',
@@ -45,6 +48,9 @@ return [
         'create'   => '创建',
         'root'     => '顶级',
         'scaffold' => '代码生成器',
+        'category_name'    => '分类名称',
+        'parameter_name'        => '参数名称',
+        'order_tips'       => '请输入数字,数字越大前台展示排名越靠前',
     ],
     'options' => [
         //