Przeglądaj źródła

1.移除phpexcel组件,使用phpspreadsheet组件
2.加入系统日志功能,无需ssh上服务器上看日志了

bingo 7 lat temu
rodzic
commit
30c6ec402c

+ 1 - 142
_ide_helper.php

@@ -1,7 +1,7 @@
 <?php
 /**
  * A helper file for Laravel 5, to provide autocomplete information to your IDE
- * Generated for Laravel 5.4.36 on 2018-08-16 17:31:31.
+ * Generated for Laravel 5.4.36 on 2018-08-17 14:59:56.
  *
  * This file should not be included in your code, only analyzed by your IDE!
  *
@@ -11608,145 +11608,6 @@ namespace Illuminate\Support\Facades {
  
 }
 
-namespace Maatwebsite\Excel\Facades { 
-
-    class Excel {
-        
-        /**
-         * Create a new file
-         *
-         * @param $filename
-         * @param callable|null $callback
-         * @return \Maatwebsite\Excel\LaravelExcelWriter 
-         * @static 
-         */ 
-        public static function create($filename, $callback = null)
-        {
-            return \Maatwebsite\Excel\Excel::create($filename, $callback);
-        }
-        
-        /**
-         * Load an existing file
-         *
-         * @param string $file The file we want to load
-         * @param callback|null $callback
-         * @param string|null $encoding
-         * @param bool $noBasePath
-         * @param callback|null $callbackConfigReader
-         * @return \Maatwebsite\Excel\LaravelExcelReader 
-         * @static 
-         */ 
-        public static function load($file, $callback = null, $encoding = null, $noBasePath = false, $callbackConfigReader = null)
-        {
-            return \Maatwebsite\Excel\Excel::load($file, $callback, $encoding, $noBasePath, $callbackConfigReader);
-        }
-        
-        /**
-         * Set select sheets
-         *
-         * @param $sheets
-         * @return \Maatwebsite\Excel\LaravelExcelReader 
-         * @static 
-         */ 
-        public static function selectSheets($sheets = array())
-        {
-            return \Maatwebsite\Excel\Excel::selectSheets($sheets);
-        }
-        
-        /**
-         * Select sheets by index
-         *
-         * @param array $sheets
-         * @return $this 
-         * @static 
-         */ 
-        public static function selectSheetsByIndex($sheets = array())
-        {
-            return \Maatwebsite\Excel\Excel::selectSheetsByIndex($sheets);
-        }
-        
-        /**
-         * Batch import
-         *
-         * @param $files
-         * @param callback $callback
-         * @return \PHPExcel 
-         * @static 
-         */ 
-        public static function batch($files, $callback)
-        {
-            return \Maatwebsite\Excel\Excel::batch($files, $callback);
-        }
-        
-        /**
-         * Create a new file and share a view
-         *
-         * @param string $view
-         * @param array $data
-         * @param array $mergeData
-         * @return \Maatwebsite\Excel\LaravelExcelWriter 
-         * @static 
-         */ 
-        public static function shareView($view, $data = array(), $mergeData = array())
-        {
-            return \Maatwebsite\Excel\Excel::shareView($view, $data, $mergeData);
-        }
-        
-        /**
-         * Create a new file and load a view
-         *
-         * @param string $view
-         * @param array $data
-         * @param array $mergeData
-         * @return \Maatwebsite\Excel\LaravelExcelWriter 
-         * @static 
-         */ 
-        public static function loadView($view, $data = array(), $mergeData = array())
-        {
-            return \Maatwebsite\Excel\Excel::loadView($view, $data, $mergeData);
-        }
-        
-        /**
-         * Set filters
-         *
-         * @param array $filters
-         * @return \Excel 
-         * @static 
-         */ 
-        public static function registerFilters($filters = array())
-        {
-            return \Maatwebsite\Excel\Excel::registerFilters($filters);
-        }
-        
-        /**
-         * Enable certain filters
-         *
-         * @param string|array $filter
-         * @param bool|false|string $class
-         * @return \Excel 
-         * @static 
-         */ 
-        public static function filter($filter, $class = false)
-        {
-            return \Maatwebsite\Excel\Excel::filter($filter, $class);
-        }
-        
-        /**
-         * Get register, enabled (or both) filters
-         *
-         * @param string|boolean $key [description]
-         * @return array 
-         * @static 
-         */ 
-        public static function getFilters($key = false)
-        {
-            return \Maatwebsite\Excel\Excel::getFilters($key);
-        }
-         
-    }
- 
-}
-
 namespace Mews\Captcha\Facades { 
 
     class Captcha {
@@ -14485,8 +14346,6 @@ namespace  {
 
     class View extends \Illuminate\Support\Facades\View {}
 
-    class Excel extends \Maatwebsite\Excel\Facades\Excel {}
-
     class Captcha extends \Mews\Captcha\Facades\Captcha {}
 
     class Agent extends \Jenssegers\Agent\Facades\Agent {}

+ 23 - 17
app/Http/Controllers/AdminController.php

@@ -28,7 +28,8 @@ use App\Http\Models\UserSubscribe;
 use App\Http\Models\UserTrafficDaily;
 use App\Http\Models\UserTrafficHourly;
 use App\Http\Models\UserTrafficLog;
-use Maatwebsite\Excel\Facades\Excel;
+use PhpOffice\PhpSpreadsheet\Spreadsheet;
+use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 use Illuminate\Http\Request;
 use Redirect;
 use Response;
@@ -1426,6 +1427,7 @@ EOF;
                 'hourlyData' => "'" . implode("','", $hourlyData) . "'"
             ];
         }
+
         // 本月天数数据
         $monthDays = [];
         $monthHasDays = date("t");
@@ -1932,22 +1934,26 @@ EOF;
     {
         $inviteList = Invite::query()->where('status', 0)->orderBy('id', 'asc')->get();
 
-        $filename = '邀请码' . date('Ymd');
-        Excel::create($filename, function ($excel) use ($inviteList) {
-            $excel->sheet('邀请码', function ($sheet) use ($inviteList) {
-                $sheet->row(1, [
-                    '邀请码', '有效期'
-                ]);
-
-                if (!$inviteList->isEmpty()) {
-                    foreach ($inviteList as $k => $vo) {
-                        $sheet->row($k + 2, [
-                            $vo->code, $vo->dateline
-                        ]);
-                    }
-                }
-            });
-        })->export('xls');
+        $filename = '邀请码' . date('Ymd') . '.xlsx';
+
+        $spreadsheet = new Spreadsheet();
+        $spreadsheet->getProperties()->setCreator('SSRPanel')->setLastModifiedBy('SSRPanel')->setTitle('邀请码')->setSubject('邀请码')->setDescription('')->setKeywords('')->setCategory('');
+
+        $spreadsheet->setActiveSheetIndex(0);
+        $sheet = $spreadsheet->getActiveSheet();
+        $sheet->setTitle('邀请码');
+        $sheet->fromArray(['邀请码', '有效期'], null);
+
+        foreach ($inviteList as $k => $vo) {
+            $sheet->fromArray([$vo->code, $vo->dateline], null, 'A' . ($k + 2));
+        }
+
+        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // 输出07Excel文件
+        //header('Content-Type:application/vnd.ms-excel'); // 输出Excel03版本文件
+        header('Content-Disposition: attachment;filename="' . $filename . '"');
+        header('Cache-Control: max-age=0');
+        $writer = new Xlsx($spreadsheet);
+        $writer->save('php://output');
     }
 
     // 提现申请列表

+ 51 - 46
app/Http/Controllers/CouponController.php

@@ -4,7 +4,8 @@ namespace App\Http\Controllers;
 
 use App\Http\Models\Coupon;
 use Illuminate\Http\Request;
-use Maatwebsite\Excel\Facades\Excel;
+use PhpOffice\PhpSpreadsheet\Spreadsheet;
+use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 use Response;
 use Redirect;
 use Session;
@@ -106,56 +107,60 @@ class CouponController extends Controller
         return Response::json(['status' => 'success', 'data' => '', 'message' => '删除成功']);
     }
 
