Browse Source

后台编辑器

moshaorui 4 months ago
parent
commit
b3c09c837d

+ 3 - 4
app/Admin/Controllers/BaseProductController.php

@@ -91,13 +91,12 @@ class BaseProductController extends AdminController
             $show->field('parameters')->as(function ($items) {
                 if (is_array($items)) {
                     // 创建表格的表头
-                    $table = '<table class="table">';
-                    $table .= '<tr><th>key</th><th>value</th></tr>';
+                    $table = '<table class="table table-bordered table-condensed">';
                     // 遍历数组并将数据填充到表格中
                     foreach ($items as $item) {
                         $table .= '<tr>';
-                        $table .= '<td>' . $item['key'] . '</td>';    // 商品名称
-                        $table .= '<td>' . $item['value'] . '</td>'; // 数量
+                        $table .= '<td style="vertical-align: middle !important;width: 20%">' . $item['key'] . '</td>';    // 商品名称
+                        $table .= '<td style="vertical-align: middle !important;">' . $item['value'] . '</td>'; // 数量
                         $table .= '</tr>';
                     }
                     $table .= '</table>';

+ 38 - 1
app/Admin/Controllers/DistAdminDistributorController.php

@@ -121,8 +121,45 @@ class DistAdminDistributorController extends AdminController
             $form->text('country')->width(9,3)->required();
             $form->text('address')->width(9,3);
             $form->switch('enabled')->width(9,3)->default(1);
+            //保存前回调
+            $form->saving(function (Form $form) {
+                if (!$form->isCreating()) {
+                    //如果appearance_id有变化,则更新模版与变量
+                    if ($form->model()->appearance_id != $form->input('appearance_id')) {
+                        $id = $form->model()->id;
+                        //更新模版与变量
+                        DistAppearance::switchTheme($form->input('appearance_id'), $id);
+                    }
+                }
+            });
+            //保存后回调
+            $form->saved(function (Form $form, $result) {
+                if ($form->isCreating()) {
+                    //创建后创建默认分类
+                    $newId = $form->getKey();
+                    $appearanceId = $form->input('appearance_id');
+                    //初始化分销商
+                    DistAdminDistributor::initDist($appearanceId,$newId);
+                    //更新模版与变量
+                    DistAppearance::switchTheme($appearanceId, $newId);
+                }
+            });
         });
     }
 
-
+    /*
+     * 新增事件事务
+     */
+    public function store()
+    {
+        try {
+            DB::beginTransaction();
+            $result =  parent::store();
+            DB::commit();
+            return $result;
+        } catch (\Exception $e) {
+            DB::rollBack();
+            throw $e;
+        }
+    }
 }

+ 17 - 11
app/Admin/Controllers/DistAppearanceTemplateController.php

@@ -44,7 +44,16 @@ class DistAppearanceTemplateController extends AdminController
                 $templateCode = $request->get('template_code');
                 $content = $request->get('content');
                 return DistAppearanceTemplate::saveContent($appearanceId,$distId,$templateCode, $content);
-            } elseif ($request->get('act') == 'publish') {
+            } else if ($request->get('act') == 'add_del_tree') {
+                //新建或删除文件
+                $fileId = $request->get('file_id');
+                $appearanceId = $request->get('appearance_id');
+                $distId = $request->get('dist_id');
+                $fileName = $request->get('file_name_input');
+                $filePath = $request->get('file_path_name');
+                $type = $request->get('type');
+                return DistAppearanceTemplate::addDelTree($appearanceId,$distId,$fileId,$fileName, $filePath,$type);
+            }elseif ($request->get('act') == 'publish') {
                 //发报
                 $appearanceId = $request->get('appearance_id');
                 $distId = $request->get('dist_id');
@@ -53,6 +62,7 @@ class DistAppearanceTemplateController extends AdminController
                 DistAdminDistributor::clearCache($distId);
                 return ['status'=>1];
             } else if ($request->get('act') == 'get_appearance_id') {
+                //返回appearance_id
                 $distId = $request->get('dist_id');
                 $row = DistAdminDistributor::getOneById($distId);
                 return $row ? $row->appearance_id : '';
@@ -74,24 +84,20 @@ class DistAppearanceTemplateController extends AdminController
         $appearanceRow = DistAppearance::getOneById($appearanceId);
 
         $tree = DistAppearanceTemplate::getTemplateTree($appearanceId, $distId);
+        //print_r($tree);exit;
         $html = '<ul class="list-group list-group-flush">';
         $i = 0;
         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>';
-            }
+            $file_name = empty($file_name) ? 'root' : $file_name;
+            $file_name = '<span class="custom-blue-bold">'. $file_name.'</span>';
             if ($i == 0) {
                 $file_name .= " ({$distId} - {$appearanceId})";
             }
