You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
3.4 KiB
114 lines
3.4 KiB
<?php
|
|
/**
|
|
* +----------------------------------------------------------------------
|
|
* | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
|
|
* +----------------------------------------------------------------------
|
|
* | Copyright (c) 2016~2022 https://www.crmeb.com All rights reserved.
|
|
* +----------------------------------------------------------------------
|
|
* | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
|
|
* +----------------------------------------------------------------------
|
|
* | Author: CRMEB Team <admin@crmeb.com>
|
|
* +----------------------------------------------------------------------
|
|
*/
|
|
|
|
namespace app\services\system;
|
|
|
|
|
|
use app\dao\system\SystemRouteCateDao;
|
|
use app\services\BaseServices;
|
|
use crmeb\services\FormBuilder;
|
|
|
|
/**
|
|
* Class SystemRouteCateServices
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/4/6
|
|
* @package app\services\system
|
|
*/
|
|
class SystemRouteCateServices extends BaseServices
|
|
{
|
|
|
|
/**
|
|
* SystemRouteCateServices constructor.
|
|
* @param SystemRouteCateDao $dao
|
|
*/
|
|
public function __construct(SystemRouteCateDao $dao)
|
|
{
|
|
$this->dao = $dao;
|
|
}
|
|
|
|
public function getPathValue(array $path)
|
|
{
|
|
$pathAttr = explode('/', $path);
|
|
$pathData = [];
|
|
foreach ($pathAttr as $item) {
|
|
if (!$item) {
|
|
$pathData[] = $item;
|
|
}
|
|
}
|
|
return $pathAttr;
|
|
}
|
|
|
|
/**
|
|
* @param array $path
|
|
* @param int $id
|
|
* @return string
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/4/6
|
|
*/
|
|
public function setPathValue(array $path, int $id)
|
|
{
|
|
return ($path ? '/' . implode('/', $path) : '') . '/' . $id . '/';
|
|
}
|
|
|
|
/**
|
|
* @param string $appName
|
|
* @return array
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/4/6
|
|
*/
|
|
public function getAllList(string $appName = 'outapi', string $field = '*', string $order = '')
|
|
{
|
|
$list = $this->dao->selectList(['app_name' => $appName], $field, 0, 0, $order)->toArray();
|
|
return get_tree_children($list);
|
|
}
|
|
|
|
/**
|
|
* @param int $id
|
|
* @param string $appName
|
|
* @return array
|
|
* @author 等风来
|
|
* @email 136327134@qq.com
|
|
* @date 2023/4/6
|
|
*/
|
|
public function getFrom(int $id = 0, string $appName = 'outapi')
|
|
{
|
|
$url = '/system/route_cate';
|
|
$cateInfo = [];
|
|
$path = [];
|
|
if ($id) {
|
|
$cateInfo = $this->dao->get($id);
|
|
$cateInfo = $cateInfo ? $cateInfo->toArray() : [];
|
|
$url .= '/' . $id;
|
|
$path = explode('/', $cateInfo['path']);
|
|
$newPath = [];
|
|
foreach ($path as $item) {
|
|
if ($item) {
|
|
$newPath[] = $item;
|
|
}
|
|
}
|
|
$path = $newPath;
|
|
}
|
|
$options = $this->dao->selectList(['app_name' => $appName], 'name as label,id as value,id,pid')->toArray();
|
|
$rule = [
|
|
// FormBuilder::cascader('path', '上级分类', $path)->data(get_tree_children($options)),
|
|
FormBuilder::input('name', '分类名称', $cateInfo['name'] ?? '')->required(),
|
|
FormBuilder::number('sort', '排序', (int)($cateInfo['sort'] ?? 0)),
|
|
FormBuilder::hidden('app_name', $appName)
|
|
];
|
|
|
|
return create_form($id ? '修改分类' : '添加分类', $rule, $url, $id ? 'PUT' : 'POST');
|
|
}
|
|
}
|
|
|