-    // 导出优惠
+    // 导出
     public function exportCoupon(Request $request)
     {
         $cashCouponList = Coupon::query()->where('is_del', 0)->where('status', 0)->where('type', 1)->get();
         $discountCouponList = Coupon::query()->where('is_del', 0)->where('status', 0)->where('type', 2)->get();
         $chargeCouponList = Coupon::query()->where('is_del', 0)->where('status', 0)->where('type', 3)->get();
 
-        $filename = '卡券' . date('Ymd');
-        Excel::create($filename, function ($excel) use ($cashCouponList, $discountCouponList, $chargeCouponList) {
-            $excel->sheet('抵用券', function ($sheet) use ($cashCouponList) {
-                $sheet->row(1, [
-                    '名称', '类型', '有效期', '券码', '面额'
-                ]);
-
-                if (!$cashCouponList->isEmpty()) {
-                    foreach ($cashCouponList as $k => $vo) {
-                        $sheet->row($k + 2, [
-                            $vo->name, $vo->type == 1 ? '一次性' : '可重复', date('Y-m-d', $vo->available_start) . ' ~ ' . date('Y-m-d', $vo->available_end), $vo->sn, $vo->amount
-                        ]);
-                    }
-                }
-            });
-
-            $excel->sheet('折扣券', function ($sheet) use ($discountCouponList) {
-                $sheet->row(1, [
-                    '名称', '类型', '有效期', '券码', '折扣'
-                ]);
-
-                if (!$discountCouponList->isEmpty()) {
-                    foreach ($discountCouponList as $k => $vo) {
-                        $sheet->row($k + 2, [
-                            $vo->name, $vo->type == 1 ? '一次性' : '可重复', date('Y-m-d', $vo->available_start) . ' ~ ' . date('Y-m-d', $vo->available_end), $vo->sn, $vo->discount
-                        ]);
-                    }
-                }
-            });
-
-            $excel->sheet('充值券', function ($sheet) use ($chargeCouponList) {
-                $sheet->row(1, [
-                    '名称', '类型', '有效期', '券码', '面额'
-                ]);
-
-                if (!$chargeCouponList->isEmpty()) {
-                    foreach ($chargeCouponList as $k => $vo) {
-                        $sheet->row($k + 2, [
-                            $vo->name, '一次性', date('Y-m-d', $vo->available_start) . ' ~ ' . date('Y-m-d', $vo->available_end), $vo->sn, $vo->amount
-                        ]);
-                    }
-                }
-            });
-        })->export('xls');
+        $filename = '卡券' . date('Ymd') . '.xlsx';
+        $spreadsheet = new Spreadsheet();
+        $spreadsheet->getProperties()->setCreator('SSRPanel')->setLastModifiedBy('SSRPanel')->setTitle('邀请码')->setSubject('邀请码')->setDescription('')->setKeywords('')->setCategory('');
+
+        // 抵用券
+        $spreadsheet->setActiveSheetIndex(0);
+        $sheet = $spreadsheet->getActiveSheet();
+        $sheet->setTitle('抵用券');
+        $sheet->fromArray(['名称', '类型', '有效期', '券码', '面额(元)'], null);
+        foreach ($cashCouponList as $k => $vo) {
+            $usage = '仅限一次性使用';
+            $dateRange = date('Y-m-d', $vo->available_start) . ' ~ ' . date('Y-m-d', $vo->available_end);
+            $sheet->fromArray([$vo->name, $usage, $dateRange, $vo->sn, $vo->amount], null, 'A' . ($k + 2));
+        }
+
+        // 折扣券
+        $spreadsheet->createSheet(1);
+        $spreadsheet->setActiveSheetIndex(1);
+        $sheet = $spreadsheet->getActiveSheet();
+        $sheet->setTitle('折扣券');
+        $sheet->fromArray(['名称', '类型', '有效期', '券码', '折扣(折)'], null);
+        foreach ($discountCouponList as $k => $vo) {
+            $usage = $vo->usage == 1 ? '仅限一次性使用' : '可重复使用';
+            $dateRange = date('Y-m-d', $vo->available_start) . ' ~ ' . date('Y-m-d', $vo->available_end);
+            $sheet->fromArray([$vo->name, $usage, $dateRange, $vo->sn, $vo->discount], null, 'A' . ($k + 2));
+        }
+
+        // 充值券
+        $spreadsheet->createSheet(2);
+        $spreadsheet->setActiveSheetIndex(2);
+        $sheet = $spreadsheet->getActiveSheet();
+        $sheet->setTitle('充值券');
+        $sheet->fromArray(['名称', '类型', '有效期', '券码', '面额(元)'], null);
+        foreach ($chargeCouponList as $k => $vo) {
+            $usage = '仅限一次性使用';
+            $dateRange = date('Y-m-d', $vo->available_start) . ' ~ ' . date('Y-m-d', $vo->available_end);
+            $sheet->fromArray([$vo->name, $usage, $dateRange, $vo->sn, $vo->amount], null, 'A' . ($k + 2));
+        }
+
+        // 指针切换回第一个sheet
+        $spreadsheet->setActiveSheetIndex(0);
+
+        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // 输出07Excel文件
+        //header('Content-Type:application/vnd.ms-excel'); // 输出Excel03版本文件
+        header('Content-Disposition: attachment;filename="' . $filename . '"');
+        header('Cache-Control: max-age=0');
+        $writer = new Xlsx($spreadsheet);
+        $writer->save('php://output');
     }
 }