+            $file_name = $file_name . '<span class="float-right"><a href="javascript:void(0)" title="Add File" data-toggle="modal" data-target="#addFileModal" file_path_name="'. $value['file_name']. '"><i class="feather icon-plus" style="font-size: 12px"></i></a></span>';
             $html .= '<li class="list-group-item has-submenu">';
-            $html .= '<i class="fa '.$fa.'"></i> '. $file_name;
+            $html .= '<div style="padding-top: 5px;padding-bottom: 0px"><i class="fa '.$fa.'"></i> '. $file_name.'</div>';
             $html .= $this->treeBuilder($value);
             $html .= '</li>';
             $i++;
@@ -109,7 +115,7 @@ class DistAppearanceTemplateController extends AdminController
                 $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>';
+                    $file_name = '<a href="#" class="file-action" file_id="'. $v['template_code'].'" title="'.$file_name.'">'. $file_name.'</a>'. '<span class="float-right"><a href="javascript:void(0)" title="delete File" class="delFileButton" file_id="'. $v['id'].'" file_name="'. $v['file_name'].'"><i class="feather icon-x"></i></a></span>';
                 } else {
                     $file_name = '<span class="custom-blue-bold">'. $file_name.'</span>';
                 }

+ 2 - 38
app/Admin/Controllers/DistSiteController.php

@@ -161,46 +161,10 @@ class DistSiteController extends AdminController
                 $form->text('copy_right')->width(9,3);
                 $form->textarea('statistics_js')->width(9,3);
             });
-            //保存前回调
-            $form->saving(function (Form $form) {
-                if (!$form->isCreating()) {
-                    //如果appearance_id有变化,则更新模版与变量
-                    if ($form->model()->appearance_id != $form->input('appearance_id')) {
-                        $id = $form->model()->id;
-                        //更新模版与变量
-                        DistAppearance::switchTheme($form->input('appearance_id'), $id);
-                    }
-                }
-            });
-            //保存后回调
-            $form->saved(function (Form $form, $result) {
-                if ($form->isCreating()) {
-                    //创建后创建默认分类
-                    $newId = $form->getKey();
-                    $appearanceId = $form->input('appearance_id');
-                    //初始化分销商
-                    DistAdminDistributor::initDist($appearanceId,$newId);
-                    //更新模版与变量
-                    DistAppearance::switchTheme($appearanceId, $newId);
-                }
-            });
+
             $form->disableDeleteButton();
         });
     }
 
-    /*
-     * 新增事件事务
-     */
-    public function store()
-    {
-        try {
-            DB::beginTransaction();
-            $result =  parent::store();
-            DB::commit();
-            return $result;
-        } catch (\Exception $e) {
-            DB::rollBack();
-            throw $e;
-        }
-    }
+
 }

+ 3 - 2
app/Admin/Forms/AppearanceImPortForm.php

@@ -130,7 +130,7 @@ class AppearanceImPortForm extends Form implements LazyRenderable
             }
         }
         // 删除原文件夹及其内容
