增加物料分类的功能部分代码

This commit is contained in:
panx
2024-08-17 16:39:10 +08:00
parent 9bd8d44c1d
commit c26870b8c5
9 changed files with 591 additions and 3 deletions

View File

@@ -0,0 +1,186 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use app\admin\service\AdminRuleService;
use Webman\Http\Request;
use app\admin\model\PdmParttype as PdmParttypeModel;
use support\Response;
/**
* pdm_parttype
* 分类目录
* <!---->
* Class PdmParttype
* @package app\admin\controller
*/
class PdmParttype extends AdminController
{
/**
* PdmParttype模型对象
* @var \app\admin\model\PdmParttype
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmParttypeModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* 获取资源列表
* return Response
*/
public function index(): Response
{
if (request()->isAjax()) {
list($count, $list) = PdmParttype::dataList(request()->all());
$rules = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$rules, $count);
}
return view('/pdm_parttype/index');
}
/**
* 获取资源列表
* @param array $params
* @return array
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public static function dataList(array $params): array
{
$where = array();
if (!empty($params['parttypetitle'])) {
$where[] = ['parttypetitle','like','%'.$params['parttypetitle'].'%'];
}
if (!empty($params['parttypevalue'])) {
$where[] = ['parttypevalue','like','%'.$params['parttypevalue'].'%'];
}
$model = new PdmParttypeModel();
$count = $model->where($where)->count();
$list = $model->where($where)->order('sort asc')->select()->toArray();
foreach ($list as $key => $value) {
$list[$key]['parttypetitle'] = __($value['parttypetitle']);
}
// $users = array();
$users = $model->usernames();
// throw new \Exception(json_encode($users));
foreach ($list as $key => $value) {
foreach ($users as $keyuser => $valueuser) {
// if ($users[$keyuser]['id'] == $list[$key]['id']){
// // $list[$key]['createrid'] = __($users[$keyuser]['nickname']);
// $list[$key]['createrid'] = __($users[$keyuser]['name']);
// break;
// }
if ($value['createrid'] == $valueuser['id']) {
// $list[$key]['createrid'] = __($valueuser['name']);
$list[$key]['createrid'] = __($valueuser['nickname']);
break;
}else{
$list[$key]['createrid'] =$list[$key]['createrid'].'|'. __('未知用户');
}
}
}
return [$count, $list];
}
/**
* 添加节点数据
* @return Response
*/
public function add(): Response
{
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$post['createrid'] = $userid ;
// if(empty($userid)){
// $post['createrid'] = 'empty';
// }else{
// $post['createrid'] = 'noneempty' ;
// }
if ($this->model->create($post)) {
return $this->success('添加分类成功!');
}
}
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
$data['auth'] = 1;
$data['type'] = 1;
list($count, $list) = PdmParttype::dataList(request()->all());
return view('/pdm_parttype/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 编辑节点数据
* @return Response
* @throws DbException
* @throws DataNotFoundException
* @throws ModelNotFoundException
*/
public function edit(): Response
{
$id = input('id', 0);
$data = $this->model->find($id);
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.edit')->check($post);
if ($this->model->update($post)) {
return $this->success('更新分类成功!');
}
}
list($count, $list) = PdmParttype::dataList(request()->all());
return view('/pdm_parttype/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 删除节点数据
* @return Response
* @throws DbException
*/
public function del(): Response
{
$id = input('id');
if (!empty($id)) {
// 查询子节点
if ($this->model->where('pid',$id)->count()) {
return $this->error('当前菜单存在子菜单!');
}
// 删除单个
if ($this->model::destroy($id)) {
return $this->success('删除菜单成功!');
}
}
return $this->error('删除失败,请检查您的参数!');
}
}