SystemConfigTab.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. namespace app\admin\controller\setting;
  3. use think\facade\Route as Url;
  4. use crmeb\services\FormBuilder as Form;
  5. use think\Request;
  6. use crmeb\services\UtilService as Util;
  7. use crmeb\services\JsonService as Json;
  8. use app\admin\controller\AuthController;
  9. use app\admin\model\system\SystemConfigTab as ConfigTabModel;
  10. use app\admin\model\system\SystemConfig as ConfigModel;
  11. /**
  12. * 配置分类控制器
  13. * Class SystemConfigTab
  14. * @package app\admin\controller\system
  15. */
  16. class SystemConfigTab extends AuthController
  17. {
  18. /** 定义配置分类,需要添加分类可以手动添加
  19. * @return array
  20. */
  21. public function getConfigType(){
  22. return [
  23. ['value'=>0,'label'=>'系统']
  24. ,['value'=>1,'label'=>'应用']
  25. ,['value'=>2,'label'=>'支付']
  26. ,['value'=>3,'label'=>'其它']
  27. ];
  28. // return [
  29. // ['value'=>0,'label'=>'系统']
  30. // ,['value'=>1,'label'=>'公众号']
  31. // ,['value'=>2,'label'=>'小程序']
  32. // ,['value'=>3,'label'=>'其它']
  33. // ];
  34. }
  35. /**
  36. * 子子段
  37. * @return mixed|\think\response\Json
  38. */
  39. public function sonconfigtab(){
  40. $tab_id = input('tab_id');
  41. if(!$tab_id) return Json::fail('参数错误');
  42. $this->assign('tab_id',$tab_id);
  43. $list = ConfigModel::getAll($tab_id,2);
  44. foreach ($list as $k=>$v){
  45. $list[$k]['value'] = json_decode($v['value'],true)?:'';
  46. if($v['type'] == 'radio' || $v['type'] == 'checkbox'){
  47. $list[$k]['value'] = ConfigTabModel::getRadioOrCheckboxValueInfo($v['menu_name'],$v['value']);
  48. }
  49. if($v['type'] == 'upload' && !empty($v['value'])){
  50. if($v['upload_type'] == 1 || $v['upload_type'] == 3) $list[$k]['value'] = explode(',',$v['value']);
  51. }
  52. }
  53. $this->assign('list',$list);
  54. return $this->fetch();
  55. }
  56. /**
  57. * 基础配置
  58. * @return mixed
  59. */
  60. public function index(){
  61. $where = Util::getMore([
  62. ['status',''],
  63. ['title',''],
  64. ],$this->request);
  65. $this->assign('where',$where);
  66. $this->assign(ConfigTabModel::getSystemConfigTabPage($where));
  67. return $this->fetch();
  68. }
  69. /**
  70. * 添加配置分类
  71. * @return mixed
  72. */
  73. public function create(){
  74. $form = Form::create(Url::buildUrl('save'),[
  75. Form::input('title','分类昵称'),
  76. Form::input('eng_title','分类字段'),
  77. Form::frameInputOne('icon','图标',Url::buildUrl('admin/widget.widgets/icon',array('fodder'=>'icon')))->icon('ionic')->height('500px'),
  78. Form::radio('type','类型',0)->options(self::getConfigType()),
  79. Form::radio('status','状态',1)->options([['value'=>1,'label'=>'显示'],['value'=>2,'label'=>'隐藏']])
  80. ]);
  81. $form->setMethod('post')->setTitle('添加分类配置');
  82. $this->assign(compact('form'));
  83. return $this->fetch('public/form-builder');
  84. }
  85. /**
  86. * 保存分类名称
  87. */
  88. public function save(){
  89. $data = Util::postMore([
  90. 'eng_title',
  91. 'status',
  92. 'title',
  93. 'icon',
  94. 'type']);
  95. if(!$data['title']) return Json::fail('请输入按钮名称');
  96. ConfigTabModel::create($data);
  97. return Json::successful('添加菜单成功!');
  98. }
  99. /**
  100. * 修改分类
  101. * @param $id
  102. * @return string|void
  103. * @throws \FormBuilder\exception\FormBuilderException
  104. */
  105. public function edit($id){
  106. $menu = ConfigTabModel::get($id)->getData();
  107. if(!$menu) return Json::fail('数据不存在!');
  108. $form = Form::create(Url::buildUrl('update',array('id'=>$id)),[
  109. Form::input('title','分类昵称',$menu['title']),
  110. Form::input('eng_title','分类字段',$menu['eng_title']),
  111. Form::frameInputOne('icon','图标',Url::buildUrl('admin/widget.widgets/icon',array('fodder'=>'icon')),$menu['icon'])->icon('ionic')->height('500px'),
  112. Form::radio('type','类型',$menu['type'])->options(self::getConfigType()),
  113. Form::radio('status','状态',$menu['status'])->options([['value'=>1,'label'=>'显示'],['value'=>2,'label'=>'隐藏']])
  114. ]);
  115. $form->setMethod('post')->setTitle('添加分类配置');
  116. $this->assign(compact('form'));
  117. return $this->fetch('public/form-builder');
  118. }
  119. /**
  120. * @param $id
  121. */
  122. public function update($id)
  123. {
  124. $data = Util::postMore(['title','status','eng_title','icon','type']);
  125. if(!$data['title']) return Json::fail('请输入分类昵称');
  126. if(!$data['eng_title']) return Json::fail('请输入分类字段');
  127. if(!ConfigTabModel::get($id)) return Json::fail('编辑的记录不存在!');
  128. ConfigTabModel::edit($data,$id);
  129. return Json::successful('修改成功!');
  130. }
  131. /**
  132. * @param $id
  133. */
  134. public function delete($id){
  135. if(!ConfigTabModel::del($id))
  136. return Json::fail(ConfigTabModel::getErrorInfo('删除失败,请稍候再试!'));
  137. else
  138. return Json::successful('删除成功!');
  139. }
  140. }