-        rmdir($folderPath);
+        $this->deleteDirectoryContents($folderPath);
         return ['status' => true];
     }
 
@@ -155,7 +155,7 @@ class AppearanceImPortForm extends Form implements LazyRenderable
             }
             // 如果是目录,递归删除该目录
             elseif (is_dir($itemPath)) {
-                deleteDirectoryContents($itemPath); // 递归删除目录内容
+                $this->deleteDirectoryContents($itemPath); // 递归删除目录内容
                 if (!rmdir($itemPath)) {
                     return "Error: Failed to delete directory $itemPath\n";
                 }
@@ -203,6 +203,7 @@ class AppearanceImPortForm extends Form implements LazyRenderable
                 // 如果是文件,读取文件内容
                 $content = file_get_contents($fullPath);
                 $filePath = str_replace($this->sourcePath, '', $dirPath);
+                $filePath = trim($filePath, '/');
                 $fileName = basename($fullPath);
                 // 插入数据库
                 DistAppearanceTemplate::insertTemplateContent(config('dictionary.base_dist_id'), $this->appearanceId, $filePath,$fileName, $content);

+ 15 - 0
app/Admin/Repositories/DistAdminDistributor.php

@@ -60,6 +60,19 @@ class DistAdminDistributor extends EloquentRepository
     //默认
     public static function default($distId)
     {
+        //生成默认的banner
+        $siteBanner = new SiteBanner();
+        $bannerRow = $siteBanner->create([
+            'title' => 'Default Banner',
+            'image_url' => 'statics/common/images/banner-1.jpg',
+            'show' => 1,
+            'order' => 0,
+            'position' => 1,
+            'dist_id'=>$distId,
+            'created_at'=>Carbon::now(),
+            'updated_at'=>Carbon::now(),
+        ]);
+
         //生成默认产品分类
         $distProductCategory = new DistProductCategory();
         $categoryRow = $distProductCategory->create([
@@ -70,6 +83,8 @@ class DistAdminDistributor extends EloquentRepository
             'dist_id'=>$distId,
             'seo_title' => 'Default Category',
             'slug' => 'default-category',
+            'created_at'=>Carbon::now(),
+            'updated_at'=>Carbon::now(),
         ]);
         //生成默认产品
         $distProduct = new DistProduct();

+ 34 - 2
app/Admin/Repositories/DistAppearanceTemplate.php

@@ -45,7 +45,7 @@ class DistAppearanceTemplate extends EloquentRepository
                 $result[$path] = [
                     'id' => 0, // default, as there's no parent ID
                     'dist_id' => 0, // assuming dist_id for path
-                    'file_name' => basename($path), // using the directory name for file_name
+                    'file_name' => trim($path, '/'), // using the directory name for file_name
                     'children' => []
                 ];
             }
@@ -78,12 +78,44 @@ class DistAppearanceTemplate extends EloquentRepository
             $data->content = $content;
             $data->save();
             //加入模版修改日志
-            DistAppearanceTemplateLog::insertLog($appearanceId,$distId,$templateCode,$currentContent,$previousContent);
+            DistAppearanceTemplateLog::insertLog($appearanceId,$distId,$data->file_name,$data->file_path,$templateCode,$currentContent,$previousContent);
             return true;
         }
         return false;
     }
 
