|
@@ -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(' ', $level * 2). ' <i class="fa fa-angle-right"></i> ' . $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;
|