+ 1 - 1
composer.json

@@ -11,13 +11,13 @@
         "jenssegers/agent": "^2.5",
         "laravel/framework": "5.4.*",
         "laravel/tinker": "~1.0",
-        "maatwebsite/excel": "~2.1.0",
         "mews/captcha": "^2.1",
         "mews/purifier": "^2.0",
         "openlss/lib-array2xml": "^0.5.1",
         "overtrue/laravel-lang": "~3.0",
         "paypal/rest-api-sdk-php": "*",
         "phpoffice/phpspreadsheet": "^1.4",
+        "rap2hpoutre/laravel-log-viewer": "^0.19.1",
         "youzan/open-sdk": "^1.0"
     },
     "require-dev": {

+ 62 - 333
composer.lock

@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "b15449fa5a83f0325a7787e419e06861",
+    "content-hash": "4ccf41f17df4f7e9b6217b36d7d0a8a1",
     "packages": [
         {
             "name": "barryvdh/laravel-ide-helper",
@@ -906,70 +906,6 @@
             ],
             "time": "2017-11-10T10:35:35+00:00"
         },
-        {
-            "name": "jeremeamia/SuperClosure",
-            "version": "2.4.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/jeremeamia/super_closure.git",
-                "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/jeremeamia/super_closure/zipball/5707d5821b30b9a07acfb4d76949784aaa0e9ce9",
-                "reference": "5707d5821b30b9a07acfb4d76949784aaa0e9ce9",
-                "shasum": "",
-                "mirrors": [
-                    {
-                        "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
-                        "preferred": true
-                    }
-                ]
-            },
-            "require": {
-                "nikic/php-parser": "^1.2|^2.0|^3.0|^4.0",
-                "php": ">=5.4",
-                "symfony/polyfill-php56": "^1.0"
-            },
-            "require-dev": {
-                "phpunit/phpunit": "^4.0|^5.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "2.4-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "SuperClosure\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Jeremy Lindblom",
-                    "email": "[email protected]",
-                    "homepage": "https://github.com/jeremeamia",
-                    "role": "Developer"
-                }
-            ],
-            "description": "Serialize Closure objects, including their context and binding",
-            "homepage": "https://github.com/jeremeamia/super_closure",
-            "keywords": [
-                "closure",
-                "function",
-                "lambda",
-                "parser",
-                "serializable",
-                "serialize",
-                "tokenizer"
-            ],
-            "time": "2018-03-21T22:21:57+00:00"
-        },
         {
             "name": "laravel/framework",
             "version": "v5.4.36",
@@ -1264,90 +1200,6 @@
             ],
             "time": "2018-05-07T08:44:23+00:00"
         },