+    public static function addDelTree($appearanceId,$distId,$fileId,$fileName, $filePath,$type) {
+        if (empty($appearanceId) || empty($distId)) {
+            return ['status' => 0,'msg' => 'Missing required parameters'];
+        }
+        $model = new Model();
+        if ($type == 'add') {
+            $count = $model->where('appearance_id', $appearanceId)->where('dist_id', $distId)->where('file_name', $fileName)->count();
+            if ($count > 0) {
+                return ['status' => 0,'msg' => 'File name already exists'];
+            }
+            $filePath = empty($filePath)?'':$filePath;
+            $model = new Model();
+            $model->dist_id = $distId;
+            $model->appearance_id = $appearanceId;
+            $model->file_name = $fileName;
+            $model->file_path = $filePath;
+            $model->content = '';
+            $model->template_code = uniqueCode('');
+            $model->save();
+            return ['status' => 1];
+        } else {
+            $row = $model->where('appearance_id', $appearanceId)->where('dist_id', $distId)->where('id', $fileId)->first();
+            if ($row) {
+                $row->delete();
+                //加入模版修改日志
+                DistAppearanceTemplateLog::insertLog($appearanceId,$distId,$row->file_name,$row->file_path,$row->template_code,'',$row->content);
+                return ['status' => 1];
+            }
+            return ['status' => 0,'msg' => 'File ID not found'];
+        }
+    }
+
     /*
      * 请空指定模板
      */

+ 5 - 2
app/Admin/Repositories/DistAppearanceTemplateLog.php

@@ -16,18 +16,21 @@ class DistAppearanceTemplateLog extends EloquentRepository
 
     /*
      *  添加模版修改日志
+     *  $currentContent 修改后的内容
+     *  $previousContent 修改前的内容
      */
-    public static function insertLog($appearanceId,$distId,$templateCode,$currentContent,$previousContent)
+    public static function insertLog($appearanceId,$distId,$fileName,$filePath,$templateCode,$currentContent,$previousContent)
     {
         $model = new Model();
         $model->dist_id = $distId;
+        $model->file_name = $fileName;
+        $model->file_path = $filePath;
         $model->appearance_id = $appearanceId;
         $model->template_code = $templateCode;
         $model->current_content = $currentContent;
         $model->previous_content = $previousContent;
         $model->version = generateVersionNumber();
         $model->save();
-
     }
 
 }

+ 16 - 0
app/Admin/Repositories/SiteBanner.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace App\Admin\Repositories;
+
+use App\Models\SiteBanner as Model;
+use Dcat\Admin\Repositories\EloquentRepository;
+
+class SiteBanner extends EloquentRepository
+{
+    /**
+     * Model.
+     *
+     * @var string
+     */
+    protected $eloquentClass = Model::class;
+}

+ 3 - 4
app/Distributor/Controllers/DistProductController.php

