Nav.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace app\admin\controller\base\nav;
  3. /**
  4. * @title : 栏目管理控制器
  5. * @desc :
  6. * @Author : Rock
  7. * @Date : 2021-10-15 17:13:35
  8. * @LastEditTime : 2023-05-18 10:14:52
  9. */
  10. use app\admin\controller\Base;
  11. use app\common\model\base\nav\Nav as navModel;
  12. use app\common\model\base\nav\NavGroup as navGroupModel;
  13. class Nav extends Base
  14. {
  15. protected $noNeedLogin = ['getList','getOptions'];
  16. protected $navModel = null;
  17. protected $navGroupModel = null;
  18. public function initialize()
  19. {
  20. parent::initialize();
  21. $this->navModel = new navModel;
  22. $this->navGroupModel = new navGroupModel;
  23. }
  24. /**
  25. * @title: 按分组查询列表
  26. * @desc:
  27. * @param {string} {class_code} {必填} {分组编码}
  28. * @return {*}
  29. * @Author: Rock
  30. * @Date: 2021-10-18 15:32:42
  31. * @LastEditTime: Do not edit
  32. */
  33. public function getList($class_code='',$pageNo=0,$pageSize=10)
  34. {
  35. $where = [];
  36. if(!empty($class_code)){
  37. $class_code = strtoupper($class_code);
  38. $group = $this->navGroupModel->where('code',$class_code)->find();
  39. if($group){
  40. $class_id = $group->class_id;
  41. $where[] = ['class_id','=',$class_id];
  42. }else{
  43. return res(1,"获取成功",[]);
  44. }
  45. }
  46. if($pageNo){
  47. $res = $this->navModel->where($where)->with(['group'])->order('class_id asc,sort asc')->paginate(['page'=>$pageNo,'list_rows'=>$pageSize]);
  48. $list = $res->items();
  49. $list = FieldConverList($list,['icon'=>'image']);
  50. $total = $res->total();
  51. return pageRes(1,"获取成功",$total,$list);
  52. }else{
  53. $list = $this->navModel->where($where)->with(['group'])->order('sort asc')->select();
  54. $list = FieldConverList($list,['icon'=>'image']);
  55. return res(1,"获取成功",$list);
  56. }
  57. }
  58. /**
  59. * @title: 添加/修改栏目
  60. * @desc:
  61. * @param {*}
  62. * @return {*}
  63. * @Author: Rock
  64. * @Date: 2021-10-18 15:34:35
  65. * @LastEditTime: Do not edit
  66. */
  67. public function doEdit()
  68. {
  69. $data = $this->request->param();
  70. if($data['type']==2 && empty($data['component'])){
  71. return res(2,"跳转页面不能为空");
  72. }elseif($data['type']==3 && (empty($data['component']) || empty($data['appid']))){
  73. return res(2,"跳转小程序的APPID和跳转页面不能为空");
  74. }
  75. $data['icon'] = str_replace(WEBURL,'',$data['icon']);
  76. $data['image'] = str_replace(WEBURL,'',$data['image']);
  77. $this->navModel->replace()->save($data);
  78. return res(1,"保存成功");
  79. }
  80. /**
  81. * @title: 删除栏目
  82. * @desc:
  83. * @param {int} {nav_id} {必填} {栏目ID}
  84. * @return {*}
  85. * @Author: Rock
  86. * @Date: 2021-10-18 15:34:49
  87. * @LastEditTime: Do not edit
  88. */
  89. public function doDelete($nav_id=0)
  90. {
  91. $info = $this->navModel->where('nav_id',$nav_id)->delete();
  92. return res(1,"删除成功");
  93. }
  94. /**
  95. * @title: 获取下拉选择项目
  96. * @desc:
  97. * @param {*}
  98. * @return {*}
  99. * @Author: Rock
  100. * @Date: 2021-10-18 16:52:44
  101. * @LastEditTime: Do not edit
  102. */
  103. public function getOptions()
  104. {
  105. $list = [
  106. 'statusList' => $this->navModel->statusList(),
  107. 'typeList' => $this->navModel->typeList(),
  108. ];
  109. return res(1,"获取成功",$list);
  110. }
  111. }