-        {
-            "name": "maatwebsite/excel",
-            "version": "2.1.28",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/Maatwebsite/Laravel-Excel.git",
-                "reference": "06e397a30595d1082963d6aa5ec0c3a9961d70c8"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/Maatwebsite/Laravel-Excel/zipball/06e397a30595d1082963d6aa5ec0c3a9961d70c8",
-                "reference": "06e397a30595d1082963d6aa5ec0c3a9961d70c8",
-                "shasum": "",
-                "mirrors": [
-                    {
-                        "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
-                        "preferred": true
-                    }
-                ]
-            },
-            "require": {
-                "illuminate/cache": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
-                "illuminate/config": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
-                "illuminate/filesystem": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
-                "illuminate/support": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
-                "jeremeamia/superclosure": "^2.3",
-                "nesbot/carbon": "~1.0",
-                "php": ">=5.5",
-                "phpoffice/phpexcel": "^1.8.1",
-                "tijsverkoyen/css-to-inline-styles": "~2.0"
-            },
-            "require-dev": {
-                "mockery/mockery": "~1.0",
-                "orchestra/testbench": "3.1.*|3.2.*|3.3.*|3.4.*|3.5.*|3.6.*",
-                "phpseclib/phpseclib": "~1.0",
-                "phpunit/phpunit": "~4.0"
-            },
-            "suggest": {
-                "illuminate/http": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
-                "illuminate/queue": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
-                "illuminate/routing": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*",
-                "illuminate/view": "5.0.*|5.1.*|5.2.*|5.3.*|5.4.*|5.5.*|5.6.*"
-            },
-            "type": "library",
-            "extra": {
-                "laravel": {
-                    "providers": [
-                        "Maatwebsite\\Excel\\ExcelServiceProvider"
-                    ],
-                    "aliases": {
-                        "Excel": "Maatwebsite\\Excel\\Facades\\Excel"
-                    }
-                }
-            },
-            "autoload": {
-                "classmap": [
-                    "src/Maatwebsite/Excel"
-                ],
-                "psr-0": {
-                    "Maatwebsite\\Excel\\": "src/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Maatwebsite.nl",
-                    "email": "[email protected]"
-                }
-            ],
-            "description": "An eloquent way of importing and exporting Excel and CSV in Laravel 4 with the power of PHPExcel",
-            "keywords": [
-                "PHPExcel",
-                "batch",
-                "csv",
-                "excel",
-                "export",
-                "import",
-                "laravel"
-            ],
-            "time": "2018-05-09T14:34:18+00:00"
-        },
         {
             "name": "markbaker/complex",
             "version": "1.4.6",
@@ -2135,70 +1987,6 @@
             ],
             "time": "2017-11-13T19:21:59+00:00"
         },
-        {
-            "name": "phpoffice/phpexcel",
-            "version": "1.8.1",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/PHPOffice/PHPExcel.git",
-                "reference": "372c7cbb695a6f6f1e62649381aeaa37e7e70b32"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/PHPOffice/PHPExcel/zipball/372c7cbb695a6f6f1e62649381aeaa37e7e70b32",
-                "reference": "372c7cbb695a6f6f1e62649381aeaa37e7e70b32",
-                "shasum": "",
-                "mirrors": [
-                    {
-                        "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
-                        "preferred": true
-                    }
-                ]
-            },
-            "require": {
-                "ext-xml": "*",
-                "ext-xmlwriter": "*",
-                "php": ">=5.2.0"
-            },
-            "type": "library",
-            "autoload": {
-                "psr-0": {
-                    "PHPExcel": "Classes/"
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "LGPL"
-            ],
-            "authors": [
-                {
-                    "name": "Maarten Balliauw",
-                    "homepage": "http://blog.maartenballiauw.be"
-                },
-                {
-                    "name": "Mark Baker"
-                },
-                {
-                    "name": "Franck Lefevre",
-                    "homepage": "http://blog.rootslabs.net"
-                },
-                {
-                    "name": "Erik Tilt"
-                }
-            ],
-            "description": "PHPExcel - OpenXML - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
-            "homepage": "http://phpexcel.codeplex.com",
-            "keywords": [
-                "OpenXML",
-                "excel",
-                "php",
-                "spreadsheet",
-                "xls",
-                "xlsx"
-            ],
-            "abandoned": "phpoffice/phpspreadsheet",
-            "time": "2015-05-01T07:00:55+00:00"
-        },
         {
             "name": "phpoffice/phpspreadsheet",
             "version": "1.4.0",
@@ -2623,6 +2411,67 @@
             ],
             "time": "2018-07-19T23:38:55+00:00"
         },
+        {
+            "name": "rap2hpoutre/laravel-log-viewer",
+            "version": "v0.19.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/rap2hpoutre/laravel-log-viewer.git",
+                "reference": "3790892b2b912e7ebaf9ce9868bbe93d542309c7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/rap2hpoutre/laravel-log-viewer/zipball/3790892b2b912e7ebaf9ce9868bbe93d542309c7",
+                "reference": "3790892b2b912e7ebaf9ce9868bbe93d542309c7",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "illuminate/support": "4.2.*|5.*",
+                "php": ">=5.4.0"
+            },
+            "type": "laravel-package",
+            "extra": {
+                "laravel": {
+                    "providers": [
+                        "Rap2hpoutre\\LaravelLogViewer\\LaravelLogViewerServiceProvider"
+                    ]
+                }
+            },
+            "autoload": {
+                "classmap": [
+                    "src/controllers"
+                ],
+                "psr-0": {
+                    "Rap2hpoutre\\LaravelLogViewer\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "rap2hpoutre",
+                    "email": "[email protected]"
+                }
+            ],
+            "description": "A Laravel log reader",
+            "keywords": [
+                "laravel",
+                "log",
+                "log-reader",
+                "log-viewer",
+                "logging",
+                "lumen"
+            ],
+            "time": "2018-07-17T21:31:45+00:00"
+        },
         {
             "name": "swiftmailer/swiftmailer",
             "version": "v5.4.12",
@@ -3349,68 +3198,6 @@
             ],
             "time": "2018-08-06T14:22:27+00:00"
         },
-        {
-            "name": "symfony/polyfill-php56",
-            "version": "v1.9.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-php56.git",
-                "reference": "7b4fc009172cc0196535b0328bd1226284a28000"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/7b4fc009172cc0196535b0328bd1226284a28000",
-                "reference": "7b4fc009172cc0196535b0328bd1226284a28000",
-                "shasum": "",
-                "mirrors": [
-                    {
-                        "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
-                        "preferred": true
-                    }
-                ]
-            },
-            "require": {
-                "php": ">=5.3.3",
-                "symfony/polyfill-util": "~1.0"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.9-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Polyfill\\Php56\\": ""
-                },
-                "files": [
-                    "bootstrap.php"
-                ]
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "[email protected]"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compatibility",
-                "polyfill",
-                "portable",
-                "shim"
-            ],
-            "time": "2018-08-06T14:22:27+00:00"
-        },
         {
             "name": "symfony/polyfill-php70",
             "version": "v1.9.0",
@@ -3476,64 +3263,6 @@
             ],
             "time": "2018-08-06T14:22:27+00:00"
         },