@@ -112,13 +112,12 @@ class DistProductController extends AdminDistController
             $show->field('parameters')->as(function ($items) {
                 if (is_array($items)) {
                     // 创建表格的表头
-                    $table = '<table class="table">';
-                    $table .= '<tr><th>'.admin_trans_field('key').'</th><th>'.admin_trans_field('value').'</th></tr>';
+                    $table = '<table class="table table-bordered table-condensed">';
                     // 遍历数组并将数据填充到表格中
                     foreach ($items as $item) {
                         $table .= '<tr>';
-                        $table .= '<td>' . $item['key'] . '</td>';    // 商品名称
-                        $table .= '<td>' . $item['value'] . '</td>'; // 数量
+                        $table .= '<td style="vertical-align: middle !important;width: 20%">' . $item['key'] . '</td>';    // 商品名称
+                        $table .= '<td style="vertical-align: middle !important;">' . $item['value'] . '</td>'; // 数量
                         $table .= '</tr>';
                     }
                     $table .= '</table>';

+ 3 - 4
app/Distributor/Controllers/ImportProductController.php

@@ -115,13 +115,12 @@ class ImportProductController extends AdminDistController
             $show->field('parameters')->as(function ($items) {
                 if (is_array($items)) {
                     // 创建表格的表头
-                    $table = '<table class="table">';
-                    $table .= '<tr><th>key</th><th>value</th></tr>';
+                    $table = '<table class="table table-bordered table-condensed">';
                     // 遍历数组并将数据填充到表格中
                     foreach ($items as $item) {
                         $table .= '<tr>';
-                        $table .= '<td>' . $item['key'] . '</td>';    // 商品名称
-                        $table .= '<td>' . $item['value'] . '</td>'; // 数量
+                        $table .= '<td style="vertical-align: middle !important;width: 20%">' . $item['key'] . '</td>';    // 商品名称
+                        $table .= '<td style="vertical-align: middle !important;">' . $item['value'] . '</td>'; // 数量
                         $table .= '</tr>';
                     }
                     $table .= '</table>';

+ 36 - 47
app/Distributor/Controllers/SiteBannerController.php

@@ -3,6 +3,7 @@
 namespace App\Distributor\Controllers;
 
 use App\Distributor\Repositories\SiteBanner;
+use App\Libraries\CommonHelper;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
@@ -10,17 +11,19 @@ use Dcat\Admin\Http\Controllers\AdminController;
 use Dcat\Admin\Layout\Content;
 use Dcat\Admin\Admin;
 
-class SiteBannerController extends AdminController
+class SiteBannerController extends AdminDistController
 {
+    public function title()
+    {
+        return admin_trans('admin.banner_list');
+    }
     /**
      * page index
      */
     public function index(Content $content)
     {
         return $content
-            ->header('列表')
-            ->description('全部')
-            ->breadcrumb(['text'=>'列表','url'=>''])
+            ->header($this->title())
             ->body($this->grid());
     }
 
@@ -33,41 +36,23 @@ class SiteBannerController extends AdminController
     {
         return Grid::make(new SiteBanner(), function (Grid $grid) {
             $grid->column('id')->sortable();
-            $grid->column('image_url');
-            $grid->column('order');
-            $grid->column('url');
-            $grid->column('title');
-            $grid->column('show');
-            $grid->column('position');
-            $grid->column('created_at');
-            $grid->column('updated_at')->sortable();
-        
-            $grid->filter(function (Grid\Filter $filter) {
-                $filter->equal('id');
-        
+            $grid->column('title')->width('25%');
+            $grid->column('image_url',admin_trans_label('images'))->display(function ($image) {
+                // 开始生成 HTML
+                $dataImages = [$image];
+                return CommonHelper::displayImage($dataImages,100);
             });
-        });
-    }
+            $grid->column('position');
+            $grid->column('order');
+            $grid->column('show')->switch();
+            //$grid->column('created_at');
+           // $grid->column('updated_at')->sortable();
 
-    /**
-     * Make a show builder.
-     *
-     * @param mixed $id
-     *
-     * @return Show
-     */
-    protected function detail($id)
-    {
-        return Show::make($id, new SiteBanner(), function (Show $show) {
-            $show->field('id');
-            $show->field('image_url');
-            $show->field('order');
-            $show->field('url');
-            $show->field('title');
-            $show->field('show');
-            $show->field('position');
-            $show->field('created_at');
-            $show->field('updated_at');
+            $grid->disableViewButton();
+            $grid->showQuickEditButton();
+            $grid->enableDialogCreate();
+            $grid->disableEditButton();
+            $grid->model()->where('dist_id', getDistributorId())->orderBy('order', 'desc')->orderBy('id', 'desc');
         });
     }
 
@@ -79,16 +64,20 @@ class SiteBannerController extends AdminController
     protected function form()
     {
         return Form::make(new SiteBanner(), function (Form $form) {
-            $form->display('id');
-            $form->text('image_url');
-            $form->text('order');
-            $form->text('url');
-            $form->text('title');
-            $form->text('show');
-            $form->text('position');
-        
-            $form->display('created_at');
-            $form->display('updated_at');
+            $form->textarea('title')->required();
+            $form->image("image_url", admin_trans_label('images'))
+                ->autoUpload()
+                ->uniqueName()
+                ->accept(config('distributor.upload.oss_image.accept'))
+                ->maxSize(config('distributor.upload.oss_image.max_size'))
+                ->dir(config("distributor.upload.directory.image").'/banner/'.date("Ymd"));
+            $form->text('banner_url');
+            $form->number('position')->default(1);
+            $form->number('order')->default(0);
+            $form->switch('show')->default(1);
+            $form->saving(function (Form $form) {
+                $form->dist_id =getDistributorId();//保存时直接写死dist_id
+            });
         });
     }
 }

+ 2 - 3
app/Distributor/Forms/ImportProduct.php

@@ -56,7 +56,7 @@ class ImportProduct extends Form
                     'title' => $baseProduct->title,
                     'sku' => $baseProduct->sku, // 假设 $baseProduct 也有 sku 字段
                     'issuance_date' => $baseProduct->issuance_date, // 假设 $baseProduct 也有 issuance_date 字段
-                   // 'order' => $baseProduct->order, // 假设 $baseProduct 也有 order 字段
+                    'order' => 0, // 假设 $baseProduct 也有 order 字段
                     'enabled' => $baseProduct->enabled, // 假设 $baseProduct 也有 enabled 字段
                     'content' => $baseProduct->content, // 假设 $baseProduct 也有 content 字段
                     'parameters' => $baseProduct->parameters, // 假设 $baseProduct 也有 parameters 字段
@@ -68,7 +68,7 @@ class ImportProduct extends Form
                     'created_at' => now(), // 自动填充创建时间
                     'updated_at' => now(), // 自动填充更新时间
                 ]);
-                DistProduct::where('id', $distProduct->id)->update(['order' => $distProduct->id,'slug' => $distProduct->id]);
+                DistProduct::where('id', $distProduct->id)->update(['slug' => $distProduct->id]);
                 // 遍历 base_product_image 表中的记录,并插入到 dist_product_image 表中
                 foreach ($baseProductImages as $baseImage) {
                     DistProductImage::create([
@@ -79,7 +79,6 @@ class ImportProduct extends Form
                         'updated_at' => now(), // 自动填充更新时间
                     ]);
                 }
-
             }
 
             return $this

+ 1 - 0
lang/zh_CN/admin.php

@@ -254,5 +254,6 @@ return [
     'distro_list'=> '分销商列表',
     'distro_user'=> '分销商用户',
     'inquiry_list' => '询盘列表',
+    'banner_list' => 'banner列表',
 
 ];

+ 3 - 1
lang/zh_CN/global.php

@@ -87,6 +87,8 @@ return [
         'file'                  => '文件',
         'statistics_js'         => '统计代码',
         'address'               => '地址',
+        'position'              => '位置',
+        'banner_url'            => '跳转链接',
     ],
     'labels' => [
         'list'         => '列表',
@@ -135,7 +137,7 @@ return [
         'draft'                 => '草稿',
         'published'             => '已发布',
         'video_player'          => '视频播放器',
-        'new'                  => '等待处理',
+        'new'                  => '待分配',
         'processing'           => '处理中',
         'processed'            => '已处理',
         'home_page'            => '首页',

+ 130 - 0
resources/views/admin/pages-custom/ace.blade.php

@@ -36,9 +36,18 @@
         list-style: none;
         padding-left: 3px;
     }
+    .list-group-flush .float-right {
+        padding-right: 5px;
+    }
+    .list-group-flush .icon-x {
+        color:#cdcdcd;font-size: 10px
+    }
     .submenu .list-group-item {
         padding: 10px 0px 10px 20px;
     }
+    .submenu .list-group-item:hover {
+        background-color: rgba(221, 251, 239, 0.56);
+    }
     .custom-blue-bold {
         color: #1e1e1e; /* Bootstrap 的 primary 颜色 */
         font-weight: bold;
@@ -72,6 +81,26 @@
     .field_dist_id .pull-right {
         margin-left: auto; /* 将删除按钮推到右侧 */
     }
+
+
+    #addFileModal .modal-body {
+        display: flex;
+        align-items: center;
+        height: 100px; /* 可根据需要调整高度 */
+        background-color: #ffffff;
+    }
+    #addFileModal .modal-body div {
+        display: flex;
+        align-items: center;
+    }
+    #addFileModal .modal-body .text-right {
+        padding-left: 5px;
+        padding-right: 5px;
+    }
+    #addFileModal .modal-sm {
+        max-width:320px;
+    }
+</style>
 </style>
 
 <div class="container-fluid" style="padding: 0px;">
@@ -114,6 +143,35 @@
     </div>
 </div>
 
+<!-- Modal -->
+
+
+<!-- Modal -->
+<div class="modal fade" id="addFileModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
+    <div class="modal-dialog modal-sm" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+            </div>
+            <div class="modal-body">
+                <div class="row">
+                    <div class="col-xs-2 text-right">
+                        File Name:
+                    </div>
+                    <div class="col-xs-8">
+                        <input type="hidden" class="form-control" id="file_path_name" name="file_path_name">
+                        <input type="text" class="form-control" id="file_name_input" name="file_name_input">
+                    </div>
+                    <div class="col-xs-2">
+                        <button type="button" class="btn btn-success" id="addFileButton">OK</button>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+
+
 <script src="/vendor/ace/ace.js" type="text/javascript"></script>
 <script>
     //https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ace.js
@@ -208,6 +266,7 @@
                     layer.close(loadingIndex);
                     $('.main-card-body').html(response);
                     actionclick();
+                    delFileButtonClick();
                 }
             });
         }
