<?php namespace App\Admin\Controllers; use App\Admin\Repositories\DistAppearanceTemplate; use Dcat\Admin\Form; use Dcat\Admin\Grid; use Dcat\Admin\Show; use Dcat\Admin\Http\Controllers\AdminController; use Dcat\Admin\Layout\Content; use Dcat\Admin\Admin; use App\Admin\Forms\AceLeft; use Illuminate\Http\Request; use Illuminate\Support\Str; use Dcat\Admin\Widgets\Card; class DistAppearanceTemplateController extends AdminController { /* * monaco editor 编辑代码 */ public function ace(Content $content,Request $request) { $content->view('admin.pages-custom.ace_content'); if ($request->isMethod('post') || false == empty($request->get('act'))) { if($request->get('act') == 'tree') { //获取代码树形结构 $appearanceId = $request->get('appearance_id'); $distId = $request->get('dist_id'); return $this->showTree($appearanceId, $distId); } elseif ($request->get('act') == 'content') { //得到文件内容 $appearanceId = $request->get('appearance_id'); $distId = $request->get('dist_id'); $templateCode = $request->get('id'); return DistAppearanceTemplate::getContent($appearanceId,$distId,$templateCode); } elseif ($request->get('act') == 'content_save') { //保存文件内容 $appearanceId = $request->get('appearance_id'); $distId = $request->get('dist_id'); $templateCode = $request->get('template_code'); $content = $request->get('content'); return DistAppearanceTemplate::saveContent($appearanceId,$distId,$templateCode, $content); } elseif ($request->get('act') == 'publish') { //发报 $appearanceId = $request->get('appearance_id'); $distId = $request->get('dist_id'); return DistAppearanceTemplate::publish($appearanceId,$distId); } } $leftForm = new AceLeft(); return $content ->header('Template Editor') ->body(admin_view('admin.pages-custom.ace',['leftForm'=>$leftForm])); } /* * 显示代码树 */ private function showTree($appearanceId, $distId) { $appearanceId = empty($appearanceId) ? 0 : $appearanceId; $distId = empty($distId) ? 0 : $distId; $tree = DistAppearanceTemplate::getTemplateTree($appearanceId, $distId); $html = '<ul class="list-group list-group-flush">'; foreach ($tree as $key => $value) { $fa = 'fa-angle-down'; $file_name = $value['file_name']; if (empty($value['children'])) { //文件 $fa = 'fa-angle-right'; $file_name = '<a href="#" class="file-action" file_id="'. $value['template_code'].'" title="'.$file_name.'">'. $file_name.'</a>'; } else { //文件夹 $file_name = '<span class="custom-blue-bold">'. $file_name.'</span>'; } $html .= '<li class="list-group-item has-submenu">'; $html .= '<i class="fa '.$fa.'"></i> '. $file_name; $html .= $this->treeBuilder($value); $html .= '</li>'; } $html .= '</ul>'; return $html; } private function treeBuilder($value) { $html = ''; if (!empty($value['children'])) { $html = '<ul class="submenu">'; foreach ($value['children'] as $k => $v) { $fa = 'fa-angle-down'; $file_name = $v['file_name']; if (empty($v['children'])) { $fa = 'fa-angle-right'; $file_name = '<a href="#" class="file-action" file_id="'. $v['template_code'].'" title="'.$file_name.'">'. $file_name.'</a>'; } else { $file_name = '<span class="custom-blue-bold">'. $file_name.'</span>'; } $html .= '<li class="list-group-item"><i class="fa '.$fa.'"></i> '. $file_name; if (!empty($v['children'])) { $html .= $this->treeBuilder($v); } $html .= '</li>'; } $html .= '</ul>'; } return $html; } }