Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6 into develop
正在显示
20 个修改的文件
包含
362 行增加
和
134 行删除
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace App\Http\Controllers\Aside\Template; | ||
| 4 | - | ||
| 5 | -use App\Http\Controllers\Aside\BaseController; | ||
| 6 | - | ||
| 7 | -/** | ||
| 8 | - * 模板header footer | ||
| 9 | - * @author:dc | ||
| 10 | - * @time 2023/4/26 11:10 | ||
| 11 | - * Class HeaderFooterController | ||
| 12 | - * @package App\Http\Controllers\Aside\Template | ||
| 13 | - */ | ||
| 14 | -class HeaderFooterController extends BaseController | ||
| 15 | -{ | ||
| 16 | - | ||
| 17 | -} |
| @@ -3,9 +3,12 @@ | @@ -3,9 +3,12 @@ | ||
| 3 | namespace App\Http\Controllers\Aside; | 3 | namespace App\Http\Controllers\Aside; |
| 4 | 4 | ||
| 5 | use App\Enums\Common\Code; | 5 | use App\Enums\Common\Code; |
| 6 | +use App\Http\Logic\Aside\Template\TemplateChunkLogic; | ||
| 6 | use App\Http\Logic\Aside\Template\TemplateLogic; | 7 | use App\Http\Logic\Aside\Template\TemplateLogic; |
| 8 | +use App\Http\Requests\Aside\Template\TemplateChunkRequest; | ||
| 7 | use App\Http\Requests\Aside\Template\TemplateRequest; | 9 | use App\Http\Requests\Aside\Template\TemplateRequest; |
| 8 | use App\Models\Template\ATemplate; | 10 | use App\Models\Template\ATemplate; |
| 11 | +use App\Models\Template\ATemplateChunk; | ||
| 9 | use App\Models\Template\ATemplateHtml; | 12 | use App\Models\Template\ATemplateHtml; |
| 10 | use Illuminate\Validation\Rule; | 13 | use Illuminate\Validation\Rule; |
| 11 | 14 | ||
| @@ -195,4 +198,48 @@ class TemplateController extends BaseController | @@ -195,4 +198,48 @@ class TemplateController extends BaseController | ||
| 195 | 198 | ||
| 196 | 199 | ||
| 197 | 200 | ||
| 201 | + | ||
| 202 | + | ||
| 203 | + /** | ||
| 204 | + * 自定义界面,块 | ||
| 205 | + * @author:dc | ||
| 206 | + * @time 2023/5/29 10:27 | ||
| 207 | + */ | ||
| 208 | + public function chunk_lists(){ | ||
| 209 | + $lists = TemplateChunkLogic::instance()->getList()->toArray(); | ||
| 210 | + return $this->success($lists); | ||
| 211 | + } | ||
| 212 | + | ||
| 213 | + | ||
| 214 | + /** | ||
| 215 | + * 自定义界面,块 保存 | ||
| 216 | + * @author:dc | ||
| 217 | + * @time 2023/5/29 10:37 | ||
| 218 | + */ | ||
| 219 | + public function chunk_save(TemplateChunkRequest $request){ | ||
| 220 | + $data = TemplateChunkLogic::instance()->save($request->validated()); | ||
| 221 | + return $this->success(TemplateChunkLogic::instance()->getInfo($data['id'])); | ||
| 222 | + } | ||
| 223 | + | ||
| 224 | + | ||
| 225 | + /** | ||
| 226 | + * 自定义界面,块 删除 | ||
| 227 | + * @author:dc | ||
| 228 | + * @time 2023/5/29 10:38 | ||
| 229 | + */ | ||
| 230 | + public function chunk_delete($chunk_id){ | ||
| 231 | + | ||
| 232 | + TemplateChunkLogic::instance()->delete($chunk_id); | ||
| 233 | + | ||
| 234 | + return $this->response('删除成功'); | ||
| 235 | + | ||
| 236 | + } | ||
| 237 | + | ||
| 238 | + | ||
| 239 | + | ||
| 240 | + | ||
| 241 | + | ||
| 242 | + | ||
| 243 | + | ||
| 244 | + | ||
| 198 | } | 245 | } |
| @@ -39,4 +39,31 @@ class FileController extends BaseController | @@ -39,4 +39,31 @@ class FileController extends BaseController | ||
| 39 | $path = Upload::url2path($this->param['url'] ?? ''); | 39 | $path = Upload::url2path($this->param['url'] ?? ''); |
| 40 | return Storage::disk('upload')->download($path); | 40 | return Storage::disk('upload')->download($path); |
| 41 | } | 41 | } |
| 42 | + | ||
| 43 | + | ||
| 44 | + /** | ||
| 45 | + * 文件列表 | ||
| 46 | + * @author:dc | ||
| 47 | + * @time 2023/5/29 11:42 | ||
| 48 | + */ | ||
| 49 | + public function lists(){ | ||
| 50 | + $type = \request()->get('type'); | ||
| 51 | + | ||
| 52 | + switch ($type){ | ||
| 53 | + case 'video':{ | ||
| 54 | + $ext = ['mp4','avi']; | ||
| 55 | + break; | ||
| 56 | + } | ||
| 57 | + default:{ | ||
| 58 | + $ext = ['png','jpg','jpeg','gif']; | ||
| 59 | + break; | ||
| 60 | + } | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + $files = Upload::lists($this->param['config'] ?? 'default',$ext); | ||
| 64 | + return $this->success($files); | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + | ||
| 68 | + | ||
| 42 | } | 69 | } |
| @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Bside; | @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Bside; | ||
| 4 | 4 | ||
| 5 | 5 | ||
| 6 | use App\Enums\Common\Code; | 6 | use App\Enums\Common\Code; |
| 7 | +use App\Http\Logic\Aside\Template\TemplateChunkLogic; | ||
| 7 | use App\Http\Logic\Bside\TemplateLogic; | 8 | use App\Http\Logic\Bside\TemplateLogic; |
| 8 | use App\Http\Requests\Bside\TemplateRequest; | 9 | use App\Http\Requests\Bside\TemplateRequest; |
| 9 | use App\Models\Template\ATemplate; | 10 | use App\Models\Template\ATemplate; |
| @@ -119,16 +120,11 @@ class TemplateController extends BaseController | @@ -119,16 +120,11 @@ class TemplateController extends BaseController | ||
| 119 | public function get_html(){ | 120 | public function get_html(){ |
| 120 | $source = $this->param['source']??''; | 121 | $source = $this->param['source']??''; |
| 121 | $source_id = $this->param['source_id']??0; | 122 | $source_id = $this->param['source_id']??0; |
| 122 | - | ||
| 123 | - | ||
| 124 | $data = TemplateLogic::instance()->first($source,$source_id); | 123 | $data = TemplateLogic::instance()->first($source,$source_id); |
| 125 | - | ||
| 126 | $res = [ | 124 | $res = [ |
| 127 | 'html' => $data['html']??'', | 125 | 'html' => $data['html']??'', |
| 128 | 'name' => 'example' | 126 | 'name' => 'example' |
| 129 | ]; | 127 | ]; |
| 130 | - | ||
| 131 | - | ||
| 132 | return $this->response('',Code::SUCCESS,$res); | 128 | return $this->response('',Code::SUCCESS,$res); |
| 133 | 129 | ||
| 134 | } | 130 | } |
| @@ -141,17 +137,38 @@ class TemplateController extends BaseController | @@ -141,17 +137,38 @@ class TemplateController extends BaseController | ||
| 141 | public function save_html(TemplateRequest $request){ | 137 | public function save_html(TemplateRequest $request){ |
| 142 | 138 | ||
| 143 | $data = $request->validated(); | 139 | $data = $request->validated(); |
| 144 | - | ||
| 145 | $data['data_source'] = $data['source']; | 140 | $data['data_source'] = $data['source']; |
| 146 | $data['data_source_id'] = $data['source_id']; | 141 | $data['data_source_id'] = $data['source_id']; |
| 147 | - | ||
| 148 | unset($data['source']); | 142 | unset($data['source']); |
| 149 | unset($data['source_id']); | 143 | unset($data['source_id']); |
| 150 | - | ||
| 151 | TemplateLogic::instance()->save($data); | 144 | TemplateLogic::instance()->save($data); |
| 152 | - | ||
| 153 | return $this->response('保存成功'); | 145 | return $this->response('保存成功'); |
| 154 | 146 | ||
| 147 | + // 不需要数据id | ||
| 148 | + if(in_array($data['data_source'],['index'])){ | ||
| 149 | + $data['data_source_id'] = 0; | ||
| 150 | + } | ||
| 151 | + unset($data['source']); | ||
| 152 | + unset($data['source_id']); | ||
| 153 | + $id = TemplateLogic::instance()->save($data); | ||
| 154 | + if($id){ | ||
| 155 | + $info = TemplateLogic::instance()->getInfo($id['id']); | ||
| 156 | + $info['source'] = $info['data_source']; | ||
| 157 | + $info['source_id'] = $info['data_source_id']; | ||
| 158 | + unset($info['data_source']); | ||
| 159 | + unset($info['data_source_id']); | ||
| 160 | + unset($info['template_id']); | ||
| 161 | + unset($info['created_at']); | ||
| 162 | + unset($info['updated_at']); | ||
| 163 | + unset($info['css']); | ||
| 164 | + unset($info['script']); | ||
| 165 | + unset($info['data_ext']); | ||
| 166 | + | ||
| 167 | + return $this->success($info,Code::SUCCESS,'保存成功'); | ||
| 168 | + } | ||
| 169 | + | ||
| 170 | + return $this->response('保存失败',Code::SYSTEM_ERROR); | ||
| 171 | + | ||
| 155 | } | 172 | } |
| 156 | 173 | ||
| 157 | /** | 174 | /** |
| @@ -179,36 +196,17 @@ class TemplateController extends BaseController | @@ -179,36 +196,17 @@ class TemplateController extends BaseController | ||
| 179 | * @author:dc | 196 | * @author:dc |
| 180 | * @time 2023/5/10 14:55 | 197 | * @time 2023/5/10 14:55 |
| 181 | */ | 198 | */ |
| 182 | - public function customChunk(){ | ||
| 183 | -// | ||
| 184 | -// $html = $this->param['html']??[]; | ||
| 185 | -// // 那个页面 的 | ||
| 186 | -// $type = $this->param['type']??''; | ||
| 187 | -// | ||
| 188 | -// if(!is_array($html)){ | ||
| 189 | -// return $this->response('参数异常',Code::SYSTEM_ERROR); | ||
| 190 | -// } | ||
| 191 | -// | ||
| 192 | -// // 项目id | ||
| 193 | -// $project_id = $this->user['project_id']; | ||
| 194 | -// // 当前模板 | ||
| 195 | -// $template_id = BSetting::_get($project_id)['template_id']; | ||
| 196 | -// | ||
| 197 | -// // 验证这个模板是否存在 | ||
| 198 | -// if(!$type || !ATemplateHtml::_typeExist($template_id,$type)){ | ||
| 199 | -// return $this->response('页面类型错误',Code::SYSTEM_ERROR); | ||
| 200 | -// } | ||
| 201 | -// | ||
| 202 | -// | ||
| 203 | -// $html = view("template.{$template_id}.{$type}")->render(); | ||
| 204 | -// | ||
| 205 | -// | ||
| 206 | -// return $this->response('',Code::SUCCESS,$html); | ||
| 207 | -//// $data = BTemplateData::_insert(); | ||
| 208 | -// | ||
| 209 | -// | 199 | + public function chunk(){ |
| 210 | 200 | ||
| 201 | + $lists = TemplateChunkLogic::instance()->getList([['status','=',1]],['sort'=>'asc'],['*'],false)->toArray(); | ||
| 202 | + | ||
| 203 | + foreach ($lists as &$list){ | ||
| 204 | + unset($list['created_at']); | ||
| 205 | + unset($list['updated_at']); | ||
| 206 | + unset($list['status']); | ||
| 207 | + } | ||
| 211 | 208 | ||
| 209 | + return $this->success($lists); | ||
| 212 | } | 210 | } |
| 213 | 211 | ||
| 214 | 212 |
| @@ -95,8 +95,8 @@ class UserController extends BaseController | @@ -95,8 +95,8 @@ class UserController extends BaseController | ||
| 95 | ],[ | 95 | ],[ |
| 96 | 'id.required' => 'ID不能为空', | 96 | 'id.required' => 'ID不能为空', |
| 97 | ]); | 97 | ]); |
| 98 | - $userLogic->user_info(); | ||
| 99 | - $this->response('success'); | 98 | + $info = $userLogic->user_info(); |
| 99 | + $this->response('success',Code::SUCCESS,$info); | ||
| 100 | } | 100 | } |
| 101 | /** | 101 | /** |
| 102 | * @name :删除管理员 | 102 | * @name :删除管理员 |
| @@ -141,7 +141,7 @@ class FileController | @@ -141,7 +141,7 @@ class FileController | ||
| 141 | $fileModel = new File(); | 141 | $fileModel = new File(); |
| 142 | $file_hash = $fileModel->read(['hash'=>$hash]); | 142 | $file_hash = $fileModel->read(['hash'=>$hash]); |
| 143 | if($file_hash !== false){ | 143 | if($file_hash !== false){ |
| 144 | - return $hash; | 144 | + return $this->response('资源',Code::SUCCESS,['file'=>$hash]); |
| 145 | } | 145 | } |
| 146 | $url = $this->path; | 146 | $url = $this->path; |
| 147 | $fileName = uniqid().rand(10000,99999).'.'.$files->getClientOriginalExtension(); | 147 | $fileName = uniqid().rand(10000,99999).'.'.$files->getClientOriginalExtension(); |
| @@ -197,7 +197,7 @@ class FileController | @@ -197,7 +197,7 @@ class FileController | ||
| 197 | $data[] = $hash; | 197 | $data[] = $hash; |
| 198 | } | 198 | } |
| 199 | $fileModel->insert($save_data); | 199 | $fileModel->insert($save_data); |
| 200 | - return $this->response('资源',Code::SUCCESS,['files'=>$data]); | 200 | + return $this->response('资源',Code::SUCCESS,['file'=>$data]); |
| 201 | } | 201 | } |
| 202 | /** | 202 | /** |
| 203 | * @name 统一返回参数 | 203 | * @name 统一返回参数 |
| @@ -175,7 +175,7 @@ class ImageController | @@ -175,7 +175,7 @@ class ImageController | ||
| 175 | $hash = hash_file('md5', $file->getPathname()); | 175 | $hash = hash_file('md5', $file->getPathname()); |
| 176 | $image_hash = $imageModel->read(['hash'=>$hash]); | 176 | $image_hash = $imageModel->read(['hash'=>$hash]); |
| 177 | if($image_hash !== false){ | 177 | if($image_hash !== false){ |
| 178 | - $data[] = $hash; | 178 | + $data[] = ['image'=>$hash]; |
| 179 | continue; | 179 | continue; |
| 180 | } | 180 | } |
| 181 | $url = $this->path; | 181 | $url = $this->path; |
| @@ -192,10 +192,10 @@ class ImageController | @@ -192,10 +192,10 @@ class ImageController | ||
| 192 | 'hash' => $hash, | 192 | 'hash' => $hash, |
| 193 | 'type'=>$file->getClientOriginalExtension(), | 193 | 'type'=>$file->getClientOriginalExtension(), |
| 194 | ]; | 194 | ]; |
| 195 | - $data[] = $hash; | 195 | + $data[] = ['image'=>$hash]; |
| 196 | } | 196 | } |
| 197 | $imageModel->insert($save_data); | 197 | $imageModel->insert($save_data); |
| 198 | - return $this->response('图片资源',Code::SUCCESS,['image'=>$data]); | 198 | + return $this->response('图片资源',Code::SUCCESS,$data); |
| 199 | } | 199 | } |
| 200 | 200 | ||
| 201 | //下载 | 201 | //下载 |
| @@ -247,15 +247,6 @@ class ImageController | @@ -247,15 +247,6 @@ class ImageController | ||
| 247 | case 'image': | 247 | case 'image': |
| 248 | $data['image_link'] = url('/b/image/' . $v); | 248 | $data['image_link'] = url('/b/image/' . $v); |
| 249 | break; | 249 | break; |
| 250 | - case 'images': | ||
| 251 | - $v = explode(',',$v); | ||
| 252 | - foreach ($v as $k1=>$v1){ | ||
| 253 | - $data['images_link'][$k1] = url('/b/image/' . $v1); | ||
| 254 | - } | ||
| 255 | - break; | ||
| 256 | - case 'file': | ||
| 257 | - $data['file_link'] = url('/b/file_hash/' . $v); | ||
| 258 | - break; | ||
| 259 | } | 250 | } |
| 260 | } | 251 | } |
| 261 | } | 252 | } |
| @@ -99,6 +99,5 @@ class Kernel extends HttpKernel | @@ -99,6 +99,5 @@ class Kernel extends HttpKernel | ||
| 99 | 'aloginauth'=>AsideLoginAuthMiddleware::class, | 99 | 'aloginauth'=>AsideLoginAuthMiddleware::class, |
| 100 | //B端登录验证中间件 | 100 | //B端登录验证中间件 |
| 101 | 'bloginauth'=>BsideLoginAuthMiddleware::class, | 101 | 'bloginauth'=>BsideLoginAuthMiddleware::class, |
| 102 | - 'accesstoken'=>AccessToken::class, | ||
| 103 | ]; | 102 | ]; |
| 104 | } | 103 | } |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Logic\Aside\Template; | ||
| 4 | + | ||
| 5 | + | ||
| 6 | +use App\Http\Logic\Aside\BaseLogic; | ||
| 7 | +use App\Models\Template\ATemplateChunk; | ||
| 8 | + | ||
| 9 | +/** | ||
| 10 | + * 自定义块 模板 | ||
| 11 | + * @author:dc | ||
| 12 | + * @time 2023/5/29 10:46 | ||
| 13 | + * Class TemplateChunkLogic | ||
| 14 | + * @package App\Http\Logic\Aside\Template | ||
| 15 | + */ | ||
| 16 | +class TemplateChunkLogic extends BaseLogic { | ||
| 17 | + | ||
| 18 | + public function __construct() | ||
| 19 | + { | ||
| 20 | + parent::__construct(); | ||
| 21 | + | ||
| 22 | + $this->model = new ATemplateChunk(); | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + | ||
| 26 | + | ||
| 27 | + | ||
| 28 | + public function save($param) | ||
| 29 | + { | ||
| 30 | + | ||
| 31 | + $param['images'] = is_array($param['images']??'') ? json_encode($param['images']): '[]'; | ||
| 32 | + $param['video'] = is_array($param['video']??'') ? json_encode($param['video']): '[]'; | ||
| 33 | + | ||
| 34 | + | ||
| 35 | + return parent::save($param); // TODO: Change the autogenerated stub | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + | ||
| 39 | +} |
| @@ -37,9 +37,11 @@ class TemplateLogic extends BaseLogic | @@ -37,9 +37,11 @@ class TemplateLogic extends BaseLogic | ||
| 37 | $data = $this->first($param['data_source'],$param['data_source_id']); | 37 | $data = $this->first($param['data_source'],$param['data_source_id']); |
| 38 | if($data){ | 38 | if($data){ |
| 39 | $param['id'] = $data['id']; | 39 | $param['id'] = $data['id']; |
| 40 | + }else{ | ||
| 41 | + $param['template_id'] = BSetting::_get($this->user['project_id'])['template_id']; | ||
| 40 | } | 42 | } |
| 41 | 43 | ||
| 42 | - parent::save($param); | 44 | + return parent::save($param); |
| 43 | 45 | ||
| 44 | } | 46 | } |
| 45 | 47 | ||
| @@ -83,7 +85,7 @@ class TemplateLogic extends BaseLogic | @@ -83,7 +85,7 @@ class TemplateLogic extends BaseLogic | ||
| 83 | 'project_id'=>$this->user['project_id'], | 85 | 'project_id'=>$this->user['project_id'], |
| 84 | 'data_source' => $source, | 86 | 'data_source' => $source, |
| 85 | 'data_source_id' => $source_id, | 87 | 'data_source_id' => $source_id, |
| 86 | - 'template_id' => BSetting::_get($this->user['project_id']) | 88 | + 'template_id' => BSetting::_get($this->user['project_id'])['template_id'] |
| 87 | ])->first(); | 89 | ])->first(); |
| 88 | } | 90 | } |
| 89 | 91 |
| @@ -9,6 +9,7 @@ use App\Exceptions\AsideGlobalException; | @@ -9,6 +9,7 @@ use App\Exceptions\AsideGlobalException; | ||
| 9 | use App\Exceptions\BsideGlobalException; | 9 | use App\Exceptions\BsideGlobalException; |
| 10 | use App\Helper\Arr; | 10 | use App\Helper\Arr; |
| 11 | use App\Models\Devops\ServerInformationLog; | 11 | use App\Models\Devops\ServerInformationLog; |
| 12 | +use Illuminate\Database\Eloquent\Model; | ||
| 12 | use Illuminate\Support\Facades\Cache; | 13 | use Illuminate\Support\Facades\Cache; |
| 13 | use Illuminate\Support\Facades\DB; | 14 | use Illuminate\Support\Facades\DB; |
| 14 | use Illuminate\Support\Facades\Log; | 15 | use Illuminate\Support\Facades\Log; |
| @@ -57,7 +58,7 @@ class Logic | @@ -57,7 +58,7 @@ class Logic | ||
| 57 | * @param array $sort | 58 | * @param array $sort |
| 58 | * @param array $columns | 59 | * @param array $columns |
| 59 | * @param int $limit | 60 | * @param int $limit |
| 60 | - * @return array | 61 | + * @return array|Model |
| 61 | * @author zbj | 62 | * @author zbj |
| 62 | * @date 2023/4/13 | 63 | * @date 2023/4/13 |
| 63 | */ | 64 | */ |
app/Http/Middleware/AccessToken.php
已删除
100644 → 0
| 1 | -<?php | ||
| 2 | - | ||
| 3 | -namespace App\Http\Middleware; | ||
| 4 | - | ||
| 5 | -use Illuminate\Http\Request; | ||
| 6 | -use Closure; | ||
| 7 | - | ||
| 8 | -class AccessToken | ||
| 9 | -{ | ||
| 10 | - /** | ||
| 11 | - * Handle an incoming request. | ||
| 12 | - * | ||
| 13 | - * @param \Illuminate\Http\Request $request | ||
| 14 | - * @param \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse) $next | ||
| 15 | - * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse | ||
| 16 | - */ | ||
| 17 | - public function handle(Request $request, Closure $next) | ||
| 18 | - { | ||
| 19 | - session_start(); | ||
| 20 | - // 指定允许其他域名访问 | ||
| 21 | - $http_origin = "*"; | ||
| 22 | - if(isset($_SERVER['HTTP_ORIGIN'])){ | ||
| 23 | - $http_origin = $_SERVER['HTTP_ORIGIN']; | ||
| 24 | - } | ||
| 25 | - header("Access-Control-Allow-Origin:".$http_origin); | ||
| 26 | - header('Access-Control-Allow-Methods:POST,GET'); //支持的http 动作 | ||
| 27 | - header('Access-Control-Allow-Credentials: true'); | ||
| 28 | - header('Access-Control-Max-Age: 1000'); | ||
| 29 | - header('Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept, Authorization, token'); //响应头 请按照自己需求添加。 | ||
| 30 | - if (strtolower($_SERVER['REQUEST_METHOD']) == 'options') { | ||
| 31 | - exit; | ||
| 32 | - } | ||
| 33 | - return $next($request); | ||
| 34 | - } | ||
| 35 | - | ||
| 36 | -} |
| @@ -15,22 +15,19 @@ class EnableCrossRequestMiddleware | @@ -15,22 +15,19 @@ class EnableCrossRequestMiddleware | ||
| 15 | */ | 15 | */ |
| 16 | public function handle($request, Closure $next) | 16 | public function handle($request, Closure $next) |
| 17 | { | 17 | { |
| 18 | - $response = $next($request); | ||
| 19 | - $origin = $request->server('HTTP_ORIGIN') ?: ''; | ||
| 20 | -// $allow_origin = [ | ||
| 21 | -// 'http://localhost:8080', | ||
| 22 | -// ]; | ||
| 23 | -// if (in_array($origin, $allow_origin)) { | ||
| 24 | - $header = [ | ||
| 25 | -// 'Access-Control-Allow-Origin' => $origin, | ||
| 26 | - 'Access-Control-Allow-Origin' => '*', | ||
| 27 | - 'Access-Control-Allow-Headers' => '*', | ||
| 28 | - 'Access-Control-Expose-Headers' => '*', | ||
| 29 | - 'Access-Control-Allow-Methods' => 'POST, GET, OPTIONS', | ||
| 30 | - 'Access-Control-Allow-Credentials' => 'true', | ||
| 31 | - ]; | ||
| 32 | - $response->headers->add($header); | ||
| 33 | -// } | ||
| 34 | - return $response; | 18 | + // 指定允许其他域名访问 |
| 19 | + $http_origin = "*"; | ||
| 20 | + if(isset($_SERVER['HTTP_ORIGIN'])){ | ||
| 21 | + $http_origin = $_SERVER['HTTP_ORIGIN']; | ||
| 22 | + } | ||
| 23 | + header("Access-Control-Allow-Origin:".$http_origin); | ||
| 24 | + header('Access-Control-Allow-Methods:POST,GET'); //支持的http 动作 | ||
| 25 | + header('Access-Control-Allow-Credentials: true'); | ||
| 26 | + header('Access-Control-Max-Age: 1000'); | ||
| 27 | + header('Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept, Authorization, token'); //响应头 请按照自己需求添加。 | ||
| 28 | + if (strtolower($_SERVER['REQUEST_METHOD']) == 'options') { | ||
| 29 | + exit; | ||
| 30 | + } | ||
| 31 | + return $next($request); | ||
| 35 | } | 32 | } |
| 36 | } | 33 | } |
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Http\Requests\Aside\Template; | ||
| 4 | + | ||
| 5 | +use Illuminate\Foundation\Http\FormRequest; | ||
| 6 | +use Illuminate\Validation\Rule; | ||
| 7 | + | ||
| 8 | +/** | ||
| 9 | + * 自定义模板 块 | ||
| 10 | + * @author:dc | ||
| 11 | + * @time 2023/5/29 10:57 | ||
| 12 | + * Class TemplateChunkRequest | ||
| 13 | + * @package App\Http\Requests\Aside\Template | ||
| 14 | + */ | ||
| 15 | +class TemplateChunkRequest extends FormRequest | ||
| 16 | +{ | ||
| 17 | + | ||
| 18 | + /** | ||
| 19 | + * Determine if the user is authorized to make this request. | ||
| 20 | + * | ||
| 21 | + * @return bool | ||
| 22 | + */ | ||
| 23 | + public function authorize() | ||
| 24 | + { | ||
| 25 | + return true; | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | + /** | ||
| 29 | + * Get the validation rules that apply to the request. | ||
| 30 | + * | ||
| 31 | + * @return array | ||
| 32 | + */ | ||
| 33 | + public function rules() | ||
| 34 | + { | ||
| 35 | + $rule = [ | ||
| 36 | + 'id' => ['required','integer'], | ||
| 37 | + 'name' => ['required'], | ||
| 38 | + 'type' => ['required'], | ||
| 39 | + 'status' => ['required',Rule::in(0,1)], | ||
| 40 | + 'sort' => ['required','integer'], | ||
| 41 | + 'thumb' => ['required'], | ||
| 42 | + 'html' => ['required'], | ||
| 43 | + 'attr' => [], | ||
| 44 | + 'images' => [], | ||
| 45 | + 'video' => [], | ||
| 46 | + ]; | ||
| 47 | + | ||
| 48 | + // 更新场景 | ||
| 49 | + if($this->is('a/template/chunk/create')){ | ||
| 50 | + unset($rule['id']); | ||
| 51 | + } | ||
| 52 | + if($this->is('b/template/chunk/create')){ | ||
| 53 | + unset($rule['id']); | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + return $rule; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + | ||
| 60 | + | ||
| 61 | + public function messages() | ||
| 62 | + { | ||
| 63 | + return [ | ||
| 64 | + 'id.required' => 'id必须', | ||
| 65 | + 'id.integer' => 'id必须', | ||
| 66 | + | ||
| 67 | + 'name.required' => '名称必须', | ||
| 68 | + 'type.required' => '类型必须', | ||
| 69 | + 'status.integer' => '状态错误', | ||
| 70 | + 'status.in' => '状态错误', | ||
| 71 | + | ||
| 72 | + 'sort.required' => '排序必须', | ||
| 73 | + 'sort.integer' => '排序必须', | ||
| 74 | + 'thumb.required' => '缩略图必须', | ||
| 75 | + | ||
| 76 | + 'html.required' => 'html代码必须', | ||
| 77 | +// 'attr.required' => '其他必须', | ||
| 78 | + | ||
| 79 | + ]; | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | +} |
| @@ -43,7 +43,7 @@ class TemplateRequest extends FormRequest | @@ -43,7 +43,7 @@ class TemplateRequest extends FormRequest | ||
| 43 | 43 | ||
| 44 | 44 | ||
| 45 | // 删除 | 45 | // 删除 |
| 46 | - if(!$this->is('b/template/status')){ | 46 | + if($this->is('b/template/status')){ |
| 47 | unset($rule['css']); | 47 | unset($rule['css']); |
| 48 | unset($rule['script']); | 48 | unset($rule['script']); |
| 49 | unset($rule['html']); | 49 | unset($rule['html']); |
app/Models/Template/ATemplateChunk.php
0 → 100644
| 1 | +<?php | ||
| 2 | + | ||
| 3 | +namespace App\Models\Template; | ||
| 4 | + | ||
| 5 | +use Illuminate\Database\Eloquent\SoftDeletes; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 自定义块 模板块 | ||
| 9 | + * @author:dc | ||
| 10 | + * @time 2023/5/29 10:39 | ||
| 11 | + * Class ATemplateChunk | ||
| 12 | + * @package App\Models\Template | ||
| 13 | + */ | ||
| 14 | +class ATemplateChunk extends \App\Models\Base{ | ||
| 15 | + | ||
| 16 | + | ||
| 17 | + protected $table = 'gl_aside_template_chunk'; | ||
| 18 | + | ||
| 19 | + | ||
| 20 | + protected $hidden = ['deleted_at']; | ||
| 21 | + | ||
| 22 | + | ||
| 23 | + use SoftDeletes; | ||
| 24 | + | ||
| 25 | + | ||
| 26 | + public static $typeMap = [ | ||
| 27 | + 'index' => '首页', | ||
| 28 | + 'product' => '商品列表', | ||
| 29 | + 'product_info' => '商品详情', | ||
| 30 | + 'blogs' => '博客列表', | ||
| 31 | + 'blogs_info' => '博客详情', | ||
| 32 | + 'page' => '单页', | ||
| 33 | + 'news' => '新闻列表', | ||
| 34 | + 'news_info' => '新闻详情', | ||
| 35 | + ]; | ||
| 36 | + | ||
| 37 | + | ||
| 38 | + | ||
| 39 | + public function getImagesAttribute($val) | ||
| 40 | + { | ||
| 41 | + return $val ? json_decode($val,true) : []; | ||
| 42 | + } | ||
| 43 | + | ||
| 44 | + public function getVideoAttribute($val) | ||
| 45 | + { | ||
| 46 | + return $val ? json_decode($val,true) : []; | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + | ||
| 50 | +} |
| @@ -11,6 +11,7 @@ use Illuminate\Support\Facades\Facade; | @@ -11,6 +11,7 @@ use Illuminate\Support\Facades\Facade; | ||
| 11 | * @method static array filePut(string $filename, string $content, string|array $config="default") | 11 | * @method static array filePut(string $filename, string $content, string|array $config="default") |
| 12 | * @method static string url2path(string $url, string|array $disk="upload") | 12 | * @method static string url2path(string $url, string|array $disk="upload") |
| 13 | * @method static string path2url(string $path, string|array $disk="upload") | 13 | * @method static string path2url(string $path, string|array $disk="upload") |
| 14 | + * @method static array lists(string $config,array $ext=[]) | ||
| 14 | */ | 15 | */ |
| 15 | class Upload extends Facade | 16 | class Upload extends Facade |
| 16 | { | 17 | { |
| @@ -272,4 +272,33 @@ class UploadService extends BaseService | @@ -272,4 +272,33 @@ class UploadService extends BaseService | ||
| 272 | $this->config(); | 272 | $this->config(); |
| 273 | return Storage::disk($this->config['disk'])->url($path); | 273 | return Storage::disk($this->config['disk'])->url($path); |
| 274 | } | 274 | } |
| 275 | + | ||
| 276 | + /** | ||
| 277 | + * 文件列表 | ||
| 278 | + * @return array | ||
| 279 | + * @author:dc | ||
| 280 | + * @time 2023/5/29 11:49 | ||
| 281 | + */ | ||
| 282 | + public function lists($config,array $ext=[]){ | ||
| 283 | + $this->config($config); | ||
| 284 | + $disk = Storage::disk($this->config['disk']); | ||
| 285 | + $lists = $disk->allFiles(); | ||
| 286 | + | ||
| 287 | + | ||
| 288 | + if($ext){ | ||
| 289 | + foreach ($lists as $k=>$list){ | ||
| 290 | + $list = explode('.',$list); | ||
| 291 | + if(!in_array(end($list),$ext)){ | ||
| 292 | + unset($lists[$k]); | ||
| 293 | + | ||
| 294 | + }else{ | ||
| 295 | + $lists[$k] = $disk->url($lists[$k]); | ||
| 296 | + } | ||
| 297 | + | ||
| 298 | + } | ||
| 299 | + } | ||
| 300 | + | ||
| 301 | + | ||
| 302 | + return $lists; | ||
| 303 | + } | ||
| 275 | } | 304 | } |
| @@ -6,7 +6,8 @@ use \Illuminate\Support\Facades\Route; | @@ -6,7 +6,8 @@ use \Illuminate\Support\Facades\Route; | ||
| 6 | use \App\Http\Controllers\Aside; | 6 | use \App\Http\Controllers\Aside; |
| 7 | 7 | ||
| 8 | //必须登录验证的路由组 | 8 | //必须登录验证的路由组 |
| 9 | -Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上web的中间件 | 9 | + |
| 10 | +Route::middleware(['web','accesstoken'])->group(function (){ //admin用渲染默认要加上web的中间件 | ||
| 10 | Route::middleware(['aloginauth'])->group(function () { | 11 | Route::middleware(['aloginauth'])->group(function () { |
| 11 | Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white'); | 12 | Route::get('/', [Aside\IndexController::class, 'index'])->name('admin.home.white'); |
| 12 | Route::get('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout.white'); | 13 | Route::get('/logout', [Aside\LoginController::class, 'logout'])->name('admin.logout.white'); |
| @@ -164,10 +165,13 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w | @@ -164,10 +165,13 @@ Route::middleware(['web'])->group(function (){ //admin用渲染默认要加上w | ||
| 164 | Route::post('/html/{template_id}/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'html_insert'])->where('template_id','\d+')->name('admin.template_insert.html'); | 165 | Route::post('/html/{template_id}/insert', [\App\Http\Controllers\Aside\TemplateController::class, 'html_insert'])->where('template_id','\d+')->name('admin.template_insert.html'); |
| 165 | Route::delete('/html/{template_id}/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_delete'])->where('template_id','\d+')->where('id','\d+')->name('admin.template_delete.html'); | 166 | Route::delete('/html/{template_id}/delete/{id}', [\App\Http\Controllers\Aside\TemplateController::class, 'html_delete'])->where('template_id','\d+')->where('id','\d+')->name('admin.template_delete.html'); |
| 166 | Route::get('/html/type', [\App\Http\Controllers\Aside\TemplateController::class, 'html_type'])->name('admin.template_type.html'); | 167 | Route::get('/html/type', [\App\Http\Controllers\Aside\TemplateController::class, 'html_type'])->name('admin.template_type.html'); |
| 167 | - }); | ||
| 168 | - | ||
| 169 | - | ||
| 170 | 168 | ||
| 169 | + // 自定义块,模板块 | ||
| 170 | + Route::get('/chunk/lists', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_lists'])->name('admin.template.chunk_lists'); | ||
| 171 | + Route::post('/chunk/create', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_save'])->name('admin.template.chunk_create'); | ||
| 172 | + Route::post('/chunk/update', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_save'])->name('admin.template.chunk_update'); | ||
| 173 | + Route::delete('/chunk/delete/{chunk_id}', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_delete'])->where('chunk_id','\d+')->name('admin.template.chunk_delete'); | ||
| 174 | + }); | ||
| 171 | }); | 175 | }); |
| 172 | 176 | ||
| 173 | //无需登录验证的路由组 | 177 | //无需登录验证的路由组 |
| @@ -6,7 +6,7 @@ | @@ -6,7 +6,7 @@ | ||
| 6 | use Illuminate\Support\Facades\Route; | 6 | use Illuminate\Support\Facades\Route; |
| 7 | 7 | ||
| 8 | //必须登录验证的路由组 | 8 | //必须登录验证的路由组 |
| 9 | -Route::middleware(['bloginauth','accesstoken'])->group(function () { | 9 | +Route::middleware(['bloginauth'])->group(function () { |
| 10 | //登录用户编辑个人资料 | 10 | //登录用户编辑个人资料 |
| 11 | Route::any('/edit_info', [\App\Http\Controllers\Bside\ComController::class, 'edit_info'])->name('edit_info'); | 11 | Route::any('/edit_info', [\App\Http\Controllers\Bside\ComController::class, 'edit_info'])->name('edit_info'); |
| 12 | Route::any('/logout', [\App\Http\Controllers\Bside\ComController::class, 'logout'])->name('logout'); | 12 | Route::any('/logout', [\App\Http\Controllers\Bside\ComController::class, 'logout'])->name('logout'); |
| @@ -187,6 +187,7 @@ Route::middleware(['bloginauth','accesstoken'])->group(function () { | @@ -187,6 +187,7 @@ Route::middleware(['bloginauth','accesstoken'])->group(function () { | ||
| 187 | //文件操作 | 187 | //文件操作 |
| 188 | Route::prefix('file')->group(function () { | 188 | Route::prefix('file')->group(function () { |
| 189 | Route::post('/upload', [\App\Http\Controllers\Bside\FileController::class, 'upload'])->name('file_upload'); | 189 | Route::post('/upload', [\App\Http\Controllers\Bside\FileController::class, 'upload'])->name('file_upload'); |
| 190 | + Route::get('/lists', [\App\Http\Controllers\Bside\FileController::class, 'lists'])->name('file_lists'); | ||
| 190 | }); | 191 | }); |
| 191 | //图片操作 | 192 | //图片操作 |
| 192 | Route::prefix('images')->group(function () { | 193 | Route::prefix('images')->group(function () { |
| @@ -232,9 +233,22 @@ Route::middleware(['bloginauth','accesstoken'])->group(function () { | @@ -232,9 +233,22 @@ Route::middleware(['bloginauth','accesstoken'])->group(function () { | ||
| 232 | // Route::get('/custom-chunk', [\App\Http\Controllers\Bside\TemplateController::class, 'customChunk'])->name('bside_template_custom_chunk'); | 233 | // Route::get('/custom-chunk', [\App\Http\Controllers\Bside\TemplateController::class, 'customChunk'])->name('bside_template_custom_chunk'); |
| 233 | Route::get('/get_type', [\App\Http\Controllers\Bside\TemplateController::class, 'get_type'])->name('bside_template_type'); | 234 | Route::get('/get_type', [\App\Http\Controllers\Bside\TemplateController::class, 'get_type'])->name('bside_template_type'); |
| 234 | Route::get('/get_html', [\App\Http\Controllers\Bside\TemplateController::class, 'get_html'])->name('bside_template_get_html'); | 235 | Route::get('/get_html', [\App\Http\Controllers\Bside\TemplateController::class, 'get_html'])->name('bside_template_get_html'); |
| 235 | - Route::get('/save_html', [\App\Http\Controllers\Bside\TemplateController::class, 'save_html'])->name('bside_template_save_html'); | 236 | + Route::post('/save_html', [\App\Http\Controllers\Bside\TemplateController::class, 'save_html'])->name('bside_template_save_html'); |
| 236 | Route::get('/status', [\App\Http\Controllers\Bside\TemplateController::class, 'status'])->name('bside_template_status'); | 237 | Route::get('/status', [\App\Http\Controllers\Bside\TemplateController::class, 'status'])->name('bside_template_status'); |
| 238 | + | ||
| 239 | + | ||
| 240 | + // 自定义模板的 块。 | ||
| 241 | + Route::get('/chunk', [\App\Http\Controllers\Bside\TemplateController::class, 'chunk'])->name('bside_template_chunk'); | ||
| 242 | + | ||
| 243 | + Route::post('/chunk/create', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_save'])->name('admin.template.chunk_create'); | ||
| 244 | + Route::post('/chunk/update', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_save'])->name('admin.template.chunk_update'); | ||
| 245 | + Route::delete('/chunk/delete/{chunk_id}', [\App\Http\Controllers\Aside\TemplateController::class, 'chunk_delete'])->where('chunk_id','\d+')->name('admin.template.chunk_delete'); | ||
| 246 | + | ||
| 247 | + | ||
| 237 | }); | 248 | }); |
| 249 | + | ||
| 250 | + | ||
| 251 | + | ||
| 238 | // 自定义页面,专题页 | 252 | // 自定义页面,专题页 |
| 239 | Route::prefix('custom')->group(function () { | 253 | Route::prefix('custom')->group(function () { |
| 240 | Route::get('/', [\App\Http\Controllers\Bside\CustomController::class, 'index'])->name('bside_custom'); | 254 | Route::get('/', [\App\Http\Controllers\Bside\CustomController::class, 'index'])->name('bside_custom'); |
-
请 注册 或 登录 后发表评论