@@ -321,6 +380,77 @@
                 }
             });
         })
+
+        //文件新增
+        $('#addFileModal').on('show.bs.modal', function (event) {
+            // 获取触发模态框的元素
+            var button = $(event.relatedTarget);
+            // 获取 file_path_name 的值
+            var filePathName = button.attr('file_path_name');
+            $('#file_path_name').val(filePathName);
+        });
+
+        var ajaxAddDelFile = function (appearance_id,dist_id,fileId,filePathName,fileInputName,type) {
+            $.ajax({
+                url: '/prime-control/dist-template/ace',
+                type: 'POST',
+                data: {
+                    act:'add_del_tree',
+                    type: type,
+                    appearance_id: appearance_id,
+                    dist_id: dist_id,
+                    file_path_name: filePathName,
+                    file_name_input: fileInputName,
+                    file_id: fileId
+                },
+                success: function(response) {
+                    layer.close(loadingIndex);
+                    $("#file_name_input").val('')
+                    if (response.status == '1') {
+                        Dcat.success('保存成功');
+                        //刷新代码树
+                        postData();
+                    }else{
+                        Dcat.error(response.msg);
+                    }
+                }
+            });
+        }
+
+        $("#addFileButton").click(function () {
+            var filePathName = $('#file_path_name').val();
+            var fileInputName = $('#file_name_input').val();
+            var appearanceId = $('select[name="appearance_id"]').val();
+            var distId = $('input[name="dist_id"]').val();
+            if (fileInputName == '') {
+                Dcat.error('文件名不能为空');
+                return false;
+            }
+            loadingIndex = layer.load(1, {
+                shade: [0.5, '#000'] // 设置遮罩层
+            });
+            $('#addFileModal').modal('hide');
+            ajaxAddDelFile(appearanceId,distId,0,filePathName,fileInputName,'add');
+        });
+
+        function delFileButtonClick() {
+                $(".delFileButton").click(function () {
+                    var filePathName = "";
+                    var fileInputName = "";
+                    var appearanceId = $('select[name="appearance_id"]').val();
+                    var distId = $('input[name="dist_id"]').val();
+                    var fileId = $(this).attr('file_id');
+                    var fileName = $(this).attr('file_name');
+                    msg = '确定要删除'+fileName+'吗?';
+                    Dcat.confirm('确认删除',msg , function () {
+                        loadingIndex = layer.load(1, {
+                            shade: [0.5, '#000'] // 设置遮罩层
+                        });
+                        ajaxAddDelFile(appearanceId,distId,fileId,filePathName,fileInputName,'del');
+                    });
+                });
+        }
+
     });
 </script>