-        {
-            "name": "symfony/polyfill-util",
-            "version": "v1.9.0",
-            "source": {
-                "type": "git",
-                "url": "https://github.com/symfony/polyfill-util.git",
-                "reference": "8e15d04ba3440984d23e7964b2ee1d25c8de1581"
-            },
-            "dist": {
-                "type": "zip",
-                "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/8e15d04ba3440984d23e7964b2ee1d25c8de1581",
-                "reference": "8e15d04ba3440984d23e7964b2ee1d25c8de1581",
-                "shasum": "",
-                "mirrors": [
-                    {
-                        "url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
-                        "preferred": true
-                    }
-                ]
-            },
-            "require": {
-                "php": ">=5.3.3"
-            },
-            "type": "library",
-            "extra": {
-                "branch-alias": {
-                    "dev-master": "1.9-dev"
-                }
-            },
-            "autoload": {
-                "psr-4": {
-                    "Symfony\\Polyfill\\Util\\": ""
-                }
-            },
-            "notification-url": "https://packagist.org/downloads/",
-            "license": [
-                "MIT"
-            ],
-            "authors": [
-                {
-                    "name": "Nicolas Grekas",
-                    "email": "[email protected]"
-                },
-                {
-                    "name": "Symfony Community",
-                    "homepage": "https://symfony.com/contributors"
-                }
-            ],
-            "description": "Symfony utilities for portability of PHP codes",
-            "homepage": "https://symfony.com",
-            "keywords": [
-                "compat",
-                "compatibility",
-                "polyfill",
-                "shim"
-            ],
-            "time": "2018-08-06T14:22:27+00:00"
-        },
         {
             "name": "symfony/process",
             "version": "v3.4.14",

+ 1 - 2
config/app.php

@@ -180,11 +180,11 @@ return [
         App\Providers\RouteServiceProvider::class,
 
         Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
-        Maatwebsite\Excel\ExcelServiceProvider::class,
         Mews\Captcha\CaptchaServiceProvider::class,
         Jenssegers\Agent\AgentServiceProvider::class,
         Overtrue\LaravelLang\TranslationServiceProvider::class,
         Mews\Purifier\PurifierServiceProvider::class,
+        Rap2hpoutre\LaravelLogViewer\LaravelLogViewerServiceProvider::class,
 
     ],
 
@@ -234,7 +234,6 @@ return [
         'URL' => Illuminate\Support\Facades\URL::class,
         'Validator' => Illuminate\Support\Facades\Validator::class,
         'View' => Illuminate\Support\Facades\View::class,
-        'Excel' => Maatwebsite\Excel\Facades\Excel::class,
         'Captcha' => Mews\Captcha\Facades\Captcha::class,
         'Agent' => Jenssegers\Agent\Facades\Agent::class,
         'Purifier' => Mews\Purifier\Facades\Purifier::class,

+ 4 - 3
config/domains.php

@@ -31,7 +31,8 @@ return [
     'zm', 'zone', 'dj', 'do', 'eg', 'eh', 'er', 'et', 'fj', 'fk', 'fm', 'gallery', 'gb', 'ge', 'gf', 'gh', 'gm', 'xin',
     'gn', 'gp', 'gq', 'gr', 'gt', 'gu', 'gw', 'hm', 'jetzt', 'jm', 'jo', 'kh', 'km', 'kn', 'kp', 'kred', 'kw', 'ky',
     'lb', 'lk', 'lr', 'ls', 'mc', 'mf', 'mh', 'mil', 'mm', 'moe', 'mq', 'mr', 'mt', 'mv', 'mw', 'mz', 'nagoya', 'ne',
-    'neustar', 'ni', 'np', 'nr', 'nyc', 'okinawa', 'pa', 'pg', 'ph', 'pk', 'pn', 'ps', 'py', 'qpon', 'ren', 'rw',
-    'sd', 'sj', 'sl', 'sohu', 'sr', 'ss', 'sv', 'sz', 'td', 'tg', 'tj', 'tokyo', 'tp', 'trade', 'tt', 'um', 'uno',
-    'va', 'vi', 'vi', 'vn', 'webcam', 'ye', 'yokohoma', 'ryukyu', 'meet', 'vote', 'lc', 'voto', 'wed', 'zw', 'ooo'
+    'neustar', 'ni', 'np', 'nr', 'nyc', 'okinawa', 'pa', 'pg', 'ph', 'pk', 'pn', 'ps', 'py', 'qpon', 'ren', 'rw', 'krd',
+    'sd', 'sj', 'sl', 'sohu', 'sr', 'ss', 'sv', 'sz', 'td', 'tg', 'tj', 'tokyo', 'tp', 'trade', 'tt', 'um', 'uno', 'llc',
+    'va', 'vi', 'vi', 'vn', 'webcam', 'ye', 'yokohoma', 'ryukyu', 'meet', 'vote', 'lc', 'voto', 'wed', 'zw', 'ooo', 'ltda',
+    'stream', 'wtf', 'observer',
 ];

+ 0 - 704
config/excel.php

@@ -1,704 +0,0 @@
-<?php
-
-return array(
-
-    'cache'      => [
-
-        /*
-        |--------------------------------------------------------------------------
-        | Enable/Disable cell caching
-        |--------------------------------------------------------------------------
-        */
-        'enable'   => true,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Caching driver
-        |--------------------------------------------------------------------------
-        |
-        | Set the caching driver
-        |
-        | Available methods:
-        | memory|gzip|serialized|igbinary|discISAM|apc|memcache|temp|wincache|sqlite|sqlite3
-        |
-        */
-        'driver'   => 'memory',
-
-        /*
-        |--------------------------------------------------------------------------
-        | Cache settings
-        |--------------------------------------------------------------------------
-        */
-        'settings' => [
-
-            'memoryCacheSize' => '32MB',
-            'cacheTime'       => 600
-
-        ],
-
-        /*
-        |--------------------------------------------------------------------------
-        | Memcache settings
-        |--------------------------------------------------------------------------
-        */
-        'memcache' => [
-
-            'host' => 'localhost',
-            'port' => 11211,
-
-        ],
-
-        /*
-        |--------------------------------------------------------------------------
-        | Cache dir (for discISAM)
-        |--------------------------------------------------------------------------
-        */
-
-        'dir'      => storage_path('cache')
-    ],
-
-    'properties' => [
-        'creator'        => 'Maatwebsite',
-        'lastModifiedBy' => 'Maatwebsite',
-        'title'          => 'Spreadsheet',
-        'description'    => 'Default spreadsheet export',
-        'subject'        => 'Spreadsheet export',
-        'keywords'       => 'maatwebsite, excel, export',
-        'category'       => 'Excel',
-        'manager'        => 'Maatwebsite',
-        'company'        => 'Maatwebsite',
-    ],
-
-    /*
-    |--------------------------------------------------------------------------
-    | Sheets settings
-    |--------------------------------------------------------------------------
-    */
-    'sheets'     => [
-
-        /*
-        |--------------------------------------------------------------------------
-        | Default page setup
-        |--------------------------------------------------------------------------
-        */
-        'pageSetup' => [
-            'orientation'           => 'portrait',
-            'paperSize'             => '9',
-            'scale'                 => '100',
-            'fitToPage'             => false,
-            'fitToHeight'           => true,
-            'fitToWidth'            => true,
-            'columnsToRepeatAtLeft' => ['', ''],
-            'rowsToRepeatAtTop'     => [0, 0],
-            'horizontalCentered'    => false,
-            'verticalCentered'      => false,
-            'printArea'             => null,
-            'firstPageNumber'       => null,
-        ],
-    ],
-
-    /*
-    |--------------------------------------------------------------------------
-    | Creator
-    |--------------------------------------------------------------------------
-    |
-    | The default creator of a new Excel file
-    |
-    */
-
-    'creator'    => 'Maatwebsite',
-
-    'csv'        => [
-        /*
-       |--------------------------------------------------------------------------
-       | Delimiter
-       |--------------------------------------------------------------------------
-       |
-       | The default delimiter which will be used to read out a CSV file
-       |
-       */
-
-        'delimiter'   => ',',
-
-        /*
-        |--------------------------------------------------------------------------
-        | Enclosure
-        |--------------------------------------------------------------------------
-        */
-
-        'enclosure'   => '"',
-
-        /*
-        |--------------------------------------------------------------------------
-        | Line endings
-        |--------------------------------------------------------------------------
-        */
-
-        'line_ending' => "\r\n",
-
-        /*
-        |--------------------------------------------------------------------------
-        | setUseBom
-        |--------------------------------------------------------------------------
-        */
-
-        'use_bom' => false
-    ],
-
-    'export'     => [
-
-        /*
-        |--------------------------------------------------------------------------
-        | Autosize columns
-        |--------------------------------------------------------------------------
-        |
-        | Disable/enable column autosize or set the autosizing for
-        | an array of columns ( array('A', 'B') )
-        |
-        */
-        'autosize'                    => true,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Autosize method
-        |--------------------------------------------------------------------------
-        |
-        | --> PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX
-        | The default is based on an estimate, which does its calculation based
-        | on the number of characters in the cell value (applying any calculation
-        | and format mask, and allowing for wordwrap and rotation) and with an
-        | "arbitrary" adjustment based on the font (Arial, Calibri or Verdana,
-        | defaulting to Calibri if any other font is used) and a proportional
-        | adjustment for the font size.
-        |
-        | --> PHPExcel_Shared_Font::AUTOSIZE_METHOD_EXACT
-        | The second method is more accurate, based on actual style formatting as
-        | well (bold, italic, etc), and is calculated by generating a gd2 imagettf
-        | bounding box and using its dimensions to determine the size; but this
-        | method is significantly slower, and its accuracy is still dependent on
-        | having the appropriate fonts installed.
-        |
-        */
-        'autosize-method'             => PHPExcel_Shared_Font::AUTOSIZE_METHOD_APPROX,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Auto generate table heading
-        |--------------------------------------------------------------------------
-        |
-        | If set to true, the array indices (or model attribute names)
-        | will automatically be used as first row (table heading)
-        |
-        */
-        'generate_heading_by_indices' => true,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Auto set alignment on merged cells
-        |--------------------------------------------------------------------------
-        */
-        'merged_cell_alignment'       => 'left',
-
-        /*
-        |--------------------------------------------------------------------------
-        | Pre-calculate formulas during export
-        |--------------------------------------------------------------------------
-        */
-        'calculate'                   => false,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Include Charts during export
-        |--------------------------------------------------------------------------
-        */
-        'includeCharts'               => false,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Default sheet settings
-        |--------------------------------------------------------------------------
-        */
-        'sheets'                      => [
-
-            /*
-            |--------------------------------------------------------------------------
-            | Default page margin
-            |--------------------------------------------------------------------------
-            |
-            | 1) When set to false, default margins will be used
-            | 2) It's possible to enter a single margin which will
-            |    be used for all margins.
-            | 3) Alternatively you can pass an array with 4 margins
-            |    Default order: array(top, right, bottom, left)
-            |
-            */
-            'page_margin'          => false,
-
-            /*
-            |--------------------------------------------------------------------------
-            | Value in source array that stands for blank cell
-            |--------------------------------------------------------------------------
-            */
-            'nullValue'            => null,
-
-            /*
-            |--------------------------------------------------------------------------
-            | Insert array starting from this cell address as the top left coordinate
-            |--------------------------------------------------------------------------
-            */
-            'startCell'            => 'A1',
-
-            /*
-            |--------------------------------------------------------------------------
-            | Apply strict comparison when testing for null values in the array
-            |--------------------------------------------------------------------------
-            */
-            'strictNullComparison' => false
-        ],
-
-        /*
-        |--------------------------------------------------------------------------
-        | Store settings
-        |--------------------------------------------------------------------------
-        */
-
-        'store'                       => [
-
-            /*
-            |--------------------------------------------------------------------------
-            | Path
-            |--------------------------------------------------------------------------
-            |
-            | The path we want to save excel file to
-            |
-            */
-            'path'       => storage_path('exports'),
-
-            /*
-            |--------------------------------------------------------------------------
-            | Return info
-            |--------------------------------------------------------------------------
-            |
-            | Whether we want to return information about the stored file or not
-            |
-            */
-            'returnInfo' => false
-
-        ],
-
-        /*
-        |--------------------------------------------------------------------------
-        | PDF Settings
-        |--------------------------------------------------------------------------
-        */
-        'pdf'                         => [
-
-            /*
-            |--------------------------------------------------------------------------
-            | PDF Drivers
-            |--------------------------------------------------------------------------
-            | Supported: DomPDF, tcPDF, mPDF
-            */
-            'driver'  => 'DomPDF',
-
-            /*
-            |--------------------------------------------------------------------------
-            | PDF Driver settings
-            |--------------------------------------------------------------------------
-            */
-            'drivers' => [
-
-                /*
-                |--------------------------------------------------------------------------
-                | DomPDF settings
-                |--------------------------------------------------------------------------
-                */
-                'DomPDF' => [
-                    'path' => base_path('vendor/dompdf/dompdf/')
-                ],
-
-                /*
-                |--------------------------------------------------------------------------
-                | tcPDF settings
-                |--------------------------------------------------------------------------
-                */
-                'tcPDF'  => [
-                    'path' => base_path('vendor/tecnick.com/tcpdf/')
-                ],
-
-                /*
-                |--------------------------------------------------------------------------
-                | mPDF settings
-                |--------------------------------------------------------------------------
-                */
-                'mPDF'   => [
-                    'path' => base_path('vendor/mpdf/mpdf/')
-                ],
-            ]
-        ]
-    ],
-
-    'filters'    => [
-        /*
-        |--------------------------------------------------------------------------
-        | Register read filters
-        |--------------------------------------------------------------------------
-        */
-
-        'registered' => [
-            'chunk' => 'Maatwebsite\Excel\Filters\ChunkReadFilter'
-        ],
-
-        /*
-        |--------------------------------------------------------------------------
-        | Enable certain filters for every file read
-        |--------------------------------------------------------------------------
-        */
-
-        'enabled'    => []
-    ],
-
-    'import'     => [
-
-        /*
-        |--------------------------------------------------------------------------
-        | Has heading
-        |--------------------------------------------------------------------------
-        |
-        | The sheet has a heading (first) row which we can use as attribute names
-        |
-        | Options: true|false|slugged|slugged_with_count|ascii|numeric|hashed|trans|original
-        |
-        */
-
-        'heading'                 => 'slugged',
-
-        /*
-        |--------------------------------------------------------------------------
-        | First Row with data or heading of data
-        |--------------------------------------------------------------------------
-        |
-        | If the heading row is not the first row, or the data doesn't start
-        | on the first row, here you can change the start row.
-        |
-        */
-
-        'startRow'                => 1,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Cell name word separator
-        |--------------------------------------------------------------------------
-        |
-        | The default separator which is used for the cell names
-        | Note: only applies to 'heading' settings 'true' && 'slugged'
-        |
-        */
-
-        'separator'               => '_',
-
-        /*
-        |--------------------------------------------------------------------------
-        | Slug whitelisting
-        |--------------------------------------------------------------------------
-        |
-        | Here you can whitelist certain characters in the slug.
-        | E.g. user.last_name will not remove . and _
-        | Note: only applies to 'heading' settings 'true' && 'slugged'
-        |
-        */
-
-        'slug_whitelist'       => '._',
-
-        /*
-        |--------------------------------------------------------------------------
-        | Include Charts during import
-        |--------------------------------------------------------------------------
-        */
-
-        'includeCharts'           => false,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Sheet heading conversion
-        |--------------------------------------------------------------------------
-        |
-        | Convert headings to ASCII
-        | Note: only applies to 'heading' settings 'true' && 'slugged'
-        |
-        */
-
-        'to_ascii'                => true,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Import encoding
-        |--------------------------------------------------------------------------
-        */
-
-        'encoding'                => [
-
-            'input'  => 'UTF-8',
-            'output' => 'UTF-8'
-
-        ],
-
-        /*
-        |--------------------------------------------------------------------------
-        | Calculate
-        |--------------------------------------------------------------------------
-        |
-        | By default cells with formulas will be calculated.
-        |
-        */
-
-        'calculate'               => true,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Ignore empty cells
-        |--------------------------------------------------------------------------
-        |
-        | By default empty cells are not ignored
-        |
-        */
-
-        'ignoreEmpty'             => false,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Force sheet collection
-        |--------------------------------------------------------------------------
-        |
-        | For a sheet collection even when there is only 1 sheets.
-        | When set to false and only 1 sheet found, the parsed file will return
-        | a row collection instead of a sheet collection.
-        | When set to true, it will return a sheet collection instead.
-        |
-        */
-        'force_sheets_collection' => false,
-
-        /*
-        |--------------------------------------------------------------------------
-        | Date format
-        |--------------------------------------------------------------------------
-        |
-        | The format dates will be parsed to
-        |
-        */
-
-        'dates'                   => [
-
-            /*
-            |--------------------------------------------------------------------------
-            | Enable/disable date formatting
-            |--------------------------------------------------------------------------
-            */
-            'enabled' => true,
-
-            /*
-            |--------------------------------------------------------------------------
-            | Default date format
-            |--------------------------------------------------------------------------
-            |
-            | If set to false, a carbon object will return
-            |
-            */
-            'format'  => false,
-
-            /*
-            |--------------------------------------------------------------------------
-            | Date columns
-            |--------------------------------------------------------------------------
-            */
-            'columns' => []
-        ],
-
-        /*
-        |--------------------------------------------------------------------------
-        | Import sheets by config
-        |--------------------------------------------------------------------------
-        */
-        'sheets'                  => [
-
-            /*
-            |--------------------------------------------------------------------------
-            | Example sheet
-            |--------------------------------------------------------------------------
-            |
-            | Example sheet "test" will grab the firstname at cell A2
-            |
-            */
-
-            'test' => [
-
-                'firstname' => 'A2'
-
-            ]
-
-        ]
-    ],
-
-    'views'      => [
-
-        /*
-        |--------------------------------------------------------------------------
-        | Styles
-        |--------------------------------------------------------------------------
-        |
-        | The default styles which will be used when parsing a view
-        |
-        */
-
-        'styles' => [
-
-            /*
-            |--------------------------------------------------------------------------
-            | Table headings
-            |--------------------------------------------------------------------------
-            */
-            'th'     => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 12,
-                ]
-            ],
-
-            /*
-            |--------------------------------------------------------------------------
-            | Strong tags
-            |--------------------------------------------------------------------------
-            */
-            'strong' => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 12,
-                ]
-            ],
-
-            /*
-            |--------------------------------------------------------------------------
-            | Bold tags
-            |--------------------------------------------------------------------------
-            */
-            'b'      => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 12,
-                ]
-            ],
-
-            /*
-            |--------------------------------------------------------------------------
-            | Italic tags
-            |--------------------------------------------------------------------------
-            */
-            'i'      => [
-                'font' => [
-                    'italic' => true,
-                    'size'   => 12,
-                ]
-            ],
-
-            /*
-            |--------------------------------------------------------------------------
-            | Heading 1
-            |--------------------------------------------------------------------------
-            */
-            'h1'     => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 24,
-                ]
-            ],
-
-            /*
-            |--------------------------------------------------------------------------
-            | Heading 2
-            |--------------------------------------------------------------------------
-            */
-            'h2'     => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 18,
-                ]
-            ],
-
-            /*
-            |--------------------------------------------------------------------------
-            | Heading 3
-            |--------------------------------------------------------------------------
-            */
-            'h3'     => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 13.5,
-                ]
-            ],
-
-            /*
-             |--------------------------------------------------------------------------
-             | Heading 4
-             |--------------------------------------------------------------------------
-             */
-            'h4'     => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 12,
-                ]
-            ],
-
-            /*
-             |--------------------------------------------------------------------------
-             | Heading 5
-             |--------------------------------------------------------------------------
-             */
-            'h5'     => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 10,
-                ]
-            ],
-
-            /*
-             |--------------------------------------------------------------------------
-             | Heading 6
-             |--------------------------------------------------------------------------
-             */
-            'h6'     => [
-                'font' => [
-                    'bold' => true,
-                    'size' => 7.5,
-                ]
-            ],
-
-            /*
-             |--------------------------------------------------------------------------
-             | Hyperlinks
-             |--------------------------------------------------------------------------
-             */
-            'a'      => [
-                'font' => [
-                    'underline' => true,
-                    'color'     => ['argb' => 'FF0000FF'],
-                ]
-            ],
-
-            /*
-             |--------------------------------------------------------------------------
-             | Horizontal rules
-             |--------------------------------------------------------------------------
-             */
-            'hr'     => [
-                'borders' => [
-                    'bottom' => [
-                        'style' => 'thin',
-                        'color' => ['FF000000']
-                    ],
-                ]
-            ]
-        ]
-
-    ]
-
-);

