正在显示
7 个修改的文件
包含
135 行增加
和
0 行删除
| @@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
| 3 | namespace App\Http\Controllers\Bside; | 3 | namespace App\Http\Controllers\Bside; |
| 4 | 4 | ||
| 5 | use App\Enums\Common\Code; | 5 | use App\Enums\Common\Code; |
| 6 | +use App\Exceptions\BsideGlobalException; | ||
| 6 | use App\Helper\Common; | 7 | use App\Helper\Common; |
| 7 | use App\Http\Controllers\Controller; | 8 | use App\Http\Controllers\Controller; |
| 8 | use App\Http\Requests\Scene; | 9 | use App\Http\Requests\Scene; |
| @@ -144,6 +145,16 @@ class BaseController extends Controller | @@ -144,6 +145,16 @@ class BaseController extends Controller | ||
| 144 | return response()->json($response,200,$this->header); | 145 | return response()->json($response,200,$this->header); |
| 145 | } | 146 | } |
| 146 | 147 | ||
| 148 | + /** | ||
| 149 | + * @notes: 错误抛出 | ||
| 150 | + * @param string $code | ||
| 151 | + * @param string $message | ||
| 152 | + * @throws BsideGlobalException | ||
| 153 | + */ | ||
| 154 | + public function fail(string $message = "", string $code = Code::SYSTEM_ERROR) | ||
| 155 | + { | ||
| 156 | + throw new BsideGlobalException($code, $message); | ||
| 157 | + } | ||
| 147 | 158 | ||
| 148 | /** | 159 | /** |
| 149 | * @name :写入操作日志 | 160 | * @name :写入操作日志 |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Controllers\Bside\Nav; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +use App\Enums\Common\Code; | ||
| 7 | +use App\Http\Controllers\Bside\BaseController; | ||
| 8 | +use App\Models\Nav\BNavGroup; | ||
| 9 | +use Illuminate\Http\Request; | ||
| 10 | + | ||
| 11 | +/** | ||
| 12 | + * 导航组 | ||
| 13 | + * Class NavGroupController | ||
| 14 | + * @package App\Http\Controllers\Bside\Nav | ||
| 15 | + * @author zbj | ||
| 16 | + * @date 2023/10/9 | ||
| 17 | + */ | ||
| 18 | +class NavGroupController extends BaseController | ||
| 19 | +{ | ||
| 20 | + | ||
| 21 | + public function index(BNavGroup $nav_group){ | ||
| 22 | + $this->map['project_id'] = $this->user['project_id']; | ||
| 23 | + $lists = $nav_group->list($this->map, 'id', ['id', 'name'], 'asc'); | ||
| 24 | + $this->response('success',Code::SUCCESS,$lists); | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + public function save(Request $request){ | ||
| 28 | + $request->validate([ | ||
| 29 | + 'name'=> ['required','max:100'], | ||
| 30 | + ],[ | ||
| 31 | + 'name.required' => '菜单组名称不能为空', | ||
| 32 | + 'name.max' => '菜单组名称不能超过100个字符' | ||
| 33 | + ]); | ||
| 34 | + if(empty($this->param['id'])){ | ||
| 35 | + $nav_group = new BNavGroup(); | ||
| 36 | + }else{ | ||
| 37 | + if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){ | ||
| 38 | + $this->fail('系统内置菜单组不能修改'); | ||
| 39 | + } | ||
| 40 | + $nav_group = BNavGroup::find($this->param['id']); | ||
| 41 | + if(!$nav_group){ | ||
| 42 | + $this->fail('数据不存在或者已经删除'); | ||
| 43 | + } | ||
| 44 | + } | ||
| 45 | + $nav_group->project_id = $this->user['project_id']; | ||
| 46 | + $nav_group->name = $this->param['name']; | ||
| 47 | + $nav_group->save(); | ||
| 48 | + | ||
| 49 | + $this->response('success'); | ||
| 50 | + } | ||
| 51 | + | ||
| 52 | + public function delete(Request $request){ | ||
| 53 | + $request->validate([ | ||
| 54 | + 'id'=>'required', | ||
| 55 | + ],[ | ||
| 56 | + 'id.required' => 'ID不能为空', | ||
| 57 | + ]); | ||
| 58 | + if(in_array($this->param['id'], [BNavGroup::DEFAULT_HEADER_ID,BNavGroup::DEFAULT_FOOTER_ID])){ | ||
| 59 | + $this->fail('系统内置菜单组不能删除'); | ||
| 60 | + } | ||
| 61 | + $nav_group = BNavGroup::find($this->param['id']); | ||
| 62 | + if(!$nav_group){ | ||
| 63 | + $this->response('数据不存在或者已经删除'); | ||
| 64 | + } | ||
| 65 | + $nav_group->delete(); | ||
| 66 | + | ||
| 67 | + $this->response('success'); | ||
| 68 | + } | ||
| 69 | +} |
| @@ -149,6 +149,17 @@ class ProjectLogic extends BaseLogic | @@ -149,6 +149,17 @@ class ProjectLogic extends BaseLogic | ||
| 149 | $param['confirm_file'] = Arr::a2s($param['confirm_file']); | 149 | $param['confirm_file'] = Arr::a2s($param['confirm_file']); |
| 150 | } | 150 | } |
| 151 | unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],$param['online_check'],$param['project_after']); | 151 | unset($param['payment'],$param['deploy_build'],$param['deploy_optimize'],$param['online_check'],$param['project_after']); |
| 152 | + | ||
| 153 | + //文件上传默认值 | ||
| 154 | + if($param['is_upload_manage']){ | ||
| 155 | + $param['upload_config'] = [ | ||
| 156 | + 'upload_max_num' => $param['upload_config']['upload_max_num'] ?? 100, | ||
| 157 | + 'allow_file_type' => $param['upload_config']['allow_file_type'] ?? 'doc,docx,xls,xlsx,pdf,txt,csv,png,jpg,jpeg', | ||
| 158 | + 'upload_max_size' => $param['upload_config']['upload_max_size'] ?? 5, | ||
| 159 | + ]; | ||
| 160 | + } | ||
| 161 | + | ||
| 162 | + | ||
| 152 | $this->model->edit($param,['id'=>$param['id']]); | 163 | $this->model->edit($param,['id'=>$param['id']]); |
| 153 | Common::del_user_cache($this->model->getTable(),$param['id']); | 164 | Common::del_user_cache($this->model->getTable(),$param['id']); |
| 154 | return $this->success(); | 165 | return $this->success(); |
| @@ -32,6 +32,7 @@ class NavRequest extends FormRequest | @@ -32,6 +32,7 @@ class NavRequest extends FormRequest | ||
| 32 | public function rules() | 32 | public function rules() |
| 33 | { | 33 | { |
| 34 | $rule = [ | 34 | $rule = [ |
| 35 | + 'group_id' => ['required','integer'], | ||
| 35 | 'pid' => ['required','integer'], | 36 | 'pid' => ['required','integer'], |
| 36 | 'name' => ['required','max:100'], | 37 | 'name' => ['required','max:100'], |
| 37 | ]; | 38 | ]; |
| @@ -41,6 +42,8 @@ class NavRequest extends FormRequest | @@ -41,6 +42,8 @@ class NavRequest extends FormRequest | ||
| 41 | public function messages() | 42 | public function messages() |
| 42 | { | 43 | { |
| 43 | return [ | 44 | return [ |
| 45 | + 'group_id.required' => '未定义菜单组', | ||
| 46 | + 'group_id.integer' => '菜单组错误', | ||
| 44 | 'pid.required' => '上级选择错误', | 47 | 'pid.required' => '上级选择错误', |
| 45 | 'pid.gte' => '上级选择错误', | 48 | 'pid.gte' => '上级选择错误', |
| 46 | 'pid.integer' => '上级选择错误', | 49 | 'pid.integer' => '上级选择错误', |
app/Models/Nav/BNavGroup.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Models\Nav; | ||
| 4 | + | ||
| 5 | +use App\Models\Base; | ||
| 6 | +use Illuminate\Database\Eloquent\SoftDeletes; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * Class BNavGroup | ||
| 10 | + * @package App\Models\Nav | ||
| 11 | + * @author zbj | ||
| 12 | + * @date 2023/10/9 | ||
| 13 | + */ | ||
| 14 | +class BNavGroup extends Base | ||
| 15 | +{ | ||
| 16 | + | ||
| 17 | + protected $table = 'gl_web_nav_group'; | ||
| 18 | + //连接数据库 | ||
| 19 | + protected $connection = 'custom_mysql'; | ||
| 20 | + use SoftDeletes; | ||
| 21 | + | ||
| 22 | + public $hidden = ['deleted_at']; | ||
| 23 | + | ||
| 24 | + const DEFAULT_HEADER_ID = 1; | ||
| 25 | + const DEFAULT_FOOTER_ID = 2; | ||
| 26 | + | ||
| 27 | +} |
| @@ -268,6 +268,14 @@ class Project extends Base | @@ -268,6 +268,14 @@ class Project extends Base | ||
| 268 | return $value; | 268 | return $value; |
| 269 | } | 269 | } |
| 270 | 270 | ||
| 271 | + public function getUploadConfigAttribute($value) | ||
| 272 | + { | ||
| 273 | + if($value){ | ||
| 274 | + $value = Arr::s2a($value); | ||
| 275 | + } | ||
| 276 | + return $value; | ||
| 277 | + } | ||
| 278 | + | ||
| 271 | /** | 279 | /** |
| 272 | * 根据域名获取项目信息 | 280 | * 根据域名获取项目信息 |
| 273 | * @author zbj | 281 | * @author zbj |
| @@ -312,6 +312,12 @@ Route::middleware(['bloginauth'])->group(function () { | @@ -312,6 +312,12 @@ Route::middleware(['bloginauth'])->group(function () { | ||
| 312 | Route::any('/statusNum', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'statusNumber'])->name('product_statusNum'); | 312 | Route::any('/statusNum', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'statusNumber'])->name('product_statusNum'); |
| 313 | Route::any('/del', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'del'])->name('custom_del'); | 313 | Route::any('/del', [\App\Http\Controllers\Bside\Template\CustomTemplateController::class, 'del'])->name('custom_del'); |
| 314 | }); | 314 | }); |
| 315 | + // 菜单组 | ||
| 316 | + Route::prefix('nav_group')->group(function () { | ||
| 317 | + Route::any('/', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'index'])->name('nav_group'); | ||
| 318 | + Route::any('/save', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'save'])->name('nav_group_save'); | ||
| 319 | + Route::any('/delete', [\App\Http\Controllers\Bside\Nav\NavGroupController::class, 'delete'])->name('nav_group_delete'); | ||
| 320 | + }); | ||
| 315 | // 导航栏编辑 | 321 | // 导航栏编辑 |
| 316 | Route::prefix('nav')->group(function () { | 322 | Route::prefix('nav')->group(function () { |
| 317 | Route::get('/', [\App\Http\Controllers\Bside\Nav\NavController::class, 'index'])->name('nav'); | 323 | Route::get('/', [\App\Http\Controllers\Bside\Nav\NavController::class, 'index'])->name('nav'); |
-
请 注册 或 登录 后发表评论