+ 0 - 1
readme.md

@@ -1,4 +1,3 @@
-
 ## 项目描述
 ````
 1.SSR多节点账号管理面板,兼容SS、SSRR,需配合SSR或SSRR版后端使用

+ 7 - 1
resources/views/admin/layouts.blade.php

@@ -293,10 +293,16 @@
                         </li>
                         <li class="nav-item {{in_array(Request::path(), ['sensitiveWords/list', 'sensitiveWords/add']) ? 'active open' : ''}}">
                             <a href="{{url('sensitiveWords/list')}}" class="nav-link">
-                                <i class="fa fa-heartbeat"></i>
+                                <i class="fa fa-font"></i>
                                 <span class="title">敏感词管理</span>
                             </a>
                         </li>
+                        <li class="nav-item {{in_array(Request::path(), ['logs']) ? 'active open' : ''}}">
+                            <a href="{{url('logs')}}" class="nav-link" target="_blank">
+                                <i class="fa fa-cubes"></i>
+                                <span class="title">系统日志</span>
+                            </a>
+                        </li>
                     </ul>
                 </li>
                 <li class="nav-item {{in_array(Request::path(), ['admin/config', 'admin/addConfig', 'admin/system']) ? 'active open' : ''}}">

+ 1 - 0
routes/web.php

@@ -97,6 +97,7 @@ Route::group(['middleware' => ['forbidden', 'user', 'admin']], function () {
     Route::post("marketing/addPushMarketing", "MarketingController@addPushMarketing"); // 推送消息
     Route::get("sensitiveWords/list", "SensitiveWordsController@sensitiveWordslist"); // 敏感词列表
     Route::post("sensitiveWords/add", "SensitiveWordsController@addSensitiveWords"); // 添加敏感词
+    Route::get('logs', '\Rap2hpoutre\LaravelLogViewer\LogViewerController@index'); // 系统运行日志
 });
 
 Route::group(['middleware' => ['forbidden', 'user', 'affiliate']], function () {