Repository: we7coreteam/w7-rangine-project-document Branch: master Commit: 789f0287149a Files: 231 Total size: 3.5 MB Directory structure: gitextract_l4ssw8zl/ ├── .editorconfig ├── .gitignore ├── .php_cs ├── LICENSE ├── README.md ├── app/ │ ├── Command/ │ │ ├── Document/ │ │ │ └── CleanUpRecordsCommand.php │ │ ├── Install/ │ │ │ ├── InitCommand.php │ │ │ └── SyncDataCommand.php │ │ ├── Todo/ │ │ │ └── CustomCommand.php │ │ └── index.html │ ├── Controller/ │ │ ├── Admin/ │ │ │ ├── ChapterController.php │ │ │ ├── Document/ │ │ │ │ ├── ChapterApiController.php │ │ │ │ └── ChapterApiDataController.php │ │ │ ├── DocumentController.php │ │ │ ├── DocumentHomeController.php │ │ │ ├── FeedbackController.php │ │ │ ├── HomepageSettingController.php │ │ │ ├── MenuSettingController.php │ │ │ ├── SettingController.php │ │ │ ├── StarController.php │ │ │ ├── ThirdPartyLoginController.php │ │ │ ├── UploadController.php │ │ │ ├── UserController.php │ │ │ ├── UserOperateLogController.php │ │ │ ├── UserShareController.php │ │ │ └── index.html │ │ ├── BaseController.php │ │ ├── Common/ │ │ │ ├── AuthController.php │ │ │ ├── MenuController.php │ │ │ ├── UserController.php │ │ │ └── VerifyCodeController.php │ │ ├── Document/ │ │ │ ├── ChapterController.php │ │ │ ├── DocumentController.php │ │ │ ├── DocumentHomeController.php │ │ │ ├── FeedbackController.php │ │ │ └── MockApiReponseController.php │ │ └── Install/ │ │ └── IndexController.php │ ├── Exception/ │ │ ├── ErrorHttpException.php │ │ └── InternalException.php │ ├── Handler/ │ │ ├── Cache/ │ │ │ └── DbHandler.php │ │ ├── Exception/ │ │ │ └── ExceptionHandler.php │ │ └── Session/ │ │ ├── CacheHandler.php │ │ └── DbHandler.php │ ├── Helper/ │ │ └── Functions.php │ ├── Listener/ │ │ └── index.html │ ├── Message/ │ │ └── index.html │ ├── Middleware/ │ │ ├── AppAuthMiddleware.php │ │ ├── BackendDocumentPermissionMiddleware.php │ │ ├── CheckAuthMiddleware.php │ │ ├── CheckFounderMiddleware.php │ │ ├── CorsApiMiddleware.php │ │ └── FrontendDocumentPermissionMiddleware.php │ ├── Model/ │ │ ├── Entity/ │ │ │ ├── App.php │ │ │ ├── BaseModel.php │ │ │ ├── Cache.php │ │ │ ├── Document/ │ │ │ │ ├── Chapter.php │ │ │ │ ├── ChapterApi.php │ │ │ │ ├── ChapterApiData.php │ │ │ │ ├── ChapterApiExtend.php │ │ │ │ ├── ChapterApiParam.php │ │ │ │ ├── ChapterApiReponse.php │ │ │ │ └── ChapterContent.php │ │ │ ├── Document.php │ │ │ ├── DocumentFeedback.php │ │ │ ├── DocumentHome.php │ │ │ ├── DocumentPermission.php │ │ │ ├── DocumentSearch.php │ │ │ ├── Session.php │ │ │ ├── Setting.php │ │ │ ├── Star.php │ │ │ ├── User.php │ │ │ ├── UserOperateLog.php │ │ │ └── UserThirdParty.php │ │ ├── Logic/ │ │ │ ├── AppLogic.php │ │ │ ├── BaseLogic.php │ │ │ ├── ChapterLogic.php │ │ │ ├── Document/ │ │ │ │ ├── ChapterApi/ │ │ │ │ │ ├── ChapterCommonLogic.php │ │ │ │ │ ├── ChapterDemoLogic.php │ │ │ │ │ ├── ChapterImportLogic.php │ │ │ │ │ ├── ChapterRecordLogic.php │ │ │ │ │ └── ChapterRuleLogic.php │ │ │ │ ├── ChapterApiDataLogic.php │ │ │ │ ├── ChapterApiLogic.php │ │ │ │ ├── ChapterApiParamLogic.php │ │ │ │ ├── ChapterContentLogic.php │ │ │ │ └── MockApi/ │ │ │ │ └── MockApiReponseLogic.php │ │ │ ├── DocumentFeedbackLogic.php │ │ │ ├── DocumentHomeLogic.php │ │ │ ├── DocumentLogic.php │ │ │ ├── DocumentPermissionLogic.php │ │ │ ├── DocumentSearchLogic.php │ │ │ ├── HomepageSettingLogic.php │ │ │ ├── Install/ │ │ │ │ └── InstallLogic.php │ │ │ ├── MenuSettingLogic.php │ │ │ ├── OauthLogic.php │ │ │ ├── SettingLogic.php │ │ │ ├── StarLogic.php │ │ │ ├── ThirdPartyLoginLogic.php │ │ │ ├── UserLogic.php │ │ │ ├── UserOperateLogic.php │ │ │ └── UserShareLogic.php │ │ ├── Service/ │ │ │ ├── AES.php │ │ │ ├── CdnLogic.php │ │ │ ├── DbCacheLogic.php │ │ │ └── SessionLogic.php │ │ └── Validate/ │ │ └── index.html │ ├── Process/ │ │ └── index.html │ ├── Provider/ │ │ └── Socialite/ │ │ ├── ServiceProvider.php │ │ └── ThirdPartyLogin/ │ │ ├── OauthTrait.php │ │ ├── QQOauth.php │ │ ├── We7Oauth.php │ │ └── WechatOauth.php │ ├── Task/ │ │ └── index.html │ └── View/ │ └── index.html ├── bin/ │ ├── gerent │ └── server ├── composer.json ├── config/ │ ├── app.php │ ├── crontab.php │ ├── define.php │ ├── log.php │ └── server.php ├── database/ │ ├── index.html │ ├── migrations/ │ │ ├── 2020_01_02_194246_create_user_third_party.php │ │ ├── 2020_02_17_121335_alter_setting.php │ │ ├── 2020_03_02_153429_create_app.php │ │ ├── 2020_03_03_152902_alter_star.php │ │ ├── 2020_03_03_154818_alter_document.php │ │ ├── 2020_03_23_114510_table_operate_log.php │ │ ├── 2020_04_07_145338_create_document_chapter_api.php │ │ ├── 2020_04_07_145420_create_document_chapter_api_param.php │ │ ├── 2020_04_07_151451_create_document_chapter_api_extend.php │ │ ├── 2020_05_27_092518_create_document_chapter_api_reponse_table.php │ │ ├── 2020_06_11_145556_add_rule_to_document_chapter_api_param_table.php │ │ ├── 2021_03_03_170511_create_document_feedback_table.php │ │ ├── 2021_03_05_142937_create_document_chapter_api_data_table.php │ │ ├── 2021_03_08_164459_alter_respond_to_document_chapter_api_data_table.php │ │ ├── 2021_03_16_104941_create_document_home_table.php │ │ ├── 2021_03_29_110505_create_document_search_hot_table.php │ │ ├── 2021_04_09_100433_alter_user_table.php │ │ └── index.html │ └── seeds/ │ ├── DatabaseSeeder.php │ └── index.html ├── docs/ │ ├── .gitignore │ ├── build-dev.sh │ ├── build.sh │ ├── frontend/ │ │ └── apidoc.json │ └── package.json ├── install/ │ └── document.sql ├── mockApi/ │ ├── .gitignore │ ├── app.js │ └── package.json ├── public/ │ ├── css/ │ │ ├── app.45a4fd9d.css │ │ ├── chunk-06ade0a7.d9d343de.css │ │ ├── chunk-079f5797.5ffb7ccc.css │ │ ├── chunk-07e6273c.8f6be2eb.css │ │ ├── chunk-10615ad3.8f32f691.css │ │ ├── chunk-1e630799.23444e38.css │ │ ├── chunk-20afbe1d.9cfc489e.css │ │ ├── chunk-211c6b12.9850dd89.css │ │ ├── chunk-22e40c8e.2d7343f0.css │ │ ├── chunk-25f82f1a.3e053f1b.css │ │ ├── chunk-3337dd8f.3c05d3bd.css │ │ ├── chunk-3bcf66f7.0b7a87d8.css │ │ ├── chunk-416ef35e.8e4636b1.css │ │ ├── chunk-457e440b.d1b08c94.css │ │ ├── chunk-564fade6.0e433876.css │ │ ├── chunk-56652b45.339826ab.css │ │ ├── chunk-57425795.c9955d2b.css │ │ ├── chunk-5b1f82de.316d8ff0.css │ │ ├── chunk-654f0b98.193fcd50.css │ │ ├── chunk-65eafec3.169b0d4d.css │ │ ├── chunk-6a2c3c1a.356edd1a.css │ │ ├── chunk-7060d2be.ba342d3f.css │ │ ├── chunk-71aaa888.b923ac67.css │ │ ├── chunk-73af5400.9b10b85b.css │ │ ├── chunk-775b8fab.d326fcb8.css │ │ ├── chunk-a3879d6c.ffbb8d99.css │ │ ├── chunk-ab7deece.39a1833e.css │ │ ├── chunk-b09d1c24.5230f4f0.css │ │ ├── chunk-b9b22232.3c05d3bd.css │ │ ├── chunk-bd264252.3d26cc4c.css │ │ ├── chunk-d779deb8.207190f3.css │ │ ├── chunk-f66a53c0.e0f01506.css │ │ └── chunk-vendors.1603aa5b.css │ ├── index.html │ └── js/ │ ├── app.9dc9e499.js │ ├── chunk-06ade0a7.a7e4c7a7.js │ ├── chunk-079f5797.19ae5348.js │ ├── chunk-07e6273c.1984b9b7.js │ ├── chunk-10615ad3.5901db24.js │ ├── chunk-168777de.cb8bf66b.js │ ├── chunk-1e630799.897fa4c7.js │ ├── chunk-20afbe1d.bcdaad46.js │ ├── chunk-211c6b12.01b14833.js │ ├── chunk-22e40c8e.f3e7130f.js │ ├── chunk-25f82f1a.e3262c66.js │ ├── chunk-2d0ba2e6.ba43e34b.js │ ├── chunk-2d22276a.90e5dc78.js │ ├── chunk-3337dd8f.e12552ed.js │ ├── chunk-3bcf66f7.da2788c2.js │ ├── chunk-416ef35e.e3de812c.js │ ├── chunk-457e440b.71326ed5.js │ ├── chunk-564fade6.23bb5ce8.js │ ├── chunk-56652b45.b9202ad0.js │ ├── chunk-57425795.4709a7c2.js │ ├── chunk-5b1f82de.b6b71a96.js │ ├── chunk-654f0b98.4b5aff3b.js │ ├── chunk-65eafec3.92b978b7.js │ ├── chunk-6a2c3c1a.5e3ea521.js │ ├── chunk-7060d2be.17de5f7a.js │ ├── chunk-71aaa888.7c8286dc.js │ ├── chunk-73af5400.5503ef14.js │ ├── chunk-775b8fab.3c36ea5b.js │ ├── chunk-a3879d6c.c1f2b764.js │ ├── chunk-ab7deece.198a94a8.js │ ├── chunk-b09d1c24.40e2b6cd.js │ ├── chunk-b9b22232.9694579b.js │ ├── chunk-bd264252.deae42c5.js │ ├── chunk-d779deb8.cbfbc744.js │ ├── chunk-f66a53c0.e61a0c3e.js │ └── chunk-vendors.26b96680.js ├── releases.md ├── restart.sh ├── route/ │ ├── admin.php │ ├── common.php │ ├── document.php │ └── install.php ├── tests/ │ └── PoolTest.php └── tools/ ├── build.sh └── pre-commit ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] charset = utf-8 end_of_line = lf insert_final_newline = true indent_style = tab indent_size = 4 trim_trailing_whitespace = true [*.md] trim_trailing_whitespace = false ================================================ FILE: .gitignore ================================================ .buildpath .settings/ .project .idea/ .git/ vendor/ .phpintel/ .DS_Store /vendor .env /runtime ================================================ FILE: .php_cs ================================================ Tools -> External Tools 添加工具 * 2、添加 php-cs-fixer 工具,参如如下: * Name: php-fixer * Description: php-fixer * Program: /{项目根目录}/vendor/friendsofphp/php-cs-fixer/php-cs-fixer * Arguments: --config=$ProjectFileDir$/.php_cs --verbose fix "$FileDir$/$FileName$" * Working directory: 同Program * 3、Keymap -> External Tools -> php-fixer 设置快捷键 Alt+f * 4、打开要格式化的文件,按 Alt+f 保存即可 */ define('SOFT_NAME', 'WeEngine Document System'); $finder = PhpCsFixer\Finder::create() ->files() ->name('*.php') ->exclude('vendor') ->in(__DIR__) ->ignoreDotFiles(true) ->ignoreVCS(true); $fixers = array( '@PSR2' => true, 'single_quote' => true, //简单字符串应该使用单引号代替双引号; 'no_unused_imports' => true, //删除没用到的use 'no_singleline_whitespace_before_semicolons' => true, //禁止只有单行空格和分号的写法; 'no_empty_statement' => true, //多余的分号 'no_extra_consecutive_blank_lines' => true, //多余空白行 'no_blank_lines_after_class_opening' => true, //类开始标签后不应该有空白行; 'include' => true, //include 和文件路径之间需要有一个空格,文件路径不需要用括号括起来; 'no_trailing_comma_in_list_call' => true, //删除 list 语句中多余的逗号; 'no_leading_namespace_whitespace' => true, //命名空间前面不应该有空格; 'standardize_not_equals' => true, //使用 <> 代替 !=; 'blank_line_after_opening_tag' => true, //PHP开始标记后换行 'indentation_type' => true, 'no_multiline_whitespace_around_double_arrow' => true, //去掉数组=>多余的空格 'object_operator_without_whitespace' => true, //去掉->间的空格 'ternary_operator_spaces' => true, //标准化三元运算符 'binary_operator_spaces' => true, //操作符间的空格 'header_comment' => [ 'comment_type' => 'PHPDoc', 'header' => SOFT_NAME . " \r\n\r\n(c) We7Team 2019 \r\n\r\nThis is not a free software \r\nUsing it under the license terms\r\nvisited https://www.w7.cc for more details", ], //'braces' => ['position_after_anonymous_constructs' => 'same'], //设置大括号换行,暂时根本Psr //'binary_operator_spaces' => ['default' => 'align_single_space'], //等号对齐、数字箭头符号对齐 ); return PhpCsFixer\Config::create() ->setRules($fixers) ->setFinder($finder) ->setIndent("\t") ->setUsingCache(false); ================================================ FILE: LICENSE ================================================ Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: You must give any other recipients of the Work or Derivative Works a copy of this License; and You must cause any modified files to carry prominent notices stating that You changed the files; and You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "{}" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2018 微擎团队 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ================================================ FILE: README.md ================================================ ### 简介 一款基于软擎框架([https://www.rangine.com/](https://www.rangine.com/))的开源Markdown文档系统。 常驻内存,不依赖传统的 Nginx/Apache 和 PHP-FPM,全异步非阻塞、协程实现。 ### 环境要求 * PHP > 7.2.0 * PHP Swoole 扩展 >= 4.3.0 * PHP Mbstring 扩展 * PHP Pdo MySql 扩展 * PHP Redis 扩展 ### 安装 #### 下载安装包 https://github.com/we7coreteam/w7-rangine-project-document/releases/ 下载最新版的文档系统源码 #### 解压文件 下载源码后,解压到服务器目录(如:/home/wwwroot) 进入文档系统源码目录,```cd /home/wwwroot/w7-rangine-project-document``` #### 安装扩展包 ``` composer install ``` #### 运行系统 > 如果您的99端口被其他应用占用,您需要手动修改config/server文件中的 SERVER_HTTP_PORT 默认端口号 项目根目录下执行命令 ``` bin/server start ``` #### 安装系统 访问根目录/install,按照页面提示进行安装 安装完成后重启服务 重启服务:项目根目录下执行命令 ``` sh restart.sh ``` 执行数据迁移命令:项目根目录下执行命令 ``` bin/gerent migrate:migrate --force ``` 如需重新安装 请手动删除 runtime/install.lock 与.env文件 并且重启服务 ================================================ FILE: app/Command/Document/CleanUpRecordsCommand.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Command\Document; use W7\App\Model\Entity\Document\ChapterContent; use W7\Console\Command\CommandAbstract; class CleanUpRecordsCommand extends CommandAbstract { protected $description = '清理API文档缓存'; protected function configure() { $this->setName('todo:clean_up_records'); } protected function handle($options) { go(function () { $this->clean(); }); } /* * 本操作用于,更改API文档markdown结构,手动清理缓存生效 * */ public function clean() { try { ChapterContent::query()->where('layout', 1)->update(['content' => '']); $this->output->success('API文档缓存已清理'); } catch (\Exception $e) { $this->output->error($e->getMessage()); } } } ================================================ FILE: app/Command/Install/InitCommand.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Command\Install; use W7\App\Model\Logic\UserLogic; use W7\Console\Command\CommandAbstract; use W7\Core\Exception\CommandException; class InitCommand extends CommandAbstract { protected function handle($options) { try { // 是否已安装 $lockFile = RUNTIME_PATH . '/install.lock'; if (file_exists($lockFile)) { throw new CommandException('文档系统已经安装,如果需要重新安装请手动删除 runtime/install.lock 文件'); } // 版本检查 $this->checkExtension(); // 生成配置文件 $config = $this->installConfig(); $this->generateConfig($config); // 初始化数据库 $this->initDatabase($config); // 生成lock文件 file_put_contents($lockFile, 'success'); $this->output->success('安装已完成!提示:请按照文档配置,启动相关服务'); } catch (\Exception $e) { $this->output->error($e->getMessage()); } } private function generateConfig($config) { $env = file_get_contents(BASE_PATH . '/install/.env.template'); // server $env = str_replace('{{SERVER_HTTP_PORT}}', $config['server_port'], $env); // db $env = str_replace('{{DATABASE_DEFAULT_DATABASE}}', $config['db_database'], $env); $env = str_replace('{{DATABASE_DEFAULT_HOST}}', $config['db_host'], $env); $env = str_replace('{{DATABASE_DEFAULT_PORT}}', $config['db_port'], $env); $env = str_replace('{{DATABASE_DEFAULT_USERNAME}}', $config['db_username'], $env); $env = str_replace('{{DATABASE_DEFAULT_PASSWORD}}', $config['db_password'], $env); $env = str_replace('{{DATABASE_DEFAULT_PREFIX}}', $config['db_prefix'], $env); // cache $env = str_replace('{{CACHE_DEFAULT_DRIVER}}', $config['cache_driver'], $env); if ($config['cache_driver'] == 'redis') { $env = str_replace('{{CACHE_DEFAULT_HOST}}', $config['cache_host'], $env); $env = str_replace('{{CACHE_DEFAULT_PORT}}', $config['cache_port'], $env); $env = str_replace('{{CACHE_DEFAULT_PASSWORD}}', '', $env); } else { $env = str_replace('{{CACHE_DEFAULT_HOST}}', '127.0.0.1', $env); $env = str_replace('{{CACHE_DEFAULT_PORT}}', '6379', $env); $env = str_replace('{{CACHE_DEFAULT_PASSWORD}}', '', $env); } if (file_put_contents(BASE_PATH . '/.env', $env) === false) { throw new CommandException('配置文件写入失败!'); } $this->output->success('配置文件已生成!'); $this->segmentation(); } /** * @param $config * @throws CommandException */ private function initDatabase($config) { // 创建数据库 try { $connect = new \PDO("mysql:host={$config['db_host']};port={$config['db_port']};charset=utf8", $config['db_username'], $config['db_password']); $connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $sql = "CREATE DATABASE IF NOT EXISTS {$config['db_database']} DEFAULT CHARSET utf8 COLLATE utf8_general_ci;"; $connect->exec($sql); $statement = $connect->query("SHOW DATABASES LIKE '{$config['db_database']}';"); if (empty($statement->fetch())) { throw new CommandException('创建数据库失败!'); } $connect->exec("USE {$config['db_database']};"); $statement = $connect->query("SHOW TABLES LIKE '{$config['db_prefix']}%';"); if (!empty($statement->fetch())) { throw new CommandException('您的数据库不为空,请重新建立数据库或清空该数据库或更改表前缀!'); } // 导入数据 $importSql = file_get_contents(BASE_PATH . '/install/document.sql'); $importSql = str_replace('ims_', $config['db_prefix'], $importSql); $connect->exec($importSql); $connect = null; // 创建系统管理员账号 $this->createAdmin($config); $this->output->success('数据库初始化成功!'); $this->segmentation(); } catch (\PDOException $e) { throw new CommandException($e->getMessage()); } } /** * @param $config * @throws CommandException */ private function createAdmin($config) { try { $connect = new \PDO("mysql:host={$config['db_host']};port={$config['db_port']};dbname={$config['db_database']};charset=utf8mb4", $config['db_username'], $config['db_password']); $username = $config['admin_username']; $password = UserLogic::instance()->userPwdEncryption($username, $config['admin_password']); $userTable = $config['db_prefix'] . 'user'; $adminInsert = [ 'username' => $username, 'userpass' => $password, 'is_ban' => 0, 'remark' => '超管', 'group_id' => 1, 'created_at' => time(), 'updated_at' => time(), ]; $sql = "INSERT INTO `{$userTable}` (`" . implode('`,`', array_keys($adminInsert)) . "`) VALUE ('" . implode("','", $adminInsert) . "')"; $connect->exec($sql); $statement = $connect->query("SELECT * FROM {$userTable} WHERE username = '{$username}'"); if (empty($statement->fetch())) { throw new CommandException('创建系统管理员失败!'); } $connect = null; } catch (\PDOException $e) { throw new CommandException($e->getMessage()); } } private function checkExtension() { $this->output->info('检查PHP扩展: '); $this->output->writeln(''); if (version_compare(PHP_VERSION, '7.2.0', '<')) { throw new CommandException('PHP 版本必须>= 7.2.0'); } $extension = ['pdo_mysql', 'mbstring', 'swoole']; foreach ($extension as $ext) { if (!extension_loaded($ext)) { throw new CommandException($ext . ' 扩展未安装'); } } if (version_compare(swoole_version(), '4.3.0', '<')) { throw new CommandException('swoole 版本必须>= 4.3.0'); } if (is_writable(BASE_PATH) === false) { throw new CommandException('请保证' . BASE_PATH . '目录有写权限!'); } if (is_writable(RUNTIME_PATH) === false) { throw new CommandException('请保证' . RUNTIME_PATH . '目录有写权限!'); } if (!file_exists(BASE_PATH . '/composer.json')) { throw new CommandException('请先执行 composer install --no-dev 安装扩展包'); } $this->output->success('PHP扩展已检查完毕!'); $this->segmentation(); } private function installConfig() { // 验证规则 $validate = [ 'host' => '/[\w\.]{5,64}/', 'port' => '/[1-9]\d{0,4}/' ]; $install = [ 'server' => [ 'option' => '服务', 'value' => [ 'port' => [ 'name' => '端口', 'default' => 80, 'validate' => $validate['port'] ] ] ], 'db' => [ 'option' => '数据库', 'value' => [ 'host' => [ 'name' => '地址', 'default' => '127.0.0.1', 'validate' => $validate['host'] ], 'port' => [ 'name' => '端口', 'default' => '3306', 'validate' => $validate['port'] ], 'database' => [ 'name' => '名称', 'default' => 'we7_document', 'validate' => '/[a-z_]{5,24}/' ], 'prefix' => [ 'name' => '表前缀', 'default' => 'ims_', 'validate' => '/[a-z][a-z_]{1,20}/' ], 'username' => [ 'name' => '用户名', 'default' => 'root', 'validate' => '/\w{4,24}/' ], 'password' => [ //'type' => 'hidden', 'name' => '密码', 'default' => '', 'validate' => "/[0-9A-Za-z`~!@#$%^&*()\-_+<>?:\"{},.\/;'[\]|]{4,32}/" ] ] ], 'cache' => [ 'option' => '缓存', 'value' => [ 'driver' => [ 'name' => '驱动, 只支持[db,redis],系统已集成db缓存', 'default' => 'db', // db, redis 'validate' => '/(db|redis)/' ], 'host' => [ 'name' => '地址', 'default' => '127.0.0.1', 'validate' => $validate['host'] ], 'port' => [ 'name' => '端口', 'default' => 6379, 'validate' => $validate['port'] ], ] ], 'admin' => [ 'option' => '管理员', 'value' => [ 'username' => [ 'name' => '用户名', 'default' => 'admin', 'validate' => '/\w{4,24}/' ], 'password' => [ //'type' => 'hidden', 'name' => '密码', 'default' => '', 'validate' => '/\w{6,32}/' ], 'passwordConfirm' => [ //'type' => 'hidden', 'name' => '确认密码', 'default' => '', 'validate' => 'reconfirm', 'confirm' => 'password' ], ] ] ]; $config = []; foreach ($install as $option => $value) { $this->output->info("请设置{$value['option']}相关信息: "); foreach ($value['value'] as $key => $item) { if (empty($item['name'])) { throw new CommandException("{$value['option']}{$item['name']}不能为空"); } $configKey = $option . '_' . $key; if (isset($item['type']) && $item['type'] == 'hidden') { $config[$configKey] = $this->output->askHidden("请输入{$value['option']}{$item['name']}"); } else { $config[$configKey] = $this->output->ask("请输入{$value['option']}{$item['name']}", $item['default']); } // 如果缓存不使用redis,直接跳过 if ($option == 'cache' && $config[$configKey] == 'db') { break; } // 数据验证 $reg = '/\w+/'; if (isset($item['validate']) && $item['validate']) { $reg = $item['validate']; } if ($reg == 'reconfirm') { if ($config[$configKey] != $config[$option . '_' . $item['confirm']]) { throw new CommandException('两次输入的密码不一样!'); } } else { if (!preg_match($reg, $config[$configKey])) { throw new CommandException("{$value['option']}{$item['name']}格式不正确!"); } } } $this->segmentation(); } return $config; } private function segmentation() { $this->output->writeln(''); } } ================================================ FILE: app/Command/Install/SyncDataCommand.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Command\Install; use W7\Console\Command\CommandAbstract; use W7\Core\Exception\CommandException; class SyncDataCommand extends CommandAbstract { private $userIds; protected function handle($options) { try { $get = [ 'host' => ienv('DATABASE_ORIGINAL_HOST'), 'username' => ienv('DATABASE_ORIGINAL_USERNAME'), 'password' => ienv('DATABASE_ORIGINAL_PASSWORD'), 'database' => ienv('DATABASE_ORIGINAL_DATABASE'), ]; // 获取用户 (商城数据库配置) $userDataBase = [ 'host' => ienv('DATABASE_MEMBER_HOST'), 'username' => ienv('DATABASE_MEMBER_USERNAME'), 'password' => ienv('DATABASE_MEMBER_PASSWORD'), 'database' => ienv('DATABASE_MEMBER_DATABASE'), ]; // 要获取数据的所有表名称 $tables = [ 'ims_wiki', 'ims_wiki_list', 'ims_wiki_view', 'ims_members', ]; // 定义生成的sql文件 $file = RUNTIME_PATH . '/document.sql'; if (file_exists($file)) { unlink($file); } // 拓展检查 $this->checkExtension(); // 生成sql文件 $this->insertData($get, $userDataBase, $tables, $file); } catch (\Exception $e) { $this->output->error($e->getMessage()); } } private function checkExtension() { $this->output->info('检查PHP扩展: '); $this->segmentation(); $ext = 'mysqli'; if (!extension_loaded($ext)) { throw new CommandException($ext . ' 扩展未安装'); } if (is_writable(BASE_PATH) === false) { throw new CommandException('请检查' . BASE_PATH . '目录权限!'); } if (is_writable(RUNTIME_PATH) === false) { throw new CommandException('请检查' . RUNTIME_PATH . '目录权限!'); } $this->output->writeln('PHP扩展已检查完毕!'); $this->segmentation(); } private function insertData($get, $userDataBase, $tables, $file) { if (!$get || !$userDataBase || !$tables || !$file) { throw new CommandException('请检查数据配置!'); } if ($get) { $this->checkDatabase($get); } if ($userDataBase) { $this->checkDatabase($userDataBase); } $sql = ''; $dirChapters = []; $maxChapterId = 0; $handle = fopen($file, 'a'); foreach ($tables as $key => $table) { $data = $this->getdata($table, $get, $userDataBase); if ($data) { if ($table == 'ims_wiki') { $i = 0; foreach ($data as $k => $v) { $this->userIds[$k] = $v['creator_id']; $sql .= 'INSERT INTO ims_document (id, name, description,creator_id,created_at,updated_at,is_public) VALUES( '; $sql .= " '".$v['id']."', '".$v['name']."', '".$v['description']."', '".$v['creator_id']."', '".$v['created_at']."','".$v['updated_at']."', '".$v['is_show']."' );".PHP_EOL; $sql .= 'INSERT INTO ims_document_permission (id, user_id, document_id, permission, created_at,updated_at) VALUES( '; $sql .= " '".$v['id']."', '".$v['creator_id']."', '".$v['id']."', 1,'".$v['created_at']."', '".$v['updated_at']."' );".PHP_EOL; $res = $this->setContent($i, count($data), $sql, $handle); if ($res) { $sql = ''; } $i++; } } elseif ($table == 'ims_wiki_list') { $i = 0; $parentIds = array_column($data, 'parent_id'); foreach ($data as $k => $v) { $isDir = 0; $maxChapterId = $v['id'] > $maxChapterId ? $v['id'] : $maxChapterId; if (in_array($v['id'], $parentIds)) { $isDir = 1; $dirChapters[$v['id']] = $v; } $sql .= 'INSERT INTO ims_document_chapter (id, parent_id, name,document_id,sort,levels,is_dir, created_at,updated_at) VALUES( '; $sql .= " '".$v['id']."', '".$v['parent_id']."', '".$v['name']."', '".$v['document_id']."', '".$v['sort']."', '".$v['levels']."', '". $isDir ."', '".$v['created_at']."', '".$v['updated_at']."' ); ".PHP_EOL; $res = $this->setContent($i, count($data), $sql, $handle); if ($res) { $sql = ''; } $i++; } } elseif ($table == 'ims_wiki_view') { $i = 0; $chapterNum = count($data); foreach ($data as $k => $v) { //表示该章节是目录并且有内容,创建新的章节 if (!empty($dirChapters[$v['chapter_id']])) { ++$maxChapterId; ++$chapterNum; $sql .= 'INSERT INTO ims_document_chapter (id, parent_id, name,document_id,sort,levels,is_dir, created_at,updated_at) VALUES( '; $sql .= " '".$maxChapterId."', '".$v['chapter_id']."', '".$dirChapters[$v['chapter_id']]['name']."', '".$dirChapters[$v['chapter_id']]['document_id']."', '".$dirChapters[$v['chapter_id']]['sort']."', '".$dirChapters[$v['chapter_id']]['levels']."', '". 0 ."', '".$dirChapters[$v['chapter_id']]['created_at']."', '".$dirChapters[$v['chapter_id']]['updated_at']."' ); ".PHP_EOL; $v['chapter_id'] = $maxChapterId; $i++; $res = $this->setContent($i, $chapterNum, $sql, $handle); if ($res) { $sql = ''; } } $sql .= 'INSERT INTO ims_document_chapter_content (id, chapter_id, content,layout) VALUES( '; $content = htmlspecialchars_decode(html_entity_decode($v['content'])); $content = str_replace(''', "'", $content); $content = addslashes($content); $sql .= " '".$v['id']."', '".$v['chapter_id']."', '".$content."', '".$v['layout']."' ); ".PHP_EOL; $res = $this->setContent($i, $chapterNum, $sql, $handle); if ($res) { $sql = ''; } $i++; } } elseif ($table == 'ims_members') { $i = 0; foreach ($data as $k => $v) { if ($v['username'] != 'admin') { $sql .= 'INSERT INTO ims_user (id, username, is_ban, created_at, updated_at) VALUES( '; $sql .= " '".$v['id']."', '".$v['username']."','".$v['is_ban']."',".$v['created_at'].",".$v['updated_at']."); ".PHP_EOL; $res = $this->setContent($i, count($data), $sql, $handle); if ($res) { $sql = ''; } } $i++; } } } } fclose($handle); $this->output->success('success! 生成的SQL文件在runtime目录下的document.sql'); } private function getdata($table, $get, $userDataBase) { if ($table == 'ims_members') { $conn = new \mysqli($userDataBase['host'], $userDataBase['username'], $userDataBase['password']); if ($conn->connect_error) { throw new CommandException('连接失败' . $conn->connect_error); } $this->output->writeln($userDataBase['host'].'连接成功'); mysqli_query($conn, 'set names utf8'); mysqli_select_db($conn, $userDataBase['database']); } else { $conn = new \mysqli($get['host'], $get['username'], $get['password']); if ($conn->connect_error) { throw new CommandException('连接失败' . $conn->connect_error); } $this->output->writeln($get['host'].'连接成功'); mysqli_query($conn, 'set names utf8'); mysqli_select_db($conn, $get['database']); } // 获取数据 $data = []; if ($table == 'ims_wiki') { $sql = "select * from $table "; } elseif ($table == 'ims_wiki_list') { $sql = "select * from $table "; } elseif ($table == 'ims_wiki_view') { $sql = "select id,listid,content from $table "; } elseif ($table == 'ims_members') { if ($this->userIds) { $this->userIds = rtrim(implode(',',array_unique($this->userIds)),','); $sql = "select uid,username,password,status,joindate from $table where uid in ($this->userIds) "; }else{ throw new CommandException('获取不到用户ID'); } } $retval = mysqli_query($conn, $sql); if (!$retval) { throw new CommandException('连接失败' . mysqli_error($conn)); } while ($row = mysqli_fetch_array($retval, MYSQLI_ASSOC)) { $data[] = $row; } $retval->close(); if ($data) { mysqli_close($conn); return $this->handleData($data, $table); } return false; } private function handleData($data, $table) { if (!$data) { return '数据为空'; } $tmp_data = []; if ($table == 'ims_wiki') { foreach ($data as $k => $v) { $tmp_data[$k]['id'] = $v['id']; $tmp_data[$k]['name'] = $v['title']; $tmp_data[$k]['description'] = $v['description']; $tmp_data[$k]['creator_id'] = $v['uid']; $tmp_data[$k]['created_at'] = $v['createtime'] == 0 ? strtotime(time()) : $v['createtime']; $tmp_data[$k]['updated_at'] = $v['createtime'] == 0 ? strtotime(time()) : $v['createtime']; $tmp_data[$k]['is_show'] = $v['isread'] == 0 ? 2 : 1; } } elseif ($table == 'ims_wiki_list') { foreach ($data as $k => $v) { $tmp_data[$k]['id'] = $v['id']; $tmp_data[$k]['parent_id'] = $v['parentid']; $tmp_data[$k]['name'] = $v['name']; $tmp_data[$k]['document_id'] = $v['wikiid']; $tmp_data[$k]['sort'] = $v['displayorder']; $tmp_data[$k]['levels'] = 0; if (intval($v['lasttime']) <= 0 || !$v['lasttime'] || $v['lasttime'] == false) { $tmp_data[$k]['created_at'] = strtotime('now'); $tmp_data[$k]['updated_at'] = strtotime('now'); } else { $tmp_data[$k]['created_at'] = $v['lasttime']; $tmp_data[$k]['updated_at'] = $v['lasttime']; } } } elseif ($table == 'ims_wiki_view') { foreach ($data as $k => $v) { $tmp_data[$k]['id'] = $v['id']; $tmp_data[$k]['chapter_id'] = $v['listid']; $tmp_data[$k]['content'] = $v['content']; $tmp_data[$k]['layout'] = 1; } } elseif ($table == 'ims_members') { foreach ($data as $k => $v) { $tmp_data[$k]['id'] = $v['uid']; $tmp_data[$k]['username'] = $v['username']; $tmp_data[$k]['is_ban'] = $v['status']; $tmp_data[$k]['created_at'] = $v['joindate']; $tmp_data[$k]['updated_at'] = $v['joindate']; } } return $tmp_data; } private function setContent($i, $count, $sql, $handle) { if ($i%100 == 0) { fwrite($handle, $sql); return true; } elseif ($i == $count -1) { fwrite($handle, $sql); return true; } } private function checkDatabase($database) { // if (isset($database['host']) && $database['host']) { // $pat = "/^(((1?\d{1,2})|(2[0-4]\d)|(25[0-5]))\.){3}((1?\d{1,2})|(2[0-4]\d)|(25[0-5])):[0-9]{2,6}$/"; // $pat2 = "/[\w][\w-]*\.(?:com\.cn|com|cn|co|net|org|gov|cc|biz|info)(\/|$)/isU"; // if (!preg_match($pat, $database['host']) && !preg_match($pat2, $database['host'])) { // throw new CommandException('host填写错误'); // } // } if (!isset($database['username']) || !$database['username']) { throw new CommandException('username不能为空'); } if (!isset($database['password']) || !$database['password']) { throw new CommandException('password不能为空'); } if (!isset($database['database']) || !$database['database']) { throw new CommandException('database不能为空'); } } private function segmentation() { $this->output->writeln(''); } } ================================================ FILE: app/Command/Todo/CustomCommand.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Command\Todo; use W7\Console\Command\CommandAbstract; class CustomCommand extends CommandAbstract { protected $description = '上线需要执行的脚本'; protected function configure() { $this->setName('todo:custom'); } protected function handle($options) { } } ================================================ FILE: app/Command/index.html ================================================ ================================================ FILE: app/Controller/Admin/ChapterController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document\Chapter; use W7\App\Model\Entity\Document\ChapterContent; use W7\App\Model\Entity\Setting; use W7\App\Model\Entity\User; use W7\App\Model\Entity\UserOperateLog; use W7\App\Model\Logic\ChapterLogic; use W7\App\Model\Logic\Document\ChapterApi\ChapterImportLogic; use W7\App\Model\Logic\Document\ChapterContentLogic; use W7\App\Model\Logic\DocumentLogic; use W7\App\Model\Logic\DocumentPermissionLogic; use W7\App\Model\Logic\UserOperateLogic; use W7\App\Model\Logic\Document\ChapterApi\ChapterRecordLogic; use W7\Http\Message\Server\Request; /** * Class ChapterController * @package W7\App\Controller\Admin */ class ChapterController extends BaseController { public function detail(Request $request) { $this->validate($request, [ 'document_id' => 'required|integer', ], [ 'document_id.required' => '文档ID必传', ]); /** * @var User $user */ $user = $request->getAttribute('user'); $documentId = intval($request->input('document_id')); $document = DocumentLogic::instance()->getById($documentId); $chapter = ChapterLogic::instance()->getCatalog($documentId); $result = [ 'document' => [ 'id' => $document->id, 'name' => $document->name, ], 'catalog' => $chapter, 'acl' => [ 'has_manage' => $user->isManager ] ]; return $this->data($result); } /** * @api {post} /admin/chapter/create 文档(目录)-新增 * @apiName create * @apiGroup Chapter * * @apiParam {Number} name 章节ID * @apiParam {Number} document_id 目录ID * @apiParam {Number} parent_id 附ID * @apiParam {Number} is_dir 是否为目录 * @apiParam {Number} layout 0:markdown格式 1:http格式(新增文件时) */ public function create(Request $request) { $this->validate($request, [ 'name' => 'string|required|max:60', 'document_id' => 'required|integer|min:1', 'parent_id' => 'required|integer|min:0', 'is_dir' => 'required|boolean', 'layout' => 'integer' ], [ 'name.required' => '章节名称必填', 'name.max' => '章节名最大60个字符', 'document_id.required' => '文档id必填', 'document_id.min' => '文档id最小为0', 'parent_id.required' => '父id必填', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } //频繁操作时间限制 if (icache()->get('creat_lock_time')){ throw new ErrorHttpException('操作过于频繁'); } $parentId = intval($request->post('parent_id')); if (!empty($parentId)) { $parentChapter = ChapterLogic::instance()->getById($parentId); if (empty($parentChapter)) { throw new ErrorHttpException('父章节不存在'); } if (!$parentChapter->is_dir) { throw new ErrorHttpException('父章节不是目录,不可以新增子章节或者文档'); } } $isDir = $request->post('is_dir'); $documentId = intval($request->post('document_id')); $maxSort = Chapter::query()->where('document_id', '=', $documentId)->where('parent_id', '=', $parentId)->max('sort'); $sort = intval($request->post('sort', ++$maxSort)); $chapter = Chapter::query()->create([ 'name' => $request->post('name'), 'sort' => $sort, 'is_dir' => $isDir ? 1 : 0, 'document_id' => $documentId, 'parent_id' => $parentId, ]); if (!$chapter) { throw new ErrorHttpException('章节添加失败'); } //记录操作锁 icache()->set('creat_lock_time',1,3); $layout = $request->post('layout', 0); if ($layout) { //如果是非默认类型,新建时锁定类型 if (!empty($chapter->content)) { $chapter->content->content = ''; $chapter->content->layout = $layout; $chapter->content->save(); } else { ChapterContent::query()->create([ 'chapter_id' => $chapter->id, 'content' => '', 'layout' => $layout ]); } } UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $documentId, 'chapter_id' => $chapter->id, 'operate' => UserOperateLog::CREATE, 'remark' => $user->username . '创建章节' . $chapter->name ]); return $this->data($chapter->toArray()); } public function update(Request $request) { $this->validate($request, [ 'name' => 'string|required|max:60', 'chapter_id' => 'required|integer|min:1', 'document_id' => 'required|integer', ], [ 'name.required' => '章节名称必填', 'name.max' => '章节名最大60个字符', 'chapter_id.required' => '文档id必填', 'chapter_id.min' => '文档id最小为0', 'document_id.required' => '文档id必填', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $chapter = ChapterLogic::instance()->getById($request->post('chapter_id')); if (empty($chapter)) { throw new ErrorHttpException('章节不存在'); } $parentId = $request->post('parent_id', null); if (isset($parentId)) { if ($parentId != 0) { $parentChapter = ChapterLogic::instance()->getById($parentId); if (!$parentChapter || $parentChapter->is_dir != Chapter::IS_DIR) { throw new ErrorHttpException('上级章节不存在'); } } $chapter->parent_id = $parentId; } $chapter->name = $request->post('name'); $chapter->save(); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $chapter->document_id, 'chapter_id' => $chapter->id, 'operate' => UserOperateLog::EDIT, 'remark' => $user->username . '编辑章节' . $chapter->name . '基本信息' ]); return $this->data('success'); } public function sort(Request $request) { $this->validate($request, [ 'target.chapter_id' => 'sometimes|integer', 'target.position' => 'required|in:inner,before,after,move', 'chapter_id' => 'required|integer', 'document_id' => 'required|integer', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $chapter = ChapterLogic::instance()->getById($request->post('chapter_id')); if (empty($chapter)) { throw new ErrorHttpException('要移动的章节不存在'); } $position = $request->post('target')['position']; $targetChapter = ChapterLogic::instance()->getById($request->post('target')['chapter_id']); if ($targetChapter && ($targetChapter->is_dir != Chapter::IS_DIR)) { //移动对象不是目录 throw new ErrorHttpException('只能移动到目录下面'); } idb()->beginTransaction(); try { if ($position == 'move') { //移动当前文章/目录 $targetDocumentId = $request->post('target')['document_id']; $documentPermission = DocumentPermissionLogic::instance()->getByDocIdAndUid($targetDocumentId, $user->id); if (!$user->isFounder && !$documentPermission->isManager && !$documentPermission->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } // $chapter->document_id = $targetDocumentId; // $chapter->save(); } else { if ($targetChapter->document_id != $request->post('document_id')) { throw new ErrorHttpException('只能移动到当前文档中的其它目录'); } } //放入到目录节点中,但不存在排序 if ($position == 'inner' || $position == 'move') { try { if (empty($targetChapter)) { //目标节点不存在-移动到根目录下 //找到该文档的根节点中的其中一个章节 // $targetChapter = Chapter::query()->where('document_id', $chapter->document_id)->where('parent_id', '=', 0)->first(); //如果目标节点不存在-移动到根目录 $chapter->document_id = $targetDocumentId; $chapter->parent_id = 0; $chapter->save(); if ($chapter->document_id) { $chapterLogic = new ChapterLogic(); $chapterLogic->moveSunChapter($chapter, $chapter->document_id); } } //目标节点存在-移动到目标节点下 $targetChapter && ChapterLogic::instance()->moveByChapter($chapter, $targetChapter); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } else { //同项目上下级排序 if (empty($targetChapter)) { throw new ErrorHttpException('要移到的章节不存在'); } $chapter->parent_id = $targetChapter->parent_id; $chapter->save(); try { ChapterLogic::instance()->sortByChapter($chapter, $targetChapter, $position); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } if ($position != 'move') { $targetChapter && $targetChapter = ChapterLogic::instance()->getById($targetChapter->parent_id); } UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $chapter->document_id, 'chapter_id' => $chapter->id, 'operate' => UserOperateLog::CHAPTER_MOVE, 'remark' => $user->username . '移动章节' . $chapter->name . '到' . !empty($targetChapter) ? $targetChapter->name : '根节点' ]); idb()->commit(); } catch (\Throwable $e) { idb()->rollBack(); throw new ErrorHttpException($e->getMessage()); } return $this->data('success'); } public function delete(Request $request) { $this->validate($request, [ 'chapter_id' => 'required', 'document_id' => 'required|integer', ], [ 'chapter_id.required' => '章节不存在', 'document_id.required' => '文档id必填', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } if (!is_array($request->post('chapter_id'))) { $chapterId = intval($request->post('chapter_id')); $chapterId = [$chapterId]; } else { $chapterId = $request->post('chapter_id'); } try { $documentId = intval($request->post('document_id')); foreach ($chapterId as $id) { $id = intval($id); if (empty($id)) { continue; } $chapter = ChapterLogic::instance()->getById($id); if ($chapter) { ChapterLogic::instance()->deleteById($id); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $documentId, 'chapter_id' => $id, 'operate' => UserOperateLog::DELETE, 'remark' => $user->username . '删除章节' . $chapter->name ]); } } } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } return $this->data('success'); } /** * @api {post} /admin/chapter/save 文档内容-保存 * @apiName save * @apiGroup Chapter * * @apiParam {Number} chapter_id 章节ID * @apiParam {Number} document_id 文档ID * @apiParam {Number} layout 文档类型 0:MARKDOWM文本,提交content 1:HTTP请求,提交record * @apiParam {String} content 文档内容(layout为1时用record生成content,此字段提交无效) * @apiParam {Array} record 请求记录 * @apiParam {Array} record.api 请求记录地址信息 * @apiParam {String} record.api.method 请求方式 * @apiParam {String} record.api.url 地址 * @apiParam {String} record.api.description 描述 * @apiParam {String} record.api.tab_location tab页上次指定记录head,query,body * @apiParam {String} record.api.body_param_location body_param默认类型 * @apiParam {Array} record.body 请求 * @apiParam {Array} record.body.location 请求类型1-11参考getLocationLabel,bodyparam请求参数默认3返回参数默认10 * @apiParam {String} record.body.location.id 参数id * @apiParam {String} record.body.location.name 参数名称 * @apiParam {String} record.body.location.type 参数类型(location=1,7header的时候固定为string可不传) int,string... * @apiParam {Number} record.body.location.enabled 是否必传 * @apiParam {String} record.body.location.description 参数描述 * @apiParam {String} record.body.location.default_value 参数示例值 * @apiParam {Array} record.body.location.children 参数子类数组同父级 * @apiParam {String} extend 扩展内容 * * @apiSuccessExample {json} Success-Response: * {status: true, code: 200, data: "success", message: "ok"} */ public function save(Request $request) { $layoutLabel = array_keys(ChapterContentLogic::instance()->getLayoutLabel()); $this->validate($request, [ 'chapter_id' => 'required|integer|min:1', 'document_id' => 'required|integer', 'layout' => 'in:' . implode(',', $layoutLabel), ], [ 'chapter_id.required' => '文档id必填', 'document_id.required' => '文档id必填', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $chapter = ChapterLogic::instance()->getById(intval($request->post('chapter_id'))); if (empty($chapter)) { throw new ErrorHttpException('章节不存在'); } $layout = $request->post('layout', 0); $content = $request->post('content', ''); if ($layout == 1) { //如果是http类型 $record = $request->post('record', []); $chapterRecord = new ChapterRecordLogic($chapter->id); $content = $chapterRecord->recordToMarkdown($record); } $words = hasForbidWords($content); if ($words){ throw new ErrorHttpException('您输入的内容存在敏感词“'.implode('、',$words).'”,请修改之后提交。'); } if (!empty($chapter->content)) { if ($chapter->content->layout != $layout) { throw new ErrorHttpException('文档类型不可更改'); } $chapter->content->content = $content; $chapter->content->save(); } else { if ($layout) { //默认0 throw new ErrorHttpException('文档类型不可更改'); } ChapterContent::query()->create([ 'chapter_id' => $chapter->id, 'content' => $content, 'layout' => $layout ]); } $chapter->updated_at = time(); $chapter->save(); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $chapter->document_id, 'chapter_id' => $chapter->id, 'operate' => UserOperateLog::EDIT, 'remark' => $user->username . '编辑章节' . $chapter->name . '内容' ]); return $this->data('success'); } /** * @api {post} /admin/chapter/content 文档内容-查看 * @apiName content * @apiGroup Chapter * * @apiParam {Number} chapter_id 章节ID * @apiParam {Number} document_id 文档ID * * @apiSuccess {Number} chapter_id 章节ID * @apiSuccess {Number} document_id 文档ID * @apiSuccess {Number} layout 文档类型 0:MARKDOWM文本,提交content 1:HTTP请求,提交record * @apiSuccess {String} content 文档内容(layout为1时用record生成content,此字段提交无效) * @apiSuccess {Array} record 请求记录 * @apiSuccess {Array} record.api 请求记录地址信息 * @apiSuccess {String} record.api.method 请求方式 * @apiSuccess {String} record.api.url 地址 * @apiSuccess {String} record.api.description 描述 * @apiSuccess {String} record.api.tab_location tab页上次指定记录head,query,body * @apiSuccess {String} record.api.body_param_location body_param默认类型 * @apiSuccess {Array} record.body 请求 * @apiSuccess {Array} record.body.location 请求类型1-11参考getLocationLabel,bodyparam请求参数默认3返回参数默认10 * @apiSuccess {String} record.body.location.id 参数id * @apiSuccess {String} record.body.location.name 参数名称 * @apiSuccess {String} record.body.location.type 参数类型(location=1,7header的时候固定为string可不传) int,string... * @apiSuccess {Number} record.body.location.enabled 是否必传 * @apiSuccess {String} record.body.location.description 参数描述 * @apiSuccess {String} record.body.location.default_value 参数示例值 * @apiSuccess {Array} record.body.location.children 参数子类数组同父级 * @apiSuccess {String} extend 扩展内容 * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"chapter_id":49,"name":"clj1","content":"- **接口说明:** 这是文档说明\n- **接口地址:** http:\/\/baidu.com\n- **请求方式:** ==GET==\n- **状态码:** ==200==\n\n### Request.Query.Path\n\n参数名称 |类型 |必填 |描述 |示例值 |生成规则 \n|:- |:-: |:-: |:- |:- |:- \npath参数 |String |False|这是地址栏参数 | | \n### Request.Header\n\n参数名称 |类型 |必填 |描述 |示例值 |生成规则 \n|:- |:-: |:-: |:- |:- |:- \nAccess-Token |String |False|这是头部说明1 | |12321 \n ec |String |False|这是四级参数ec | | \n ed |String |False|这是四级参数ed | | \nToken |Number |False|this is address | | \n### Request.Query.String\n\n参数名称 |类型 |必填 |描述 |示例值 |生成规则 \n|:- |:-: |:-: |:- |:- |:- \nid |String |False|这是参数详情1 | |12321 \nboday |Array |False|这是参数详情3 | | \n a |Number |False|这是二级参数a | | \n  c |String |False|这是三级参数ac | | \n  d |String |False|这是三级参数ad | | \n b |Array |False|这是二级参数b | | \n  c |String |False|这是三级参数bc | | \n  e |Array |False|这是三级参数bd | | \n   ec|String |False|这是四级参数ec | | \n   ed|String |False|这是四级参数ed | | \n### Request.Body.form-data\n\n参数名称 |类型 |必填 |描述 |示例值 |生成规则 \n|:- |:-: |:-: |:- |:- |:- \nAccess-Token |String |False|这是头部说明3 | |12321 \n### Reponse.Header\n\n参数名称 |类型 |必填 |描述 |示例值 |生成规则 \n|:- |:-: |:-: |:- |:- |:- \nAccess-Token |String |False|这是response头部说明7| |12321 \n### Reponse.Body.raw\n\n参数名称 |类型 |必填 |描述 |示例值 |生成规则 \n|:- |:-: |:-: |:- |:- |:- \n4444 |Null |False| | | \na |Number |False| |1 | \nb |Array |False| |[\"1\",\"1\"] | \n  |Number |False| |1 | \n  |Number |False| |1 | \nc |Object |False| | | \n a |Array |False| |[\"a\"] | \n b |Object |False| | | \n  0 |String |False| |b | \n  d |Array |False| |[\"4\",\"5\"] | \n    |Number |False| |4 | \n    |Number |False| |5 | \ne |Array |False| | |2 \n a |Array |False| |[\"1\"] | \n b |Array |False| |[\"2\",null] |+1 \n c |Array |False| |[\"3\"] | \n f |Array |False| |[\"1\",\"2\"] | \n   |Number |False| |1 | \n   |Number |False| |2 | \n d |Object |False| | | \n  a |Number |False| |1 | \n  b |Number |False| |2 | \n\n### 示例说明\n\n>请求示例:\n\n```\n{\n \"Header\":{\n \"Token\":\"\",\n \"Version\":\"3.2.0\",\n \"SystemId\":100,\n \"Timestamp\":1502870664\n },\n \"Body\":{\n \"Mobile\":\"18520322032\",\n \"Password\":\"acb000000\"\n }\n}\n\n```","layout":1,"author":{"uid":1,"username":"admin"},"updated_at":"2020-04-08 16:42:00","record":{"api":{"id":1,"chapter_id":49,"url":"http:\/\/baidu.com","method":1,"status_code":0,"description":"这是文档说明","body_param_location":3},"body":{"1":[{"id":2,"chapter_id":49,"parent_id":0,"location":1,"type":1,"name":"Access-Token","description":"这是头部说明1","enabled":1,"default_value":"","children":[{"id":3,"chapter_id":49,"parent_id":2,"location":1,"type":1,"name":"ec","description":"这是四级参数ec","enabled":1,"default_value":"","children":[]},{"id":4,"chapter_id":49,"parent_id":2,"location":1,"type":1,"name":"ed","description":"这是四级参数ed","enabled":1,"default_value":"","rule":"","children":[]}]},{"id":5,"chapter_id":49,"parent_id":0,"location":1,"type":2,"name":"Token","description":"this is address","enabled":1,"default_value":"","rule":"","children":[]}],"2":[{"id":6,"chapter_id":49,"parent_id":0,"location":2,"type":1,"name":"id","description":"这是参数详情1","enabled":1,"default_value":"","rule":"12321","children":[]},{"id":7,"chapter_id":49,"parent_id":0,"location":2,"type":5,"name":"boday","description":"这是参数详情3","enabled":1,"default_value":"","rule":"","children":[{"id":8,"chapter_id":49,"parent_id":7,"location":2,"type":2,"name":"a","description":"这是二级参数a","enabled":1,"default_value":"","rule":"","children":[{"id":9,"chapter_id":49,"parent_id":8,"location":2,"type":1,"name":"c","description":"这是三级参数ac","enabled":1,"default_value":"","rule":"","children":[]},{"id":10,"chapter_id":49,"parent_id":8,"location":2,"type":1,"name":"d","description":"这是三级参数ad","enabled":1,"default_value":"","rule":"","children":[]}]},{"id":11,"chapter_id":49,"parent_id":7,"location":2,"type":5,"name":"b","description":"这是二级参数b","enabled":1,"default_value":"","rule":"","children":[{"id":12,"chapter_id":49,"parent_id":11,"location":2,"type":1,"name":"c","description":"这是三级参数bc","enabled":1,"default_value":"","rule":"","children":[]},{"id":13,"chapter_id":49,"parent_id":11,"location":2,"type":5,"name":"e","description":"这是三级参数bd","enabled":1,"default_value":"","rule":"","children":[{"id":14,"chapter_id":49,"parent_id":13,"location":2,"type":1,"name":"ec","description":"这是四级参数ec","enabled":1,"default_value":"","rule":"","children":[]},{"id":15,"chapter_id":49,"parent_id":13,"location":2,"type":1,"name":"ed","description":"这是四级参数ed","enabled":1,"default_value":"","rule":"","children":[]}]}]}]}],"3":[{"id":16,"chapter_id":49,"parent_id":0,"location":3,"type":1,"name":"Access-Token","description":"这是头部说明3","enabled":1,"default_value":"","rule":"12321","children":[]}],"7":[{"id":17,"chapter_id":49,"parent_id":0,"location":7,"type":1,"name":"Access-Token","description":"这是response头部说明7","enabled":1,"default_value":"","rule":"12321","children":[]}],"10":[{"id":18,"chapter_id":49,"parent_id":0,"location":10,"type":8,"name":"4444","description":"","enabled":1,"default_value":"","rule":"","children":[]},{"id":19,"chapter_id":49,"parent_id":0,"location":10,"type":2,"name":"a","description":"","enabled":1,"default_value":"1","rule":"","children":[]},{"id":20,"chapter_id":49,"parent_id":0,"location":10,"type":5,"name":"b","description":"","enabled":1,"default_value":"[\"1\",\"1\"]","rule":"","children":[{"id":21,"chapter_id":49,"parent_id":20,"location":10,"type":2,"name":"","description":"","enabled":1,"default_value":"1","rule":"","children":[]},{"id":22,"chapter_id":49,"parent_id":20,"location":10,"type":2,"name":"","description":"","enabled":1,"default_value":"1","rule":"","children":[]}]},{"id":23,"chapter_id":49,"parent_id":0,"location":10,"type":4,"name":"c","description":"","enabled":1,"default_value":"","rule":"","children":[{"id":24,"chapter_id":49,"parent_id":23,"location":10,"type":5,"name":"a","description":"","enabled":1,"default_value":"[\"a\"]","rule":"","children":[]},{"id":25,"chapter_id":49,"parent_id":23,"location":10,"type":4,"name":"b","description":"","enabled":1,"default_value":"","rule":"","children":[{"id":26,"chapter_id":49,"parent_id":25,"location":10,"type":1,"name":"0","description":"","enabled":1,"default_value":"b","rule":"","children":[]},{"id":27,"chapter_id":49,"parent_id":25,"location":10,"type":5,"name":"d","description":"","enabled":1,"default_value":"[\"4\",\"5\"]","rule":"","children":[{"id":28,"chapter_id":49,"parent_id":27,"location":10,"type":2,"name":"","description":"","enabled":1,"default_value":"4","rule":"","children":[]},{"id":29,"chapter_id":49,"parent_id":27,"location":10,"type":2,"name":"","description":"","enabled":1,"default_value":"5","rule":"","children":[]}]}]}]},{"id":30,"chapter_id":49,"parent_id":0,"location":10,"type":5,"name":"e","description":"","enabled":1,"default_value":"","rule":"2","children":[{"id":31,"chapter_id":49,"parent_id":30,"location":10,"type":5,"name":"a","description":"","enabled":1,"default_value":"[\"1\"]","rule":"","children":[]},{"id":32,"chapter_id":49,"parent_id":30,"location":10,"type":5,"name":"b","description":"","enabled":1,"default_value":"[\"2\",null]","rule":"+1","children":[]},{"id":33,"chapter_id":49,"parent_id":30,"location":10,"type":5,"name":"c","description":"","enabled":1,"default_value":"[\"3\"]","rule":"","children":[]},{"id":34,"chapter_id":49,"parent_id":30,"location":10,"type":5,"name":"f","description":"","enabled":1,"default_value":"[\"1\",\"2\"]","rule":"","children":[{"id":35,"chapter_id":49,"parent_id":34,"location":10,"type":2,"name":"","description":"","enabled":1,"default_value":"1","rule":"","children":[]},{"id":36,"chapter_id":49,"parent_id":34,"location":10,"type":2,"name":"","description":"","enabled":1,"default_value":"2","rule":"","children":[]}]},{"id":37,"chapter_id":49,"parent_id":30,"location":10,"type":4,"name":"d","description":"","enabled":1,"default_value":"","rule":"","children":[{"id":38,"chapter_id":49,"parent_id":37,"location":10,"type":2,"name":"a","description":"","enabled":1,"default_value":"1","rule":"","children":[]},{"id":39,"chapter_id":49,"parent_id":37,"location":10,"type":2,"name":"b","description":"","enabled":1,"default_value":"2","rule":"","children":[]}]}]}],"12":[{"id":1,"chapter_id":49,"parent_id":0,"location":12,"type":1,"name":"path参数","description":"这是地址栏参数","enabled":1,"default_value":"","rule":"","children":[]}]},"extend":"### 示例说明\n\n>请求示例:\n\n```\n{\n \"Header\":{\n \"Token\":\"\",\n \"Version\":\"3.2.0\",\n \"SystemId\":100,\n \"Timestamp\":1502870664\n },\n \"Body\":{\n \"Mobile\":\"18520322032\",\n \"Password\":\"acb000000\"\n }\n}\n\n```"}},"message":"ok"} */ public function content(Request $request) { $this->validate($request, [ 'chapter_id' => 'required|integer|min:1', 'document_id' => 'required|integer', ], [ 'chapter_id.required' => '文档id必填', 'chapter_id.min' => '文档id最小为0', 'document_id.required' => '文档id必填', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $chapter = ChapterLogic::instance()->getById(intval($request->post('chapter_id'))); if (empty($chapter)) { throw new ErrorHttpException('章节不存在'); } $creator = UserOperateLogic::instance()->getByChapterAndOperate($chapter->id, UserOperateLog::CREATE); if ($creator) { $author = $creator->user; } else { $author = $chapter->document->user; } $content = ''; if (!$chapter->content->layout) { $content = $chapter->content->content; } $result = [ 'chapter_id' => $chapter->id, 'name' => $chapter->name, 'content' => $content, 'layout' => $chapter->content->layout, 'author' => [ 'uid' => $author->id, 'username' => $author->username, ], 'updated_at' => $chapter->updated_at->toDateTimeString() ]; if ($chapter->content->layout == 1) { $obj = new ChapterRecordLogic($chapter->id); $result['content'] = 'record'; $result['record'] = $obj->showRecord(); } return $this->data($result); } /** * 设置章节目录默认显示文章内容 * @param Request $request * @return array */ public function defaultShow(Request $request) { $this->validate($request, [ 'chapter_id' => 'required', 'show_chapter_id' => 'required', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $chapterId = intval($request->post('chapter_id')); $chapter = ChapterLogic::instance()->getById($chapterId); $showChapterId = intval($request->post('show_chapter_id')); $showChapter = ChapterLogic::instance()->getById($showChapterId); if (($chapterId && empty($chapter)) || empty($showChapter)) { throw new ErrorHttpException('您要操作的章节或是目录不存在'); } if ($chapter && empty($chapter->is_dir)) { throw new ErrorHttpException('此操作只能设置目录的默认显示'); } if (!empty($showChapter->is_dir)) { throw new ErrorHttpException('设置显示的章节不能为目录'); } if ($chapterId == 0) { //找到已存在的顶级默认文章 $defaultShowChapter = Chapter::query()->where('document_id', '=', $showChapter->document_id)->where('parent_id', '=', 0)->where('default_show_chapter_id', '!=', 0)->first(); if ($defaultShowChapter) { $defaultShowChapter->default_show_chapter_id = 0; $defaultShowChapter->save(); } $chapter = $showChapter; } $chapter->default_show_chapter_id = $showChapterId; $chapter->save(); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $chapter->document_id, 'chapter_id' => $showChapterId, 'operate' => UserOperateLog::EDIT, 'remark' => $user->username . '设置章节' . $chapter->name . '默认显示' ]); return $this->data('success'); } public function search(Request $request) { $this->validate($request, [ 'keywords' => 'required', 'document_id' => 'required|integer|min:1', ], [ 'document_id.required' => '文档id必填', 'document_id.min' => '文档id最小为0', 'keywords.required' => '关键字必填', ]); $id = $request->input('document_id'); $keywords = $request->input('keywords'); try { $result = ChapterLogic::instance()->searchChapter($id, $keywords); return $this->data($result); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function copy(Request $request) { $params = $this->validate($request, [ 'parent_id' => 'required', 'name' => 'required', 'document_id' => 'required|integer|min:1', 'chapter_id' => 'required|integer|min:1', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $parentChapter = null; if ($params['parent_id']) { $parentChapter = ChapterLogic::instance()->getById($params['parent_id']); if (!$parentChapter) { throw new ErrorHttpException('目标章节不存在'); } } $chapter = ChapterLogic::instance()->getById($params['chapter_id']); if (!$chapter) { throw new ErrorHttpException('章节不存在'); } $maxSort = Chapter::query()->where('document_id', '=', $params['document_id'])->where('parent_id', '=', $params['parent_id'])->max('sort'); $sort = intval($request->post('sort', ++$maxSort)); idb()->beginTransaction(); try { $newChapter = new Chapter(); $newChapter->parent_id = $params['parent_id']; $newChapter->name = $params['name']; $newChapter->document_id = $params['document_id']; $newChapter->sort = $sort; $newChapter->is_dir = $chapter->is_dir; $newChapter->save(); $chapterContent = ChapterContent::query()->where('chapter_id', '=', $params['chapter_id'])->first(); if ($chapterContent) { $newChapterContent = new ChapterContent(); $newChapterContent->chapter_id = $newChapter->id; $newChapterContent->content = $chapterContent->content; $newChapterContent->layout = $chapterContent->layout; $newChapterContent->save(); if ($chapterContent->layout == 1) { //如果是HTTP类型 $obj = new ChapterRecordLogic($chapter->id); $obj->copyRecord($newChapter->id); } } UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $chapter->document_id, 'chapter_id' => $chapter->id, 'operate' => UserOperateLog::CHAPTER_COPY, 'remark' => $user->username . '复制章节' . $chapter->name . '到' . !empty($parentChapter) ? $parentChapter->name : '根节点' ]); idb()->commit(); return $this->data($newChapter->toArray()); } catch (\Throwable $e) { idb()->rollBack(); throw new ErrorHttpException($e->getMessage(), $e->getCode()); } } /** * @api {post} /admin/chapter/import 参数导入 * @apiName import * @apiGroup Chapter * * @apiParam {Number} data 导入参数 * @apiParam {Number} reponse_id 响应ID * @apiParam {Number} type 参数类型:json、key_word、array * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":[{"type":3,"name":"status","description":"","enabled":2,"default_value":true,"rule":"","children":[]},{"type":2,"name":"code","description":"","enabled":2,"default_value":200,"rule":"","children":[]},{"type":1,"name":"msg","description":"","enabled":2,"default_value":"success","rule":"","children":[]},{"type":5,"name":"array","description":"","enabled":2,"default_value":"[1,2,3]","rule":"","children":[]},{"type":5,"name":"marray","description":"","enabled":2,"default_value":"","rule":"+2","children":[{"type":5,"name":0,"description":"","enabled":2,"default_value":"[1,2]","rule":"","children":[]},{"type":5,"name":1,"description":"","enabled":2,"default_value":"[3,4]","rule":"","children":[]}]},{"type":4,"name":"object","description":"","enabled":2,"default_value":"","rule":"","children":[{"type":2,"name":"id","description":"","enabled":2,"default_value":1,"rule":"","children":[]},{"type":1,"name":"name","description":"","enabled":2,"default_value":"name","rule":"","children":[]}]}],"message":"ok"} */ public function import(Request $request) { $data = $this->validate($request, [ 'data' => 'required', 'location' => 'required|integer', 'type' => 'required' ]); $Capter = new ChapterImportLogic(); $res = $Capter->getApiparam($data['data'], $data['location'], $data['type']); return $this->data($res); } } ================================================ FILE: app/Controller/Admin/Document/ChapterApiController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin\Document; use W7\App\Controller\BaseController; use W7\App\Model\Logic\Document\ChapterApiLogic; use W7\Http\Message\Server\Request; class ChapterApiController extends BaseController { /** * @api {get} /document/chapterapi/getApiLabel 获取参数类型列表 * * @apiName getApiLabel * @apiGroup ChapterApi * * @apiParam {Array} data * @apiParam {Array} data.statusCode 状态码列表 * @apiParam {Array} data.methodLabel 请求方式列表 * @apiParam {Array} data.enabledLabel 必填类型列表 * @apiParam {Array} data.typeLabel 字段类型 * @apiParam {Array} data.locationLabel 参数类型 * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"statusCode":[200,301,403,404,500,502,503,504],"methodLabel":{"label":"请求方式","option":[{"label":"GET","value":1},{"label":"POST","value":2},{"label":"PUT","value":3},{"label":"PATCH","value":4},{"label":"DELETE","value":5},{"label":"COPY","value":6},{"label":"HEAD","value":7},{"label":"PTIONS","value":8},{"label":"LINK","value":9},{"label":"UNLINK","value":10},{"label":"PURGE","value":11},{"label":"LOCK","value":12},{"label":"UNLOCK","value":13},{"label":"PROPFIND","value":14},{"label":"VIEW","value":15}]},"enabledLabel":{"label":"必填类型","option":[{"label":"False","value":1},{"label":"Ture","value":2}]},"typeLabel":{"label":"字段类型","option":[{"label":"String","value":1},{"label":"Number","value":2},{"label":"Boolean","value":3},{"label":"Object","value":4},{"label":"Array","value":5},{"label":"Function","value":6},{"label":"RegExp","value":7},{"label":"Null","value":8}]},"locationLabel":{"label":"参数类型","option":[{"label":"Request.Query.Path","value":12},{"label":"Request.Header","value":1},{"label":"Request.Query.String","value":2},{"label":"Request.Body.form-data","value":3},{"label":"Request.Body.urlencoded","value":4},{"label":"Request.Body.raw","value":5},{"label":"Request.Body.binary","value":6},{"label":"Reponse.Header","value":7},{"label":"Reponse.Body.form-data","value":8},{"label":"Reponse.Body.urlencoded","value":9},{"label":"Reponse.Body.raw","value":10},{"label":"Reponse.Body.binary","value":11}]}},"message":"ok"} */ public function getApiLabel(Request $request) { return $this->data(ChapterApiLogic::instance()->getApiLabel()); } } ================================================ FILE: app/Controller/Admin/Document/ChapterApiDataController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin\Document; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document\ChapterApiData; use W7\App\Model\Entity\Setting; use W7\App\Model\Logic\Document\ChapterApiDataLogic; use W7\Http\Message\Server\Request; class ChapterApiDataController extends BaseController { /** * @api {post} /admin/document/chapterapi/setApiData API请求数据保存 * @apiName setApiData * @apiGroup Chapterapi * * @apiParam {Number} chapter_id 章节ID * @apiParam {Number} document_id 文档ID * @apiParam {Number} respond_id 数据ID 非必填 编辑的时候传参 * @apiParam {String} respond 数据文本 * * @apiSuccessExample {json} Success-Response: * {status: true, code: 200, data: "success", message: "ok"} */ public function setData(Request $request){ //验证 $params = $this->validate($request,[ 'chapter_id' => 'required|integer', 'document_id' => 'required|integer', ],[ 'chapter_id.required' => '章节id必填', 'document_id.required' => '文档id必填', ]); $user = $request->getAttribute('user'); if (!$user->isOperator) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } //先删除原先的数据 $chapter = ChapterApiDataLogic::instance()->deleteChapterApiData($params['chapter_id']); if (!$chapter) { throw new ErrorHttpException('数据更新错误'); } ChapterApiData::query()->create([ 'chapter_id'=>$params['chapter_id'], 'respond'=> trim($request->post('respond')) ]); return $this->data('success'); } /** * @api {get} /admin/document/chapterapi/getData API请求数据保存 * @apiName getData * @apiGroup Chapterapi * * @apiParam {Number} chapter_id 章节ID */ public function getData(Request $request){ //验证 $params = $this->validate($request,[ 'chapter_id' => 'required|integer|min:1', ],[ 'chapter_id.required' => '文档id必填', 'chapter_id.min' => '文档id最小为0', ]); $chapter = ChapterApiDataLogic::instance()->getByChapterApiData($params['chapter_id']); if (!$chapter){ throw new ErrorHttpException('获取数据失败'); } return $this->data($chapter); } } ================================================ FILE: app/Controller/Admin/DocumentController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin; use Illuminate\Contracts\Pagination\LengthAwarePaginator; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document; use W7\App\Model\Entity\Document\Chapter; use W7\App\Model\Entity\DocumentPermission; use W7\App\Model\Entity\Setting; use W7\App\Model\Entity\Star; use W7\App\Model\Entity\User; use W7\App\Model\Entity\UserOperateLog; use W7\App\Model\Logic\DocumentFeedbackLogic; use W7\App\Model\Logic\DocumentLogic; use W7\App\Model\Logic\DocumentPermissionLogic; use W7\App\Model\Logic\UserLogic; use W7\Http\Message\Server\Request; class DocumentController extends BaseController { public function all(Request $request) { $keyword = trim($request->input('keyword')); $page = intval($request->post('page')); $pageSize = intval($request->post('page_size')); $isPublic = $request->post('is_public'); $role = $request->post('role'); //获取只能阅读的文档列表 $onlyRead = $request->post('only_reader'); $user = $request->getAttribute('user'); //管路员不搜索制度类型和创建类型查看全部 if ($user->isFounder && !$onlyRead && !$role) { $query = Document::query()->with('user')->orderByDesc('id'); if (!empty($keyword)) { $query->where('name', 'LIKE', "%{$keyword}%"); } if (!empty($isPublic)) { $query->where('is_public', '=', $isPublic); } /** * @var LengthAwarePaginator $result */ $list = $query->paginate($pageSize, '*', 'page', $page); $document = $list->items(); if (!empty($document)) { foreach ($document as $i => $row) { $star = Star::query()->where('user_id', '=', $user->id)->where('document_id', '=', $row->id)->where('chapter_id', '=', 0)->first(); $lastOperate = UserOperateLog::query()->where('document_id', '=', $row->id)->whereIn('operate', [UserOperateLog::CREATE, UserOperateLog::EDIT])->latest()->first(); $result['data'][] = [ 'id' => $row->id, 'name' => $row->name, 'cover' => $row->cover, 'author' => [ 'name' => $row->user->username ], 'operator' => [ 'name' => !empty($lastOperate) ? $lastOperate->operateDesc : '', 'time' => !empty($lastOperate) ? $lastOperate->created_at->toDateTimeString() : '' ], 'star_id' => !empty($star) ? $star->id : '', 'description' => $row->descriptionShort, 'is_public' => $row->isPublicDoc, 'acl' => DocumentPermissionLogic::instance()->getFounderACL(), ]; } } } else { $permissions = [DocumentPermission::MANAGER_PERMISSION, DocumentPermission::OPERATOR_PERMISSION]; //$role代表为创建者 if ($role == 1) { $permissions = [DocumentPermission::MANAGER_PERMISSION]; } //$role为2我操作的 if ($role == 2) { $permissions = [DocumentPermission::OPERATOR_PERMISSION]; } if ($onlyRead) { $permissions = [DocumentPermission::READER_PERMISSION]; } //$role为3代表为我参与的(已创建、我操作、可阅读) if ($role == 'all') { $permissions = [DocumentPermission::MANAGER_PERMISSION, DocumentPermission::OPERATOR_PERMISSION, DocumentPermission::READER_PERMISSION]; } $query = DocumentPermission::query()->where('user_id', '=', $user->id) ->whereIn('permission', $permissions) ->orderByDesc('id')->with('document')->whereHas('document'); if (!empty($keyword)) { $query->whereHas('document', function ($query) use ($keyword) { return $query->where('name', 'LIKE', "%{$keyword}%"); }); } if (!empty($isPublic)) { $query->whereHas('document', function ($query) use ($isPublic) { return $query->where('is_public', '=', $isPublic); }); } $list = $query->paginate($pageSize, '*', 'page', $page); $document = $list->items(); if (!empty($document)) { foreach ($document as $i => $row) { $star = Star::query()->where('user_id', '=', $user->id)->where('document_id', '=', $row->document_id)->where('chapter_id', '=', 0)->first(); $lastOperate = UserOperateLog::query()->where('document_id', '=', $row->id)->whereIn('operate', [UserOperateLog::CREATE, UserOperateLog::EDIT])->latest()->first(); $acl = $row->acl; //如果是管理员,显示全部按钮 if ($user->group_id == 1) { $acl['has_manage'] = true; } $result['data'][] = [ 'id' => $row->document->id, 'name' => $row->document->name, 'cover' => $row->document->cover, 'author' => [ 'name' => $row->document->user->username ], 'operator' => [ 'name' => !empty($lastOperate) ? $lastOperate->operateDesc : '', 'time' => !empty($lastOperate) ? $lastOperate->created_at->toDateTimeString() : '' ], 'star_id' => !empty($star) ? $star->id : '', 'description' => $row->document->descriptionShort, 'is_public' => $row->document->isPublicDoc, 'acl' => $acl, ]; } } } $result['page_count'] = $list->lastPage(); $result['total'] = $list->total(); $result['page_current'] = $list->currentPage(); return $this->data($result); } public function getAllByUid(Request $request) { /** * @var User $user */ $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('无操作用户权限'); } $params = $this->validate($request, [ 'user_id' => 'required|integer', ], [ 'user_id.required' => '请指定用户', ]); $name = trim($request->post('name')); $isPublic = trim($request->post('is_public')); if ($isPublic && !in_array($isPublic, [Document::PUBLIC_DOCUMENT, Document::PRIVATE_DOCUMENT])) { throw new ErrorHttpException('参数错误'); } $page = intval($request->post('page', 1)); $query = Document::query(); if ($isPublic) { $query = $query->where('is_public', '=', $isPublic); } if ($name) { $query = $query->where('name', 'like', '%' . $name . '%'); } //获取私有文档和公有文档的用户身份列表 $roleList = DocumentPermissionLogic::instance()->getRoleList(); $publicRoleList[] = [ 'id' => DocumentPermission::OPERATOR_PERMISSION, 'name' => $roleList[DocumentPermission::OPERATOR_PERMISSION] ]; $privateRoleList = $publicRoleList; $privateRoleList[] = [ 'id' => DocumentPermission::READER_PERMISSION, 'name' => $roleList[DocumentPermission::READER_PERMISSION] ]; $list = $query->paginate(null, '*', 'page', $page); foreach ($list->items() as $row) { /** * @var DocumentPermission $documentPermission */ $documentPermission = DocumentPermissionLogic::instance()->getByDocIdAndUid($row->id, $params['user_id']); $manager = DocumentPermissionLogic::instance()->getByDocIdAndPermission($row->id, DocumentPermission::MANAGER_PERMISSION); $roleList = $row->isPublicDoc ? $publicRoleList : $privateRoleList; if (!$manager) { $roleList[] = [ 'id' => DocumentPermission::MANAGER_PERMISSION, 'name' => $roleList[DocumentPermission::MANAGER_PERMISSION] ]; } elseif ($manager->user_id == $params['user_id']) { continue; } $result['data'][] = [ 'id' => $row->id, 'name' => $row->name, 'description' => $row->descriptionShort, 'is_public' => $row->isPublicDoc, 'cur_role' => $documentPermission ? $documentPermission->permission : 0, 'role_list' => $roleList ]; } $result['page_count'] = $list->lastPage(); $result['total'] = $list->total(); $result['page_current'] = $list->currentPage(); return $this->data($result); } public function detail(Request $request) { $document = $this->checkPermissionAndGetDocument($request); /** * @var User $user */ $user = $request->getAttribute('user'); $result = [ 'id' => $document->id, 'name' => $document->name, 'cover' => $document->cover, 'description' => $document->description, 'is_public' => $document->is_public, 'acl' => [ 'has_manage' => $user->isManager, 'has_edit' => $user->isOperator, 'has_delete' => $user->isManager, 'has_read' => $user->isReader ] ]; $hasManager = false; $operator = $document->operator()->with('user')->orderBy('permission')->get(); if (!empty($operator)) { $operator->each(function ($row, $i) use (&$result, &$hasManager) { $result['operator'][] = [ 'id' => $row->user->id, 'username' => $row->user->username, 'acl' => $row->acl, ]; if ($row->acl['has_manage']) { $hasManager = true; } }); } $roleList = DocumentPermissionLogic::instance()->getRoleList(); if ($document->isPublicDoc) { unset($roleList[DocumentPermission::READER_PERMISSION]); } if ($hasManager) { unset($roleList[DocumentPermission::MANAGER_PERMISSION]); } foreach ($roleList as $id => $name) { $result['role_list'][] = [ 'id' => $id, 'name' => $name ]; } return $this->data($result); } /** * @api {post} /admin/document/new-feedback 检测是否有最新反馈 * @apiName new-feedback * @apiGroup document.Feedback * * * @apiParam {Number} document_id 文档ID */ public function checkNewFeed(Request $request){ $params = $this->validate($request, [ 'document_id' => 'required|integer', ], [ 'document_id.required' => '请指定文档', ]); //查看是否有新的 反馈建议 $result['new_feed'] = false; $isNewFeed = DocumentFeedbackLogic::instance()->getByFeedbackNew($params['document_id']); if ($isNewFeed){ $result['new_feed'] = true; } return $this->data($result); } public function operator(Request $request) { $this->validate($request, [ 'document_id' => 'required|integer', ], [ 'document_id.required' => '请指定文档', ]); $uid = intval($request->post('user_id')); $userName = $request->post('user_name'); if (!$uid && !$userName) { throw new ErrorHttpException('参数错误'); } $user = $request->getAttribute('user'); if (!$user->isManager && !$user->isFounder) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } if (!$uid && $userName) { $findUser = UserLogic::instance()->getByUserName($userName); if (!$findUser) { throw new ErrorHttpException('用户不存在'); } $uid = $findUser->id; } $operator = UserLogic::instance()->getByUid($uid); if (empty($operator)) { throw new ErrorHttpException('您操作的用户不存在'); } $permission = intval($request->post('permission')); $documentId = intval($request->post('document_id')); /** * permission 值不存在时,意味着删除权限 * 只要权限合适,减少判断直接删除 */ if (empty($permission)) { $hasPermission = DocumentPermissionLogic::instance()->getByDocIdAndUid($documentId, $uid); if (!empty($hasPermission)) { $hasPermission->delete(); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $documentId, 'chapter_id' => 0, 'operate' => UserOperateLog::EDIT, 'target_user_id' => $uid, 'remark' => $user->username . '删除用户' . $operator->username . '的' . $hasPermission->aclName . '权限' ]); } return $this->data('success'); } if (!in_array($permission, [ DocumentPermission::MANAGER_PERMISSION, DocumentPermission::OPERATOR_PERMISSION, DocumentPermission::READER_PERMISSION ])) { throw new ErrorHttpException('您操作了不存在的权限'); } if ($permission == DocumentPermission::MANAGER_PERMISSION && !$user->isFounder) { throw new ErrorHttpException('您没有权限添加管理员'); } $document = DocumentLogic::instance()->getById($documentId); if (empty($document)) { throw new ErrorHttpException('管理的文档的不存在或是已经被删除'); } $hasPermission = DocumentPermissionLogic::instance()->getByDocIdAndUid($documentId, $uid); if (empty($hasPermission)) { $hasPermission = new DocumentPermission(); $hasPermission->user_id = $uid; $hasPermission->document_id = $documentId; } $hasPermission->permission = $permission; $hasPermission->save(); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $documentId, 'chapter_id' => 0, 'operate' => UserOperateLog::EDIT, 'target_user_id' => $uid, 'remark' => $user->username . '设置用户' . $operator->username . '为' . $hasPermission->aclName ]); return $this->data('success'); } public function create(Request $request) { $this->validate($request, [ 'name' => 'required', ], [ 'name.required' => '文档名称不能为空', ]); $user = $request->getAttribute('user'); $document = Document::query()->create([ 'name' => trim($request->input('name')), 'description' => trim($request->input('description')), 'creator_id' => $user->id, 'is_public' => intval($request->post('is_public')) ?? 1, ]); DocumentLogic::instance()->createCreatorPermission($document); // //创建默认目录 // Chapter::query()->create([ // 'name' => '默认目录', // 'sort' => 1, // 'is_dir' => 1, // 'document_id' => $document->id, // 'parent_id' => 0 // ]); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $document->id, 'chapter_id' => 0, 'operate' => UserOperateLog::CREATE, 'remark' => $user->username . '创建文档' ]); return $this->data($document->id); } public function update(Request $request) { $document = $this->checkPermissionAndGetDocument($request); if (!empty($request->input('name'))) { $document->name = $request->input('name'); } if (!empty($request->input('description'))) { $document->description = $request->input('description'); } if (!empty($request->input('is_public'))) { $document->is_public = intval($request->input('is_public')); } // if (!empty($request->input('login_preview'))) { // $document->is_public = $request->input('login_preview') == 2 ? Document::LOGIN_PREVIEW_DOCUMENT : Document::PRIVATE_DOCUMENT; // } $cover = $request->input('cover'); if (isset($cover)) { $document->cover = $cover; } $document->save(); if ($document->is_public == Document::PUBLIC_DOCUMENT) { DocumentPermission::query()->where('document_id', '=', $document->id)->where('permission', '=', DocumentPermission::READER_PERMISSION)->delete(); } $user = $request->getAttribute('user'); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $document->id, 'chapter_id' => 0, 'operate' => UserOperateLog::EDIT, 'remark' => $user->username . '编辑文档基本信息' ]); return $this->data('success'); } public function delete(Request $request) { $data = $this->validate($request, [ 'name' => 'required', ], [ 'name.required' => '文档名称', ]); $document = $this->checkPermissionAndGetDocument($request); if ($document->name != $data['name']) { throw new ErrorHttpException('文档名称错误'); } try { $user = $request->getAttribute('user'); DocumentLogic::instance()->deleteByDocument($document); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $document->id, 'chapter_id' => 0, 'operate' => UserOperateLog::DELETE, 'remark' => $user->username . '删除文档' ]); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } return $this->data('success'); } private function checkPermissionAndGetDocument(Request $request) { $this->validate($request, [ 'document_id' => 'required|integer', ], [ 'document_id.required' => '请指定文档', ]); $documentId = intval($request->input('document_id')); $user = $request->getAttribute('user'); if (!$user->isManager && !$user->isFounder) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $document = DocumentLogic::instance()->getById($documentId); if (empty($document)) { throw new ErrorHttpException('您操作的文档不存在'); } return $document; } public function changeDocumentFounder(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer', 'username' => 'required', ]); $user = $request->getAttribute('user'); if (!$user->isManager) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } if (!$targetUser = UserLogic::instance()->getByUserName($params['username'])) { throw new ErrorHttpException('该用户不存在'); } Document::query()->where('id', $params['document_id'])->update(['creator_id' => $targetUser->id]); //设置原管理员的权限为操作员 $managerPermission = DocumentPermissionLogic::instance()->getByDocIdAndPermission($params['document_id'], DocumentPermission::MANAGER_PERMISSION); if ($managerPermission) { $managerPermission->permission = DocumentPermission::OPERATOR_PERMISSION; $managerPermission->save(); } //删除该用户在源文档上的权限 $originPermission = DocumentPermissionLogic::instance()->getByDocIdAndUid($params['document_id'], $targetUser->id); if ($originPermission) { $originPermission->delete(); } //设置目标用户为管理员 DocumentPermissionLogic::instance()->add($params['document_id'], $targetUser->id, DocumentPermission::MANAGER_PERMISSION); UserOperateLog::query()->create([ 'user_id' => !empty($managerPermission->user_id) ? $managerPermission->user_id : 0, 'document_id' => $params['document_id'], 'chapter_id' => 0, 'target_user_id' => $targetUser->id, 'operate' => UserOperateLog::DOCUMENT_TRANSFER, 'remark' => $user->username . '转让文档到' . $targetUser->username ]); return $this->data('success'); } } ================================================ FILE: app/Controller/Admin/DocumentHomeController.php ================================================ _user= $request->getAttribute('user'); if (!$this->_user->isFounder) { throw new ErrorHttpException('无权访问'); } return true; } /** * @api {get} /admin/home/list 首页文档设置列表 * * @apiName list * @apiGroup DocumentHome * * @apiParam {Number} type 类型 (0:全部 1:公告 2:首页类型一 3:首页类型二) * */ public function getList(Request $request){ $this->check($request); $params = $this->validate($request, [ 'type' => 'required|integer', ], [ 'type.required' => '请选择类型', ]); $page = intval($request->input('page',1)); $pageSize = intval($request->input('page_size',10)); $data = DocumentHomeLogic::instance()->getListData($params['type'],$page,$pageSize); return $this->data($data); } /** * @api {post} /admin/home/add 首页文档设置-添加 * * @apiName add * @apiGroup DocumentHome * * @apiParam {Number} type 类型 ( 1:公告 2:首页类型一 3:首页类型二) * @apiParam {Number} document_id 文档id * @apiParam {String} logo 文档图标(类型 2 必填,其他非必填) * @apiParam {String} desc 文档简介(非必填) * @apiParam {Number} sort 排序值(非必填) * */ public function addHomeData(Request $request){ $this->check($request); $params = $this->validate($request, [ 'type' => 'required|integer|min:1', 'document_id' => 'required|integer', ], [ 'type.required' => '请选择类型', 'type.min' => '类型最小为 1', 'document_id.required' => '请选择文档', ]); //不同类型参数判断 if (intval($params['type']) == 2){ //首页类型一 $logo = $request->post('logo'); if (!$logo){ throw new ErrorHttpException('请上传图标'); } $params['logo'] = $logo; $params['description'] = htmlspecialchars(trim($request->post('desc')),ENT_QUOTES); } $params['user_id'] = $this->_user->id; //排序 $params['sort'] = intval($request->post('sort',0)); DocumentHomeLogic::instance()->addHomeData($params); return $this->data('success'); } /** * @api {all} /admin/home/edit 首页文档设置-编辑 * * @apiName edit * @apiGroup DocumentHome * * @apiParam {Number} id 主键 ID ( GET请求只传 id GET 获取数据 POST 提交数据) * @apiParam {Number} type 类型 ( 1:公告 2:首页类型一 3:首页类型二) * @apiParam {Number} document_id 文档id * @apiParam {String} logo 文档图标(类型 2 必填,其他非必填) * @apiParam {String} desc 文档简介(非必填) * @apiParam {Number} sort 排序值(非必填) * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"id":24,"user_id":1,"user":"admin","type":2,"type_name":"首页类型一","document_id":2,"document_name":"开源文档","url":"","description":"fgfdhfgh","sort":11,"created_at":"2021-03-16 17:04:52"},"message":"ok"} */ public function editHomeData(Request $request){ $this->check($request); //get 请求 if ($request->getMethod() == 'GET'){ $params = $this->validate($request, [ 'id' => 'required|integer|min:1', ], [ 'id.required' => 'id 不能为空', 'id.min' => 'id 最小为 1', ]); $data = DocumentHomeLogic::instance()->getByHomeData($params['id']); return $this->data($data); //POST 请求 }elseif ($request->getMethod() == 'POST'){ $params = $this->validate($request, [ 'id' => 'required|integer|min:1', 'type' => 'required|integer|min:1', 'document_id' => 'required|integer', ], [ 'id.required' => 'id 不能为空', 'id.min' => 'id 最小为 1', 'type.required' => '请选择类型', 'type.min' => '类型最小为 1', 'document_id.required' => '请选择文档', ]); //不同类型参数判断 if (intval($params['type']) == 2){ //首页类型一 $logo = $request->post('logo'); if (!$logo){ throw new ErrorHttpException('请上传图标'); } $params['logo'] = $logo; $params['description'] = htmlspecialchars(trim($request->post('desc')),ENT_QUOTES); } $params['user_id'] = $this->_user->id; //排序 $params['sort'] = intval($request->post('sort',0)); DocumentHomeLogic::instance()->editHomeData($params); return $this->data('success'); } return $this->data('非法请求'); } /** * @api {post} /admin/home/delete 首页文档设置-删除操作 * * @apiName delete * @apiGroup DocumentHome * * @apiParam {Number} id 主键 ID * */ public function delHomeData(Request $request){ $this->check($request); $params = $this->validate($request, [ 'id' => 'required|integer|min:1', ], [ 'id.required' => 'id 不能为空', 'id.min' => 'id 最小为 1', ]); DocumentHomeLogic::instance()->delHomeData(intval($params['id'])); return $this->data('success'); } /** * @api {get} /admin/home/get-type 首页文档设置-获取类型 * * @apiName get-type * @apiGroup DocumentHome * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"1":"公告","2":"首页类型一","3":"首页类型二"},"message":"ok"} */ public function getType(Request $request){ $this->check($request); return $this->data(DocumentHomeLogic::instance()->getTypeData()); } /** * @api {post} /admin/home/search-doc 首页文档设置-模糊查询文档 * * @apiName search-doc * @apiGroup DocumentHome * * @apiParam {String} keyword 关键词(非必填) * */ public function queryDocument(Request $request){ $this->check($request); $keyword = trim($request->post('keyword')); $data = DocumentHomeLogic::instance()->queryDocument($keyword,1); return $this->data($data); } } ================================================ FILE: app/Controller/Admin/FeedbackController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\DocumentFeedback; use W7\App\Model\Entity\Setting; use W7\App\Model\Logic\DocumentFeedbackLogic; use W7\Http\Message\Server\Request; class FeedbackController extends BaseController { /** * @api {post} /admin/document/feedback-list 反馈建议列表 * @apiName feedback-list * @apiGroup document.Feedback * * * @apiParam {Number} document_id 文档ID * @apiParam {Number} page 页码 * @apiParam {Number} page_size 页数 */ public function getList(Request $request){ //验证 $params = $this->validate($request, [ 'document_id' => 'required|integer|min:1', ], [ 'document_id.required' => '文档id必填', 'document_id.integer' => '文档id非法', ]); $page = intval($request->post('page')); $pageSize = intval($request->post('page_size')); //获取用户信息 $user = $request->getAttribute('user'); if (!$user->isManager) { throw new ErrorHttpException('您没有权限管理该文档',[],Setting::ERROR_NO_POWER); } //查询数据 $query = DocumentFeedback::query()->where('document_id', '=', $params['document_id'])->orderByDesc('created_at'); $list = $query->paginate($pageSize, ['id','user_id','document_id','type','status','created_at'], 'page', $page); foreach ($list->items() as $i => $row) { $result['data'][] = [ 'id' => $row->id, 'user_id' => $row->user_id, 'document_id' => $row->document_id, 'status' => $row->status, 'status_text' => $row->status_text, 'type' => $row->type, 'type_name' => $row->type_name, 'created_at' => $row->created_at->toDateTimeString() ]; } $result['page_count'] = $list->lastPage(); $result['total'] = $list->total(); $result['page_current'] = $list->currentPage(); return $this->data($result); } /** * @api {post} /admin/document/feedback-detail 反馈建议详情 * @apiName feedback-detail * @apiGroup document.Feedback * * * @apiParam {Number} feed_id 反馈数据ID * @apiParam {Number} document_id 文档ID */ public function detail(Request $request){ //验证 $params = $this->validate($request, [ 'feed_id' => 'required|integer|min:1', 'document_id' => 'required|integer|min:1', ], [ 'feed_id.required' => '反馈数据id必填', 'feed_id.integer' => '反馈数据id非法', 'document_id.required' => '文档id必填', 'document_id.integer' => '文档id非法', ]); //获取用户信息 $user = $request->getAttribute('user'); if (!$user->isManager) { throw new ErrorHttpException('您没有权限管理该文档',[],Setting::ERROR_NO_POWER); } $detail = DocumentFeedbackLogic::instance()->getByFeedbackDetail($params['feed_id'],$params['document_id']); if (!$detail){ throw new ErrorHttpException('反馈数据不存在'); } //更新状态 DocumentFeedbackLogic::instance()->setByFeedbackStatus($params['feed_id'],$params['document_id']); $result = [ 'id'=> $detail->id, 'status' => $detail->status, 'status_text' => $detail->status_text, 'type'=> $detail->type, 'type_name'=> $detail->type_name, 'document_id'=> $detail->document_id, 'content'=> $detail->content, 'images'=> $detail->images, 'created_at' => $detail->created_at->toDateTimeString() ]; return $this->data($result); } } ================================================ FILE: app/Controller/Admin/HomepageSettingController.php ================================================ getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('无权访问'); } return true; } /** * @api {get} /admin/home/get-set 获取首页设置数据 * @apiName get-set * @apiGroup HomepageSetting * * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"open_home":{"is_open":"0","url":"http:\/\/192.168.168.99"},"banner":["http:\/\/111.234.xxxx","http:\/\/xxx.xxx.xx"],"title":"11111"},"message":"ok"} */ public function getHomePageSet(Request $request){ $this->check($request); return $this->data(HomepageSettingLogic::instance()->getHomeSet()); } /** * @api {post} /admin/home/set-open 设置是否打开首页 * @apiName set-open * @apiGroup HomepageSetting * * * @apiParam {Number} is_open 是否开启(0:关闭 1:开启) */ public function setOpenHome(Request $request){ $this->check($request); $params = $this->validate($request, [ 'is_open' => 'required|integer', ], [ 'is_open.required' => '请选择是否开启', ]); $params['url'] = base_url(); HomepageSettingLogic::instance()->setOpenHome($params); return $this->data('success'); } /** * @api {post} /admin/home/set-banner 设置首页banner * @apiName set-banner * @apiGroup HomepageSetting * * * @apiParam {Array} images 图片 */ public function setHomeBanner(Request $request){ $this->check($request); $images = $request->post('images'); $images = array_filter($images); if (empty($images)){ throw new ErrorHttpException('图片不能为空!'); } HomepageSettingLogic::instance()->setHomeBanner($images); return $this->data('success'); } /** * @api {post} /admin/home/set-title 设置首页名称 * @apiName set-title * @apiGroup HomepageSetting * * * @apiParam {String} title 名称 */ public function setHomeTtile(Request $request){ $this->check($request); $params = $this->validate($request, [ 'title' => 'string|required', ], [ 'title.required' => '名称不能为空', ]); HomepageSettingLogic::instance()->setHomeTitle($params['title']); return $this->data('success'); } } ================================================ FILE: app/Controller/Admin/MenuSettingController.php ================================================ getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('无权访问'); } return true; } public function all(Request $request) { $this->check($request); return $this->data(MenuSettingLogic::instance()->all()); } public function add(Request $request) { $this->check($request); $config = $this->validate($request, [ 'name' => 'required', 'sort' => 'required', 'url' => 'required' ]); MenuSettingLogic::instance()->add($config); return $this->data('success'); } public function getById(Request $request) { $this->check($request); $params = $this->validate($request, [ 'id' => 'required' ]); try { return $this->data(MenuSettingLogic::instance()->getById($params['id'])); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function updateById(Request $request) { $this->check($request); $config = $this->validate($request, [ 'id' => 'required', 'name' => 'required', 'sort' => 'required', 'url' => 'required' ]); try { MenuSettingLogic::instance()->updateById($config['id'], $config); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } return $this->data('success'); } public function deleteById(Request $request) { $this->check($request); $params = $this->validate($request, [ 'id' => 'required' ]); MenuSettingLogic::instance()->deleteById($params['id']); return $this->data('success'); } public function setTheme(Request $request) { $this->check($request); $params = $this->validate($request, [ 'theme' => 'required' ]); MenuSettingLogic::instance()->setTheme($params['theme']); return $this->data('success'); } public function getTheme(Request $request) { $this->check($request); return $this->data(MenuSettingLogic::instance()->getTheme()); } } ================================================ FILE: app/Controller/Admin/SettingController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Logic\SettingLogic; use W7\App\Model\Service\CdnLogic; use W7\Http\Message\Server\Request; class SettingController extends BaseController { private $handler = [ SettingLogic::KEY_COS => 'saveCos', SettingLogic::KEY_FORBID_WORDS => '', ]; public function config(Request $request){ $param = $this->validate($request, [ 'key' => 'required', ], [ 'key.required' => 'key必填', ]); $this->check($request); $setting = SettingLogic::instance()->getByKey($param['key'],1); return $this->data([$param['key'] => $setting->setting]); } public function cos(Request $request) { $this->check($request); $setting = SettingLogic::instance()->getByKey(SettingLogic::KEY_COS); $settingData = $setting->setting; if ((!$settingData['url']) && $settingData['region'] && $settingData['bucket']) { $settingData['url'] = 'https://' . $settingData['bucket'] . '.cos.' . $settingData['region'] . '.myqcloud.com'; } return $this->data([ 'key' => SettingLogic::KEY_COS, 'setting' => $settingData, ]); } public function save(Request $request) { $this->validate($request, [ 'key' => 'required', ], [ 'key.required' => 'key必填', ]); $key = $request->post('key'); if (!isset($this->handler[$key])) { throw new ErrorHttpException('错误的配置key'); } if (!empty($this->handler[$key])) { $value = call_user_func_array([$this, $this->handler[$key]], [$request]); } else { $value = $request->post('setting',''); } try { idb()->beginTransaction(); if ($key == SettingLogic::KEY_COS && (empty($value['url']) || !$value['url'])) { $value['url'] = 'https://' . $value['bucket'] . '.cos.' . $value['region'] . '.myqcloud.com'; } SettingLogic::instance()->save($key, $value); //验证票据 if ($key == SettingLogic::KEY_COS) CdnLogic::instance()->channel(SettingLogic::KEY_COS, true); idb()->commit(); } catch (\Throwable $e) { idb()->rollBack(); if ($key == SettingLogic::KEY_COS) { ilogger()->channel('error')->error('云存储链接失败,请检查配置是否正确' . $e->getMessage()); throw new ErrorHttpException('云存储链接失败,请检查配置是否正确'); } throw new ErrorHttpException($e->getMessage()); } return $this->data('success'); } private function saveCos(Request $request) { $this->validate($request, [ 'setting.app_id' => 'required', 'setting.secret_id' => 'required', 'setting.secret_key' => 'required', 'setting.bucket' => 'required', 'setting.region' => 'required', 'setting.url' => '', 'setting.path' => 'sometimes|regex:/^\/[a-zA-Z\-_0-9]+$/i' ], [ 'setting.app_id.required' => 'app_id必填', 'setting.secret_id.required' => 'secret_id必填', 'setting.secret_key.required' => 'secret_key必填', 'setting.bucket.required' => 'bucket必填', 'setting.region.required' => '所属地址必填', 'setting.url' => '附件访问域名', 'setting.path.regex' => '保存目录填写错误,格式例如:/savepath ' ]); $setting = $request->post('setting'); $data = [ 'app_id' => $setting['app_id'], 'secret_id' => $setting['secret_id'], 'secret_key' => $setting['secret_key'], 'bucket' => $setting['bucket'], 'region' => $setting['region'], 'url' => rtrim($setting['url'], '/'), 'path' => rtrim($setting['path'], '/'), ]; if (empty($data['path'])) { $data['path'] = ''; } return $data; } private function check(Request $request) { $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('无权访问'); } return true; } } ================================================ FILE: app/Controller/Admin/StarController.php ================================================ post('name'); $page = intval($request->post('page')); /** * @var User $user */ $user = $request->getAttribute('user'); $query = Star::query()->where('user_id', '=', $user->id); if ($name) { $query->whereHas('document', function ($query) use ($name) { return $query->where('name', 'LIKE', "%{$name}%"); }); } $list = $query->paginate(null, '*', 'page', $page); $data = []; foreach ($list->items() as $row) { if ($row->chapter_id) { $name = $row->chapter->name; } else { $name = $row->document->name; } $data[] = [ 'id' => $row->id, 'name' => $name, 'author' => [ 'name' => $row->document->user->username ], 'is_public' => $row->document->isPublicDoc, 'document_id' => $row->document->id, 'chapter_id' => $row->chapter->id ]; } $result['data'] = $data; $result['page_count'] = $list->lastPage(); $result['total'] = $list->total(); $result['page_current'] = $list->currentPage(); return $this->data($result); } public function add(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer', ], [ 'document_id.required' => '文档ID必传', ]); /** * @var User $user */ $user = $request->getAttribute('user'); /*if (!$user->isReader) { throw new ErrorHttpException('无权限操作该文档'); }*/ $document = DocumentLogic::instance()->getById($params['document_id']); if (empty($document)) { throw new ErrorHttpException('您操作的文档不存在'); } $star = new Star(); $star->user_id = $user->id; $star->document_id = $params['document_id']; $star->chapter_id = (int)$request->post('chapter_id', 0); $star->save(); UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $params['document_id'], 'chapter_id' => $star->chapter_id, 'operate' => UserOperateLog::COLLECT, 'remark' => '添加星标' ]); return $this->data(['star_id' => $star->id]); } public function delete(Request $request) { $params = $this->validate($request, [ 'id' => 'required|integer', 'document_id' => 'required|integer', ], [ 'id.required' => 'ID必传', 'document_id.required' => '文档ID必传', ]); /** * @var User $user */ $user = $request->getAttribute('user'); /*if (!$user->isReader) { throw new ErrorHttpException('无权限操作该文档'); }*/ $document = DocumentLogic::instance()->getById($params['document_id']); if (empty($document)) { throw new ErrorHttpException('您操作的文档不存在'); } $star = Star::query()->where('user_id', '=', $user->id)->where('id', '=', $params['id'])->first(); UserOperateLog::query() ->where('user_id',$star->user_id) ->where('document_id', $star->document_id) ->where('chapter_id',$star->chapter_id) ->delete(); $star->delete(); return $this->data('success'); } } ================================================ FILE: app/Controller/Admin/ThirdPartyLoginController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Logic\ThirdPartyLoginLogic; use W7\Http\Message\Server\Request; class ThirdPartyLoginController extends BaseController { private function check(Request $request) { $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('无权访问'); } return true; } public function all(Request $request) { $this->check($request); $setting = ThirdPartyLoginLogic::instance()->getThirdPartyLoginSetting(1); $data = []; foreach ($setting['channel'] as $key => $item) { $data[] = [ 'id' => $key, 'name' => $item['setting']['name'], 'enable' => $item['setting']['enable'] ?? false ]; } return $this->data($data); } public function getById(Request $request) { $this->check($request); $params = $this->validate($request, [ 'id' => 'required' ]); try { return $this->data(ThirdPartyLoginLogic::instance()->getThirdPartyLoginChannelById($params['id'], 1)); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function add(Request $request) { $this->check($request); $params = $this->validate($request, [ 'setting.name' => 'required', 'setting.logo' => 'required|url', 'setting.app_id' => 'required', 'setting.secret_key' => 'required', 'setting.access_token_url' => 'required|url', 'setting.user_info_url' => 'required|url' ], [ 'setting.name.required' => 'name必填', 'setting.logo.required' => 'logo必传', 'setting.app_id.required' => 'app_id必填', 'setting.secret_key.required' => 'secret_key必填', 'setting.access_token_url.required' => 'access_token_url必填', 'setting.user_info_url.required' => 'user_info_url必填', ]); $params['setting']['user_info_url'] = rtrim($params['setting']['user_info_url'], '/'); $params['setting']['access_token_url'] = rtrim($params['setting']['access_token_url'], '/'); $params['setting']['enable'] = !empty($request->post('setting')['enable']) ? 1 : 0; $params['convert'] = $request->post('convert'); try { ThirdPartyLoginLogic::instance()->addThirdPartyLoginChannel($params); return $this->data('success'); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function updateById(Request $request) { $this->check($request); $params = $this->validate($request, [ 'id' => 'required', 'setting.name' => 'required', 'setting.logo' => 'required|url', 'setting.app_id' => 'required', 'setting.secret_key' => 'required', 'setting.access_token_url' => 'required|url', 'setting.user_info_url' => 'required|url', ], [ 'setting.name.required' => 'name必填', 'setting.logo.required' => 'logo必传', 'setting.app_id.required' => 'app_id必填', 'setting.secret_key.required' => 'secret_key必填' ]); $params['setting']['user_info_url'] = rtrim($params['setting']['user_info_url'], '/'); $params['setting']['access_token_url'] = rtrim($params['setting']['access_token_url'], '/'); $params['setting']['enable'] = !empty($request->post('setting')['enable']) ? 1 : 0; $params['convert'] = $request->post('convert'); try { ThirdPartyLoginLogic::instance()->updateThirdPartyLoginChannelById($params['id'], $params); return $this->data('success'); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function deleteById(Request $request) { $this->check($request); $params = $this->validate($request, [ 'id' => 'required', ]); try { ThirdPartyLoginLogic::instance()->deleteThirdPartyLoginChannelById($params['id']); return $this->data('success'); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function setDefaultLoginChannel(Request $request) { $this->check($request); $defaultLoginChannel = $request->post('default_login_channel', ''); $isNeedBind = $request->post('is_need_bind', ''); $isNeedBind = $isNeedBind == 1 ? true : false; ThirdPartyLoginLogic::instance()->setDefaultLoginSetting([ 'default_login_channel' => $defaultLoginChannel, 'is_need_bind' => $isNeedBind ]); return $this->data('success'); } public function getDefaultLoginChannel(Request $request) { $this->check($request); return $this->data(ThirdPartyLoginLogic::instance()->getDefaultLoginSetting()); } } ================================================ FILE: app/Controller/Admin/UploadController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin; use W7\App\Controller\BaseController; use W7\App\Exception\BadRequestException; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Logic\SettingLogic; use W7\App\Model\Service\CdnLogic; use W7\Http\Message\Server\Request; class UploadController extends BaseController { public function image(Request $request) { $this->validate($request, [ 'file' => 'required|file' ]); $file = $request->file('file'); $size = $file->getSize(); $mimeType = $file->getMimeType(); $mimeTypeData = explode('/', $mimeType); //返回图片路径 if ($mimeTypeData[0] != 'image') { throw new ErrorHttpException('上传的文件不是图片'); } if ($size > 5242880) { throw new ErrorHttpException('请上传不大于5M的文件'); } $fileName = sprintf('/%s.%s', irandom(32), pathinfo($file->getClientFilename(), PATHINFO_EXTENSION)); try { $url = CdnLogic::instance()->channel(SettingLogic::KEY_COS)->uploadFile($fileName, $file->getRealPath()); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } return $this->data(['url' => $url]); } } ================================================ FILE: app/Controller/Admin/UserController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Admin; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\DocumentPermission; use W7\App\Model\Entity\Setting; use W7\App\Model\Entity\User; use W7\App\Model\Entity\UserOperateLog; use W7\App\Model\Logic\DocumentPermissionLogic; use W7\Http\Message\Server\Request; use W7\App\Model\Logic\UserLogic; class UserController extends BaseController { /** * @api {post} /admin/user/all 所有用户 * * @apiName all * @apiGroup user * * @apiParam {String} username 用户名 * */ public function all(Request $request) { $username = trim($request->input('username')); $name = trim($request->input('name')); $noId = $request->input('no_id', ''); $obj = User::query()->select(['id', 'username', 'group_id', 'created_at']); if ($username) { $obj->where('username', 'LIKE', "%$username%"); } if ($name) { $obj->where('username', $name); } if ($noId) { $obj->whereNotIn('id', explode(',', $noId)); } $user = $obj->get(); $result = $user->toArray(); return $this->data($result); } public function search(Request $request) { $username = trim($request->post('username')); $page = intval($request->post('page')); $user = User::query()->where('username', 'LIKE', "%$username%")->paginate(null, '*', 'page', $page); $result = []; $list = $user->items(); if (!empty($list)) { foreach ($list as $i => $row) { $result['data'][] = [ 'id' => $row->id, 'username' => $row->username, 'role' => $row->isFounder ? '创始人' : '普通用户', 'created_at' => $row->created_at->toDateTimeString(), 'manage_doc_count' => DocumentPermission::query()->where('user_id', '=', $row->id)->where('permission', '=', DocumentPermission::MANAGER_PERMISSION)->count(), 'operate_doc_count' => DocumentPermission::query()->where('user_id', '=', $row->id)->where('permission', '=', DocumentPermission::OPERATOR_PERMISSION)->count(), 'read_doc_count' => DocumentPermission::query()->where('user_id', '=', $row->id)->where('permission', '=', DocumentPermission::READER_PERMISSION)->count() ]; } } $result['page_count'] = $user->lastPage(); $result['total'] = $user->total(); $result['page_current'] = $user->currentPage(); return $this->data($result); } public function add(Request $request) { /** * @var User $user */ $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('没有操作用户的权限'); } $data = $this->validate($request, [ 'username' => 'required', 'userpass' => 'required', ], [ 'username.required' => '请输入用户姓名', 'userpass.required' => '请输入用户密码', ]); $data = [ 'username' => trim($data['username']), 'userpass' => trim($data['userpass']), ]; $data['remark'] = $request->input('remark', ''); try { $res = UserLogic::instance()->createUser($data); return $this->data($res); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function getById(Request $request) { /** * @var User $user */ $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('没有操作用户的权限'); } $params = $this->validate($request, [ 'id' => 'required' ], [ 'id.required' => '用户ID不能为空', ]); try { $res = UserLogic::instance()->getByUid($params['id']); if (!$res) { throw new \RuntimeException('用户不存在'); } unset($res->userpass); return $this->data($res->toArray()); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } /** * 用户编辑用户信息,如果编辑用户名,需要提供用户密码;如果编辑用户密码,需要提供原密码和新密码 * @param Request $request * @return array */ public function updateSelf(Request $request) { /** * @var User $user */ $user = $request->getAttribute('user'); $userName = trim($request->post('username')); $userPass = trim($request->post('userpass')); $userOldPass = trim($request->post('old_userpass')); if (empty($userName) && empty($userPass)) { throw new ErrorHttpException('参数错误'); } if ($userOldPass && $user->userpass != UserLogic::instance()->userPwdEncryption($user->username, $userOldPass)) { throw new ErrorHttpException('旧密码错误'); } $updateUser['id'] = $user->id; $updateUser['username'] = empty($userName) ? $user->username : $userName; !empty($updateUser['username']) && $updateUser['userpass'] = $userOldPass; $userPass && $updateUser['userpass'] = $userPass; try { $res = UserLogic::instance()->updateUser($updateUser); return $this->data($res); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } /** * 管理员编辑用户信息 * @param Request $request * @return array */ public function updateById(Request $request) { /** * @var User $user */ $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('没有操作用户的权限'); } $user = $this->validate($request, [ 'id' => 'required', 'username' => 'required', 'userpass' => 'required|confirmed', 'remark' => '', ], [ 'id.required' => '用户ID不能为空', 'username.required' => '用户名不能为空', 'userpass.required' => '密码不能为空' ]); unset($user['userpass_confirmation']); $user['username'] = trim($user['username']); $user['userpass'] = trim($user['userpass']); if ($request->input('is_ban') !== null) { $user['is_ban'] = $request->input('is_ban'); } if ($request->input('remark') !== null) { $user['remark'] = $request->input('remark'); } try { $res = UserLogic::instance()->updateUser($user); return $this->data($res); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } public function deleteByIds(Request $request) { /** * @var User $user */ $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('没有操作用户的权限'); } $params = $this->validate($request, [ 'ids' => 'required' ], [ 'ids.required' => 'ID不能为空', ]); $ids = array_filter(explode(',', trim($params['ids']))); if ($ids) { $delNum = UserLogic::instance()->deleteByIds($ids); return $this->data('成功删除' . $delNum . '用户,如果用户有文档不能直接删除'); } throw new ErrorHttpException('参数有误'); } public function batchUpdateDocPermissionByUid(Request $request) { /** * @var User $user */ $user = $request->getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('您没有权限管理该文档', [], Setting::ERROR_NO_POWER); } $params = $this->validate($request, [ 'document_permission' => 'required', 'user_id' => 'required' ]); try { idb()->beginTransaction(); try { foreach ($params['document_permission'] as $documentPermission) { $permission = DocumentPermissionLogic::instance()->updateByDocIdAndUid($documentPermission['document_id'], $params['user_id'], $documentPermission['permission']); if ($permission) { if (!empty($documentPermission['permission'])) { $remark = '设置用户' . $permission->user->username . '为' . $permission->aclName; } else { $remark = '删除用户' . $permission->user->username . '的' . $permission->aclName . '权限'; } UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $documentPermission['document_id'], 'chapter_id' => 0, 'operate' => UserOperateLog::EDIT, 'target_user_id' => $params['user_id'], 'remark' => $user->username . $remark ]); } } idb()->commit(); } catch (\Throwable $e) { idb()->rollBack(); throw $e; } return $this->data('success'); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } } ================================================ FILE: app/Controller/Admin/UserOperateLogController.php ================================================ post('name'); $page = intval($request->post('page', 1)); $pageSize = intval($request->post('page_size', 15)); //时间按天为单位 $time = intval($request->post('time')); /** * @var User $user */ $user = $request->getAttribute('user'); $query = UserOperateLog::query(); if ($name) { $query->whereHas('document', function ($query) use ($name) { return $query->where('name', 'LIKE', "%{$name}%"); }); } if ($time) { $query = $query->where('created_at', '<', time() - 86400 * $time); } $groupOperate = UserOperateLog::query()->where('user_id', '=', $user->id) ->where('operate', '=', UserOperateLog::PREVIEW) ->groupBy(['document_id'])->orderByDesc('max_id')->select([ 'document_id', DB::raw('max(id) max_id') ])->take($pageSize)->skip(($page - 1) * $pageSize)->getQuery(); $dataQuery = clone $query; $dataQuery = $dataQuery->joinSub($groupOperate, 'sub', 'id', '=', 'max_id')->orderByDesc('id'); foreach ($dataQuery->get() as $i => $row) { $star = Star::query()->where('user_id', '=', $user->id)->where('document_id', '=', $row->document_id)->where('chapter_id', '=', 0)->first(); $result['data'][] = [ 'id' => $row->id, 'document_id' => $row->document->id, 'name' => $row->document->name, 'star_id' => !empty($star) ? $star->id : '', 'author' => [ 'name' => $row->document->user->username ], 'description' => $row->document->descriptionShort, 'is_public' => $row->document->isPublicDoc, 'time' => $row->created_at->toDateTimeString() ]; } $query = $query->where('user_id', '=', $user->id)->where('operate', '=', UserOperateLog::PREVIEW)->groupBy(['document_id']); $list = $query->paginate($pageSize, ['*'], 'page', $page); $result['page_count'] = $list->lastPage(); $result['total'] = $list->total(); $result['page_current'] = $list->currentPage(); return $this->data($result); } /** * 获取文档的所有操作记录 * @param Request $request * @return array */ public function getByDocument(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer' ]); $page = intval($request->post('page')); $pageSize = intval($request->post('page_size')); //时间按天为单位 $time = intval($request->post('time')); /** * @var User $user */ $user = $request->getAttribute('user'); if (!$user->isManager) { throw new ErrorHttpException('您没有权限管理该文档',[],Setting::ERROR_NO_POWER); } $query = UserOperateLog::query()->where('document_id', '=', $params['document_id']) ->where('operate', '!=', UserOperateLog::PREVIEW)->where('remark', '!=' , '')->orderByDesc('created_at'); if ($time) { $query = $query->where('created_at', '<', time() - 86400 * $time); } $list = $query->paginate($pageSize, ['id', 'user_id', 'document_id', 'operate', 'remark', 'created_at'], 'page', $page); foreach ($list->items() as $i => $row) { $result['data'][] = [ 'id' => $row->id, 'remark' => $row->remark, 'time' => $row->created_at->toDateTimeString() ]; } $result['page_count'] = $list->lastPage(); $result['total'] = $list->total(); $result['page_current'] = $list->currentPage(); return $this->data($result); } public function deleteById(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer', ], [ 'document_id.required' => '文档ID必传' ]); $operateLogId = $request->post('operate_log_id'); $operateLogType = $request->post('operate_log_type', UserOperateLog::PREVIEW); /** * @var User $user */ $user = $request->getAttribute('user'); $query = UserOperateLog::query()->where('document_id', '=', $params['document_id']); if ($operateLogId) { $query = $query->where('id', '=', $operateLogId); } else { $query = $query->where('operate', '=', $operateLogType); } if (!$user->isManager) { $query = $query->where('user_id', '=', $user->id); } $query->delete(); return $this->data('success'); } } ================================================ FILE: app/Controller/Admin/UserShareController.php ================================================ validate($request, [ 'chapter_id' => 'required|integer', 'document_id' => 'required|integer' ]); $user = $request->getAttribute('user'); return $this->data(UserShareLogic::instance()->getShareUrl($user->id, $params['document_id'], $params['chapter_id'])); } } ================================================ FILE: app/Controller/Admin/index.html ================================================ ================================================ FILE: app/Controller/BaseController.php ================================================ true, 'code' => $code, 'data' => $data, 'message' => $message, ]; } } ================================================ FILE: app/Controller/Common/AuthController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Common; use Overtrue\Socialite\Config; use Overtrue\Socialite\SocialiteManager; use Throwable; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Setting; use W7\App\Model\Entity\User; use W7\App\Model\Entity\UserThirdParty; use W7\App\Model\Logic\ThirdPartyLoginLogic; use W7\App\Model\Logic\UserLogic; use W7\Core\Session\Session; use W7\Http\Message\Server\Request; class AuthController extends BaseController { public function user(Request $request) { $userSession = $request->session->get('user'); /** * @var User $user */ $user = UserLogic::instance()->getByUid($userSession['uid']); if (!$user) { $request->session->destroy(); throw new ErrorHttpException('请先登录', [], Setting::ERROR_NO_LOGIN); } $source = [ 'source_name' => '', 'username' => '' ]; $userSourceAppId = $request->session->get('user-source-app'); if ($userSourceAppId) { $userSource = UserThirdParty::query()->where('source', '=', $userSourceAppId)->where('uid', '=', $user->id)->first(); $loginChannel = ThirdPartyLoginLogic::instance()->getThirdPartyLoginChannelById($userSourceAppId); $source = [ 'source_name' => $loginChannel['setting']['name'], 'username' => $userSource->username ]; } $result = [ 'id' => $user->id, 'username' => $user->username, 'group_id' => $user->group_id, 'created_at' => $user->created_at->toDateTimeString(), 'updated_at' => $user->updated_at->toDateTimeString(), //判断当前用户是否有密码 'no_password' => empty($user->userpass), 'user_source' => $source, 'acl' => [ 'has_manage' => $user->isFounder ] ]; return $this->data($result); } public function login(Request $request) { $data = $this->validate($request, [ 'username' => 'required', 'userpass' => 'required', 'code' => 'required', ], [ 'username.required' => '用户名不能为空', 'userpass.required' => '密码不能为空', 'code.required' => '验证码不能为空', ]); $code = $request->session->get('img_code'); if (strtolower($data['code']) != strtolower($code)) { throw new ErrorHttpException('请输入正确的验证码'); } $user = UserLogic::instance()->getByUserName($data['username']); if (empty($user)) { throw new ErrorHttpException('用户名或密码错误,请检查'); } if ($user->userpass != UserLogic::instance()->userPwdEncryption($user->username, $data['userpass'])) { throw new ErrorHttpException('用户名或密码错误,请检查'); } if (!empty($user->is_ban)) { throw new ErrorHttpException('您使用的用户已经被禁用,请联系管理员'); } $request->session->destroy(); $this->saveUserInfo($request->session, $user); return $this->data('success'); } public function method(Request $request) { $redirectUrl = $request->post('redirect_url'); $setting = ThirdPartyLoginLogic::instance()->getThirdPartyLoginSetting(); $data = []; /** * @var SocialiteManager $socialite */ $socialite = iloader()->get(SocialiteManager::class); //获取可用的第三方登录列表 foreach ($setting['channel'] as $key => $item) { if (!empty($item['setting']['enable'])) { try { $socialite = clone $socialite; $url = ienv('API_HOST') . 'admin-login?app_id=' . $key . '&redirect_url=' . urlencode($redirectUrl); $redirect = $socialite->config(new Config([ 'client_id' => $item['setting']['app_id'], 'client_secret' => $item['setting']['secret_key'] ]))->driver($key)->stateless()->redirect($url)->getTargetUrl(); } catch (Throwable $e) { $redirect = null; } $data[] = [ 'id' => $key, 'name' => $item['setting']['name'], 'logo' => $item['setting']['logo'], 'redirect_url' => $redirect ]; } } return $this->data($data); } public function defaultLoginUrl(Request $request) { $redirectUrl = $request->post('redirect_url'); $defaultSetting = ThirdPartyLoginLogic::instance()->getDefaultLoginSetting(); if (!empty($defaultSetting['default_login_channel']) && $setting = ThirdPartyLoginLogic::instance()->getThirdPartyLoginChannelById($defaultSetting['default_login_channel'])) { /** * @var SocialiteManager $socialite */ $socialite = iloader()->get(SocialiteManager::class); $socialite = clone $socialite; $url = ienv('API_HOST') . 'login?app_id=' . $defaultSetting['default_login_channel'] . '&redirect_url=' . $redirectUrl; try { return $this->data($socialite->config(new Config([ 'client_id' => $setting['setting']['app_id'], 'client_secret' => $setting['setting']['secret_key'] ]))->driver($defaultSetting['default_login_channel'])->stateless()->redirect($url)->getTargetUrl()); } catch (Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } return $this->data(''); } /** * @api {post} /common/auth/third-party-login 三方登陆 * * @apiName third-party-login * @apiGroup auth * * @apiParam {string} code * @apiParam {string} app_id * * @apiSuccess {string} success * @apiSuccess {string} is_need_bind 需要绑定用户 true * @apiSuccess {string} has_login 已登录,需要确认是否切换 true * @apiSuccess {string} change_token 已登录,切换token */ public function thirdPartyLogin(Request $request) { $code = $request->input('code'); if (empty($code)) { throw new ErrorHttpException('Code码错误'); } $appId = $request->input('app_id'); if (empty($appId)) { throw new ErrorHttpException('app_id错误'); } $setting = ThirdPartyLoginLogic::instance()->getThirdPartyLoginChannelById($appId); if (!$setting) { throw new ErrorHttpException('不支持该授权方式'); } /** * @var SocialiteManager $socialite */ $socialite = iloader()->get(SocialiteManager::class); $driver = $socialite->config(new Config([ 'client_id' => $setting['setting']['app_id'], 'client_secret' => $setting['setting']['secret_key'] ]))->driver($appId)->stateless(); $user = $driver->user($driver->getAccessToken($code)); //获取第三方数据 $userInfo = [ 'uid' => $user->uid, 'username' => $user->username, 'avatar' => $user->avatar ?? '' ]; if (empty($userInfo['username']) || empty($userInfo['uid'])) { throw new ErrorHttpException('登录用户数据错误,请重试'); } //创建用户和绑定关系 $loginSetting = ThirdPartyLoginLogic::instance()->getDefaultLoginSetting(); $thirdPartyUser = UserThirdParty::query()->where([ 'openid' => $userInfo['uid'], 'username' => $userInfo['username'], 'source' => $appId ])->first(); if (empty($thirdPartyUser)) { $thirdPartyUser = UserThirdParty::query()->create([ 'openid' => $userInfo['uid'], 'username' => $userInfo['username'], 'uid' => 0, 'source' => $appId, ]); } $username = $thirdPartyUser->username; //如果当前第三方用户绑定的用户为空,执行绑定操作 if (empty($thirdPartyUser->uid)) { if (empty($loginSetting['is_need_bind'])) { //不需要绑定已有账户的话,直接创建新用户 $username = 'tpl_' . $userInfo['username'] . $userInfo['uid']; $thirdPartyUser->uid = UserLogic::instance()->createBucket($username,$userInfo['avatar']); $thirdPartyUser->save(); } else { $username = $userInfo['username']; $thirdPartyUser->uid = 0; } }else{ UserLogic::instance()->updateUser([ 'id' => $thirdPartyUser->uid, 'username' => $userInfo['username'], 'avatar' => $userInfo['avatar'] ]); } //已登陆的用户校验是否需要切换用户S $sessionUser = $request->session->get('user'); if ($sessionUser) { $LoginUserthirdParty = UserThirdParty::query() ->where('uid', $sessionUser['uid']) ->where('source', $appId)->first(); if ($LoginUserthirdParty) { //如果当前登陆账户,已经绑定了第三方-账户一致,返回成功,账户不一致,提示切换 if ($thirdPartyUser->uid) {//商城绑了文档 if ($thirdPartyUser->uid != $sessionUser['uid']) { //4如果登陆用户和当前访问用户不一致 $changeToken = 'temp_user_info_4' . date('YmdHis') . round(1000, 9999); icache()->set($changeToken, ['third_party_user_id' => $thirdPartyUser->id], 60 * 15); return $this->data(['has_login' => 1, 'change_token' => $changeToken, 'message' => '当前登录账号非微擎账户绑定账号,是否继续登录?']); } } elseif (!$thirdPartyUser->uid) { //3文档绑了商城,商城没有绑文档-去登陆 $sourceToken = 'temp_user_info_3_source' . date('YmdHis') . round(1000, 9999); icache()->set($sourceToken, ['third_party_user_id' => $thirdPartyUser->id, 'source' => $appId], 60 * 15); return $this->data(['has_login' => 3, 'source_token' => $sourceToken, 'message' => '当前登录账号非微擎账户绑定账号,是否继续登录?']); } } else { //1当前登陆账户,没有绑定第三方-登陆账户也没有绑定第三方。商城没有绑文档,文档没有绑商城 if (!$thirdPartyUser->uid) { //1文档没有绑商城,商城没有绑文档,如果切入用户,没有绑定账户,当前用户也没有绑定 $bindToken = 'temp_user_info_1_unbind_two' . date('YmdHis') . round(1000, 9999); icache()->set($bindToken, ['third_party_user_id' => $thirdPartyUser->id], 60 * 15); return $this->data(['has_login' => 2, 'bind_token' => $bindToken, 'message' => '是否绑定当前微擎账户于该登录账户?']); } else { //2文档没有绑商城,商城绑了文档-去切换 $changeToken = 'temp_user_info_2' . date('YmdHis') . round(1000, 9999); icache()->set($changeToken, ['third_party_user_id' => $thirdPartyUser->id], 60 * 15); return $this->data(['has_login' => 1, 'change_token' => $changeToken, 'message' => '当前登录账号非微擎账户绑定账号,是否继续登录?']); } } } /*0如果文档没有登陆,没有绑账户去绑定 ---如果登陆了 *1文档没有绑商城,商城没有绑文档-去绑定 *2文档没有绑商城,商城绑了文档-去切换 *3文档绑了商城,商城没有绑文档-去切换-去登陆 *4文档绑了商城,商城绑了文档,用户不一致-去切换-致登陆 **/ //2已登陆的用户校验是否需要切换用户E $ret = $this->data($this->setThirdPartySession($request, $thirdPartyUser)); return $ret; } /** * @api {post} /common/auth/ThirdPartyUserCacheIn 文档绑了商城,商城没有绑文档切用户 * * @apiName ThirdPartyUserCacheIn * @apiGroup auth * * @apiParam {string} bind_token 用于绑定的bind_token */ public function ThirdPartyUserCacheIn(Request $request) { $user = $request->session->get('user'); if (!$user) { throw new ErrorHttpException('当前账户未登陆'); } $changeToken = $request->input('source_token'); if (empty($changeToken)) { throw new ErrorHttpException('source_token错误'); } $data = icache()->get($changeToken); if (isset($data['third_party_user_id'])) { $thirdPartyUser = UserThirdParty::query()->find($data['third_party_user_id']); if ($thirdPartyUser) { $username = $thirdPartyUser->username; $localUser = [ 'app_id' => $thirdPartyUser->source, 'uid' => $thirdPartyUser->uid, 'third-party-uid' => $thirdPartyUser->id, 'username' => $username, ]; $request->session->destroy(); //记录第三方登录app_id $request->session->set('user-source-app', $thirdPartyUser->source); $loginSetting = ThirdPartyLoginLogic::instance()->getDefaultLoginSetting(); //需要绑定已有账户 if (!empty($loginSetting['is_need_bind']) && empty($thirdPartyUser->uid)) { //保存第三方用户信息,触发用户绑定 $request->session->set('third-party-user', $localUser); return $this->data([ 'is_need_bind' => true ]); } else { throw new ErrorHttpException('当前可以直接登陆'); } } } throw new ErrorHttpException('source_token已过期'); } /** * @api {post} /common/auth/changeThirdPartyUser 切换用户 * * @apiName changeThirdPartyUser * @apiGroup auth * * @apiParam {string} change_token 用于切换的change_token */ public function changeThirdPartyUser(Request $request) { $user = $request->session->get('user'); if (!$user) { throw new ErrorHttpException('当前账户未登陆'); } $changeToken = $request->input('change_token'); if (empty($changeToken)) { throw new ErrorHttpException('change_token错误'); } $data = icache()->get($changeToken); if (isset($data['third_party_user_id'])) { $thirdPartyUser = UserThirdParty::query()->find($data['third_party_user_id']); if ($thirdPartyUser) { return $this->data($this->setThirdPartySession($request, $thirdPartyUser)); } } throw new ErrorHttpException('change_token已过期'); } /** * @api {post} /common/auth/bindThirdPartyUser 切换用户 * * @apiName bindThirdPartyUser * @apiGroup auth * * @apiParam {string} bind_token 用于绑定的bind_token */ public function bindThirdPartyUser(Request $request) { $user = $request->session->get('user'); if (!$user) { throw new ErrorHttpException('当前账户未登陆'); } $changeToken = $request->input('bind_token'); if (empty($changeToken)) { throw new ErrorHttpException('bind_token错误'); } $data = icache()->get($changeToken); if (isset($data['third_party_user_id'])) { $thirdPartyUser = UserThirdParty::query()->find($data['third_party_user_id']); if ($thirdPartyUser) { if (!$thirdPartyUser->uid) { $thirdPartyUser->uid = $user['uid']; $thirdPartyUser->save(); return $this->data($this->setThirdPartySession($request, $thirdPartyUser)); } } } throw new ErrorHttpException('bind_token已过期'); } public function setThirdPartySession(Request $request, $thirdPartyUser) { $username = $thirdPartyUser->username; $localUser = [ 'app_id' => $thirdPartyUser->source, 'uid' => $thirdPartyUser->uid, 'third-party-uid' => $thirdPartyUser->id, 'username' => $username, ]; $request->session->destroy(); //记录第三方登录app_id $request->session->set('user-source-app', $thirdPartyUser->source); $loginSetting = ThirdPartyLoginLogic::instance()->getDefaultLoginSetting(); //需要绑定已有账户 if (!empty($loginSetting['is_need_bind']) && empty($thirdPartyUser->uid)) { //保存第三方用户信息,触发用户绑定 $request->session->set('third-party-user', $localUser); return [ 'is_need_bind' => true ]; } else { $request->session->set('user-source-app', $thirdPartyUser->source); $this->saveUserInfo($request->session, $thirdPartyUser->bindUser); return 'success'; } } /** * @api {post} /common/auth/third-party-login-bind 绑定用户 * * @apiName third-party-login-bind * @apiGroup auth * * @apiParam {string} handle 操作类型bind:绑定 reg:注册 * @apiParam {string} username 用户名 * @apiParam {string} userpass 密码 */ public function thirdPartyLoginBind(Request $request) { $data = $this->validate($request, [ 'handle' => 'required', 'username' => 'required', 'userpass' => 'required' ], [ 'handle.required' => '操作不能为空', 'username.required' => '用户名不能为空', 'userpass.required' => '密码不能为空' ]); $thirdPartyUser = $request->session->get('third-party-user'); if (!$thirdPartyUser) { throw new ErrorHttpException('用户信息已过期请重新登陆', [], Setting::ERROR_NO_LOGIN); } $handle = $request->input('handle', 'bind'); $UserThirdParty = UserThirdParty::query()->find($thirdPartyUser['third-party-uid']); if (!$UserThirdParty) { throw new ErrorHttpException('请先授权'); } if ($UserThirdParty->uid) { throw new ErrorHttpException('用户信息已过期请重新登陆', [], Setting::ERROR_NO_LOGIN); } $msg = '注册成功'; if ($handle == 'bind') { $msg = '绑定成功'; //绑定已有用户 $user = UserLogic::instance()->getByUserName($data['username']); if (empty($user)) { throw new ErrorHttpException('用户名或密码错误,请检查'); } if ($user->userpass != UserLogic::instance()->userPwdEncryption($user->username, $data['userpass'])) { throw new ErrorHttpException('用户名或密码错误,请检查'); } $userThirdPartyHas = UserThirdParty::query()->where('uid', $user->id)->first(); if ($userThirdPartyHas) { //如果当前用户 ilogger()->channel('test')->debug('userThirdPartyHas-' . $userThirdPartyHas->id . '-new-userId-' . $user->id); // throw new ErrorHttpException('当前账号已绑定其它账号,您可以选择重新注册或绑定其它账号。' . $userThirdPartyHas->id . '-' . $user->id); throw new ErrorHttpException('当前账号已绑定其它账号,您可以选择重新注册或绑定其它账号'); } if (!empty($user->is_ban)) { throw new ErrorHttpException('您使用的用户已经被禁用,请联系管理员'); } } else {//'reg' //新增 $data = [ 'username' => trim($data['username']), 'userpass' => trim($data['userpass']), ]; $data['remark'] = $request->input('remark', ''); try { $userId = UserLogic::instance()->createUser($data); $user = User::query()->find($userId); } catch (\Throwable $e) { throw new ErrorHttpException($e->getMessage()); } } $UserThirdParty->update([ 'uid' => $user->id, ]); $request->session->destroy(); //记录第三方登录app_id $request->session->set('user-source-app', $thirdPartyUser['app_id']); $this->saveUserInfo($request->session, $user); return $this->data($msg); } /** * 解绑 */ public function unbind(Request $request) { $userSession = $request->session->get('user'); $userSourceAppId = $request->session->get('user-source-app'); $res = UserThirdParty::query() ->where('source', '=', $userSourceAppId) ->where('uid', '=', $userSession['uid']) ->update(['uid' => 0]); if ($res) { //$this->logout($request); return $this->data($res); } throw new ErrorHttpException('解绑失败'); } public function logout(Request $request) { $sourceApp = $request->session->get('user-source-app'); $request->session->destroy(); if ($sourceApp) { $setting = ThirdPartyLoginLogic::instance()->getThirdPartyLoginChannelById($sourceApp); if (!$setting) { throw new ErrorHttpException('不支持该授权方式'); } /** * @var SocialiteManager $socialite */ $socialite = iloader()->get(SocialiteManager::class); return $socialite->config(new Config([ 'client_id' => $setting['setting']['app_id'], 'client_secret' => $setting['setting']['secret_key'] ]))->driver($sourceApp)->logout($this->response()); } else { $utl = ienv('API_HOST') . 'admin-login'; return $this->response()->redirect($utl); } } public function getlogouturl(Request $request) { $utl = ienv('API_HOST') . 'common/auth/logout'; return $this->data($utl); } private function saveUserInfo(Session $session, $user) { $session->set('user', [ 'uid' => $user->id, 'username' => $user->username, ]); //用户在修改密码后,删除该值,触发退出操作 icache()->set(sprintf(UserLogic::USER_LOGOUT_AFTER_CHANGE_PWD, $user->id), 1, 7 * 86400); } } ================================================ FILE: app/Controller/Common/MenuController.php ================================================ getMenuSetting(); $list = $setting['list'] ?? []; $sorts = array_column($list, 'sort'); array_multisort($sorts, SORT_ASC, $list); foreach ($list as $index => &$item) { $item['id'] = $index; } $setting['list'] = array_values($list); return $this->data($setting); } } ================================================ FILE: app/Controller/Common/UserController.php ================================================ validate($request,[ 'username' => 'required|string' ],[ 'username' => '用户名' ]); $Logic = new UserLogic(); $user = $Logic->getByUserName($param['username'])->setHidden(['userpass']); return $this->data($user); } public function update(Request $request){ $param = $this->validate($request,[ 'id' => 'required|integer', 'avatar' => 'sometimes|required', 'company' => 'sometimes|required', 'resume' => 'sometimes|required', 'skill' => 'sometimes|required', 'address' => 'sometimes|required', ],[ 'id' => '用户id', 'avatar' => '头像', 'company' => '公司和职称', 'resume' => '简介', 'skill' => '技能', 'address' => '地址' ]); $Logic = new UserLogic(); $user = $Logic->updateUser($param); return $this->data($user); } /** * 我的动态 */ public function operate(Request $request){ $param = $this->validate($request,[ 'user_id' => 'required|integer' ],[ 'user_id' => '用户id' ]); $page = $request->input('page',1); $size = $request->input('page_size',20); $Logic = new UserOperateLogic(); $param['operate'] = [UserOperateLog::CREATE,UserOperateLog::COLLECT]; return $this->data($Logic->lists($param,$page,$size)); } } ================================================ FILE: app/Controller/Common/VerifyCodeController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Common; use Gregwar\Captcha\CaptchaBuilder; use Gregwar\Captcha\PhraseBuilder; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\Http\Message\Server\Request; class VerifyCodeController extends BaseController { const CODE_LENGTH = 4; public function image(Request $request) { try { $phrase = new PhraseBuilder(); $code = $phrase->build(self::CODE_LENGTH); $builder = new CaptchaBuilder($code, $phrase); $builder->setBackgroundColor(255, 255, 255); $builder->setMaxAngle(25); $builder->setMaxBehindLines(0); $builder->setMaxFrontLines(0); $builder->build(); $phrase = $builder->getPhrase(); } catch (\Exception $e) { throw new ErrorHttpException($e->getMessage()); } $request->session->set('img_code', $phrase); ob_start(); $builder->output(); $image = ob_get_contents(); ob_end_clean(); $data = [ 'img' => 'data:image/jpg;base64,'.base64_encode($image) ]; ilogger()->debug('verify-code: '. $phrase); return $this->data($data); } } ================================================ FILE: app/Controller/Document/ChapterController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Document; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document\Chapter; use W7\App\Model\Entity\Document\ChapterApi; use W7\App\Model\Entity\Document\ChapterContent; use W7\App\Model\Entity\Setting; use W7\App\Model\Entity\Star; use W7\App\Model\Entity\UserOperateLog; use W7\App\Model\Logic\ChapterLogic; use W7\App\Model\Logic\Document\ChapterApi\ChapterRecordLogic; use W7\App\Model\Logic\Document\ChapterApi\ChapterRuleLogic; use W7\App\Model\Logic\DocumentLogic; use W7\App\Model\Logic\UserLogic; use W7\App\Model\Logic\UserOperateLogic; use W7\App\Model\Logic\UserShareLogic; use W7\Http\Message\Server\Request; class ChapterController extends BaseController { /** * @api {post} /document/chapter/ruleDemo 文档-mock规则数据 * @apiName rule * @apiGroup Chapter * * @apiParam {Number} chapter_id 章节ID * @apiParam {Number} location_type 请求类型1请求2响应 * @apiParam {Number} reponse_id 响应ID */ public function ruleDemo(Request $request) { $params = $this->validate($request, [ 'chapter_id' => 'required|integer|min:1', 'location_type' => 'required|in:1,2', 'reponse_id' => 'integer' ], [ 'chapter_id.required' => '文档id必填', 'location_type.integer' => '请求类型', 'reponse_id' => '响应ID', ]); $reponseId = $params['reponse_id'] ? $params['reponse_id'] : 0; //获取rule参数样例 $chapterDemoLogic = new ChapterRuleLogic($params['chapter_id']); $query = $chapterDemoLogic->getChapterRule($params['location_type'], $reponseId); return $query; } /** * 某一个文档的目录 * @param Request $request * @return array */ public function catalog(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer|min:1', ], [ 'document_id.required' => '文档id必填', 'document_id.integer' => '文档id非法' ]); try { $result = ChapterLogic::instance()->getCatalog($params['document_id']); $user = $request->getAttribute('user'); if (empty($user->isReader)) { throw new ErrorHttpException('当前账户无权限阅读该文档', [], Setting::ERROR_NO_POWER); } if ($user && !empty($user->id)) { UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $params['document_id'], 'chapter_id' => 0, 'operate' => UserOperateLog::PREVIEW, 'remark' => $user->username . '阅读文档' ]); } return $this->data($result); } catch (\Exception $e) { throw new ErrorHttpException($e->getMessage()); } } /** * @api {post} /document/chapter/record 文档API-查看 * @apiName record * @apiGroup document.Chapter * * @apiParam {Number} chapter_id 章节ID * @apiParam {Number} document_id 文档ID */ public function record(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer|min:1', 'chapter_id' => 'required|integer|min:1' ], [ 'document_id.required' => '文档id必填', 'document_id.integer' => '文档id非法', 'chapter_id.required' => '章节id必填', 'chapter_id.integer' => '章节id非法' ]); $result = [ 'record' => null, ]; $chapter = ChapterLogic::instance()->getById($params['chapter_id'], $params['document_id']); if ($chapter) { $showRecord = $request->post('show_record', 0); if ($showRecord && $chapter->content->layout == 1) { $obj = new ChapterRecordLogic($chapter->id); $result['record'] = $obj->showRecord(); } } return $this->data($result); } /** * @api {post} /document/chapter/detail 文档内容-前端查看 * @apiName detail * @apiGroup document.Chapter * * @apiParam {Number} chapter_id 章节ID * @apiParam {Number} document_id 文档ID */ public function detail(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer|min:1', 'chapter_id' => 'required|integer|min:1' ], [ 'document_id.required' => '文档id必填', 'document_id.integer' => '文档id非法', 'chapter_id.required' => '章节id必填', 'chapter_id.integer' => '章节id非法' ]); $shareKey = $request->post('share_key'); try { $shareInfo = []; if ($shareKey) { $shareInfo = UserShareLogic::instance()->getUidAndChapterByShareKey($shareKey); } $chapter = ChapterLogic::instance()->getById($params['chapter_id'], $params['document_id']); $user = $request->getAttribute('user'); if (empty($user->isReader)) { throw new ErrorHttpException('当前账户无权限阅读该文档', [], Setting::ERROR_NO_POWER); } if (!empty($user->id)) { UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $params['document_id'], 'chapter_id' => $params['chapter_id'], 'operate' => UserOperateLog::PREVIEW, 'remark' => $user->username . '浏览章节' . $chapter->name ]); //如果当前用户不是分享者并且是当前章节时,添加分享记录 if ($shareInfo && $shareInfo[0] != $user->id && $shareInfo[1] == $params['chapter_id']) { if (!UserOperateLog::query()->where('user_id', '=', $shareInfo[0])->where('target_user_id', '=', $user->id)->where('chapter_id', '=', $params['chapter_id'])->exists()) { $sharerUser = UserLogic::instance()->getByUid($shareInfo[0]); UserOperateLog::query()->create([ 'user_id' => $shareInfo[0], 'document_id' => $params['document_id'], 'chapter_id' => $params['chapter_id'], 'target_user_id' => $user->id, 'operate' => UserOperateLog::SHARE, 'remark' => $sharerUser->username . '分享链接' . UserShareLogic::instance()->getShareUrl($shareInfo[0], $params['document_id'], $params['chapter_id']) . '给' . $user->username ]); } } } } catch (\Exception $e) { throw new ErrorHttpException($e->getMessage()); } if (!$chapter) { throw new ErrorHttpException('该章节不存在!', [], Setting::ERROR_NO_FIND); } $document = DocumentLogic::instance()->getById($params['document_id']); $creator = UserOperateLogic::instance()->getByChapterAndOperate($chapter->id, UserOperateLog::CREATE); if ($creator) { $author = $creator->user; } else { $author = $document->user; } if (!empty($user->id)) { $star = Star::query()->where('user_id', '=', $user->id)->where('chapter_id', '=', $chapter->id)->first(); } $api = null; if ($chapter->content->layout == ChapterContent::LAYOUT_HTTP) { $api = ChapterApi::query()->where('chapter_id', $chapter->id)->first(); if (!$chapter->content->content) { $markdownText = '#'; //如果是导入的,没有生成文档的数据,进行生成文档并标记 $chapterRecordLogic = new ChapterRecordLogic($chapter->id); $record = $chapterRecordLogic->showRecord(); if ($record) { $chapterRecordLogic = new ChapterRecordLogic($chapter->id); $markdownTextReplay = $chapterRecordLogic->recordToMarkdown($record, 1); if ($markdownTextReplay) { $markdownText = $markdownTextReplay; } } $chapter->content->content = $markdownText; $chapter->content->save(); } } $result = [ 'id' => $chapter->id, 'parent_id' => $chapter->parent_id, 'name' => $chapter->name, 'document_id' => $chapter->document_id, 'created_at' => $chapter->created_at->toDateTimeString(), 'updated_at' => $chapter->updated_at->toDateTimeString(), 'content' => $chapter->content->content, 'star_id' => !empty($star) ? $star->id : '', 'prev_item' => [ 'id' => $chapter->prevItem->id ?? '', 'name' => $chapter->prevItem->name ?? '', ], 'next_item' => [ 'id' => $chapter->nextItem->id ?? '', 'name' => $chapter->nextItem->name ?? '', ], 'author' => [ 'uid' => $author->id, 'username' => $author->username, ], 'document' => $document, 'api' => $api, 'navigation' => $this->buildNavigationSun($params['chapter_id']) ]; $showRecord = $request->post('show_record', 0); if ($showRecord && $chapter->content->layout == 1) { $obj = new ChapterRecordLogic($chapter->id); $result['record'] = $obj->showRecord(); } return $this->data($result); } /** * @api {get} /document/chapter/search 文档搜索 * * @apiName search * @apiGroup chapter * * @apiParam {Array} data * @apiParam {Array} data.data 文档搜索列表 * @apiParam {String} data.data.name 文档标题 * @apiParam {String} data.data.content 文档内容 * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"current_page":1,"data":[{"name":"aaa","id":1130,"chapter_id":2030,"content":"> GET \/222\n\n\n\n### 请求\n\n\n\n\naasd23","layout":1}],"first_page_url":"\/?page=1","from":1,"last_page":1,"last_page_url":"\/?page=1","next_page_url":null,"path":"\/","per_page":10,"prev_page_url":null,"to":1,"total":1},"message":"ok"} */ public function search(Request $request) { $this->validate($request, [ 'document_id' => 'required|integer|min:1', 'keywords' => 'required', ], [ 'document_id.required' => '文档id必填', 'document_id.integer' => '文档id非法', 'keywords.required' => '关键字必填', ]); $page = intval($request->input('page', 1)); $pageSize = intval($request->input('page_size', 10)); $keyword = $request->input('keywords'); $documentId = intval($request->input('document_id')); if (!$keyword) { throw new ErrorHttpException('没有关键词'); } $chapterList = Chapter::query() ->leftJoin('document_chapter_content', 'document_chapter_content.chapter_id', 'document_chapter.id') ->where([ ['document_chapter.document_id', $documentId], ['document_chapter_content.content', 'like', '%' . $keyword . '%'], ]) ->orWhere([ ['document_chapter.document_id', $documentId], ['document_chapter.is_dir', 0], ['document_chapter.name', 'like', '%' . $keyword . '%'], ]) ->select(['document_chapter.name', 'document_chapter_content.*']) ->paginate($pageSize, '*', 'page', $page)->toArray(); if (count($chapterList['data'])) { foreach ($chapterList['data'] as $key => $val) { //导航 $chapterList['data'][$key]['navigation'] = $this->buildNavigationSun($val['chapter_id']); } } return $this->data($chapterList); } public function buildNavigationSun($chapterId, $str = '', $i = 0) { $i++; if ($i > 50) { //循环大于100,不再处理 return $str; } $chapter = Chapter::query()->find($chapterId); if ($chapter) { if (!$str) { //如果是根级 $str = $chapter->name; } else { //如果是上级 $str = $chapter->name . '>' . $str; } if ($chapter->parent_id) { $str = $this->buildNavigationSun($chapter->parent_id, $str); } } return $str; } } ================================================ FILE: app/Controller/Document/DocumentController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Document; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Setting; use W7\App\Model\Entity\UserOperateLog; use W7\App\Model\Logic\DocumentLogic; use W7\Http\Message\Server\Request; class DocumentController extends BaseController { public function detail(Request $request) { $params = $this->validate($request, [ 'document_id' => 'required|integer|min:1', ], [ 'document_id.required' => '文档id必填', 'document_id.integer' => '文档id非法' ]); $res = DocumentLogic::instance()->getById($params['document_id']); if (!$res) { throw new ErrorHttpException('当前文档不存在', [],Setting::ERROR_NO_POWER); } $user = $request->getAttribute('user'); if (empty($user->isReader)) { throw new ErrorHttpException('当前账户无权限阅读该文档', [],Setting::ERROR_NO_POWER); } if ($user && !empty($user->id)) { UserOperateLog::query()->create([ 'user_id' => $user->id, 'document_id' => $params['document_id'], 'chapter_id' => 0, 'operate' => UserOperateLog::PREVIEW ]); } $res = DocumentLogic::instance()->getById($params['document_id']); return $this->data($res); } } ================================================ FILE: app/Controller/Document/DocumentHomeController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Document; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Logic\DocumentHomeLogic; use W7\App\Model\Logic\DocumentSearchLogic; use W7\App\Model\Logic\HomepageSettingLogic; use W7\Http\Message\Server\Request; class DocumentHomeController extends BaseController { /** * @api {get} /document/home 前端首页数据 * @apiName home * @apiGroup Document.home * */ public function getDocumentHome(Request $request){ //获取配置信息 $set = HomepageSettingLogic::instance()->getHomeSet(); if (!$set['open_home']['is_open']){ throw new ErrorHttpException('首页已关闭'); } //公告 $notice = DocumentHomeLogic::instance()->getDocumentNotice(); //首页类型一 $typeList_I = DocumentHomeLogic::instance()->getDocumentTypeI(); //首页类型二 $typeList_II = DocumentHomeLogic::instance()->getDocumentTypeII(); $data = [ 'set' => $set, 'notice' => $notice, 'middle_list' => $typeList_I, 'bottom_list' => $typeList_II, ]; return $this->data($data); } /** * @api {get} /document/home/check 检测首页是否开启 * @apiName check * @apiGroup Document.home * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"is_open":1,"url":"http:\/\/192.168.168.99:80"},"message":"ok"} */ public function checkHome(){ $set = HomepageSettingLogic::instance()->getOpenHome(); return $this->data($set); } /** * @api {post} /document/home/search 前端首页搜索接口 * @apiName search * @apiGroup Document.home * * @apiParam {String} keywords 关键词 * @apiParam {Number} page 页码 * @apiParam {Number} page_size 页数 */ public function search(Request $request){ $page = intval($request->input('page', 1)); $pageSize = intval($request->input('page_size', 10)); $keyword = $request->input('keywords',''); //记录搜索词 DocumentSearchLogic::instance()->addSearchHotWord($keyword); //搜索列表 $data = DocumentHomeLogic::instance()->searchDocument($keyword,$page,$pageSize); return $this->data($data); } /** * @api {get} /document/home/search-hot 获取搜索热词列表 * @apiName search-hot * @apiGroup Document.home * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":["7","666","111","22","kkk"],"message":"ok"} */ public function getSearchHot(){ $data = DocumentSearchLogic::instance()->getSearchHotList(3); return $this->data($data); } } ================================================ FILE: app/Controller/Document/FeedbackController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Document; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\DocumentFeedback; use W7\Http\Message\Server\Request; class FeedbackController extends BaseController { /** * 提交反馈 * @api {post} /document/feedback/add 文档API-提交 * @apiName add * @apiGroup document.Feedback * * @apiParam {Number} document_id 文档ID * @apiParam {String} type 问题类型 格式以 , 隔开 * @apiParam {String} content 问题内容 * @apiParam {Array} images 图片 */ public function add(Request $request) { //验证 $params = $this->validate($request,[ 'document_id' => 'required|integer|min:1', 'type' => 'string|required', 'content' => 'string|required|max:300' ],[ 'document_id.required' => '文档id必填', 'document_id.min' => '文档id最小为0', 'type.required' => '问题类型必选', 'content.required' => '反馈内容必填', 'content.max' => '反馈内容最大300个字符' ]); $user = $request->getAttribute('user'); //图片 $images = $request->post('images'); $result = DocumentFeedback::query()->create([ 'user_id' => $user->id ? : 0, 'document_id' => $params['document_id'], 'type' => trim($params['type']), 'content' => htmlspecialchars(trim($params['content']),ENT_QUOTES), 'images' => $images ? json_encode($images) : '' ]); if (!$result) { throw new ErrorHttpException('提交反馈失败'); } return $this->data('success'); } } ================================================ FILE: app/Controller/Document/MockApiReponseController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Document; use W7\App\Controller\BaseController; use W7\App\Model\Logic\Document\MockApi\MockApiReponseLogic; use W7\Http\Message\Server\Request; class MockApiReponseController extends BaseController { public function index(Request $request, $id, $router) { $mockApiReponseLogic = new MockApiReponseLogic(); $ret = $mockApiReponseLogic->mackMockApiReponse($request, $id, $router); return $this->response()->json($ret); } } ================================================ FILE: app/Controller/Install/IndexController.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Controller\Install; use W7\App\Controller\BaseController; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Logic\Install\InstallLogic; use W7\Http\Message\Server\Request; class IndexController extends BaseController { public function config(Request $request) { $data = [ 'is_install' => $this->isInstall(), 'api_host' => ienv('API_HOST'), 'db_database' => ienv('DATABASE_DEFAULT_DATABASE'), ]; return $this->data($data); } public function isInstall() { $value = 0; $isInstall = file_exists(RUNTIME_PATH . '/install.lock'); if ($isInstall) { $value = 1; if (ienv('API_HOST')) { //已安装已重启 $value = 2; } } else { //如果吗没有install $dateBasePwd = ienv('DATABASE_DEFAULT_PASSWORD', ''); $dateBase = ienv('DATABASE_DEFAULT_DATABASE', ''); if ($dateBasePwd || $dateBase) { //如果数据库已安装或者配置 $value = 3; } } return $value; } /** * @api {post} /install/systemDetection 系统检测 * @apiName systemDetection * @apiGroup install * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":{"composer_install":{"name":"composer install","result":"已执行","enable":true},"system":{"name":"服务器操作系统","result":"Linux 9c290f2b8a1a 4.19.76-linuxkit #1 SMP Fri Apr 3 15:53:26 UTC 2020 x86_64","enable":true},"php_version":{"name":"PHP版本","result":"7.2.24","enable":true},"base_path":{"name":"安装程序目录可写","result":"\/home\/wwwroot\/doc","enable":true},"runtime_path":{"name":"安装程序运行目录可写","result":"\/home\/wwwroot\/doc\/runtime","enable":true},"swoole":{"name":"swoole扩展","result":"swoole版本4.4.4","enable":true},"pdo_mysql":{"name":"mysql扩展","result":"已安装pdo_mysql扩展","enable":true},"mbstring":{"name":"mbstring扩展","result":"已安装mbstring扩展","enable":true},"diskfreespace":{"name":"磁盘空间","result":"36.78G","enable":true}},"message":"ok"} */ public function systemDetection(Request $request) { $diskfreespace = diskfreespace(BASE_PATH); $diskfreespaceG = (ceil($diskfreespace / 1000 / 1000 / 10) / 100); $isInstall = $this->isInstall(); $installMsg = '确认项目服务是否重启,重启请操作命令: sh restart.sh'; if ($isInstall) { if ($isInstall == 3) { $data = [ ['id' => 1, 'name' => '数据库已安装', 'result' => '数据库已安装', 'enable' => 2], ]; } else { $data = [ ['id' => 1, 'name' => '服务重启', 'result' => $isInstall ? $installMsg : '未安装', 'enable' => $isInstall], ]; } } else { $data = [ ['id' => 1, 'name' => '服务重启', 'result' => $isInstall ? $installMsg : '未安装', 'enable' => $isInstall], ['id' => 2, 'name' => '服务器操作系统', 'result' => php_uname(), 'enable' => true], ['id' => 3, 'name' => 'PHP版本', 'result' => PHP_VERSION >= 7.2 ? PHP_VERSION : 'PHP版本7.2及以上', 'enable' => PHP_VERSION >= 7.2 ? true : false], ['id' => 4, 'name' => '安装程序目录可写', 'result' => is_writable(BASE_PATH) ? BASE_PATH : BASE_PATH . '不可写', 'enable' => is_writable(BASE_PATH) ? true : false], ['id' => 5, 'name' => '安装程序运行目录可写', 'result' => is_writable(RUNTIME_PATH) ? RUNTIME_PATH : '不可写', 'enable' => is_writable(RUNTIME_PATH) ? true : false], ['id' => 6, 'name' => 'swoole扩展', 'result' => (extension_loaded('swoole') & swoole_version() >= '4.3.0') ? 'swoole版本' . swoole_version() : 'swoole版本4.3.0及以上', 'enable' => (extension_loaded('swoole') & swoole_version() >= '4.3.0') ? true : false], ['id' => 7, 'name' => 'mysql扩展', 'result' => extension_loaded('pdo_mysql') ? '已安装pdo_mysql扩展' : '未安装pdo_mysql扩展', 'enable' => extension_loaded('pdo_mysql') ? true : false], ['id' => 8, 'name' => 'mbstring扩展', 'result' => extension_loaded('mbstring') ? '已安装mbstring扩展' : '未安装mbstring扩展', 'enable' => extension_loaded('mbstring') ? true : false], // ['id' => 9, 'name' => 'exec命令', 'result' => function_exists('exec') ? '支持' : '不支持', 'enable' => function_exists('exec') ? true : false], ['id' => 10, 'name' => '磁盘空间', 'result' => ($diskfreespace > 200000000) ? $diskfreespaceG . 'G' : '存储空间200M以上', 'enable' => ($diskfreespace > 200000000) ? true : false], ['id' => 11, 'name' => 'redis扩展', 'result' => extension_loaded('redis') ? '已安装redis扩展' : '未安装redis扩展', 'enable' => extension_loaded('redis') ? true : false], ]; } return $this->data($data); } /** * @api {post} /install/install 系统安装 * @apiName install * @apiGroup install * * @apiParam {String} api_host 服务器地址 * @apiParam {String} db_database 数据库名称 * @apiParam {String} db_host 数据库地址 * @apiParam {String} db_username 数据库用户名 * @apiParam {String} db_password 数据库密码 * @apiParam {String} db_prefix 数据库表前缀 * @apiParam {String} admin_username 管理员账户 * @apiParam {String} admin_password 管理员密码 * @apiParam {String} cache_driver 缓存驱动 选项:redis * @apiParam {String} cache_host 缓存服务器地址(redis时填写) * * @apiSuccessExample {json} Success-Response: * {"status":true,"code":200,"data":"安装已完成!提示:请按照文档配置,重启相关服务","message":"ok"} */ public function install(Request $request) { $params = $this->validate($request, [ 'api_host' => 'required', 'db_database' => 'required', 'db_host' => 'required', 'db_username' => 'required', 'db_password' => 'required', 'db_prefix' => 'required', 'admin_username' => 'required', 'admin_password' => 'required', 'cache_host' => 'string', 'option' => 'required', ], [ 'api_host' => '服务器地址', 'db_database' => '数据库', 'db_host' => '数据库地址', 'db_username' => '数据库用户名', 'db_password' => '数据库密码', 'db_prefix' => '数据库表前缀', 'admin_username' => '管理员密码', 'admin_password' => '管理员账户', 'cache_host' => '缓存服务器', ]); $apiHost = explode(':', $params['api_host']); if (count($apiHost) < 3 || (!is_numeric($apiHost[2]))) { throw new ErrorHttpException('请填写协议与端口号'); } $params['api_host'] = $apiHost[0] . ':' . $apiHost[1] . '/'; $params['server_port'] = $apiHost[2]; $dbHost = explode(':', $params['db_host']); if (count($dbHost) < 2 || (!is_numeric($dbHost[1]))) { throw new ErrorHttpException('请填写数据库端口号'); } $params['db_host'] = $dbHost[0]; $params['db_port'] = $dbHost[1]; $params['cache_driver'] = 'redis'; if ($params['cache_host'] == 'db') { $params['cache_driver'] = 'db'; } else { $cacheHost = explode(':', $params['cache_host']); if (count($cacheHost) < 2 || (!is_numeric($cacheHost[1]))) { throw new ErrorHttpException('请填写redis端口号'); } $params['cache_host'] = $cacheHost[0]; $params['cache_port'] = $cacheHost[1]; } $installLogic = new InstallLogic(); $data = $installLogic->install($params); return $this->data($data); } } ================================================ FILE: app/Exception/ErrorHttpException.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Exception; use W7\Core\Exception\ResponseExceptionAbstract; class ErrorHttpException extends ResponseExceptionAbstract { public function __construct($message = '', $data = [], $code = 0, \Throwable $previous = null) { if (empty($code)) { $code = '500'; } $message = json_encode([ 'status' => false, 'code' => $code, 'data' => $data, 'message' => $message, ], JSON_UNESCAPED_UNICODE); parent::__construct($message, 200, $previous); } } ================================================ FILE: app/Exception/InternalException.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Exception; use W7\Core\Exception\ResponseExceptionAbstract; class InternalException extends ResponseExceptionAbstract { public function __construct($message = '', $code = 0, \Throwable $previous = null) { parent::__construct($message, 500, $previous); } } ================================================ FILE: app/Handler/Cache/DbHandler.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Handler\Cache; use W7\App\Model\Service\DbCacheLogic; use W7\Core\Cache\Handler\HandlerAbstract; class DbHandler extends HandlerAbstract { protected $storage; public static function connect($config): HandlerAbstract { $cacheDb = (new DbCacheLogic()); return new static($cacheDb); } public function set($key, $value, $ttl = null) { return $this->storage->set($key, $value, $ttl); } public function get($key, $default = null) { return $this->storage->get($key); } public function has($key) { return $this->storage->has($key); } public function setMultiple($values, $ttl = null) { return $this->storage->setMultiple($values); } public function getMultiple($keys, $default = null) { return $this->storage->getMultiple($keys); } public function delete($key) { return $this->storage->delete($key); } public function deleteMultiple($keys) { return $this->storage->deleteMultiple($keys); } public function clear() { return $this->storage->clear(); } } ================================================ FILE: app/Handler/Exception/ExceptionHandler.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Handler\Exception; use W7\App\Exception\InternalException; use function GuzzleHttp\Psr7\build_query; use Overtrue\Socialite\Config; use Overtrue\Socialite\SocialiteManager; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document; use W7\App\Model\Logic\DocumentLogic; use W7\App\Model\Logic\ThirdPartyLoginLogic; use W7\Core\Exception\RouteNotAllowException; use W7\Core\Exception\RouteNotFoundException; use W7\Core\Exception\ValidatorException; use W7\Core\Session\Session; use W7\Core\View\View; use W7\Http\Message\Server\Response; use W7\Core\Exception\Handler\ExceptionHandler as ExceptionHandlerAbstract; class ExceptionHandler extends ExceptionHandlerAbstract { public function handle(\Throwable $e): Response { if ($e instanceof RouteNotFoundException || $e instanceof RouteNotAllowException) { $request = icontext()->getRequest(); $route = $request->getUri()->getPath(); if ($request->getQueryParams()) { $route .= '?' . build_query($request->getQueryParams()); } // if (!env('DATABASE_DEFAULT_DATABASE')) { // //安装页 // return $this->getResponse()->html(\W7\Facade\View::render('@public/install')); // } //如果访问的是admin下的路由,先检测是否登录 if (substr($route, 0, 12) == '/admin-login' || $route == '/') { return $this->getResponse()->html(\W7\Facade\View::render('@public/index')); } if (substr($route, 0, 6) == '/admin') { $session = new Session(); $session->start($request); if (!$session->get('user')) { $this->getResponse()->redirect((string)$this->getLoginUrl()); } } //如果是访问预览的连接,判断该文档是否需要登录后预览 if (substr($route, 0, 8) === '/chapter') { $session = new Session(); $session->start($request); if (!$session->get('user')) { $documentId = explode('/', $route)[2] ?? ''; $documentId = explode('?', $documentId)[0]; $document = DocumentLogic::instance()->getById($documentId); //非公有文档,自动跳转登录 if ($document && $document->is_public != Document::PUBLIC_DOCUMENT) { $this->getResponse()->redirect($this->getLoginUrl(ienv('API_HOST') . ltrim($route, '/'))); } } } return $this->getResponse()->html(\W7\Facade\View::render('@public/index')); } if ($e instanceof InternalException) { $message = json_encode([ 'status' => false, 'code' => $e->getCode(), 'data' => [], 'message' => $e->getMessage(), ], JSON_UNESCAPED_UNICODE); return $this->getResponse()->withContent($message); } if ($e instanceof ValidatorException) { $e = new ErrorHttpException($e->getMessage(), [], $e->getCode()); } return parent::handle($e); } private function getLoginUrl($redirectUrl = null) { $defaultLoginChannel = ThirdPartyLoginLogic::instance()->getDefaultLoginSetting(); if (empty($defaultLoginChannel['default_login_channel'])) { return '/login?redirect_url=' . urlencode($redirectUrl); } else { $setting = ThirdPartyLoginLogic::instance()->getThirdPartyLoginChannelById($defaultLoginChannel['default_login_channel']); if (!$setting) { return '/login?redirect_url=' . urlencode($redirectUrl); } else { /** * @var SocialiteManager $socialite */ $socialite = iloader()->get(SocialiteManager::class); return $socialite->config(new Config([ 'client_id' => $setting['setting']['app_id'], 'client_secret' => $setting['setting']['secret_key'], 'redirect_url' => ienv('API_HOST') . 'login?app_id=' . $defaultLoginChannel['default_login_channel'] . '&redirect_url=' . $redirectUrl ]))->driver($defaultLoginChannel['default_login_channel'])->stateless()->redirect()->getTargetUrl(); } } } } ================================================ FILE: app/Handler/Session/CacheHandler.php ================================================ * * document http://s.w7.cc/index.php?c=wiki&do=view&id=317&list=2284 * * visited https://www.rangine.com/ for more details */ namespace W7\App\Handler\Session; use W7\Core\Session\Handler\HandlerAbstract; use W7\Facade\Cache; class CacheHandler extends HandlerAbstract { private function getCache() { return Cache::channel( 'default'); } public function destroy($session_id) { return $this->getCache()->delete($session_id); } public function write($session_id, $session_data) { if (!$session_data) { return true; } return $this->getCache()->set($session_id, $session_data, $this->getExpires()); } public function read($session_id) { return $this->getCache()->get($session_id, ''); } public function gc($maxlifetime) { return true; } } ================================================ FILE: app/Handler/Session/DbHandler.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Handler\Session; use W7\App\Model\Entity\Session; use W7\App\Model\Service\SessionLogic; use W7\Core\Session\Handler\HandlerAbstract; class DbHandler extends HandlerAbstract { public function read($session_id) { if (empty($session_id)) { return ''; } $session = SessionLogic::instance()->getBySessionId($session_id); if (empty($session) || $session->expired_at < time()) { return ''; } return $session->data; } public function destroy($session_id) { SessionLogic::instance()->deleteBySessionId($session_id); return true; } public function write($session_id, $session_data) { $session = SessionLogic::instance()->getBySessionId($session_id); if (empty($session)) { Session::query()->create([ 'session_id' => $session_id, 'data' => $session_data, 'expired_at' => time() + $this->getExpires(), ]); } else { $session->data = $session_data; $session->expired_at = time() + $this->getExpires(); $session->save(); } return true; } public function gc($maxlifetime) { Session::query()->where('expired_at', '<', time() - $maxlifetime)->delete(); return true; } } ================================================ FILE: app/Helper/Functions.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ function timeToString($time){ $diff = time()-$time; if ($diff < 60){ return '刚刚'; }elseif($diff > 60 && $diff <= 60*60){ return floor($diff/60).'分钟前'; }elseif($diff > 60*60 && $diff <= 60*60*24){ return floor($diff / 3600).'小时前'; }else{ return date('Y-m-d H:i',$time); } } function hasForbidWords($content = ''){ $Setting = new \W7\App\Model\Logic\SettingLogic(); $words = $Setting->getByKey(\W7\App\Model\Logic\SettingLogic::KEY_FORBID_WORDS,0); $words = explode(',',$words); $forbid = []; foreach ($words as $v){ if (stripos($content,$v) !== false){ $forbid[] = $v; } } return $forbid; } function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { $ckey_length = 4; $key = md5($key); $keya = md5(substr($key, 0, 16)); $keyb = md5(substr($key, 16, 16)); $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length) : substr(md5($key), -$ckey_length)) : ''; $cryptkey = $keya . md5($keya . $keyc); $key_length = strlen($cryptkey); $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0) . substr(md5($string . $keyb), 0, 16) . $string; $string_length = strlen($string); $result = ''; $box = range(0, 255); $rndkey = array(); for ($i = 0; $i <= 255; $i++) { $rndkey[$i] = ord($cryptkey[$i % $key_length]); } for ($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $rndkey[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } for ($a = $j = $i = 0; $i < $string_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); } if ($operation == 'DECODE') { if ((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26) . $keyb), 0, 16)) { return substr($result, 26); } else { return ''; } } else { return $keyc . str_replace('=', '', base64_encode($result)); } } function generate_label($name, $value, $isFormat = true) { if ($isFormat) { $option = []; foreach ($value as $key => $val) { $option[] = ['label' => $val, 'value' => $key]; } } else { $option = $value; } return ['label' => $name, 'option' => $option]; } /** * 获取当前域名及根路径 * @return string */ function base_url() { static $baseUrl = ''; if (empty($baseUrl)) { $request = \W7\Facade\Context::getRequest(); $baseUrl = $request->getUri()->getScheme() . '://' . $request->server('HTTP_HOST'); } return $baseUrl; } ================================================ FILE: app/Listener/index.html ================================================ ================================================ FILE: app/Message/index.html ================================================ ================================================ FILE: app/Middleware/AppAuthMiddleware.php ================================================ input(); if ((empty($params['appid']) && empty($params['sign'])) || !empty($request->session->get('user'))) { return $handler->handle($request); } /** * @var AppLogic $appLogic */ $appLogic = iloader()->singleton(AppLogic::class); $app = $appLogic->getByAppId($params['appid']); if (empty($app)) { throw new ErrorHttpException('Invalid appid or sign'); } $sign = $appLogic->getSign($params, $app->appsecret); if ($sign !== $params['sign']) { throw new ErrorHttpException('Invalid sign'); } if (empty($app->user_id)) { $user = [ 'username' => $app->name . $app->appid, 'userpass' => trim($app->appid), ]; $user['remark'] = $app->name; try { $app->user_id = UserLogic::instance()->createUser($user); } catch (Throwable $e) { throw new ErrorHttpException($e->getMessage()); } $app->save(); } $user = UserLogic::instance()->getByUid($app->user_id); $request->session->destroy(); $request->session->set('user', [ 'uid' => $user->id, 'username' => $user->username, 'login_from_app' => 1 ]); return $handler->handle($request); } } ================================================ FILE: app/Middleware/BackendDocumentPermissionMiddleware.php ================================================ post('document_id'); if (!$documentId) { return parent::process($request, $handler); } /** * @var User $user */ $user = $request->getAttribute('user'); if ($user->isFounder) { $user->isManager = true; $user->isOperator = true; $user->isReader = true; } else { /** * @var DocumentPermission $documentPermission */ $documentPermission = DocumentPermissionLogic::instance()->getByDocIdAndUid($documentId, $user->id); if ($documentPermission) { $user->isManager = $documentPermission->isManager; $user->isOperator = $documentPermission->isOperator; $user->isReader = $documentPermission->isReader; } else { $user->isManager = false; $user->isOperator = false; $user->isReader = false; } } $request = $request->withAttribute('user', $user); return parent::process($request, $handler); } } ================================================ FILE: app/Middleware/CheckAuthMiddleware.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Middleware; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Setting; use W7\App\Model\Logic\UserLogic; use W7\Core\Middleware\MiddlewareAbstract; class CheckAuthMiddleware extends MiddlewareAbstract { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $user = $request->session->get('user'); if (empty($user)) { throw new ErrorHttpException('请先登录', [], Setting::ERROR_NO_LOGIN); } //如果修改密码后强制退出 if (empty($user['login_from_app']) && !icache()->has(sprintf(UserLogic::USER_LOGOUT_AFTER_CHANGE_PWD, $user['uid']))) { $request->session->destroy(); throw new ErrorHttpException('请先登录', [], Setting::ERROR_NO_LOGIN); } $request = $request->withAttribute('user', UserLogic::instance()->getByUid($user['uid'])); return parent::process($request, $handler); } } ================================================ FILE: app/Middleware/CheckFounderMiddleware.php ================================================ getAttribute('user'); if (!$user->isFounder) { throw new ErrorHttpException('只有创始人可以访问'); } return parent::process($request, $handler); } } ================================================ FILE: app/Middleware/CorsApiMiddleware.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Middleware; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\MiddlewareInterface; use Psr\Http\Server\RequestHandlerInterface; use W7\App; class CorsApiMiddleware implements MiddlewareInterface { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $headerHost='*'; // $headerHost = $request->getHeader('origin'); // if (!$headerHost) { // $headerHost = $request->getHeader('referer'); // } // $headerHost = current($headerHost); // $urlInfo = parse_url($headerHost); // $headerHost = ($urlInfo['scheme'] ?? '') . '://' . ($urlInfo['host'] ?? ''); $response = \W7\Facade\Context::getResponse(); $header=$request->getHeaders(); $allowHeaders=[]; foreach ($header as $key =>$val){ $allowHeaders[count($allowHeaders)]=$key; } $response = $response->withHeader('Access-Control-Allow-Origin', $headerHost); $response = $response->withHeader('Access-Control-Allow-Credentials', 'true'); $response = $response->withHeader('Access-Control-Allow-Headers', implode(',', $allowHeaders)); $response = $response->withHeader('Access-Control-Allow-Methods', 'POST, GET, DELETE, PUT, PATCH, OPTIONS'); if ($request->getMethod() == 'OPTIONS') { return $response->json('success'); } \W7\Facade\Context::setResponse($response); return $handler->handle($request); } } ================================================ FILE: app/Middleware/FrontendDocumentPermissionMiddleware.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Middleware; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; use Psr\Http\Server\RequestHandlerInterface; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document; use W7\App\Model\Entity\Setting; use W7\App\Model\Entity\User; use W7\App\Model\Logic\DocumentLogic; use W7\App\Model\Logic\DocumentPermissionLogic; use W7\App\Model\Logic\UserLogic; use W7\Core\Middleware\MiddlewareAbstract; class FrontendDocumentPermissionMiddleware extends MiddlewareAbstract { public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { $user = $request->session->get('user'); if (empty($user)) { $user = new User(); } else { /** * @var User $user */ $user = UserLogic::instance()->getByUid($user['uid']); } $documentId = $request->input('document_id'); if (!$documentId) { return parent::process($request, $handler); } $document = DocumentLogic::instance()->getById($documentId); if (!$document) { $request = $request->withAttribute('user', $user); return parent::process($request, $handler); } $user->isReader = $user->isFounder; if ($document->isPublicDoc) { //公共目录 $user->isReader = true; } else { if (empty($user->id)) { //未登录 throw new ErrorHttpException('请先登录', [], Setting::ERROR_NO_LOGIN); } //需要权限或者登录 if ($document->is_public == Document::PRIVATE_DOCUMENT && !empty($user->id)) { $documentPermission = DocumentPermissionLogic::instance()->getByDocIdAndUid($documentId, $user->id); if ($documentPermission) { $user->isReader = $documentPermission->isReader; } } elseif ($document->is_public == Document::LOGIN_PREVIEW_DOCUMENT) { $user->isReader = empty($user->id) ? false : true; } } $request = $request->withAttribute('user', $user); return parent::process($request, $handler); } } ================================================ FILE: app/Model/Entity/App.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; use W7\Core\Database\ModelAbstract; class BaseModel extends ModelAbstract { public $timestamps = true; protected $guarded = []; public $dateFormat = 'U'; protected $perPage = '15'; /** * 为数组 / JSON 序列化准备日期。 * * @param \DateTimeInterface $date * @return string */ protected function serializeDate(\DateTimeInterface $date) { return $date->format($this->dateFormat ?: 'Y-m-d H:i:s'); } } ================================================ FILE: app/Model/Entity/Cache.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class Cache extends BaseModel { protected $table = 'cache'; public $timestamps = false; } ================================================ FILE: app/Model/Entity/Document/Chapter.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity\Document; use W7\App\Model\Entity\BaseModel; use W7\App\Model\Entity\Document; class Chapter extends BaseModel { const IS_DIR = 1; protected $table = 'document_chapter'; public function content() { return $this->hasOne(ChapterContent::class, 'chapter_id', 'id'); } public function document() { return $this->belongsTo(Document::class, 'document_id', 'id'); } public function getPrevItemAttribute() { $item = static::query()->where('parent_id', $this->parent_id)->where('sort', '<=', $this->sort)->where('id', '!=', $this->id)->orderBy('sort')->first(); return $item; } public function getNextItemAttribute() { $item = static::query()->where('parent_id', $this->parent_id)->where('sort', '>=', $this->sort)->where('id', '!=', $this->id)->orderBy('sort')->first(); return $item; } } ================================================ FILE: app/Model/Entity/Document/ChapterApi.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity\Document; use W7\App\Model\Entity\BaseModel; class ChapterApi extends BaseModel { public $timestamps = false; protected $table = 'document_chapter_api'; protected $fillable = ['chapter_id', 'url', 'method', 'status_code', 'description', 'body_param_location']; const METHOD_GET = 1; const METHOD_POST = 2; const METHOD_PUT = 3; const METHOD_PATCH = 4; const METHOD_DELETE = 5; const METHOD_COPY = 6; const METHOD_HEAD = 7; const METHOD_PTIONS = 8; const METHOD_LINK = 9; const METHOD_UNLINK = 10; const METHOD_PURGE = 11; const METHOD_LOCK = 12; const METHOD_UNLOCK = 13; const METHOD_PROPFIND = 14; const METHOD_VIEW = 15; public function methodLabel() { return [ self::METHOD_GET => 'GET', self:: METHOD_POST => 'POST', self:: METHOD_PUT => 'PUT', self:: METHOD_PATCH => 'PATCH', self:: METHOD_DELETE => 'DELETE', self:: METHOD_COPY => 'COPY', self:: METHOD_HEAD => 'HEAD', self:: METHOD_LINK => 'LINK', self:: METHOD_UNLINK => 'UNLINK', self:: METHOD_PURGE => 'PURGE', self:: METHOD_LOCK => 'LOCK', self:: METHOD_UNLOCK => 'UNLOCK', self:: METHOD_PROPFIND => 'PROPFIND', self:: METHOD_VIEW => 'VIEW' ]; } } ================================================ FILE: app/Model/Entity/Document/ChapterApiData.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity\Document; use W7\App\Model\Entity\BaseModel; class ChapterApiData extends BaseModel { public $timestamps = false; protected $table = 'document_chapter_api_data'; protected $fillable = ['chapter_id', 'respond']; } ================================================ FILE: app/Model/Entity/Document/ChapterApiExtend.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity\Document; use W7\App\Model\Entity\BaseModel; class ChapterApiExtend extends BaseModel { public $timestamps = false; protected $table = 'document_chapter_api_extend'; protected $fillable = ['chapter_id', 'extend']; } ================================================ FILE: app/Model/Entity/Document/ChapterApiParam.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity\Document; use W7\App\Model\Entity\BaseModel; class ChapterApiParam extends BaseModel { public $timestamps = false; protected $table = 'document_chapter_api_param'; protected $fillable = ['chapter_id', 'reponse_id', 'parent_id', 'location', 'type', 'name', 'description', 'enabled', 'default_value', 'rule']; const TABLE_NAME_LENGTH = 20;//参数名称默认宽度 const TABLE_TYPE_LENGTH = 8;//类型默认宽度 const TABLE_ENABLED_LENGTH = 5;//类型必填宽度 const TABLE_DESCRIPTION_LENGTH = 20;//描述默认宽度 const TABLE_VALUE_LENGTH = 20;//示例值默认宽度 const TABLE_RULE_LENGTH = 20;//示例值默认宽度 const ENABLED_NO = 1; const ENABLED_YES = 2; const TYPE_STRING = 1; const TYPE_NUMBER = 2; const TYPE_BOOLEAN = 3; const TYPE_OBJECT = 4; const TYPE_ARRAY = 5; const TYPE_FUNCTION = 6; const TYPE_REGEXP = 7; const TYPE_NULL = 8; const LOCATION_REQUEST_HEADER = 1; const LOCATION_REQUEST_QUERY_STRING = 2; const LOCATION_REQUEST_BODY_FROM = 3; const LOCATION_REQUEST_BODY_URLENCODED = 4; const LOCATION_REQUEST_BODY_RAW = 5; const LOCATION_REQUEST_BODY_BINARY = 6; const LOCATION_REPONSE_HEADER = 7; const LOCATION_REPONSE_BODY_FROM = 8; const LOCATION_REPONSE_BODY_URLENCODED = 9; const LOCATION_REPONSE_BODY_RAW = 10; const LOCATION_REPONSE_BODY_BINARY = 11; const LOCATION_REQUEST_QUERY_PATH = 12; } ================================================ FILE: app/Model/Entity/Document/ChapterApiReponse.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity\Document; use W7\App\Model\Entity\BaseModel; class ChapterApiReponse extends BaseModel { public $timestamps = false; protected $table = 'document_chapter_api_reponse'; protected $fillable = ['chapter_id', 'description']; } ================================================ FILE: app/Model/Entity/Document/ChapterContent.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity\Document; use W7\App\Model\Entity\BaseModel; class ChapterContent extends BaseModel { public $timestamps = false; protected $table = 'document_chapter_content'; protected $primaryKey = 'chapter_id'; // 数据来源类型 const LAYOUT_MARKDOWM = 0;//MARKDOWN const LAYOUT_HTTP = 1;//HTTP请求 } ================================================ FILE: app/Model/Entity/Document.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; use Illuminate\Support\Str; class Document extends BaseModel { const PRIVATE_DOCUMENT = 2;//仅有权限查看 const PUBLIC_DOCUMENT = 1;//默认-公开项目 const LOGIN_PREVIEW_DOCUMENT = 3;//点击链接登录后查看 protected $table = 'document'; /** * 关联作者 */ public function user() { return $this->belongsTo(User::class, 'creator_id', 'id'); } /** * 关联权限表中的操作人员 * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function operator() { return $this->hasMany(DocumentPermission::class, 'document_id', 'id'); } public function getDescriptionShortAttribute() { return Str::limit(html_entity_decode($this->description), 20); } public function getIsPublicDocAttribute() { return $this->is_public == self::PUBLIC_DOCUMENT; } public function getIsPrivateDocAttribute() { return $this->is_public == self::PRIVATE_DOCUMENT; } public function getIsLoginPreviewDocAttribute() { return $this->is_public == self::LOGIN_PREVIEW_DOCUMENT; } } ================================================ FILE: app/Model/Entity/DocumentFeedback.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class DocumentFeedback extends BaseModel { //反馈类型 const NOT_FOUND_TYPE = 0; const NO_UPDATE_TYPE = 1; const NOT_KNOWN_TYPE = 2; const HAS_ERROR_TYPE = 3; const NO_COMPLETE_TYPE = 4; const HAS_DEFECT_TYPE = 5; private $permissionName = [ self::NOT_FOUND_TYPE => '内容找不到', self::NO_UPDATE_TYPE => '内容没更新', self::NOT_KNOWN_TYPE => '描述不清楚', self::HAS_ERROR_TYPE => '链接有错误', self::NO_COMPLETE_TYPE => '步骤不完整', self::HAS_DEFECT_TYPE => '代码/图片缺失' ]; protected $table = 'document_feedback'; protected $appends=['type_name','status_text']; public function document() { return $this->belongsTo(Document::class, 'document_id', 'id'); } public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); } public function getTypeNameAttribute() { $type = explode(',',$this->attributes['type']); $typeArr = array_intersect_key($this->permissionName,array_flip($type)); return !empty($typeArr) ? implode(',',$typeArr) : ''; } public function getStatusTextAttribute(){ $statusText = [0=>'未读',1=>'已读']; return $statusText[$this->attributes['status']]; } public function getImagesAttribute(){ return $this->attributes['images'] ? json_decode($this->attributes['images'],true): []; } public function getContentAttribute(){ return htmlspecialchars_decode($this->attributes['content'],ENT_QUOTES); } } ================================================ FILE: app/Model/Entity/DocumentHome.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class DocumentHome extends BaseModel { protected $table = 'document_home'; protected $appends=['type_name']; //反馈类型 public $typeName = [1 => '公告', 2=> '首页类型一', 3=> '首页类型二']; public function document() { return $this->belongsTo(Document::class, 'document_id', 'id'); } public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); } public function getTypeNameAttribute() { return $this->typeName[$this->attributes['type']]; } public function getDescriptionAttribute(){ return htmlspecialchars_decode($this->attributes['description'],ENT_QUOTES); } } ================================================ FILE: app/Model/Entity/DocumentPermission.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class DocumentPermission extends BaseModel { const MANAGER_PERMISSION = 1; const OPERATOR_PERMISSION = 2; const READER_PERMISSION = 3; private $permissionName = [ self::MANAGER_PERMISSION => '管理员', self::OPERATOR_PERMISSION => '操作员', self::READER_PERMISSION => '阅读员', ]; protected $table = 'document_permission'; public function save(array $options = []) { if (in_array($this->permission, [self::MANAGER_PERMISSION, self::OPERATOR_PERMISSION, self::READER_PERMISSION])) { return parent::save($options); } return false; } public function document() { return $this->belongsTo(Document::class, 'document_id', 'id'); } public function user() { return $this->belongsTo(User::class, 'user_id', 'id'); } public function getIsManagerAttribute() { return $this->permission == self::MANAGER_PERMISSION; } public function getIsOperatorAttribute() { return $this->permission == self::MANAGER_PERMISSION || $this->permission == self::OPERATOR_PERMISSION; } public function getIsReaderAttribute() { return $this->permission == self::MANAGER_PERMISSION || $this->permission == self::OPERATOR_PERMISSION || $this->permission == self::READER_PERMISSION; } public function getACLAttribute() { return [ 'name' => $this->permissionName[$this->permission], 'role' => $this->permission, 'has_manage' => $this->isManager, 'has_edit' => $this->isOperator, 'has_delete' => $this->isManager, 'has_read' => $this->isReader, ]; } public function getACLNameAttribute() { return $this->permissionName[$this->permission]; } public function getRoleListAttribute() { return $this->permissionName; } } ================================================ FILE: app/Model/Entity/DocumentSearch.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class DocumentSearch extends BaseModel { protected $table = 'document_search_hot'; //搜索词 public function getSearchWordAttribute(){ return htmlspecialchars_decode($this->attributes['search_word'],ENT_QUOTES); } } ================================================ FILE: app/Model/Entity/Session.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class Session extends BaseModel { protected $table = 'session'; public $timestamps = false; } ================================================ FILE: app/Model/Entity/Setting.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class Setting extends BaseModel { public $timestamps = false; protected $table = 'setting'; protected $primaryKey = 'key'; const ERROR_NO_POWER = 446;//没权限 const ERROR_NO_FIND = 445;//文件不存在 const ERROR_NO_LOGIN = 444;//没登陆 const ERROR_CHANGE_USER = 447;//是否切换用户 public function getSettingAttribute() { if (empty($this->value)) { return []; } return json_decode($this->value, true); } } ================================================ FILE: app/Model/Entity/Star.php ================================================ belongsTo(Document::class, 'document_id', 'id'); } public function chapter() { return $this->belongsTo(Chapter::class, 'chapter_id', 'id'); } } ================================================ FILE: app/Model/Entity/User.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; /** * Class User * @package W7\App\Model\Entity * * @property $isFounder * @property $isManager * @property $isOperator * @property $isReader */ class User extends BaseModel { const GROUP_ADMIN = 1; protected $table = 'user'; protected $perPage = '10'; public function document() { return $this->belongsTo(Document::class); } public function getIsFounderAttribute() { return $this->group_id == self::GROUP_ADMIN; } } ================================================ FILE: app/Model/Entity/UserOperateLog.php ================================================ created_at->unix()); } public function setUpdatedAt($value) { return null; } public function user() { return $this->belongsTo(User::class, 'user_id', 'id')->select(['id','username','avatar']); } public function targetUser() { return $this->belongsTo(User::class, 'target_user_id', 'id'); } public function document() { return $this->belongsTo(Document::class, 'document_id', 'id'); } public function getOperateDescAttribute() { switch ($this->operate) { case self::CREATE: return '创建'; case self::PREVIEW: return '预览'; case self::EDIT: return '编辑'; case self::DELETE: return '删除'; } } } ================================================ FILE: app/Model/Entity/UserThirdParty.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Entity; class UserThirdParty extends BaseModel { public $timestamps = false; protected $table = 'user_third_party'; protected $primaryKey = 'id'; public function bindUser() { return $this->hasOne(User::class, 'id', 'uid'); } } ================================================ FILE: app/Model/Logic/AppLogic.php ================================================ first(); } public function getSign($data, $token = '') { unset($data['sign']); ksort($data, SORT_STRING); reset($data); $sign = md5(http_build_query($data, '', '&') . $token); return $sign; } } ================================================ FILE: app/Model/Logic/BaseLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\Core\Cache\Cache; use W7\Core\Database\LogicAbstract; class BaseLogic extends LogicAbstract { private $cache = null; private $prefix = 'document_logic_'; //获取缓存 public function get($key, $default=null) { return $this->getCache()->get($this->generateKey($key), $default); } public function increment($key, $ttl=24*3600, $step=1) { $value = $this->get($key); if ($value) { $value = intval($value) + intval($step); $this->set($key, $value); } else { $this->set($key, 1, $ttl); } return true; } public function decrement($key, $ttl, $step=1) { $value = $this->get($key); if ($value) { $value = intval($value) - intval($step); $this->set($key, $value); return true; } return false; } //设置缓存 public function set($key, $value, $ttl=24*3600) { return $this->getCache()->set($this->generateKey($key), $value, $ttl); } //删除缓存 public function delete($key) { return $this->getCache()->delete($this->generateKey($key)); } public function getCache() { if (!$this->cache) { $this->cache = new Cache(); } return $this->cache; } public function generateKey($key) { return $this->prefix.$key; } } ================================================ FILE: app/Model/Logic/ChapterLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\Document; use W7\App\Model\Entity\Document\Chapter; use W7\App\Model\Entity\Document\ChapterApi; use W7\App\Model\Entity\Document\ChapterApiExtend; use W7\App\Model\Entity\Document\ChapterApiParam; use W7\App\Model\Entity\Document\ChapterContent; use W7\App\Model\Entity\User; use W7\App\Model\Entity\UserOperateLog; use W7\Core\Helper\Traiter\InstanceTraiter; use W7\App\Model\Service\CdnLogic; class ChapterLogic extends BaseLogic { use InstanceTraiter; /** * 获取章节目录 * @param $id * @return array */ public function getCatalog($documentId) { $list = Chapter::query() ->select('id', 'name', 'sort', 'parent_id', 'is_dir', 'default_show_chapter_id') ->where('document_id', $documentId) ->orderBy('parent_id', 'asc') ->orderBy('sort', 'asc')->get()->toArray(); if (empty($list)) { return []; } $result = []; foreach ($list as $id => $item) { $item['is_dir'] = $item['is_dir'] == Chapter::IS_DIR ? true : false; $result[$item['id']] = $item; $result[$item['id']]['children'] = []; } return $this->getTree($result, 0); } private function getTree($data, $pid = 0, $i = 0) { $tree = []; ++$i; foreach ($data as $k => $v) { $v['level'] = $i; if ($v['parent_id'] == $pid) { $v['children'] = $this->getTree($data, $v['id'], $i); $tree[] = $v; unset($data[$k]); } } return $tree; } /** * 获取章节数据 * @param $id * @param int $documentId * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|null|object */ public function getById($id, $documentId = 0) { $id = intval($id); $documentId = intval($documentId); $query = Chapter::query()->where('id', $id); if (!empty($documentId)) { $query = $query->where('document_id', $documentId); } return $query->first(); } public function getMaxSort($parentId) { return Chapter::query()->where('parent_id', '=', $parentId)->max('sort'); } public function deleteByDocumentId($documentId) { $chapterQuery = Chapter::query()->where('document_id', $documentId); $chapter = $chapterQuery->get(); $chapterIds = $chapter->pluck('id')->toArray(); if ($chapterQuery->delete()) { ChapterContent::query()->whereIn('chapter_id', $chapterIds)->delete(); $setting = SettingLogic::instance()->getByKey(SettingLogic::KEY_COS,0); if ($setting) { CdnLogic::instance()->channel(SettingLogic::KEY_COS)->deletePath(sprintf('/%s', $documentId)); } } return true; } public function deleteById($chapterId) { $chapter = $this->getById($chapterId); if (empty($chapter)) { throw new \RuntimeException('章节不存在'); } if ($chapter->delete()) { Chapter::query()->where('default_show_chapter_id', '=', $chapterId)->update([ 'default_show_chapter_id' => 0 ]); ChapterContent::query()->where('chapter_id', '=', $chapterId)->delete(); ChapterApi::query()->where('chapter_id', '=', $chapterId)->delete(); ChapterApiParam::query()->where('chapter_id', '=', $chapterId)->delete(); ChapterApiExtend::query()->where('chapter_id', '=', $chapterId)->delete(); UserOperateLog::query()->where('document_id', '=', $chapter->document_id)->where('chapter_id', '=', $chapterId)->delete(); StarLogic::instance()->clearByChapterId($chapterId); $setting = SettingLogic::instance()->getByKey(SettingLogic::KEY_COS,0); if ($setting) { CdnLogic::instance()->channel(SettingLogic::KEY_COS)->deletePath(sprintf('/%s/%s', $chapter->document_id, $chapterId)); } return true; } throw new \RuntimeException('章节删除失败'); } public function sortByChapter(Chapter $source, Chapter $target, $position = 'before') { if ($source->parent_id != $target->parent_id) { throw new \RuntimeException('文档不在一个目录内'); } if ($source->document_id != $target->document_id) { throw new \RuntimeException('要移到的章节不在一个文档内'); } if ($position == 'before') { //把大于target sort先全部后移一位,然后把当前插入到target后面 Chapter::query()->where('document_id', '=', $source->document_id) ->where('parent_id', '=', $target->parent_id) ->where('id', '!=', $source->id) ->where('sort', '>=', $target->sort)->increment('sort'); $source->sort = $target->sort; $source->save(); } else { //把大于target sort先全部后移一位,然后把当前插入到target后面 Chapter::query()->where('document_id', '=', $source->document_id) ->where('parent_id', '=', $target->parent_id) ->where('id', '!=', $source->id) ->where('sort', '>', $target->sort)->increment('sort'); $source->sort = $target->sort + 1; $source->save(); } return true; } public function moveByChapter(Chapter $source, Chapter $target) { if (!$target->is_dir) { throw new \RuntimeException('移动的目标不是目录,不能移动'); } $documentChange = 0; if ($source->document_id != $target->document_id) { $documentChange = 1; } $source->document_id = $target->document_id; $source->parent_id = $target->id; $source->sort = ChapterLogic::instance()->getMaxSort($target->parent_id); $source->save(); //下级目录修改 if ($source->is_dir) { //移动的是一个目录 $this->moveSunChapter($source, $source->document_id); } return true; } public function moveSunChapter($source, $documentId) { if ($source->is_dir) { //是目录 $list = Chapter::query()->where('parent_id', $source->id)->get(); if (count($list)) { foreach ($list as $key => $val) { $val->document_id = $documentId; $val->save(); if ($val->is_dir) { $this->moveSunChapter($val, $documentId); } } } } } public function searchDocument($id, $keyword) { $content_ids = ChapterContent::where('content', 'like', '%' . $keyword . '%')->pluck('chapter_id')->toArray(); $document_ids = Chapter::where('name', 'like', '%' . $keyword . '%')->where('document_id', $id)->pluck('id')->toArray(); $document_ids = array_merge($content_ids, $document_ids); $documents = Chapter::whereIn('id', $document_ids)->where('document_id', $id)->get()->toArray(); foreach ($documents as &$document) { $document['content'] = ChapterContent::find($document['id'])->content ?? ''; if ($document['content']) { $document['content'] = mb_substr($document['content'], 0, 264, 'utf-8'); } $document['path'] = $this->getPath($document['parent_id']); } $documentinfo = Document::where('id', $id)->first(); if ($documentinfo && $documentinfo['creator_id']) { $userinfo = User::where('id', $documentinfo['creator_id'])->first(); if ($userinfo) { foreach ($documents as $key => &$val) { $val['creator_id'] = $userinfo['id']; $val['username'] = $userinfo['username']; } } } return $documents; } public function getPath($parent_id) { $path = $parent_id; while ($parent_id != 0) { $temporary = Chapter::query()->find($parent_id)->first(); if ($temporary) { $parent_id = $temporary->parent_id; $path = $parent_id . '/' . $path; } else { throw new \Exception('路径信息缺失!'); } } return $path; } public function searchChapter($id, $keywords) { $chapter = Chapter::query()->select('id', 'parent_id', 'name')->where('document_id', $id)->where('name', 'like', '%' . $keywords . '%')->first(); if ($chapter) { $chapter['content'] = ChapterContent::find($chapter['id'])->content ?? ''; $chapter['path'] = $this->getPath($chapter['parent_id']); return $chapter; } throw new \Exception('没有匹配到任何章节'); } } ================================================ FILE: app/Model/Logic/Document/ChapterApi/ChapterCommonLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document\ChapterApi; use W7\App\Model\Entity\Document\ChapterApiParam; class ChapterCommonLogic { //是否为对象(非数组) public function is_assoc($arr) { //array(1, 2, 3, 4, 5, 6, 7);// 输出false return array_keys($arr) !== range(0, count($arr) - 1); } //字符串是否为JSON public function isJson($data = '', $assoc = false) { $data = json_decode($data, $assoc); if (($data && is_object($data)) || (is_array($data) && !empty($data))) { return $data; } return false; } /** * url参数转化成数组 * @param string * @return mixed */ public function urlToArray($query) { $op = array(); $pairs = explode("&", $query); foreach ($pairs as $pair) { list($k, $v) = array_map("urldecode", explode("=", $pair)); $op[$k] = $v; } return $op; } //请求列表 public function requestIds() { return [ ChapterApiParam::LOCATION_REQUEST_HEADER => 'Request.Header', ChapterApiParam::LOCATION_REQUEST_QUERY_STRING => 'Request.Query', ChapterApiParam::LOCATION_REQUEST_BODY_FROM => 'Request.Body.form-data', ChapterApiParam::LOCATION_REQUEST_BODY_URLENCODED => 'Request.Body.urlencoded', ChapterApiParam::LOCATION_REQUEST_BODY_RAW => 'Request.Body.raw', ChapterApiParam::LOCATION_REQUEST_BODY_BINARY => 'Request.Body.binary', ]; } //响应列表 public function reponseIds() { return [ ChapterApiParam::LOCATION_REPONSE_HEADER => 'Reponse.Header', ChapterApiParam::LOCATION_REPONSE_BODY_FROM => 'Reponse.Body.form-data', ChapterApiParam::LOCATION_REPONSE_BODY_URLENCODED => 'Reponse.Body.urlencoded', ChapterApiParam::LOCATION_REPONSE_BODY_RAW => 'Reponse.Body.raw', ChapterApiParam::LOCATION_REPONSE_BODY_BINARY => 'Reponse.Body.binary', ]; } } ================================================ FILE: app/Model/Logic/Document/ChapterApi/ChapterDemoLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document\ChapterApi; use W7\App\Model\Entity\Document\ChapterApiParam; //返回演示数据demo class ChapterDemoLogic extends ChapterCommonLogic { protected $chapterId; public function __construct($chapterId) { $this->chapterId = $chapterId; } //type==1 array 2键值对 3键值对数组 $locationType 1请求2 响应 public function getChapterDemo($locationType, $type = 1, $locationList = []) { $chapterId = $this->chapterId; if ($locationType == 2) { $locationList = array_keys($this->reponseIds()); } elseif ($locationType == 0) { //使用参数locationList } else { $locationList = array_keys($this->requestIds()); } $chapterList = ChapterApiParam::query()->where('chapter_id', $chapterId)->where('parent_id', 0)->whereIn('location', $locationList)->get(); $data = $this->getChapterDemoChildrenArray($chapterList, ''); if (in_array($type, [2, 3])) { //需要转键值对 return [ 'data' => $this->getArrayToKeyValue($data['data'], $type), 'descriptionData' => $this->getArrayToKeyValue($data['descriptionData'], $type), ]; } //data数组结构,descriptionData数据结构对应描述 return $data; } //导出-2键值对字符串,3键值对数组 public function getArrayToKeyValue($data, $type) { $str = http_build_query($data); if ($type == 3) { //键值对数组 $info1 = explode('&', $str); $reply = []; foreach ($info1 as $key => $val) { $info2 = explode('=', $val); $name = urldecode($info2[0]); $value = urldecode(str_replace($info2[0] . '=', '', $val)); $reply[$name] = $value; } return $reply; } else { //纯键值对 $str = str_replace('&', "\n", $str); $str = str_replace('=', ':', $str); return urldecode($str); } } public function getChapterDemoChildrenArray($listChildren, $defaultValue = '') { if ($this->isJson($defaultValue)) { //如果是json $defaultValueList = json_decode($defaultValue, true); } else { $defaultValueList = []; } $data = []; $descriptionData = []; $i = 0; foreach ($listChildren as $key => $val) { $defaultValue = ''; if ($val->default_value) { $defaultValue = $val->default_value; } else { if (isset($defaultValueList[$i])) { $defaultValue = $defaultValueList[$i]; } } $description = $val->description; if (in_array($val->type, [ChapterApiParam::TYPE_OBJECT, ChapterApiParam::TYPE_ARRAY])) { //如果里面还是数组或者对象 $listChildrenSun = ChapterApiParam::query()->where('chapter_id', $val->chapter_id) ->where('parent_id', $val->id)->get(); if (count($listChildrenSun) > 0) { if (is_numeric($val->rule) && ($val->rule > 1)) { //如果是多维数组 $chapterDemoChildren = $this->getChapterDemoChildrenArray($listChildrenSun, ''); $data[$val->name][] = $chapterDemoChildren['data']; $descriptionData[$val->name][] = $chapterDemoChildren['descriptionData']; } else { $chapterDemoChildren = $this->getChapterDemoChildrenArray($listChildrenSun, ''); $data[$val->name] = $chapterDemoChildren['data']; $descriptionData[$val->name] = $chapterDemoChildren['descriptionData']; } } else { //没有子类 if ($this->isJson($defaultValue)) { //如果是json $defaultValueList = json_decode($defaultValue, true); $defaultValue = $defaultValueList[0]; } $data[$val->name] = $defaultValue; $descriptionData[$val->name] = $description; } } else { if ($val->name) { //对象 $data[$val->name] = $defaultValue; $descriptionData[$val->name] = $description; } else { //数字键值 $data[] = $defaultValue; $descriptionData[] = $description; } } } return ['data' => $data, 'descriptionData' => $descriptionData]; } } ================================================ FILE: app/Model/Logic/Document/ChapterApi/ChapterImportLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document\ChapterApi; //返回演示数据demo use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document\ChapterApiParam; class ChapterImportLogic extends ChapterCommonLogic { private $errNullMsg = '导入数据不能为空'; public function getApiparam($data, $location, $type = 'key_word') { if ($type == 'key_word') { if (!is_array($data)) { $array = $this->keyWordToData($data); if ($data && count($array) == 0) { //兼容文本长内容,必须要用:隔开 throw new ErrorHttpException('键值对格式错误,请按照key:value格式填写'); } } else { throw new ErrorHttpException('键值对格式错误,请按照key:value格式填写'); } } elseif ($type == 'json') { if (!$data) { throw new ErrorHttpException($this->errNullMsg); } if ($this->isJson($data)) { $array = json_decode($data, true); } else { throw new ErrorHttpException('导入数据不是标准的JSON格式'); } } else if (is_array($data)) { $array = $data; } if (is_array($array)) { if (count($array) == 0) { throw new ErrorHttpException($this->errNullMsg); } //生成Apiparam数据 if ((count($array) != count($array, 1))&&(!$this->is_assoc($array))) { //如果是多维数组 $arrayData = $this->buildArrayData('__root__', $array, $location); $record = [$arrayData]; } else { $record = $this->formartToMock($array, $location); } return $record; } throw new ErrorHttpException('导入数据不符合要求'); } /** * 导入参数格式化成mock */ public function formartToMock(array $arr, $location, $mergeRecursive = []) { $data = []; foreach ($arr as $k => $v) { $rule = ''; $children = []; $arrayData = []; $default = $v; $type = ChapterApiParam::TYPE_STRING; if (is_numeric($v)) { //数字 $type = ChapterApiParam::TYPE_NUMBER; } elseif (is_bool($v)) { //布尔 $type = ChapterApiParam::TYPE_BOOLEAN; } elseif (is_string($v)) { //字符串 $type = ChapterApiParam::TYPE_STRING; } elseif (is_null($v)) { $type = ChapterApiParam::TYPE_NULL; } elseif (is_array($v)) { //数组或对象 $arrayData = $this->buildArrayData($k, $v, $location); } if ($mergeRecursive && isset($mergeRecursive[$k])) { //去重 if (is_array($mergeRecursive[$k])) { $uniqueMergeRecursive = array_unique($mergeRecursive[$k]); if (count($uniqueMergeRecursive) > 1) { if ($type !== ChapterApiParam::TYPE_STRING) { //如果 $type = $this->checkType($type, $uniqueMergeRecursive); } $default = json_encode($uniqueMergeRecursive, JSON_UNESCAPED_UNICODE); if ($default) { $rule = '+1'; } } else { $default = $uniqueMergeRecursive[0]; } } else { $default = $mergeRecursive[$k]; } } if ($arrayData) { $data[] = $arrayData; } else { $data[] = [ 'type' => $type, 'name' => $k, 'description' => '', 'enabled' => ChapterApiParam::ENABLED_YES, 'location' => $location, 'default_value' => $default, 'rule' => $rule ?? '', 'children' => $children ?? [] ]; } } return $data; } public function checkType($oldtype, $uniqueMergeRecursive) { foreach ($uniqueMergeRecursive as $k => $v) { if (is_numeric($v)) { //数字 $type = ChapterApiParam::TYPE_NUMBER; } elseif (is_bool($v)) { //布尔 $type = ChapterApiParam::TYPE_BOOLEAN; } elseif (is_string($v)) { //字符串 $type = ChapterApiParam::TYPE_STRING; } elseif (is_null($v)) { $type = ChapterApiParam::TYPE_NULL; } else { $type = $oldtype; } if ($type != $oldtype) { //如果出现两种以上类型->直接返回字符串 return ChapterApiParam::TYPE_STRING; } } return $oldtype; } public function buildArrayData($key, $val, $location) { $default = ''; $rule = 0; $type = ChapterApiParam::TYPE_ARRAY; $i = 0; $sunArray = []; $mergeRecursive = []; $hasArray = 0; foreach ($val as $k => $v) { if ($k != $i) { $type = ChapterApiParam::TYPE_OBJECT; break; } $i++; //如果不是对象,是多维数组 if (is_array($v) && $type == ChapterApiParam::TYPE_ARRAY) { $hasArray = 1; //如果子数组是个数组 $rule = $rule + 1; if ($rule == 1) { $sunArray = $v; $mergeRecursive = $v; } else { //值和键值分开 $sunArray = array_merge($sunArray, $v); //合并的时候,值合并到一起(按数组) $mergeRecursive = array_merge_recursive($mergeRecursive, $v); } } if (!is_array($v) && $hasArray == 1) { $type = ChapterApiParam::TYPE_OBJECT; //如果都是数组(多维数组)当前有一个不是数组->是对象 break; } } if ($type == ChapterApiParam::TYPE_OBJECT) { //如果当前数组是对象 return [ 'type' => ChapterApiParam::TYPE_OBJECT, 'name' => $key, 'description' => '', 'enabled' => ChapterApiParam::ENABLED_YES, 'default_value' => $default, 'rule' => '', 'children' => $this->formartToMock($val, $location) ]; } else if ($rule > 0) { //如果是多维数组 return [ 'type' => ChapterApiParam::TYPE_ARRAY, 'name' => $key, 'description' => '', 'enabled' => ChapterApiParam::ENABLED_YES, 'default_value' => '', 'rule' => $rule, 'children' => $this->formartToMock($sunArray, $location, $mergeRecursive) ]; } else { //单数组或者对象 if ($this->is_assoc($val)) { //如果是对象 return [ 'type' => ChapterApiParam::TYPE_OBJECT, 'name' => $key, 'description' => '', 'enabled' => ChapterApiParam::ENABLED_YES, 'default_value' => $default, 'rule' => '', 'children' => $this->formartToMock($val, $location) ]; } else { //如果是纯数组,默认值返回整个数组 if (array_unique($val)) { $default = $this->dataToJson(array_unique($val)); } return [ 'type' => ChapterApiParam::TYPE_ARRAY, 'name' => $key, 'description' => '', 'enabled' => ChapterApiParam::ENABLED_YES, 'default_value' => $default, 'rule' => $default ? '+1' : '', 'children' => [] ]; } } } // public function buildArrayData($v){ // if (count($v) == count($v, 1)) { //数组 // $type = ChapterApiParam::TYPE_ARRAY; // if ($step) { //纯数字数组 // $default = $v === array_filter($v, 'is_int') ? current($v) : $v; // if (is_array($default)) { // //如果是数组转JSON // $default = $this->dataToJson($default); // } // } elseif (!($v === array_filter($v, 'is_int'))) { //单个对象 // $children = $this->formartToMock($v, $location); // $default = ''; // } // } elseif($this->is_assoc($v)) { // $children = $this->formartToMock($v, $location, true); // }else{ //对象集合 // $type = ChapterApiParam::TYPE_OBJECT; // $merge = []; // foreach ($v as $v1) { // $merge = array_merge_recursive($merge, $v1); // } // foreach ($merge as &$v1) { // $v1 = array_pad(is_array($v1) ? $v1 : [$v1], count($v), null); // } // if (!$this->is_assoc($merge)) { // $rule = count($v); // } else { // $children = $this->formartToMock($merge, $location, true); // } // $default = ''; // } // } public function dataToJson($arr) { foreach ($arr as $key => $val) { if (is_numeric($val)) { $arr[$key] = (int)$val; } } return json_encode($arr, JSON_UNESCAPED_UNICODE); } // public function buildApiparamData($data) // { // $record = []; // foreach ($data as $key => $val) { // if (is_array($val)) { // //多维数组还是单维度数组 // if (count($val) == count($val, 1)) { // if ($this->is_assoc($val)) { // //对象 // $record[] = [ // 'type' => ChapterApiParam::TYPE_OBJECT, // 'name' => $key, // 'description' => '', // 'enabled' => ChapterApiParam::ENABLED_YES, // 'default_value' => '', // 'rule' => '', // 'children' => $this->buildApiparamData($val) // ]; // } else { // //纯数组 // $record[] = [ // 'type' => ChapterApiParam::TYPE_ARRAY, // 'name' => $key, // 'description' => '', // 'enabled' => ChapterApiParam::ENABLED_YES, // 'default_value' => json_encode($val), // 'rule' => '', // 'children' => [] // ]; // } // } else { // //多维数组 // //多维数组先合并子类 // $sun = []; // foreach ($val as $k => $v) { // // if ($this->is_assoc($val)) { // //对象 // $sun[$k][] = $v; // } else { // //数组 // $sun[$k][] = $v; // } // } // $record[] = [ // 'type' => ChapterApiParam::TYPE_ARRAY, // 'name' => $key, // 'description' => '', // 'enabled' => ChapterApiParam::ENABLED_YES, // 'default_value' => '', // 'rule' => '+' . count($val), // 'children' => $this->buildApiparamData($val) // ]; // } // } else { // //键值 // $type = ChapterApiParam::TYPE_STRING; // if (is_numeric($val)) { // $type = ChapterApiParam::TYPE_NUMBER; // } elseif ($val == 'true' || $val == 'false') { // $type = ChapterApiParam::TYPE_BOOLEAN; // } // $record[] = [ // 'type' => $type, // 'name' => $key, // 'description' => '', // 'enabled' => ChapterApiParam::ENABLED_YES, // 'default_value' => $val, // 'rule' => '', // 'children' => [] // ]; // } // } // return $record; // } public function keyWordToData($keyWord) { $data = []; $str = ''; $data1 = explode("\n", $keyWord); if (count($data1)) { $data1 = $this->compatible($data1); foreach ($data1 as $key => $val) { $item = ''; $itemData = explode(':', $val); if (substr($itemData[0], 0, 2) == '//') { continue; } if (count($itemData) > 1) { $start = strlen($itemData[0] . ':'); $last = substr($val, $start); //首字符去空 // if (strlen($last) > 1) { // if (substr($last, 0, 1) == ' ') { // $last = substr($last, 1); // } // } $item = $itemData[0] . '=' . $last; } else { $item = $itemData[0] . '='; } if ($item) { parse_str($item, $dataTemp); //单条转化 $data = $this->buildData($data, $dataTemp); } } } return $data; } //兼容文本 public function compatible($data) { $i = 0; $last = ''; $newData = []; foreach ($data as $key => $val) { if (strpos($val, ':') !== false) { $newData[$i] = $val; $last = $val; $i++; } else { //不包含: if ($i > 0) { $newData[$i - 1] = $last . "\n" . $val; $last = $newData[$i - 1]; } } } return $newData; } //组数组 public function buildData($data, $dataTemp) { foreach ($dataTemp as $k => $v) { if (is_array($v)) { //如果是数组 if (isset($data[$k])) { $data[$k] = $this->buildData($data[$k], $v); } else { $data[$k] = $this->buildData([], $v); } } else { $data[$k] = $v; } } return $data; } } ================================================ FILE: app/Model/Logic/Document/ChapterApi/ChapterRecordLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document\ChapterApi; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document\ChapterApi; use W7\App\Model\Entity\Document\ChapterApiExtend; use W7\App\Model\Entity\Document\ChapterApiParam; use W7\App\Model\Entity\Document\ChapterApiReponse; use W7\App\Model\Logic\Document\ChapterApiLogic; use W7\App\Model\Logic\Document\ChapterApiParamLogic; use function GuzzleHttp\Psr7\build_query; /** * 数据存储与转markdown */ class ChapterRecordLogic { protected $chapterId; protected $ids = []; protected $bodyParamLocation = 3; protected $bodyReponseLocation = 10; public function __construct($chapterId) { $this->chapterId = $chapterId; } /* * type=1仅返回markdown(重新生成缓存) 2同时插入数据和返回markdown(编辑) * */ public function recordToMarkdown($record, $sqlType = 2) { //markdown数据-初始化顺序 $markdown = [ 'api' => '', 'body' => '', 'reponse' => '', 'extend' => '', ]; $api = ''; idb()->beginTransaction(); try { $chapterId = $this->chapterId; $cacheIndex = $this->getChapterIdRecordIndex($chapterId); $recordCache = icache()->get($cacheIndex); if ($recordCache) { //清除缓存 icache()->delete($cacheIndex); //清除请求规则缓存 $chapterRuleLogic = new ChapterRuleLogic($chapterId); $cacheRequestIndex = $chapterRuleLogic->getChapterIdRequestIndex(); icache()->delete($cacheRequestIndex); } foreach ($record as $key => $val) { if (is_array($val)) { if ($key == 'api') { $api = $this->buildApi($val, $sqlType); } elseif ($key == 'body') { $body = $val; if (isset($record['api']['body_param_location']) && isset($body['request_body'])) { //指定存储body_param_location类型 $body[$record['api']['body_param_location']] = $body['request_body']; } else { if ($sqlType == 2) { throw new ErrorHttpException('没有body_param_location或request_body'); } } if (isset($body['reponse_body'])) { //指定存储request_body类型-兼容老版本,先不删除 $body[ChapterApiParam::LOCATION_REPONSE_BODY_RAW] = $body['reponse_body']; } $markdown['body'] = $this->buildBody($body, $sqlType); } elseif ($key == 'reponse') { $reponse = $val; $markdown['reponse'] = $this->buildReponse($reponse, $sqlType); } } else { if ($key == 'extend') { $markdown['extend'] = $this->buildExtend($val, $sqlType); } } if(!$markdown['reponse']){ //如果没有相应 $this->deleteAllReponse($chapterId); } } //存储 if ($sqlType == 2) { //循环结束以后,删除该父级本次未提交的ID $ids = $this->ids; $chapterId = $this->chapterId; if ($ids) { ChapterApiParam::query()->where('chapter_id', $chapterId)->whereNotIn('id', $ids)->delete(); } else { ChapterApiParam::query()->where('chapter_id', $chapterId)->delete(); } } if ($api) { $markdown['api'] = $this->buildApiText($api, $chapterId); } //替换API的URL idb()->commit(); } catch (\Throwable $e) { idb()->rollBack(); throw new ErrorHttpException($e->getMessage()); } $markdownText = implode("\n\n", $markdown); return $markdownText; } public function buildReponse($reponse, $sqlType) { $text = ''; $reponseIds = []; $chapterId = $this->chapterId; if ($reponse) { foreach ($reponse as $key => $val) { if ($val['id']) { //清除请求规则缓存 $chapterRuleLogic = new ChapterRuleLogic($chapterId); $cacheRequestIndex = $chapterRuleLogic->getChapterIdReponseIndex($val['id']); icache()->delete($cacheRequestIndex); //修改 $chapterApiReponse = ChapterApiReponse::query()->find($val['id']); if ($chapterApiReponse) { $chapterApiReponse->description = $val['description']; $chapterApiReponse->save(); } else { if ($sqlType == 2) { //如果已经删除,重新新增 $chapterApiReponse = ChapterApiReponse::query()->create([ 'chapter_id' => $chapterId, 'description' => $val['description'] ]); } } } else { if ($sqlType == 2) { //新增 $chapterApiReponse = ChapterApiReponse::query()->create([ 'chapter_id' => $chapterId, 'description' => $val['description'] ]); } } if ($chapterApiReponse && $val['data']) { $reponseIds[count($reponseIds)] = $chapterApiReponse->id; $reponseTop = '### 响应' . $val['description'] . "\n"; $reponseText = $this->buildApiBody(ChapterApiParam::LOCATION_REPONSE_BODY_RAW, $val['data'], $sqlType, $chapterApiReponse); if ($reponseText) { $text .= $reponseTop . $reponseText; } } } if ($sqlType == 2) { if ($reponseIds) { ChapterApiReponse::query()->where('chapter_id', $chapterId)->whereNotIn('id', $reponseIds)->delete(); } else { $this->deleteAllReponse($chapterId); } } } return $text; } public function deleteAllReponse($chapterId){ ChapterApiReponse::query()->where('chapter_id', $chapterId)->delete(); } public function buildBody($data, $sqlType, $chapterApiReponse = '') { if (!$data) { //没有数据 return ''; } //初始化顺序 $data = $this->bodySort($data); $body = ''; $reqBody = ''; $resBody = ''; $requestTop = "### 请求\n"; $reponseTop = "### 响应\n"; foreach ($data as $k => $v) { if (in_array($k, [$this->bodyReponseLocation, ChapterApiParam::LOCATION_REPONSE_HEADER])) { $resBody .= $this->buildApiBody($k, $v, $sqlType, $chapterApiReponse); } elseif (in_array($k, [$this->bodyParamLocation, ChapterApiParam::LOCATION_REQUEST_HEADER, ChapterApiParam::LOCATION_REQUEST_QUERY_PATH, ChapterApiParam::LOCATION_REQUEST_QUERY_STRING])) { $reqBody .= $this->buildApiBody($k, $v, $sqlType); } } $body .= $requestTop; $body .= !empty($reqBody) ? $reqBody : '无'; if(!empty($resBody)) $body .= $reponseTop.$resBody; return $body; } public function buildExtend($data, $sqlType) { $chapterId = $this->chapterId; $saveData = [ 'chapter_id' => $chapterId, 'extend' => $data, ]; if ($sqlType == 2) { $chapterApiExtend = ChapterApiExtend::query()->where('chapter_id', $chapterId)->first(); if ($chapterApiExtend) { $chapterApiExtend->update($saveData); } else { ChapterApiExtend::query()->create($saveData); } } return $data; } //文档排序 public function bodySort($data) { //按getLocationLabel 顺序排序返回生成markdown $newData = []; $locationLabel = ChapterApiParamLogic::instance()->getLocationLabel(); foreach ($locationLabel as $key => $val) { if (isset($data[$key])) { $newData[$key] = $data[$key]; } } return $newData; } public function strLengthAdaptation($str, $defaultLength = 20, $isRow = 0) { if ($str === null) { $str = ''; } $lengthAll = strlen($str); $lengthCn = mb_strlen($str); if ($lengthAll > $lengthCn) { $length = $lengthAll - ($lengthAll - $lengthCn) / 2; } else { $length = $lengthAll; } if ($length < $defaultLength) { $str = $str . str_repeat(' ', ($defaultLength - $length)); } if ($isRow) { $str = str_replace('|', '|', $str); } return $str; } public function bodyTableTop($chapterApiReponse) { if ($chapterApiReponse) { $text = $this->strLengthAdaptation('参数名称', ChapterApiParam::TABLE_NAME_LENGTH) . '|' . $this->strLengthAdaptation('类型', ChapterApiParam::TABLE_TYPE_LENGTH) . '|' . $this->strLengthAdaptation('生成规则', ChapterApiParam::TABLE_RULE_LENGTH) . '|' . $this->strLengthAdaptation('示例值', ChapterApiParam::TABLE_VALUE_LENGTH) . '|' . $this->strLengthAdaptation('描述', ChapterApiParam::TABLE_DESCRIPTION_LENGTH) . "\n"; $text = $text . $this->strLengthAdaptation('|:-', ChapterApiParam::TABLE_NAME_LENGTH) . '|' . $this->strLengthAdaptation(':-:', ChapterApiParam::TABLE_TYPE_LENGTH) . '|' . $this->strLengthAdaptation(':-:', ChapterApiParam::TABLE_RULE_LENGTH) . '|' . $this->strLengthAdaptation(':-', ChapterApiParam::TABLE_DESCRIPTION_LENGTH) . '|' . $this->strLengthAdaptation(':-', ChapterApiParam::TABLE_VALUE_LENGTH) . "\n"; } else { $text = $this->strLengthAdaptation('参数名称', ChapterApiParam::TABLE_NAME_LENGTH) . '|' . $this->strLengthAdaptation('类型', ChapterApiParam::TABLE_TYPE_LENGTH) . '|' . $this->strLengthAdaptation('生成规则', ChapterApiParam::TABLE_RULE_LENGTH) . '|' . $this->strLengthAdaptation('必填', ChapterApiParam::TABLE_ENABLED_LENGTH) . '|' . $this->strLengthAdaptation('示例值', ChapterApiParam::TABLE_VALUE_LENGTH) . '|' . $this->strLengthAdaptation('描述', ChapterApiParam::TABLE_DESCRIPTION_LENGTH) . "\n"; $text = $text . $this->strLengthAdaptation('|:-', ChapterApiParam::TABLE_NAME_LENGTH) . '|' . $this->strLengthAdaptation(':-:', ChapterApiParam::TABLE_TYPE_LENGTH) . '|' . $this->strLengthAdaptation(':-:', ChapterApiParam::TABLE_RULE_LENGTH) . '|' . $this->strLengthAdaptation(':-:', ChapterApiParam::TABLE_ENABLED_LENGTH) . '|' . $this->strLengthAdaptation(':-', ChapterApiParam::TABLE_VALUE_LENGTH) . '|' . $this->strLengthAdaptation(':-', ChapterApiParam::TABLE_DESCRIPTION_LENGTH) . "\n"; } return $text; } public function getLocatinonText($location) { $locationLabel = ChapterApiParamLogic::instance()->getLocationLabel(); if (isset($locationLabel[$location])) { return $locationLabel[$location]; } throw new ErrorHttpException('响应类型错误'); } public function getEnabledText($enabled) { $enabledLabel = ChapterApiParamLogic::instance()->getEnabledLabel(); if (isset($enabledLabel[$enabled])) { return $enabledLabel[$enabled]; } throw new ErrorHttpException('必填类型错误'); } public function buildApi($data, $sqlType) { $chapterId = $this->chapterId; $method = 0; $url = ''; $description = ''; $statusCode = 0; $bodyParamLocation = 3; if (isset($data['method'])) { $method = $data['method']; } $methodLabel = ChapterApiLogic::instance()->getMethodLabel(); if (!isset($methodLabel[$method])) { throw new ErrorHttpException('请求方式错误'); } if (isset($data['url'])) { $url = $data['url']; } if (isset($data['description'])) { $description = $data['description']; } if (isset($data['body_param_location'])) { $bodyParamLocationList = [ ChapterApiParam::LOCATION_REQUEST_QUERY_STRING => 'Request.Query.String', ChapterApiParam::LOCATION_REQUEST_BODY_FROM => 'Request.Body.form-data', ChapterApiParam::LOCATION_REQUEST_BODY_URLENCODED => 'Request.Body.urlencoded', ChapterApiParam::LOCATION_REQUEST_BODY_RAW => 'Request.Body.raw', ChapterApiParam::LOCATION_REQUEST_BODY_BINARY => 'Request.Body.binary', ]; if (in_array($data['body_param_location'], array_keys($bodyParamLocationList))) { $bodyParamLocation = $data['body_param_location']; $this->bodyParamLocation = $bodyParamLocation; } } if (isset($data['status_code'])) { $statusCode = $data['status_code']; $statusCodeLists = ChapterApiLogic::instance()->getStatusCode(); if (!in_array($statusCode, $statusCodeLists)) { throw new ErrorHttpException('状态码错误'); } } //存储 if ($sqlType == 2) { $saveData = [ 'chapter_id' => $chapterId, 'url' => $url, 'method' => $method, 'description' => $description, 'body_param_location' => $bodyParamLocation ]; $chapterApi = ChapterApi::query()->where('chapter_id', $chapterId)->first(); if ($chapterApi) { $chapterApi->update($saveData); } else { ChapterApi::query()->create($saveData); } } return [ 'methodLabel' => $methodLabel[$method], 'url' => $url, 'description' => $description ]; } public function buildApiText($data, $chapterId) { $url = $data['url']; //获取QUERY参数样例 $chapterDemoLogic = new ChapterDemoLogic($chapterId); $query = $chapterDemoLogic->getChapterDemo(0, 1, [ChapterApiParam::LOCATION_REQUEST_QUERY_STRING]); if (isset($query['data']) && $query['data']) { $urlStr = build_query($query['data']); $url = $url . '?' . $urlStr; } if (strpos($url, 'http://') !== 0 && strpos($url, 'https://') !== 0) { $url = '/' . $url; } $text = '> ' . $data['methodLabel'] . ' ' . $url . "\n\n"; if ($data['description']) { $text .= $data['description'] . "\n"; } return $text; } public function buildApiBody($location, $data, $sqlType, $chapterApiReponse = '') { $text = ''; if ($data && is_array($data)) { $title = $this->getLocatinonText($location); $textTop = '### ' . $title . "\n\n"; $textTableTop = $this->bodyTableTop($chapterApiReponse); foreach ($data as $k => $val) { $text .= $this->buildBodyChildren($location, $val, 0, 0, $sqlType, $chapterApiReponse); } if ($text) { if ($chapterApiReponse) { $text = $textTableTop . $text . "\n\n"; } else { $text = $textTop . $textTableTop . $text . "\n\n"; } } } return $text; } public function getTypeText($type) { $typeLabel = ChapterApiParamLogic::instance()->getTypeLabel(); if (isset($typeLabel[$type])) { return $typeLabel[$type]; } throw new ErrorHttpException('参数类型错误'); } public function getChildrenTop($level) { return str_repeat(' ', $level); } public function buildBodyChildren($location, $data, $level = 0, $parentId = 0, $sqlType = 2, $chapterApiReponse = '') { $childrenTop = $this->getChildrenTop($level); $name = ''; $type = 1; $defaultValue = ''; $description = ''; $rule = ''; $enabled = 1; if (isset($data['name'])) { $name = $data['name']; } if (isset($data['type']) && $data['type']) { $type = $data['type']; } if (isset($data['enabled']) && $data['enabled']) { $enabled = $data['enabled']; } if (isset($data['rule']) && $data['rule']) { $rule = $data['rule']; } if (isset($data['default_value'])) { $defaultValue = $data['default_value']; if (is_array($defaultValue)) { //如果默认值是个数组 $defaultValue = json_encode($defaultValue, JSON_UNESCAPED_UNICODE); } } if (isset($data['description'])) { $description = $data['description']; } $enabledText = $this->getEnabledText($enabled); $typeText = $this->getTypeText($type); if (strlen($name) || $description) { /*if (!$name) { $name = ' '; }*/ $textName = $name; if ($type == ChapterApiParam::TYPE_ARRAY) { $textName .= '[]'; } elseif ($type == ChapterApiParam::TYPE_OBJECT) { $textName .= '{}'; } if ($chapterApiReponse) { //响应不返回是否必填 $text = $this->strLengthAdaptation($childrenTop . $textName, ChapterApiParam::TABLE_NAME_LENGTH, 1) . '|' . $this->strLengthAdaptation($typeText, ChapterApiParam::TABLE_TYPE_LENGTH, 1) . '|' . $this->strLengthAdaptation($rule, ChapterApiParam::TABLE_RULE_LENGTH, 1) . '|' . $this->strLengthAdaptation($defaultValue, ChapterApiParam::TABLE_VALUE_LENGTH, 1) . '|' . $this->strLengthAdaptation($description, ChapterApiParam::TABLE_DESCRIPTION_LENGTH, 1) . "\n"; } else { $text = $this->strLengthAdaptation($childrenTop . $textName, ChapterApiParam::TABLE_NAME_LENGTH, 1) . '|' . $this->strLengthAdaptation($typeText, ChapterApiParam::TABLE_TYPE_LENGTH, 1) . '|' . $this->strLengthAdaptation($rule, ChapterApiParam::TABLE_RULE_LENGTH, 1) . '|' . $this->strLengthAdaptation($enabledText, ChapterApiParam::TABLE_ENABLED_LENGTH, 1) . '|' . $this->strLengthAdaptation($defaultValue, ChapterApiParam::TABLE_VALUE_LENGTH, 1) . '|' . $this->strLengthAdaptation($description, ChapterApiParam::TABLE_DESCRIPTION_LENGTH, 1) . "\n"; } //存储 if ($sqlType == 2) { $ids = $this->ids; $chapterId = $this->chapterId; $saveData = [ 'chapter_id' => $chapterId, 'parent_id' => $parentId, 'location' => $location, 'type' => $type, 'name' => $name, 'description' => $description, 'enabled' => $enabled, 'rule' => $rule, 'default_value' => $defaultValue, ]; if ($chapterApiReponse) { $saveData['reponse_id'] = $chapterApiReponse->id; } $id = $parentId; $hasRow = 0; if (isset($data['id']) && $data['id']) { $id = $data['id']; $chapterApiParam = ChapterApiParam::query()->find($data['id']); if ($chapterApiParam && $chapterApiParam->chapter_id == $chapterId && $chapterApiParam->location == $location) { $chapterApiParam->update($saveData); $hasRow = 1; $ids[count($ids)] = $data['id']; } } if ($hasRow == 0) { $chapterApiParam = ChapterApiParam::query()->create($saveData); if ($chapterApiParam) { $ids[count($ids)] = $chapterApiParam->id; $id = $chapterApiParam->id; } } $this->ids = $ids; } } if (isset($data['children']) && (!empty($data['children'])) && is_array($data['children'])) { foreach ($data['children'] as $k => $val) { $text .= $this->buildBodyChildren($location, $val, $level + 1, $id, $sqlType = 2, $chapterApiReponse); } } return $text; } public function copyRecord($newChapterId) { $chapterId = $this->chapterId; $chapterApi = ChapterApi::query()->where('chapter_id', $chapterId)->first(); if ($chapterApi) { $chapterApi->chapter_id = $newChapterId; ChapterApi::query()->create($chapterApi->toArray()); $chapterApiParam = ChapterApiParam::query()->where('chapter_id', $chapterId)->where('parent_id', 0)->get(); if ($chapterApiParam) { foreach ($chapterApiParam as $key => $val) { $val->chapter_id = $newChapterId; $newChapterApiParam = ChapterApiParam::query()->create($val->toArray()); $val->children = $this->copyBodyChildren($chapterId, $val->id, $newChapterId, $newChapterApiParam->id); } } $chapterApiExtend = ChapterApiExtend::query()->where('chapter_id', $chapterId)->first(); if ($chapterApiExtend) { $chapterApiExtend->chapter_id = $newChapterId; ChapterApiExtend::query()->create($chapterApiExtend->toArray()); } } return true; } public function copyBodyChildren($chapterId, $parentId, $newChapterId, $newParentId) { $chapterApiParam = ChapterApiParam::query()->where('chapter_id', $chapterId)->where('parent_id', $parentId)->get(); if ($chapterApiParam) { foreach ($chapterApiParam as $key => $val) { $val->chapter_id = $newChapterId; $val->parent_id = $newParentId; $newChapterApiParam = ChapterApiParam::query()->create($val->toArray()); $val->children = $this->copyBodyChildren($chapterId, $val->id, $newChapterId, $newChapterApiParam->id); } return $chapterApiParam; } return []; } public function chapterApiParamData($chapterId, $location, $reponseId = 0) { //全部数据 $obj = ChapterApiParam::query() ->where('location', $location)->where('chapter_id', $chapterId); if ($reponseId) { $obj->where('reponse_id', $reponseId); } return $obj->get(); } public function showRecord() { $chapterId = $this->chapterId; $cacheIndex = $this->getChapterIdRecordIndex($chapterId); $recordCache = icache()->get($cacheIndex); if ($recordCache) { return json_decode($recordCache, true); } $record = [ 'api' => '', 'body' => [ '1' => [], '2' => [], 'request_body' => [] ], 'reponse' => [], 'extend' => '' ]; $body = []; $chapterApi = ChapterApi::query()->where('chapter_id', $chapterId)->first(); if ($chapterApi) { $record['body'] = $this->getBody($chapterId, $chapterApi); $record['reponse'] = $this->getReponse($chapterId); $chapterApiExtend = ChapterApiExtend::query()->where('chapter_id', $chapterId)->first(); if ($chapterApiExtend) { $record['extend'] = $chapterApiExtend->extend; } //返回tab_location $tab_location = 1; if ($record['body']['1']) { $tab_location = 1; } elseif ($record['body']['2']) { $tab_location = 2; } elseif ($record['body']['request_body']) { $tab_location = 3; } $chapterApi->tab_location = $tab_location; $record['api'] = $chapterApi; } icache()->set($cacheIndex, json_encode($record), 3600 * 24); return $record; } public function getBodyInfo($chapterId, $location, $reponseId = 0) { $data = []; $chapterApiParamData = $this->chapterApiParamData($chapterId, $location, $reponseId); if ($chapterApiParamData) { foreach ($chapterApiParamData as $key => $val) { if ($val->parent_id == 0) { $val->children = $this->getBodyChildren($chapterApiParamData, $val->id); $data[] = $val->toArray(); } } } return $data; } public function getReponse($chapterId) { $data = []; $list = ChapterApiReponse::query()->where('chapter_id', $chapterId)->get()->toArray(); if (count($list)) { //兼容之前的 foreach ($list as $key => $val) { $data[] = [ 'id' => $val['id'], 'chapter_id' => $chapterId, 'description' => $val['description'], 'data' => $this->getBodyInfo($chapterId, ChapterApiParam::LOCATION_REPONSE_BODY_RAW, $val['id']) ]; } //删除旧的 } else { //兼容之前的 $data[] = [ 'id' => 0, 'chapter_id' => $chapterId, 'description' => '', 'data' => $this->getBodyInfo($chapterId, ChapterApiParam::LOCATION_REPONSE_BODY_RAW) ]; } return $data; } public function getBody($chapterId, $chapterApi) { $body = [ '1' => $this->getBodyInfo($chapterId, 1), '2' => $this->getBodyInfo($chapterId, 2), 'request_body' => $this->getBodyInfo($chapterId, $chapterApi->body_param_location) ]; return $body; } public function getChapterIdRecordIndex($chapterId) { return 'ChapterIdRecordIndexV1:' . $chapterId; } public function getBodyChildren($chapterApiParamData, $parentId) { $chapterApiParam = []; if (count($chapterApiParamData)) { foreach ($chapterApiParamData as $key => $val) { if ($val->parent_id == $parentId) { $val->children = $this->getBodyChildren($chapterApiParamData, $val->id); $chapterApiParam[] = $val; } } return $chapterApiParam; } return []; } } ================================================ FILE: app/Model/Logic/Document/ChapterApi/ChapterRuleLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document\ChapterApi; use W7\App\Model\Entity\Document\ChapterApiParam; //返回演示数据demo class ChapterRuleLogic extends ChapterCommonLogic { protected $chapterId; public function __construct($chapterId) { $this->chapterId = $chapterId; } public function getChapterRuleMock($reponseId) { $chapterId = $this->chapterId; $chapterRecordLogic = new ChapterRecordLogic($chapterId); $data = $chapterRecordLogic->getBodyInfo($chapterId, ChapterApiParam::LOCATION_REPONSE_BODY_RAW, $reponseId); $url = ienv('MOCK_API'); $json = $this->send_post($url, json_encode($data)); if ($this->isJson($json)) { return json_decode($json, true); } return $json; } public function send_post($url, $json) { $postdata = $json; $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/json', 'content' => $postdata, 'timeout' => 15 * 60 // 超时时间(单位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; } public function getChapterIdRequestIndex() { return 'ChapterIdRequestIndexV1:' . $this->chapterId; } public function getChapterIdReponseIndex($reponseId) { return 'ChapterIdReponseIndexV1:' . $this->chapterId . '-' . $reponseId; } public function getChapterRule($locationType, $reponseId = 0) { $chapterId = $this->chapterId; if ($locationType == 2) { $locationList = array_keys($this->reponseIds()); $cacheIndex = $this->getChapterIdReponseIndex($reponseId); } else { $cacheIndex = $this->getChapterIdRequestIndex(); $locationList = array_keys($this->requestIds()); } $Cache = icache()->get($cacheIndex); if ($Cache) { return json_decode($Cache, true); } $obj = ChapterApiParam::query()->where('chapter_id', $chapterId); if ($locationType && $reponseId) { $obj->where('reponse_id', $reponseId); } $chapterList = $obj->whereIn('location', $locationList)->get(); $data = $this->getChapterDemoChildrenArray($chapterList, '', 0); icache()->set($cacheIndex, json_encode($data['rule']), 3600 * 24); return $data['rule']; } //导出-2键值对字符串,3键值对数组 public function getArrayToKeyValue($data, $type) { $str = http_build_query($data); if ($type == 3) { //键值对数组 $info1 = explode('&', $str); $reply = []; foreach ($info1 as $key => $val) { $info2 = explode('=', $val); $name = urldecode($info2[0]); $value = urldecode(str_replace($info2[0] . '=', '', $val)); $reply[$name] = $value; } return $reply; } else { //纯键值对 $str = str_replace('&', "\n", $str); $str = str_replace('=', ':', $str); return urldecode($str); } } public function getChapterDemoChildrenArray($listChildren, $defaultValue = '', $parentId = 0) { if ($this->isJson($defaultValue)) { //如果是json $defaultValueList = json_decode($defaultValue, true); } else { $defaultValueList = []; } $data = []; $rule = []; $descriptionData = []; $i = 0; foreach ($listChildren as $key => $val) { if ($val->parent_id == $parentId) { $ruleName = $val->name; if ($val->rule) { $ruleName = $val->name . '|' . $val->rule; } $defaultValue = ''; if ($val->default_value) { $defaultValue = $val->default_value; } else { if (isset($defaultValueList[$i])) { $defaultValue = $defaultValueList[$i]; } } $description = $val->description; if (in_array($val->type, [ChapterApiParam::TYPE_OBJECT, ChapterApiParam::TYPE_ARRAY])) { //如果里面还是数组或者对象 if ($val->type == ChapterApiParam::TYPE_ARRAY) { if (is_numeric($val->rule) && ($val->rule > 0)) { //如果是多维数组 $chapterDemoChildren = $this->getChapterDemoChildrenArray($listChildren, '', $val->id); $data[$val->name][] = $chapterDemoChildren['data']; $rule[$ruleName][] = $chapterDemoChildren['rule']; $descriptionData[$val->name][] = $chapterDemoChildren['descriptionData']; } else { $chapterDemoChildren = $this->getChapterDemoChildrenArray($listChildren, '', $val->id); $data[$val->name] = $chapterDemoChildren['data']; $rule[$ruleName] = $chapterDemoChildren['rule']; $descriptionData[$val->name] = $chapterDemoChildren['descriptionData']; } } elseif ($val->type == ChapterApiParam::TYPE_OBJECT) { $chapterDemoChildren = $this->getChapterDemoChildrenArray($listChildren, '', $val->id); $data[$val->name] = $chapterDemoChildren['data']; $rule[$ruleName] = $chapterDemoChildren['rule']; $descriptionData[$val->name] = $chapterDemoChildren['descriptionData']; } else { //没有子类 if ($this->isJson($defaultValue)) { //如果是json $defaultValueList = json_decode($defaultValue, true); $defaultValue = $defaultValueList[0]; } $data[$val->name] = $defaultValue; $rule[$ruleName] = $defaultValue; $descriptionData[$val->name] = $description; } } else { if ($val->name) { //对象 $data[$val->name] = $defaultValue; $rule[$ruleName] = $defaultValue; $descriptionData[$val->name] = $description; } else { //数字键值 $data[] = $defaultValue; $rule[$ruleName] = $defaultValue; $descriptionData[] = $description; } } } } return ['rule' => $rule, 'data' => $data, 'descriptionData' => $descriptionData]; } } ================================================ FILE: app/Model/Logic/Document/ChapterApiDataLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document; use W7\App\Model\Entity\Document\ChapterApiData; use W7\App\Model\Logic\BaseLogic; use W7\Core\Helper\Traiter\InstanceTraiter; class ChapterApiDataLogic extends BaseLogic { use InstanceTraiter; public function deleteChapterApiData($chapter_id){ $checkData = ChapterApiData::query()->where('chapter_id',$chapter_id)->count('id'); if ($checkData >= 3){ return ChapterApiData::query()->where('chapter_id',$chapter_id)->delete(); } return true; } public function getByChapterApiData($chapter_id){ return ChapterApiData::query()->where('chapter_id',$chapter_id)->get(); } //随机获取Api data public function getRandomChapterApiData($chapter_id){ return ChapterApiData::query()->where('chapter_id',$chapter_id)->inRandomOrder()->take(1)->first(); } } ================================================ FILE: app/Model/Logic/Document/ChapterApiLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document; use W7\App\Model\Entity\Document\ChapterApi; use W7\App\Model\Logic\BaseLogic; use W7\Core\Helper\Traiter\InstanceTraiter; class ChapterApiLogic extends BaseLogic { use InstanceTraiter; public function getMethodLabel() { return [ ChapterApi::METHOD_GET => 'GET', ChapterApi::METHOD_POST => 'POST', ChapterApi::METHOD_PUT => 'PUT', ChapterApi::METHOD_PATCH => 'PATCH', ChapterApi::METHOD_DELETE => 'DELETE', ChapterApi::METHOD_COPY => 'COPY', ChapterApi::METHOD_HEAD => 'HEAD', ChapterApi::METHOD_PTIONS => 'PTIONS', ChapterApi::METHOD_LINK => 'LINK', ChapterApi::METHOD_UNLINK => 'UNLINK', ChapterApi::METHOD_PURGE => 'PURGE', ChapterApi::METHOD_LOCK => 'LOCK', ChapterApi::METHOD_UNLOCK => 'UNLOCK', ChapterApi::METHOD_PROPFIND => 'PROPFIND', ChapterApi::METHOD_VIEW => 'VIEW', ]; } //状态码 public function getStatusCode() { return [ 200, 301, 403, 404, 500, 502, 503, 504 ]; } public function getApiLabel() { return [ 'statusCode' => $this->getStatusCode(), 'methodLabel' => generate_label('请求方式', $this->getMethodLabel()), 'enabledLabel' => generate_label('必填类型', ChapterApiParamLogic::instance()->getEnabledLabel()), 'typeLabel' => generate_label('字段类型', ChapterApiParamLogic::instance()->getTypeLabel()), 'locationLabel' => generate_label('参数类型', ChapterApiParamLogic::instance()->getLocationLabel()), ]; } } ================================================ FILE: app/Model/Logic/Document/ChapterApiParamLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document; use W7\App\Model\Entity\Document\ChapterApiParam; use W7\App\Model\Logic\BaseLogic; use W7\Core\Helper\Traiter\InstanceTraiter; class ChapterApiParamLogic extends BaseLogic { use InstanceTraiter; public function rawContentType() { return [ 'text/plain', 'application/json', 'application/javascript', 'application/xml', 'text/xml', 'text/html' ]; } public function getLocationLabel() { return [ ChapterApiParam::LOCATION_REQUEST_QUERY_PATH => 'Path', ChapterApiParam::LOCATION_REQUEST_HEADER => 'Header', ChapterApiParam::LOCATION_REQUEST_QUERY_STRING => 'Query', ChapterApiParam::LOCATION_REQUEST_BODY_FROM => 'Form 参数', ChapterApiParam::LOCATION_REQUEST_BODY_URLENCODED => 'Form 参数', ChapterApiParam::LOCATION_REQUEST_BODY_RAW => 'Body 参数', ChapterApiParam::LOCATION_REQUEST_BODY_BINARY => 'Binary 参数', ChapterApiParam::LOCATION_REPONSE_HEADER => 'Header', ChapterApiParam::LOCATION_REPONSE_BODY_FROM => 'Data', ChapterApiParam::LOCATION_REPONSE_BODY_URLENCODED => 'Data', ChapterApiParam::LOCATION_REPONSE_BODY_RAW => 'Data', ChapterApiParam::LOCATION_REPONSE_BODY_BINARY => 'Data', ]; } public function getEnabledLabel() { return [ ChapterApiParam::ENABLED_NO => 'false', ChapterApiParam::ENABLED_YES => 'true', ]; } public function getTypeLabel() { return [ ChapterApiParam::TYPE_STRING => 'String', ChapterApiParam::TYPE_NUMBER => 'Number', ChapterApiParam::TYPE_BOOLEAN => 'Boolean', ChapterApiParam::TYPE_OBJECT => 'Object', ChapterApiParam::TYPE_ARRAY => 'Array', ChapterApiParam::TYPE_FUNCTION => 'Function', ChapterApiParam::TYPE_REGEXP => 'RegExp', ChapterApiParam::TYPE_NULL => 'Null', ]; } } ================================================ FILE: app/Model/Logic/Document/ChapterContentLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document; use W7\App\Model\Entity\Document\ChapterContent; use W7\App\Model\Logic\BaseLogic; use W7\Core\Helper\Traiter\InstanceTraiter; class ChapterContentLogic extends BaseLogic { use InstanceTraiter; public function getLayoutLabel() { return [ ChapterContent::LAYOUT_MARKDOWM => 'MARKDOWN', ChapterContent::LAYOUT_HTTP => 'HTTP' ]; } } ================================================ FILE: app/Model/Logic/Document/MockApi/MockApiReponseLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Document\MockApi; //返回演示数据demo use W7\App\Model\Entity\Document; use W7\App\Model\Entity\Document\ChapterApiParam; use W7\App\Model\Logic\Document\ChapterApi\ChapterCommonLogic; use W7\App\Model\Logic\Document\ChapterApi\ChapterRuleLogic; use W7\App\Model\Logic\Document\ChapterApiDataLogic; use W7\Http\Message\Server\Request; class MockApiReponseLogic extends ChapterCommonLogic { public function checkRequest(Request $request, $api) { //全部数据 $data = ChapterApiParam::query()->where('chapter_id', $api->chapter_id) ->whereIn('location', [ ChapterApiParam::LOCATION_REQUEST_HEADER, ChapterApiParam::LOCATION_REQUEST_QUERY_STRING, ChapterApiParam::LOCATION_REQUEST_BODY_FROM, ChapterApiParam::LOCATION_REQUEST_BODY_URLENCODED, ChapterApiParam::LOCATION_REQUEST_BODY_RAW, ])->get(); $msg = ''; $jsonData = []; $contentType = $request->getContentType(); $contentTypeData = explode(';', $contentType); if ($contentTypeData[0] == 'application/json') { $jsonData = $request->getBodyParams(); $jsonData = json_decode($jsonData, true); } foreach ($data as $key => $val) { if ($val->enabled == ChapterApiParam::ENABLED_YES) { if ($val->location == ChapterApiParam::LOCATION_REQUEST_HEADER) { if (!$request->hasHeader($val->name)) { $msg .= 'header:' . $val->name . '必填 '; } } elseif ($val->location == ChapterApiParam::LOCATION_REQUEST_QUERY_STRING) { if ($request->query($val->name) == null) { $msg .= 'query:' . $val->name . '必填 '; } } elseif ($val->location == ChapterApiParam::LOCATION_REQUEST_BODY_RAW || $jsonData) { if (!(isset($jsonData[$val->name]) && $jsonData[$val->name])) { $msg .= 'params:' . $val->name . '必填 '; } } elseif (in_array($val->location, [ChapterApiParam::LOCATION_REQUEST_BODY_FROM, ChapterApiParam::LOCATION_REQUEST_BODY_URLENCODED])) { if ($request->post($val->name) == null) { $msg .= 'params:' . $val->name . '必填 '; } } } } return $msg; } public function mackMockApiReponse(Request $request, $id, $route) { $urlPath = $route; $ChapterApi = new Document\ChapterApi(); $Chapter = new Document\Chapter(); $api = Document\Chapter::query() ->where('document_id', $id) ->leftJoin($ChapterApi->getTable(), 'chapter_id', '=', $Chapter->getTable() . '.id') ->whereIn('url', [$urlPath, '/' . $urlPath]) ->select([$ChapterApi->getTable() . '.*']) ->first(); $methodLabel = $ChapterApi->methodLabel(); if ($api && $api->method) { if (isset($methodLabel[$api->method])) { if ($methodLabel[$api->method] == $request->getMethod()) { //验证参数 $checkMsg = $this->checkRequest($request, $api); if ($checkMsg) { return ['code' => 422, 'msg' => $checkMsg]; } //获取rule参数样例 // $reponseId = 0; // $ChapterApiReponse = Document\ChapterApiReponse::query()->where('chapter_id', $api->chapter_id)->get()->toArray(); // if (count($ChapterApiReponse)) { // $reponseIds = array_column($ChapterApiReponse, 'id'); // $reponseId = $reponseIds[rand(0, count($reponseIds) - 1)]; // } // // $chapterDemoLogic = new ChapterRuleLogic($api->chapter_id); // $result = $chapterDemoLogic->getChapterRuleMock($reponseId); //更新 mock 服务接口 $result = []; $ChapterApiReponse = ChapterApiDataLogic::instance()->getRandomChapterApiData($api->chapter_id); if ($ChapterApiReponse->respond ){ parse_str(urldecode($ChapterApiReponse->respond),$data); $result = $data; if ( $this->isJson($ChapterApiReponse->respond)){ $result = json_decode($ChapterApiReponse->respond,true); } } if (isset($result['__root__']) && $result['__root__']) { if ($this->is_assoc($result['__root__'])) { $result = [$result['__root__']]; } else { $result = $result['__root__']; } } return $result; } else { return ['code' => 401, 'msg' => '请求类型错误']; } } else { return ['code' => 402, 'msg' => '不支持当前请求类型:' . $request->getMethod()]; } } return ['code' => 400, 'msg' => '请求地址不存在']; } } ================================================ FILE: app/Model/Logic/DocumentFeedbackLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\DocumentFeedback; use W7\Core\Helper\Traiter\InstanceTraiter; class DocumentFeedbackLogic extends BaseLogic { use InstanceTraiter; public function getByFeedbackDetail($id,$did) { $id = intval($id); if (empty($id)) { return []; } return DocumentFeedback::query()->where('id',$id)->where('document_id',$did)->first(); } //更改反馈建议查看状态 public function setByFeedbackStatus($id,$did){ return DocumentFeedback::query()->where('id',$id)->where('document_id',$did)->update(['status'=>1]); } //查看是否有新的数据未读 public function getByFeedbackNew($document_id) { return DocumentFeedback::query()->where('document_id',$document_id)->where('status', 0)->orderByDesc('created_at')->first(); } } ================================================ FILE: app/Model/Logic/DocumentHomeLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Exception\ErrorHttpException; use W7\App\Model\Entity\Document; use W7\App\Model\Entity\DocumentHome; use W7\Core\Helper\Traiter\InstanceTraiter; class DocumentHomeLogic extends BaseLogic { use InstanceTraiter; /** * 获取分类 * @return string[] */ public function getTypeData(){ $model = new DocumentHome(); $data = []; foreach ($model->typeName as $key=>$val){ $data[] = ['label'=>$val,'val'=>$key]; } return array_values($data); } /** * 添加 首页文档设置 * @param $params * @return \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model */ public function addHomeData($params){ //公告只允许添加一个 if ($params['type'] == 1){ $checkCount = DocumentHome::query()->where('type','=',$params['type'])->count('id'); if ($checkCount >= 1){ throw new ErrorHttpException('公告只允许添加一条'); } } //检测是否为空文档 $checkDocument = $this->getByChapter(intval($params['document_id'])); if (!$checkDocument){ throw new ErrorHttpException('请勿选择空文档'); } return DocumentHome::query()->create($params); } /** * 编辑首页文档设置 * @param $id * @param $params * @return int */ public function editHomeData($params){ //检测是否为空文档 $checkDocument = $this->getByChapter(intval($params['document_id'])); if (!$checkDocument){ throw new ErrorHttpException('请勿选择空文档'); } return DocumentHome::query()->where('id','=',intval($params['id']))->update($params); } /** * 删除文档数据 * @param $id */ public function delHomeData($id){ $check = DocumentHome::query()->where('id','=',$id)->first(); if (!$check){ throw new ErrorHttpException('数据不存在'); } return DocumentHome::query()->where('id','=',$id)->delete(); } /** * 获取详情 * @param $id */ public function getByHomeData($id){ $id = intval($id); if (empty($id)) { return []; } $result = DocumentHome::query()->with('document')->with('user')->where('id','=',$id)->first(); $data = []; if ($result){ $data = [ 'id' => $result->id, 'user_id' =>$result->user_id, 'user' => $result->user->username, 'type' => $result->type, 'type_name' => $result->type_name, 'document_id' => $result->document_id, 'document_name' => $result->document->name, 'url' => $result->url, 'description' => $result->description, 'sort' => $result->sort, 'created_at' => $result->created_at->toDateTimeString() ]; } return $data; } /** * 获取列表数据 * @param $type * @param $page * @param $pageSize * @return array */ public function getListData($type,$page,$pageSize){ $query = DocumentHome::query()->with('document')->with('user'); if (isset($type) && $type > 0 ){ $query = $query->where('type','=',$type); } $query = $query->orderBy('sort','asc'); $list = $query->paginate($pageSize, ['id','user_id','document_id','type','sort','logo','url','description','created_at'], 'page', $page); foreach ($list->items() as $i => $row) { //获取文档第一个章节数据 $chapter = $this->getByChapter(intval($row['document_id'])); $result['data'][] = [ 'id' => $row->id, 'user_id' => $row->user_id, 'user' => $row->user->username, 'document_id' => $row->document_id, 'document_name' => $row->document->name, 'first_chapter_id' => $chapter ? $chapter['chapter_id'] : 0, 'first_chapter_name' => $chapter ? $chapter['chapter_name'] : '', 'logo' => $row->logo, 'url' => $row->url, 'description' => $row->description, 'sort' => $row->sort, 'type' => $row->type, 'type_name' => $row->type_name, 'created_at' => $row->created_at->toDateTimeString() ]; } $result['page_count'] = $list->lastPage(); $result['total'] = $list->total(); $result['page_current'] = $list->currentPage(); return $result; } /** * 模糊查询 文档名称 * @param $name * @param $isPublic * @return array */ public function queryDocument($name,$isPublic){ $query = Document::query(); if (!empty($name)){ $query->where('name', 'LIKE', "%{$name}%"); } if (!empty($isPublic)){ $query->where('is_public', '=', $isPublic); } $list = $query->orderByDesc('created_at')->limit(10)->get(); $result = []; if (!empty($list->toArray())){ foreach ($list->toArray() as $i => $row) { $result[] = [ 'document_id' => $row['id'], 'name' => $row['name'], ]; } } return $result; } /** * 获取前端 首页公告数据 */ public function getDocumentNotice(){ $notice = DocumentHome::query()->select('id','type','document_id')->where('type','=',1)->first(); $data = []; if ($notice){ //项目信息 $document = DocumentLogic::instance()->getById($notice->document_id); $data['document_id'] = $notice->document_id; $data['document_name'] = $document->name; //章节信息 $chapter = Document\Chapter::query() ->select('id', 'name', 'sort', 'parent_id', 'is_dir', 'document_id','created_at') ->where('document_id', $notice->document_id) ->where('is_dir','<>',Document\Chapter::IS_DIR) ->orderByDesc('created_at')->limit(8)->get()->toArray(); foreach ($chapter as $key => $item){ $data['chapter'][$key]['chapter_id'] = $item['id']; $data['chapter'][$key]['chapter_name'] = $item['name']; $data['chapter'][$key]['created_at'] = date('Y.n.d',$item['created_at']); } } return $data; } /** * 获取前端 类型一数据 */ public function getDocumentTypeI(){ //获取类型一数据 $typeList = DocumentHome::query() ->select('id','type','sort','document_id','logo','description','created_at') ->where('type','=',2) ->orderBy('sort','asc') ->orderByDesc('created_at') ->get()->toArray(); $data = []; if ($typeList){ foreach ($typeList as $key=>$item){ $document = DocumentLogic::instance()->getById($item['document_id']); $data[$key]['document_id'] = $item['document_id']; $data[$key]['document_name'] = $document->name; //获取文档第一个章节数据 $chapter = $this->getByChapter(intval($item['document_id'])); $data[$key]['first_chapter_id'] = $chapter ? $chapter['chapter_id'] : 0; $data[$key]['first_chapter_name'] = $chapter ? $chapter['chapter_name'] : ''; $data[$key]['logo'] = $item['logo']; $data[$key]['description'] = $item['description']; $data[$key]['created_at'] = date('Y-m-d H:i:s',$item['created_at']); } } return $data; } /** * 获取前端 类型二数据 */ public function getDocumentTypeII(){ //获取类型二数据 $typeList = DocumentHome::query() ->select('id','type','sort','document_id','created_at') ->where('type','=',3) ->orderBy('sort','asc') ->orderByDesc('created_at') ->get()->toArray(); $data = []; if ($typeList){ foreach ($typeList as $key=>$item){ $document = DocumentLogic::instance()->getById($item['document_id']); $data[$key]['document_id'] = $item['document_id']; $data[$key]['document_name'] = $document->name; //获取章节数据 $data[$key]['chapter'] = $this->getByChapterList($item['document_id']); } } return $data; } /** *前端 搜索文档 * @param $keyword */ public function searchDocument($keyword,$page,$pageSize,$isPublic = 1){ $query = Document::query(); if (!empty($keyword)){ $query->where('name', 'LIKE', "%{$keyword}%"); } if (!empty($isPublic)){ $query->where('is_public', '=', $isPublic); } $list = $query->select('id','name','cover','is_public') ->orderByDesc('created_at') ->paginate($pageSize, '*', 'page', $page)->toArray(); //数据处理 if (is_array($list['data']) && $list['data']){ foreach ($list['data'] as $key => &$item){ $data = $this->getByChapter($item['id']); $item['chapter_id'] = !empty($data)? $data['chapter_id'] : 0; $item['chapter_name'] = !empty($data)? $data['chapter_name'] : ''; $item['chapter_content'] = !empty($data)? mb_strimwidth(trim($data['chapter_content']), 0, 266, '...','utf-8') : ''; $item['nav'] = $this->buildNavigationSun($item['chapter_id']); } } return $list; } /** * 面包屑导航 * @param $chapterId * @param string $str * @param int $i * @return \Illuminate\Database\Eloquent\HigherOrderBuilderProxy|\Illuminate\Support\HigherOrderCollectionProxy|mixed|string */ public function buildNavigationSun($chapterId, $str = '', $i = 0) { $i++; if ($i > 50) { //循环大于100,不再处理 return $str; } $chapter = Document\Chapter::query()->find($chapterId); if ($chapter) { if (!$str) { //如果是根级 $str = $chapter->name; } else { //如果是上级 $str = $chapter->name . '>' . $str; } if ($chapter->parent_id) { $str = $this->buildNavigationSun($chapter->parent_id, $str); } } return $str; } /** * 获取文档章节 内容 * @param $documentId * @return array */ private function getByChapter($documentId) { $chapter = Document\Chapter::query() ->select('id', 'name', 'sort', 'parent_id', 'is_dir', 'default_show_chapter_id') ->where('document_id', $documentId) ->orderBy('parent_id', 'asc') ->orderBy('sort', 'asc')->first(); $data = []; if ($chapter){ if ($chapter->is_dir == Document\Chapter::IS_DIR){ return $this->getByChapterChildren($chapter->id); }else{ $content = Document\ChapterContent::query()->where('chapter_id','=',$chapter->id)->first(); $data['chapter_id'] = $chapter->id; $data['chapter_name'] = $chapter->name; $data['chapter_content'] = $content->content ? : ''; } } return $data; } /** * 递归查找 文档章节内容 * @param $chapterId */ private function getByChapterChildren($chapterId){ $chapter = Document\Chapter::query() ->select('id', 'name', 'sort', 'parent_id', 'is_dir', 'default_show_chapter_id') ->where('parent_id', $chapterId) ->orderBy('sort', 'asc')->first(); $data = []; if ($chapter){ if ($chapter->is_dir == Document\Chapter::IS_DIR){ return $this->getByChapterChildren($chapter->id); }else{ $content = Document\ChapterContent::query()->where('chapter_id','=',$chapter->id)->first(); $data['chapter_id'] = $chapter->id; $data['chapter_name'] = $chapter->name; $data['chapter_content'] = $content->content ? $content->content : ''; } } return $data; } /** * 获取章节数据列表 * @param $documentId * @return array */ public function getByChapterList($documentId){ //获取章章节目录 $chapter = ChapterLogic::instance()->getCatalog($documentId); $data = []; if ($chapter){ $k = 0; foreach ($chapter as $key => $item){ if ($item['is_dir'] && $item['children']){ $this->getByChapterChildrenList($data,$item['children'],$k); }else{ $data[$k]['chapter_id'] = $item['id']; $data[$k]['chapter_name'] = $item['name']; } ++$k; } } return $data ? array_splice($data,0,5) : $data; } /** * 获取章节目录 列表 * @param $data * @param $children * @param $k */ private function getByChapterChildrenList(&$data,$children,&$k){ foreach ($children as $key => $item){ if ($item['is_dir'] && $item['children']){ $this->getByChapterChildrenList($data,$item['children'],$k); }else{ $data[$k]['chapter_id'] = $item['id']; $data[$k]['chapter_name'] = $item['name']; } ++$k; } } } ================================================ FILE: app/Model/Logic/DocumentLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\Document; use W7\App\Model\Entity\DocumentPermission; use W7\Core\Helper\Traiter\InstanceTraiter; class DocumentLogic extends BaseLogic { use InstanceTraiter; public function getById($id) { $id = intval($id); if (empty($id)) { return []; } return Document::query()->find($id); } public function deleteByDocument(Document $document) { if (!$document->delete()) { throw new \RuntimeException('文档删除失败,请重试'); } //删除权限 DocumentPermissionLogic::instance()->clearByDocId($document->id); //删除星标 StarLogic::instance()->clearByDocumentId($document->id); //删除章节及文章 ChapterLogic::instance()->deleteByDocumentId($document->id); //删除操作记录 UserOperateLogic::instance()->clearByDocId($document->id); return true; } public function createCreatorPermission(Document $document) { DocumentPermission::query()->create([ 'document_id' => $document->id, 'user_id' => $document->creator_id, 'permission' => DocumentPermission::MANAGER_PERMISSION, ]); return true; } public function getDocByCreatorId($id) { return Document::query()->where('creator_id', $id)->first(); } } ================================================ FILE: app/Model/Logic/DocumentPermissionLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\Document; use W7\App\Model\Entity\DocumentPermission; use W7\Core\Helper\Traiter\InstanceTraiter; class DocumentPermissionLogic extends BaseLogic { use InstanceTraiter; public function getRoleList() { return (new DocumentPermission())->roleList; } public function add($documentId, $userId, $permission) { if (!Document::query()->find($documentId)) { throw new \RuntimeException('该文档不存在'); } $documentPermission = new DocumentPermission(); $documentPermission->user_id = $userId; $documentPermission->document_id = $documentId; $documentPermission->permission = $permission; if (!$documentPermission->save()) { throw new \RuntimeException('文档权限添加失败'); } return true; } public function updateByDocIdAndUid($documentId, $userId, $permission) { if (!Document::query()->find($documentId)) { throw new \RuntimeException('该文档不存在'); } //如果permission为空,删除对应权限 $documentPermission = $this->getByDocIdAndUid($documentId, $userId); if (!$permission) { $documentPermission && $documentPermission->delete(); return $documentPermission; } if (!$documentPermission) { $documentPermission = new DocumentPermission(); } $documentPermission->user_id = $userId; $documentPermission->document_id = $documentId; $documentPermission->permission = $permission; if (!$documentPermission->save()) { throw new \RuntimeException('文档权限变更失败'); } return $documentPermission; } public function getByDocIdAndUid($documentId, $userId) { return DocumentPermission::query()->where('document_id', '=', $documentId)->where('user_id', '=', $userId)->first(); } public function getByDocIdAndPermission($documentId, $permission) { return DocumentPermission::query()->where('document_id', '=', $documentId)->where('permission', '=', $permission)->first(); } /** * 删除文档后,删除对应的权限 * @param $documentId * @return bool */ public function clearByDocId($documentId) { return DocumentPermission::query()->where('document_id', '=', $documentId)->delete(); } /** * 删除用户后,删除对应的权限 * @param $userId * @return bool */ public function clearByUid($userId) { return DocumentPermission::query()->where('user_id', '=', $userId)->delete(); } public function getFounderACL() { return [ 'name' => '创始人', 'has_manage' => true, 'has_edit' => true, 'has_delete' => true, 'has_read' => true, ]; } } ================================================ FILE: app/Model/Logic/DocumentSearchLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\DocumentSearch; use W7\Core\Helper\Traiter\InstanceTraiter; class DocumentSearchLogic extends BaseLogic { use InstanceTraiter; //记录搜索热词 public function addSearchHotWord($word){ $word = trim($word); if ($word){ $word = htmlspecialchars($word,ENT_QUOTES); DocumentSearch::query()->create([ 'search_word' => $word ]); } } //获取搜索热词列表 public function getSearchHotList($limit=20){ $result = DocumentSearch::query()->selectRaw("search_word,count(*) as count") ->groupBy('search_word') ->orderBy('count','desc') ->limit($limit)->get()->toArray(); $result = array_column($result,'search_word'); return $result; } } ================================================ FILE: app/Model/Logic/HomepageSettingLogic.php ================================================ $this->getOpenHome(), 'banner' => $this->getHomeBanner(), 'title' => $this->getHomeTitle() ]; } /** * 设置是否开启首页 * @param array $config */ public function setOpenHome( array $config){ $setting['is_open'] = intval($config['is_open']); $setting['url'] = $config['url']; SettingLogic::instance()->save(self::HOME_OPEN_KEY,$setting); } /** * 设置首页 banner * @param array $images */ public function setHomeBanner(array $images){ SettingLogic::instance()->save(self::HOME_BANNER_KEY,$images); } /** * 设置首页名称 * @param String $name */ public function setHomeTitle($name){ SettingLogic::instance()->save(self::HOME_TITLE_KEY,$name); } /** * 获取首页是否开启配置 */ public function getOpenHome() { $setting = SettingLogic::instance()->getByKey(self::HOME_OPEN_KEY); if (!$setting){ return ['open_home' => 0,'url'=>base_url()]; } return $setting->setting; } /** * 获取首页 banner 图 */ public function getHomeBanner(){ $setting = SettingLogic::instance()->getByKey(self::HOME_BANNER_KEY); if (!$setting){ return []; } return $setting->setting; } /** * 获取首页名称 */ public function getHomeTitle(){ $setting = SettingLogic::instance()->getByKey(self::HOME_TITLE_KEY); if (!$setting){ return ''; } return $setting->setting; } } ================================================ FILE: app/Model/Logic/Install/InstallLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic\Install; use W7\App\Exception\InternalException; use W7\App\Model\Logic\UserLogic; class InstallLogic { public function install($config) { if (ienv('DATABASE_DEFAULT_DATABASE')) { //已安装已重启 throw new InternalException('文档系统已经安装,如果需要重新安装请手动删除 配置 文件'); } try { // 是否已安装 $lockFile = RUNTIME_PATH . '/install.lock'; if (file_exists($lockFile)) { throw new InternalException('文档系统已经安装,如果需要重新安装请手动删除 runtime/install.lock 文件'); } // 版本检查 $this->checkExtension(); if($config['cache_driver']== 'redis'){ //如果缓存是redis服务进行校验,否则不校验 try { $redis = new \Redis(); $connect = $redis->connect($config['cache_host'], $config['cache_port'], 15); if (!$connect) { throw new InternalException('redis链接失败'); } } catch (\Throwable $exception) { throw new InternalException('redis链接失败:' . $exception->getMessage()); } } //仅做验证,不进行安装操作 if ($config['option'] == 'check') { //验证数据库 try { $connect = new \PDO("mysql:host={$config['db_host']};port={$config['db_port']};charset=utf8", $config['db_username'], $config['db_password']); if (!$connect) { throw new InternalException('数据库链接失败'); } $connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $statement = $connect->query("SHOW DATABASES LIKE '{$config['db_database']}';"); $hasDb = $statement->fetch(); if ($hasDb) { throw new InternalException('数据库已存在'); } } catch (\Throwable $exception) { throw new InternalException($exception->getMessage()); } return '验证通过'; } // 生成配置文件 $this->generateConfig($config); // 初始化数据库 $this->initDatabase($config); // 生成lock文件 file_put_contents($lockFile, 'success'); return '安装已完成!提示:配置文件重启后生效,请按照文档配置,重启相关服务'; } catch (\Exception $e) { throw new InternalException($e->getMessage()); } } private function initDatabase($config) { // 创建数据库 try { $connect = new \PDO("mysql:host={$config['db_host']};port={$config['db_port']};charset=utf8", $config['db_username'], $config['db_password']); $connect->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); $sql = "CREATE DATABASE IF NOT EXISTS {$config['db_database']} DEFAULT CHARSET utf8 COLLATE utf8_general_ci;"; $connect->exec($sql); $statement = $connect->query("SHOW DATABASES LIKE '{$config['db_database']}';"); if (empty($statement->fetch())) { throw new InternalException('创建数据库失败!'); } $connect->exec("USE {$config['db_database']};"); $statement = $connect->query("SHOW TABLES LIKE '{$config['db_prefix']}%';"); if (!empty($statement->fetch())) { throw new InternalException('您的数据库不为空,请重新建立数据库或清空该数据库或更改表前缀!'); } // 导入数据 $importSql = file_get_contents(BASE_PATH . '/install/document.sql'); $importSql = str_replace('ims_', $config['db_prefix'], $importSql); $connect->exec($importSql); $connect = null; // 创建系统管理员账号 $this->createAdmin($config); return true; } catch (\PDOException $e) { throw new InternalException($e->getMessage()); } } private function createAdmin($config) { try { $connect = new \PDO("mysql:host={$config['db_host']};port={$config['db_port']};dbname={$config['db_database']};charset=utf8mb4", $config['db_username'], $config['db_password']); $username = $config['admin_username']; $password = UserLogic::instance()->userPwdEncryption($username, $config['admin_password']); $userTable = $config['db_prefix'] . 'user'; $adminInsert = [ 'username' => $username, 'userpass' => $password, 'is_ban' => 0, 'remark' => '超管', 'group_id' => 1, 'created_at' => time(), 'updated_at' => time(), ]; $sql = "INSERT INTO `{$userTable}` (`" . implode('`,`', array_keys($adminInsert)) . "`) VALUE ('" . implode("','", $adminInsert) . "')"; $connect->exec($sql); $statement = $connect->query("SELECT * FROM {$userTable} WHERE username = '{$username}'"); if (empty($statement->fetch())) { throw new InternalException('创建系统管理员失败!'); } $connect = null; } catch (\PDOException $e) { throw new InternalException($e->getMessage()); } } private function generateConfig($config) { $env = file_get_contents(BASE_PATH . '/install/.env.template'); $env = str_replace('{{API_HOST}}', $config['api_host'], $env); // server $env = str_replace('{{SERVER_HTTP_PORT}}', $config['server_port'], $env); // db $env = str_replace('{{DATABASE_DEFAULT_DATABASE}}', $config['db_database'], $env); $env = str_replace('{{DATABASE_DEFAULT_HOST}}', $config['db_host'], $env); $env = str_replace('{{DATABASE_DEFAULT_PORT}}', $config['db_port'], $env); $env = str_replace('{{DATABASE_DEFAULT_USERNAME}}', $config['db_username'], $env); $env = str_replace('{{DATABASE_DEFAULT_PASSWORD}}', $config['db_password'], $env); $env = str_replace('{{DATABASE_DEFAULT_PREFIX}}', $config['db_prefix'], $env); // cache $env = str_replace('{{CACHE_DEFAULT_DRIVER}}', $config['cache_driver'], $env); if ($config['cache_driver'] == 'redis') { $env = str_replace('{{CACHE_DEFAULT_HOST}}', $config['cache_host'] ?? '', $env); $env = str_replace('{{CACHE_DEFAULT_PORT}}', $config['cache_port'] ?? '', $env); $env = str_replace('{{CACHE_DEFAULT_PASSWORD}}', '', $env); } else { $env = str_replace('{{CACHE_DEFAULT_HOST}}', '127.0.0.1', $env); $env = str_replace('{{CACHE_DEFAULT_PORT}}', '6379', $env); $env = str_replace('{{CACHE_DEFAULT_PASSWORD}}', '', $env); } if (file_put_contents(BASE_PATH . '/.env', $env) === false) { throw new InternalException('配置文件写入失败!'); } } private function checkExtension() { if (version_compare(PHP_VERSION, '7.2.0', '<')) { throw new InternalException('PHP 版本必须>= 7.2.0'); } $extension = ['pdo_mysql', 'mbstring', 'swoole']; foreach ($extension as $ext) { if (!extension_loaded($ext)) { throw new InternalException($ext . ' 扩展未安装'); } } if (version_compare(swoole_version(), '4.3.0', '<')) { throw new InternalException('swoole 版本必须>= 4.3.0'); } if (is_writable(BASE_PATH) === false) { throw new InternalException('请保证' . BASE_PATH . '目录有写权限!'); } if (is_writable(RUNTIME_PATH) === false) { throw new InternalException('请保证' . RUNTIME_PATH . '目录有写权限!'); } if (!file_exists(BASE_PATH . '/composer.json')) { throw new InternalException('请先执行 composer install --no-dev 安装扩展包'); } return true; } } ================================================ FILE: app/Model/Logic/MenuSettingLogic.php ================================================ getMenuSetting(); $data = $setting['list'] ?? []; foreach ($data as $index => &$item) { $item['id'] = $index; } return array_values($data); } public function getMenuSetting() { $setting = SettingLogic::instance()->getByKey(self::MENU_SETTING_KEY); if (!$setting) { return ['theme' => "white"]; } return $setting->setting; } public function add(array $config) { $setting = $this->getMenuSetting(); $setting['list'] = $setting['list'] ?? []; $maxId = !empty($setting['list']) ? max(array_keys($setting['list'])) + 1 : 1; $setting['list'][$maxId] = $config; SettingLogic::instance()->save(self::MENU_SETTING_KEY, $setting); } public function getById($id) { $setting = $this->getMenuSetting(); return $setting['list'][$id] ?? []; } public function updateById($id, array $config) { $setting = $this->getMenuSetting(); if (empty($setting['list'][$id])) { throw new \RuntimeException('该菜单不存在'); } $setting['list'][$id] = $config; SettingLogic::instance()->save(self::MENU_SETTING_KEY, $setting); } public function deleteById($id) { $setting = $this->getMenuSetting(); if (!empty($setting['list'][$id])) { unset($setting['list'][$id]); SettingLogic::instance()->save(self::MENU_SETTING_KEY, $setting); } return true; } public function setTheme($theme) { $setting = $this->getMenuSetting(); $setting['theme'] = $theme; SettingLogic::instance()->save(self::MENU_SETTING_KEY, $setting); } public function getTheme() { $setting = $this->getMenuSetting(); return $setting['theme'] ?? ''; } } ================================================ FILE: app/Model/Logic/OauthLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\UserThirdParty; use W7\Core\Helper\Traiter\InstanceTraiter; class OauthLogic extends BaseLogic { use InstanceTraiter; public function getThirdPartyUserByUsernameUid($uid, $username) { return UserThirdParty::query()->where([ 'openid' => $uid, 'username' => $username, ])->first(); } } ================================================ FILE: app/Model/Logic/SettingLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\Setting; use W7\Core\Helper\Traiter\InstanceTraiter; class SettingLogic extends BaseLogic { use InstanceTraiter; const KEY_COS = 'cloud_cosv5'; const KEY_THIRD_PARTY_LOGIN = 'third_party_login'; const KEY_FORBID_WORDS = 'forbid_words'; public function getByKey($key, $hide = 1) { $row = Setting::query()->where('key', $key)->first(); if ($hide) { $row = $this->showHide($key, $row); } return $row; } public function showHide($key, $data) { if ($key == SettingLogic::KEY_COS) { $value = $data->setting; $value['app_id'] = $data->setting['app_id'] ? substr($data->setting['app_id'], 0, 3) . '***' . substr($data->setting['app_id'], -3, 3) : ''; $value['secret_id'] = $data->setting['secret_id'] ? substr($data->setting['secret_id'], 0, 3) . '***' . substr($data->setting['secret_id'], -3, 3) : ''; $value['secret_key'] = $data->setting['secret_key'] ? substr($data->setting['secret_key'], 0, 3) . '***' . substr($data->setting['secret_key'], -3, 3) : ''; $value['url'] = $data->setting['url'] ? substr($data->setting['url'], 0, 3) . '***' . substr($data->setting['url'], -3, 3) : ''; $data->value = json_encode($value); $data->setting = $value; } elseif ($key == SettingLogic::KEY_THIRD_PARTY_LOGIN) { $value = $data->setting; if (!empty($value['channel']) && $value['channel']) { foreach ($value['channel'] as $key => $val) { $value['channel'][$key]['setting']['app_id'] = $val['setting']['app_id'] ? substr($val['setting']['app_id'], 0, 3) . '***' . substr($val['setting']['app_id'], -3, 3) : ''; $value['channel'][$key]['setting']['secret_key'] = $val['setting']['secret_key'] ? substr($val['setting']['secret_key'], 0, 3) . '***' . substr($val['setting']['secret_key'], -3, 3) : ''; $value['channel'][$key]['setting']['access_token_url'] = $val['setting']['access_token_url'] ? substr($val['setting']['access_token_url'], 0, 3) . '***' . substr($val['setting']['access_token_url'], -3, 3) : ''; $value['channel'][$key]['setting']['user_info_url'] = $val['setting']['user_info_url'] ? substr($val['setting']['user_info_url'], 0, 3) . '***' . substr($val['setting']['user_info_url'], -3, 3) : ''; } } $data->value = json_encode($value); $data->setting = $value; } return $data; } public function save($key, $data) { $data = json_encode($data); $setting = $this->getByKey($key, 0); if (empty($setting)) { Setting::query()->create([ 'key' => $key, 'value' => $data ]); } else { $setting->value = $data; $setting->save(); } return true; } } ================================================ FILE: app/Model/Logic/StarLogic.php ================================================ where('document_id', '=', $documentId)->delete(); } public function clearByUid($userId) { Star::query()->where('user_id', '=', $userId)->delete(); } public function clearByChapterId($chapterId) { Star::query()->where('chapter_id', '=', $chapterId)->delete(); } } ================================================ FILE: app/Model/Logic/ThirdPartyLoginLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\Core\Helper\Traiter\InstanceTraiter; class ThirdPartyLoginLogic extends BaseLogic { use InstanceTraiter; const THIRD_PARTY_LOGIN_SETTING_KEY = 'third_party_login'; public function __construct() { $setting = $this->getThirdPartyLoginSetting(); if (empty($setting['channel'])) { //qq,微信为默认项 $setting['channel'] = [ '1' => [ 'is_default' => true, 'setting' => [ 'name' => 'QQ', 'logo' => 'http://cdn.w7.cc/web/resource/images/wechat/qqlogin.png' ], 'convert' => [ 'uid' => 'openid', 'username' => 'nickname' ] ], '2' => [ 'is_default' => true, 'setting' => [ 'name' => '微信', 'logo' => 'http://cdn.w7.cc/web/resource/images/wechat/wxlogin.png' ], 'convert' => [ 'uid' => 'openid', 'username' => 'nickname' ] ] ]; SettingLogic::instance()->save(self::THIRD_PARTY_LOGIN_SETTING_KEY, $setting); } } public function getThirdPartyLoginSetting($hide = 0) { $setting = SettingLogic::instance()->getByKey(self::THIRD_PARTY_LOGIN_SETTING_KEY, $hide); if (!$setting) { return []; } return $setting->setting; } public function getThirdPartyLoginChannelById($id, $hide = 0) { $setting = $this->getThirdPartyLoginSetting($hide); $setting = $setting['channel'][$id] ?? []; if ($setting) { //判断是不是默认支持的 $setting['is_default'] = $setting['is_default'] ?? false; } return $setting; } public function deleteThirdPartyLoginChannelById($id) { $setting = $this->getThirdPartyLoginSetting(); if (!empty($setting['channel'][$id])) { $loginSetting = $this->getDefaultLoginSetting(); if (!empty($loginSetting['default_login_channel']) && $loginSetting['default_login_channel'] == $id) { $loginSetting['default_login_channel'] = ''; $loginSetting['is_need_bind'] = ''; $this->setDefaultLoginSetting($loginSetting); } unset($setting['channel'][$id]); SettingLogic::instance()->save(self::THIRD_PARTY_LOGIN_SETTING_KEY, $setting); } return true; } public function addThirdPartyLoginChannel(array $config) { $setting = $this->getThirdPartyLoginSetting(); $maxId = max(array_keys($setting['channel'])) + 1; $setting['channel'][$maxId] = $config; SettingLogic::instance()->save(self::THIRD_PARTY_LOGIN_SETTING_KEY, $setting); } public function updateThirdPartyLoginChannelById($id, array $config) { $setting = $this->getThirdPartyLoginSetting(); if (empty($setting['channel'][$id])) { throw new \RuntimeException('该授权方式不存在'); } if (empty($config['convert'])) { $config['convert'] = $setting['channel'][$id]['convert']; } $config['is_default'] = $setting['channel'][$id]['is_default'] ?? false; $setting['channel'][$id] = $config; SettingLogic::instance()->save(self::THIRD_PARTY_LOGIN_SETTING_KEY, $setting); if (empty($config['setting']['enable'])) { $loginSetting = $this->getDefaultLoginSetting(); if (!empty($loginSetting['default_login_channel']) && $loginSetting['default_login_channel'] == $id) { $loginSetting['default_login_channel'] = ''; $this->setDefaultLoginSetting($loginSetting); } } } public function setDefaultLoginSetting(array $data) { $setting = $this->getThirdPartyLoginSetting(); $setting['default_login_setting'] = $data; SettingLogic::instance()->save(self::THIRD_PARTY_LOGIN_SETTING_KEY, $setting); } public function getDefaultLoginSetting() { $setting = $this->getThirdPartyLoginSetting(); return $setting['default_login_setting'] ?? []; } } ================================================ FILE: app/Model/Logic/UserLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Logic; use W7\App\Model\Entity\User; use W7\Core\Helper\Traiter\InstanceTraiter; class UserLogic extends BaseLogic { use InstanceTraiter; const USER_LOGOUT_AFTER_CHANGE_PWD = 'user:logout:after:change:pwd:id:%s'; /** * 根据用户名获取用户 * @param $username * @return array|\Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Eloquent\Model|null|object */ public function getByUserName($username) { return User::query()->where('username', $username)->first(); } public function getByUid($uid) { return User::query()->where('id', $uid)->first(); } public function createUser($data) { $user = $this->getByUserName($data['username']); if ($user) { throw new \RuntimeException('用户名已经存在'); } $data['userpass'] = $this->userPwdEncryption($data['username'], $data['userpass']); $user = User::query()->create($data); if (!$user) { throw new \RuntimeException('用户添加失败'); } return $user->id; } public function createBucket($username, $avatar = '') { $user = $this->getByUserName($username); if ($user) { return $user->id; } $user = User::query()->create([ 'username' => $username, 'userpass' => '', 'remark' => '', 'is_ban' => 0, 'group_id' => 0, 'avatar' => $avatar ]); if (!$user) { throw new \RuntimeException('用户添加失败'); } return $user->id; } public function updateUser($userInfo) { $user = isset($userInfo['id']) ? $this->getByUid($userInfo['id']) : $this->getByUserName($userInfo['username']); if ($user && $userInfo['id'] != $user->id) { throw new \RuntimeException('用户名已经存在'); } if (!empty($userInfo['userpass'])) { $userInfo['userpass'] = $this->userPwdEncryption($userInfo['username'], $userInfo['userpass']); //修改完密码后强制退出 icache()->delete(sprintf(self::USER_LOGOUT_AFTER_CHANGE_PWD, $userInfo['id'])); } $result = User::query()->where('id', $userInfo['id'])->update($userInfo); if (!$result) { throw new \RuntimeException('修改用户信息失败'); } return $result; } public function deleteByIds(array $ids) { $docLogic = new DocumentLogic(); $delNum = 0; foreach ($ids as $k => $val) { $res = $docLogic->getDocByCreatorId($val); if (!$res) { /** * @var User $user */ $user = $this->getByUid($val); if ($user && !$user->isFounder) { if (User::destroy($val)) { DocumentPermissionLogic::instance()->clearByUid($val); StarLogic::instance()->clearByUid($val); UserOperateLogic::instance()->clearByUid($val); $delNum++; } } } } return $delNum; } public function userPwdEncryption($username, $userpass) { return md5(md5($username.$userpass)); } } ================================================ FILE: app/Model/Logic/UserOperateLogic.php ================================================ where('chapter_id', '=', $chapterId)->where('operate', '=', $operate)->first(); } public function clearByUid($userId) { return UserOperateLog::query()->where('user_id', '=', $userId)->delete(); } public function clearByDocId($documentId) { return UserOperateLog::query()->where('document_id', '=', $documentId)->delete(); } public function lists($where = [], $page = 1, $size = 20, $hasCreateChapter = false){ $query = UserOperateLog::query() ->with(['user','document','document.user'=>function($query){ $query->select(['id','username','avatar']); }]); if (!empty($where['user_id'])) $query->where('user_id',$where['user_id']); if (!empty($where['operate'])) { (!$hasCreateChapter && in_array(UserOperateLog::CREATE, $where['operate'])) ? $query->where(function ($query) use($where){ $query->where(function($query){ $query->where('operate',UserOperateLog::CREATE)->where('chapter_id',0); })->orWhere(function ($query) use($where){ $query->whereIn('operate',array_diff($where['operate'],[UserOperateLog::CREATE])); }); }) : $query->whereIn('operate',$where['operate']); } return $query->orderBy('id','desc')->paginate($size,['*'],'',$page); } } ================================================ FILE: app/Model/Logic/UserShareLogic.php ================================================ key = $key; } /** * Initialize * * @param array $params Configuration parameters * @return CI_Encryption */ public function initialize($params) { if (!empty($params) && is_array($params)) { foreach ($params as $key => $val) { $this->$key = $val; } } } /** * Encrypt * * @param string $data Input data * @return string */ public function encrypt($data) { $endata = openssl_encrypt($data, $this->cipher, $this->key, OPENSSL_RAW_DATA); return bin2hex($endata); } /** * Decrypt * * @param string $data Encrypted data * @return string */ public function decrypt($data) { if(!ctype_alnum($data)){ return false; } if(strlen($data)%2!=0){ return false; } $encrypted = hex2bin($data); return openssl_decrypt($encrypted, $this->cipher, $this->key, OPENSSL_RAW_DATA); } } ================================================ FILE: app/Model/Service/CdnLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Service; use Qcloud\Cos\Client; use W7\App\Model\Logic\SettingLogic; use W7\Core\Database\LogicAbstract; use W7\Core\Helper\Traiter\InstanceTraiter; /** * Class CdnLogic * @package W7\App\Model\Service */ class CdnLogic extends LogicAbstract { use InstanceTraiter; private $bucketSpace = []; private $client = []; /** * 当前指定的通道 * @var string */ private $channel = ''; public function __construct() { } /** * @param string $channel * @return mixed * @throws \Throwable */ public function connection($channel = '') { if (empty($channel)) { $channel = $this->channel; } if (empty($channel)) { throw new \RuntimeException('Please set bucket'); } if (empty($this->client[$channel])) { try { $this->client[$channel] = new Client([ 'region' => $this->bucketSpace[$channel]['region'], 'schema' => 'https', 'credentials' => [ 'secretId' => $this->bucketSpace[$channel]['secretId'], 'secretKey' => $this->bucketSpace[$channel]['secretKey'], ] ]); } catch (\Throwable $e) { throw $e; } } return $this->client[$channel]; } /** * 设置当前存储的通道 * @param $channel * @param bool $runTest * @return $this */ public function channel($channel, $runTestBucket = false) { //从库里读取配置 $setting = SettingLogic::instance()->getByKey($channel, 0); if (empty($setting)) { throw new \RuntimeException('请先配置上传参数'); } $cosSetting = $setting->setting; $this->bucketSpace[$channel] = [ 'secretId' => $cosSetting['secret_id'], 'secretKey' => $cosSetting['secret_key'], 'bucket' => $cosSetting['bucket'], 'rootUrl' => $cosSetting['url'], 'region' => $cosSetting['region'], 'rootPath' => $cosSetting['path'], ]; if (empty($channel) || empty($this->bucketSpace[$channel])) { throw new \RuntimeException('Invalid bucket name'); } if (!empty($this->bucketSpace[$channel]['rootUrl'])) { $rootUrls = parse_url($this->bucketSpace[$channel]['rootUrl']); if (empty($rootUrls['host'])) { throw new \RuntimeException('Invalid root url'); } } if ($runTestBucket) { try { //重置缓存,重新加载 $this->client = []; $isExistsBucket = $this->connection($channel)->headBucket([ 'Bucket' => $this->bucketSpace[$channel]['bucket'], ]); } catch (\Throwable $e) { throw new \RuntimeException($e->getMessage(), $e->getCode()); } } $this->channel = $channel; return $this; } /** * 上传一个文件 * @param 上传到COS的路径,以/开头 $uploadPath * @param 文件在本地的物理绝对路径 $realPath * @return string 文件在COS上的URL */ public function uploadFile($uploadPath, $realPath) { $uploadPath = $this->replacePublicRootPath($uploadPath); try { $result = $this->connection()->putObject([ 'Key' => $uploadPath, 'Bucket' => $this->bucketSpace[$this->channel]['bucket'], 'Body' => fopen($realPath, 'rb'), ]); } catch (\Throwable $e) { throw new \RuntimeException($e->getMessage(), $e->getCode()); } $url = $result['Location']; if (!(strpos($url, 'http://') !== false || strpos($url, 'https://') !== false)) { $url = 'https://' . $url; } return $this->replacePublicRootUrl($url); } /** * 获取目录下的所有文件 * @param $dir * @return array */ public function getDirFiles($dir = ''): array { try { $dir = $this->replacePublicRootPath($dir); $dir = ltrim($dir, '/'); $result = $this->connection()->listObjects([ 'Prefix' => $dir, 'Bucket' => $this->bucketSpace[$this->channel]['bucket'] ]); } catch (\Throwable $e) { throw new \RuntimeException($e->getMessage(), $e->getCode()); } return (array)$result['Contents']; } /** * 获取已上传文件的URL * @param $uploadFile 文件存在cos上的路径 * @param $timeout 设置获取此地址的有效时间 * @return string cos的url */ public function getFileUrl($uploadFile, $timeout = null) { if (!is_null($timeout)) { $timeout = "+{$timeout} seconds"; } $uploadFile = $this->replacePublicRootPath($uploadFile); try { $result = $this->connection()->getObjectUrl($this->bucketSpace[$this->channel]['bucket'], $uploadFile, $timeout); } catch (\Throwable $e) { throw new \RuntimeException($e->getMessage(), $e->getCode()); } return $result; } public function deleteFile($uploadFile) { if (empty($uploadFile)) { throw new \RuntimeException('Invalid file path'); } if (!is_array($uploadFile)) { $uploadFile = [$uploadFile]; } $objects = []; foreach ($uploadFile as $row) { $row = ltrim($row, '/'); $objects[] = [ 'Key' => $this->replacePublicRootPath($uploadFile), ]; } try { $result = $this->connection()->deleteObjects([ 'Bucket' => $this->bucketSpace[$this->channel]['bucket'], 'Objects' => $objects, ]); } catch (\Throwable $e) { throw new \RuntimeException($e->getMessage(), $e->getCode()); } return true; } public function deletePath($path) { $pathList = $this->getDirFiles($path); if (empty($pathList)) { return true; } try { $result = $this->connection()->deleteObjects([ 'Bucket' => $this->bucketSpace[$this->channel]['bucket'], 'Objects' => $pathList, ]); } catch (\Throwable $e) { throw new \RuntimeException($e->getMessage(), $e->getCode()); } return true; } public function convertUrl($uploadPath, $returnOld = false) { $uploadPath = ltrim($uploadPath, '/'); if (!empty($this->bucketSpace[$this->channel]['rootUrl']) && empty($returnOld)) { return sprintf('%s/%s', $this->bucketSpace[$this->channel]['rootUrl'], $uploadPath); } return sprintf('https://%s.cos.%s.myqcloud.com/%s', $this->bucketSpace[$this->channel]['bucket'], $this->bucketSpace[$this->channel]['region'], $uploadPath); } /** * 替换COS的默认地址为用户设置过的根域名 * @param $url * @return string */ private function replacePublicRootUrl($url) { if (empty($this->bucketSpace[$this->channel]['rootUrl'])) { return $url; } $oldUrl = $this->convertUrl('', true); $oldHost = parse_url($oldUrl, PHP_URL_HOST); $rootUrlHost = parse_url($this->bucketSpace[$this->channel]['rootUrl'], PHP_URL_HOST); return str_replace($oldHost, $rootUrlHost, $url); } /** * 替换COS设置的统一根目录 */ private function replacePublicRootPath($path) { return $this->bucketSpace[$this->channel]['rootPath'] . '/' . ltrim($path, '/'); } } ================================================ FILE: app/Model/Service/DbCacheLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Service; use W7\App\Model\Entity\Cache; use W7\Core\Database\LogicAbstract; use W7\Core\Helper\Traiter\InstanceTraiter; class DbCacheLogic extends LogicAbstract { use InstanceTraiter; public function set($key, $value, $ttl = null) { if ($ttl) { $ttl = time() + $ttl; } $row = Cache::query()->where('key', '=', $key)->first(); if ($row) { $row->update(['value' => $value, 'expired_at' => $ttl ?? 0]); } else { Cache::create(['key' => $key, 'value' => $value, 'expired_at' => $ttl ?? 0]); } return true; } public function get($key, $default = null) { $row = Cache::query()->where('key', '=', $key)->first(); $ret = $row ? $row->value : $default; if ($row && $row->expired_at && $row->expired_at < time()) { $row->delete(); $ret = false; } return $ret; } public function has($key) { $row = $this->get($key); return $row ? true : false; } public function setMultiple($values, $ttl = null) { foreach ($values as $k => $v) { $this->set($k, $v, $ttl); } return true; } public function getMultiple($keys, $default = null) { $data = []; foreach ($keys as $k) { $data[] = $this->get($k) ?? $default; } return $data; } public function delete($key) { $ret = false; $row = Cache::query()->where('key', '=', $key)->first(); if ($row) { $row->delete(); $ret = true; } return $ret; } public function deleteMultiple($keys) { foreach ($keys as $k) { $this->delete($k); } return true; } public function clear() { Cache::query()->truncate(); return true; } } ================================================ FILE: app/Model/Service/SessionLogic.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Model\Service; use W7\App\Model\Entity\Session; use W7\Core\Database\LogicAbstract; use W7\Core\Helper\Traiter\InstanceTraiter; class SessionLogic extends LogicAbstract { use InstanceTraiter; public function getBySessionId($sessionId) { return Session::query()->where('session_id', '=', $sessionId)->first(); } public function deleteBySessionId($sessionId) { return Session::query()->where('session_id', '=', $sessionId)->delete(); } } ================================================ FILE: app/Model/Validate/index.html ================================================ ================================================ FILE: app/Process/index.html ================================================ ================================================ FILE: app/Provider/Socialite/ServiceProvider.php ================================================ registerSocialiteManager(); $this->registerThirdPartyLogin(); } private function registerSocialiteManager() { iloader()->set(SocialiteManager::class, function() { return new SocialiteManager([]); }); } private function registerThirdPartyLogin() { $thirdPartyLogins = []; foreach ((new Finder)->in(__DIR__ . '/ThirdPartyLogin/')->files() as $file) { if ($file->getExtension() !== 'php') { continue; } if (strrchr($file->getFilename(), 'Trait') === false) { $fileName = substr($file->getBasename(), 0, -4); $thirdPartyLogins[] = '\\W7\\App\\Provider\\Socialite\\ThirdPartyLogin\\' . $fileName; } } /** * @var SocialiteManager $socialite */ $socialite = iloader()->get(SocialiteManager::class); foreach ($thirdPartyLogins as $name => $thirdPartyLogin) { $obj = new $thirdPartyLogin($socialite->getRequest(), '', '', ''); $appId = $obj->getAppUnionId(); $socialite->extend($appId, function ($config) use ($socialite, $thirdPartyLogin, $appId) { $redirectUrl = empty($config['redirect_url']) ? ienv('API_HOST') . 'login?app_id=' . $appId : $config['redirect_url']; return new $thirdPartyLogin( $socialite->getRequest(), $config['client_id'], $config['client_secret'], $redirectUrl ); }); } } } ================================================ FILE: app/Provider/Socialite/ThirdPartyLogin/OauthTrait.php ================================================ get(ThirdPartyLoginLogic::class)->getThirdPartyLoginChannelById($this->getAppUnionId()); if (!$config['setting']) { throw new \RuntimeException('授权登陆方式 ' . $this->getAppUnionId() . ' 不存在'); } $this->config = $config['setting']; $this->convert = $config['convert'] ?? []; } abstract public function getAppUnionId(); /** * Get the token URL for the provider. * * @return string */ protected function getTokenUrl() { $this->initConfig(); return $this->config['access_token_url']; } protected function getUserInfoUrl() { $this->initConfig(); return $this->config['user_info_url']; } /** * Map the raw user array to a Socialite User instance. * * @param array $user * * @return \Overtrue\Socialite\User */ protected function mapUserToObject(array $user) { $this->initConfig(); if (empty($this->convert)) { throw new RuntimeException('自定义授权转换配置错误'); } $userConvert = []; foreach ($this->convert as $key => $value) { $userConvert[$key] = $this->arrayItem($user, $value); } return new User($userConvert); } public function logout(Response $response): Response { return $response->redirect(ienv('API_HOST') . 'login'); } } ================================================ FILE: app/Provider/Socialite/ThirdPartyLogin/QQOauth.php ================================================ baseUrl.'/oauth2.0/me?access_token='.$token->getToken(); $this->withUnionId && $url .= '&unionid=1'; $response = $this->getHttpClient()->get($url); $me = json_decode($this->removeCallback($response->getBody()->getContents()), true); $this->openId = $me['openid']; $this->unionId = isset($me['unionid']) ? $me['unionid'] : ''; $queries = [ 'access_token' => $token->getToken(), 'openid' => $this->openId, 'oauth_consumer_key' => $this->clientId, ]; $response = $this->getHttpClient()->get($this->baseUrl.'/user/get_user_info?'.http_build_query($queries)); $info = json_decode($this->removeCallback($response->getBody()->getContents()), true); $info['openid'] = $this->openId; return $info; } } ================================================ FILE: app/Provider/Socialite/ThirdPartyLogin/We7Oauth.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ namespace W7\App\Provider\Socialite\ThirdPartyLogin; use GuzzleHttp\Client; use Overtrue\Socialite\ProviderInterface; use Overtrue\Socialite\Providers\AbstractProvider; use Overtrue\Socialite\AccessTokenInterface; use W7\Http\Message\Server\Response; class We7Oauth extends AbstractProvider implements ProviderInterface { use OauthTrait; public function getAppUnionId() { return '3'; } protected function getAuthUrl($state) { $data = [ 'redirect' => $this->redirectUrl, 'appid' => $this->clientId ]; $headers = []; if (ienv('OAUTH_USER_AGENT')) { $headers['User-Agent'] = ienv('OAUTH_USER_AGENT'); } $response = (new Client())->post('http://api.w7.cc/oauth/login-url/index', [ 'form_params' => $data, 'headers' => $headers ]); $result = $response->getBody()->getContents(); if (empty($result)) { throw new \RuntimeException('获取授权地址错误'); } $result = json_decode($result, true); if (!empty($result['error'])) { throw new \RuntimeException($result['error']); } return $result['url']; } /** * Get the Post fields for the token request. * * @param string $code * * @return array */ protected function getTokenFields($code) { $data = [ 'appid' => $this->clientId, 'code' => $code ]; $data['sign'] = $this->getSign($data, $this->clientSecret); return $data; } public function getSign($data, $appsecret = '') { unset($data['sign']); ksort($data, SORT_STRING); reset($data); $sign = md5(http_build_query($data, '', '&') . $appsecret); return $sign; } /** * Get the access token for the given code. * * @param string $code * * @return \Overtrue\Socialite\AccessToken */ public function getAccessToken($code) { $formParams = $this->getTokenFields($code); $response = $this->getHttpClient()->post($this->getTokenUrl(), [ 'form_params' => $formParams, ]); $data = \json_decode($response->getBody()->getContents(), true); $data['access_token'] = $data['accessToken']; return $this->parseAccessToken(\json_encode($data)); } /** * Get the raw user for the given access token. * @param AccessTokenInterface $token * @return mixed */ protected function getUserByToken(AccessTokenInterface $token) { $data = [ 'access_token' => $token->getToken() ]; $response = $this->getHttpClient()->post($this->getUserInfoUrl(), [ 'form_params' => $data ]); return \json_decode($response->getBody()->getContents(), true); } public function logout(Response $psrResponse): Response { $data = [ 'redirect_url' => ienv('API_HOST') . 'admin-login' ]; $headers = []; if (ienv('OAUTH_USER_AGENT')) { $headers['User-Agent'] = ienv('OAUTH_USER_AGENT'); } $response = (new Client())->post('http://api.w7.cc/oauth/logout-url/index', [ 'form_params' => $data, 'headers' => $headers ]); $result = $response->getBody()->getContents(); if (empty($result)) { throw new \RuntimeException('获取退出授权地址错误'); } $result = json_decode($result, true); if (!empty($result['error'])) { throw new \RuntimeException($result['error']); } return $psrResponse->redirect($result['url']); } } ================================================ FILE: app/Provider/Socialite/ThirdPartyLogin/WechatOauth.php ================================================ /dev/null; cd '../vendor/bin' && pwd) cur_dir=$(cd "${0%[/\\]*}" > /dev/null; cd '../' && pwd) if [ -d /proc/cygdrive ]; then case $(which php) in $(readlink -n /proc/cygdrive)/*) # We are in Cygwin using Windows php, so the path must be translated dir=$(cygpath -m "$dir"); ;; esac fi "${dir}/rangine-gerent" "$@" --app-path=${cur_dir} ================================================ FILE: bin/server ================================================ #!/usr/bin/env sh dir=$(cd "${0%[/\\]*}" > /dev/null; cd '../vendor/bin' && pwd) cur_dir=$(cd "${0%[/\\]*}" > /dev/null; cd '../' && pwd) if [ -d /proc/cygdrive ]; then case $(which php) in $(readlink -n /proc/cygdrive)/*) # We are in Cygwin using Windows php, so the path must be translated dir=$(cygpath -m "$dir"); ;; esac fi "${dir}/rangine-server" "$@" --app-path=${cur_dir} ================================================ FILE: composer.json ================================================ { "name": "w7/document-api", "type": "project", "description": "基于软擎框架的开源文档系统", "license": "Apache-2.0", "keywords": [ "we7", "swoole", "rangine" ], "homepage": "https://www.rangine.com/", "authors": [ { "name": "we7team", "email": "donknap@gmail.com" } ], "autoload": { "psr-4": { "W7\\App\\": "app/", "W7\\Tests\\" : "tests/" }, "files": [ "config/define.php", "app/Helper/Functions.php" ], "classmap": [ "database/seeds", "database/migrations" ] }, "require": { "w7/rangine": "2.4.19", "w7/rangine-crontab": "^1.1.0", "ext-json": "*", "gregwar/captcha": "^1.1", "qcloud/cos-sdk-v5": "^1.3", "overtrue/socialite": "^2.0" }, "require-dev": { "phpunit/phpunit": "^7.0", "squizlabs/php_codesniffer": "*", "friendsofphp/php-cs-fixer": "^2.15", "w7/rangine-debugger": "^1.1.0" }, "repositories": { "packagist": { "type": "composer", "url": "https://mirrors.aliyun.com/composer/" } } } ================================================ FILE: config/app.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ return [ 'setting' => [ 'env' => ienv('SETTING_DEVELOPMENT', DEVELOPMENT), 'error_reporting' => ienv('SETTING_ERROR_REPORTING', E_ALL ^ E_NOTICE ^ E_WARNING ^ E_DEPRECATED ^ E_USER_DEPRECATED), 'server' => ienv('SETTING_SERVERS', 'http'), 'basedir' => [ BASE_PATH, ] ], 'cache' => [ 'default' => [ 'driver' => ienv('CACHE_DEFAULT_DRIVER', 'redis'), 'host' => ienv('CACHE_DEFAULT_HOST', '127.0.0.1'), 'port' => ienv('CACHE_DEFAULT_PORT', '6379'), 'timeout' => ienv('CACHE_DEFAULT_TIMEOUT', 30), 'password' => ienv('CACHE_DEFAULT_PASSWORD', ''), 'database' => ienv('CACHE_DEFAULT_DATABASE', '0'), ], ], 'database' => [ 'default' => [ 'driver' => ienv('DATABASE_DEFAULT_DRIVER', 'mysql'), 'database' => ienv('DATABASE_DEFAULT_DATABASE', ''), 'host' => ienv('DATABASE_DEFAULT_HOST', '127.0.0.1'), 'username' => ienv('DATABASE_DEFAULT_USERNAME', 'root'), 'password' => ienv('DATABASE_DEFAULT_PASSWORD', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_general_ci', 'prefix' => ienv('DATABASE_DEFAULT_PREFIX', 'ims_'), 'port' => ienv('DATABASE_DEFAULT_PORT', 3306), 'strict' => false ], ], 'view' => [ 'template_path' => [ 'public' => BASE_PATH . '/public' ] ], 'session' => [ 'expires' => 86400, 'handler' => ienv('SESSION_HANDLER', 'cache') ], 'cookie' => [ 'path' => ienv('COOKIE_PATH', '/'), 'http_only' => ienv('COOKIE_HTTP_ONLY', false), 'domain' => ienv('COOKIE_DOMAIN', ''), 'secure' => ienv('COOKIE_SECURE', false), 'expires' => ienv('COOKIE_EXPIRES', 0),//不设置,默认取session.gc_maxlifetime配置 ], 'pool' => [ 'database' => [ 'default' => [ 'enable' => ienv('POOL_DATABASE_DEFAULT_ENABLE', true), 'max' => ienv('POOL_DATABASE_DEFAULT_MAX', 100), ], ], 'cache' => [ 'default' => [ 'enable' => ienv('POOL_CACHE_DEFAULT_ENABLE', false), 'max' => ienv('POOL_CACHE_DEFAULT_MAX', 100), ], ] ], ]; ================================================ FILE: config/crontab.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ return [ 'default' => 'stack', 'channel' => [ 'stack' => [ 'driver' => 'stack', 'channel' => ['single'], ], 'single' => [ 'driver' => 'daily', 'path' => RUNTIME_PATH . DS . 'logs' . DS . 'w7.log', 'level' => ienv('LOG_CHANNEL_SINGLE_LEVEL', 'debug'), 'days' => '1', ], 'test' => [ 'driver' => 'daily', 'path' => RUNTIME_PATH . DS . 'logs' . DS . 'test.log', 'level' => 'debug', 'days' => 7, ], 'error' => [ 'driver' => 'daily', 'path' => RUNTIME_PATH . DS . 'logs' . DS . 'error.log', 'level' => 'debug', 'days' => 7, ] ], ]; ================================================ FILE: config/server.php ================================================ [ 'pname' => 'document_open', 'pid_file' => '/tmp/swoole.pid', 'max_request' => 10000, 'worker_num' => ienv('SERVER_COMMON_WORKER_NUM', 2), 'task_worker_num' => ienv('SERVER_COMMON_TASK_WORKER_NUM', 1), 'package_max_length' => ienv('SERVER_COMMON_PACKAGE_MAX_LENGTH', 5242880), // 5M 'buffer_output_size' => ienv('SERVER_COMMON_BUFFER_MAX_LENGTH', 10485760) // 10*1024*1024 ], 'tcp' => [ 'host' => '0.0.0.0', 'port' => ienv('SERVER_TCP_PORT', '9999') ], 'http' => [ 'host' => '0.0.0.0', 'port' => ienv('SERVER_HTTP_PORT', '99') ], ]; return $serverSetting; ================================================ FILE: database/index.html ================================================ ================================================ FILE: database/migrations/2020_01_02_194246_create_user_third_party.php ================================================ schema->create('user_third_party', function (Blueprint $table) { $table->increments('id'); $table->integer('uid'); $table->string('openid', '200'); $table->string('username', '100'); $table->smallInteger('source'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('user_third_party'); } } ================================================ FILE: database/migrations/2020_02_17_121335_alter_setting.php ================================================ schema->table('setting', function (Blueprint $table) { $table->text('value')->after('key')->change(); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->table('setting', function (Blueprint $table) { $table->string('value', 1000)->after('key')->change(); }); } } ================================================ FILE: database/migrations/2020_03_02_153429_create_app.php ================================================ schema->create('app', function (Blueprint $table) { $table->increments('id'); $table->string('name', '30'); $table->string('appid', '18'); $table->string('appsecret', '64'); $table->integer('user_id')->nullable(true)->default(0)->comment('用户id,一个appid对应一个用户'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('app'); } } ================================================ FILE: database/migrations/2020_03_03_152902_alter_star.php ================================================ schema->table('user_star', function (Blueprint $table) { $table->integer('chapter_id')->after('document_id')->nullable()->default(0); $table->dropUnique('user_id'); $table->unique(['user_id', 'document_id', 'chapter_id'], 'user_document_chapter'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->table('user_star', function (Blueprint $table) { $table->dropUnique('user_document_chapter'); $table->dropColumn('chapter_id'); $table->unique(['user_id', 'document_id'], 'user_id'); }); } } ================================================ FILE: database/migrations/2020_03_03_154818_alter_document.php ================================================ schema->table('document', function (Blueprint $table) { $table->string('cover', 120)->after('creator_id')->nullable()->default('')->comment('文档封面'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->table('document', function (Blueprint $table) { $table->dropColumn('cover'); }); } } ================================================ FILE: database/migrations/2020_03_23_114510_table_operate_log.php ================================================ schema->table('user_operate_log', function (Blueprint $table) { $table->integer('target_user_id')->after('chapter_id')->nullable()->default(0)->comment('目标用户id,比如文档转让的目标用户id'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->table('user_operate_log', function (Blueprint $table) { $table->dropColumn('target_user_id'); }); } } ================================================ FILE: database/migrations/2020_04_07_145338_create_document_chapter_api.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ use Illuminate\Database\Schema\Blueprint; use W7\DatabaseTool\Migrate\Migration; class CreateDocumentChapterApi extends Migration { /** * Run the migrations. * * @return void */ public function up() { $this->schema->create('document_chapter_api', function (Blueprint $table) { $table->increments('id'); $table->integer('chapter_id')->default(0)->comment('章节ID'); $table->string('url', 255)->default('')->comment('接口地址'); $table->tinyInteger('method')->comment('请求方法:1、GET,2、POST,3、PUT,4、OPTIONS,5、DELETE'); $table->integer('status_code')->default(200)->comment('状态码'); $table->string('description', 255)->default('')->comment('接口描述'); $table->tinyInteger('body_param_location')->default(3)->comment('body_param默认请求方式'); $table->index('chapter_id'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_chapter_api'); } } ================================================ FILE: database/migrations/2020_04_07_145420_create_document_chapter_api_param.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ use Illuminate\Database\Schema\Blueprint; use W7\DatabaseTool\Migrate\Migration; class CreateDocumentChapterApiParam extends Migration { /** * Run the migrations. * * @return void */ public function up() { $this->schema->create('document_chapter_api_param', function (Blueprint $table) { $table->increments('id'); $table->integer('chapter_id')->default(0)->comment('章节ID'); $table->integer('parent_id')->default(0)->comment('上级ID'); $table->tinyInteger('location')->comment('请求类型:1request.header,2request.query3requeset.body.form-data4requeset.body.x-www-form-urlencoded5requeset.body.raw6requeset.body.binary 7reponse.header8、reponse.body.form9、requeset.body.x-www-form-urlencoded10、requeset.body.raw11、requeset.body.binary'); $table->tinyInteger('type')->comment('数据类型:1、int2、string...'); $table->string('name', 255)->default('')->comment('数据键值'); $table->string('description', 255)->default('')->comment('数据键值描述'); $table->tinyInteger('enabled')->default(1)->comment('是否必填1否2是'); $table->string('default_value', 255)->default('')->comment('初始值'); $table->index('chapter_id'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_chapter_api_param'); } } ================================================ FILE: database/migrations/2020_04_07_151451_create_document_chapter_api_extend.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ use Illuminate\Database\Schema\Blueprint; use W7\DatabaseTool\Migrate\Migration; class CreateDocumentChapterApiExtend extends Migration { /** * Run the migrations. * * @return void */ public function up() { $this->schema->create('document_chapter_api_extend', function (Blueprint $table) { $table->increments('id'); $table->integer('chapter_id')->default(0)->comment('章节ID'); $table->longText('extend')->default('')->comment('扩展markdown格式数据'); $table->index('chapter_id'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_chapter_api_extend'); } } ================================================ FILE: database/migrations/2020_05_27_092518_create_document_chapter_api_reponse_table.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ use Illuminate\Database\Schema\Blueprint; use W7\DatabaseTool\Migrate\Migration; class CreateDocumentChapterApiReponseTable2020_05_27_092518 extends Migration { /** * Run the migrations. * * @return void */ public function up() { $this->schema->create('document_chapter_api_reponse', function (Blueprint $table) { $table->bigIncrements('id'); $table->integer('chapter_id')->default(0)->comment('章节ID'); $table->string('description', 255)->default('')->comment('响应描述'); $table->index('chapter_id'); }); $this->schema->table('document_chapter_api_param', function (Blueprint $table) { $table->integer('reponse_id')->after('location')->default(0)->comment('响应数据ID'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_chapter_api_reponse'); $this->schema->table('document_chapter_api_param', function (Blueprint $table) { $table->dropColumn('reponse_id'); }); } } ================================================ FILE: database/migrations/2020_06_11_145556_add_rule_to_document_chapter_api_param_table.php ================================================ * * This is not a free software * Using it under the license terms * visited https://www.w7.cc for more details */ use Illuminate\Database\Schema\Blueprint; use W7\DatabaseTool\Migrate\Migration; class AddRuleToDocumentChapterApiParamTable2020_06_11_145556 extends Migration { /** * Run the migrations. * * @return void */ public function up() { $this->schema->table('document_chapter_api_param', function (Blueprint $table) { $table->string('rule', 255)->after('enabled')->default('')->comment('moke规则'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->table('document_chapter_api_param', function (Blueprint $table) { $table->dropColumn('rule'); }); } } ================================================ FILE: database/migrations/2021_03_03_170511_create_document_feedback_table.php ================================================ schema->create('document_feedback', function (Blueprint $table) { $table->bigIncrements('id'); $table->integer('user_id')->nullable()->default(0); $table->integer('document_id')->nullable()->default(0); $table->tinyInteger('status')->nullable()->default(0)->comment('状态:0:未查看 1:已查看'); $table->string('type', '200'); $table->string('content','300'); $table->string('images', '500'); $table->integer('created_at')->nullable()->default(0); $table->integer('updated_at')->nullable()->default(0); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_feedback'); } } ================================================ FILE: database/migrations/2021_03_05_142937_create_document_chapter_api_data_table.php ================================================ schema->create('document_chapter_api_data', function (Blueprint $table) { $table->bigIncrements('id'); $table->integer('chapter_id')->default(0)->comment('章节ID'); $table->string('respond', 500)->default('')->comment('响应数据'); $table->index('chapter_id'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_chapter_api_data'); } } ================================================ FILE: database/migrations/2021_03_08_164459_alter_respond_to_document_chapter_api_data_table.php ================================================ schema->table('document_chapter_api_data', function (Blueprint $table) { $table->longText('respond')->default('')->comment('响应数据')->change(); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->table('document_chapter_api_data', function (Blueprint $table) { // }); } } ================================================ FILE: database/migrations/2021_03_16_104941_create_document_home_table.php ================================================ schema->create('document_home', function (Blueprint $table) { $table->bigIncrements('id'); $table->tinyInteger('type')->comment('首页类型:1、公告,2、首页类型一,3、首页类型二'); $table->integer('sort')->default(0)->comment('排序值'); $table->string('logo', 255)->default('')->comment('图标'); $table->string('url', 255)->default('')->comment('访问地址'); $table->integer('document_id')->default(0)->comment('文档id'); $table->integer('user_id')->default(0)->comment('用户id'); $table->string('description', 255)->default('')->comment('文档简介'); $table->integer('created_at')->nullable()->default(0); $table->integer('updated_at')->nullable()->default(0); $table->index('document_id'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_home'); } } ================================================ FILE: database/migrations/2021_03_29_110505_create_document_search_hot_table.php ================================================ schema->create('document_search_hot', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('search_word', 255)->default('')->comment('搜索词'); $table->integer('created_at')->nullable()->default(0); $table->integer('updated_at')->nullable()->default(0); $table->index('search_word'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->dropIfExists('document_search_hot'); } } ================================================ FILE: database/migrations/2021_04_09_100433_alter_user_table.php ================================================ schema->table('user', function (Blueprint $table) { // $table->string('avatar')->default('')->after('userpass')->comment('用户头像'); $table->string('company')->default('')->after('group_id')->comment('公司和职称'); $table->string('resume')->default('')->after('company')->comment('个人简历'); $table->string('skill')->default('')->after('resume')->comment('技能'); $table->string('address')->default('')->after('skill')->comment('所在城市'); }); } /** * Reverse the migrations. * * @return void */ public function down() { $this->schema->table('user', function (Blueprint $table) { // $table->dropColumn(['company','resume','skill','address']); }); } } ================================================ FILE: database/migrations/index.html ================================================ ================================================ FILE: database/seeds/DatabaseSeeder.php ================================================ { if(data.body&&data.body){ var Mock = require('mockjs') var newData=Mock.mock(treeToTemplate(data.body,1)); return romoveSlash(newData); } return data.body; } //pm2 start node -- app.js //POST中间件 const bodyParser = require('body-parser'); app.use(bodyParser.json());//数据JSON类型 app.use(bodyParser.urlencoded({ extended: false }));//解析post请求数据 //路由 app.all('/buildMock', (req, res, next) => res.json(makeMockData(req))) //启动服务 app.listen(port, () => console.log(`app listening at http://localhost:${port}`)) // num为1,对函数类型、正则执行函数,得到函数返回值 function treeToTemplate(tree, num = 0) { function parse(item, result) { let rule = item.rule ? ('|' + item.rule) : ''; let value = item.default_value; if (item.default_value && item.default_value.indexOf('[') === 0 && item.default_value.substring(item.default_value.length - 1) === ']') { try { let reg = /\s*/g; let reg2 = /\"/g; value = value.substring(1, value.length - 1).replace(reg, '').replace(reg2, '').split(','); // console.error(123) // console.log(value) result[item.name + rule] = value // result[item.name + rule] = vm.run(`(${item.value})`) } catch (e) { result[item.name + rule] = value } } else { if (item.name.length) { switch (item.type) { case 1: // String result[item.name + rule] = value break case 2: // Number if (value === '') value = 1 let parsed = parseFloat(value) if (!isNaN(parsed)) value = parsed result[item.name + rule] = value break case 3: // Boolean if (value === 'true') value = true if (value === 'false') value = false if (value === '0') value = false value = !!value result[item.name + rule] = value break case 4: if(item.children) { // Object if (value) { // result[item.name + rule] = vm.run(`(${item.value})`) result[item.name + rule] = {}; item.children.forEach((child) => { parse(child, result[item.name + rule]) }) } else { result[item.name + rule] = {} item.children.forEach((child) => { parse(child, result[item.name + rule]) }) } }else{ result[item.name + rule] = {} } break case 5: // Array if (value) { try { // result[item.name + rule] = vm.run(`(${item.value})`) result[item.name + rule] = value } catch (e) { result[item.name + rule] = item.value } } else { if(item.children){ result[item.name + rule] = item.children.length ? [{}] : [] item.children.forEach((child) => { parse(child, result[item.name + rule][0]) }) }else{ result[item.name + rule] = [] } } break case 6: // Function if (num == 1) { try { // 1 let fun = eval(item.default_value); result[item.name + rule] = fun(); // 2 // let funcTest = new Function('return ' + item.default_value); // result[item.name + rule] = funcTest()() } catch (e) { // console.error(e); console.warn(`TreeToTemplate ${e.message}: ${item.type} { ${item.name}${rule}: ${item.default_value} }`) // 怎么消除异常值? result[item.name + rule] = item.default_value } } else { result[item.name + rule] = value } break case 7: // RegExp if (num == 1) { try { result[item.name + rule] = new RegExp(item.default_value); } catch (e) { console.warn(`TreeToTemplate ${e.message}: ${item.type} { ${item.name}${rule}: ${item.default_value} }`) // 怎么消除异常值? result[item.name + rule] = item.default_value } } else { let reg = /\\/g; result[item.name + rule] = item.default_value.replace(reg,""); } break case 8: // Null // tslint:disable-next-line: no-null-keyword result[item.name + rule] = null break } } } } let result = {} if (tree.length) { tree.forEach(child => { parse(child, result) }) } return result } // 移除mock生成数据的'/' function romoveSlash(obj) { let newObj = {} let reg = /\//g; for (let item in obj) { if (typeof obj[item] == 'string' && reg.test(obj[item])) { newObj[item] = obj[item].replace(reg,""); } else { newObj[item] = obj[item] } } return newObj } ================================================ FILE: mockApi/package.json ================================================ { "name": "mokeserver", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "server": "node app.js", "pm2-start": "pm2 start app.js --watch", "pm2-stop": "pm2 stop app.js --watch", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "body-parser": "^1.19.0", "express": "^4.17.1", "mockjs": "^1.1.0" } } ================================================ FILE: public/css/app.45a4fd9d.css ================================================ body{color:#4d4d4d}body,body p{padding:0;margin:0}body a{color:inherit;text-decoration:none}html,html body{height:100%}*{-webkit-box-sizing:border-box;box-sizing:border-box}* :focus{outline:none}.el-button--text{padding:0}.el-message--info{background-color:rgba(49,49,49,.6);color:#fff;top:50%!important;-webkit-transform:translateX(-50%);transform:translateX(-50%);text-align:center;min-width:auto}.el-message--info .el-message__icon{display:none}.el-message--info .el-message__content{color:#fff;text-align:center}.w7-dialog .el-dialog{width:800px}.w7-dialog .el-dialog textarea{border-radius:0}.w7-dialog .el-dialog .el-dialog__header{padding:30px;padding-bottom:60px}.w7-dialog .el-dialog .el-dialog__title{color:#4d4d4d}.w7-dialog .el-dialog .el-dialog__headerbtn{top:30px;right:30px;font-size:22px}.w7-dialog .el-dialog .el-dialog__headerbtn .el-dialog__close{color:#999}.w7-dialog .el-dialog .el-dialog__body{padding:0 96px 70px 96px}.w7-dialog .el-dialog .el-dialog__body .el-cascader,.w7-dialog .el-dialog .el-dialog__body .el-select{width:100%}.w7-dialog .el-dialog .el-dialog__body .el-form .el-form-item:last-child{margin-bottom:0}.w7-dialog .el-dialog .el-dialog__footer{padding-top:20px;border-top:1px solid #edeef0}.w7-dialog .el-dialog .el-dialog__footer .el-button+.el-button{margin-left:20px}.w7-table{margin-top:30px}.w7-table .el-table__header thead tr th>.cell{font-family:PingFang-SC-Regular;font-size:14px;font-weight:400;color:#4d4d4d}.w7-table .doc-icons .name{cursor:pointer;margin-right:15px;margin-left:15px}.w7-table .doc-icons .name:hover{color:#3296fa}.w7-table .doc-icons .wi-star{margin-right:15px}.w7-table .oper .wi{margin-left:15px;font-size:16px;color:#b3b3b3;cursor:pointer}.w7-table .oper .wi.checked,.w7-table .oper .wi:hover{color:#3296fa}.w7-table .oper .wi.checked:hover{color:#b3b3b3}.el-pagination{float:right;margin-top:30px}.el-pagination .btn-next,.el-pagination .btn-prev{padding:0 10px!important}.w7-tree{font-size:14px}.w7-tree .el-tree-node__content{height:40px}.w7-tree.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:transparent}.w7-tree .el-tree-node__content:hover{background-color:#fff}.w7-tree .el-tree__empty-text{width:100%}.admin-view-menu.el-menu{margin:25px 20px;border-right:0}.admin-view-menu.el-menu .el-menu-item{margin:10px 0;height:40px;line-height:40px}.admin-view-menu.el-menu .el-menu-item.is-active{color:#4096f9;background-color:#e6f2ff;border-radius:4px}.admin-view-menu.el-menu .el-menu-item i{margin-right:20px;font-size:18px}.admin-view-menu.el-menu .el-submenu .el-submenu__title{height:40px;line-height:40px}.admin-view-menu.el-menu .el-submenu .el-submenu__title:hover{color:#4096f9;background-color:#e6f2ff;border-radius:4px}.admin-view-menu.el-menu .el-submenu .el-submenu__title .wi{margin-right:20px;font-size:18px}.admin-view-menu.el-menu .el-submenu .el-menu-item{padding-left:60px!important}.admin-view-menu .line{margin:18px 0;height:1px;background-color:#f7f9fc}.w7-form__no-required-icon .el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.w7-form__no-required-icon .el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:""}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{margin-left:-10px}.color-blue{color:#4096f9}.color-yellow{color:#ff9c00}.fl{float:left}.fr{float:right}.text-over{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wi.wi-oper{color:#b3b3b3;cursor:pointer}.wi.wi-oper:hover{color:#3296fa}.layout-container{min-height:calc(100vh - 140px)}.page-head{padding:30px 0 40px;font-size:20px;color:#4d4d4d;letter-spacing:1px}.page-head a:hover{color:#3296fa}.search-box{display:-webkit-box;display:-ms-flexbox;display:flex;height:34px}.search-box .search-box-input{-webkit-box-flex:1;-ms-flex:1;flex:1}.search-box .search-box-input .demo-input-suffix{width:240px}.search-box .search-box-input .el-input,.search-box .search-box-input .el-select{margin-right:20px}.search-box .el-input__icon:hover{cursor:pointer}.w7-footer{font-size:14px;line-height:80px;color:#999;text-align:center}.we7-empty{padding:30px 0;width:100%;text-align:center;font-style:14px;color:#909399}.we7-label{display:inline-block;padding:0 5px;color:#ff8600;background:#fff1de;border-radius:4px}.we7-label .font{font-size:14px;margin-left:5px}.we7-panel-form{margin-bottom:30px;font-size:14px}.we7-panel-form.edit .el-form-item{padding-bottom:0;border-bottom:0}.we7-panel-form.edit .el-form-item .el-select{width:50%}.we7-panel-form.edit .el-form-item .el-select .el-input{width:100%}.we7-panel-form.edit .el-form-item .el-input{width:50%}.we7-panel-form__header{margin-top:30px;padding:15px;color:#999;line-height:1;background-color:#f7f8fa;border-bottom:1px solid #e8e9eb}.we7-panel-form__header span:first-child{margin-right:20px}.we7-panel-form__header .el-icon-info{margin-right:5px}.we7-panel-form__header .el-button--text{float:right;padding:0}.we7-panel-form__body .el-form-item{margin-bottom:0;padding:15px 20px;border-bottom:1px solid #e8e9eb}.we7-panel-form__body .el-form-item__error{padding-top:0}.we7-panel-form__body .avatar-uploader .el-upload{border-radius:50%;border:1px dashed #999;cursor:pointer;overflow:hidden}.we7-panel-form__body .avatar-uploader-icon{width:55px;height:55px;color:#000;font-size:20px;line-height:55px;text-align:center}.we7-panel-form__body .avatar{width:55px;height:55px;display:block;border-radius:50%}.we7-panel-form__item{display:table;width:100%;padding:20px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;vertical-align:middle;background-color:#fff;border-bottom:1px solid #e8e9eb}.we7-panel-form__item,.we7-panel-form__item:hover{-webkit-box-sizing:border-box;box-sizing:border-box}.we7-panel-form__item:hover{background-color:#f4f6f9}.we7-panel-form__label{display:table-cell;min-width:220px;vertical-align:middle}.we7-panel-form__value{display:table-cell;width:100%;color:#999;vertical-align:middle}.we7-panel-form__action{text-align:right;display:table-cell;min-width:200px;vertical-align:middle}.we7-help-block{color:#999;line-height:1.5}.admin-login{min-height:100vh;background-color:#fff;background-image:url(../img/login-bg.5a9966fc.png);background-position:50%;background-size:cover;background-repeat:space;position:relative;font-size:14px;line-height:1}.admin-login .login-box{width:470px;margin:0 auto;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.admin-login .login-box h2{margin:0;color:#4d4d4d;font-size:56px;font-weight:100;text-align:center;margin-bottom:30px}.admin-login .el-tabs__header{text-align:center;margin-bottom:0}.admin-login .el-tabs__nav-wrap{display:inline-block}.admin-login .el-tabs__nav-wrap:after{display:none}.admin-login .login-form .el-input{margin-top:30px}.admin-login .login-form .el-input input{border-radius:0;border-left:0;border-right:0;border-top:0;outline:0;color:#a1a1a1;padding-left:50px}.admin-login .login-form .el-input input:focus{border-color:#dcdfe6}.admin-login .login-form .el-input__icon{color:#a1a1a1;font-size:20px}.admin-login .login-form .el-input .el-input-group__append{background-color:unset;border-radius:0;padding:0;font-size:0;border:0;border-bottom:1px solid #dcdfe6!important}.admin-login .login-form .el-input .el-input-group__append img{width:120px;cursor:pointer;height:32px}.admin-login .login-action{text-align:right;margin-top:40px;border-bottom:1px solid #dcdfe6}.admin-login .login-thirdParty{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:20px}.admin-login .login-thirdParty .title{line-height:40px}.admin-login .login-thirdParty .icon-list{max-width:360px;overflow:hidden}.admin-login .login-thirdParty .icon-list .icon-block{margin-left:10px;width:40px;height:40px;border-radius:50%;cursor:pointer}.admin-login .login-btn{display:block;width:100%;border-radius:25px;color:#4d4d4d;padding:0;height:50px;line-height:50px;margin-top:50px}.admin-login .footer{position:fixed;left:0;right:0;bottom:30px;text-align:center;color:#999;font-size:14px}.dialog-setting .el-dialog{border-radius:0}.dialog-setting .el-dialog .el-dialog__header{padding:30px 20px;padding-bottom:30px}.dialog-setting .el-dialog .el-dialog__header .el-dialog__headerbtn{top:31px;right:20px;font-size:20px}.dialog-setting .el-dialog .el-dialog__body{padding:0}.hljs{background:#eee!important}.markdown-body,.markdown-body pre,.markdown-body textarea{font-size:14px!important}.markdown-body .highlight pre,.markdown-body code,.markdown-body pre{background-color:#eee!important}.reset-element .el-table .el-table__header thead tr th{color:#333;font-weight:400;background-color:#f8f8f8} ================================================ FILE: public/css/chunk-06ade0a7.d9d343de.css ================================================ .editors .v-note-wrapper[data-v-7d82a91c]{margin:30px 0;z-index:10}.editors .v-note-wrapper .v-note-panel .v-note-show[data-v-7d82a91c]{max-width:760px}.chapter-title[data-v-7d82a91c]{font-size:20px;letter-spacing:1px;color:#4d4d4d}.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5)}.cm-animate-fat-cursor,.cm-fat-cursor-mark{-webkit-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;background-color:#7e7}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-webkit-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.cm-s-base16-light.CodeMirror{background:#f5f5f5;color:#202020}.cm-s-base16-light div.CodeMirror-selected{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::selection,.cm-s-base16-light .CodeMirror-line>span::selection,.cm-s-base16-light .CodeMirror-line>span>span::selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-line::-moz-selection,.cm-s-base16-light .CodeMirror-line>span::-moz-selection,.cm-s-base16-light .CodeMirror-line>span>span::-moz-selection{background:#e0e0e0}.cm-s-base16-light .CodeMirror-gutters{background:#f5f5f5;border-right:0}.cm-s-base16-light .CodeMirror-guttermarker{color:#ac4142}.cm-s-base16-light .CodeMirror-guttermarker-subtle,.cm-s-base16-light .CodeMirror-linenumber{color:#b0b0b0}.cm-s-base16-light .CodeMirror-cursor{border-left:1px solid #505050}.cm-s-base16-light span.cm-comment{color:#8f5536}.cm-s-base16-light span.cm-atom,.cm-s-base16-light span.cm-number{color:#aa759f}.cm-s-base16-light span.cm-attribute,.cm-s-base16-light span.cm-property{color:#90a959}.cm-s-base16-light span.cm-keyword{color:#ac4142}.cm-s-base16-light span.cm-string{color:#f4bf75}.cm-s-base16-light span.cm-variable{color:#90a959}.cm-s-base16-light span.cm-variable-2{color:#6a9fb5}.cm-s-base16-light span.cm-def{color:#d28445}.cm-s-base16-light span.cm-bracket{color:#202020}.cm-s-base16-light span.cm-tag{color:#ac4142}.cm-s-base16-light span.cm-link{color:#aa759f}.cm-s-base16-light span.cm-error{background:#ac4142;color:#505050}.cm-s-base16-light .CodeMirror-activeline-background{background:#dddcdc}.cm-s-base16-light .CodeMirror-matchingbracket{color:#f5f5f5!important;background-color:#6a9fb5!important}.w7-document-chapter[data-v-8863de70]{margin-left:-15px;padding-left:260px;position:relative}.w7-document-chapter .w7-aside-chapter[data-v-8863de70]{border-left:1px solid #eee;border-right:1px solid #eee;background-color:#f7f8fa;position:fixed;bottom:0;left:0;top:60px;z-index:1501}.w7-document-chapter .w7-aside-chapter .w7-aside-chapter-head[data-v-8863de70]{margin:40px 0}.w7-document-chapter .w7-aside-chapter .w7-aside-chapter-head p[data-v-8863de70]{font-size:16px;color:#4d4d4d;text-align:center}.w7-document-chapter .w7-aside-chapter .search-box[data-v-8863de70]{margin:0 20px 20px}.w7-document-chapter .icon-box[data-v-8863de70]{padding:0 30px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:30px;color:#3296fa}.w7-document-chapter .icon-box .el-tooltip[data-v-8863de70]{cursor:pointer}.w7-document-chapter .icon-box .wq[data-v-8863de70]{font-size:22px}.w7-document-chapter .tree-warpper[data-v-8863de70]{height:calc(100vh - 300px)}.w7-document-chapter .tree-warpper[data-v-8863de70] .el-scrollbar__wrap{overflow-x:hidden}.w7-document-chapter .menu-bar[data-v-8863de70]{position:fixed;font-size:14px;color:#4d4d4d;background-color:#fff;-webkit-box-shadow:2px 0 10px 4px hsla(0,0%,85.9%,.53);box-shadow:2px 0 10px 4px hsla(0,0%,85.9%,.53);z-index:10000}.w7-document-chapter .menu-bar.bottom[data-v-8863de70]:after{content:" ";position:absolute;display:block;top:-8px;left:50px;width:0;height:0;border-color:transparent;border-style:solid;border-width:8px;border-top-width:0;border-bottom-color:#fff}.w7-document-chapter .menu-bar.top[data-v-8863de70]:after{content:" ";position:absolute;display:block;left:50px;width:0;height:0;border-color:transparent;border-style:solid;border-width:8px;border-bottom-width:0;border-top-color:#fff}.w7-document-chapter .menu-bar ul[data-v-8863de70]{margin:0;padding:10px 0}.w7-document-chapter .menu-bar li[data-v-8863de70]{padding:0 14px;width:150px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;list-style:none}.w7-document-chapter .menu-bar li[data-v-8863de70]:hover{color:#3296fa;cursor:pointer}.w7-tree[data-v-8863de70]{background:transparent}.w7-tree .el-tree-node__content[data-v-8863de70]{position:relative}.w7-tree .el-tree-node__content:hover .custom-tree-node .point3[data-v-8863de70],.w7-tree .el-tree-node__content:hover .custom-tree-node .shortcut[data-v-8863de70]{display:inline-block}.w7-tree .el-tree-node__content .custom-tree-node[data-v-8863de70]{width:100%}.w7-tree .el-tree-node__content .custom-tree-node .node-info[data-v-8863de70],.w7-tree .el-tree-node__content .custom-tree-node[data-v-8863de70]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.w7-tree .el-tree-node__content .custom-tree-node .node-info .wq[data-v-8863de70]{color:#ffcd2c;font-size:18px}.w7-tree .el-tree-node__content .custom-tree-node .node-info .wq.wq-mulu[data-v-8863de70]{font-size:16px}.w7-tree .el-tree-node__content .custom-tree-node .node-info .text-over[data-v-8863de70]{-webkit-box-flex:1;-ms-flex:1;flex:1;width:0;margin-left:10px;padding-right:10px}.w7-tree .el-tree-node__content .custom-tree-node .shortcut[data-v-8863de70]{display:none;margin-right:10px}.w7-tree .el-tree-node__content .custom-tree-node .shortcut .wq[data-v-8863de70]{color:#ffcd2c}.w7-tree .el-tree-node__content .custom-tree-node .point3[data-v-8863de70]{display:none;color:#b6b5b5}.w7-tree .el-tree-node__content .custom-tree-node .point3[data-v-8863de70]:hover{color:#3296fa}.w7-tree .el-tree-node__content .custom-tree-node .point3 span[data-v-8863de70]{display:block;font-size:30px;margin-top:-23px;margin-right:10px}.w7-tree .el-tree-node__content .custom-tree-node .doc-default[data-v-8863de70]{position:absolute;top:0;left:0;width:26px;height:26px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OTQyM0RDNEQ2MUNEMTFFQThCM0RBMkI4NjA4QzI5MDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OTQyM0RDNEU2MUNEMTFFQThCM0RBMkI4NjA4QzI5MDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5NDIzREM0QjYxQ0QxMUVBOEIzREEyQjg2MDhDMjkwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5NDIzREM0QzYxQ0QxMUVBOEIzREEyQjg2MDhDMjkwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pp/Qe/oAAAMaSURBVHjatJVbSFRBGMe/mTlH1229pNvdesg0Mm+UCUUaiEVRvqRpoL1EQW+BVEsUPRTdXrYoyyDL0i50e3HrxS6GgZTmbbFMKQvLTFwC1+uue2aa2Vzbzb16+eDAnOHM+c3/+/7zDWKMgT9xt4Uifa1CxVgt+7UEKP/1qA1gfyqWkT+gK+8U+WYjtcZEoq6+IbbMbAG/Y2ssXno6i/zAvj68/FYJEhAxXjUPnazeK8OKKGTyB7I7EWsERIy9gm43UXyriVqCCEBYMMDTdlpa3kwND/IkbdICVOZt7Z4UrDq8kQw53j2mrrSBkpI6xSbGB9YRaXEY0BMv/9bo/BYCWTFYgGFoDHB1J82p72aPnJU4QzwqKuY1cUBEPGxVbG19LLN4h/RcvOuqFGj5xeB7PysM5mo1QajNG8QtiNeDlI3XxBG/RwAiVIis1KLNl7ZLprgoVBcbhcDYy1SnXiu0+ittFd8VJuMQd5BJqbvDLXxh3MIy38IYnbygJFsaTotG6vtGmmpop7p2E9sl5vMTsOZIunuIC4inSuZ1sUaHIdBvI/Cqk6XUdtFCvutDzgvEGTq4nqSdrVHqHHN5CThUl04GvZnDDrr+npJr9YpNQMwWBjvjccq+taT5RqOSxNNo9PaDAp6uog1k1JfV8eMPFAkIt6uhIleC3NVY122GyhC+80WhyLiEwz2FUOIPxK5ozVUrC1cBGApk6BlgMF+DoOoz7eCpiasskIBD7SorWqihtZdlB5IuF0WEF31kDKC8WTkeqUZgo/YOEJe8ENVUfqLQ8JPCsw52ZsAC2c4WDgRiV5RRamWD42bOicdF+YlYPzcEQVMPBS0H13yjJt4dtI4FvtzlURF1agxPPlI9P+0m0zCDOTKCe0Zaw7v2BITXL3wqEBHS/xP8LGl5l+a1YcMvvtAMZ8jRDGKGKYbk7g4590YRdVP7aisBpc7dpDCHs5LpQnxeE9wc00qX19RN110BKeItKGImIW5BAnJsE+mHGQ4JI9feFeiJ91uRVfmnZLYgE6DM5ThhNtLlEhdrbcHiTprt548AAwDrc6pzJlPtpgAAAABJRU5ErkJggg==)}.w7-document-chapter .chapter-title[data-v-8863de70]{margin-bottom:30px}.w7-document-chapter .api .api-con[data-v-8863de70]{margin-bottom:50px}.w7-document-chapter .api .api-con .top[data-v-8863de70]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:20px}.w7-document-chapter .api .api-con .top .line-wrap[data-v-8863de70],.w7-document-chapter .api .api-con .top[data-v-8863de70]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.w7-document-chapter .api .api-con .top .line-wrap .line[data-v-8863de70]{width:3px;height:18px;background:#999;margin-right:10px}.w7-document-chapter .api .api-con .top .line-wrap .text[data-v-8863de70]{color:#666;font-size:18px;font-weight:600}.w7-document-chapter .api .api-con .top .line-wrap img[data-v-8863de70]{margin-left:10px;cursor:pointer}.w7-document-chapter .api .api-con .top .el-button[data-v-8863de70]{margin-left:10px}.w7-document-chapter .api .api-con .c-con[data-v-8863de70]{border:1px solid #eee;border-radius:2px;padding:15px 20px;margin-bottom:20px}.w7-document-chapter .api .api-con .c-con[data-v-8863de70] .el-tabs__header{margin-bottom:25px}.w7-document-chapter .api .api-con .c-con[data-v-8863de70] .type-body .el-form-item{margin-bottom:20px}.w7-document-chapter .api .api-con .c-con[data-v-8863de70] .type-body .el-form-item .el-form-item__content,.w7-document-chapter .api .api-con .c-con[data-v-8863de70] .type-body .el-form-item .el-form-item__label{height:auto;line-height:normal}.w7-document-chapter .api .api-con .c-con .custom-tree-node[data-v-8863de70]{width:100%}.w7-document-chapter .api .api-con .c-con .el-row .el-form-item[data-v-8863de70]{margin-bottom:10px}.w7-document-chapter .api .api-con .c-con .el-row .el-form-item.rule-question[data-v-8863de70]{position:relative}.w7-document-chapter .api .api-con .c-con .el-row .el-form-item.rule-question .rule-icon[data-v-8863de70]{position:absolute;right:10px;color:#999;font-size:12px;line-height:40px}.w7-document-chapter .api .api-con .c-con .el-row .el-form-item.rule-question .rule-icon[data-v-8863de70]:hover{color:#3296fa}.w7-document-chapter .api .api-con .c-con .el-row:last-of-type .el-col .el-form-item[data-v-8863de70]{margin-bottom:0}.w7-document-chapter .api .api-con .c-con .el-row .el-checkbox[data-v-8863de70]{margin:10px 10px 0 15px}.w7-document-chapter .api .api-con .c-con .add[data-v-8863de70],.w7-document-chapter .api .api-con .c-con .delete[data-v-8863de70]{margin-left:10px;height:40px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;float:left;font-size:24px;cursor:pointer}.w7-document-chapter .api .api-con .c-con[data-v-8863de70] .el-tabs .el-tree>.el-tree-node:nth-last-child(2) .delete{display:none}.w7-document-chapter .api .api-con .c-bottom .mock .m-tit[data-v-8863de70]{color:#333;margin-bottom:10px;font-size:14px}.w7-document-chapter .api .api-con .c-bottom .mock .m-tit .el-icon-refresh[data-v-8863de70]{color:#3296fa;font-weight:600;font-size:15px;cursor:pointer}.w7-document-chapter .api .api-con .c-bottom .mock .m-con[data-v-8863de70]{border:1px solid #eee;border-radius:2px;background-color:#bbb;max-height:90vh;height:100%;overflow:auto;padding:15px}.w7-document-chapter .api .api-con .c-bottom .mock .m-con pre[data-v-8863de70]{margin:0}.w7-document-chapter .api .api-con .el-select[data-v-8863de70]{width:100%}.w7-document-chapter .api .api-con.response-api .c-con[data-v-8863de70] .el-tree>.el-tree-node:nth-last-child(2) .delete{display:none}.w7-document-chapter .api .api-con[data-v-8863de70] .el-tree-node__content{height:40px;margin-bottom:10px}.w7-document-chapter .api .api-con[data-v-8863de70] .el-tree-node__content:hover{background-color:transparent}.w7-document-chapter .api .api-con[data-v-8863de70] .el-input__inner{border:none;border-bottom:1px solid #dcdfe6;border-radius:0}.w7-document-chapter .api .basic-information .mock-api[data-v-8863de70] .el-form-item__content{display:inline-block;width:calc(100% - 105px);cursor:pointer}.w7-document-chapter .api .basic-information .mock-api[data-v-8863de70] .el-form-item__content input{padding:0 0 0 10px;cursor:pointer}.api[data-v-8863de70] .el-tree-node:focus>.el-tree-node__content{background-color:transparent}[v-cloak]{display:none!important}.mock-api-tip{top:270px!important;left:580px!important}.hljs{background-color:#bbb!important}.w7-tree.el-tree--highlight-current .el-tree-node__children .is-checked[data-active=tree-active]>.el-tree-node__content,.w7-tree.el-tree--highlight-current .el-tree-node__children .is-current[data-active=tree-active]>.el-tree-node__content,.w7-tree.el-tree--highlight-current>.is-checked[data-active=tree-active]>.el-tree-node__content,.w7-tree.el-tree--highlight-current>.is-current[data-active=tree-active]>.el-tree-node__content{background-color:#fff!important} ================================================ FILE: public/css/chunk-079f5797.5ffb7ccc.css ================================================ .w7-table .oper .wi{margin-left:25px}.w7-table .oper .wq{margin-left:25px;font-size:16px;cursor:pointer;color:#666;outline:0} ================================================ FILE: public/css/chunk-07e6273c.8f6be2eb.css ================================================ .setting-nav .page-head{padding-bottom:20px}.setting-nav .we7-panel-form__header{margin-top:5px}.setting-nav .demo-input-btn{width:100%;text-align:right}.setting-nav .demo-input-btn .add-menu{padding:9px 30px}.setting-nav .w7-table{margin-top:20px} ================================================ FILE: public/css/chunk-10615ad3.8f32f691.css ================================================ li[data-v-cc65867e],ul[data-v-cc65867e]{list-style:none;margin:0;padding:0}.install .i-header[data-v-cc65867e]{font-size:32px;color:#333;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:50px}.install .i-header img[data-v-cc65867e]{margin-right:10px}.install .i-con .c-top[data-v-cc65867e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:40px;font-size:28px}.install .i-con .c-top img[data-v-cc65867e]{margin-right:10px}.install .i-con .c-top .num[data-v-cc65867e]{color:#39b54a}.install .i-con .c-top .num.error[data-v-cc65867e]{color:#e63d2e}.install .i-con ul[data-v-cc65867e]{padding:50px 0 100px 50px}.install .i-con ul li[data-v-cc65867e]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;font-size:14px;margin-bottom:20px}.install .i-con ul li.li1[data-v-cc65867e]{color:#999;margin-bottom:30px;font-size:16px}.install .i-con ul li .l-left[data-v-cc65867e]{width:250px}.install .i-con ul li .l-center[data-v-cc65867e]{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.install .i-con ul li .l-center img[data-v-cc65867e]{margin-right:10px}.install .i-con ul li .l-right[data-v-cc65867e]{width:100px;text-align:right}.install .i-con ul li .l-right span[data-v-cc65867e]{color:#e63d2e}.install .i-con .c-bottom[data-v-cc65867e]{text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.install .i-con .c-bottom .btn[data-v-cc65867e]{color:#fff;background-color:#3296fa;width:270px;line-height:60px;text-align:center;cursor:pointer} ================================================ FILE: public/css/chunk-1e630799.23444e38.css ================================================ .container[data-v-1598ee81]{padding:0 40px}.el-input__icon[data-v-1598ee81]{color:#3296fa}.btns[data-v-1598ee81]{margin-top:20px}.btns button[data-v-1598ee81]{margin:0 20px;padding:12px 30px}.btns .el-pagination[data-v-1598ee81]{margin-top:0} ================================================ FILE: public/css/chunk-20afbe1d.9cfc489e.css ================================================ .account-info .el-main[data-v-25228318]{padding:0 25px 0 15px}.account-info .page-head[data-v-25228318]{padding-bottom:0} ================================================ FILE: public/css/chunk-211c6b12.9850dd89.css ================================================ [data-v-ca45b106]::-webkit-scrollbar{width:7px;height:7px;background-color:#f5f5f5}[data-v-ca45b106]::-webkit-scrollbar-track{box-shadow:inset 0 0 6px rgba(0,0,0,.3);-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.3);border-radius:10px;background-color:#f5f5f5}[data-v-ca45b106]::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px rgba(0,0,0,.1);-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,.1);background-color:#c8c8c8}.el-main[data-v-ca45b106]{min-height:630px;margin-bottom:50px}.el-main .share .share-block[data-v-ca45b106]:hover{color:#3296fa}.el-main .share .share-block:hover i[data-v-ca45b106]{color:#3296fa!important}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view{border-radius:5px}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .el-tree-node__expand-icon{position:absolute;right:0;z-index:2;color:#606266;font-size:16px}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .el-tree-node__expand-icon:before{top:0!important;-webkit-transform:translateY(0)!important;transform:translateY(0)!important;margin-top:0!important;position:static!important;content:"\E6E0";font-size:16px}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .el-tree-node__expand-icon.expanded{-webkit-transform:unset;transform:unset}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .el-tree-node__expand-icon.expanded:before{content:"\E790"}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .el-tree-node__expand-icon.is-leaf{color:transparent}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .custom-tree-node{padding-left:30px!important}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .el-tree .el-tree-node:nth-last-child(2) .custom-tree-node{border-bottom:none}.w7-aside-home-content[data-v-ca45b106] .el-scrollbar__view .el-tree-node__expand-icon.expanded:before{content:"\E6DF"!important}[data-v-ca45b106] .feedText .el-textarea__inner{height:94px}.view .document-name[data-v-ca45b106]{padding:35px 0 0;color:#333;font-size:26px;text-align:center}.view .search-wrap[data-v-ca45b106]{padding:35px 290px 0 0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:10px}.view .search-wrap .navigation span.last-active[data-v-ca45b106]{color:#3296fa}.view .search-wrap .el-input[data-v-ca45b106]{width:440px}.view .search-wrap .el-input[data-v-ca45b106] .el-input__suffix{right:0}.view .search-wrap .el-input[data-v-ca45b106] .el-input__suffix .el-input__suffix-inner{color:#fff;background-color:#383d41;border-radius:0 3px 3px 0;height:100%;display:block;cursor:pointer}.view .search-wrap .el-input[data-v-ca45b106] .el-input__suffix .el-input__suffix-inner .el-icon-search{width:60px;font-size:20px}.view .catalog[data-v-ca45b106]{color:#333;font-size:16px;margin-bottom:20px}.view .catalog[data-v-ca45b106],.view .img-dialog[data-v-ca45b106]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.view .img-dialog[data-v-ca45b106]{position:fixed;background-color:rgba(0,0,0,.3);width:100%;height:100%;z-index:9999;left:0;top:0;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.view .img-dialog .img-wrap[data-v-ca45b106]{max-height:100vh;overflow-y:auto}.view .img-dialog .img-wrap img[data-v-ca45b106]{max-width:1800px;height:auto}.view #feedBtn[data-v-ca45b106]{display:none;background-color:#fff;border:1px solid #00a4ff;color:#00a4ff;width:100px;height:40px;position:absolute;z-index:999}.view #feedBtn[data-v-ca45b106]:hover{background-color:#00a4ff;color:#fff}.view #feedBtn:hover span.triangle-1[data-v-ca45b106]{border-top-color:#00a4ff}.view #feedBtn i[data-v-ca45b106]{position:absolute;left:8px;top:14px;font-size:12px}.view #feedBtn span[data-v-ca45b106]{display:inline-block;padding-left:8px}.view #feedBtn span.triangle[data-v-ca45b106]{position:absolute;width:0;height:0;padding:0;left:50%;margin-left:-4px;border:8px solid transparent;border-top-color:#00a4ff;top:38px;z-index:1}.view #feedBtn span.triangle-1[data-v-ca45b106]{position:absolute;width:0;height:0;padding:0;left:50%;margin-left:-3px;border:7px solid transparent;border-top-color:#fff;top:38px;z-index:1}@media screen and (max-width:768px){.view .search-wrap[data-v-ca45b106]{padding:35px 0 0 0}.view .search-wrap .el-input[data-v-ca45b106]{width:200px}.home-container .el-main .warpper .markdown-body .markdown-content[data-v-ca45b106]{padding-right:0}}body{background-color:#fff}.hide .el-upload--picture-card{display:none}.transition--300{-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.toc{overflow-y:auto}.toc>.toc-list{overflow:hidden}.toc>.toc-list li{list-style:none}.toc-list{margin:0;padding-left:10px}a.toc-link{color:currentColor}.is-collapsible{overflow:hidden;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.is-collapsed{max-height:0}.is-collapsed .toc-link:before{height:0}.is-position-fixed{position:fixed!important;top:0}.is-active-link{color:#3296fa!important}.toc-link:before{background-color:#eee;content:"";height:32px;left:0;position:absolute;width:2px}.is-active-link:before{background-color:#3296fa}.chapter-warpper>.el-scrollbar>.el-scrollbar__wrap{overflow:hidden}.chapter-warpper .share-wechat{position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:10px;width:240px;background:#fff;border:1px solid #d8d8d8;z-index:10000;font-size:12px}.chapter-warpper .share-wechat .head{position:relative;height:16px;font-weight:700;line-height:16px;color:#000}.chapter-warpper .share-wechat .head .el-icon-close{position:absolute;right:0;top:0;font-size:16px;cursor:pointer}.chapter-warpper .share-wechat .content{padding:20px 40px}.chapter-warpper .share-wechat .foot{line-height:22px;color:#666}.home-container{position:relative}.home-container .w7-aside-home{min-width:221px;width:calc(50% - 440px)!important;position:fixed;top:165px;height:calc(100vh - 60px)}.home-container .w7-aside-home .w7-aside-home-box{padding-left:calc(100% - 260px)}.home-container .w7-aside-home .w7-aside-home-head{font-size:16px;padding:40px 0 30px;font-weight:600;text-align:center}.home-container .w7-aside-home .w7-aside-home-search{position:relative;padding-bottom:30px;margin-bottom:20px;margin-right:20px;border-bottom:1px solid #e1e3e6}.home-container .w7-aside-home .w7-aside-home-content{height:650px}.home-container .w7-aside-home .w7-aside-home-content .el-scrollbar__wrap{overflow-x:auto}.home-container .w7-aside-home .w7-tree{font-size:14px;background:#f7f8fa}.home-container .w7-aside-home .w7-tree .el-tree-node__content{position:relative;height:auto;overflow:hidden}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:20px;z-index:1;height:40px}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node.doc{z-index:3}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over{-webkit-box-flex:1;-ms-flex:1;flex:1;width:0;margin-left:10px;padding-right:10px}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level1{font-size:16px;color:#333}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level2{font-size:14px;color:#666}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level3,.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level4,.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level5{font-size:12px;color:#999}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .el-icon-caret-right{margin-left:-20px;cursor:pointer;color:#c0c4cc;font-size:12px;padding:5px}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content{border-left:2px solid transparent}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over{-webkit-box-flex:1;-ms-flex:1;flex:1;width:0;margin-left:10px;padding-right:10px}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level1{font-size:16px;color:#333}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level2{font-size:14px;color:#666}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level3,.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level4,.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level50{font-size:12px;color:#999}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content:hover .text-over span{color:#3296fa}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node.is-current{border-left:2px solid #3296fa}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node.is-current .text-over span{color:#3296fa!important}.home-container .w7-aside-home .w7-tree .is-current .el-tree-node__content{background-color:#f0f2f5}.home-container .w7-aside-home.fix-top{top:110px}.home-container .el-main{padding:0;padding-left:calc(50% - 420px)}@media (max-width:1420px){.home-container .el-main{padding-left:260px}}.home-container .el-main .line{border-bottom:1px solid #eee}.home-container .el-main .warpper{font-size:14px;color:#333;max-width:1200px}.home-container .el-main .warpper .markdown-body .markdown-content{margin-right:30px;padding-right:290px;width:100%}.home-container .el-main .warpper .markdown-body .markdown-content h2{border-bottom:none}.home-container .el-main .warpper .markdown-body .markdown-content img{max-width:100%;cursor:pointer}.home-container .el-main .warpper .markdown-body .markdown-content table tr th{width:300px;white-space:nowrap}.home-container .el-main .warpper .markdown-body .markdown-content table tr td:first-child{white-space:nowrap}.home-container .el-main .warpper .markdown-body .markdown-menu{width:240px;font-size:14px;line-height:1;background-color:#fff;top:222px;-webkit-box-sizing:border-box;box-sizing:border-box;position:fixed;z-index:1000;right:26px;max-height:650px;min-height:650px;overflow-y:auto}@media (min-width:1600px){.home-container .el-main .warpper .markdown-body .markdown-menu{left:calc(50% + 530px);right:unset}}.home-container .el-main .warpper .markdown-body .markdown-menu .el-scrollbar__wrap{overflow-x:auto}.home-container .el-main .warpper .markdown-body .markdown-menu h3,.home-container .el-main .warpper .markdown-body .markdown-menu p:first-child{margin-top:0;margin-bottom:0;font-size:0}.home-container .el-main .warpper .markdown-body .markdown-menu li,.home-container .el-main .warpper .markdown-body .markdown-menu ul{list-style:none;padding:0;margin-top:0}.home-container .el-main .warpper .markdown-body .markdown-menu ul{padding-left:20px}.home-container .el-main .warpper .markdown-body .markdown-menu a{color:#989898;display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;height:32px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.home-container .el-main .warpper .markdown-body .markdown-menu a:hover{color:#3296fa;text-decoration:none}.home-container .el-main .warpper .markdown-body .markdown-menu.fix-top{top:110px}.home-container .el-main .warpper .article .title{font-size:20px}.home-container .el-main .warpper .article .info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:15px;padding-right:290px}.home-container .el-main .warpper .article .info .time{margin-right:30px;font-size:12px;color:#999}.home-container .el-main .warpper .article .info .author{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;color:#999}.home-container .el-main .warpper .article .info .share{display:-webkit-box;display:-ms-flexbox;display:flex}.home-container .el-main .warpper .article .info .share-block{margin-left:5px;width:30px;height:30px;color:#989898;line-height:27px;text-align:center;border:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.home-container .el-main .warpper .article .info .share-block:first-child{margin-left:0}.home-container .el-main .warpper .article .info .share-block.checked,.home-container .el-main .warpper .article .info .share-block:hover{border-color:#3296fa;color:#3296fa}.home-container .el-main .warpper .article-list .highlight{color:#3296fa}.home-container .el-main .warpper .article-list .back{margin-top:30px}.home-container .el-main .warpper .article-list .number-result{margin-top:10px;margin-bottom:50px}.home-container .el-main .warpper .article-list .list-content{margin-bottom:60px}.home-container .el-main .warpper .article-list .list-content .header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:10px}.home-container .el-main .warpper .article-list .list-content .header .title{font-size:20px;cursor:pointer}.home-container .el-main .warpper .article-list .list-content .header .info{padding-top:7px}.home-container .el-main .warpper .article-list .list-content .header .info span{margin-left:23px;color:#999}.home-container .el-main .warpper .article-list .list-content .content{color:#999;line-height:24px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-left:0;cursor:pointer}.home-container .el-main .warpper .article-list .no-result{padding:200px 0;color:#8d8d8d;font-size:24px;font-weight:400;font-style:normal;text-align:center;line-height:40px;height:40px}.hljs{background:#eee!important}.markdown-body .markdown-content{width:0}.markdown-body .markdown-content :focus{outline:none}.markdown-body .highlight pre,.markdown-body code,.markdown-body pre{background-color:#eee!important}.w7-top{width:40px;height:42px;padding-top:8px;background-color:#000;color:#fff;text-align:center;font-size:10px;line-height:1}.w7-top i{font-size:20px}@media screen and (max-width:768px){.navBtn{display:block;position:absolute;top:40px;left:20px}.navBtn i{font-size:28px}.shadow{width:100%;height:100%;position:fixed;background:rgba(0,0,0,.5);z-index:100}.admin-view>.el-header,.markdown-menu,.share{display:none!important}.home-container .w7-aside-home{display:none}.home-container .w7-aside-home.phone{position:absolute;left:0;top:0;z-index:101;display:block}.admin-content{padding-top:0!important}.home-container .el-main{padding-left:0}.chapter-warpper .warpper{margin-top:0!important;margin-left:0!important;padding:20px}.home-container .el-main .warpper .article .info{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-right:0}.home-container .el-main .warpper .article .info .time{margin-right:0}.home-container .el-main .warpper .article .info .author{text-align:right}} ================================================ FILE: public/css/chunk-22e40c8e.2d7343f0.css ================================================ .setting-login .page-head{padding-bottom:0}.setting-login .textBtn{padding-left:0} ================================================ FILE: public/css/chunk-25f82f1a.3e053f1b.css ================================================ .install .i-header[data-v-39e9c0e4]{font-size:32px;color:#333;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:50px}.install .i-header img[data-v-39e9c0e4]{margin-right:10px}.install .i-con[data-v-39e9c0e4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.install .i-con .c-top[data-v-39e9c0e4]{width:650px;margin-bottom:50px}.install .i-con .c-top .t-tit[data-v-39e9c0e4]{text-align:right;margin-bottom:50px;color:#333;font-size:28px}.install .i-con .c-top .loading[data-v-39e9c0e4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.install .i-con .c-top .loading img[data-v-39e9c0e4]{margin-bottom:20px}.install .i-con .c-top .loading .text[data-v-39e9c0e4]{color:#333;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.install .i-con .c-top .loading .text i[data-v-39e9c0e4]{margin-left:5px;font-size:20px}.install .i-con .c-top[data-v-39e9c0e4] .el-form-item__label{padding-right:30px}.install .i-con .c-top[data-v-39e9c0e4] .el-select{width:100%}.install .i-con .c-bottom[data-v-39e9c0e4]{text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:70px}.install .i-con .c-bottom .btn[data-v-39e9c0e4]{color:#fff;background-color:#3296fa;width:270px;line-height:60px;text-align:center;cursor:pointer}.install .success[data-v-39e9c0e4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-top:150px}.install .success .s-top[data-v-39e9c0e4]{margin-bottom:30px}.install .success .s-top .top[data-v-39e9c0e4]{font-size:30px;color:#333;margin-bottom:20px}.install .success .s-top .top i[data-v-39e9c0e4]{color:#3bb64c;font-size:30px;margin-right:10px}.install .success .s-top .center[data-v-39e9c0e4]{margin-bottom:10px;padding-left:45px}.install .success .s-top .bottom[data-v-39e9c0e4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:125px}.install .success .s-top .bottom span[data-v-39e9c0e4]{background-color:#d9dde0;color:#333;padding:5px 45px;font-size:14px;border:1px solid #ddd;cursor:pointer}.install .success .c-bottom[data-v-39e9c0e4]{text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:70px}.install .success .c-bottom .btn[data-v-39e9c0e4]{color:#fff;background-color:#3296fa;width:270px;line-height:60px;text-align:center;cursor:pointer} ================================================ FILE: public/css/chunk-3337dd8f.3c05d3bd.css ================================================ .setting-thirdParty .page-head{padding-bottom:0} ================================================ FILE: public/css/chunk-3bcf66f7.0b7a87d8.css ================================================ .setting-store .page-head[data-v-65f326c0]{padding-bottom:0}.we7-topLine[data-v-65f326c0]{height:10px;border-top:2px solid #f0f0f4;margin-top:15px}.container[data-v-65f326c0]{padding:0 40px}.baseInfo[data-v-65f326c0]{width:100px;height:50px;border-bottom:2px solid #2679ec;font-size:14px;line-height:50px;text-align:center;color:#2679ec;cursor:pointer}.we7-panel-form__body .el-form-item[data-v-65f326c0]{border-top:1px solid #e8e9eb!important;border-bottom:none} ================================================ FILE: public/css/chunk-416ef35e.8e4636b1.css ================================================ .user-permission .el-aside{padding-left:20px}.user-permission .el-main{padding:0}.user-permission .el-table,.user-permission .el-table tr,.user-permission .el-table tr th{background-color:#fcfcfc!important}.user-permission .el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#fff}.user-permission .select-power .el-select{margin-right:20px;width:200px}.user-permission .select-power .demo-input-suffix{-webkit-box-flex:1;-ms-flex:1;flex:1}.user-permission .select-power .demo-input-suffix .el-input{width:300px}.user-permission .select-power .more-edit{text-align:right;color:#3296fa;cursor:pointer}.user-permission .btns{margin-top:20px}.user-permission .el-table .cell{overflow:auto!important}.user-permission .el-table .cell .wi-folder{color:#ffcd2c}.user-permission .get-more{margin:20px auto;text-align:center}.container[data-v-5df92025]{padding:0 40px}.title[data-v-5df92025]{margin-bottom:30px;width:100%;height:30px;font-size:14px;background-color:#fcfcfc;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.title .title-line[data-v-5df92025]{width:110px;height:2px;background:#3296fa;margin:0 30px}.title .active[data-v-5df92025]{color:#3296fa} ================================================ FILE: public/css/chunk-457e440b.d1b08c94.css ================================================ li[data-v-0d4061d4],ul[data-v-0d4061d4]{margin:0;padding:0;list-style-type:none}.home-search[data-v-0d4061d4]{background-color:#f9f9f9;padding:30px 0}.home-search .w1200[data-v-0d4061d4]{width:1200px;margin:0 auto}.home-search .search-wrap[data-v-0d4061d4]{width:1200px;margin:0 auto 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.home-search .search-wrap[data-v-0d4061d4] .el-input .el-input__inner{height:60px;line-height:60px;border-radius:60px 0 0 60px;padding-left:40px}.home-search .search-wrap .search-btn[data-v-0d4061d4]{width:110px;height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background-color:#383c40;border-radius:0 60px 60px 0;color:#fff;cursor:pointer}.home-search .search-total[data-v-0d4061d4]{color:#333;font-size:14px;text-align:center;margin-bottom:35px}.home-search .search-total span[data-v-0d4061d4]{color:#e63e2e}.home-search .search-list[data-v-0d4061d4]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.home-search .search-list .left[data-v-0d4061d4]{width:180px;background-color:#fff;margin-right:25px;padding:20px;max-width:500px;overflow-y:auto}.home-search .search-list .left .l-tit[data-v-0d4061d4]{margin-bottom:20px}.home-search .search-list .left .l-tit .text[data-v-0d4061d4]{margin-bottom:15px;color:#000;font-size:16px;font-weight:600}.home-search .search-list .left .l-tit .line[data-v-0d4061d4]{position:relative;height:1px;background-color:#ddd}.home-search .search-list .left .l-tit .line span[data-v-0d4061d4]{background-color:#2d5fff;height:3px;width:20px;position:absolute;left:0;top:-2px}.home-search .search-list .left ul li[data-v-0d4061d4]{font-size:14px;color:#444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:10px 0;cursor:pointer}.home-search .search-list .left ul li[data-v-0d4061d4]:hover{color:#3296fa}.home-search .search-list .right[data-v-0d4061d4]{background-color:#fff;-webkit-box-flex:1;-ms-flex:1;flex:1;padding:20px}.home-search .search-list .right .r-con[data-v-0d4061d4]{padding-bottom:35px;cursor:pointer}.home-search .search-list .right .r-con .tit[data-v-0d4061d4]{font-size:18px;font-weight:600;color:#000;border-bottom:1px solid #ddd;padding-bottom:15px;margin-bottom:15px}.home-search .search-list .right .r-con .p[data-v-0d4061d4]{line-height:24px;font-size:14px;color:#444;margin-bottom:10px}.home-search .search-list .right .r-con .nav[data-v-0d4061d4]{color:#333;font-size:14px;font-weight:600}.home-search .search-list .right[data-v-0d4061d4] .el-pagination{margin-top:10px} ================================================ FILE: public/css/chunk-564fade6.0e433876.css ================================================ ================================================ FILE: public/css/chunk-56652b45.339826ab.css ================================================ .admin-login[data-v-2a74da90]{background:url(../img/login_bg.cfc5367a.png) no-repeat 50%}.admin-login[data-v-2a74da90] .login-form .users{position:relative}.admin-login[data-v-2a74da90] .login-form .users .background{position:absolute;top:36px;left:8px;width:30px;height:30px;z-index:1000}.admin-login[data-v-2a74da90] .login-form .users .background img{width:100%;height:100%}.admin-login[data-v-2a74da90] .login-form .passwords{position:relative}.admin-login[data-v-2a74da90] .login-form .passwords .background{position:absolute;top:36px;left:8px;width:30px;height:30px;z-index:1000}.admin-login[data-v-2a74da90] .login-form .passwords .background img{width:100%;height:100%}.admin-login[data-v-2a74da90] .login-form .codes{position:relative}.admin-login[data-v-2a74da90] .login-form .codes .background{position:absolute;top:36px;left:8px;width:30px;height:30px;z-index:1000}.admin-login[data-v-2a74da90] .login-form .codes .background img{width:100%;height:100%}.admin-login[data-v-2a74da90] .login-form .el-input input{border-radius:20px;border-top:1px solid #dcdfe6!important;border-left:1px solid #dcdfe6!important;border-right:1px solid #dcdfe6!important}.admin-login[data-v-2a74da90] .login-form .el-input__icon{color:#fff;font-size:20px;width:40px;background-color:#2679ec;border-radius:20px;-webkit-transform:scale(.618);transform:scale(.618)}.admin-login[data-v-2a74da90] .login-btn{color:#fff;background-color:#2679ec;border:none} ================================================ FILE: public/css/chunk-57425795.c9955d2b.css ================================================ .el-main[data-v-70c2a92a]{padding:0 25px 20px 15px} ================================================ FILE: public/css/chunk-5b1f82de.316d8ff0.css ================================================ .setting[data-v-4599d29e]{padding:30px 0}.setting .title[data-v-4599d29e]{font-size:16px;font-weight:600;margin-bottom:30px}.setting .el-table .el-table__body tbody tr td .cell a[data-v-4599d29e]:hover{color:#4096f9}.setting .el-table .el-table__body tbody tr td .cell .nav-icon[data-v-4599d29e]{width:50px;height:50px}.setting .tab-wrap[data-v-4599d29e]{position:relative}.setting .tab-wrap .add[data-v-4599d29e]{position:absolute;right:0;top:0}.setting .reset-element .el-table .el-table__body tbody tr td .edit[data-v-4599d29e]{color:#4096f9;cursor:pointer}.setting .reset-element .el-table .el-table__body tbody tr td .remove[data-v-4599d29e]{color:#f56c6c;margin-left:10px;cursor:pointer}.setting .avatar-uploader[data-v-4599d29e] .el-upload{border:1px solid #d9d9d9;border-radius:6px;cursor:pointer;position:relative;overflow:hidden}.setting .avatar-uploader[data-v-4599d29e] .el-upload:hover{border-color:#409eff}.setting .avatar-uploader[data-v-4599d29e] .avatar-uploader-icon{font-size:28px;color:#8c939d;width:100px;height:100px;line-height:100px;text-align:center}.setting .avatar-uploader[data-v-4599d29e] .avatar{width:100px;height:100px;display:block}.setting[data-v-4599d29e] .el-dialog .el-dialog__body .el-form .el-form-item .el-autocomplete,.setting[data-v-4599d29e] .el-dialog .el-dialog__body .el-form .el-form-item .el-input-number,.setting[data-v-4599d29e] .el-dialog .el-dialog__body .el-form .el-form-item .el-select{width:230px}.setting[data-v-4599d29e] .el-dialog .el-dialog__body .el-form .el-form-item .el-input-number .el-input__inner{text-align:left}.setting[data-v-091246e5]{padding:30px 0}.setting .title[data-v-091246e5]{font-size:16px;font-weight:600;margin-bottom:30px}.setting table[data-v-091246e5]{width:100%;border-spacing:0}.setting table tr th[data-v-091246e5]{background-color:#f8f8f8;padding:10px;text-align:center;font-size:14px}.setting table tr td[data-v-091246e5]{padding:15px 10px;text-align:center;font-size:14px;border-bottom:1px solid #ddd}.setting table tr td span[data-v-091246e5]{color:#4096f9;cursor:pointer}.setting .avatar-uploader[data-v-091246e5] .el-upload{border:1px solid #d9d9d9;border-radius:6px;cursor:pointer;position:relative;overflow:hidden}.setting .avatar-uploader[data-v-091246e5] .el-upload:hover{border-color:#409eff}.setting .avatar-uploader[data-v-091246e5] .avatar-uploader-icon{font-size:28px;color:#8c939d;width:178px;height:178px;line-height:178px;text-align:center}.setting .avatar-uploader[data-v-091246e5] .avatar{width:178px;height:178px;display:block} ================================================ FILE: public/css/chunk-654f0b98.193fcd50.css ================================================ .pagination-wrap .el-pagination[data-v-749b2369]{float:none;text-align:center}.card-box[data-v-749b2369]{margin-top:30px;width:90%}.card-warpper[data-v-749b2369]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0 -10px}.w7-card[data-v-749b2369]{position:relative;margin:10px 20px 10px 10px;width:215px;height:300px;-webkit-transition:.3s;transition:.3s;-webkit-box-sizing:border-box;box-sizing:border-box;background-position:50%;background-size:100% 100%;background-repeat:no-repeat;background-color:#e6f2ff;border-radius:10px 20px 20px 10px}.w7-card .w7-card-title[data-v-749b2369]{font-size:16px;color:#333;padding:0 10px;margin-top:100px;height:64px;line-height:32px;color:#2f2f2f;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-align:center;-webkit-box-pack:center}.w7-card .w7-card-title.has-cover[data-v-749b2369]{background-image:-webkit-gradient(linear,left top,right top,from(#e7f3ff),to(#f5f9fd));background-image:linear-gradient(90deg,#e7f3ff,#f5f9fd)}.w7-card .mask-icon[data-v-749b2369]{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);right:-12px}.w7-card .time-wrap[data-v-749b2369]{position:absolute;bottom:30px;right:10px;text-align:right}.w7-card .time-wrap .wi-lock[data-v-749b2369]{font-size:22px;color:#999;margin-bottom:15px}.w7-card .time-wrap .w7-card-time[data-v-749b2369]{font-size:14px;color:#818d9b}.w7-card.has-cover .icon-box[data-v-749b2369]{background-color:rgba(0,0,0,.2)}.w7-card .icon-box[data-v-749b2369]{display:none;position:absolute;width:100%;left:0;right:3px;bottom:0;padding:10px;text-align:right;background-color:#b7cee8;border-radius:0 0 20px 10px}.w7-card .icon-box i[data-v-749b2369]{color:#fff;font-size:24px;position:relative;margin-left:20px}.w7-card .icon-box i .pos-box[data-v-749b2369]{position:absolute;top:20px;left:-10px;display:none;text-align:center;width:40px;height:20px;line-height:16px;background:#000;color:#fff;font-size:14px}.w7-card .icon-box i .pos-box .arr-box[data-v-749b2369]{position:relative;width:100%;height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;background:#000;border:2px solid #000}.w7-card .icon-box i .arrow[data-v-749b2369]{width:0;height:0;position:absolute;border:5px solid transparent;border-bottom-color:#000;top:-10px;left:30%}.w7-card .icon-box i[data-v-749b2369]:hover{color:#3296fa}.w7-card .icon-box i:hover .pos-box[data-v-749b2369]{display:block}.w7-card .icon-box img[data-v-749b2369]{margin-left:10px}.w7-card .el-icon-lock[data-v-749b2369]:hover{color:#fff}.w7-card .mask[data-v-749b2369]{position:absolute;left:0;top:0;width:100%;height:100%;background-color:hsla(0,0%,100%,.6);z-index:2}.w7-card .mask-content[data-v-749b2369]{position:absolute;left:0;top:0;width:100%;height:100%;z-index:3}.w7-card[data-v-749b2369]:hover{cursor:pointer;border-color:#bdddfd;-webkit-transform:translateY(-10px);transform:translateY(-10px)}.w7-card:hover .w7-card-title[data-v-749b2369]{color:#3296fa}.w7-card:hover .icon-box[data-v-749b2369]{display:block}.w7-card:hover .time-wrap[data-v-749b2369]{bottom:60px}.add-project[data-v-749b2369]{background:#fff;color:#b6b5b5;background:#f5f5f5;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.add-project img[data-v-749b2369]{margin-bottom:10px}.add-project .add-text[data-v-749b2369]{font-size:16px;color:#2f2f2f}.ownership[data-v-749b2369]{margin-left:120px}.el-dialog__footer[data-v-749b2369]{border-top:1px solid #eee}.redBtn[data-v-749b2369]{color:#eb2e56}.transfer-tip[data-v-749b2369]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:-10px;margin-bottom:15px}.transfer-tip i[data-v-749b2369]{margin-right:10px;font-size:18px;color:#f76260} ================================================ FILE: public/css/chunk-65eafec3.169b0d4d.css ================================================ .w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view{border-radius:5px}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .el-tree-node__expand-icon{position:absolute;right:0;z-index:2;color:#606266;font-size:16px}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .el-tree-node__expand-icon:before{top:0!important;-webkit-transform:translateY(0)!important;transform:translateY(0)!important;margin-top:0!important;position:static!important;content:"\E6E0";font-size:16px}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .el-tree-node__expand-icon.expanded{-webkit-transform:unset;transform:unset}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .el-tree-node__expand-icon.expanded:before{content:"\E790"}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .el-tree-node__expand-icon.is-leaf{color:transparent}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .custom-tree-node{padding-left:10px!important}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .el-tree .el-tree-node:nth-last-child(2) .custom-tree-node{border-bottom:none}.w7-aside-home-content[data-v-731e09c6] .el-scrollbar__view .el-tree-node__expand-icon.expanded:before{content:"\E6DF"!important}.container .document-name[data-v-731e09c6]{padding:35px 0;color:#333;font-size:26px;text-align:center}.container .search-results[data-v-731e09c6]{min-height:600px;padding-right:290px}.container .search-results .search-wrap[data-v-731e09c6]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:25px}.container .search-results .search-wrap .total[data-v-731e09c6]{color:#333}.container .search-results .search-wrap .total span[data-v-731e09c6]{color:#ff3939}.container .search-results .search-wrap .el-input[data-v-731e09c6]{width:440px}.container .search-results .search-wrap .el-input[data-v-731e09c6] .el-input__suffix{right:0}.container .search-results .search-wrap .el-input[data-v-731e09c6] .el-input__suffix .el-input__suffix-inner{color:#fff;background-color:#383d41;border-radius:0 3px 3px 0;height:100%;display:block;cursor:pointer}.container .search-results .search-wrap .el-input[data-v-731e09c6] .el-input__suffix .el-input__suffix-inner .el-icon-search{width:60px;font-size:20px}.container .search-results .con[data-v-731e09c6]{margin-bottom:25px}.container .search-results .con .name[data-v-731e09c6]{font-size:18px;color:#333;margin-bottom:10px;cursor:pointer}.container .search-results .con .content[data-v-731e09c6]{color:#666;line-height:1.6;cursor:pointer;margin-bottom:8px}.container .search-results .con .navigation[data-v-731e09c6]{color:#666;line-height:1.6;cursor:pointer}.container .search-results .con .navigation[data-v-731e09c6]:hover{color:#3296fa}.container .pagination-wrap[data-v-731e09c6]{overflow:hidden;margin-bottom:50px}body{background-color:#fff}.transition--300{-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.toc{overflow-y:auto}.toc>.toc-list{overflow:hidden;position:relative}.toc>.toc-list li{list-style:none}.toc-list{margin:0;padding-left:10px}a.toc-link{color:currentColor;height:100%}.is-collapsible{overflow:hidden;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.is-collapsed{max-height:0}.is-position-fixed{position:fixed!important;top:0}.is-active-link{color:#3296fa!important}.toc-link:before{background-color:#eee;content:" ";display:inline-block;height:inherit;left:0;margin-top:-8px;position:absolute;width:2px}.is-active-link:before{background-color:#3296fa}.chapter-warpper .share-wechat{position:fixed;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);padding:10px;width:240px;background:#fff;border:1px solid #d8d8d8;z-index:10000;font-size:12px}.chapter-warpper .share-wechat .head{position:relative;height:16px;font-weight:700;line-height:16px;color:#000}.chapter-warpper .share-wechat .head .el-icon-close{position:absolute;right:0;top:0;font-size:16px;cursor:pointer}.chapter-warpper .share-wechat .content{padding:20px 40px}.chapter-warpper .share-wechat .foot{line-height:22px;color:#666}.home-container{position:relative}.home-container .w7-aside-home{min-width:221px;width:calc(50% - 440px)!important;position:fixed;top:165px;height:calc(100vh - 60px)}.home-container .w7-aside-home .w7-aside-home-box{padding-left:calc(100% - 260px)}.home-container .w7-aside-home .w7-aside-home-head{font-size:16px;padding:40px 0 30px;font-weight:600;text-align:center}.home-container .w7-aside-home .w7-aside-home-search{position:relative;padding-bottom:30px;margin-bottom:20px;margin-right:20px;border-bottom:1px solid #e1e3e6}.home-container .w7-aside-home .w7-aside-home-content{height:650px}.home-container .w7-aside-home .w7-aside-home-content .el-scrollbar__wrap{overflow-x:auto}.home-container .w7-aside-home .w7-tree{font-size:14px;background:#f7f8fa}.home-container .w7-aside-home .w7-tree .el-tree-node__content{position:relative;height:auto;overflow:hidden}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node{-webkit-box-flex:1;-ms-flex:1;flex:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:20px;z-index:1;height:40px}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node.doc{z-index:3}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over{-webkit-box-flex:1;-ms-flex:1;flex:1;width:0;margin-left:10px;padding-right:10px}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level1{font-size:16px;color:#333}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level2{font-size:14px;color:#666}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level3,.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level4,.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .text-over .level5{font-size:12px;color:#999}.home-container .w7-aside-home .w7-tree .el-tree-node__content .custom-tree-node .el-icon-caret-right{margin-left:-20px;cursor:pointer;color:#c0c4cc;font-size:12px;padding:5px}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content{border-left:2px solid transparent}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over{-webkit-box-flex:1;-ms-flex:1;flex:1;width:0;margin-left:10px;padding-right:10px}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level1{font-size:16px;color:#333}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level2{font-size:14px;color:#666}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level3,.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level4,.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content .text-over .level50{font-size:12px;color:#999}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node .el-tree-node__content:hover .text-over span{color:#3296fa}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node.is-current{border-left:2px solid #3296fa}.home-container .w7-aside-home .w7-tree .el-tree-node__children .el-tree-node.is-current .text-over span{color:#3296fa!important}.home-container .w7-aside-home .w7-tree .is-current .el-tree-node__content{background-color:#f0f2f5}.home-container .w7-aside-home.fix-top{top:110px}.home-container .el-main{padding:0;padding-left:calc(50% - 420px)}@media (max-width:1420px){.home-container .el-main{padding-left:260px}}.home-container .el-main .line{border-bottom:1px solid #eee}.home-container .el-main .warpper{font-size:14px;color:#333;max-width:1200px}.home-container .el-main .warpper .markdown-body .markdown-content{margin-right:30px;padding-right:290px;width:100%}.home-container .el-main .warpper .markdown-body .markdown-content h2{border-bottom:none}.home-container .el-main .warpper .markdown-body .markdown-content img{max-width:100%;cursor:pointer}.home-container .el-main .warpper .markdown-body .markdown-content table tr th{width:300px;white-space:nowrap}.home-container .el-main .warpper .markdown-body .markdown-content table tr td:first-child{white-space:nowrap}.home-container .el-main .warpper .markdown-body .markdown-menu{width:240px;font-size:14px;line-height:1;background-color:#fff;top:222px;-webkit-box-sizing:border-box;box-sizing:border-box;position:fixed;z-index:1000;right:26px;max-height:650px;min-height:650px;overflow-y:auto}@media (min-width:1600px){.home-container .el-main .warpper .markdown-body .markdown-menu{left:calc(50% + 530px);right:unset}}.home-container .el-main .warpper .markdown-body .markdown-menu .el-scrollbar__wrap{overflow-x:auto}.home-container .el-main .warpper .markdown-body .markdown-menu h3,.home-container .el-main .warpper .markdown-body .markdown-menu p:first-child{margin-top:0;margin-bottom:0;font-size:0}.home-container .el-main .warpper .markdown-body .markdown-menu li,.home-container .el-main .warpper .markdown-body .markdown-menu ul{list-style:none;padding:0;margin-top:0}.home-container .el-main .warpper .markdown-body .markdown-menu ul{padding-left:20px}.home-container .el-main .warpper .markdown-body .markdown-menu ol{margin-bottom:20px}.home-container .el-main .warpper .markdown-body .markdown-menu a{color:#989898;display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;width:100%;height:32px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.home-container .el-main .warpper .markdown-body .markdown-menu a:hover{color:#3296fa;text-decoration:none}.home-container .el-main .warpper .markdown-body .markdown-menu.fix-top{top:110px}.home-container .el-main .warpper .article .title{font-size:20px}.home-container .el-main .warpper .article .info{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:15px;padding-right:290px}.home-container .el-main .warpper .article .info .time{margin-right:30px;font-size:12px;color:#999}.home-container .el-main .warpper .article .info .author{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:12px;color:#999}.home-container .el-main .warpper .article .info .share{display:-webkit-box;display:-ms-flexbox;display:flex}.home-container .el-main .warpper .article .info .share-block{margin-left:5px;width:30px;height:30px;color:#989898;line-height:27px;text-align:center;border:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.home-container .el-main .warpper .article .info .share-block:first-child{margin-left:0}.home-container .el-main .warpper .article .info .share-block.checked,.home-container .el-main .warpper .article .info .share-block:hover{border-color:#3296fa;color:#3296fa}.home-container .el-main .warpper .article-list .highlight{color:#3296fa}.home-container .el-main .warpper .article-list .back{margin-top:30px}.home-container .el-main .warpper .article-list .number-result{margin-top:10px;margin-bottom:50px}.home-container .el-main .warpper .article-list .list-content{margin-bottom:60px}.home-container .el-main .warpper .article-list .list-content .header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:10px}.home-container .el-main .warpper .article-list .list-content .header .title{font-size:20px;cursor:pointer}.home-container .el-main .warpper .article-list .list-content .header .info{padding-top:7px}.home-container .el-main .warpper .article-list .list-content .header .info span{margin-left:23px;color:#999}.home-container .el-main .warpper .article-list .list-content .content{color:#999;line-height:24px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-left:0;cursor:pointer}.home-container .el-main .warpper .article-list .no-result{padding:200px 0;color:#8d8d8d;font-size:24px;font-weight:400;font-style:normal;text-align:center;line-height:40px;height:40px}.hljs{background:#eee!important}.markdown-body .markdown-content{width:0}.markdown-body .markdown-content :focus{outline:none}.markdown-body .highlight pre,.markdown-body code,.markdown-body pre{background-color:#eee!important}.w7-top{width:40px;height:42px;padding-top:8px;background-color:#000;color:#fff;text-align:center;font-size:10px;line-height:1}.w7-top i{font-size:20px}@media screen and (max-width:500px){.admin-view>.el-header,.markdown-menu,.share,.w7-aside-home{display:none!important}.admin-content{padding-top:0!important}.home-container .el-main{padding-left:0}.chapter-warpper .warpper{margin-top:0!important;margin-left:0!important;padding:20px}.home-container .el-main .warpper .article .info{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding-right:0}.home-container .el-main .warpper .article .info .time{margin-right:0}.home-container .el-main .warpper .article .info .author{text-align:right}.container .search-results{padding-right:0!important}.container .search-results .search-wrap .el-input{width:200px!important}} ================================================ FILE: public/css/chunk-6a2c3c1a.356edd1a.css ================================================ .admin-view>.el-header[data-v-19a9d71c]{position:fixed;left:0;top:0;right:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 50px;font-size:14px;z-index:999}.admin-view>.el-header .logo[data-v-19a9d71c]{margin-right:20px;display:-webkit-box;display:-ms-flexbox;display:flex;font-size:24px;cursor:pointer}.admin-view>.el-header .logo .wi[data-v-19a9d71c]{font-size:30px;padding-right:20px}.admin-view>.el-header.white[data-v-19a9d71c]{color:#4d4d4d;background-color:#fff;border-bottom:1px solid #e5e5e5}.admin-view>.el-header.white .logo .wi[data-v-19a9d71c]{color:#3296fa}.admin-view>.el-header.white #w7-nav-menu[data-v-19a9d71c],.admin-view>.el-header.white #w7-nav-menu ul[data-v-19a9d71c]{background-color:#fff}.admin-view>.el-header.black[data-v-19a9d71c]{color:#fff;background-color:#383d41}.admin-view>.el-header.black .logo .wi[data-v-19a9d71c]{color:#f7f8fa}.admin-view>.el-header.black .user[data-v-19a9d71c]:hover{background:#40485b}.admin-view>.el-header.black .user #w7-nav-menu[data-v-19a9d71c]{color:#fff;background:#40485b}.admin-view>.el-header.black .user #w7-nav-menu ul[data-v-19a9d71c]{border-left:3px solid #383d41;border-right:3px solid #383d41;background-color:#40485b}.admin-view>.el-header.black .user #w7-nav-menu ul li[data-v-19a9d71c]:hover{color:#3296fa;background:#343b4e}.admin-view>.el-header .menu-line[data-v-19a9d71c]{margin-left:10px;margin-right:28px;width:1px;height:24px;background-color:#e5e5e5}.admin-view>.el-header .menu-icon[data-v-19a9d71c]{margin-right:10px;width:24px;height:24px;line-height:24px;color:#999;background-color:#f2f3f5;text-align:center;border-radius:4px;cursor:pointer}.admin-view>.el-header .menu-icon[data-v-19a9d71c]:hover{color:#fff;background-color:#3296fa}.admin-view>.el-header .el-icon-arrow-right[data-v-19a9d71c]{color:#d6d6d6}.admin-view>.el-header .menu[data-v-19a9d71c]{-webkit-box-flex:1;-ms-flex:1;flex:1;width:0;padding-left:75px}.admin-view>.el-header .menu .doc-name[data-v-19a9d71c]{margin-left:10px}.admin-view>.el-header .item[data-v-19a9d71c]{display:inline-block;padding:0 20px;margin:0 6px}.admin-view>.el-header .item.router-link-active[data-v-19a9d71c],.admin-view>.el-header .item[data-v-19a9d71c]:hover{color:#3296fa}.admin-view>.el-header .user[data-v-19a9d71c]{width:120px;line-height:60px;text-align:center;cursor:pointer}.admin-view>.el-header .user:hover #w7-nav-menu[data-v-19a9d71c]{display:block}.admin-view>.el-header .user .username[data-v-19a9d71c]:hover{color:#3296fa}.admin-view>.el-header .user #w7-nav-menu[data-v-19a9d71c]{background-color:#fff;display:none;position:fixed;top:60px;right:50px;font-size:14px;text-align:center;-webkit-box-shadow:0 2px 10px 0 rgba(82,185,198,.1);box-shadow:0 2px 10px 0 rgba(82,185,198,.1);border-radius:0;border:0;z-index:9999;border-radius:10px}.admin-view>.el-header .user #w7-nav-menu ul[data-v-19a9d71c]{margin:0;padding:7px 0}.admin-view>.el-header .user #w7-nav-menu li[data-v-19a9d71c]{list-style:none;line-height:32px}.admin-view>.el-header .user #w7-nav-menu ul li[data-v-19a9d71c]:hover{color:#3296fa}.admin-view .admin-view-aside[data-v-19a9d71c]{background-color:#f7f8fa}.admin-view .admin-view-menu[data-v-19a9d71c]{background-color:#f0f2f5;margin-top:40px}.admin-view .admin-view-menu .el-menu-item[data-v-19a9d71c]{height:40px;line-height:40px}.admin-view .admin-view-menu .el-menu-item i[data-v-19a9d71c]{font-size:20px}.admin-view .el-main[data-v-19a9d71c]{padding:30px}.admin-view .menu-bar[data-v-19a9d71c]{width:120px}.admin-view .admin-content[data-v-19a9d71c]{padding-top:60px}.admin-view .w7-footer[data-v-19a9d71c]{padding-left:170px;line-height:30px}.admin-view .w7-footer .footer-law[data-v-19a9d71c]{width:100%;color:#616161;text-align:center;font-size:14px;padding-bottom:20px}@media screen and (max-width:500px){.admin-view .w7-footer[data-v-19a9d71c]{padding-left:10px}} ================================================ FILE: public/css/chunk-7060d2be.ba342d3f.css ================================================ .install .success[data-v-4052ffba]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;padding-top:150px}.install .success .s-top[data-v-4052ffba]{margin-bottom:30px}.install .success .s-top .top[data-v-4052ffba]{font-size:30px;color:#333;margin-bottom:20px}.install .success .s-top .top i[data-v-4052ffba]{color:#3bb64c;font-size:30px;margin-right:10px}.install .success .s-top .center[data-v-4052ffba]{margin-bottom:10px;padding-left:45px}.install .success .s-top .bottom[data-v-4052ffba]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:125px}.install .success .s-top .bottom span[data-v-4052ffba]{background-color:#d9dde0;color:#333;padding:5px 45px;font-size:14px;border:1px solid #ddd;cursor:pointer}.install .success .c-bottom[data-v-4052ffba]{text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;margin-bottom:70px}.install .success .c-bottom .btn[data-v-4052ffba]{color:#fff;background-color:#3296fa;width:270px;line-height:60px;text-align:center;cursor:pointer} ================================================ FILE: public/css/chunk-71aaa888.b923ac67.css ================================================ .setting-store .page-head{padding-bottom:0} ================================================ FILE: public/css/chunk-73af5400.9b10b85b.css ================================================ .install-wrap[data-v-af400938]{position:relative;width:100%;min-height:100vh;background:#fff url(../img/login-bg.5a9966fc.png) no-repeat 50%/cover;left:0;top:0}.install-wrap .i-header[data-v-af400938]{font-size:24px;color:#333;margin-bottom:50px;height:60px;padding-left:50px}.install-wrap .i-header[data-v-af400938],.install-wrap .i-header span[data-v-af400938]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.install-wrap .i-header span[data-v-af400938]{cursor:pointer}.install-wrap .i-header span .wi-wendang-logo[data-v-af400938]{margin-right:20px;font-size:30px}.install-wrap .install-con[data-v-af400938]{width:1200px;margin:0 auto;min-height:740px}.install-wrap footer[data-v-af400938]{line-height:30px;padding-bottom:20px;text-align:center;color:#616161;font-size:14px} ================================================ FILE: public/css/chunk-775b8fab.d326fcb8.css ================================================ .setting-nav .page-head{padding-bottom:20px}.setting-nav .we7-panel-form__header{margin-top:5px}.setting-nav .demo-input-btn{width:100%;text-align:right}.setting-nav .demo-input-btn .add-menu{padding:9px 30px}.setting-nav .w7-table,.submit{margin-top:20px} ================================================ FILE: public/css/chunk-a3879d6c.ffbb8d99.css ================================================ .admin-login{min-height:100vh;background-color:#fff;background-image:url(../img/login_bg.cfc5367a.png);background-position:50%;background-size:cover;background-repeat:space;position:relative;font-size:14px;line-height:1}.admin-login .login-box{width:660px;margin:0 auto;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.admin-login .login-box .bind{margin-bottom:30px}.admin-login .login-box .bind .top{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:0 190px;margin-bottom:30px}.admin-login .login-box .bind .top .text{color:#333}.admin-login .login-box .bind .p1{color:#666;text-align:center;margin-bottom:8px}.admin-login .login-box .bind .p2{color:#333;text-align:center}.admin-login .login-box h2{margin:0;color:#4d4d4d;font-size:56px;font-weight:100;text-align:center;margin-bottom:30px}.admin-login .el-tabs__header{text-align:center;margin-bottom:0}.admin-login .el-tabs__nav-wrap{display:inline-block}.admin-login .el-tabs__nav-wrap:after{display:none}.admin-login .login-form .el-input{margin-top:30px}.admin-login .login-form .el-input input{border-radius:20px;border-left:1px solid #dedfe6!important;border-right:1px solid #dedfe6!important;border-top:1px solid #dedfe6!important;outline:0;color:#a1a1a1;padding-left:50px}.admin-login .login-form .el-input input:focus{border-color:#dcdfe6}.admin-login .login-form .el-input__icon{color:#fff;font-size:20px;width:40px;background-color:#2679ec;border-radius:20px;-webkit-transform:scale(.618);transform:scale(.618)}.admin-login .login-form .el-input .el-input-group__append{background-color:unset;border-radius:0;padding:0;font-size:0;border:0}.admin-login .login-form .el-input .el-input-group__append img{width:120px;cursor:pointer;height:32px}.admin-login .login-btn{display:block;width:100%;border-radius:25px;color:#fff;background-color:#2679ec;padding:0;height:50px;line-height:50px;margin-top:50px;border:none}.admin-login .footer{position:fixed;left:0;right:0;bottom:30px;text-align:center;color:#999;font-size:14px}.admin-login[data-v-780cb3f1] .user .el-input__inner{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADDUlEQVRYR8WXT1IaURDGv2ZQyQ4qsA5WBbbBE0ROEDxBzAk0O8hG3AR2wROoJ9CcQDxBYAtWSdZSpUtE4Eu9B4NvhmHmjaZKFiyYnn6//vO6PwRv/JE3Ph+xAPL1+/Tm4/QLKHkISyTSywCEHc6kPXnnXA/qmQfbwKwACj/uS8LpEYCKjWMSZwTPb5q5dpR9KICKeGM0/SWC/ShHQc8VyFPK+R6WkbUAKmpwciqQ0ksOX75DDJhw9vo/M50gP4EA88OnVwKjxq+gIPAAccpBECsAOu2P09v/dbjLrSCe6OwMmpmBGcsKQKF21xbIZ6uAya62E/lkY0+i3W9my2sBCtXhvghOI52Rx+NUsuU2l76eo8khRNRNCf2Q+NZvZs9cI08GirWhSs+HMA9+B6atVQDEoNfMbq8AFGtDdccvQg8Hr/uN3G6YjWUJ93qN7KWunuusUBueCfD1pdEv/ViUkcB5v5HVs2UJYJP+GVmOmm4fq3e7CZGriEx2+o3cjh+AcRsoyN6qDwD0GlkdvP7KV+/zmzK9tQBYuUb+dyx7AOMtJ6NukQZYLJs/UQDq+atvweIQt5xmD0SWYAlIqY9TiRPvHJgdQFi3CULZeDKgfijWhvYAi1PUZNN1FIRezSAoTw/oMsQZwbZhrrMju71mTm/Z5zlQHbZEcBDqez77LyHSmZEe1ZMQSYNUTitRu4HESb+ZPfQCzFVPcCOS3RlwGDUDXHg9C4DWOpAxnW13K3p2QWAZyO44ldyNo/P01Z4vqLYfgr5x7gEImmImbdzSB80XirNjCpNVPWD0gp82LoC/uc3au74CJVmxetdRqSPYedpKluOm33U+V1eTK60rjc43AwkEMOunpBTJPdsGNBtRRC60tAvpo7WqeKENW+6KVkOH4HEUiOojgRy5w8lcvUEljPxjsthuasRqpaQVLnEpEC0uSTyIIE0wD0HFELN/SdRN+fUiAPdKbYymFQGV7gsXoMTvmUj7pvG+ZdO0kRnwO1GlSY4mpQSe5z8hA4KDSSrZiduwsQFsoopj8w85b5UwNkDVfAAAAABJRU5ErkJggg==) no-repeat 6px 4px;background-size:30px 30px}.admin-login[data-v-780cb3f1] .pwd .el-input__inner{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACrElEQVRYR8VXS3LaQBDtlkRgF1MR6+Aqm23ICQw3sG/g3ADvIJuwitg5N0huYG4AnCBkC1QF1pAy2WELqVM9IKLPSDN8qtCGAqZ7Xr/+PSGc+cEz3w97Abj+/FwFz78BpFsGjgg1/iSCvgiEsAumMRh/LQ51A9MCcNWc1wzA74BQ1nJMMPWBPk06pQ2wjCcTQLn9fJFbeU9BpCpn8f+ZGbdg3k3bxWWabSoAQTd5PQS42Pfi8HkCWAKa9bS0SAHw5Ujez2MuTrCB5kcZiAQAQfuL9/vYyBMAAJZu3ryMpyMB4Lo17yPgTVb0RPAXABoumKLIcuDVEKENAO8Vdv1xx66Hz0QAiGpH7Cmon73mzSpHwucBLZo4xQEz92a17gPihyx7n6ge7o4IgEprMVVFwQ7WBWuYe1n3ELAq2h9o6OaturVaV5UBEExHHfsyALkDoFt4I8fGq9afhgH0GI7UB3yYOO++VVoLUhUvhQpyB0DmVOaIAVSa8zYgfom2G/H04/ppqAAEYPncfwY0io8N0gCoLo2BHYydkhjj+gCIfr0WrFrWVGOHOsVIQEkAqtzFqzcrYp1uYiYjDJwdgGoAyRhgGyCk+HBRMSBNwUEAmgux5cYdO7KwDgKgakMZA6IduTM6JfEZPCoA8jZUbEBpCpqL+y0DP/YBIB1E7CBrFJ+wC2Yjx94pq32W0d3Isbs6A6fSWrBmfJKdzVxGbJBWjLxwiOBBpfM4/4jwGCyqtAmYWEbBD1sdOEWEtzrR6p5hDeEWzLJSkAgWTizJhIAxzJqWJAsiEqLU9/rHMpF1eWQUy6jc6MN1VyXR0tLAE8/NW7cHyXJJX3OvZ2q+kM3MJ7pXFaySgXhknBYiv4bgb17NtuKVI+XvBEYX0eif/NVMt9IPOaf1bniIY12bf7ZOhzAhOjIGAAAAAElFTkSuQmCC) no-repeat 6px 4px;background-size:30px 30px}.admin-login[data-v-780cb3f1] .vrcode .el-input__inner{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADo0lEQVRYR8VXW0gUURj+/tnd2oc2U9fCeqgF3bS3iEySLpAUBlEUQUHWkz4kvdZsQdaD67xGGKEQlUI9dJEogu5FEtj1JbNdxYJKzF0trbztzh9nxG0vMzvjZjmPc/7Ld77//79zDmGWP5rl/LAMYEUtz5mYGNhAqloBYDUIS8BYKDbAQB8BX0BoB9Nt+9zcJx0nadzK5iwBKJDDuyVSTwGUbyUowL3M0qGgknvVzD4tAM+xwaX2aLSRCJvNAumtM+NOxGar7qnL/mjkbwjA6wvtYPBZAi3KJPmUD4P7mKX9XUruHb04ugAKjvRvI4laCZD+JvkfEFBV4vJuf97D5HgpADTa1egbAhbMRPJ4JibYXvpByf4QHzcRQDU7CnNCz4holZXk5SvmYP9aJ2pahjE8yuYujOeBgdwyNNLElHECAO/RgT1g9ZJRJJeTUJRvQ3G+HTtXOVGcb9NMh0YZ996O417HOD5/i6KzN2oMhqS9AX/OZR0ATF5fqBsgT7J3iceB5qr55juMs2jviaCy6buODwcC9e4igDTKYgwUHA6XSjZ+ppdlZgEATLaVQX/2mwQAXrn/BIhq/wcAFfB11buVBACFcuguEcozBSAov9A2goZ9Li2EcQkAIVBBxb0liYFQJwjLMwHgv/UT116O4cHhbMx3TlY1HQAw3gcU0QdxPVAoh74RIcsMgBg3kexAmVMbvbqbP7Xub67Kik2FGQBmfA8qbk1nYk1oFcC73qjW3WIUh0ZVbeRE8hKPPQG7SQlSAXhl6yX4NKiipmVISy7EaKru8QgyKcFDImzUK4EQoBfHcxKWhPjUNA+jodIVq3u8wfVXY5Cv/NDVDoMmNB5DEUWP5nTKVNk0hPaemOImmOqOYTohEt5CgluqsiDYMPvS7V746gqR+O31hToB8holEIp4ptKVFoSYCEG90eHEzMGg4l6eIsUiqdlhJGyWLJCg7HaldL1IePr+L1xoG01PkPFhNOlX6Ot/QqB1ZjQLNoQWFC+24/rLMZxvGzE/kpmfBpS8hNgpBV0mDy5zUPT1v7iQRCT7muT7ocGVLLRdktBqxoLVdQZUZt7UpeQ9SvYxbOkCObyZSL04K5fSKZSeoz8WOXjkHEBbre423o6BGxFyVvf45/UZ+ZsPtWhMObyLSD09nYcJQAcD9W7TMloCINCLp1lkLLwexBVglDCwmIDJNwPhKxifATxnSbrtcOQ8ntGnWSb0W/WxzIDVgNO1+w3cr6Mw+iVR1gAAAABJRU5ErkJggg==) no-repeat 6px 4px;background-size:30px 30px} ================================================ FILE: public/css/chunk-ab7deece.39a1833e.css ================================================ .we7-document-history .search-box{-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.we7-document-history .search-box .demo-input-suffix{margin-right:20px} ================================================ FILE: public/css/chunk-b09d1c24.5230f4f0.css ================================================ .home ul[data-v-688d267c]{list-style-type:none;margin:0;padding:0}.home .w1200[data-v-688d267c]{width:1200px;margin:0 auto}.home .hot[data-v-688d267c]{cursor:pointer}.home .banner[data-v-688d267c]{width:100%;height:300px;background-position:50%;background-repeat:no-repeat;padding-top:40px}.home .banner .title[data-v-688d267c]{font-size:52px;color:#000;text-align:center}.home .banner .search-wrap[data-v-688d267c]{width:1200px;margin:25px auto 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.home .banner .search-wrap[data-v-688d267c] .el-input .el-input__inner{height:60px;line-height:60px;border-radius:60px 0 0 60px;padding-left:40px}.home .banner .search-wrap .search-btn[data-v-688d267c]{width:110px;height:60px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background-color:#2679ec;border-radius:0 60px 60px 0;cursor:pointer}.home .banner .href[data-v-688d267c]{text-align:center;color:#005ddc;font-size:14px}.home .banner .href a[data-v-688d267c]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.home .banner .href a[data-v-688d267c]:hover{text-decoration:underline}.home .banner .href a em[data-v-688d267c]{font-style:normal;margin:0 10px;position:relative;top:-1px}.home .announcement[data-v-688d267c]{padding-top:70px}.home .announcement .title[data-v-688d267c]{font-size:18px;color:#000;font-weight:600;margin-bottom:10px}.home .announcement .title .text[data-v-688d267c]{margin-bottom:20px}.home .announcement .title .line[data-v-688d267c]{position:relative;height:1px;background-color:#ddd}.home .announcement .title .line span[data-v-688d267c]{background-color:#2d5fff;height:3px;width:20px;position:absolute;left:25px;top:-2px}.home .announcement .notice-wrap[data-v-688d267c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.home .announcement .notice-wrap ul[data-v-688d267c]{width:calc(50% - 80px)}.home .announcement .notice-wrap ul li[data-v-688d267c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:15px 0;border-bottom:1px dashed #eee}.home .announcement .notice-wrap ul li .con-left[data-v-688d267c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:calc(100% - 60px)}.home .announcement .notice-wrap ul li .con-left .new[data-v-688d267c]{width:36px;height:18px;background-color:#ffe5e8;color:#dc0c0c;font-size:12px;line-height:18px;text-align:center}.home .announcement .notice-wrap ul li .con-left .new.new2[data-v-688d267c]{background-color:#f5f5f5;color:#666}.home .announcement .notice-wrap ul li .con-left .popover-wrap[data-v-688d267c]{width:80%;margin-left:10px}.home .announcement .notice-wrap ul li .con-left .popover-wrap a[data-v-688d267c]{display:block;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px}.home .announcement .notice-wrap ul li .con-left .popover-wrap a[data-v-688d267c]:hover{color:#005ddc}.home .announcement .notice-wrap ul li .time[data-v-688d267c]{color:#666;font-size:12px}.home .type-1[data-v-688d267c]{padding-top:80px}.home .type-1 .el-row .el-col[data-v-688d267c]:nth-child(n+5){margin-top:30px}.home .type-1 .el-row .el-col .con[data-v-688d267c]{text-align:center;cursor:pointer}.home .type-1 .el-row .el-col .con>img[data-v-688d267c]{width:135px;height:150px;margin-bottom:30px}.home .type-1 .el-row .el-col .con .document-name[data-v-688d267c]{font-size:18px;color:#000;font-weight:600;margin-bottom:8px}.home .type-1 .el-row .el-col .con .description[data-v-688d267c]{font-size:14px;color:#666;min-height:20px;height:40px;line-height:20px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px}.home .type-1 .el-row .el-col .con .view[data-v-688d267c]{color:#005ddc;font-size:12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer}.home .type-2[data-v-688d267c]{padding:80px 0}.home .type-2 .el-row .el-col[data-v-688d267c]:nth-child(n+5){margin-top:40px}.home .type-2 .el-row .el-col .con[data-v-688d267c]{padding:30px;background-color:#f8f8f8;border-radius:8px;min-height:300px;max-height:300px}.home .type-2 .el-row .el-col .con .document-name[data-v-688d267c]{color:#000;font-size:18px;font-weight:600;margin-bottom:10px}.home .type-2 .el-row .el-col .con .line[data-v-688d267c]{width:30px;height:4px;background-color:#005ddc;margin-bottom:35px}.home .type-2 .el-row .el-col .con ul li[data-v-688d267c]{color:#333;margin-bottom:15px;cursor:pointer;font-size:14px}.home .type-2 .el-row .el-col .con ul li[data-v-688d267c]:last-child{margin-bottom:0}.home .type-2 .el-row .el-col .con[data-v-688d267c]:hover{background:#2679ec url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIMAAAB9CAYAAACBBdAPAAAEMUlEQVR4nO2d23LaMBRFTZNAaMAJkDQNpP//mTsPdinlFgOS9pa0NbMeOtOZ2ues6nIkmaZxu7kBGAG4A/AAYAxgsse4577/eyP2M7td2fokPgKYA3iOyLz/d+7Y7+zWbBM/i5z0S3kCcM+OTfGt79pj/48PTQtgzI5dEa3vitkJDckjO6ZZNQBTgaSlYMqOtWRDN/6zk8PkgZ0DekM34WInQokndk6SNnRr/VYg8MrM2XmK2gD8EAhybrQoqfAF9wSWommaBvnVBdSZsXN6cUM9y0MGE3Z+BzV0mzvsYJWOvgzwkGAZ4IKRZWga9waWodkuF9lBqRUdGdCdCGIHpGY0ZICHBQX4MggEwbBlgOcHanBkgItIiqSXAd2ZQ/aLG7YMKO/sYUmkk8EiyJNGBouQBfFlgItJuRBXBniymBPxZICXj7kRRwa4oJQj0WRgv5hRkEHgpYyCDPDuY86EkwFeQuZOGBngW00lEEwG9osYBRngeUIp3CYDfJy9JG6Wgf0CRkEGeHgojetkgPcdSuRqGdgPbhRkgK/Fl8pVMrAf2ijIAE8aS2a4DPAZhdK5SAZ/TKtshskAb0TVwGAZ2A9qFGSA5wq1MEgGzxXqYJAM7Ic0CjLAX2eviW9lYD+gUZABvhoXikXPsufvn18Enm2wDOyHy4VXAGsAfwKxBvCGThjLIMwCwHvAxF8iyIoiA7xNvcsKwCdBgHP8SikDOwFsloICxBbDMuzxWyC51/KJ2+YZhzKgziEi5ARQgWUoGdiJSclGIHEqUlQrw4dAolIypKYx2Reh9ELTm0BiWKwvlaHkM465rA5ic2roOJCBnbAYvAokQI1NjTK4NzjP7lJ0sitCSfOFF4FA58I7jsgwE0hiCFYCAc6NDfZkYCcxBIxNpFJoS5Kh9AKSZRiIJ4qhZEDen+OxCIFlyPX3ICxCBBlyrDx6jhBJBnZiLyXncweqZClDzZtNlmEHVxYtwxZ2wEomKxm8cogtA/K4cu95QiIZ1D/w6XlCQhnUt67ZQaqFtgEwFki4hwc+rfrPCbEDVBPSMpR2sUUdaRnYwakNWRlcU7AMeIaXklQZ1FYT3pomyqBWZ2AHpVbkKpC1XYhVQm5vgh2QmpHatfSdSMvgXkEEy2D0ZPCGFB8ZGdiBMEL3JtiBMCI3qpYCgTAidy29Va2BxC1sdhCMZTB70GVYCATBHJGB8XtUri/o8J8MjK1sn13Q4Z8MpKGCHQBjGcwQGVJXItkBMGdkSD1vYAfAnJKBMFSwA2BEZHCNQYujMqT6jSp/41mLQxkS9g4+86gFVQZXH7U4KUOKocIyaHFchkS9g2XQ4idTBs8ZhDgpQi9D7AKUVxNCnJUhQe/gOoMO0yEyxD7jwA6CAT6+FSFR78AORO2sB4vQy9BahiI5vXo4I8MI3ad+YtCapJydG3wBONSSugm5Y4UAAAAASUVORK5CYII=) no-repeat 100% 100%}.home .type-2 .el-row .el-col .con:hover .document-name[data-v-688d267c]{color:#fff}.home .type-2 .el-row .el-col .con:hover .line[data-v-688d267c]{background-color:#fff}.home .type-2 .el-row .el-col .con:hover ul li[data-v-688d267c]{color:#fff} ================================================ FILE: public/css/chunk-b9b22232.3c05d3bd.css ================================================ .setting-thirdParty .page-head{padding-bottom:0} ================================================ FILE: public/css/chunk-bd264252.3d26cc4c.css ================================================ .document-setting .edit-role-change[data-v-63bdab51]{width:120px}.document-setting[data-v-63bdab51] .delete-doc{-webkit-box-shadow:0 1px 3px transparent!important;box-shadow:0 1px 3px transparent!important}.document-setting[data-v-63bdab51] .delete-doc .el-dialog{margin-top:300px!important}.document-setting .document-setting-warpper{display:-webkit-box;display:-ms-flexbox;display:flex;border-top:1px solid #e5e5e5}.document-setting .nav{width:150px;border-right:1px solid #e5e5e5}.document-setting .nav-item{width:149px;position:relative;padding-left:30px;height:40px;line-height:40px;border-bottom:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.document-setting .nav-item:hover{color:#59a5f9}.document-setting .nav-item.active{color:#59a5f9;background-color:#f5f5f5}.document-setting .nav-item .light-line{position:absolute;top:0;left:0;width:3px;height:100%;background:#3296fa}.document-setting .nav-item .redDot{position:absolute;display:block;top:8px;right:55px;width:6px;height:6px;background:red;border-radius:50%}.document-setting .content{-webkit-box-flex:1;-ms-flex:1;flex:1;height:510px;-webkit-box-sizing:border-box;box-sizing:border-box}.document-setting .content .upload-wrap{display:-webkit-box;display:-ms-flexbox;display:flex}.document-setting .content .project{padding:50px 100px}.document-setting .content .project .el-form-item__content{width:490px}.document-setting .content .project .cover-warpper{position:relative;margin-bottom:10px}.document-setting .content .project .cover-warpper .el-upload{display:-webkit-box;display:-ms-flexbox;display:flex}.document-setting .content .project .cover-warpper .el-upload .cover-img{margin-right:20px;width:200px;height:100px;background:#e6f2ff;border:1px solid #eee;-webkit-box-sizing:border-box;box-sizing:border-box}.document-setting .content .project .cover-warpper .el-upload .cover-img img{width:100%;height:100%}.document-setting .content .project .cover-warpper .el-upload .cover-btn{text-align:left}.document-setting .content .project .cover-warpper .el-upload__tip{margin-top:0;color:#ccc;line-height:36px}.document-setting .content .project .cover-warpper .cover-default{margin-top:10px}.document-setting .content .project .btns{padding-top:25px;text-align:center}.document-setting .content .project .btns .el-button+.el-button{margin-left:20px}.document-setting .content .manage{padding:20px 35px 0 30px}.document-setting .content .manage .top{padding-bottom:20px;text-align:right}.document-setting .content .manage .w7-table{margin-top:0;overflow:inherit}.document-setting .content .manage .w7-table .el-table td,.document-setting .content .manage .w7-table .el-table th{padding:6px 0;position:relative}.document-setting .content .manage .w7-table .identity{margin:0 auto;width:78px;line-height:28px;color:#45bb7f;text-align:center;background-color:#c1fbde;border:1px solid #4dc88a;border-radius:4px}.document-setting .content .manage .w7-table .oper .edit-role{position:absolute;top:42px;right:0;width:360px;height:150px;background-color:#fff;border-radius:5px;-webkit-box-shadow:0 3px 18px 1px rgba(194,192,192,.85);box-shadow:0 3px 18px 1px rgba(194,192,192,.85);z-index:9999}.document-setting .content .manage .w7-table .oper .edit-role:before{content:"";position:absolute;top:-10px;right:40px;width:0;height:0;border-color:transparent;border-style:solid;border-width:10px;border-top-width:0;border-bottom-color:#fff}.document-setting .content .manage .w7-table .oper .edit-role-content{padding:28px 25px 28px 23px}.document-setting .content .manage .w7-table .oper .edit-role-content .label{display:inline-block;width:40px;text-align:left}.document-setting .content .manage .w7-table .oper .edit-role-content .el-select{width:270px}.document-setting .content .manage .w7-table .oper .edit-role-foot{text-align:center}.document-setting .content .manage .w7-table .oper .edit-role-foot .el-button{padding:9px 34px}.document-setting .content .feed,.document-setting .content .history{padding:40px 50px}.document-setting .content .feed .w7-table,.document-setting .content .history .w7-table{margin-top:0}.document-setting .add-manage-header,.document-setting .feedDetailHeader{position:absolute;top:0;left:0;padding:30px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;width:1000px;background-color:#fff;-webkit-box-sizing:border-box;box-sizing:border-box}.document-setting .add-manage-header .el-link,.document-setting .feedDetailHeader .el-link{line-height:24px;font-size:18px}.document-setting .add-manage-header .el-icon-close,.document-setting .feedDetailHeader .el-icon-close{font-size:20px}.document-setting .add-manage-body{padding:50px 0 50px 360px;border-top:1px solid #e5e5e5}.document-setting .add-manage-body .add-manage-footer{padding:100px 0 0 100px}.document-setting .feedDetail{padding:50px 0 50px 30px;border-top:1px solid #e5e5e5}.document-setting .feedDetail .item{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:14px;padding-bottom:30px}.document-setting .feedDetail .item .lef{padding-right:20px;color:#999;width:90px}.document-setting .feedDetail .item .rig{padding-right:30px;-webkit-box-flex:1;-ms-flex:1;flex:1} ================================================ FILE: public/css/chunk-d779deb8.207190f3.css ================================================ .admin-setting .el-menu-item .menu-name{display:inline-block;max-width:130px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-setting .el-main{padding:0 25px 0 15px} ================================================ FILE: public/css/chunk-f66a53c0.e0f01506.css ================================================ .pagination-wrap[data-v-5afe36eb]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.pagination-wrap[data-v-5afe36eb] .el-pagination{float:none}.doc_box[data-v-5afe36eb]{opacity:1;border-radius:2px;margin-top:20px;padding-bottom:20px;border-bottom:1px solid #eee}.doc_title .detail[data-v-5afe36eb]{cursor:pointer}.f_div[data-v-5afe36eb]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.collection[data-v-5afe36eb]{margin-left:6px;font-size:12px;font-family:PingFang SC Medium;line-height:17px;color:#999;opacity:1}.time[data-v-5afe36eb]{font-size:12px;color:#999;opacity:1;position:absolute;right:4%;bottom:-62px}.doc_title[data-v-5afe36eb]{margin-top:20px}.doc_title>span[data-v-5afe36eb]{font-size:16px;font-family:"\5FAE\8F6F\96C5\9ED1";font-weight:700;line-height:22px;color:#333;opacity:1}.doc_t3[data-v-5afe36eb]{margin-top:10px}.doc_t3>p[data-v-5afe36eb]{width:717px;height:auto;word-break:break-all;word-wrap:break-word;overflow:hidden;font-size:14px;font-family:PingFang SC Medium;line-height:24px;color:#333}[data-v-a46f0322] .el-tabs__item{height:80px!important;line-height:80px!important}.dt_box[data-v-a46f0322]{height:154px;margin-top:25px;margin-left:12px;border-bottom:1px solid #eee}.f_div[data-v-a46f0322]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative}.Collection[data-v-a46f0322]{margin-left:6px;font-size:14px;line-height:20px;color:#999;opacity:1}.time[data-v-a46f0322]{font-size:12px;color:#999;opacity:1;position:absolute;right:6%}.left_avg[data-v-a46f0322]{width:65px;height:65px}.left_avg .el-avatar[data-v-a46f0322]{width:100%;height:100%}.xx[data-v-a46f0322]{margin-top:23px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.xx .dynamic[data-v-a46f0322]{margin-left:15px;cursor:pointer}.xx .dynamic .user[data-v-a46f0322]{margin-bottom:10px}[data-v-a46f0322] .el-avatar--large{width:64px;height:64px}.xx_user[data-v-a46f0322]{line-height:20px;height:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.xx_user>span[data-v-a46f0322]{font-size:14px;line-height:20px;color:#777;opacity:1}.user[data-v-a46f0322]{font-size:16px;line-height:22px;color:#333;opacity:1}.create_p[data-v-a46f0322]{width:700px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px;line-height:20px;color:#555;opacity:1}.el-card[data-v-a46f0322] .el-card__body{padding-bottom:40px}.container-right[data-v-55790ccc]{margin-left:15px}.right_t1_d[data-v-55790ccc]{height:56px;background:#2679ec;opacity:1;border-radius:2px;text-align:center;line-height:56px;-webkit-transform:all .8s;transform:all .8s}.right_t1_d span[data-v-55790ccc]{font-size:16px;line-height:22px;color:#fff;opacity:1}.right_t1_d[data-v-55790ccc]:hover{opacity:.8;cursor:pointer}.right_t2_d[data-v-55790ccc]{width:329px;height:56px;margin-top:12px;background:#fff;border:1px solid #ddd;opacity:1;border-radius:2px;text-align:center;line-height:56px;-webkit-transform:all .8s;transform:all .8s}.right_t2_d span[data-v-55790ccc]{color:#888}.right_t2_d[data-v-55790ccc]:hover{opacity:.8;cursor:pointer;-webkit-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.right_t2_d>span[data-v-55790ccc]:hover{color:#2679ec}.right_t3_d[data-v-55790ccc]{width:329px;height:284px;background:#fff;opacity:1;border-radius:2px;margin-top:16px}.text[data-v-55790ccc]{font-size:14px;padding-bottom:20px;border-bottom:1px solid #eee}.item[data-v-55790ccc]{margin-bottom:20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.item[data-v-55790ccc] .el-form-item{margin-bottom:0;width:100%}.item[data-v-55790ccc] .el-form-item .el-form-item__content{line-height:normal}.item[data-v-55790ccc] .el-form-item .el-form-item__content .el-input{font-size:14px}.item[data-v-55790ccc] .el-form-item .el-form-item__content .el-input input{border-color:transparent}.item[data-v-55790ccc] .el-form-item .el-form-item__content .el-input.edit{border:1px solid #dcdfe6}.clearfix[data-v-55790ccc]:after,.clearfix[data-v-55790ccc]:before{display:table;content:""}.clearfix[data-v-55790ccc]:after{clear:both}.profile[data-v-55790ccc]{padding-bottom:18px;border-bottom:3px solid #2679ec;font-size:16px;color:#333}.upload-demo[data-v-55790ccc] .el-button--small{padding:4px 7px}.upload-demo[data-v-55790ccc]{margin-left:2px}.w7-dialog .ownership[data-v-55790ccc]{padding-left:105px!important}.header_bg_box[data-v-1cccdd02]{width:1200px;height:100px;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.avg[data-v-1cccdd02],.header_bg_box[data-v-1cccdd02]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.avg[data-v-1cccdd02]{width:110px;height:110px;border-radius:50%;background:#fff;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;overflow:hidden}.avg[data-v-1cccdd02] .avatar-uploader{width:100%;height:100%}.avg[data-v-1cccdd02] .avatar-uploader .el-upload{width:100%;height:100%;position:relative}.avg[data-v-1cccdd02] .avatar-uploader .el-upload:hover .upload-shadow{display:-webkit-box;display:-ms-flexbox;display:flex}.avg[data-v-1cccdd02] .avatar-uploader .el-upload .avatar{width:100%;height:100%;border-radius:50%}.avg[data-v-1cccdd02] .avatar-uploader .el-upload .upload-shadow{position:absolute;width:110px;height:110px;background-color:rgba(0,0,0,.5);left:0;top:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;color:#fff;font-size:14px;display:none}.user_info[data-v-1cccdd02]{margin-left:32px}.user_info_name[data-v-1cccdd02]{font-size:24px;font-family:PingFang SC Medium;color:#fff;letter-spacing:3px;opacity:1}.user_info_w7[data-v-1cccdd02]{margin-top:21px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.user_info_w7>span[data-v-1cccdd02]:first-child{font-size:14px;font-family:PingFang SC Light;line-height:20px;color:#fff;opacity:.8}.user_info_w7>span[data-v-1cccdd02]:nth-child(2){margin-left:14px;font-size:20px;font-family:PingFang SC Medium;line-height:28px;color:#fff;opacity:1}.user_info_w7>span[data-v-1cccdd02]:nth-child(3){margin-left:25px}.user_info_w7>span[data-v-1cccdd02]:nth-child(4){height:20px;font-size:14px;font-family:PingFang SC Light;line-height:20px;color:#fff;opacity:.8}.header_bg[data-v-44dd2dcb]{width:100%;height:220px;background:url(../img/banner.6b909abc.png) no-repeat 50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.content[data-v-44dd2dcb]{width:1200px;margin:15px auto 0;display:-webkit-box;display:-ms-flexbox;display:flex;min-height:600px;margin-bottom:50px}.content .container-left[data-v-44dd2dcb]{width:calc(100% - 345px)}.content .container-right[data-v-44dd2dcb]{width:330px} ================================================ FILE: public/css/chunk-vendors.1603aa5b.css ================================================ .el-pagination--small .arrow.disabled,.el-table--hidden,.el-table .hidden-columns,.el-table td.is-hidden>*,.el-table th.is-hidden>*{visibility:hidden}.el-input__suffix,.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-dropdown .el-dropdown-selfdefine:focus:active,.el-dropdown .el-dropdown-selfdefine:focus:not(.focusing),.el-message__closeBtn:focus,.el-message__content:focus,.el-popover:focus,.el-popover:focus:active,.el-popover__reference:focus:hover,.el-popover__reference:focus:not(.focusing),.el-rate:active,.el-rate:focus,.el-tooltip:focus:hover,.el-tooltip:focus:not(.focusing),.el-upload-list__item.is-success:active,.el-upload-list__item.is-success:not(.focusing):focus{outline-width:0}@font-face{font-family:element-icons;src:url(../fonts/element-icons.535877f5.woff) format("woff"),url(../fonts/element-icons.732389de.ttf) format("truetype");font-weight:400;font-display:"auto";font-style:normal}[class*=" el-icon-"],[class^=el-icon-]{font-family:element-icons!important;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;vertical-align:baseline;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-icon-ice-cream-round:before{content:"\E6A0"}.el-icon-ice-cream-square:before{content:"\E6A3"}.el-icon-lollipop:before{content:"\E6A4"}.el-icon-potato-strips:before{content:"\E6A5"}.el-icon-milk-tea:before{content:"\E6A6"}.el-icon-ice-drink:before{content:"\E6A7"}.el-icon-ice-tea:before{content:"\E6A9"}.el-icon-coffee:before{content:"\E6AA"}.el-icon-orange:before{content:"\E6AB"}.el-icon-pear:before{content:"\E6AC"}.el-icon-apple:before{content:"\E6AD"}.el-icon-cherry:before{content:"\E6AE"}.el-icon-watermelon:before{content:"\E6AF"}.el-icon-grape:before{content:"\E6B0"}.el-icon-refrigerator:before{content:"\E6B1"}.el-icon-goblet-square-full:before{content:"\E6B2"}.el-icon-goblet-square:before{content:"\E6B3"}.el-icon-goblet-full:before{content:"\E6B4"}.el-icon-goblet:before{content:"\E6B5"}.el-icon-cold-drink:before{content:"\E6B6"}.el-icon-coffee-cup:before{content:"\E6B8"}.el-icon-water-cup:before{content:"\E6B9"}.el-icon-hot-water:before{content:"\E6BA"}.el-icon-ice-cream:before{content:"\E6BB"}.el-icon-dessert:before{content:"\E6BC"}.el-icon-sugar:before{content:"\E6BD"}.el-icon-tableware:before{content:"\E6BE"}.el-icon-burger:before{content:"\E6BF"}.el-icon-knife-fork:before{content:"\E6C1"}.el-icon-fork-spoon:before{content:"\E6C2"}.el-icon-chicken:before{content:"\E6C3"}.el-icon-food:before{content:"\E6C4"}.el-icon-dish-1:before{content:"\E6C5"}.el-icon-dish:before{content:"\E6C6"}.el-icon-moon-night:before{content:"\E6EE"}.el-icon-moon:before{content:"\E6F0"}.el-icon-cloudy-and-sunny:before{content:"\E6F1"}.el-icon-partly-cloudy:before{content:"\E6F2"}.el-icon-cloudy:before{content:"\E6F3"}.el-icon-sunny:before{content:"\E6F6"}.el-icon-sunset:before{content:"\E6F7"}.el-icon-sunrise-1:before{content:"\E6F8"}.el-icon-sunrise:before{content:"\E6F9"}.el-icon-heavy-rain:before{content:"\E6FA"}.el-icon-lightning:before{content:"\E6FB"}.el-icon-light-rain:before{content:"\E6FC"}.el-icon-wind-power:before{content:"\E6FD"}.el-icon-baseball:before{content:"\E712"}.el-icon-soccer:before{content:"\E713"}.el-icon-football:before{content:"\E715"}.el-icon-basketball:before{content:"\E716"}.el-icon-ship:before{content:"\E73F"}.el-icon-truck:before{content:"\E740"}.el-icon-bicycle:before{content:"\E741"}.el-icon-mobile-phone:before{content:"\E6D3"}.el-icon-service:before{content:"\E6D4"}.el-icon-key:before{content:"\E6E2"}.el-icon-unlock:before{content:"\E6E4"}.el-icon-lock:before{content:"\E6E5"}.el-icon-watch:before{content:"\E6FE"}.el-icon-watch-1:before{content:"\E6FF"}.el-icon-timer:before{content:"\E702"}.el-icon-alarm-clock:before{content:"\E703"}.el-icon-map-location:before{content:"\E704"}.el-icon-delete-location:before{content:"\E705"}.el-icon-add-location:before{content:"\E706"}.el-icon-location-information:before{content:"\E707"}.el-icon-location-outline:before{content:"\E708"}.el-icon-location:before{content:"\E79E"}.el-icon-place:before{content:"\E709"}.el-icon-discover:before{content:"\E70A"}.el-icon-first-aid-kit:before{content:"\E70B"}.el-icon-trophy-1:before{content:"\E70C"}.el-icon-trophy:before{content:"\E70D"}.el-icon-medal:before{content:"\E70E"}.el-icon-medal-1:before{content:"\E70F"}.el-icon-stopwatch:before{content:"\E710"}.el-icon-mic:before{content:"\E711"}.el-icon-copy-document:before{content:"\E718"}.el-icon-full-screen:before{content:"\E719"}.el-icon-switch-button:before{content:"\E71B"}.el-icon-aim:before{content:"\E71C"}.el-icon-crop:before{content:"\E71D"}.el-icon-odometer:before{content:"\E71E"}.el-icon-time:before{content:"\E71F"}.el-icon-bangzhu:before{content:"\E724"}.el-icon-close-notification:before{content:"\E726"}.el-icon-microphone:before{content:"\E727"}.el-icon-turn-off-microphone:before{content:"\E728"}.el-icon-position:before{content:"\E729"}.el-icon-postcard:before{content:"\E72A"}.el-icon-message:before{content:"\E72B"}.el-icon-chat-line-square:before{content:"\E72D"}.el-icon-chat-dot-square:before{content:"\E72E"}.el-icon-chat-dot-round:before{content:"\E72F"}.el-icon-chat-square:before{content:"\E730"}.el-icon-chat-line-round:before{content:"\E731"}.el-icon-chat-round:before{content:"\E732"}.el-icon-set-up:before{content:"\E733"}.el-icon-turn-off:before{content:"\E734"}.el-icon-open:before{content:"\E735"}.el-icon-connection:before{content:"\E736"}.el-icon-link:before{content:"\E737"}.el-icon-cpu:before{content:"\E738"}.el-icon-thumb:before{content:"\E739"}.el-icon-female:before{content:"\E73A"}.el-icon-male:before{content:"\E73B"}.el-icon-guide:before{content:"\E73C"}.el-icon-news:before{content:"\E73E"}.el-icon-price-tag:before{content:"\E744"}.el-icon-discount:before{content:"\E745"}.el-icon-wallet:before{content:"\E747"}.el-icon-coin:before{content:"\E748"}.el-icon-money:before{content:"\E749"}.el-icon-bank-card:before{content:"\E74A"}.el-icon-box:before{content:"\E74B"}.el-icon-present:before{content:"\E74C"}.el-icon-sell:before{content:"\E6D5"}.el-icon-sold-out:before{content:"\E6D6"}.el-icon-shopping-bag-2:before{content:"\E74D"}.el-icon-shopping-bag-1:before{content:"\E74E"}.el-icon-shopping-cart-2:before{content:"\E74F"}.el-icon-shopping-cart-1:before{content:"\E750"}.el-icon-shopping-cart-full:before{content:"\E751"}.el-icon-smoking:before{content:"\E752"}.el-icon-no-smoking:before{content:"\E753"}.el-icon-house:before{content:"\E754"}.el-icon-table-lamp:before{content:"\E755"}.el-icon-school:before{content:"\E756"}.el-icon-office-building:before{content:"\E757"}.el-icon-toilet-paper:before{content:"\E758"}.el-icon-notebook-2:before{content:"\E759"}.el-icon-notebook-1:before{content:"\E75A"}.el-icon-files:before{content:"\E75B"}.el-icon-collection:before{content:"\E75C"}.el-icon-receiving:before{content:"\E75D"}.el-icon-suitcase-1:before{content:"\E760"}.el-icon-suitcase:before{content:"\E761"}.el-icon-film:before{content:"\E763"}.el-icon-collection-tag:before{content:"\E765"}.el-icon-data-analysis:before{content:"\E766"}.el-icon-pie-chart:before{content:"\E767"}.el-icon-data-board:before{content:"\E768"}.el-icon-data-line:before{content:"\E76D"}.el-icon-reading:before{content:"\E769"}.el-icon-magic-stick:before{content:"\E76A"}.el-icon-coordinate:before{content:"\E76B"}.el-icon-mouse:before{content:"\E76C"}.el-icon-brush:before{content:"\E76E"}.el-icon-headset:before{content:"\E76F"}.el-icon-umbrella:before{content:"\E770"}.el-icon-scissors:before{content:"\E771"}.el-icon-mobile:before{content:"\E773"}.el-icon-attract:before{content:"\E774"}.el-icon-monitor:before{content:"\E775"}.el-icon-search:before{content:"\E778"}.el-icon-takeaway-box:before{content:"\E77A"}.el-icon-paperclip:before{content:"\E77D"}.el-icon-printer:before{content:"\E77E"}.el-icon-document-add:before{content:"\E782"}.el-icon-document:before{content:"\E785"}.el-icon-document-checked:before{content:"\E786"}.el-icon-document-copy:before{content:"\E787"}.el-icon-document-delete:before{content:"\E788"}.el-icon-document-remove:before{content:"\E789"}.el-icon-tickets:before{content:"\E78B"}.el-icon-folder-checked:before{content:"\E77F"}.el-icon-folder-delete:before{content:"\E780"}.el-icon-folder-remove:before{content:"\E781"}.el-icon-folder-add:before{content:"\E783"}.el-icon-folder-opened:before{content:"\E784"}.el-icon-folder:before{content:"\E78A"}.el-icon-edit-outline:before{content:"\E764"}.el-icon-edit:before{content:"\E78C"}.el-icon-date:before{content:"\E78E"}.el-icon-c-scale-to-original:before{content:"\E7C6"}.el-icon-view:before{content:"\E6CE"}.el-icon-loading:before{content:"\E6CF"}.el-icon-rank:before{content:"\E6D1"}.el-icon-sort-down:before{content:"\E7C4"}.el-icon-sort-up:before{content:"\E7C5"}.el-icon-sort:before{content:"\E6D2"}.el-icon-finished:before{content:"\E6CD"}.el-icon-refresh-left:before{content:"\E6C7"}.el-icon-refresh-right:before{content:"\E6C8"}.el-icon-refresh:before{content:"\E6D0"}.el-icon-video-play:before{content:"\E7C0"}.el-icon-video-pause:before{content:"\E7C1"}.el-icon-d-arrow-right:before{content:"\E6DC"}.el-icon-d-arrow-left:before{content:"\E6DD"}.el-icon-arrow-up:before{content:"\E6E1"}.el-icon-arrow-down:before{content:"\E6DF"}.el-icon-arrow-right:before{content:"\E6E0"}.el-icon-arrow-left:before{content:"\E6DE"}.el-icon-top-right:before{content:"\E6E7"}.el-icon-top-left:before{content:"\E6E8"}.el-icon-top:before{content:"\E6E6"}.el-icon-bottom:before{content:"\E6EB"}.el-icon-right:before{content:"\E6E9"}.el-icon-back:before{content:"\E6EA"}.el-icon-bottom-right:before{content:"\E6EC"}.el-icon-bottom-left:before{content:"\E6ED"}.el-icon-caret-top:before{content:"\E78F"}.el-icon-caret-bottom:before{content:"\E790"}.el-icon-caret-right:before{content:"\E791"}.el-icon-caret-left:before{content:"\E792"}.el-icon-d-caret:before{content:"\E79A"}.el-icon-share:before{content:"\E793"}.el-icon-menu:before{content:"\E798"}.el-icon-s-grid:before{content:"\E7A6"}.el-icon-s-check:before{content:"\E7A7"}.el-icon-s-data:before{content:"\E7A8"}.el-icon-s-opportunity:before{content:"\E7AA"}.el-icon-s-custom:before{content:"\E7AB"}.el-icon-s-claim:before{content:"\E7AD"}.el-icon-s-finance:before{content:"\E7AE"}.el-icon-s-comment:before{content:"\E7AF"}.el-icon-s-flag:before{content:"\E7B0"}.el-icon-s-marketing:before{content:"\E7B1"}.el-icon-s-shop:before{content:"\E7B4"}.el-icon-s-open:before{content:"\E7B5"}.el-icon-s-management:before{content:"\E7B6"}.el-icon-s-ticket:before{content:"\E7B7"}.el-icon-s-release:before{content:"\E7B8"}.el-icon-s-home:before{content:"\E7B9"}.el-icon-s-promotion:before{content:"\E7BA"}.el-icon-s-operation:before{content:"\E7BB"}.el-icon-s-unfold:before{content:"\E7BC"}.el-icon-s-fold:before{content:"\E7A9"}.el-icon-s-platform:before{content:"\E7BD"}.el-icon-s-order:before{content:"\E7BE"}.el-icon-s-cooperation:before{content:"\E7BF"}.el-icon-bell:before{content:"\E725"}.el-icon-message-solid:before{content:"\E799"}.el-icon-video-camera:before{content:"\E772"}.el-icon-video-camera-solid:before{content:"\E796"}.el-icon-camera:before{content:"\E779"}.el-icon-camera-solid:before{content:"\E79B"}.el-icon-download:before{content:"\E77C"}.el-icon-upload2:before{content:"\E77B"}.el-icon-upload:before{content:"\E7C3"}.el-icon-picture-outline-round:before{content:"\E75F"}.el-icon-picture-outline:before{content:"\E75E"}.el-icon-picture:before{content:"\E79F"}.el-icon-close:before{content:"\E6DB"}.el-icon-check:before{content:"\E6DA"}.el-icon-plus:before{content:"\E6D9"}.el-icon-minus:before{content:"\E6D8"}.el-icon-help:before{content:"\E73D"}.el-icon-s-help:before{content:"\E7B3"}.el-icon-circle-close:before{content:"\E78D"}.el-icon-circle-check:before{content:"\E720"}.el-icon-circle-plus-outline:before{content:"\E723"}.el-icon-remove-outline:before{content:"\E722"}.el-icon-zoom-out:before{content:"\E776"}.el-icon-zoom-in:before{content:"\E777"}.el-icon-error:before{content:"\E79D"}.el-icon-success:before{content:"\E79C"}.el-icon-circle-plus:before{content:"\E7A0"}.el-icon-remove:before{content:"\E7A2"}.el-icon-info:before{content:"\E7A1"}.el-icon-question:before{content:"\E7A4"}.el-icon-warning-outline:before{content:"\E6C9"}.el-icon-warning:before{content:"\E7A3"}.el-icon-goods:before{content:"\E7C2"}.el-icon-s-goods:before{content:"\E7B2"}.el-icon-star-off:before{content:"\E717"}.el-icon-star-on:before{content:"\E797"}.el-icon-more-outline:before{content:"\E6CC"}.el-icon-more:before{content:"\E794"}.el-icon-phone-outline:before{content:"\E6CB"}.el-icon-phone:before{content:"\E795"}.el-icon-user:before{content:"\E6E3"}.el-icon-user-solid:before{content:"\E7A5"}.el-icon-setting:before{content:"\E6CA"}.el-icon-s-tools:before{content:"\E7AC"}.el-icon-delete:before{content:"\E6D7"}.el-icon-delete-solid:before{content:"\E7C9"}.el-icon-eleme:before{content:"\E7C7"}.el-icon-platform-eleme:before{content:"\E7CA"}.el-icon-loading{-webkit-animation:rotating 2s linear infinite;animation:rotating 2s linear infinite}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@-webkit-keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotating{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.el-pagination{white-space:nowrap;padding:2px 5px;color:#303133;font-weight:700}.el-pagination:after,.el-pagination:before{display:table;content:""}.el-pagination:after{clear:both}.el-pagination button,.el-pagination span:not([class*=suffix]){display:inline-block;font-size:13px;min-width:35.5px;height:28px;line-height:28px;vertical-align:top;-webkit-box-sizing:border-box;box-sizing:border-box}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield;line-height:normal}.el-pagination .el-input__suffix{right:0;-webkit-transform:scale(.8);transform:scale(.8)}.el-pagination .el-select .el-input{width:100px;margin:0 5px}.el-pagination .el-select .el-input .el-input__inner{padding-right:25px;border-radius:3px}.el-pagination button{border:none;padding:0 6px;background:0 0}.el-pagination button:focus{outline:0}.el-pagination button:hover{color:#409eff}.el-pagination button:disabled{color:#c0c4cc;background-color:#fff;cursor:not-allowed}.el-pagination .btn-next,.el-pagination .btn-prev{background:50% no-repeat #fff;background-size:16px;cursor:pointer;margin:0;color:#303133}.el-pagination .btn-next .el-icon,.el-pagination .btn-prev .el-icon{display:block;font-size:12px;font-weight:700}.el-pagination .btn-prev{padding-right:12px}.el-pagination .btn-next{padding-left:12px}.el-pagination .el-pager li.disabled{color:#c0c4cc;cursor:not-allowed}.el-pager li,.el-pager li.btn-quicknext:hover,.el-pager li.btn-quickprev:hover{cursor:pointer}.el-pagination--small .btn-next,.el-pagination--small .btn-prev,.el-pagination--small .el-pager li,.el-pagination--small .el-pager li.btn-quicknext,.el-pagination--small .el-pager li.btn-quickprev,.el-pagination--small .el-pager li:last-child{border-color:transparent;font-size:12px;line-height:22px;height:22px;min-width:22px}.el-pagination--small .more:before,.el-pagination--small li.more:before{line-height:24px}.el-pagination--small button,.el-pagination--small span:not([class*=suffix]){height:22px;line-height:22px}.el-pagination--small .el-pagination__editor,.el-pagination--small .el-pagination__editor.el-input .el-input__inner{height:22px}.el-pagination__sizes{margin:0 10px 0 0;font-weight:400;color:#606266}.el-pagination__sizes .el-input .el-input__inner{font-size:13px;padding-left:8px}.el-pagination__sizes .el-input .el-input__inner:hover{border-color:#409eff}.el-pagination__total{margin-right:10px;font-weight:400;color:#606266}.el-pagination__jump{margin-left:24px;font-weight:400;color:#606266}.el-pagination__jump .el-input__inner{padding:0 3px}.el-pagination__rightwrapper{float:right}.el-pagination__editor{line-height:18px;padding:0 2px;height:28px;text-align:center;margin:0 2px;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:3px}.el-pager,.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev{padding:0}.el-pagination__editor.el-input{width:50px}.el-pagination__editor.el-input .el-input__inner{height:28px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button,.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination.is-background .btn-next,.el-pagination.is-background .btn-prev,.el-pagination.is-background .el-pager li{margin:0 5px;background-color:#f4f4f5;color:#606266;min-width:30px;border-radius:2px}.el-pagination.is-background .btn-next.disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-prev.disabled,.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .el-pager li.disabled{color:#c0c4cc}.el-pagination.is-background .el-pager li:not(.disabled):hover{color:#409eff}.el-pagination.is-background .el-pager li:not(.disabled).active{background-color:#409eff;color:#fff}.el-dialog,.el-pager li{background:#fff;-webkit-box-sizing:border-box}.el-pagination.is-background.el-pagination--small .btn-next,.el-pagination.is-background.el-pagination--small .btn-prev,.el-pagination.is-background.el-pagination--small .el-pager li{margin:0 3px;min-width:22px}.el-pager,.el-pager li{vertical-align:top;margin:0;display:inline-block}.el-pager{-ms-user-select:none;user-select:none;list-style:none;font-size:0}.el-date-table,.el-pager,.el-table th{-webkit-user-select:none;-moz-user-select:none}.el-pager .more:before{line-height:30px}.el-pager li{padding:0 4px;font-size:13px;min-width:35.5px;height:28px;line-height:28px;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center}.el-menu--collapse .el-menu .el-submenu,.el-menu--popup{min-width:200px}.el-pager li.btn-quicknext,.el-pager li.btn-quickprev{line-height:28px;color:#303133}.el-pager li.btn-quicknext.disabled,.el-pager li.btn-quickprev.disabled{color:#c0c4cc}.el-pager li.active+li{border-left:0}.el-pager li:hover{color:#409eff}.el-pager li.active{color:#409eff;cursor:default}@-webkit-keyframes v-modal-in{0%{opacity:0}}@-webkit-keyframes v-modal-out{to{opacity:0}}.el-dialog{position:relative;margin:0 auto 50px;border-radius:2px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,.3);box-shadow:0 1px 3px rgba(0,0,0,.3);-webkit-box-sizing:border-box;box-sizing:border-box;width:50%}.el-dialog.is-fullscreen{width:100%;margin-top:0;margin-bottom:0;height:100%;overflow:auto}.el-dialog__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:auto;margin:0}.el-dialog__header{padding:20px 20px 10px}.el-dialog__headerbtn{position:absolute;top:20px;right:20px;padding:0;background:0 0;border:none;outline:0;cursor:pointer;font-size:16px}.el-dialog__headerbtn .el-dialog__close{color:#909399}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:#409eff}.el-dialog__title{line-height:24px;font-size:18px;color:#303133}.el-dialog__body{padding:30px 20px;color:#606266;font-size:14px;word-break:break-all}.el-dialog__footer{padding:10px 20px 20px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial;padding:25px 25px 30px}.el-dialog--center .el-dialog__footer{text-align:inherit}.dialog-fade-enter-active{-webkit-animation:dialog-fade-in .3s;animation:dialog-fade-in .3s}.dialog-fade-leave-active{-webkit-animation:dialog-fade-out .3s;animation:dialog-fade-out .3s}@-webkit-keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes dialog-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes dialog-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-autocomplete{position:relative;display:inline-block}.el-autocomplete-suggestion{margin:5px 0;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:4px;border:1px solid #e4e7ed;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff}.el-dropdown-menu,.el-menu--collapse .el-submenu .el-menu{z-index:10;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-autocomplete-suggestion__wrap{max-height:280px;padding:10px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{padding:0 20px;margin:0;line-height:34px;cursor:pointer;color:#606266;font-size:14px;list-style:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-autocomplete-suggestion li.highlighted,.el-autocomplete-suggestion li:hover{background-color:#f5f7fa}.el-autocomplete-suggestion li.divider{margin-top:6px;border-top:1px solid #000}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{text-align:center;height:100px;line-height:100px;font-size:20px;color:#999}.el-autocomplete-suggestion.is-loading li:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-autocomplete-suggestion.is-loading li:hover{background-color:#fff}.el-autocomplete-suggestion.is-loading .el-icon-loading{vertical-align:middle}.el-dropdown{display:inline-block;position:relative;color:#606266;font-size:14px}.el-dropdown .el-button-group{display:block}.el-dropdown .el-button-group .el-button{float:none}.el-dropdown .el-dropdown__caret-button{padding-left:5px;padding-right:5px;position:relative;border-left:none}.el-dropdown .el-dropdown__caret-button:before{content:"";position:absolute;display:block;width:1px;top:5px;bottom:5px;left:0;background:hsla(0,0%,100%,.5)}.el-dropdown .el-dropdown__caret-button.el-button--default:before{background:rgba(220,223,230,.5)}.el-dropdown .el-dropdown__caret-button:hover:before{top:0;bottom:0}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{padding-left:0}.el-dropdown__icon{font-size:12px;margin:0 3px}.el-dropdown-menu{position:absolute;top:0;left:0;padding:10px 0;margin:5px 0;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-dropdown-menu__item{list-style:none;line-height:36px;padding:0 20px;margin:0;font-size:14px;color:#606266;cursor:pointer;outline:0}.el-dropdown-menu__item:focus,.el-dropdown-menu__item:not(.is-disabled):hover{background-color:#ecf5ff;color:#66b1ff}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{position:relative;margin-top:6px;border-top:1px solid #ebeef5}.el-dropdown-menu__item--divided:before{content:"";height:6px;display:block;margin:0 -20px;background-color:#fff}.el-dropdown-menu__item.is-disabled{cursor:default;color:#bbb;pointer-events:none}.el-dropdown-menu--medium{padding:6px 0}.el-dropdown-menu--medium .el-dropdown-menu__item{line-height:30px;padding:0 17px;font-size:14px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:6px}.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:6px;margin:0 -17px}.el-dropdown-menu--small{padding:6px 0}.el-dropdown-menu--small .el-dropdown-menu__item{line-height:27px;padding:0 15px;font-size:13px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:4px}.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:4px;margin:0 -15px}.el-dropdown-menu--mini{padding:3px 0}.el-dropdown-menu--mini .el-dropdown-menu__item{line-height:24px;padding:0 10px;font-size:12px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided{margin-top:3px}.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before{height:3px;margin:0 -10px}.el-menu{border-right:1px solid #e6e6e6;list-style:none;position:relative;margin:0;padding-left:0}.el-menu,.el-menu--horizontal>.el-menu-item:not(.is-disabled):focus,.el-menu--horizontal>.el-menu-item:not(.is-disabled):hover,.el-menu--horizontal>.el-submenu .el-submenu__title:hover{background-color:#fff}.el-menu:after,.el-menu:before{display:table;content:""}.el-menu:after{clear:both}.el-menu.el-menu--horizontal{border-bottom:1px solid #e6e6e6}.el-menu--horizontal{border-right:none}.el-menu--horizontal>.el-menu-item{float:left;height:60px;line-height:60px;margin:0;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-submenu{float:left}.el-menu--horizontal>.el-submenu:focus,.el-menu--horizontal>.el-submenu:hover{outline:0}.el-menu--horizontal>.el-submenu:focus .el-submenu__title,.el-menu--horizontal>.el-submenu:hover .el-submenu__title{color:#303133}.el-menu--horizontal>.el-submenu.is-active .el-submenu__title{border-bottom:2px solid #409eff;color:#303133}.el-menu--horizontal>.el-submenu .el-submenu__title{height:60px;line-height:60px;border-bottom:2px solid transparent;color:#909399}.el-menu--horizontal>.el-submenu .el-submenu__icon-arrow{position:static;vertical-align:middle;margin-left:8px;margin-top:-3px}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-submenu__title{background-color:#fff;float:none;height:36px;line-height:36px;padding:0 10px;color:#909399}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-submenu.is-active>.el-submenu__title{color:#303133}.el-menu--horizontal .el-menu-item:not(.is-disabled):focus,.el-menu--horizontal .el-menu-item:not(.is-disabled):hover{outline:0;color:#303133}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid #409eff;color:#303133}.el-menu--collapse{width:64px}.el-menu--collapse>.el-menu-item [class^=el-icon-],.el-menu--collapse>.el-submenu>.el-submenu__title [class^=el-icon-]{margin:0;vertical-align:middle;width:24px;text-align:center}.el-menu--collapse>.el-menu-item .el-submenu__icon-arrow,.el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item span,.el-menu--collapse>.el-submenu>.el-submenu__title span{height:0;width:0;overflow:hidden;visibility:hidden;display:inline-block}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-submenu{position:relative}.el-menu--collapse .el-submenu .el-menu{position:absolute;margin-left:5px;top:0;left:100%;border:1px solid #e4e7ed;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu-item,.el-submenu__title{height:56px;line-height:56px;position:relative;-webkit-box-sizing:border-box;white-space:nowrap;list-style:none}.el-menu--collapse .el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:none;transform:none}.el-menu--popup{z-index:100;border:none;padding:5px 0;border-radius:2px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-menu--popup-bottom-start{margin-top:5px}.el-menu--popup-right-start{margin-left:5px;margin-right:5px}.el-menu-item{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-menu-item *{vertical-align:middle}.el-menu-item i{color:#909399}.el-menu-item:focus,.el-menu-item:hover{outline:0;background-color:#ecf5ff}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon-]{margin-right:5px;width:24px;text-align:center;font-size:18px;vertical-align:middle}.el-menu-item.is-active{color:#409eff}.el-menu-item.is-active i{color:inherit}.el-submenu{list-style:none;margin:0;padding-left:0}.el-submenu__title{font-size:14px;color:#303133;padding:0 20px;cursor:pointer;-webkit-transition:border-color .3s,background-color .3s,color .3s;transition:border-color .3s,background-color .3s,color .3s;-webkit-box-sizing:border-box;box-sizing:border-box}.el-submenu__title *{vertical-align:middle}.el-submenu__title i{color:#909399}.el-submenu__title:focus,.el-submenu__title:hover{outline:0;background-color:#ecf5ff}.el-submenu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu__title:hover{background-color:#ecf5ff}.el-submenu .el-menu{border:none}.el-submenu .el-menu-item{height:50px;line-height:50px;padding:0 45px;min-width:200px}.el-submenu__icon-arrow{position:absolute;top:50%;right:20px;margin-top:-7px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:12px}.el-submenu.is-active .el-submenu__title{border-bottom-color:#409eff}.el-submenu.is-opened>.el-submenu__title .el-submenu__icon-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-submenu.is-disabled .el-menu-item,.el-submenu.is-disabled .el-submenu__title{opacity:.25;cursor:not-allowed;background:0 0!important}.el-submenu [class^=el-icon-]{vertical-align:middle;margin-right:5px;width:24px;text-align:center;font-size:18px}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px 20px;line-height:normal;font-size:12px;color:#909399}.el-radio-button__inner,.el-radio-group{display:inline-block;line-height:1;vertical-align:middle}.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow{-webkit-transition:.2s;transition:.2s;opacity:0}.el-radio-group{font-size:0}.el-radio-button{position:relative;display:inline-block;outline:0}.el-radio-button__inner{white-space:nowrap;background:#fff;border:1px solid #dcdfe6;font-weight:500;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;position:relative;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-radio-button__inner.is-round{padding:12px 20px}.el-radio-button__inner:hover{color:#409eff}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-radio-button__orig-radio{opacity:0;outline:0;position:absolute;z-index:-1}.el-radio-button__orig-radio:checked+.el-radio-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #409eff;box-shadow:-1px 0 0 0 #409eff}.el-radio-button__orig-radio:disabled+.el-radio-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-radio-button__orig-radio:disabled:checked+.el-radio-button__inner{background-color:#f2f6fc}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 4px 4px 0}.el-popover,.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:4px}.el-radio-button--medium .el-radio-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-radio-button--medium .el-radio-button__inner.is-round{padding:10px 20px}.el-radio-button--small .el-radio-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-radio-button--small .el-radio-button__inner.is-round{padding:9px 15px}.el-radio-button--mini .el-radio-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-radio-button--mini .el-radio-button__inner.is-round{padding:7px 15px}.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled){-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-switch{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:relative;font-size:14px;line-height:20px;height:20px;vertical-align:middle}.el-switch__core,.el-switch__label{display:inline-block;cursor:pointer}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{-webkit-transition:.2s;transition:.2s;height:20px;font-size:14px;font-weight:500;vertical-align:middle;color:#303133}.el-switch__label.is-active{color:#409eff}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{line-height:1;font-size:14px;display:inline-block}.el-switch__input{position:absolute;width:0;height:0;opacity:0;margin:0}.el-switch__core{margin:0;position:relative;width:40px;height:20px;border:1px solid #dcdfe6;outline:0;border-radius:10px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#dcdfe6;-webkit-transition:border-color .3s,background-color .3s;transition:border-color .3s,background-color .3s;vertical-align:middle}.el-switch__core:after{content:"";position:absolute;top:1px;left:1px;border-radius:100%;-webkit-transition:all .3s;transition:all .3s;width:16px;height:16px;background-color:#fff}.el-switch.is-checked .el-switch__core{border-color:#409eff;background-color:#409eff}.el-switch.is-checked .el-switch__core:after{left:100%;margin-left:-17px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter,.el-switch .label-fade-leave-active{opacity:0}.el-select-dropdown{position:absolute;z-index:1001;border:1px solid #e4e7ed;border-radius:4px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:5px 0}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected{color:#409eff;background-color:#fff}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover{background-color:#f5f7fa}.el-select-dropdown.is-multiple .el-select-dropdown__item.selected:after{position:absolute;right:20px;font-family:element-icons;content:"\E6DA";font-size:12px;font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__empty{padding:10px 0;margin:0;text-align:center;color:#999;font-size:14px}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{list-style:none;padding:6px 0;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-select-dropdown__item{font-size:14px;padding:0 20px;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#606266;height:34px;line-height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;cursor:pointer}.el-select-dropdown__item.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-select-dropdown__item.is-disabled:hover{background-color:#fff}.el-select-dropdown__item.hover,.el-select-dropdown__item:hover{background-color:#f5f7fa}.el-select-dropdown__item.selected{color:#409eff;font-weight:700}.el-select-group{margin:0;padding:0}.el-select-group__wrap{position:relative;list-style:none;margin:0;padding:0}.el-select-group__wrap:not(:last-of-type){padding-bottom:24px}.el-select-group__wrap:not(:last-of-type):after{content:"";position:absolute;display:block;left:20px;right:20px;bottom:12px;height:1px;background:#e4e7ed}.el-select-group__title{padding-left:20px;font-size:12px;color:#909399;line-height:30px}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{display:inline-block;position:relative}.el-select .el-select__tags>span{display:contents}.el-select:hover .el-input__inner{border-color:#c0c4cc}.el-select .el-input__inner{cursor:pointer;padding-right:35px}.el-select .el-input__inner:focus{border-color:#409eff}.el-select .el-input .el-select__caret{color:#c0c4cc;font-size:14px;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;-webkit-transform:rotate(180deg);transform:rotate(180deg);cursor:pointer}.el-select .el-input .el-select__caret.is-reverse{-webkit-transform:rotate(0);transform:rotate(0)}.el-select .el-input .el-select__caret.is-show-close{font-size:14px;text-align:center;-webkit-transform:rotate(180deg);transform:rotate(180deg);border-radius:100%;color:#c0c4cc;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-select .el-input .el-select__caret.is-show-close:hover{color:#909399}.el-select .el-input.is-disabled .el-input__inner{cursor:not-allowed}.el-select .el-input.is-disabled .el-input__inner:hover{border-color:#e4e7ed}.el-select .el-input.is-focus .el-input__inner{border-color:#409eff}.el-select>.el-input{display:block}.el-select__input{border:none;outline:0;padding:0;margin-left:15px;color:#666;font-size:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:28px;background-color:transparent}.el-select__input.is-mini{height:14px}.el-select__close{cursor:pointer;position:absolute;top:8px;z-index:1000;right:25px;color:#c0c4cc;line-height:18px;font-size:14px}.el-select__close:hover{color:#909399}.el-select__tags{position:absolute;line-height:normal;white-space:normal;z-index:1;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-select .el-tag__close{margin-top:-2px}.el-select .el-tag{-webkit-box-sizing:border-box;box-sizing:border-box;border-color:transparent;margin:2px 0 2px 6px;background-color:#f0f2f5}.el-select .el-tag__close.el-icon-close{background-color:#c0c4cc;right:-7px;top:0;color:#fff}.el-select .el-tag__close.el-icon-close:hover{background-color:#909399}.el-table,.el-table__expanded-cell{background-color:#fff}.el-select .el-tag__close.el-icon-close:before{display:block;-webkit-transform:translateY(.5px);transform:translateY(.5px)}.el-table{position:relative;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-box-flex:1;-ms-flex:1;flex:1;width:100%;max-width:100%;font-size:14px;color:#606266}.el-table--mini,.el-table--small,.el-table__expand-icon{font-size:12px}.el-table__empty-block{min-height:60px;text-align:center;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-table__empty-text{line-height:60px;width:50%;color:#909399}.el-table__expand-column .cell{padding:0;text-align:center}.el-table__expand-icon{position:relative;cursor:pointer;color:#666;-webkit-transition:-webkit-transform .2s ease-in-out;transition:-webkit-transform .2s ease-in-out;transition:transform .2s ease-in-out;transition:transform .2s ease-in-out,-webkit-transform .2s ease-in-out;height:20px}.el-table__expand-icon--expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-table__expand-icon>.el-icon{position:absolute;left:50%;top:50%;margin-left:-5px;margin-top:-5px}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:transparent!important}.el-table__placeholder{display:inline-block;width:20px}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-right:0;border-bottom:0}.el-table--fit td.gutter,.el-table--fit th.gutter{border-right-width:1px}.el-table--scrollable-x .el-table__body-wrapper{overflow-x:auto}.el-table--scrollable-y .el-table__body-wrapper{overflow-y:auto}.el-table thead{color:#909399;font-weight:500}.el-table thead.is-group th{background:#f5f7fa}.el-table th,.el-table tr{background-color:#fff}.el-table td,.el-table th{padding:12px 0;min-width:0;-webkit-box-sizing:border-box;box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;position:relative;text-align:left}.el-table td.is-center,.el-table th.is-center{text-align:center}.el-table td.is-right,.el-table th.is-right{text-align:right}.el-table td.gutter,.el-table th.gutter{width:15px;border-right-width:0;border-bottom-width:0;padding:0}.el-table--medium td,.el-table--medium th{padding:10px 0}.el-table--small td,.el-table--small th{padding:8px 0}.el-table--mini td,.el-table--mini th{padding:6px 0}.el-table--border td:first-child .cell,.el-table--border th:first-child .cell,.el-table .cell{padding-left:10px}.el-table tr input[type=checkbox]{margin:0}.el-table td,.el-table th.is-leaf{border-bottom:1px solid #ebeef5}.el-table th.is-sortable{cursor:pointer}.el-table th{overflow:hidden;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-table th>.cell{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;vertical-align:middle;padding-left:10px;padding-right:10px;width:100%}.el-table th>.cell.highlight{color:#409eff}.el-table th.required>div:before{display:inline-block;content:"";width:8px;height:8px;border-radius:50%;background:#ff4d51;margin-right:5px;vertical-align:middle}.el-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-table td.gutter{width:0}.el-table .cell{-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:normal;word-break:break-all;line-height:23px;padding-right:10px}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--border,.el-table--group{border:1px solid #ebeef5}.el-table--border:after,.el-table--group:after,.el-table:before{content:"";position:absolute;background-color:#ebeef5;z-index:1}.el-table--border:after,.el-table--group:after{top:0;right:0;width:1px;height:100%}.el-table:before{left:0;bottom:0;width:100%;height:1px}.el-table--border{border-right:none;border-bottom:none}.el-table--border.el-loading-parent--relative{border-color:transparent}.el-table--border td,.el-table--border th,.el-table__body-wrapper .el-table--border.is-scrolling-left~.el-table__fixed{border-right:1px solid #ebeef5}.el-table--border th.gutter:last-of-type{border-bottom:1px solid #ebeef5;border-bottom-width:1px}.el-table--border th,.el-table__fixed-right-patch{border-bottom:1px solid #ebeef5}.el-table__fixed,.el-table__fixed-right{position:absolute;top:0;left:0;overflow-x:hidden;overflow-y:hidden;-webkit-box-shadow:0 0 10px rgba(0,0,0,.12);box-shadow:0 0 10px rgba(0,0,0,.12)}.el-table__fixed-right:before,.el-table__fixed:before{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background-color:#ebeef5;z-index:4}.el-table__fixed-right-patch{position:absolute;top:-1px;right:0;background-color:#fff}.el-table__fixed-right{top:0;left:auto;right:0}.el-table__fixed-right .el-table__fixed-body-wrapper,.el-table__fixed-right .el-table__fixed-footer-wrapper,.el-table__fixed-right .el-table__fixed-header-wrapper{left:auto;right:0}.el-table__fixed-header-wrapper{position:absolute;left:0;top:0;z-index:3}.el-table__fixed-footer-wrapper{position:absolute;left:0;bottom:0;z-index:3}.el-table__fixed-footer-wrapper tbody td{border-top:1px solid #ebeef5;background-color:#f5f7fa;color:#606266}.el-table__fixed-body-wrapper{position:absolute;left:0;top:37px;overflow:hidden;z-index:3}.el-table__body-wrapper,.el-table__footer-wrapper,.el-table__header-wrapper{width:100%}.el-table__footer-wrapper{margin-top:-1px}.el-table__footer-wrapper td{border-top:1px solid #ebeef5}.el-table__body,.el-table__footer,.el-table__header{table-layout:fixed;border-collapse:separate}.el-table__footer-wrapper,.el-table__header-wrapper{overflow:hidden}.el-table__footer-wrapper tbody td,.el-table__header-wrapper tbody td{background-color:#f5f7fa;color:#606266}.el-table__body-wrapper{overflow:hidden;position:relative}.el-table__body-wrapper.is-scrolling-left~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed,.el-table__body-wrapper.is-scrolling-none~.el-table__fixed-right,.el-table__body-wrapper.is-scrolling-right~.el-table__fixed-right{-webkit-box-shadow:none;box-shadow:none}.el-picker-panel,.el-table-filter{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-table__body-wrapper .el-table--border.is-scrolling-right~.el-table__fixed-right{border-left:1px solid #ebeef5}.el-table .caret-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;width:24px;vertical-align:middle;cursor:pointer;overflow:initial;position:relative}.el-table .sort-caret{width:0;height:0;border:5px solid transparent;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:#c0c4cc;top:5px}.el-table .sort-caret.descending{border-top-color:#c0c4cc;bottom:7px}.el-table .ascending .sort-caret.ascending{border-bottom-color:#409eff}.el-table .descending .sort-caret.descending{border-top-color:#409eff}.el-table .hidden-columns{position:absolute;z-index:-1}.el-table--striped .el-table__body tr.el-table__row--striped td{background:#fafafa}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td{background-color:#ecf5ff}.el-table__body tr.hover-row.current-row>td,.el-table__body tr.hover-row.el-table__row--striped.current-row>td,.el-table__body tr.hover-row.el-table__row--striped>td,.el-table__body tr.hover-row>td{background-color:#f5f7fa}.el-table__body tr.current-row>td{background-color:#ecf5ff}.el-table__column-resize-proxy{position:absolute;left:200px;top:0;bottom:0;width:0;border-left:1px solid #ebeef5;z-index:10}.el-table__column-filter-trigger{display:inline-block;line-height:34px;cursor:pointer}.el-table__column-filter-trigger i{color:#909399;font-size:12px;-webkit-transform:scale(.75);transform:scale(.75)}.el-table--enable-row-transition .el-table__body td{-webkit-transition:background-color .25s ease;transition:background-color .25s ease}.el-table--enable-row-hover .el-table__body tr:hover>td{background-color:#f5f7fa}.el-table--fluid-height .el-table__fixed,.el-table--fluid-height .el-table__fixed-right{bottom:0;overflow:hidden}.el-table [class*=el-table__row--level] .el-table__expand-icon{display:inline-block;width:20px;line-height:20px;height:20px;text-align:center;margin-right:3px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:1px solid #ebeef5;border-radius:2px;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-box-sizing:border-box;box-sizing:border-box;margin:2px 0}.el-date-table td,.el-date-table td div{height:30px;-webkit-box-sizing:border-box}.el-table-filter__list{padding:5px 0;margin:0;list-style:none;min-width:100px}.el-table-filter__list-item{line-height:36px;padding:0 10px;cursor:pointer;font-size:14px}.el-table-filter__list-item:hover{background-color:#ecf5ff;color:#66b1ff}.el-table-filter__list-item.is-active{background-color:#409eff;color:#fff}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid #ebeef5;padding:8px}.el-table-filter__bottom button{background:0 0;border:none;color:#606266;cursor:pointer;font-size:13px;padding:0 3px}.el-date-table.is-week-mode .el-date-table__row.current div,.el-date-table.is-week-mode .el-date-table__row:hover div,.el-date-table td.in-range div,.el-date-table td.in-range div:hover{background-color:#f2f6fc}.el-table-filter__bottom button:hover{color:#409eff}.el-table-filter__bottom button:focus{outline:0}.el-table-filter__bottom button.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{display:block;margin-right:5px;margin-bottom:8px;margin-left:5px}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-date-table{font-size:12px;-ms-user-select:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:#606266}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td{width:32px;padding:4px 0;text-align:center;cursor:pointer;position:relative}.el-date-table td,.el-date-table td div{-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-table td div{padding:3px 0}.el-date-table td span{width:24px;height:24px;display:block;margin:0 auto;line-height:24px;position:absolute;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);border-radius:50%}.el-date-table td.next-month,.el-date-table td.prev-month{color:#c0c4cc}.el-date-table td.today{position:relative}.el-date-table td.today span{color:#409eff;font-weight:700}.el-date-table td.today.end-date span,.el-date-table td.today.start-date span{color:#fff}.el-date-table td.available:hover{color:#409eff}.el-date-table td.current:not(.disabled) span{color:#fff;background-color:#409eff}.el-date-table td.end-date div,.el-date-table td.start-date div{color:#fff}.el-date-table td.end-date span,.el-date-table td.start-date span{background-color:#409eff}.el-date-table td.start-date div{margin-left:5px;border-top-left-radius:15px;border-bottom-left-radius:15px}.el-date-table td.end-date div{margin-right:5px;border-top-right-radius:15px;border-bottom-right-radius:15px}.el-date-table td.disabled div{background-color:#f5f7fa;opacity:1;cursor:not-allowed;color:#c0c4cc}.el-date-table td.selected div{margin-left:5px;margin-right:5px;background-color:#f2f6fc;border-radius:15px}.el-date-table td.selected div:hover{background-color:#f2f6fc}.el-date-table td.selected span{background-color:#409eff;color:#fff;border-radius:15px}.el-date-table td.week{font-size:80%;color:#606266}.el-month-table,.el-year-table{font-size:12px;border-collapse:collapse}.el-date-table th{padding:5px;color:#606266;font-weight:400;border-bottom:1px solid #ebeef5}.el-month-table{margin:-1px}.el-month-table td{text-align:center;padding:8px 0;cursor:pointer}.el-month-table td div{height:48px;padding:6px 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-month-table td.today .cell{color:#409eff;font-weight:700}.el-month-table td.today.end-date .cell,.el-month-table td.today.start-date .cell{color:#fff}.el-month-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-month-table td.disabled .cell:hover{color:#c0c4cc}.el-month-table td .cell{width:60px;height:36px;display:block;line-height:36px;color:#606266;margin:0 auto;border-radius:18px}.el-month-table td .cell:hover{color:#409eff}.el-month-table td.in-range div,.el-month-table td.in-range div:hover{background-color:#f2f6fc}.el-month-table td.end-date div,.el-month-table td.start-date div{color:#fff}.el-month-table td.end-date .cell,.el-month-table td.start-date .cell{color:#fff;background-color:#409eff}.el-month-table td.start-date div{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-month-table td.end-date div{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-month-table td.current:not(.disabled) .cell{color:#409eff}.el-year-table{margin:-1px}.el-year-table .el-icon{color:#303133}.el-year-table td{text-align:center;padding:20px 3px;cursor:pointer}.el-year-table td.today .cell{color:#409eff;font-weight:700}.el-year-table td.disabled .cell{background-color:#f5f7fa;cursor:not-allowed;color:#c0c4cc}.el-year-table td.disabled .cell:hover{color:#c0c4cc}.el-year-table td .cell{width:48px;height:32px;display:block;line-height:32px;color:#606266;margin:0 auto}.el-year-table td .cell:hover,.el-year-table td.current:not(.disabled) .cell{color:#409eff}.el-date-range-picker{width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker__header{position:relative;text-align:center;height:28px}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{font-size:16px;font-weight:500;margin-right:50px}.el-date-range-picker__content{float:left;width:50%;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:16px}.el-date-range-picker__content.is-left{border-right:1px solid #e4e4e4}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{-webkit-box-sizing:border-box;box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-range-picker__time-header>.el-icon-arrow-right{font-size:20px;vertical-align:middle;display:table-cell;color:#303133}.el-date-range-picker__time-picker-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-range-picker__time-picker-wrap .el-picker-panel{position:absolute;top:13px;right:0;z-index:1;background:#fff}.el-date-picker{width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{position:relative;display:table-cell;padding:0 5px}.el-date-picker__time-header{position:relative;border-bottom:1px solid #e4e4e4;font-size:12px;padding:8px 5px 5px;display:table;width:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.el-date-picker__header{margin:12px;text-align:center}.el-date-picker__header--bordered{margin-bottom:0;padding-bottom:12px;border-bottom:1px solid #ebeef5}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{font-size:16px;font-weight:500;padding:0 5px;line-height:22px;text-align:center;cursor:pointer;color:#606266}.el-date-picker__header-label.active,.el-date-picker__header-label:hover{color:#409eff}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{padding:10px;text-align:center}.el-date-picker__time-label{float:left;cursor:pointer;line-height:30px;margin-left:10px}.time-select{margin:5px 0;min-width:0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.selected:not(.disabled){color:#409eff;font-weight:700}.time-select-item.disabled{color:#e4e7ed;cursor:not-allowed}.time-select-item:hover{background-color:#f5f7fa;font-weight:700;cursor:pointer}.el-date-editor{position:relative;display:inline-block;text-align:left}.el-date-editor.el-input,.el-date-editor.el-input__inner{width:220px}.el-date-editor--monthrange.el-input,.el-date-editor--monthrange.el-input__inner{width:300px}.el-date-editor--daterange.el-input,.el-date-editor--daterange.el-input__inner,.el-date-editor--timerange.el-input,.el-date-editor--timerange.el-input__inner{width:350px}.el-date-editor--datetimerange.el-input,.el-date-editor--datetimerange.el-input__inner{width:400px}.el-date-editor--dates .el-input__inner{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .el-icon-circle-close{cursor:pointer}.el-date-editor .el-range__icon{font-size:14px;margin-left:-5px;color:#c0c4cc;float:left;line-height:32px}.el-date-editor .el-range-input,.el-date-editor .el-range-separator{height:100%;margin:0;text-align:center;display:inline-block;font-size:14px}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;padding:0;width:39%;color:#606266}.el-date-editor .el-range-input::-webkit-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input:-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-ms-input-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::-moz-placeholder{color:#c0c4cc}.el-date-editor .el-range-input::placeholder{color:#c0c4cc}.el-date-editor .el-range-separator{padding:0 5px;line-height:32px;width:5%;color:#303133}.el-date-editor .el-range__close-icon{font-size:14px;color:#c0c4cc;width:25px;display:inline-block;float:right;line-height:32px}.el-range-editor.el-input__inner{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:3px 10px}.el-range-editor .el-range-input{line-height:1}.el-range-editor.is-active,.el-range-editor.is-active:hover{border-color:#409eff}.el-range-editor--medium.el-input__inner{height:36px}.el-range-editor--medium .el-range-separator{line-height:28px;font-size:14px}.el-range-editor--medium .el-range-input{font-size:14px}.el-range-editor--medium .el-range__close-icon,.el-range-editor--medium .el-range__icon{line-height:28px}.el-range-editor--small.el-input__inner{height:32px}.el-range-editor--small .el-range-separator{line-height:24px;font-size:13px}.el-range-editor--small .el-range-input{font-size:13px}.el-range-editor--small .el-range__close-icon,.el-range-editor--small .el-range__icon{line-height:24px}.el-range-editor--mini.el-input__inner{height:28px}.el-range-editor--mini .el-range-separator{line-height:20px;font-size:12px}.el-range-editor--mini .el-range-input{font-size:12px}.el-range-editor--mini .el-range__close-icon,.el-range-editor--mini .el-range__icon{line-height:20px}.el-range-editor.is-disabled{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled:focus,.el-range-editor.is-disabled:hover{border-color:#e4e7ed}.el-range-editor.is-disabled input{background-color:#f5f7fa;color:#c0c4cc;cursor:not-allowed}.el-range-editor.is-disabled input::-webkit-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input:-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-ms-input-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::-moz-placeholder{color:#c0c4cc}.el-range-editor.is-disabled input::placeholder{color:#c0c4cc}.el-range-editor.is-disabled .el-range-separator{color:#c0c4cc}.el-picker-panel{color:#606266;border:1px solid #e4e7ed;box-shadow:0 2px 12px 0 rgba(0,0,0,.1);background:#fff;border-radius:4px;line-height:30px;margin:5px 0}.el-picker-panel,.el-popover,.el-time-panel{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-picker-panel__body-wrapper:after,.el-picker-panel__body:after{content:"";display:table;clear:both}.el-picker-panel__content{position:relative;margin:15px}.el-picker-panel__footer{border-top:1px solid #e4e4e4;padding:4px;text-align:right;background-color:#fff;position:relative;font-size:0}.el-picker-panel__shortcut{display:block;width:100%;border:0;background-color:transparent;line-height:28px;font-size:14px;color:#606266;padding-left:12px;text-align:left;outline:0;cursor:pointer}.el-picker-panel__shortcut:hover{color:#409eff}.el-picker-panel__shortcut.active{background-color:#e6f1fe;color:#409eff}.el-picker-panel__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-picker-panel__btn[disabled]{color:#ccc;cursor:not-allowed}.el-picker-panel__icon-btn{font-size:12px;color:#303133;border:0;background:0 0;cursor:pointer;outline:0;margin-top:8px}.el-picker-panel__icon-btn:hover{color:#409eff}.el-picker-panel__icon-btn.is-disabled{color:#bbb}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{position:absolute;top:0;bottom:0;width:110px;border-right:1px solid #e4e4e4;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;background-color:#fff;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{max-height:190px;overflow:auto;display:inline-block;width:50%;vertical-align:top;position:relative}.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__input.el-input .el-input__inner,.el-time-spinner__list{padding:0;text-align:center}.el-time-spinner__wrapper.is-arrow{-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{-webkit-transform:translateY(-32px);transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active){background:#fff;cursor:default}.el-time-spinner__arrow{font-size:12px;color:#909399;position:absolute;left:0;width:100%;z-index:1;text-align:center;height:30px;line-height:30px;cursor:pointer}.el-time-spinner__arrow:hover{color:#409eff}.el-time-spinner__arrow.el-icon-arrow-up{top:10px}.el-time-spinner__arrow.el-icon-arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__list{margin:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";display:block;width:100%;height:80px}.el-time-spinner__item{height:32px;line-height:32px;font-size:12px;color:#606266}.el-time-spinner__item:hover:not(.disabled):not(.active){background:#f5f7fa;cursor:pointer}.el-time-spinner__item.active:not(.disabled){color:#303133;font-weight:700}.el-time-spinner__item.disabled{color:#c0c4cc;cursor:not-allowed}.el-time-panel{margin:5px 0;border:1px solid #e4e7ed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;width:180px;left:0;z-index:1000;user-select:none;-webkit-box-sizing:content-box;box-sizing:content-box}.el-slider__button,.el-slider__button-wrapper,.el-time-panel{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";top:50%;position:absolute;margin-top:-15px;height:32px;z-index:-1;left:0;right:0;-webkit-box-sizing:border-box;box-sizing:border-box;padding-top:6px;text-align:left;border-top:1px solid #e4e7ed;border-bottom:1px solid #e4e7ed}.el-time-panel__content:after{left:50%;margin-left:12%;margin-right:12%}.el-time-panel__content:before{padding-left:50%;margin-right:12%;margin-left:12%}.el-time-panel__content.has-seconds:after{left:66.66667%}.el-time-panel__content.has-seconds:before{padding-left:33.33333%}.el-time-panel__footer{border-top:1px solid #e4e4e4;padding:4px;height:36px;line-height:25px;text-align:right;-webkit-box-sizing:border-box;box-sizing:border-box}.el-time-panel__btn{border:none;line-height:28px;padding:0 5px;margin:0 5px;cursor:pointer;background-color:transparent;outline:0;font-size:12px;color:#303133}.el-time-panel__btn.confirm{font-weight:800;color:#409eff}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{position:relative;text-align:center;padding:10px}.el-time-range-picker__cell{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:4px 7px 7px;width:50%;display:inline-block}.el-time-range-picker__header{margin-bottom:5px;text-align:center;font-size:14px}.el-time-range-picker__body{border-radius:2px;border:1px solid #e4e7ed}.el-popover{position:absolute;background:#fff;min-width:150px;border:1px solid #ebeef5;padding:12px;z-index:2000;color:#606266;line-height:1.4;text-align:justify;font-size:14px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);word-break:break-all}.el-popover--plain{padding:18px 20px}.el-popover__title{color:#303133;font-size:16px;line-height:1;margin-bottom:12px}.v-modal-enter{-webkit-animation:v-modal-in .2s ease;animation:v-modal-in .2s ease}.v-modal-leave{-webkit-animation:v-modal-out .2s ease forwards;animation:v-modal-out .2s ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{position:fixed;left:0;top:0;width:100%;height:100%;opacity:.5;background:#000}.el-popup-parent--hidden{overflow:hidden}.el-message-box{display:inline-block;width:420px;padding-bottom:10px;vertical-align:middle;background-color:#fff;border-radius:4px;border:1px solid #ebeef5;font-size:18px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);text-align:left;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.el-message-box__wrapper{position:fixed;top:0;bottom:0;left:0;right:0;text-align:center}.el-message-box__wrapper:after{content:"";display:inline-block;height:100%;width:0;vertical-align:middle}.el-message-box__header{position:relative;padding:15px 15px 10px}.el-message-box__title{padding-left:0;margin-bottom:0;font-size:18px;line-height:1;color:#303133}.el-message-box__headerbtn{position:absolute;top:15px;right:15px;padding:0;border:none;outline:0;background:0 0;font-size:16px;cursor:pointer}.el-form-item.is-error .el-input__inner,.el-form-item.is-error .el-input__inner:focus,.el-form-item.is-error .el-textarea__inner,.el-form-item.is-error .el-textarea__inner:focus,.el-message-box__input input.invalid,.el-message-box__input input.invalid:focus{border-color:#f56c6c}.el-message-box__headerbtn .el-message-box__close{color:#909399}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:#409eff}.el-message-box__content{padding:10px 15px;color:#606266;font-size:14px}.el-message-box__container{position:relative}.el-message-box__input{padding-top:15px}.el-message-box__status{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);font-size:24px!important}.el-message-box__status:before{padding-left:1px}.el-message-box__status+.el-message-box__message{padding-left:36px;padding-right:12px}.el-message-box__status.el-icon-success{color:#67c23a}.el-message-box__status.el-icon-info{color:#909399}.el-message-box__status.el-icon-warning{color:#e6a23c}.el-message-box__status.el-icon-error{color:#f56c6c}.el-message-box__message{margin:0}.el-message-box__message p{margin:0;line-height:24px}.el-message-box__errormsg{color:#f56c6c;font-size:12px;min-height:18px;margin-top:2px}.el-message-box__btns{padding:5px 15px 0;text-align:right}.el-message-box__btns button:nth-child(2){margin-left:10px}.el-message-box__btns-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.el-message-box--center{padding-bottom:30px}.el-message-box--center .el-message-box__header{padding-top:30px}.el-message-box--center .el-message-box__title{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message-box--center .el-message-box__status{position:relative;top:auto;padding-right:5px;text-align:center;-webkit-transform:translateY(-1px);transform:translateY(-1px)}.el-message-box--center .el-message-box__message{margin-left:0}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__content{text-align:center}.el-message-box--center .el-message-box__content{padding-left:27px;padding-right:27px}.msgbox-fade-enter-active{-webkit-animation:msgbox-fade-in .3s;animation:msgbox-fade-in .3s}.msgbox-fade-leave-active{-webkit-animation:msgbox-fade-out .3s;animation:msgbox-fade-out .3s}@-webkit-keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes msgbox-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes msgbox-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:after,.el-breadcrumb:before{display:table;content:""}.el-breadcrumb:after{clear:both}.el-breadcrumb__separator{margin:0 9px;font-weight:700;color:#c0c4cc}.el-breadcrumb__separator[class*=icon]{margin:0 6px;font-weight:400}.el-breadcrumb__item{float:left}.el-breadcrumb__inner{color:#606266}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{font-weight:700;text-decoration:none;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1);color:#303133}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:#409eff;cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{font-weight:400;color:#606266;cursor:text}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-form--label-left .el-form-item__label{text-align:left}.el-form--label-top .el-form-item__label{float:none;display:inline-block;text-align:left;padding:0 0 10px}.el-form--inline .el-form-item{display:inline-block;margin-right:10px;vertical-align:top}.el-form--inline .el-form-item__label{float:none;display:inline-block}.el-form--inline .el-form-item__content{display:inline-block;vertical-align:top}.el-form--inline.el-form--label-top .el-form-item__content{display:block}.el-form-item{margin-bottom:22px}.el-form-item:after,.el-form-item:before{display:table;content:""}.el-form-item:after{clear:both}.el-form-item .el-form-item{margin-bottom:0}.el-form-item--mini.el-form-item,.el-form-item--small.el-form-item{margin-bottom:18px}.el-form-item .el-input__validateIcon{display:none}.el-form-item--medium .el-form-item__content,.el-form-item--medium .el-form-item__label{line-height:36px}.el-form-item--small .el-form-item__content,.el-form-item--small .el-form-item__label{line-height:32px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--mini .el-form-item__content,.el-form-item--mini .el-form-item__label{line-height:28px}.el-form-item--mini .el-form-item__error{padding-top:1px}.el-form-item__label-wrap{float:left}.el-form-item__label-wrap .el-form-item__label{display:inline-block;float:none}.el-form-item__label{text-align:right;vertical-align:middle;float:left;font-size:14px;color:#606266;line-height:40px;padding:0 12px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-form-item__content{line-height:40px;position:relative;font-size:14px}.el-form-item__content:after,.el-form-item__content:before{display:table;content:""}.el-form-item__content:after{clear:both}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:#f56c6c;font-size:12px;line-height:1;padding-top:4px;position:absolute;top:100%;left:0}.el-form-item__error--inline{position:relative;top:auto;left:auto;display:inline-block;margin-left:10px}.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before{content:"*";color:#f56c6c;margin-right:4px}.el-form-item.is-error .el-input-group__append .el-input__inner,.el-form-item.is-error .el-input-group__prepend .el-input__inner{border-color:transparent}.el-form-item.is-error .el-input__validateIcon{color:#f56c6c}.el-form-item--feedback .el-input__validateIcon{display:inline-block}.el-tabs__header{padding:0;position:relative;margin:0 0 15px}.el-tabs__active-bar{position:absolute;bottom:0;left:0;height:2px;background-color:#409eff;z-index:1;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);list-style:none}.el-tabs__new-tab{float:right;border:1px solid #d3dce6;height:18px;width:18px;line-height:18px;margin:12px 0 9px 10px;border-radius:3px;text-align:center;font-size:12px;color:#d3dce6;cursor:pointer;-webkit-transition:all .15s;transition:all .15s}.el-collapse-item__arrow,.el-tabs__nav{-webkit-transition:-webkit-transform .3s}.el-tabs__new-tab .el-icon-plus{-webkit-transform:scale(.8);transform:scale(.8)}.el-tabs__new-tab:hover{color:#409eff}.el-tabs__nav-wrap{overflow:hidden;margin-bottom:-1px;position:relative}.el-tabs__nav-wrap:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:#e4e7ed;z-index:1}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after,.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs__nav-wrap.is-scrollable{padding:0 20px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{position:absolute;cursor:pointer;line-height:44px;font-size:12px;color:#909399}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;position:relative;transition:-webkit-transform .3s;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;float:left;z-index:2}.el-tabs__nav.is-stretch{min-width:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.el-tabs__nav.is-stretch>*{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center}.el-tabs__item{padding:0 20px;height:40px;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:40px;display:inline-block;list-style:none;font-size:14px;font-weight:500;color:#303133;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:0}.el-tabs__item:focus.is-active.is-focus:not(:active){-webkit-box-shadow:0 0 2px 2px #409eff inset;box-shadow:inset 0 0 2px 2px #409eff;border-radius:3px}.el-tabs__item .el-icon-close{border-radius:50%;text-align:center;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);margin-left:5px}.el-tabs__item .el-icon-close:before{-webkit-transform:scale(.9);transform:scale(.9);display:inline-block}.el-tabs__item .el-icon-close:hover{background-color:#c0c4cc;color:#fff}.el-tabs__item.is-active{color:#409eff}.el-tabs__item:hover{color:#409eff;cursor:pointer}.el-tabs__item.is-disabled{color:#c0c4cc;cursor:default}.el-tabs__content{overflow:hidden;position:relative}.el-tabs--card>.el-tabs__header{border-bottom:1px solid #e4e7ed}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid #e4e7ed;border-bottom:none;border-radius:4px 4px 0 0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .el-icon-close{position:relative;font-size:12px;width:0;height:14px;vertical-align:middle;line-height:15px;overflow:hidden;top:-1px;right:-2px;-webkit-transform-origin:100% 50%;transform-origin:100% 50%}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close,.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid transparent;border-left:1px solid #e4e7ed;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:#fff}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--border-card{background:#fff;border:1px solid #dcdfe6;-webkit-box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04);box-shadow:0 2px 4px 0 rgba(0,0,0,.12),0 0 6px 0 rgba(0,0,0,.04)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:#f5f7fa;border-bottom:1px solid #e4e7ed;margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__item{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);border:1px solid transparent;margin-top:-1px;color:#909399}.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item,.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:#409eff;background-color:#fff;border-right-color:#dcdfe6;border-left-color:#dcdfe6}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:#409eff}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:#c0c4cc}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2),.el-tabs--bottom .el-tabs__item.is-top:nth-child(2),.el-tabs--top .el-tabs__item.is-bottom:nth-child(2),.el-tabs--top .el-tabs__item.is-top:nth-child(2){padding-left:0}.el-tabs--bottom .el-tabs__item.is-bottom:last-child,.el-tabs--bottom .el-tabs__item.is-top:last-child,.el-tabs--top .el-tabs__item.is-bottom:last-child,.el-tabs--top .el-tabs__item.is-top:last-child{padding-right:0}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom .el-tabs--right>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--left>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top .el-tabs--right>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--bottom .el-tabs__header.is-bottom{margin-bottom:0;margin-top:10px}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid #dcdfe6}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid transparent}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-scroll,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{top:0;bottom:auto;width:2px;height:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{height:30px;line-height:30px;width:100%;text-align:center;cursor:pointer}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{left:auto;top:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{right:auto;bottom:0}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__nav-wrap.is-left:after{right:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{height:100%;width:2px;bottom:auto;top:0}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{float:none}.el-tabs--left .el-tabs__item.is-left,.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-right{display:block}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left,.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--left .el-tabs__header.is-left{float:left;margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid #e4e7ed;border-bottom:none;border-top:1px solid #e4e7ed;text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid #e4e7ed;border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid #e4e7ed;border-right-color:#fff;border-left:none;border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-radius:4px 0 0 4px;border-bottom:1px solid #e4e7ed;border-right:none}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid #dfe4ed}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid transparent;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 transparent}.el-tabs--right .el-tabs__header.is-right{float:right;margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid #e4e7ed}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid #e4e7ed;border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid #e4e7ed;border-left-color:#fff;border-right:none;border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-radius:0 4px 4px 0;border-bottom:1px solid #e4e7ed;border-left:none}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid #dfe4ed}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid transparent;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 transparent}.slideInLeft-transition,.slideInRight-transition{display:inline-block}.slideInRight-enter{-webkit-animation:slideInRight-enter .3s;animation:slideInRight-enter .3s}.slideInRight-leave{position:absolute;left:0;right:0;-webkit-animation:slideInRight-leave .3s;animation:slideInRight-leave .3s}.slideInLeft-enter{-webkit-animation:slideInLeft-enter .3s;animation:slideInLeft-enter .3s}.slideInLeft-leave{position:absolute;left:0;right:0;-webkit-animation:slideInLeft-leave .3s;animation:slideInLeft-leave .3s}@-webkit-keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInRight-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@keyframes slideInRight-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(100%);transform:translateX(100%);opacity:0}}@-webkit-keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slideInLeft-enter{0%{opacity:0;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}to{opacity:1;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}@keyframes slideInLeft-leave{0%{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(0);transform:translateX(0);opacity:1}to{-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translateX(-100%);transform:translateX(-100%);opacity:0}}.el-tree{position:relative;cursor:default;background:#fff;color:#606266}.el-tree__empty-block{position:relative;min-height:60px;text-align:center;width:100%;height:100%}.el-tree__empty-text{position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#909399;font-size:14px}.el-tree__drop-indicator{position:absolute;left:0;right:0;height:1px;background-color:#409eff}.el-tree-node{white-space:nowrap;outline:0}.el-tree-node:focus>.el-tree-node__content{background-color:#f5f7fa}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:#409eff;color:#fff}.el-tree-node__content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:26px;cursor:pointer}.el-tree-node__content>.el-tree-node__expand-icon{padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:#f5f7fa}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:#c0c4cc;font-size:12px;-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s ease-in-out;transition:-webkit-transform .3s ease-in-out;transition:transform .3s ease-in-out;transition:transform .3s ease-in-out,-webkit-transform .3s ease-in-out}.el-tree-node__expand-icon.expanded{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:transparent;cursor:default}.el-tree-node__label{font-size:14px}.el-tree-node__loading-icon{margin-right:8px;font-size:14px;color:#c0c4cc}.el-tree-node>.el-tree-node__children{overflow:hidden;background-color:transparent}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:#f0f7ff}.el-alert{width:100%;padding:8px 16px;margin:0;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;position:relative;background-color:#fff;overflow:hidden;opacity:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transition:opacity .2s;transition:opacity .2s}.el-alert.is-light .el-alert__closebtn{color:#c0c4cc}.el-alert.is-dark .el-alert__closebtn,.el-alert.is-dark .el-alert__description{color:#fff}.el-alert.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-alert--success.is-light{background-color:#f0f9eb;color:#67c23a}.el-alert--success.is-light .el-alert__description{color:#67c23a}.el-alert--success.is-dark{background-color:#67c23a;color:#fff}.el-alert--info.is-light{background-color:#f4f4f5;color:#909399}.el-alert--info.is-dark{background-color:#909399;color:#fff}.el-alert--info .el-alert__description{color:#909399}.el-alert--warning.is-light{background-color:#fdf6ec;color:#e6a23c}.el-alert--warning.is-light .el-alert__description{color:#e6a23c}.el-alert--warning.is-dark{background-color:#e6a23c;color:#fff}.el-alert--error.is-light{background-color:#fef0f0;color:#f56c6c}.el-alert--error.is-light .el-alert__description{color:#f56c6c}.el-alert--error.is-dark{background-color:#f56c6c;color:#fff}.el-alert__content{display:table-cell;padding:0 8px}.el-alert__icon{font-size:16px;width:16px}.el-alert__icon.is-big{font-size:28px;width:28px}.el-alert__title{font-size:13px;line-height:18px}.el-alert__title.is-bold{font-weight:700}.el-alert .el-alert__description{font-size:12px;margin:5px 0 0}.el-alert__closebtn{font-size:12px;opacity:1;position:absolute;top:12px;right:15px;cursor:pointer}.el-alert-fade-enter,.el-alert-fade-leave-active,.el-loading-fade-enter,.el-loading-fade-leave-active,.el-notification-fade-leave-active{opacity:0}.el-alert__closebtn.is-customed{font-style:normal;font-size:13px;top:9px}.el-notification{display:-webkit-box;display:-ms-flexbox;display:flex;width:330px;padding:14px 26px 14px 13px;border-radius:8px;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #ebeef5;position:fixed;background-color:#fff;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1);-webkit-transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s;transition:opacity .3s,transform .3s,left .3s,right .3s,top .4s,bottom .3s,-webkit-transform .3s;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{margin-left:13px;margin-right:8px}.el-notification__title{font-weight:700;font-size:16px;color:#303133;margin:0}.el-notification__content{font-size:14px;line-height:21px;margin:6px 0 0;color:#606266;text-align:justify}.el-notification__content p{margin:0}.el-notification__icon{height:24px;width:24px;font-size:24px}.el-notification__closeBtn{position:absolute;top:18px;right:15px;cursor:pointer;color:#909399;font-size:16px}.el-notification__closeBtn:hover{color:#606266}.el-notification .el-icon-success{color:#67c23a}.el-notification .el-icon-error{color:#f56c6c}.el-notification .el-icon-info{color:#909399}.el-notification .el-icon-warning{color:#e6a23c}.el-notification-fade-enter.right{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.el-notification-fade-enter.left{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.el-input-number{position:relative;display:inline-block;width:180px;line-height:38px}.el-input-number .el-input{display:block}.el-input-number .el-input__inner{-webkit-appearance:none;padding-left:50px;padding-right:50px;text-align:center}.el-input-number__decrease,.el-input-number__increase{position:absolute;z-index:1;top:1px;width:40px;height:auto;text-align:center;background:#f5f7fa;color:#606266;cursor:pointer;font-size:13px}.el-input-number__decrease:hover,.el-input-number__increase:hover{color:#409eff}.el-input-number__decrease:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled),.el-input-number__increase:hover:not(.is-disabled)~.el-input .el-input__inner:not(.is-disabled){border-color:#409eff}.el-input-number__decrease.is-disabled,.el-input-number__increase.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-input-number__increase{right:1px;border-radius:0 4px 4px 0;border-left:1px solid #dcdfe6}.el-input-number__decrease{left:1px;border-radius:4px 0 0 4px;border-right:1px solid #dcdfe6}.el-input-number.is-disabled .el-input-number__decrease,.el-input-number.is-disabled .el-input-number__increase{border-color:#e4e7ed;color:#e4e7ed}.el-input-number.is-disabled .el-input-number__decrease:hover,.el-input-number.is-disabled .el-input-number__increase:hover{color:#e4e7ed;cursor:not-allowed}.el-input-number--medium{width:200px;line-height:34px}.el-input-number--medium .el-input-number__decrease,.el-input-number--medium .el-input-number__increase{width:36px;font-size:14px}.el-input-number--medium .el-input__inner{padding-left:43px;padding-right:43px}.el-input-number--small{width:130px;line-height:30px}.el-input-number--small .el-input-number__decrease,.el-input-number--small .el-input-number__increase{width:32px;font-size:13px}.el-input-number--small .el-input-number__decrease [class*=el-icon],.el-input-number--small .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.9);transform:scale(.9)}.el-input-number--small .el-input__inner{padding-left:39px;padding-right:39px}.el-input-number--mini{width:130px;line-height:26px}.el-input-number--mini .el-input-number__decrease,.el-input-number--mini .el-input-number__increase{width:28px;font-size:12px}.el-input-number--mini .el-input-number__decrease [class*=el-icon],.el-input-number--mini .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number--mini .el-input__inner{padding-left:35px;padding-right:35px}.el-input-number.is-without-controls .el-input__inner{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__inner{padding-left:15px;padding-right:50px}.el-input-number.is-controls-right .el-input-number__decrease,.el-input-number.is-controls-right .el-input-number__increase{height:auto;line-height:19px}.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon],.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon]{-webkit-transform:scale(.8);transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 4px 0 0;border-bottom:1px solid #dcdfe6}.el-input-number.is-controls-right .el-input-number__decrease{right:1px;bottom:1px;top:auto;left:auto;border-right:none;border-left:1px solid #dcdfe6;border-radius:0 0 4px}.el-input-number.is-controls-right[class*=medium] [class*=decrease],.el-input-number.is-controls-right[class*=medium] [class*=increase]{line-height:17px}.el-input-number.is-controls-right[class*=small] [class*=decrease],.el-input-number.is-controls-right[class*=small] [class*=increase]{line-height:15px}.el-input-number.is-controls-right[class*=mini] [class*=decrease],.el-input-number.is-controls-right[class*=mini] [class*=increase]{line-height:13px}.el-tooltip__popper{position:absolute;border-radius:4px;padding:10px;z-index:2000;font-size:12px;line-height:1.2;min-width:10px;word-wrap:break-word}.el-tooltip__popper .popper__arrow,.el-tooltip__popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-tooltip__popper .popper__arrow{border-width:6px}.el-tooltip__popper .popper__arrow:after{content:" ";border-width:5px}.el-progress-bar__inner:after,.el-row:after,.el-row:before,.el-slider:after,.el-slider:before,.el-slider__button-wrapper:after,.el-upload-cover:after{content:""}.el-tooltip__popper[x-placement^=top]{margin-bottom:12px}.el-tooltip__popper[x-placement^=top] .popper__arrow{bottom:-6px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-5px;border-top-color:#303133;border-bottom-width:0}.el-tooltip__popper[x-placement^=bottom]{margin-top:12px}.el-tooltip__popper[x-placement^=bottom] .popper__arrow{top:-6px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-5px;border-top-width:0;border-bottom-color:#303133}.el-tooltip__popper[x-placement^=right]{margin-left:12px}.el-tooltip__popper[x-placement^=right] .popper__arrow{left:-6px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=right] .popper__arrow:after{bottom:-5px;left:1px;border-right-color:#303133;border-left-width:0}.el-tooltip__popper[x-placement^=left]{margin-right:12px}.el-tooltip__popper[x-placement^=left] .popper__arrow{right:-6px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-5px;margin-left:-5px;border-right-width:0;border-left-color:#303133}.el-tooltip__popper.is-dark{background:#303133;color:#fff}.el-tooltip__popper.is-light{background:#fff;border:1px solid #303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow{border-top-color:#303133}.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow:after{border-top-color:#fff}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow{border-bottom-color:#303133}.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow:after{border-bottom-color:#fff}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow{border-left-color:#303133}.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow:after{border-left-color:#fff}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow{border-right-color:#303133}.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow:after{border-right-color:#fff}.el-slider:after,.el-slider:before{display:table}.el-slider__button-wrapper .el-tooltip,.el-slider__button-wrapper:after{vertical-align:middle;display:inline-block}.el-slider:after{clear:both}.el-slider__runway{width:100%;height:6px;margin:16px 0;background-color:#e4e7ed;border-radius:3px;position:relative;cursor:pointer;vertical-align:middle}.el-slider__runway.show-input{margin-right:160px;width:auto}.el-slider__runway.disabled{cursor:default}.el-slider__runway.disabled .el-slider__bar{background-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button{border-color:#c0c4cc}.el-slider__runway.disabled .el-slider__button-wrapper.dragging,.el-slider__runway.disabled .el-slider__button-wrapper.hover,.el-slider__runway.disabled .el-slider__button-wrapper:hover{cursor:not-allowed}.el-slider__runway.disabled .el-slider__button.dragging,.el-slider__runway.disabled .el-slider__button.hover,.el-slider__runway.disabled .el-slider__button:hover{-webkit-transform:scale(1);transform:scale(1);cursor:not-allowed}.el-slider__button-wrapper,.el-slider__stop{-webkit-transform:translateX(-50%);position:absolute}.el-slider__input{float:right;margin-top:3px;width:130px}.el-slider__input.el-input-number--mini{margin-top:5px}.el-slider__input.el-input-number--medium{margin-top:0}.el-slider__input.el-input-number--large{margin-top:-2px}.el-slider__bar{height:6px;background-color:#409eff;border-top-left-radius:3px;border-bottom-left-radius:3px;position:absolute}.el-slider__button-wrapper{height:36px;width:36px;z-index:1001;top:-15px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:transparent;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:normal}.el-slider__button-wrapper:after{height:100%}.el-slider__button-wrapper.hover,.el-slider__button-wrapper:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button-wrapper.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__button{width:16px;height:16px;border:2px solid #409eff;background-color:#fff;border-radius:50%;-webkit-transition:.2s;transition:.2s;user-select:none}.el-image-viewer__btn,.el-slider__button,.el-step__icon-inner{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-slider__button.dragging,.el-slider__button.hover,.el-slider__button:hover{-webkit-transform:scale(1.2);transform:scale(1.2)}.el-slider__button.hover,.el-slider__button:hover{cursor:-webkit-grab;cursor:grab}.el-slider__button.dragging{cursor:-webkit-grabbing;cursor:grabbing}.el-slider__stop{height:6px;width:6px;border-radius:100%;background-color:#fff;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-slider__marks{top:0;left:12px;width:18px;height:100%}.el-slider__marks-text{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);font-size:14px;color:#909399;margin-top:15px}.el-slider.is-vertical{position:relative}.el-slider.is-vertical .el-slider__runway{width:6px;height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:6px;height:auto;border-radius:0 0 3px 3px}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:-15px}.el-slider.is-vertical .el-slider__button-wrapper,.el-slider.is-vertical .el-slider__stop{-webkit-transform:translateY(50%);transform:translateY(50%)}.el-slider.is-vertical.el-slider--with-input{padding-bottom:58px}.el-slider.is-vertical.el-slider--with-input .el-slider__input{overflow:visible;float:none;position:absolute;bottom:22px;width:36px;margin-top:15px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner{text-align:center;padding-left:5px;padding-right:5px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{top:32px;margin-top:-1px;border:1px solid #dcdfe6;line-height:20px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease{width:18px;right:18px;border-bottom-left-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase{width:19px;border-bottom-right-radius:4px}.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase~.el-input .el-input__inner{border-bottom-left-radius:0;border-bottom-right-radius:0}.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase{border-color:#c0c4cc}.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease,.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase{border-color:#409eff}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;-webkit-transform:translateY(50%);transform:translateY(50%)}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{position:absolute;z-index:2000;background-color:hsla(0,0%,100%,.9);margin:0;top:0;right:0;bottom:0;left:0;-webkit-transition:opacity .3s;transition:opacity .3s}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:-25px}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:50px;width:50px}.el-loading-spinner{top:50%;margin-top:-21px;width:100%;text-align:center;position:absolute}.el-col-pull-0,.el-col-pull-1,.el-col-pull-2,.el-col-pull-3,.el-col-pull-4,.el-col-pull-5,.el-col-pull-6,.el-col-pull-7,.el-col-pull-8,.el-col-pull-9,.el-col-pull-10,.el-col-pull-11,.el-col-pull-13,.el-col-pull-14,.el-col-pull-15,.el-col-pull-16,.el-col-pull-17,.el-col-pull-18,.el-col-pull-19,.el-col-pull-20,.el-col-pull-21,.el-col-pull-22,.el-col-pull-23,.el-col-pull-24,.el-col-push-0,.el-col-push-1,.el-col-push-2,.el-col-push-3,.el-col-push-4,.el-col-push-5,.el-col-push-6,.el-col-push-7,.el-col-push-8,.el-col-push-9,.el-col-push-10,.el-col-push-11,.el-col-push-12,.el-col-push-13,.el-col-push-14,.el-col-push-15,.el-col-push-16,.el-col-push-17,.el-col-push-18,.el-col-push-19,.el-col-push-20,.el-col-push-21,.el-col-push-22,.el-col-push-23,.el-col-push-24,.el-row{position:relative}.el-loading-spinner .el-loading-text{color:#409eff;margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:42px;width:42px;-webkit-animation:loading-rotate 2s linear infinite;animation:loading-rotate 2s linear infinite}.el-loading-spinner .path{-webkit-animation:loading-dash 1.5s ease-in-out infinite;animation:loading-dash 1.5s ease-in-out infinite;stroke-dasharray:90,150;stroke-dashoffset:0;stroke-width:2;stroke:#409eff;stroke-linecap:round}.el-loading-spinner i{color:#409eff}@-webkit-keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loading-rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}@keyframes loading-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-40px}to{stroke-dasharray:90,150;stroke-dashoffset:-120px}}.el-row{-webkit-box-sizing:border-box;box-sizing:border-box}.el-row:after,.el-row:before{display:table}.el-row:after{clear:both}.el-row--flex{display:-webkit-box;display:-ms-flexbox;display:flex}.el-col-0,.el-row--flex:after,.el-row--flex:before{display:none}.el-row--flex.is-justify-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-row--flex.is-justify-end{-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.el-row--flex.is-justify-space-between{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.el-row--flex.is-justify-space-around{-ms-flex-pack:distribute;justify-content:space-around}.el-row--flex.is-align-middle{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-row--flex.is-align-bottom{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}[class*=el-col-]{float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-upload--picture-card,.el-upload-dragger{-webkit-box-sizing:border-box;cursor:pointer}.el-col-0{width:0}.el-col-offset-0{margin-left:0}.el-col-pull-0{right:0}.el-col-push-0{left:0}.el-col-1{width:4.16667%}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{right:4.16667%}.el-col-push-1{left:4.16667%}.el-col-2{width:8.33333%}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{right:8.33333%}.el-col-push-2{left:8.33333%}.el-col-3{width:12.5%}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{right:12.5%}.el-col-push-3{left:12.5%}.el-col-4{width:16.66667%}.el-col-offset-4{margin-left:16.66667%}.el-col-pull-4{right:16.66667%}.el-col-push-4{left:16.66667%}.el-col-5{width:20.83333%}.el-col-offset-5{margin-left:20.83333%}.el-col-pull-5{right:20.83333%}.el-col-push-5{left:20.83333%}.el-col-6{width:25%}.el-col-offset-6{margin-left:25%}.el-col-pull-6{right:25%}.el-col-push-6{left:25%}.el-col-7{width:29.16667%}.el-col-offset-7{margin-left:29.16667%}.el-col-pull-7{right:29.16667%}.el-col-push-7{left:29.16667%}.el-col-8{width:33.33333%}.el-col-offset-8{margin-left:33.33333%}.el-col-pull-8{right:33.33333%}.el-col-push-8{left:33.33333%}.el-col-9{width:37.5%}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{right:37.5%}.el-col-push-9{left:37.5%}.el-col-10{width:41.66667%}.el-col-offset-10{margin-left:41.66667%}.el-col-pull-10{right:41.66667%}.el-col-push-10{left:41.66667%}.el-col-11{width:45.83333%}.el-col-offset-11{margin-left:45.83333%}.el-col-pull-11{right:45.83333%}.el-col-push-11{left:45.83333%}.el-col-12{width:50%}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{left:50%}.el-col-13{width:54.16667%}.el-col-offset-13{margin-left:54.16667%}.el-col-pull-13{right:54.16667%}.el-col-push-13{left:54.16667%}.el-col-14{width:58.33333%}.el-col-offset-14{margin-left:58.33333%}.el-col-pull-14{right:58.33333%}.el-col-push-14{left:58.33333%}.el-col-15{width:62.5%}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{right:62.5%}.el-col-push-15{left:62.5%}.el-col-16{width:66.66667%}.el-col-offset-16{margin-left:66.66667%}.el-col-pull-16{right:66.66667%}.el-col-push-16{left:66.66667%}.el-col-17{width:70.83333%}.el-col-offset-17{margin-left:70.83333%}.el-col-pull-17{right:70.83333%}.el-col-push-17{left:70.83333%}.el-col-18{width:75%}.el-col-offset-18{margin-left:75%}.el-col-pull-18{right:75%}.el-col-push-18{left:75%}.el-col-19{width:79.16667%}.el-col-offset-19{margin-left:79.16667%}.el-col-pull-19{right:79.16667%}.el-col-push-19{left:79.16667%}.el-col-20{width:83.33333%}.el-col-offset-20{margin-left:83.33333%}.el-col-pull-20{right:83.33333%}.el-col-push-20{left:83.33333%}.el-col-21{width:87.5%}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{right:87.5%}.el-col-push-21{left:87.5%}.el-col-22{width:91.66667%}.el-col-offset-22{margin-left:91.66667%}.el-col-pull-22{right:91.66667%}.el-col-push-22{left:91.66667%}.el-col-23{width:95.83333%}.el-col-offset-23{margin-left:95.83333%}.el-col-pull-23{right:95.83333%}.el-col-push-23{left:95.83333%}.el-col-24{width:100%}.el-col-offset-24{margin-left:100%}.el-col-pull-24{right:100%}.el-col-push-24{left:100%}@media only screen and (max-width:767px){.el-col-xs-0{display:none;width:0}.el-col-xs-offset-0{margin-left:0}.el-col-xs-pull-0{position:relative;right:0}.el-col-xs-push-0{position:relative;left:0}.el-col-xs-1{width:4.16667%}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{width:8.33333%}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{width:12.5%}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{width:16.66667%}.el-col-xs-offset-4{margin-left:16.66667%}.el-col-xs-pull-4{position:relative;right:16.66667%}.el-col-xs-push-4{position:relative;left:16.66667%}.el-col-xs-5{width:20.83333%}.el-col-xs-offset-5{margin-left:20.83333%}.el-col-xs-pull-5{position:relative;right:20.83333%}.el-col-xs-push-5{position:relative;left:20.83333%}.el-col-xs-6{width:25%}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{width:29.16667%}.el-col-xs-offset-7{margin-left:29.16667%}.el-col-xs-pull-7{position:relative;right:29.16667%}.el-col-xs-push-7{position:relative;left:29.16667%}.el-col-xs-8{width:33.33333%}.el-col-xs-offset-8{margin-left:33.33333%}.el-col-xs-pull-8{position:relative;right:33.33333%}.el-col-xs-push-8{position:relative;left:33.33333%}.el-col-xs-9{width:37.5%}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{width:41.66667%}.el-col-xs-offset-10{margin-left:41.66667%}.el-col-xs-pull-10{position:relative;right:41.66667%}.el-col-xs-push-10{position:relative;left:41.66667%}.el-col-xs-11{width:45.83333%}.el-col-xs-offset-11{margin-left:45.83333%}.el-col-xs-pull-11{position:relative;right:45.83333%}.el-col-xs-push-11{position:relative;left:45.83333%}.el-col-xs-12{width:50%}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{width:54.16667%}.el-col-xs-offset-13{margin-left:54.16667%}.el-col-xs-pull-13{position:relative;right:54.16667%}.el-col-xs-push-13{position:relative;left:54.16667%}.el-col-xs-14{width:58.33333%}.el-col-xs-offset-14{margin-left:58.33333%}.el-col-xs-pull-14{position:relative;right:58.33333%}.el-col-xs-push-14{position:relative;left:58.33333%}.el-col-xs-15{width:62.5%}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{width:66.66667%}.el-col-xs-offset-16{margin-left:66.66667%}.el-col-xs-pull-16{position:relative;right:66.66667%}.el-col-xs-push-16{position:relative;left:66.66667%}.el-col-xs-17{width:70.83333%}.el-col-xs-offset-17{margin-left:70.83333%}.el-col-xs-pull-17{position:relative;right:70.83333%}.el-col-xs-push-17{position:relative;left:70.83333%}.el-col-xs-18{width:75%}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{width:79.16667%}.el-col-xs-offset-19{margin-left:79.16667%}.el-col-xs-pull-19{position:relative;right:79.16667%}.el-col-xs-push-19{position:relative;left:79.16667%}.el-col-xs-20{width:83.33333%}.el-col-xs-offset-20{margin-left:83.33333%}.el-col-xs-pull-20{position:relative;right:83.33333%}.el-col-xs-push-20{position:relative;left:83.33333%}.el-col-xs-21{width:87.5%}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{width:91.66667%}.el-col-xs-offset-22{margin-left:91.66667%}.el-col-xs-pull-22{position:relative;right:91.66667%}.el-col-xs-push-22{position:relative;left:91.66667%}.el-col-xs-23{width:95.83333%}.el-col-xs-offset-23{margin-left:95.83333%}.el-col-xs-pull-23{position:relative;right:95.83333%}.el-col-xs-push-23{position:relative;left:95.83333%}.el-col-xs-24{width:100%}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{display:none;width:0}.el-col-sm-offset-0{margin-left:0}.el-col-sm-pull-0{position:relative;right:0}.el-col-sm-push-0{position:relative;left:0}.el-col-sm-1{width:4.16667%}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{width:8.33333%}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{width:12.5%}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{width:16.66667%}.el-col-sm-offset-4{margin-left:16.66667%}.el-col-sm-pull-4{position:relative;right:16.66667%}.el-col-sm-push-4{position:relative;left:16.66667%}.el-col-sm-5{width:20.83333%}.el-col-sm-offset-5{margin-left:20.83333%}.el-col-sm-pull-5{position:relative;right:20.83333%}.el-col-sm-push-5{position:relative;left:20.83333%}.el-col-sm-6{width:25%}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{width:29.16667%}.el-col-sm-offset-7{margin-left:29.16667%}.el-col-sm-pull-7{position:relative;right:29.16667%}.el-col-sm-push-7{position:relative;left:29.16667%}.el-col-sm-8{width:33.33333%}.el-col-sm-offset-8{margin-left:33.33333%}.el-col-sm-pull-8{position:relative;right:33.33333%}.el-col-sm-push-8{position:relative;left:33.33333%}.el-col-sm-9{width:37.5%}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{width:41.66667%}.el-col-sm-offset-10{margin-left:41.66667%}.el-col-sm-pull-10{position:relative;right:41.66667%}.el-col-sm-push-10{position:relative;left:41.66667%}.el-col-sm-11{width:45.83333%}.el-col-sm-offset-11{margin-left:45.83333%}.el-col-sm-pull-11{position:relative;right:45.83333%}.el-col-sm-push-11{position:relative;left:45.83333%}.el-col-sm-12{width:50%}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{width:54.16667%}.el-col-sm-offset-13{margin-left:54.16667%}.el-col-sm-pull-13{position:relative;right:54.16667%}.el-col-sm-push-13{position:relative;left:54.16667%}.el-col-sm-14{width:58.33333%}.el-col-sm-offset-14{margin-left:58.33333%}.el-col-sm-pull-14{position:relative;right:58.33333%}.el-col-sm-push-14{position:relative;left:58.33333%}.el-col-sm-15{width:62.5%}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{width:66.66667%}.el-col-sm-offset-16{margin-left:66.66667%}.el-col-sm-pull-16{position:relative;right:66.66667%}.el-col-sm-push-16{position:relative;left:66.66667%}.el-col-sm-17{width:70.83333%}.el-col-sm-offset-17{margin-left:70.83333%}.el-col-sm-pull-17{position:relative;right:70.83333%}.el-col-sm-push-17{position:relative;left:70.83333%}.el-col-sm-18{width:75%}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{width:79.16667%}.el-col-sm-offset-19{margin-left:79.16667%}.el-col-sm-pull-19{position:relative;right:79.16667%}.el-col-sm-push-19{position:relative;left:79.16667%}.el-col-sm-20{width:83.33333%}.el-col-sm-offset-20{margin-left:83.33333%}.el-col-sm-pull-20{position:relative;right:83.33333%}.el-col-sm-push-20{position:relative;left:83.33333%}.el-col-sm-21{width:87.5%}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{width:91.66667%}.el-col-sm-offset-22{margin-left:91.66667%}.el-col-sm-pull-22{position:relative;right:91.66667%}.el-col-sm-push-22{position:relative;left:91.66667%}.el-col-sm-23{width:95.83333%}.el-col-sm-offset-23{margin-left:95.83333%}.el-col-sm-pull-23{position:relative;right:95.83333%}.el-col-sm-push-23{position:relative;left:95.83333%}.el-col-sm-24{width:100%}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{display:none;width:0}.el-col-md-offset-0{margin-left:0}.el-col-md-pull-0{position:relative;right:0}.el-col-md-push-0{position:relative;left:0}.el-col-md-1{width:4.16667%}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{width:8.33333%}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{width:12.5%}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{width:16.66667%}.el-col-md-offset-4{margin-left:16.66667%}.el-col-md-pull-4{position:relative;right:16.66667%}.el-col-md-push-4{position:relative;left:16.66667%}.el-col-md-5{width:20.83333%}.el-col-md-offset-5{margin-left:20.83333%}.el-col-md-pull-5{position:relative;right:20.83333%}.el-col-md-push-5{position:relative;left:20.83333%}.el-col-md-6{width:25%}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{width:29.16667%}.el-col-md-offset-7{margin-left:29.16667%}.el-col-md-pull-7{position:relative;right:29.16667%}.el-col-md-push-7{position:relative;left:29.16667%}.el-col-md-8{width:33.33333%}.el-col-md-offset-8{margin-left:33.33333%}.el-col-md-pull-8{position:relative;right:33.33333%}.el-col-md-push-8{position:relative;left:33.33333%}.el-col-md-9{width:37.5%}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{width:41.66667%}.el-col-md-offset-10{margin-left:41.66667%}.el-col-md-pull-10{position:relative;right:41.66667%}.el-col-md-push-10{position:relative;left:41.66667%}.el-col-md-11{width:45.83333%}.el-col-md-offset-11{margin-left:45.83333%}.el-col-md-pull-11{position:relative;right:45.83333%}.el-col-md-push-11{position:relative;left:45.83333%}.el-col-md-12{width:50%}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{width:54.16667%}.el-col-md-offset-13{margin-left:54.16667%}.el-col-md-pull-13{position:relative;right:54.16667%}.el-col-md-push-13{position:relative;left:54.16667%}.el-col-md-14{width:58.33333%}.el-col-md-offset-14{margin-left:58.33333%}.el-col-md-pull-14{position:relative;right:58.33333%}.el-col-md-push-14{position:relative;left:58.33333%}.el-col-md-15{width:62.5%}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{width:66.66667%}.el-col-md-offset-16{margin-left:66.66667%}.el-col-md-pull-16{position:relative;right:66.66667%}.el-col-md-push-16{position:relative;left:66.66667%}.el-col-md-17{width:70.83333%}.el-col-md-offset-17{margin-left:70.83333%}.el-col-md-pull-17{position:relative;right:70.83333%}.el-col-md-push-17{position:relative;left:70.83333%}.el-col-md-18{width:75%}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{width:79.16667%}.el-col-md-offset-19{margin-left:79.16667%}.el-col-md-pull-19{position:relative;right:79.16667%}.el-col-md-push-19{position:relative;left:79.16667%}.el-col-md-20{width:83.33333%}.el-col-md-offset-20{margin-left:83.33333%}.el-col-md-pull-20{position:relative;right:83.33333%}.el-col-md-push-20{position:relative;left:83.33333%}.el-col-md-21{width:87.5%}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{width:91.66667%}.el-col-md-offset-22{margin-left:91.66667%}.el-col-md-pull-22{position:relative;right:91.66667%}.el-col-md-push-22{position:relative;left:91.66667%}.el-col-md-23{width:95.83333%}.el-col-md-offset-23{margin-left:95.83333%}.el-col-md-pull-23{position:relative;right:95.83333%}.el-col-md-push-23{position:relative;left:95.83333%}.el-col-md-24{width:100%}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{display:none;width:0}.el-col-lg-offset-0{margin-left:0}.el-col-lg-pull-0{position:relative;right:0}.el-col-lg-push-0{position:relative;left:0}.el-col-lg-1{width:4.16667%}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{width:8.33333%}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{width:12.5%}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{width:16.66667%}.el-col-lg-offset-4{margin-left:16.66667%}.el-col-lg-pull-4{position:relative;right:16.66667%}.el-col-lg-push-4{position:relative;left:16.66667%}.el-col-lg-5{width:20.83333%}.el-col-lg-offset-5{margin-left:20.83333%}.el-col-lg-pull-5{position:relative;right:20.83333%}.el-col-lg-push-5{position:relative;left:20.83333%}.el-col-lg-6{width:25%}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{width:29.16667%}.el-col-lg-offset-7{margin-left:29.16667%}.el-col-lg-pull-7{position:relative;right:29.16667%}.el-col-lg-push-7{position:relative;left:29.16667%}.el-col-lg-8{width:33.33333%}.el-col-lg-offset-8{margin-left:33.33333%}.el-col-lg-pull-8{position:relative;right:33.33333%}.el-col-lg-push-8{position:relative;left:33.33333%}.el-col-lg-9{width:37.5%}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{width:41.66667%}.el-col-lg-offset-10{margin-left:41.66667%}.el-col-lg-pull-10{position:relative;right:41.66667%}.el-col-lg-push-10{position:relative;left:41.66667%}.el-col-lg-11{width:45.83333%}.el-col-lg-offset-11{margin-left:45.83333%}.el-col-lg-pull-11{position:relative;right:45.83333%}.el-col-lg-push-11{position:relative;left:45.83333%}.el-col-lg-12{width:50%}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{width:54.16667%}.el-col-lg-offset-13{margin-left:54.16667%}.el-col-lg-pull-13{position:relative;right:54.16667%}.el-col-lg-push-13{position:relative;left:54.16667%}.el-col-lg-14{width:58.33333%}.el-col-lg-offset-14{margin-left:58.33333%}.el-col-lg-pull-14{position:relative;right:58.33333%}.el-col-lg-push-14{position:relative;left:58.33333%}.el-col-lg-15{width:62.5%}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{width:66.66667%}.el-col-lg-offset-16{margin-left:66.66667%}.el-col-lg-pull-16{position:relative;right:66.66667%}.el-col-lg-push-16{position:relative;left:66.66667%}.el-col-lg-17{width:70.83333%}.el-col-lg-offset-17{margin-left:70.83333%}.el-col-lg-pull-17{position:relative;right:70.83333%}.el-col-lg-push-17{position:relative;left:70.83333%}.el-col-lg-18{width:75%}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{width:79.16667%}.el-col-lg-offset-19{margin-left:79.16667%}.el-col-lg-pull-19{position:relative;right:79.16667%}.el-col-lg-push-19{position:relative;left:79.16667%}.el-col-lg-20{width:83.33333%}.el-col-lg-offset-20{margin-left:83.33333%}.el-col-lg-pull-20{position:relative;right:83.33333%}.el-col-lg-push-20{position:relative;left:83.33333%}.el-col-lg-21{width:87.5%}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{width:91.66667%}.el-col-lg-offset-22{margin-left:91.66667%}.el-col-lg-pull-22{position:relative;right:91.66667%}.el-col-lg-push-22{position:relative;left:91.66667%}.el-col-lg-23{width:95.83333%}.el-col-lg-offset-23{margin-left:95.83333%}.el-col-lg-pull-23{position:relative;right:95.83333%}.el-col-lg-push-23{position:relative;left:95.83333%}.el-col-lg-24{width:100%}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{display:none;width:0}.el-col-xl-offset-0{margin-left:0}.el-col-xl-pull-0{position:relative;right:0}.el-col-xl-push-0{position:relative;left:0}.el-col-xl-1{width:4.16667%}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{width:8.33333%}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{width:12.5%}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{width:16.66667%}.el-col-xl-offset-4{margin-left:16.66667%}.el-col-xl-pull-4{position:relative;right:16.66667%}.el-col-xl-push-4{position:relative;left:16.66667%}.el-col-xl-5{width:20.83333%}.el-col-xl-offset-5{margin-left:20.83333%}.el-col-xl-pull-5{position:relative;right:20.83333%}.el-col-xl-push-5{position:relative;left:20.83333%}.el-col-xl-6{width:25%}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{width:29.16667%}.el-col-xl-offset-7{margin-left:29.16667%}.el-col-xl-pull-7{position:relative;right:29.16667%}.el-col-xl-push-7{position:relative;left:29.16667%}.el-col-xl-8{width:33.33333%}.el-col-xl-offset-8{margin-left:33.33333%}.el-col-xl-pull-8{position:relative;right:33.33333%}.el-col-xl-push-8{position:relative;left:33.33333%}.el-col-xl-9{width:37.5%}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{width:41.66667%}.el-col-xl-offset-10{margin-left:41.66667%}.el-col-xl-pull-10{position:relative;right:41.66667%}.el-col-xl-push-10{position:relative;left:41.66667%}.el-col-xl-11{width:45.83333%}.el-col-xl-offset-11{margin-left:45.83333%}.el-col-xl-pull-11{position:relative;right:45.83333%}.el-col-xl-push-11{position:relative;left:45.83333%}.el-col-xl-12{width:50%}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{width:54.16667%}.el-col-xl-offset-13{margin-left:54.16667%}.el-col-xl-pull-13{position:relative;right:54.16667%}.el-col-xl-push-13{position:relative;left:54.16667%}.el-col-xl-14{width:58.33333%}.el-col-xl-offset-14{margin-left:58.33333%}.el-col-xl-pull-14{position:relative;right:58.33333%}.el-col-xl-push-14{position:relative;left:58.33333%}.el-col-xl-15{width:62.5%}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{width:66.66667%}.el-col-xl-offset-16{margin-left:66.66667%}.el-col-xl-pull-16{position:relative;right:66.66667%}.el-col-xl-push-16{position:relative;left:66.66667%}.el-col-xl-17{width:70.83333%}.el-col-xl-offset-17{margin-left:70.83333%}.el-col-xl-pull-17{position:relative;right:70.83333%}.el-col-xl-push-17{position:relative;left:70.83333%}.el-col-xl-18{width:75%}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{width:79.16667%}.el-col-xl-offset-19{margin-left:79.16667%}.el-col-xl-pull-19{position:relative;right:79.16667%}.el-col-xl-push-19{position:relative;left:79.16667%}.el-col-xl-20{width:83.33333%}.el-col-xl-offset-20{margin-left:83.33333%}.el-col-xl-pull-20{position:relative;right:83.33333%}.el-col-xl-push-20{position:relative;left:83.33333%}.el-col-xl-21{width:87.5%}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{width:91.66667%}.el-col-xl-offset-22{margin-left:91.66667%}.el-col-xl-pull-22{position:relative;right:91.66667%}.el-col-xl-push-22{position:relative;left:91.66667%}.el-col-xl-23{width:95.83333%}.el-col-xl-offset-23{margin-left:95.83333%}.el-col-xl-pull-23{position:relative;right:95.83333%}.el-col-xl-push-23{position:relative;left:95.83333%}.el-col-xl-24{width:100%}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}@-webkit-keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-upload{display:inline-block;text-align:center;cursor:pointer;outline:0}.el-upload__input{display:none}.el-upload__tip{font-size:12px;color:#606266;margin-top:7px}.el-upload iframe{position:absolute;z-index:-1;top:0;left:0;opacity:0;filter:alpha(opacity=0)}.el-upload--picture-card{background-color:#fbfdff;border:1px dashed #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;line-height:146px;vertical-align:top}.el-upload--picture-card i{font-size:28px;color:#8c939d}.el-upload--picture-card:hover,.el-upload:focus{border-color:#409eff;color:#409eff}.el-upload:focus .el-upload-dragger{border-color:#409eff}.el-upload-dragger{background-color:#fff;border:1px dashed #d9d9d9;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:360px;height:180px;text-align:center;position:relative;overflow:hidden}.el-upload-dragger .el-icon-upload{font-size:67px;color:#c0c4cc;margin:40px 0 16px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:1px solid #dcdfe6;margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:#606266;font-size:14px;text-align:center}.el-upload-dragger .el-upload__text em{color:#409eff;font-style:normal}.el-upload-dragger:hover{border-color:#409eff}.el-upload-dragger.is-dragover{background-color:rgba(32,159,255,.06);border:2px dashed #409eff}.el-upload-list{margin:0;padding:0;list-style:none}.el-upload-list__item{-webkit-transition:all .5s cubic-bezier(.55,0,.1,1);transition:all .5s cubic-bezier(.55,0,.1,1);font-size:14px;color:#606266;line-height:1.8;margin-top:5px;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:4px;width:100%}.el-upload-list__item .el-progress{position:absolute;top:20px;width:100%}.el-upload-list__item .el-progress__text{position:absolute;right:0;top:-13px}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item:first-child{margin-top:10px}.el-upload-list__item .el-icon-upload-success{color:#67c23a}.el-upload-list__item .el-icon-close{display:none;position:absolute;top:5px;right:5px;cursor:pointer;opacity:.75;color:#606266}.el-upload-list__item .el-icon-close:hover{opacity:1}.el-upload-list__item .el-icon-close-tip{display:none;position:absolute;top:5px;right:5px;font-size:12px;cursor:pointer;opacity:1;color:#409eff}.el-upload-list__item:hover{background-color:#f5f7fa}.el-upload-list__item:hover .el-icon-close{display:inline-block}.el-upload-list__item:hover .el-progress__text{display:none}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:block}.el-upload-list__item.is-success .el-upload-list__item-name:focus,.el-upload-list__item.is-success .el-upload-list__item-name:hover{color:#409eff;cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip{display:inline-block}.el-upload-list__item.is-success:active .el-icon-close-tip,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip{display:none}.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label{display:block}.el-upload-list__item-name{color:#606266;display:block;margin-right:40px;overflow:hidden;padding-left:4px;text-overflow:ellipsis;-webkit-transition:color .3s;transition:color .3s;white-space:nowrap}.el-upload-list__item-name [class^=el-icon]{height:100%;margin-right:7px;color:#909399;line-height:inherit}.el-upload-list__item-status-label{position:absolute;right:5px;top:0;line-height:inherit;display:none}.el-upload-list__item-delete{position:absolute;right:10px;top:0;font-size:12px;color:#606266;display:none}.el-upload-list__item-delete:hover{color:#409eff}.el-upload-list--picture-card{margin:0;display:inline;vertical-align:top}.el-upload-list--picture-card .el-upload-list__item{overflow:hidden;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;width:148px;height:148px;margin:0 8px 8px 0;display:inline-block}.el-upload-list--picture-card .el-upload-list__item .el-icon-check,.el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon-close,.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-list--picture-card .el-upload-list__item-status-label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{position:absolute;width:100%;height:100%;left:0;top:0;cursor:default;text-align:center;color:#fff;opacity:0;font-size:20px;background-color:rgba(0,0,0,.5);-webkit-transition:opacity .3s;transition:opacity .3s}.el-upload-list--picture-card .el-upload-list__item-actions:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-upload-list--picture-card .el-upload-list__item-actions span{display:none;cursor:pointer}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:15px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{position:static;font-size:inherit;color:inherit}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-block}.el-upload-list--picture-card .el-progress{top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);bottom:auto;width:126px}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{overflow:hidden;z-index:0;background-color:#fff;border:1px solid #c0ccda;border-radius:6px;-webkit-box-sizing:border-box;box-sizing:border-box;margin-top:10px;padding:10px 10px 10px 90px;height:92px}.el-upload-list--picture .el-upload-list__item .el-icon-check,.el-upload-list--picture .el-upload-list__item .el-icon-circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{background:0 0;-webkit-box-shadow:none;box-shadow:none;top:-2px;right:-12px}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name{line-height:70px;margin-top:0}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item-thumbnail{vertical-align:middle;display:inline-block;width:70px;height:70px;float:left;position:relative;z-index:1;margin-left:-80px;background-color:#fff}.el-upload-list--picture .el-upload-list__item-name{display:block;margin-top:20px}.el-upload-list--picture .el-upload-list__item-name i{font-size:70px;line-height:1;position:absolute;left:9px;top:10px}.el-upload-list--picture .el-upload-list__item-status-label{position:absolute;right:-17px;top:-7px;width:46px;height:26px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 1px 1px #ccc;box-shadow:0 1px 1px #ccc}.el-upload-list--picture .el-upload-list__item-status-label i{font-size:12px;margin-top:12px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;z-index:10;cursor:default}.el-upload-cover:after{display:inline-block;height:100%;vertical-align:middle}.el-upload-cover img{display:block;width:100%;height:100%}.el-upload-cover__label{position:absolute;right:-15px;top:-6px;width:40px;height:24px;background:#13ce66;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-shadow:0 0 1pc 1px rgba(0,0,0,.2);box-shadow:0 0 1pc 1px rgba(0,0,0,.2)}.el-upload-cover__label i{font-size:12px;margin-top:11px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);color:#fff}.el-upload-cover__progress{display:inline-block;vertical-align:middle;position:static;width:243px}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{position:absolute;top:0;left:0;width:100%;height:100%}.el-upload-cover__interact{position:absolute;bottom:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.72);text-align:center}.el-upload-cover__interact .btn{display:inline-block;color:#fff;font-size:14px;cursor:pointer;vertical-align:middle;-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);margin-top:60px}.el-upload-cover__interact .btn span{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{-webkit-transform:translateY(-13px);transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;display:block;font-size:24px;line-height:inherit;margin:0 auto 5px}.el-upload-cover__title{position:absolute;bottom:0;left:0;background-color:#fff;height:36px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;text-align:left;padding:0 10px;margin:0;line-height:36px;font-size:14px;color:#303133}.el-upload-cover+.el-upload__inner{opacity:0;position:relative;z-index:1}.el-progress{position:relative;line-height:1}.el-progress__text{font-size:14px;color:#606266;display:inline-block;vertical-align:middle;margin-left:10px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{position:absolute;top:50%;left:0;width:100%;text-align:center;margin:0;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{padding-right:0;margin-right:0;display:block}.el-progress-bar,.el-progress-bar__inner:after,.el-progress-bar__innerText,.el-spinner{display:inline-block;vertical-align:middle}.el-progress--text-inside .el-progress-bar{padding-right:0;margin-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:#67c23a}.el-progress.is-success .el-progress__text{color:#67c23a}.el-progress.is-warning .el-progress-bar__inner{background-color:#e6a23c}.el-progress.is-warning .el-progress__text{color:#e6a23c}.el-progress.is-exception .el-progress-bar__inner{background-color:#f56c6c}.el-progress.is-exception .el-progress__text{color:#f56c6c}.el-progress-bar{padding-right:50px;width:100%;margin-right:-55px;-webkit-box-sizing:border-box;box-sizing:border-box}.el-progress-bar__outer{height:6px;border-radius:100px;background-color:#ebeef5;overflow:hidden;position:relative;vertical-align:middle}.el-progress-bar__inner{position:absolute;left:0;top:0;height:100%;background-color:#409eff;text-align:right;border-radius:100px;line-height:1;white-space:nowrap;-webkit-transition:width .6s ease;transition:width .6s ease}.el-card,.el-message{border-radius:4px;overflow:hidden}.el-progress-bar__inner:after{height:100%}.el-progress-bar__innerText{color:#fff;font-size:12px;margin:0 5px}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}.el-time-spinner{width:100%;white-space:nowrap}.el-spinner-inner{-webkit-animation:rotate 2s linear infinite;animation:rotate 2s linear infinite;width:50px;height:50px}.el-spinner-inner .path{stroke:#ececec;stroke-linecap:round;-webkit-animation:dash 1.5s ease-in-out infinite;animation:dash 1.5s ease-in-out infinite}@-webkit-keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes rotate{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}.el-message{min-width:380px;-webkit-box-sizing:border-box;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#ebeef5;position:fixed;left:50%;top:20px;-webkit-transform:translateX(-50%);transform:translateX(-50%);background-color:#edf2fc;-webkit-transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,top .4s,-webkit-transform .4s;transition:opacity .3s,transform .4s,top .4s;transition:opacity .3s,transform .4s,top .4s,-webkit-transform .4s;padding:15px 15px 15px 20px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-message.is-center{-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-message.is-closable .el-message__content{padding-right:16px}.el-message p{margin:0}.el-message--info .el-message__content{color:#909399}.el-message--success{background-color:#f0f9eb;border-color:#e1f3d8}.el-message--success .el-message__content{color:#67c23a}.el-message--warning{background-color:#fdf6ec;border-color:#faecd8}.el-message--warning .el-message__content{color:#e6a23c}.el-message--error{background-color:#fef0f0;border-color:#fde2e2}.el-message--error .el-message__content{color:#f56c6c}.el-message__icon{margin-right:10px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__closeBtn{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%);cursor:pointer;color:#c0c4cc;font-size:16px}.el-message__closeBtn:hover{color:#909399}.el-message .el-icon-success{color:#67c23a}.el-message .el-icon-error{color:#f56c6c}.el-message .el-icon-info{color:#909399}.el-message .el-icon-warning{color:#e6a23c}.el-message-fade-enter,.el-message-fade-leave-active{opacity:0;-webkit-transform:translate(-50%,-100%);transform:translate(-50%,-100%)}.el-badge{position:relative;vertical-align:middle;display:inline-block}.el-badge__content{background-color:#f56c6c;border-radius:10px;color:#fff;display:inline-block;font-size:12px;height:18px;line-height:18px;padding:0 6px;text-align:center;white-space:nowrap;border:1px solid #fff}.el-badge__content.is-fixed{position:absolute;top:0;right:10px;-webkit-transform:translateY(-50%) translateX(100%);transform:translateY(-50%) translateX(100%)}.el-rate__icon,.el-rate__item{position:relative;display:inline-block}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{height:8px;width:8px;padding:0;right:0;border-radius:50%}.el-badge__content--primary{background-color:#409eff}.el-badge__content--success{background-color:#67c23a}.el-badge__content--warning{background-color:#e6a23c}.el-badge__content--info{background-color:#909399}.el-badge__content--danger{background-color:#f56c6c}.el-card{border:1px solid #ebeef5;background-color:#fff;color:#303133;-webkit-transition:.3s;transition:.3s}.el-card.is-always-shadow,.el-card.is-hover-shadow:focus,.el-card.is-hover-shadow:hover{-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-card__header{padding:18px 20px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box}.el-card__body{padding:20px}.el-rate{height:20px;line-height:1}.el-rate__item{font-size:0;vertical-align:middle}.el-rate__icon{font-size:18px;margin-right:6px;color:#c0c4cc;-webkit-transition:.3s;transition:.3s}.el-rate__decimal,.el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate__icon.hover{-webkit-transform:scale(1.15);transform:scale(1.15)}.el-rate__decimal{display:inline-block;overflow:hidden}.el-step.is-vertical,.el-steps{display:-webkit-box;display:-ms-flexbox}.el-rate__text{font-size:14px;vertical-align:middle}.el-steps{display:-webkit-box;display:-ms-flexbox;display:flex}.el-steps--simple{padding:13px 8%;border-radius:4px;background:#f5f7fa}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{height:100%;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column}.el-step{position:relative;-ms-flex-negative:1;flex-shrink:1}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{-ms-flex-preferred-size:auto!important;flex-basis:auto!important;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.el-step:last-of-type .el-step__description,.el-step:last-of-type .el-step__main{padding-right:0}.el-step__head{position:relative;width:100%}.el-step__head.is-process{color:#303133;border-color:#303133}.el-step__head.is-wait{color:#c0c4cc;border-color:#c0c4cc}.el-step__head.is-success{color:#67c23a;border-color:#67c23a}.el-step__head.is-error{color:#f56c6c;border-color:#f56c6c}.el-step__head.is-finish{color:#409eff;border-color:#409eff}.el-step__icon{position:relative;z-index:1;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:24px;height:24px;font-size:14px;-webkit-box-sizing:border-box;box-sizing:border-box;background:#fff;-webkit-transition:.15s ease-out;transition:.15s ease-out}.el-step__icon.is-text{border-radius:50%;border:2px solid;border-color:inherit}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{display:inline-block;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-align:center;font-weight:700;line-height:1;color:inherit}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{-webkit-transform:translateY(1px);transform:translateY(1px)}.el-step__line{position:absolute;border-color:inherit;background-color:#c0c4cc}.el-step__line-inner{display:block;border-width:1px;border-style:solid;border-color:inherit;-webkit-transition:.15s ease-out;transition:.15s ease-out;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:0}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{font-weight:700;color:#303133}.el-step__title.is-wait{color:#c0c4cc}.el-step__title.is-success{color:#67c23a}.el-step__title.is-error{color:#f56c6c}.el-step__title.is-finish{color:#409eff}.el-step__description{padding-right:10%;margin-top:-5px;font-size:12px;line-height:20px;font-weight:400}.el-step__description.is-process{color:#303133}.el-step__description.is-wait{color:#c0c4cc}.el-step__description.is-success{color:#67c23a}.el-step__description.is-error{color:#f56c6c}.el-step__description.is-finish{color:#409eff}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:-webkit-box;display:-ms-flexbox;display:flex}.el-step.is-vertical .el-step__head{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{padding-left:10px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-vertical .el-step__title{line-height:24px;padding-bottom:8px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-step.is-simple .el-step__head{width:auto;font-size:0;padding-right:10px}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{-webkit-transform:scale(.8) translateY(1px);transform:scale(.8) translateY(1px)}.el-step.is-simple .el-step__main{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{max-width:50%;word-break:break-all}.el-step.is-simple .el-step__arrow{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.el-step.is-simple .el-step__arrow:after,.el-step.is-simple .el-step__arrow:before{content:"";display:inline-block;position:absolute;height:15px;width:1px;background:#c0c4cc}.el-step.is-simple .el-step__arrow:before{-webkit-transform:rotate(-45deg) translateY(-4px);transform:rotate(-45deg) translateY(-4px);-webkit-transform-origin:0 0;transform-origin:0 0}.el-step.is-simple .el-step__arrow:after{-webkit-transform:rotate(45deg) translateY(4px);transform:rotate(45deg) translateY(4px);-webkit-transform-origin:100% 100%;transform-origin:100% 100%}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-carousel{position:relative}.el-carousel--horizontal{overflow-x:hidden}.el-carousel--vertical{overflow-y:hidden}.el-carousel__container{position:relative;height:300px}.el-carousel__arrow{border:none;outline:0;padding:0;margin:0;height:36px;width:36px;cursor:pointer;-webkit-transition:.3s;transition:.3s;border-radius:50%;background-color:rgba(31,45,61,.11);color:#fff;position:absolute;top:50%;z-index:10;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-align:center;font-size:12px}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:rgba(31,45,61,.23)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{position:absolute;list-style:none;margin:0;padding:0;z-index:2}.el-carousel__indicators--horizontal{bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.el-carousel__indicators--vertical{right:0;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-carousel__indicators--outside{bottom:26px;text-align:center;position:static;-webkit-transform:none;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:#c0c4cc;opacity:.24}.el-carousel__indicators--labels{left:0;right:0;-webkit-transform:none;transform:none;text-align:center}.el-carousel__indicators--labels .el-carousel__button{height:auto;width:auto;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{background-color:transparent;cursor:pointer}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{display:inline-block;padding:12px 4px}.el-carousel__indicator--vertical{padding:4px 12px}.el-carousel__indicator--vertical .el-carousel__button{width:2px;height:15px}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{display:block;opacity:.48;width:30px;height:2px;background-color:#fff;border:none;outline:0;padding:0;margin:0;cursor:pointer;-webkit-transition:.3s;transition:.3s}.el-carousel__item,.el-carousel__mask{height:100%;top:0;left:0;position:absolute}.carousel-arrow-left-enter,.carousel-arrow-left-leave-active{-webkit-transform:translateY(-50%) translateX(-10px);transform:translateY(-50%) translateX(-10px);opacity:0}.carousel-arrow-right-enter,.carousel-arrow-right-leave-active{-webkit-transform:translateY(-50%) translateX(10px);transform:translateY(-50%) translateX(10px);opacity:0}.el-carousel__item{width:100%;display:inline-block;overflow:hidden;z-index:0}.el-carousel__item.is-active{z-index:2}.el-carousel__item--card,.el-carousel__item.is-animating{-webkit-transition:-webkit-transform .4s ease-in-out;transition:-webkit-transform .4s ease-in-out;transition:transform .4s ease-in-out;transition:transform .4s ease-in-out,-webkit-transform .4s ease-in-out}.el-carousel__item--card{width:50%}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:1}.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask,.el-carousel__item--card.is-in-stage:hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:2}.el-carousel__mask{width:100%;background-color:#fff;opacity:.24;-webkit-transition:.2s;transition:.2s}.el-fade-in-enter,.el-fade-in-leave-active,.el-fade-in-linear-enter,.el-fade-in-linear-leave,.el-fade-in-linear-leave-active,.fade-in-linear-enter,.fade-in-linear-leave,.fade-in-linear-leave-active{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active,.fade-in-linear-enter-active,.fade-in-linear-leave-active{-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.el-fade-in-enter-active,.el-fade-in-leave-active,.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{-webkit-transition:all .3s cubic-bezier(.55,0,.1,1);transition:all .3s cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter,.el-zoom-in-center-leave-active{opacity:0;-webkit-transform:scaleX(0);transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center top;transform-origin:center top}.el-zoom-in-top-enter,.el-zoom-in-top-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:center bottom;transform-origin:center bottom}.el-zoom-in-bottom-enter,.el-zoom-in-bottom-leave-active{opacity:0;-webkit-transform:scaleY(0);transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;-webkit-transform:scale(1);transform:scale(1);-webkit-transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1);transition:transform .3s cubic-bezier(.23,1,.32,1),opacity .3s cubic-bezier(.23,1,.32,1),-webkit-transform .3s cubic-bezier(.23,1,.32,1);-webkit-transform-origin:top left;transform-origin:top left}.el-zoom-in-left-enter,.el-zoom-in-left-leave-active{opacity:0;-webkit-transform:scale(.45);transform:scale(.45)}.collapse-transition{-webkit-transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out;transition:height .3s ease-in-out,padding-top .3s ease-in-out,padding-bottom .3s ease-in-out}.horizontal-collapse-transition{-webkit-transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out;transition:width .3s ease-in-out,padding-left .3s ease-in-out,padding-right .3s ease-in-out}.el-list-enter-active,.el-list-leave-active{-webkit-transition:all 1s;transition:all 1s}.el-list-enter,.el-list-leave-active{opacity:0;-webkit-transform:translateY(-30px);transform:translateY(-30px)}.el-opacity-transition{-webkit-transition:opacity .3s cubic-bezier(.55,0,.1,1);transition:opacity .3s cubic-bezier(.55,0,.1,1)}.el-collapse{border-top:1px solid #ebeef5;border-bottom:1px solid #ebeef5}.el-collapse-item.is-disabled .el-collapse-item__header{color:#bbb;cursor:not-allowed}.el-collapse-item__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:48px;line-height:48px;background-color:#fff;color:#303133;cursor:pointer;border-bottom:1px solid #ebeef5;font-size:13px;font-weight:500;-webkit-transition:border-bottom-color .3s;transition:border-bottom-color .3s;outline:0}.el-collapse-item__arrow{margin:0 8px 0 auto;transition:-webkit-transform .3s;-webkit-transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-weight:300}.el-collapse-item__arrow.is-active{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.el-collapse-item__header.focusing:focus:not(:hover){color:#409eff}.el-collapse-item__header.is-active{border-bottom-color:transparent}.el-collapse-item__wrap{will-change:height;background-color:#fff;overflow:hidden;box-sizing:border-box;border-bottom:1px solid #ebeef5}.el-cascader__tags,.el-collapse-item__wrap,.el-tag{-webkit-box-sizing:border-box}.el-collapse-item__content{padding-bottom:25px;font-size:13px;color:#303133;line-height:1.769230769230769}.el-collapse-item:last-child{margin-bottom:-1px}.el-popper .popper__arrow,.el-popper .popper__arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.el-popper .popper__arrow{border-width:6px;-webkit-filter:drop-shadow(0 2px 12px rgba(0,0,0,.03));filter:drop-shadow(0 2px 12px rgba(0,0,0,.03))}.el-popper .popper__arrow:after{content:" ";border-width:6px}.el-popper[x-placement^=top]{margin-bottom:12px}.el-popper[x-placement^=top] .popper__arrow{bottom:-6px;left:50%;margin-right:3px;border-top-color:#ebeef5;border-bottom-width:0}.el-popper[x-placement^=top] .popper__arrow:after{bottom:1px;margin-left:-6px;border-top-color:#fff;border-bottom-width:0}.el-popper[x-placement^=bottom]{margin-top:12px}.el-popper[x-placement^=bottom] .popper__arrow{top:-6px;left:50%;margin-right:3px;border-top-width:0;border-bottom-color:#ebeef5}.el-popper[x-placement^=bottom] .popper__arrow:after{top:1px;margin-left:-6px;border-top-width:0;border-bottom-color:#fff}.el-popper[x-placement^=right]{margin-left:12px}.el-popper[x-placement^=right] .popper__arrow{top:50%;left:-6px;margin-bottom:3px;border-right-color:#ebeef5;border-left-width:0}.el-popper[x-placement^=right] .popper__arrow:after{bottom:-6px;left:1px;border-right-color:#fff;border-left-width:0}.el-popper[x-placement^=left]{margin-right:12px}.el-popper[x-placement^=left] .popper__arrow{top:50%;right:-6px;margin-bottom:3px;border-right-width:0;border-left-color:#ebeef5}.el-popper[x-placement^=left] .popper__arrow:after{right:1px;bottom:-6px;margin-left:-6px;border-right-width:0;border-left-color:#fff}.el-tag{background-color:#ecf5ff;border-color:#d9ecff;display:inline-block;height:32px;padding:0 10px;line-height:30px;font-size:12px;color:#409eff;border-width:1px;border-style:solid;border-radius:4px;-webkit-box-sizing:border-box;box-sizing:border-box;white-space:nowrap}.el-tag.is-hit{border-color:#409eff}.el-tag .el-tag__close{color:#409eff}.el-tag .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag.el-tag--info{background-color:#f4f4f5;border-color:#e9e9eb;color:#909399}.el-tag.el-tag--info.is-hit{border-color:#909399}.el-tag.el-tag--info .el-tag__close{color:#909399}.el-tag.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag.el-tag--success{background-color:#f0f9eb;border-color:#e1f3d8;color:#67c23a}.el-tag.el-tag--success.is-hit{border-color:#67c23a}.el-tag.el-tag--success .el-tag__close{color:#67c23a}.el-tag.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag.el-tag--warning{background-color:#fdf6ec;border-color:#faecd8;color:#e6a23c}.el-tag.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag.el-tag--danger{background-color:#fef0f0;border-color:#fde2e2;color:#f56c6c}.el-tag.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag .el-icon-close{border-radius:50%;text-align:center;position:relative;cursor:pointer;font-size:12px;height:16px;width:16px;line-height:16px;vertical-align:middle;top:-1px;right:-5px}.el-tag .el-icon-close:before{display:block}.el-tag--dark{background-color:#409eff;color:#fff}.el-tag--dark,.el-tag--dark.is-hit{border-color:#409eff}.el-tag--dark .el-tag__close{color:#fff}.el-tag--dark .el-tag__close:hover{color:#fff;background-color:#66b1ff}.el-tag--dark.el-tag--info{background-color:#909399;border-color:#909399;color:#fff}.el-tag--dark.el-tag--info.is-hit{border-color:#909399}.el-tag--dark.el-tag--info .el-tag__close{color:#fff}.el-tag--dark.el-tag--info .el-tag__close:hover{color:#fff;background-color:#a6a9ad}.el-tag--dark.el-tag--success{background-color:#67c23a;border-color:#67c23a;color:#fff}.el-tag--dark.el-tag--success.is-hit{border-color:#67c23a}.el-tag--dark.el-tag--success .el-tag__close{color:#fff}.el-tag--dark.el-tag--success .el-tag__close:hover{color:#fff;background-color:#85ce61}.el-tag--dark.el-tag--warning{background-color:#e6a23c;border-color:#e6a23c;color:#fff}.el-tag--dark.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--dark.el-tag--warning .el-tag__close{color:#fff}.el-tag--dark.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#ebb563}.el-tag--dark.el-tag--danger{background-color:#f56c6c;border-color:#f56c6c;color:#fff}.el-tag--dark.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--dark.el-tag--danger .el-tag__close{color:#fff}.el-tag--dark.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f78989}.el-tag--plain{background-color:#fff;border-color:#b3d8ff;color:#409eff}.el-tag--plain.is-hit{border-color:#409eff}.el-tag--plain .el-tag__close{color:#409eff}.el-tag--plain .el-tag__close:hover{color:#fff;background-color:#409eff}.el-tag--plain.el-tag--info{background-color:#fff;border-color:#d3d4d6;color:#909399}.el-tag--plain.el-tag--info.is-hit{border-color:#909399}.el-tag--plain.el-tag--info .el-tag__close{color:#909399}.el-tag--plain.el-tag--info .el-tag__close:hover{color:#fff;background-color:#909399}.el-tag--plain.el-tag--success{background-color:#fff;border-color:#c2e7b0;color:#67c23a}.el-tag--plain.el-tag--success.is-hit{border-color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close{color:#67c23a}.el-tag--plain.el-tag--success .el-tag__close:hover{color:#fff;background-color:#67c23a}.el-tag--plain.el-tag--warning{background-color:#fff;border-color:#f5dab1;color:#e6a23c}.el-tag--plain.el-tag--warning.is-hit{border-color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close{color:#e6a23c}.el-tag--plain.el-tag--warning .el-tag__close:hover{color:#fff;background-color:#e6a23c}.el-tag--plain.el-tag--danger{background-color:#fff;border-color:#fbc4c4;color:#f56c6c}.el-tag--plain.el-tag--danger.is-hit{border-color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close{color:#f56c6c}.el-tag--plain.el-tag--danger .el-tag__close:hover{color:#fff;background-color:#f56c6c}.el-tag--medium{height:28px;line-height:26px}.el-tag--medium .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--small{height:24px;padding:0 8px;line-height:22px}.el-tag--small .el-icon-close{-webkit-transform:scale(.8);transform:scale(.8)}.el-tag--mini{height:20px;padding:0 5px;line-height:19px}.el-tag--mini .el-icon-close{margin-left:-3px;-webkit-transform:scale(.7);transform:scale(.7)}.el-cascader{display:inline-block;position:relative;font-size:14px;line-height:40px}.el-cascader:not(.is-disabled):hover .el-input__inner{cursor:pointer;border-color:#c0c4cc}.el-cascader .el-input .el-input__inner:focus,.el-cascader .el-input.is-focus .el-input__inner{border-color:#409eff}.el-cascader .el-input{cursor:pointer}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-icon-arrow-down{-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;font-size:14px}.el-cascader .el-input .el-icon-arrow-down.is-reverse{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.el-cascader .el-input .el-icon-circle-close:hover{color:#909399}.el-cascader--medium{font-size:14px;line-height:36px}.el-cascader--small{font-size:13px;line-height:32px}.el-cascader--mini{font-size:12px;line-height:28px}.el-cascader.is-disabled .el-cascader__label{z-index:2;color:#c0c4cc}.el-cascader__dropdown{margin:5px 0;font-size:14px;background:#fff;border:1px solid #e4e7ed;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-cascader__tags{position:absolute;left:0;right:30px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;line-height:normal;text-align:left;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__tags .el-tag{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;max-width:100%;margin:2px 0 2px 6px;text-overflow:ellipsis;background:#f0f2f5}.el-cascader__tags .el-tag:not(.is-hit){border-color:transparent}.el-cascader__tags .el-tag>span{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.el-cascader__tags .el-tag .el-icon-close{-webkit-box-flex:0;-ms-flex:none;flex:none;background-color:#c0c4cc;color:#fff}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:#909399}.el-cascader__suggestion-panel{border-radius:4px}.el-cascader__suggestion-list{max-height:204px;margin:0;padding:6px 0;font-size:14px;color:#606266;text-align:center}.el-cascader__suggestion-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:34px;padding:0 15px;text-align:left;outline:0;cursor:pointer}.el-cascader__suggestion-item:focus,.el-cascader__suggestion-item:hover{background:#f5f7fa}.el-cascader__suggestion-item.is-checked{color:#409eff;font-weight:700}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__empty-text{margin:10px 0;color:#c0c4cc}.el-cascader__search-input{-webkit-box-flex:1;-ms-flex:1;flex:1;height:24px;min-width:60px;margin:2px 0 2px 15px;padding:0;color:#606266;border:none;outline:0;-webkit-box-sizing:border-box;box-sizing:border-box}.el-cascader__search-input::-webkit-input-placeholder{color:#c0c4cc}.el-cascader__search-input:-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-ms-input-placeholder{color:#c0c4cc}.el-cascader__search-input::-moz-placeholder{color:#c0c4cc}.el-cascader__search-input::placeholder{color:#c0c4cc}.el-color-predefine{font-size:12px;margin-top:8px;width:280px}.el-color-predefine,.el-color-predefine__colors{display:-webkit-box;display:-ms-flexbox;display:flex}.el-color-predefine__colors{-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-wrap:wrap;flex-wrap:wrap}.el-color-predefine__color-selector{margin:0 0 8px 8px;width:20px;height:20px;border-radius:4px;cursor:pointer}.el-color-predefine__color-selector:nth-child(10n+1){margin-left:0}.el-color-predefine__color-selector.selected{-webkit-box-shadow:0 0 3px 2px #409eff;box-shadow:0 0 3px 2px #409eff}.el-color-predefine__color-selector>div{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-radius:3px}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background-color:red;padding:0 2px}.el-color-hue-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,color-stop(0,red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red);height:100%}.el-color-hue-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background:linear-gradient(180deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-svpanel{position:relative;width:280px;height:180px}.el-color-svpanel__black,.el-color-svpanel__white{position:absolute;top:0;left:0;right:0;bottom:0}.el-color-svpanel__white{background:-webkit-gradient(linear,left top,right top,from(#fff),to(hsla(0,0%,100%,0)));background:linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.el-color-svpanel__black{background:-webkit-gradient(linear,left bottom,left top,from(#000),to(transparent));background:linear-gradient(0deg,#000,transparent)}.el-color-svpanel__cursor{position:absolute}.el-color-svpanel__cursor>div{cursor:head;width:4px;height:4px;-webkit-box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px rgba(0,0,0,.3),0 0 1px 2px rgba(0,0,0,.4);border-radius:50%;-webkit-transform:translate(-2px,-2px);transform:translate(-2px,-2px)}.el-color-alpha-slider{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;width:280px;height:12px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-alpha-slider__bar{position:relative;background:-webkit-gradient(linear,left top,right top,color-stop(0,hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(90deg,hsla(0,0%,100%,0) 0,#fff);height:100%}.el-color-alpha-slider__thumb{position:absolute;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;left:0;top:0;width:4px;height:100%;border-radius:1px;background:#fff;border:1px solid #f0f0f0;-webkit-box-shadow:0 0 2px rgba(0,0,0,.6);box-shadow:0 0 2px rgba(0,0,0,.6);z-index:1}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:-webkit-gradient(linear,left top,left bottom,color-stop(0,hsla(0,0%,100%,0)),to(#fff));background:linear-gradient(180deg,hsla(0,0%,100%,0) 0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{left:0;top:0;width:100%;height:4px}.el-color-dropdown{width:300px}.el-color-dropdown__main-wrapper{margin-bottom:6px}.el-color-dropdown__main-wrapper:after{content:"";display:table;clear:both}.el-color-dropdown__btns{margin-top:6px;text-align:right}.el-color-dropdown__value{float:left;line-height:26px;font-size:12px;color:#000;width:160px}.el-color-dropdown__btn{border:1px solid #dcdcdc;color:#333;line-height:24px;border-radius:2px;padding:0 20px;cursor:pointer;background-color:transparent;outline:0;font-size:12px}.el-color-dropdown__btn[disabled]{color:#ccc;cursor:not-allowed}.el-color-dropdown__btn:hover{color:#409eff;border-color:#409eff}.el-color-dropdown__link-btn{cursor:pointer;color:#409eff;text-decoration:none;padding:15px;font-size:12px}.el-color-dropdown__link-btn:hover{color:tint(#409eff,20%)}.el-color-picker{display:inline-block;position:relative;line-height:normal;height:40px}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed}.el-color-picker--medium{height:36px}.el-color-picker--medium .el-color-picker__trigger{height:36px;width:36px}.el-color-picker--medium .el-color-picker__mask{height:34px;width:34px}.el-color-picker--small{height:32px}.el-color-picker--small .el-color-picker__trigger{height:32px;width:32px}.el-color-picker--small .el-color-picker__mask{height:30px;width:30px}.el-color-picker--small .el-color-picker__empty,.el-color-picker--small .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker--mini{height:28px}.el-color-picker--mini .el-color-picker__trigger{height:28px;width:28px}.el-color-picker--mini .el-color-picker__mask{height:26px;width:26px}.el-color-picker--mini .el-color-picker__empty,.el-color-picker--mini .el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0) scale(.8);transform:translate3d(-50%,-50%,0) scale(.8)}.el-color-picker__mask{height:38px;width:38px;border-radius:4px;position:absolute;top:1px;left:1px;z-index:1;cursor:not-allowed;background-color:hsla(0,0%,100%,.7)}.el-color-picker__trigger{display:inline-block;height:40px;width:40px;padding:4px;border:1px solid #e6e6e6;border-radius:4px;font-size:0;cursor:pointer}.el-color-picker__color,.el-color-picker__trigger{-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-color-picker__color{display:block;border:1px solid #999;border-radius:2px;width:100%;height:100%;text-align:center}.el-color-picker__color.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-picker__color-inner{position:absolute;left:0;top:0;right:0;bottom:0}.el-color-picker__empty,.el-color-picker__icon{top:50%;left:50%;font-size:12px;position:absolute}.el-color-picker__empty{color:#999}.el-color-picker__empty,.el-color-picker__icon{-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.el-color-picker__icon{display:inline-block;width:100%;color:#fff;text-align:center}.el-color-picker__panel{position:absolute;z-index:10;padding:6px;-webkit-box-sizing:content-box;box-sizing:content-box;background-color:#fff;border:1px solid #ebeef5;border-radius:4px;-webkit-box-shadow:0 2px 12px 0 rgba(0,0,0,.1);box-shadow:0 2px 12px 0 rgba(0,0,0,.1)}.el-textarea{position:relative;display:inline-block;width:100%;vertical-align:bottom;font-size:14px}.el-textarea__inner{display:block;resize:vertical;padding:5px 15px;line-height:1.5;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;font-size:inherit;color:#606266;background-color:#fff;background-image:none;border:1px solid #dcdfe6;border-radius:4px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1)}.el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea__inner:hover{border-color:#c0c4cc}.el-textarea__inner:focus{outline:0;border-color:#409eff}.el-textarea .el-input__count{color:#909399;background:#fff;position:absolute;font-size:12px;bottom:5px;right:10px}.el-textarea.is-disabled .el-textarea__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::-moz-placeholder{color:#c0c4cc}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:#c0c4cc}.el-textarea.is-exceed .el-textarea__inner{border-color:#f56c6c}.el-textarea.is-exceed .el-input__count{color:#f56c6c}.el-input{position:relative;font-size:14px;display:inline-block;width:100%}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{border-radius:5px;width:6px;background:#b4bccc}.el-input::-webkit-scrollbar-corner,.el-input::-webkit-scrollbar-track{background:#fff}.el-input::-webkit-scrollbar-track-piece{background:#fff;width:6px}.el-input .el-input__clear{color:#c0c4cc;font-size:14px;cursor:pointer;-webkit-transition:color .2s cubic-bezier(.645,.045,.355,1);transition:color .2s cubic-bezier(.645,.045,.355,1)}.el-input .el-input__clear:hover{color:#909399}.el-input .el-input__count{height:100%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#909399;font-size:12px}.el-input .el-input__count .el-input__count-inner{background:#fff;line-height:normal;display:inline-block;padding:0 5px}.el-input__inner{-webkit-appearance:none;background-color:#fff;background-image:none;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;display:inline-block;font-size:inherit;height:40px;line-height:40px;outline:0;padding:0 15px;-webkit-transition:border-color .2s cubic-bezier(.645,.045,.355,1);transition:border-color .2s cubic-bezier(.645,.045,.355,1);width:100%}.el-input__prefix,.el-input__suffix{position:absolute;top:0;-webkit-transition:all .3s;height:100%;color:#c0c4cc;text-align:center}.el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input__inner::placeholder{color:#c0c4cc}.el-input__inner:hover{border-color:#c0c4cc}.el-input.is-active .el-input__inner,.el-input__inner:focus{border-color:#409eff;outline:0}.el-input__suffix{right:5px;-webkit-transition:all .3s;transition:all .3s}.el-input__suffix-inner{pointer-events:all}.el-input__prefix{left:5px}.el-input__icon,.el-input__prefix{-webkit-transition:all .3s;transition:all .3s}.el-input__icon{height:100%;width:25px;text-align:center;line-height:40px}.el-input__icon:after{content:"";height:100%;width:0;display:inline-block;vertical-align:middle}.el-input__validateIcon{pointer-events:none}.el-input.is-disabled .el-input__inner{background-color:#f5f7fa;border-color:#e4e7ed;color:#c0c4cc;cursor:not-allowed}.el-input.is-disabled .el-input__inner::-webkit-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner:-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-ms-input-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::-moz-placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__inner::placeholder{color:#c0c4cc}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-link,.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-input.is-exceed .el-input__inner{border-color:#f56c6c}.el-input.is-exceed .el-input__suffix .el-input__count{color:#f56c6c}.el-input--suffix .el-input__inner{padding-right:30px}.el-input--prefix .el-input__inner{padding-left:30px}.el-input--medium{font-size:14px}.el-input--medium .el-input__inner{height:36px;line-height:36px}.el-input--medium .el-input__icon{line-height:36px}.el-input--small{font-size:13px}.el-input--small .el-input__inner{height:32px;line-height:32px}.el-input--small .el-input__icon{line-height:32px}.el-input--mini{font-size:12px}.el-input--mini .el-input__inner{height:28px;line-height:28px}.el-input--mini .el-input__icon{line-height:28px}.el-input-group{line-height:normal;display:inline-table;width:100%;border-collapse:separate;border-spacing:0}.el-input-group>.el-input__inner{vertical-align:middle;display:table-cell}.el-input-group__append,.el-input-group__prepend{background-color:#f5f7fa;color:#909399;vertical-align:middle;display:table-cell;position:relative;border:1px solid #dcdfe6;border-radius:4px;padding:0 20px;width:1px;white-space:nowrap}.el-input-group--prepend .el-input__inner,.el-input-group__append{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--append .el-input__inner,.el-input-group__prepend{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:0}.el-input-group__append .el-button,.el-input-group__append .el-select,.el-input-group__prepend .el-button,.el-input-group__prepend .el-select{display:inline-block;margin:-10px -20px}.el-input-group__append button.el-button,.el-input-group__append div.el-select .el-input__inner,.el-input-group__append div.el-select:hover .el-input__inner,.el-input-group__prepend button.el-button,.el-input-group__prepend div.el-select .el-input__inner,.el-input-group__prepend div.el-select:hover .el-input__inner{border-color:transparent;background-color:transparent;color:inherit;border-top:0;border-bottom:0}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{border-right:0}.el-input-group__append{border-left:0}.el-input-group--append .el-select .el-input.is-focus .el-input__inner,.el-input-group--prepend .el-select .el-input.is-focus .el-input__inner{border-color:transparent}.el-input__inner::-ms-clear{display:none;width:0;height:0}.el-transfer{font-size:14px}.el-transfer__buttons{display:inline-block;vertical-align:middle;padding:0 30px}.el-transfer__button{display:block;margin:0 auto;padding:10px;border-radius:50%;color:#fff;background-color:#409eff;font-size:0}.el-transfer-panel__item+.el-transfer-panel__item,.el-transfer__button [class*=el-icon-]+span{margin-left:0}.el-transfer__button.is-with-texts{border-radius:4px}.el-transfer__button.is-disabled,.el-transfer__button.is-disabled:hover{border:1px solid #dcdfe6;background-color:#f5f7fa;color:#c0c4cc}.el-transfer__button:first-child{margin-bottom:10px}.el-transfer__button:nth-child(2){margin:0}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer-panel{border:1px solid #ebeef5;border-radius:4px;overflow:hidden;background:#fff;display:inline-block;vertical-align:middle;width:200px;max-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box;position:relative}.el-transfer-panel__body{height:246px}.el-transfer-panel__body.is-with-footer{padding-bottom:40px}.el-transfer-panel__list{margin:0;padding:6px 0;list-style:none;height:246px;overflow:auto;-webkit-box-sizing:border-box;box-sizing:border-box}.el-transfer-panel__list.is-filterable{height:194px;padding-top:0}.el-transfer-panel__item{height:30px;line-height:30px;padding-left:15px;display:block!important}.el-transfer-panel__item.el-checkbox{color:#606266}.el-transfer-panel__item:hover{color:#409eff}.el-transfer-panel__item.el-checkbox .el-checkbox__label{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;padding-left:24px;line-height:30px}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;margin:15px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;width:auto}.el-transfer-panel__filter .el-input__inner{height:32px;width:100%;font-size:12px;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;border-radius:16px;padding-right:10px;padding-left:30px}.el-transfer-panel__filter .el-input__icon{margin-left:5px}.el-transfer-panel .el-transfer-panel__header{height:40px;line-height:40px;background:#f5f7fa;margin:0;padding-left:15px;border-bottom:1px solid #ebeef5;-webkit-box-sizing:border-box;box-sizing:border-box;color:#000}.el-transfer-panel .el-transfer-panel__header .el-checkbox{display:block;line-height:40px}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{font-size:16px;color:#303133;font-weight:400}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span{position:absolute;right:15px;color:#909399;font-size:12px;font-weight:400}.el-divider__text,.el-link{font-weight:500;font-size:14px}.el-transfer-panel .el-transfer-panel__footer{height:40px;background:#fff;margin:0;padding:0;border-top:1px solid #ebeef5;position:absolute;bottom:0;left:0;width:100%;z-index:1}.el-transfer-panel .el-transfer-panel__footer:after{display:inline-block;content:"";height:100%;vertical-align:middle}.el-container,.el-timeline-item__node{display:-webkit-box;display:-ms-flexbox}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{padding-left:20px;color:#606266}.el-transfer-panel .el-transfer-panel__empty{margin:0;height:30px;line-height:30px;padding:6px 15px 0;color:#909399;text-align:center}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-transfer-panel .el-checkbox__inner{height:14px;width:14px;border-radius:3px}.el-transfer-panel .el-checkbox__inner:after{height:6px;width:3px;left:4px}.el-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:0}.el-container.is-vertical,.el-drawer{-webkit-box-orient:vertical;-webkit-box-direction:normal}.el-aside,.el-header{-webkit-box-sizing:border-box}.el-container.is-vertical{-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.el-header{padding:0 20px}.el-aside,.el-header{-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0}.el-aside{overflow:auto}.el-footer,.el-main{-webkit-box-sizing:border-box}.el-main{display:block;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;overflow:auto;padding:20px}.el-footer,.el-main{-webkit-box-sizing:border-box;box-sizing:border-box}.el-footer{padding:0 20px;-ms-flex-negative:0;flex-shrink:0}.el-timeline{margin:0;font-size:14px;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline-item{position:relative;padding-bottom:20px}.el-timeline-item__wrapper{position:relative;padding-left:28px;top:-3px}.el-timeline-item__tail{position:absolute;left:4px;height:100%;border-left:2px solid #e4e7ed}.el-timeline-item__icon{color:#fff;font-size:13px}.el-timeline-item__node{position:absolute;background-color:#e4e7ed;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image__error,.el-timeline-item__dot{display:-webkit-box;display:-ms-flexbox}.el-timeline-item__node--normal{left:-1px;width:12px;height:12px}.el-timeline-item__node--large{left:-2px;width:14px;height:14px}.el-timeline-item__node--primary{background-color:#409eff}.el-timeline-item__node--success{background-color:#67c23a}.el-timeline-item__node--warning{background-color:#e6a23c}.el-timeline-item__node--danger{background-color:#f56c6c}.el-timeline-item__node--info{background-color:#909399}.el-timeline-item__dot{position:absolute;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-timeline-item__content{color:#303133}.el-timeline-item__timestamp{color:#909399;line-height:1;font-size:13px}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-link{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;vertical-align:middle;position:relative;text-decoration:none;outline:0;padding:0}.el-link.is-underline:hover:after{content:"";position:absolute;left:0;right:0;height:0;bottom:0;border-bottom:1px solid #409eff}.el-link.el-link--default:after,.el-link.el-link--primary.is-underline:hover:after,.el-link.el-link--primary:after{border-color:#409eff}.el-link.is-disabled{cursor:not-allowed}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link.el-link--default{color:#606266}.el-link.el-link--default:hover{color:#409eff}.el-link.el-link--default.is-disabled{color:#c0c4cc}.el-link.el-link--primary{color:#409eff}.el-link.el-link--primary:hover{color:#66b1ff}.el-link.el-link--primary.is-disabled{color:#a0cfff}.el-link.el-link--danger.is-underline:hover:after,.el-link.el-link--danger:after{border-color:#f56c6c}.el-link.el-link--danger{color:#f56c6c}.el-link.el-link--danger:hover{color:#f78989}.el-link.el-link--danger.is-disabled{color:#fab6b6}.el-link.el-link--success.is-underline:hover:after,.el-link.el-link--success:after{border-color:#67c23a}.el-link.el-link--success{color:#67c23a}.el-link.el-link--success:hover{color:#85ce61}.el-link.el-link--success.is-disabled{color:#b3e19d}.el-link.el-link--warning.is-underline:hover:after,.el-link.el-link--warning:after{border-color:#e6a23c}.el-link.el-link--warning{color:#e6a23c}.el-link.el-link--warning:hover{color:#ebb563}.el-link.el-link--warning.is-disabled{color:#f3d19e}.el-link.el-link--info.is-underline:hover:after,.el-link.el-link--info:after{border-color:#909399}.el-link.el-link--info{color:#909399}.el-link.el-link--info:hover{color:#a6a9ad}.el-link.el-link--info.is-disabled{color:#c8c9cc}.el-divider{background-color:#dcdfe6;position:relative}.el-divider--horizontal{display:block;height:1px;width:100%;margin:24px 0}.el-divider--vertical{display:inline-block;width:1px;height:1em;margin:0 8px;vertical-align:middle;position:relative}.el-divider__text{position:absolute;background-color:#fff;padding:0 20px;color:#303133}.el-image__error,.el-image__placeholder{background:#f5f7fa}.el-divider__text.is-left{left:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-divider__text.is-center{left:50%;-webkit-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.el-divider__text.is-right{right:20px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image__error,.el-image__inner,.el-image__placeholder{width:100%;height:100%}.el-image{position:relative;display:inline-block;overflow:hidden}.el-image__inner{vertical-align:top}.el-image__inner--center{position:relative;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);display:block}.el-image__error{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;font-size:14px;color:#c0c4cc;vertical-align:middle}.el-image__preview{cursor:pointer}.el-image-viewer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0}.el-image-viewer__btn{position:absolute;z-index:1;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;opacity:.8;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box;user-select:none}.el-button,.el-checkbox,.el-image-viewer__btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-image-viewer__close{top:40px;right:40px;width:40px;height:40px;font-size:40px}.el-image-viewer__canvas{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-image-viewer__actions{left:50%;bottom:30px;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:282px;height:44px;padding:0 23px;background-color:#606266;border-color:#fff;border-radius:22px}.el-image-viewer__actions__inner{width:100%;height:100%;text-align:justify;cursor:default;font-size:23px;color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.el-image-viewer__next,.el-image-viewer__prev{top:50%;width:44px;height:44px;font-size:24px;color:#fff;background-color:#606266;border-color:#fff}.el-image-viewer__prev{left:40px}.el-image-viewer__next,.el-image-viewer__prev{-webkit-transform:translateY(-50%);transform:translateY(-50%)}.el-image-viewer__next{right:40px;text-indent:2px}.el-image-viewer__mask{position:absolute;width:100%;height:100%;top:0;left:0;opacity:.5;background:#000}.viewer-fade-enter-active{-webkit-animation:viewer-fade-in .3s;animation:viewer-fade-in .3s}.viewer-fade-leave-active{-webkit-animation:viewer-fade-out .3s;animation:viewer-fade-out .3s}@-webkit-keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@keyframes viewer-fade-in{0%{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}to{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}}@-webkit-keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}@keyframes viewer-fade-out{0%{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}to{-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0);opacity:0}}.el-button{display:inline-block;line-height:1;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #dcdfe6;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:.1s;transition:.1s;font-weight:500;padding:12px 20px;font-size:14px;border-radius:4px}.el-button+.el-button{margin-left:10px}.el-button:focus,.el-button:hover{color:#409eff;border-color:#c6e2ff;background-color:#ecf5ff}.el-button:active{color:#3a8ee6;border-color:#3a8ee6;outline:0}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon-]+span{margin-left:5px}.el-button.is-plain:focus,.el-button.is-plain:hover{background:#fff;border-color:#409eff;color:#409eff}.el-button.is-active,.el-button.is-plain:active{color:#3a8ee6;border-color:#3a8ee6}.el-button.is-plain:active{background:#fff;outline:0}.el-button.is-disabled,.el-button.is-disabled:focus,.el-button.is-disabled:hover{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5}.el-button.is-disabled.el-button--text{background-color:transparent}.el-button.is-disabled.is-plain,.el-button.is-disabled.is-plain:focus,.el-button.is-disabled.is-plain:hover{background-color:#fff;border-color:#ebeef5;color:#c0c4cc}.el-button.is-loading{position:relative;pointer-events:none}.el-button.is-loading:before{pointer-events:none;content:"";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border-radius:inherit;background-color:hsla(0,0%,100%,.35)}.el-button.is-round{border-radius:20px;padding:12px 23px}.el-button.is-circle{border-radius:50%;padding:12px}.el-button--primary{color:#fff;background-color:#409eff;border-color:#409eff}.el-button--primary:focus,.el-button--primary:hover{background:#66b1ff;border-color:#66b1ff;color:#fff}.el-button--primary.is-active,.el-button--primary:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff}.el-button--primary:active{outline:0}.el-button--primary.is-disabled,.el-button--primary.is-disabled:active,.el-button--primary.is-disabled:focus,.el-button--primary.is-disabled:hover{color:#fff;background-color:#a0cfff;border-color:#a0cfff}.el-button--primary.is-plain{color:#409eff;background:#ecf5ff;border-color:#b3d8ff}.el-button--primary.is-plain:focus,.el-button--primary.is-plain:hover{background:#409eff;border-color:#409eff;color:#fff}.el-button--primary.is-plain:active{background:#3a8ee6;border-color:#3a8ee6;color:#fff;outline:0}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:hover{color:#8cc5ff;background-color:#ecf5ff;border-color:#d9ecff}.el-button--success{color:#fff;background-color:#67c23a;border-color:#67c23a}.el-button--success:focus,.el-button--success:hover{background:#85ce61;border-color:#85ce61;color:#fff}.el-button--success.is-active,.el-button--success:active{background:#5daf34;border-color:#5daf34;color:#fff}.el-button--success:active{outline:0}.el-button--success.is-disabled,.el-button--success.is-disabled:active,.el-button--success.is-disabled:focus,.el-button--success.is-disabled:hover{color:#fff;background-color:#b3e19d;border-color:#b3e19d}.el-button--success.is-plain{color:#67c23a;background:#f0f9eb;border-color:#c2e7b0}.el-button--success.is-plain:focus,.el-button--success.is-plain:hover{background:#67c23a;border-color:#67c23a;color:#fff}.el-button--success.is-plain:active{background:#5daf34;border-color:#5daf34;color:#fff;outline:0}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:hover{color:#a4da89;background-color:#f0f9eb;border-color:#e1f3d8}.el-button--warning{color:#fff;background-color:#e6a23c;border-color:#e6a23c}.el-button--warning:focus,.el-button--warning:hover{background:#ebb563;border-color:#ebb563;color:#fff}.el-button--warning.is-active,.el-button--warning:active{background:#cf9236;border-color:#cf9236;color:#fff}.el-button--warning:active{outline:0}.el-button--warning.is-disabled,.el-button--warning.is-disabled:active,.el-button--warning.is-disabled:focus,.el-button--warning.is-disabled:hover{color:#fff;background-color:#f3d19e;border-color:#f3d19e}.el-button--warning.is-plain{color:#e6a23c;background:#fdf6ec;border-color:#f5dab1}.el-button--warning.is-plain:focus,.el-button--warning.is-plain:hover{background:#e6a23c;border-color:#e6a23c;color:#fff}.el-button--warning.is-plain:active{background:#cf9236;border-color:#cf9236;color:#fff;outline:0}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:hover{color:#f0c78a;background-color:#fdf6ec;border-color:#faecd8}.el-button--danger{color:#fff;background-color:#f56c6c;border-color:#f56c6c}.el-button--danger:focus,.el-button--danger:hover{background:#f78989;border-color:#f78989;color:#fff}.el-button--danger.is-active,.el-button--danger:active{background:#dd6161;border-color:#dd6161;color:#fff}.el-button--danger:active{outline:0}.el-button--danger.is-disabled,.el-button--danger.is-disabled:active,.el-button--danger.is-disabled:focus,.el-button--danger.is-disabled:hover{color:#fff;background-color:#fab6b6;border-color:#fab6b6}.el-button--danger.is-plain{color:#f56c6c;background:#fef0f0;border-color:#fbc4c4}.el-button--danger.is-plain:focus,.el-button--danger.is-plain:hover{background:#f56c6c;border-color:#f56c6c;color:#fff}.el-button--danger.is-plain:active{background:#dd6161;border-color:#dd6161;color:#fff;outline:0}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:hover{color:#f9a7a7;background-color:#fef0f0;border-color:#fde2e2}.el-button--info{color:#fff;background-color:#909399;border-color:#909399}.el-button--info:focus,.el-button--info:hover{background:#a6a9ad;border-color:#a6a9ad;color:#fff}.el-button--info.is-active,.el-button--info:active{background:#82848a;border-color:#82848a;color:#fff}.el-button--info:active{outline:0}.el-button--info.is-disabled,.el-button--info.is-disabled:active,.el-button--info.is-disabled:focus,.el-button--info.is-disabled:hover{color:#fff;background-color:#c8c9cc;border-color:#c8c9cc}.el-button--info.is-plain{color:#909399;background:#f4f4f5;border-color:#d3d4d6}.el-button--info.is-plain:focus,.el-button--info.is-plain:hover{background:#909399;border-color:#909399;color:#fff}.el-button--info.is-plain:active{background:#82848a;border-color:#82848a;color:#fff;outline:0}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:hover{color:#bcbec2;background-color:#f4f4f5;border-color:#e9e9eb}.el-button--text,.el-button--text.is-disabled,.el-button--text.is-disabled:focus,.el-button--text.is-disabled:hover,.el-button--text:active{border-color:transparent}.el-button--medium{padding:10px 20px;font-size:14px;border-radius:4px}.el-button--mini,.el-button--small{font-size:12px;border-radius:3px}.el-button--medium.is-round{padding:10px 20px}.el-button--medium.is-circle{padding:10px}.el-button--small,.el-button--small.is-round{padding:9px 15px}.el-button--small.is-circle{padding:9px}.el-button--mini,.el-button--mini.is-round{padding:7px 15px}.el-button--mini.is-circle{padding:7px}.el-button--text{color:#409eff;background:0 0;padding-left:0;padding-right:0}.el-button--text:focus,.el-button--text:hover{color:#66b1ff;border-color:transparent;background-color:transparent}.el-button--text:active{color:#3a8ee6;background-color:transparent}.el-button-group{display:inline-block;vertical-align:middle}.el-button-group:after,.el-button-group:before{display:table;content:""}.el-button-group:after{clear:both}.el-button-group>.el-button{float:left;position:relative}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button.is-disabled{z-index:1}.el-button-group>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group>.el-button:first-child:last-child{border-radius:4px}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:20px}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:not(:last-child){margin-right:-1px}.el-button-group>.el-button.is-active,.el-button-group>.el-button:active,.el-button-group>.el-button:focus,.el-button-group>.el-button:hover{z-index:1}.el-button-group>.el-dropdown>.el-button{border-top-left-radius:0;border-bottom-left-radius:0;border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--primary:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--success:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--warning:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--danger:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:first-child{border-right-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:last-child{border-left-color:hsla(0,0%,100%,.5)}.el-button-group .el-button--info:not(:first-child):not(:last-child){border-left-color:hsla(0,0%,100%,.5);border-right-color:hsla(0,0%,100%,.5)}.el-calendar{background-color:#fff}.el-calendar__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:12px 20px;border-bottom:1px solid #ebeef5}.el-backtop,.el-page-header{display:-webkit-box;display:-ms-flexbox}.el-calendar__title{color:#000;-ms-flex-item-align:center;align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{padding:12px 0;color:#606266;font-weight:400}.el-calendar-table:not(.is-range) td.next,.el-calendar-table:not(.is-range) td.prev{color:#c0c4cc}.el-backtop,.el-calendar-table td.is-today{color:#409eff}.el-calendar-table td{border-bottom:1px solid #ebeef5;border-right:1px solid #ebeef5;vertical-align:top;-webkit-transition:background-color .2s ease;transition:background-color .2s ease}.el-calendar-table td.is-selected{background-color:#f2f8fe}.el-calendar-table tr:first-child td{border-top:1px solid #ebeef5}.el-calendar-table tr td:first-child{border-left:1px solid #ebeef5}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;height:85px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:#f2f8fe}.el-backtop{position:fixed;background-color:#fff;width:40px;height:40px;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:20px;-webkit-box-shadow:0 0 6px rgba(0,0,0,.12);box-shadow:0 0 6px rgba(0,0,0,.12);cursor:pointer;z-index:5}.el-backtop:hover{background-color:#f2f6fc}.el-page-header{line-height:24px}.el-page-header,.el-page-header__left{display:-webkit-box;display:-ms-flexbox;display:flex}.el-page-header__left{cursor:pointer;margin-right:40px;position:relative}.el-page-header__left:after{content:"";position:absolute;width:1px;height:16px;right:-20px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#dcdfe6}.el-checkbox,.el-checkbox__input{display:inline-block;position:relative;white-space:nowrap}.el-page-header__left .el-icon-back{font-size:18px;margin-right:6px;-ms-flex-item-align:center;align-self:center}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{font-size:18px;color:#303133}.el-checkbox{color:#606266;font-size:14px;cursor:pointer;user-select:none;margin-right:30px}.el-checkbox,.el-checkbox-button__inner,.el-radio{font-weight:500;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.el-checkbox.is-bordered{padding:9px 20px 9px 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;line-height:normal;height:40px}.el-checkbox.is-bordered.is-checked{border-color:#409eff}.el-checkbox.is-bordered.is-disabled{border-color:#ebeef5;cursor:not-allowed}.el-checkbox.is-bordered+.el-checkbox.is-bordered{margin-left:10px}.el-checkbox.is-bordered.el-checkbox--medium{padding:7px 20px 7px 10px;border-radius:4px;height:36px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label{line-height:17px;font-size:14px}.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner{height:14px;width:14px}.el-checkbox.is-bordered.el-checkbox--small{padding:5px 15px 5px 10px;border-radius:3px;height:32px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{line-height:15px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox.is-bordered.el-checkbox--mini{padding:3px 15px 3px 10px;border-radius:3px;height:28px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label{line-height:12px;font-size:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner{height:12px;width:12px}.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner:after{height:6px;width:2px}.el-checkbox__input{cursor:pointer;outline:0;line-height:1;vertical-align:middle}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:#edf2fc;border-color:#dcdfe6;cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:#c0c4cc}.el-checkbox__input.is-disabled .el-checkbox__inner+.el-checkbox__label{cursor:not-allowed}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:#c0c4cc}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:#f2f6fc;border-color:#dcdfe6}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:#c0c4cc;border-color:#c0c4cc}.el-checkbox__input.is-checked .el-checkbox__inner,.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:#409eff;border-color:#409eff}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:#c0c4cc;cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner:after{-webkit-transform:rotate(45deg) scaleY(1);transform:rotate(45deg) scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:#409eff}.el-checkbox__input.is-focus .el-checkbox__inner{border-color:#409eff}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";position:absolute;display:block;background-color:#fff;height:2px;-webkit-transform:scale(.5);transform:scale(.5);left:0;right:0;top:5px}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{display:inline-block;position:relative;border:1px solid #dcdfe6;border-radius:2px;-webkit-box-sizing:border-box;box-sizing:border-box;width:14px;height:14px;background-color:#fff;z-index:1;-webkit-transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.el-checkbox__inner:hover{border-color:#409eff}.el-checkbox__inner:after{-webkit-box-sizing:content-box;box-sizing:content-box;content:"";border:1px solid #fff;border-left:0;border-top:0;height:7px;left:4px;position:absolute;top:1px;-webkit-transform:rotate(45deg) scaleY(0);transform:rotate(45deg) scaleY(0);width:3px;-webkit-transition:-webkit-transform .15s ease-in .05s;transition:-webkit-transform .15s ease-in .05s;transition:transform .15s ease-in .05s;transition:transform .15s ease-in .05s,-webkit-transform .15s ease-in .05s;-webkit-transform-origin:center;transform-origin:center}.el-checkbox__original{opacity:0;outline:0;position:absolute;margin:0;width:0;height:0;z-index:-1}.el-checkbox-button,.el-checkbox-button__inner{display:inline-block;position:relative}.el-checkbox__label{display:inline-block;padding-left:10px;line-height:19px;font-size:14px}.el-checkbox:last-of-type{margin-right:0}.el-checkbox-button__inner{line-height:1;white-space:nowrap;vertical-align:middle;cursor:pointer;background:#fff;border:1px solid #dcdfe6;border-left:0;color:#606266;-webkit-appearance:none;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;margin:0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);padding:12px 20px;font-size:14px;border-radius:0}.el-checkbox-button__inner.is-round{padding:12px 20px}.el-checkbox-button__inner:hover{color:#409eff}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-radio,.el-radio__input{line-height:1;outline:0;white-space:nowrap}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;outline:0;position:absolute;margin:0;z-index:-1}.el-radio,.el-radio__inner,.el-radio__input{position:relative;display:inline-block}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:#fff;background-color:#409eff;border-color:#409eff;-webkit-box-shadow:-1px 0 0 0 #8cc5ff;box-shadow:-1px 0 0 0 #8cc5ff}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:#409eff}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:#c0c4cc;cursor:not-allowed;background-image:none;background-color:#fff;border-color:#ebeef5;-webkit-box-shadow:none;box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:#ebeef5}.el-checkbox-button:first-child .el-checkbox-button__inner{border-left:1px solid #dcdfe6;border-radius:4px 0 0 4px;-webkit-box-shadow:none!important;box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:#409eff}.el-checkbox-button:last-child .el-checkbox-button__inner{border-radius:0 4px 4px 0}.el-checkbox-button--medium .el-checkbox-button__inner{padding:10px 20px;font-size:14px;border-radius:0}.el-checkbox-button--medium .el-checkbox-button__inner.is-round{padding:10px 20px}.el-checkbox-button--small .el-checkbox-button__inner{padding:9px 15px;font-size:12px;border-radius:0}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:9px 15px}.el-checkbox-button--mini .el-checkbox-button__inner{padding:7px 15px;font-size:12px;border-radius:0}.el-checkbox-button--mini .el-checkbox-button__inner.is-round{padding:7px 15px}.el-checkbox-group{font-size:0}.el-radio,.el-radio--medium.is-bordered .el-radio__label{font-size:14px}.el-radio{color:#606266;cursor:pointer;margin-right:30px}.el-cascader-node>.el-radio,.el-radio:last-child{margin-right:0}.el-radio.is-bordered{padding:12px 20px 0 10px;border-radius:4px;border:1px solid #dcdfe6;-webkit-box-sizing:border-box;box-sizing:border-box;height:40px}.el-radio.is-bordered.is-checked{border-color:#409eff}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:#ebeef5}.el-radio__input.is-disabled .el-radio__inner,.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:#f5f7fa;border-color:#e4e7ed}.el-radio.is-bordered+.el-radio.is-bordered{margin-left:10px}.el-radio--medium.is-bordered{padding:10px 20px 0 10px;border-radius:4px;height:36px}.el-radio--mini.is-bordered .el-radio__label,.el-radio--small.is-bordered .el-radio__label{font-size:12px}.el-radio--medium.is-bordered .el-radio__inner{height:14px;width:14px}.el-radio--small.is-bordered{padding:8px 15px 0 10px;border-radius:3px;height:32px}.el-radio--small.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio--mini.is-bordered{padding:6px 15px 0 10px;border-radius:3px;height:28px}.el-radio--mini.is-bordered .el-radio__inner{height:12px;width:12px}.el-radio__input{cursor:pointer;vertical-align:middle}.el-radio__input.is-disabled .el-radio__inner{cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:#f5f7fa}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:#c0c4cc}.el-radio__input.is-disabled+span.el-radio__label{color:#c0c4cc;cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:#409eff;background:#409eff}.el-radio__input.is-checked .el-radio__inner:after{-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1)}.el-radio__input.is-checked+.el-radio__label{color:#409eff}.el-radio__input.is-focus .el-radio__inner{border-color:#409eff}.el-radio__inner{border:1px solid #dcdfe6;border-radius:100%;width:14px;height:14px;background-color:#fff;cursor:pointer;-webkit-box-sizing:border-box;box-sizing:border-box}.el-radio__inner:hover{border-color:#409eff}.el-radio__inner:after{width:4px;height:4px;border-radius:100%;background-color:#fff;content:"";position:absolute;left:50%;top:50%;-webkit-transform:translate(-50%,-50%) scale(0);transform:translate(-50%,-50%) scale(0);-webkit-transition:-webkit-transform .15s ease-in;transition:-webkit-transform .15s ease-in;transition:transform .15s ease-in;transition:transform .15s ease-in,-webkit-transform .15s ease-in}.el-radio__original{opacity:0;outline:0;position:absolute;z-index:-1;top:0;left:0;right:0;bottom:0;margin:0}.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{-webkit-box-shadow:0 0 2px 2px #409eff;box-shadow:0 0 2px 2px #409eff}.el-radio__label{font-size:14px;padding-left:10px}.el-scrollbar{overflow:hidden;position:relative}.el-scrollbar:active>.el-scrollbar__bar,.el-scrollbar:focus>.el-scrollbar__bar,.el-scrollbar:hover>.el-scrollbar__bar{opacity:1;-webkit-transition:opacity .34s ease-out;transition:opacity .34s ease-out}.el-scrollbar__wrap{overflow:scroll;height:100%}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{width:0;height:0}.el-scrollbar__thumb{position:relative;display:block;width:0;height:0;cursor:pointer;border-radius:inherit;background-color:rgba(144,147,153,.3);-webkit-transition:background-color .3s;transition:background-color .3s}.el-scrollbar__thumb:hover{background-color:rgba(144,147,153,.5)}.el-scrollbar__bar{position:absolute;right:2px;bottom:2px;z-index:1;border-radius:4px;opacity:0;-webkit-transition:opacity .12s ease-out;transition:opacity .12s ease-out}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-cascader-panel{display:-webkit-box;display:-ms-flexbox;display:flex;border-radius:4px;font-size:14px}.el-cascader-panel.is-bordered{border:1px solid #e4e7ed;border-radius:4px}.el-cascader-menu{min-width:180px;-webkit-box-sizing:border-box;box-sizing:border-box;color:#606266;border-right:1px solid #e4e7ed}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap{height:204px}.el-cascader-menu__list{position:relative;min-height:100%;margin:0;padding:6px 0;list-style:none;-webkit-box-sizing:border-box;box-sizing:border-box}.el-avatar,.el-drawer{-webkit-box-sizing:border-box;overflow:hidden}.el-cascader-menu__hover-zone{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.el-cascader-menu__empty-text{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);text-align:center;color:#c0c4cc}.el-cascader-node{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 30px 0 20px;height:34px;line-height:34px;outline:0}.el-cascader-node.is-selectable.in-active-path{color:#606266}.el-cascader-node.in-active-path,.el-cascader-node.is-active,.el-cascader-node.is-selectable.in-checked-path{color:#409eff;font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):focus,.el-cascader-node:not(.is-disabled):hover{background:#f5f7fa}.el-cascader-node.is-disabled{color:#c0c4cc;cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{-webkit-box-flex:1;-ms-flex:1;flex:1;padding:0 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-avatar{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;text-align:center;color:#fff;background:#c0c4cc;width:40px;height:40px;line-height:40px;font-size:14px}.el-avatar>img{display:block;height:100%;vertical-align:middle}.el-drawer,.el-drawer__header{display:-webkit-box;display:-ms-flexbox}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:4px}.el-avatar--icon{font-size:18px}.el-avatar--large{width:40px;height:40px;line-height:40px}.el-avatar--medium{width:36px;height:36px;line-height:36px}.el-avatar--small{width:28px;height:28px;line-height:28px}.el-drawer.btt,.el-drawer.ttb,.el-drawer__container{left:0;right:0;width:100%}.el-drawer.ltr,.el-drawer.rtl,.el-drawer__container{top:0;bottom:0;height:100%}@-webkit-keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@keyframes el-drawer-fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes rtl-drawer-in{0%{-webkit-transform:translate(100%);transform:translate(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@keyframes rtl-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(100%);transform:translate(100%)}}@-webkit-keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ltr-drawer-in{0%{-webkit-transform:translate(-100%);transform:translate(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@keyframes ltr-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translate(-100%);transform:translate(-100%)}}@-webkit-keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes ttb-drawer-in{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes ttb-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@-webkit-keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes btt-drawer-in{0%{-webkit-transform:translateY(100%);transform:translateY(100%)}to{-webkit-transform:translate(0);transform:translate(0)}}@-webkit-keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes btt-drawer-out{0%{-webkit-transform:translate(0);transform:translate(0)}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.el-drawer{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;background-color:#fff;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.el-drawer.rtl{-webkit-animation:rtl-drawer-out .3s;animation:rtl-drawer-out .3s;right:0}.el-drawer__open .el-drawer.rtl{-webkit-animation:rtl-drawer-in .3s 1ms;animation:rtl-drawer-in .3s 1ms}.el-drawer.ltr{-webkit-animation:ltr-drawer-out .3s;animation:ltr-drawer-out .3s;left:0}.el-drawer__open .el-drawer.ltr{-webkit-animation:ltr-drawer-in .3s 1ms;animation:ltr-drawer-in .3s 1ms}.el-drawer.ttb{-webkit-animation:ttb-drawer-out .3s;animation:ttb-drawer-out .3s;top:0}.el-drawer__open .el-drawer.ttb{-webkit-animation:ttb-drawer-in .3s 1ms;animation:ttb-drawer-in .3s 1ms}.el-drawer.btt{-webkit-animation:btt-drawer-out .3s;animation:btt-drawer-out .3s;bottom:0}.el-drawer__open .el-drawer.btt{-webkit-animation:btt-drawer-in .3s 1ms;animation:btt-drawer-in .3s 1ms}.el-drawer__wrapper{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0}.el-drawer__header{-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#72767b;display:-webkit-box;display:-ms-flexbox;display:flex;margin-bottom:32px;padding:20px 20px 0}.el-drawer__header>:first-child,.el-drawer__title{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__title{margin:0;line-height:inherit;font-size:1rem}.el-drawer__close-btn{border:none;cursor:pointer;font-size:20px;color:inherit;background-color:transparent}.el-drawer__body{-webkit-box-flex:1;-ms-flex:1;flex:1}.el-drawer__body>*{-webkit-box-sizing:border-box;box-sizing:border-box}.el-drawer__container{position:relative}.el-drawer-fade-enter-active{-webkit-animation:el-drawer-fade-in .3s;animation:el-drawer-fade-in .3s}.el-drawer-fade-leave-active{animation:el-drawer-fade-in .3s reverse}.el-popconfirm__main{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin:0}@font-face{font-family:fontello;src:url(../fonts/fontello.e73a0647.eot);src:url(../fonts/fontello.e73a0647.eot#iefix) format("embedded-opentype"),url(../fonts/fontello.8d4a4e6f.woff2) format("woff2"),url(../fonts/fontello.a782baa8.woff) format("woff"),url(../fonts/fontello.068ca2b3.ttf) format("truetype"),url(../img/fontello.9354499c.svg#fontello) format("svg");font-weight:400;font-style:normal}[class*=" fa-mavon-"]:before,[class^=fa-mavon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-mavon-bold:before{content:"\E800"}.fa-mavon-italic:before{content:"\E801"}.fa-mavon-thumb-tack:before{content:"\E802"}.fa-mavon-link:before{content:"\E803"}.fa-mavon-picture-o:before{content:"\E804"}.fa-mavon-repeat:before{content:"\E805"}.fa-mavon-undo:before{content:"\E806"}.fa-mavon-trash-o:before{content:"\E807"}.fa-mavon-floppy-o:before{content:"\E808"}.fa-mavon-compress:before{content:"\E809"}.fa-mavon-eye:before{content:"\E80A"}.fa-mavon-eye-slash:before{content:"\E80B"}.fa-mavon-question-circle:before{content:"\E80C"}.fa-mavon-times:before{content:"\E80D"}.fa-mavon-align-left:before{content:"\E80F"}.fa-mavon-align-center:before{content:"\E810"}.fa-mavon-align-right:before{content:"\E811"}.fa-mavon-arrows-alt:before{content:"\F0B2"}.fa-mavon-bars:before{content:"\F0C9"}.fa-mavon-list-ul:before{content:"\F0CA"}.fa-mavon-list-ol:before{content:"\F0CB"}.fa-mavon-strikethrough:before{content:"\F0CC"}.fa-mavon-underline:before{content:"\F0CD"}.fa-mavon-table:before{content:"\F0CE"}.fa-mavon-columns:before{content:"\F0DB"}.fa-mavon-quote-left:before{content:"\F10D"}.fa-mavon-code:before{content:"\F121"}.fa-mavon-superscript:before{content:"\F12B"}.fa-mavon-subscript:before{content:"\F12C"}.fa-mavon-header:before{content:"\F1DC"}.fa-mavon-window-maximize:before{content:"\F2D0"}.markdown-body strong{font-weight:bolder}.markdown-body .hljs-center{text-align:center}.markdown-body .hljs-right{text-align:right}.markdown-body .hljs-left{text-align:left}.hljs{display:block;overflow-x:auto;padding:.5em;background:#fff;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#00f}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#a31515}.hljs-deletion,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo{color:#2b91af}.hljs-doctag{color:grey}.hljs-attr{color:red}.hljs-bullet,.hljs-link,.hljs-symbol{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} ================================================ FILE: public/index.html ================================================ 微擎文档管理系统
================================================ FILE: public/js/app.9dc9e499.js ================================================ (function(n){function e(e){for(var a,c,o=e[0],d=e[1],i=e[2],h=0,f=[];h=200&&n.data.code<300?n.data:(444==n.data.code?(r["a"].push("/admin-login?redirect_url="+window.location.href),o["Message"].closeAll(),o["Message"].error(n.data.message)):445==n.data.code?(o["Message"].error(n.data.message),r["a"].push("/")):446==n.data.code?(o["Message"].error(n.data.message),localStorage.recordHref="",r["a"].push("/")):(o["Message"].closeAll(),o["Message"].error(n.data.message)),Promise.reject(n.data))}),(function(n){return Promise.reject(n.response)})),e["a"]=h},"41cb":function(n,e,t){"use strict";var a=t("2b0e"),c=t("8c4f");a["default"].use(c["a"]);var u=c["a"].prototype.push;c["a"].prototype.push=function(n){return u.call(this,n).catch((function(n){return n}))};var r=new c["a"]({mode:"history",routes:[{path:"/",redirect:"/home"},{path:"/login",name:"adminLogin",component:function(){return t.e("chunk-2d0ba2e6").then(t.bind(null,"35b0"))}},{path:"/admin-login",name:"adminLoginPage",component:function(){return t.e("chunk-56652b45").then(t.bind(null,"2b83"))}},{path:"/bind",name:"adminBind",component:function(){return t.e("chunk-a3879d6c").then(t.bind(null,"b863"))}},{path:"/install",name:"install",redirect:"/install/installOne",component:function(){return t.e("chunk-73af5400").then(t.bind(null,"822d"))},children:[{path:"installOne",name:"installOne",component:function(){return t.e("chunk-10615ad3").then(t.bind(null,"385c"))}},{path:"installTwo",name:"installTwo",component:function(){return t.e("chunk-25f82f1a").then(t.bind(null,"c643"))}},{path:"installTree",name:"installTree",component:function(){return t.e("chunk-7060d2be").then(t.bind(null,"25d6"))}}]},{path:"/mock/:document_id/:chapter_id",name:"mock",component:function(){return t.e("chunk-168777de").then(t.bind(null,"6c8c"))}},{path:"/admin",name:"admin",component:function(){return t.e("chunk-6a2c3c1a").then(t.bind(null,"ed3a"))},children:[{path:"document",name:"documentLayout",component:function(){return t.e("chunk-57425795").then(t.bind(null,"794d"))},children:[{path:"index",name:"documentIndex",component:function(){return Promise.all([t.e("chunk-bd264252"),t.e("chunk-654f0b98")]).then(t.bind(null,"b56e"))}},{path:"chapter/:id",name:"chapter",meta:{footerClass:"float"},component:function(){return Promise.all([t.e("chunk-bd264252"),t.e("chunk-06ade0a7")]).then(t.bind(null,"1962"))}},{path:"recycle",name:"documentRecycle",component:function(){return t.e("chunk-564fade6").then(t.bind(null,"9095"))}},{path:"star",name:"documentStar",component:function(){return t.e("chunk-2d22276a").then(t.bind(null,"cf5f"))}},{path:"history",name:"documentHistory",component:function(){return t.e("chunk-ab7deece").then(t.bind(null,"a3b9"))}},{path:"involved",name:"documentInvolved",component:function(){return t.e("chunk-079f5797").then(t.bind(null,"9be8"))}}]},{path:"user",name:"userIndex",component:function(){return t.e("chunk-1e630799").then(t.bind(null,"e378"))}},{path:"user/create",name:"baseInfo",component:function(){return t.e("chunk-416ef35e").then(t.bind(null,"99a4"))}},{path:"user/:id",name:"userInfo",component:function(){return t.e("chunk-416ef35e").then(t.bind(null,"99a4"))}},{path:"user/:id",name:"baseInfoId",component:function(){return t.e("chunk-416ef35e").then(t.bind(null,"99a4"))}},{path:"user/detail/:id",name:"userDetail",component:function(){return t.e("chunk-3bcf66f7").then(t.bind(null,"3d4e"))}},{path:"setting",component:function(){return t.e("chunk-d779deb8").then(t.bind(null,"2ccb"))},children:[{path:"",name:"settingIndex",component:function(){return t.e("chunk-71aaa888").then(t.bind(null,"0dd8"))}},{path:"third-party",name:"settingThirdParty",component:function(){return t.e("chunk-3337dd8f").then(t.bind(null,"091d"))}},{path:"third-party-custom",name:"settingThirdPartyCustom",component:function(){return t.e("chunk-b9b22232").then(t.bind(null,"08d8"))}},{path:"login",name:"settingLogin",component:function(){return t.e("chunk-22e40c8e").then(t.bind(null,"b49c"))}},{path:"nav",name:"settingNav",component:function(){return t.e("chunk-07e6273c").then(t.bind(null,"3c4d"))}},{path:"index/setting",name:"indexSetting",component:function(){return t.e("chunk-5b1f82de").then(t.bind(null,"732d"))}},{path:"screenWords",name:"settingScreenWords",component:function(){return t.e("chunk-775b8fab").then(t.bind(null,"bdf0"))}}]},{path:"account-info",name:"accountInfo",component:function(){return t.e("chunk-20afbe1d").then(t.bind(null,"3310"))}},{path:"personal/center",name:"personalCenter",component:function(){return Promise.all([t.e("chunk-bd264252"),t.e("chunk-f66a53c0")]).then(t.bind(null,"4cbb"))}},{path:"search",name:"searchResults",component:function(){return t.e("chunk-65eafec3").then(t.bind(null,"6d70"))}}]},{path:"",name:"layout",component:function(){return t.e("chunk-6a2c3c1a").then(t.bind(null,"ed3a"))},children:[{path:"/chapter/:id",name:"viewHome",component:function(){return t.e("chunk-211c6b12").then(t.bind(null,"7abe"))}},{path:"/home",name:"home",component:function(){return t.e("chunk-b09d1c24").then(t.bind(null,"77b8"))}},{path:"/home/search",name:"homeSearch",component:function(){return t.e("chunk-457e440b").then(t.bind(null,"5ff8"))}}]}],scrollBehavior:function(n){return n.hash?{selector:n.hash}:{x:0,y:0}}});e["a"]=r},"4ec3":function(n,e,t){"use strict";t.d(e,"d",(function(){return c})),t.d(e,"c",(function(){return u})),t.d(e,"m",(function(){return r})),t.d(e,"w",(function(){return o})),t.d(e,"D",(function(){return d})),t.d(e,"i",(function(){return i})),t.d(e,"h",(function(){return h})),t.d(e,"u",(function(){return f})),t.d(e,"v",(function(){return l})),t.d(e,"y",(function(){return s})),t.d(e,"s",(function(){return b})),t.d(e,"t",(function(){return m})),t.d(e,"o",(function(){return p})),t.d(e,"n",(function(){return k})),t.d(e,"j",(function(){return g})),t.d(e,"e",(function(){return v})),t.d(e,"z",(function(){return y})),t.d(e,"b",(function(){return O})),t.d(e,"a",(function(){return j})),t.d(e,"A",(function(){return P})),t.d(e,"B",(function(){return w})),t.d(e,"C",(function(){return I})),t.d(e,"r",(function(){return U})),t.d(e,"x",(function(){return S})),t.d(e,"k",(function(){return _})),t.d(e,"g",(function(){return L})),t.d(e,"l",(function(){return M})),t.d(e,"p",(function(){return x})),t.d(e,"f",(function(){return T})),t.d(e,"q",(function(){return A}));var a=t("1c1e"),c=function(n){return Object(a["a"])({url:"/admin/document/create",data:n,method:"post"})},u=function(n){return Object(a["a"])({url:"/admin/chapter/create",data:n,method:"post"})},r=function(n){return Object(a["a"])({url:"/admin/document/chapterapi/getApiLabel",params:n,method:"get"})},o=function(n){return Object(a["a"])({url:"/admin/chapter/save",data:n,method:"post"})},d=function(n){return Object(a["a"])({url:"/admin/chapter/content",data:n,method:"post"})},i=function(n){return Object(a["a"])({url:"/admin/document/all",data:n,method:"post"})},h=function(n){return Object(a["a"])({url:"/admin/chapter/detail",data:n,method:"post"})},f=function(n){return Object(a["a"])({url:"/common/auth/getlogouturl",params:n,method:"get"})},l=function(n){return Object(a["a"])({url:"/document/chapter/record",data:n,method:"post"})},s=function(n){return Object(a["a"])({url:"/install/systemDetection",data:n,method:"post"})},b=function(n){return Object(a["a"])({url:"/install/install",data:n,method:"post"})},m=function(n){return Object(a["a"])({url:"/install/config",data:n,method:"post"})},p=function(n){return Object(a["a"])({url:"/admin/user/all",data:n,method:"post"})},k=function(n){return Object(a["a"])({url:"/document/chapter/search",data:n,method:"post"})},g=function(n){return Object(a["a"])({url:"/document/detail",data:n,method:"post"})},v=function(n){return Object(a["a"])({url:"/admin/document/delete",data:n,method:"post"})},y=function(n){return Object(a["a"])({url:"/common/auth/third-party-login-bind",data:n,method:"post"})},O=function(n){return Object(a["a"])({url:"/common/auth/changeThirdPartyUser",data:n,method:"post"})},j=function(n){return Object(a["a"])({url:"/common/auth/bindThirdPartyUser",data:n,method:"post"})},P=function(n){return Object(a["a"])({url:"/common/auth/ThirdPartyUserCacheIn",data:n,method:"post"})},w=function(n){return Object(a["a"])({url:"https://api.w7.cc/oauth/authorize/try-sync-login",data:n,method:"post"})},I=function(n){return Object(a["a"])({url:"/common/auth/unbind",data:n,method:"post"})},U=function(n){return Object(a["a"])({url:"/admin/chapter/import ",data:n,method:"post"})},S=function(n){return Object(a["a"])({url:"/admin/document/chapterapi/setApiData",data:n,method:"post"})},_=function(n){return Object(a["a"])({url:"/admin/document/new-feedback",data:n,method:"post"})},L=function(n){return Object(a["a"])({url:"/admin/setting/save",data:n,method:"post"})},M=function(n){return Object(a["a"])({url:"/admin/setting/config",params:n,method:"get"})},x=function(n){return Object(a["a"])({url:"/user/info",params:n,method:"get"})},T=function(n){return Object(a["a"])({url:"/user/update",data:n,method:"post"})},A=function(n){return Object(a["a"])({url:"/user/operate",params:n,method:"get"})}},"56d7":function(n,e,t){"use strict";t.r(e);t("7f7f"),t("cadf"),t("551c"),t("f751"),t("097d");var a=t("2b0e"),c=function(){var n=this,e=n.$createElement,t=n._self._c||e;return t("div",{attrs:{id:"app"}},[t("router-view")],1)},u=[],r=(t("5c0b"),t("2877")),o={},d=Object(r["a"])(o,c,u,!1,null,null,null),i=d.exports,h=t("41cb"),f=(t("ac6a"),t("456d"),t("2f62")),l=t("bc3a"),s=t.n(l),b=t("4ec3");a["default"].use(f["a"]);var m=new f["a"].Store({state:{UserInfo:{},NavMenu:{},isSave:!0,saveDialogVisible:!1,allProjectListQuery:{page:1,page_size:15,role:"all"},userOperateListQuery:{user_id:0,page:1,page_size:15},allProjectData:"",personInfo:"",userOperateData:""},getters:{UserInfo:function(n){return n.UserInfo},NavMenu:function(n){return n.NavMenu}},mutations:{setUserInfo:function(n,e){n.UserInfo=e},setNavMenu:function(n,e){n.NavMenu=e},setAllProjectData:function(n,e){n.allProjectData=e},setPersonInfo:function(n,e){n.personInfo=e},setUserOperateData:function(n,e){n.userOperateData=e},setUserOperateListQuery:function(n,e){Object.keys(e).map((function(t){n.userOperateListQuery[t]=e[t]}))}},actions:{getUserInfo:function(n){return new Promise((function(e,t){s.a.post("/common/auth/user").then((function(t){"444"==t.data.code?n.commit("setUserInfo",{has_privilege:"",username:""}):(n.commit("setUserInfo",t.data.data),n.commit("setUserOperateListQuery",{user_id:t.data.data.id}),n.dispatch("getPersonInfo"),n.dispatch("getUserOperate"),e(t.data.data))})).catch((function(n){t(n)}))}))},getNavMenu:function(n){s.a.post("/menu/setting").then((function(e){"444"==e.data.code?n.commit("setNavMenu",{theme:"",list:[]}):n.commit("setNavMenu",e.data.data)}))},getAllProject:function(n){var e=n.commit,t=n.state;Object(b["i"])(t.allProjectListQuery).then((function(n){200===n.code&&e("setAllProjectData",n.data)})).catch((function(n){}))},getPersonInfo:function(n){var e=n.commit,t=n.state;Object(b["p"])({username:t.UserInfo.username}).then((function(n){e("setPersonInfo",n.data)})).catch((function(n){}))},getUserOperate:function(n){var e=n.commit,t=n.state;Object(b["q"])(t.userOperateListQuery).then((function(n){200===n.code&&e("setUserOperateData",n.data)}))}}}),p=t("1c1e"),k=t("5c96"),g=t.n(k),v=t("b2d8"),y=t.n(v),O=t("4eb5"),j=t.n(O),P=(t("0fae"),t("64e1"),t("e9ff"),t("1157"),t("1487")),w=t.n(P);t("85e4");a["default"].directive("highlight",{inserted:function(n){for(var e=n.querySelectorAll("pre code"),t=0;tw;w++)if((f||w in y)&&(m=y[w],g=_(m,w,v),e))if(r)C[w]=g;else if(g)switch(e){case 3:return!0;case 5:return m;case 6:return w;case 2:C.push(m)}else if(u)return!1;return d?-1:c||u?u:C}}},1169:function(e,t,r){var n=r("2d95");e.exports=Array.isArray||function(e){return"Array"==n(e)}},1962:function(e,t,r){"use strict";r.r(t);var n=function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-container",{staticClass:"w7-document-chapter"},[n("el-aside",{staticClass:"w7-aside-chapter",attrs:{width:"260px"}},[n("div",{staticClass:"w7-aside-chapter-head"},[n("p",[e._v(e._s(e.docName))])]),n("div",{staticClass:"search-box"},[n("el-input",{attrs:{placeholder:"请输入关键字搜索",clearable:""},model:{value:e.filterText,callback:function(t){e.filterText=t},expression:"filterText"}},[n("i",{staticClass:"el-input__icon el-icon-search",attrs:{slot:"suffix"},slot:"suffix"})])],1),n("div",{staticClass:"icon-box"},[n("el-tooltip",{attrs:{effect:"dark",content:"新建文档",placement:"bottom"}},[n("i",{staticClass:"wq wq-mulu",on:{click:function(t){return e.clickIconAddNode(!1)}}})]),n("el-tooltip",{attrs:{effect:"dark",content:"新建目录",placement:"bottom"}},[n("i",{staticClass:"wq wq-wendang",on:{click:function(t){return e.clickIconAddNode(!0)}}})]),n("el-tooltip",{attrs:{effect:"dark",content:"预览",placement:"bottom"}},[n("i",{staticClass:"wq wq-chakan",on:{click:e.readDoc}})]),e.has_manage?n("el-tooltip",{attrs:{effect:"dark",content:"设置",placement:"bottom"}},[n("i",{staticClass:"wq wq-shezhi1",on:{click:function(t){e.showSetting=!0}}})]):e._e()],1),n("div",{staticClass:"tree-warpper"},[n("el-scrollbar",{staticStyle:{height:"100%"}},[n("el-tree",{ref:"chaptersTree",staticClass:"w7-tree",attrs:{data:e.chapters,props:e.defaultProps,"empty-text":"点击上方按钮创建","node-key":"id","expand-on-click-node":!0,"highlight-current":!0,"default-expanded-keys":e.defaultExpanded,"default-checked-keys":e.defaultCheckedKeys,"filter-node-method":e.filterNode,draggable:"","allow-drop":e.allowDrop},on:{"node-contextmenu":e.rightClick,"node-click":e.handleNodeClick,"node-drop":e.handleDrop},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.node,i=t.data;return n("div",{staticClass:"custom-tree-node"},[n("span",{staticClass:"node-info"},[1==i.is_dir?n("i",{staticClass:"wq wq-wendang"}):e._e(),0==i.is_dir?n("i",{staticClass:"wq wq-mulu"}):e._e(),n("div",{staticClass:"text-over"},[n("span",{attrs:{title:r.label}},[e._v(e._s(r.label))])])]),n("span",{staticClass:"shortcut",on:{click:function(t){return t.stopPropagation(),e.shortcut(i,r)}}},[1==i.is_dir?n("i",{staticClass:"wq wq-mulu"}):e._e()]),n("span",{staticClass:"point3",on:{mousemove:e.updateXY,click:function(t){return t.stopPropagation(),e.leftClick(i,r)}}},[n("span",[e._v("...")])]),i.is_default?n("div",{staticClass:"doc-default"}):e._e()])}}])}),n("div",{directives:[{name:"show",rawName:"v-show",value:e.menuBarVisible,expression:"menuBarVisible"}],staticClass:"menu-bar",attrs:{id:"menu-bar"}},[n("ul",{staticClass:"menu"},[1==e.rightSelectNodeObj.is_dir?[n("li",{staticClass:"menu__item",on:{click:function(t){return e.addChildNode(!0)}}},[e._v("创建目录")]),n("li",{staticClass:"menu__item",on:{click:function(t){return e.addChildNode(!1)}}},[e._v("\n 创建文档\n ")]),n("li",{staticClass:"menu__item",on:{click:function(t){return e.updateNode(!0)}}},[e._v("重命名")]),n("li",{staticClass:"menu__item",on:{click:function(t){return e.openMoveDialog(!0)}}},[e._v("移动")]),n("li",{staticClass:"menu__item",on:{click:e.removeNode}},[e._v("删除")])]:e._e(),0==e.rightSelectNodeObj.is_dir?[n("li",{staticClass:"menu__item",on:{click:function(t){return e.updateNode(!1)}}},[e._v("重命名")]),n("li",{staticClass:"menu__item",on:{click:function(t){return e.copyNode()}}},[e._v("复制文档")]),n("li",{staticClass:"menu__item",on:{click:function(t){return e.openMoveDialog(!1)}}},[e._v("移动")]),n("li",{staticClass:"menu__item",on:{click:e.removeNode}},[e._v("删除")])]:e._e()],2)])],1)],1)]),n("el-main",{},[e.isDocEmpty?n("div",[e._v("尚未创建文档")]):[n("div",{staticClass:"chapter-title"},[e._v(e._s(e.docTitle))]),1==e.layout?n("div",{staticClass:"api"},[n("el-form",{ref:"form",attrs:{model:e.form,"label-width":"100"}},[n("div",{staticClass:"basic-information api-con"},[n("div",{staticClass:"top"},[n("div",{staticClass:"line-wrap"},[n("span",{staticClass:"line"}),n("span",{staticClass:"text"},[e._v("基本信息")])])]),n("div",{staticClass:"c-con"},[n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{md:4}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:""},model:{value:e.form.method,callback:function(t){e.$set(e.form,"method",t)},expression:"form.method"}},e._l(e.methodArr,(function(e){return n("el-option",{key:e.value,attrs:{label:e.label,value:e.value}})})),1)],1)],1),n("el-col",{attrs:{md:10}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请求地址,如:api/test"},on:{input:e.urlChange},model:{value:e.form.url,callback:function(t){e.$set(e.form,"url",t)},expression:"form.url"}})],1)],1)],1),n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{md:14}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"请在此输入接口描述内容"},model:{value:e.form.description,callback:function(t){e.$set(e.form,"description",t)},expression:"form.description"}})],1)],1)],1),n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{md:14}},[n("el-form-item",{staticClass:"mock-api",attrs:{label:"Mock Api地址"}},[n("el-tooltip",{staticClass:"item",attrs:{effect:"dark","popper-class":"mock-api-tip",content:"点击复制链接",placement:"top"}},[n("el-input",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.mockApiUrl,expression:"mockApiUrl",arg:"copy"},{name:"clipboard",rawName:"v-clipboard:success",value:e.onCopy,expression:"onCopy",arg:"success"}],attrs:{readonly:"",placeholder:""},model:{value:e.mockApiUrl,callback:function(t){e.mockApiUrl=t},expression:"mockApiUrl"}})],1)],1)],1)],1)],1)]),n("div",{staticClass:"api-con"},[n("div",{staticClass:"top"},[n("div",{staticClass:"line-wrap"},[n("span",{staticClass:"line"}),n("span",{staticClass:"text"},[e._v("请求数据")]),n("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"导入键值对",placement:"top"}},[n("img",{attrs:{src:r("7d1d")},on:{click:function(t){return e.showImportDialog("key_word")}}})])],1),n("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-view"},on:{click:e.viewRequestMock}},[e._v("预览")])],1),n("div",{staticClass:"c-con"},[n("el-tabs",{on:{"tab-click":e.tabRequest},model:{value:e.form.tab_location,callback:function(t){e.$set(e.form,"tab_location",t)},expression:"form.tab_location"}},[n("el-tab-pane",{key:"header",attrs:{label:"请求头Header",name:"1"}},[n("div",{staticClass:"tree-wrap"},[n("el-tree",{attrs:{data:e.apiHeaderTreeData,"node-key":"id","default-expand-all":"","expand-on-click-node":!1,"allow-drop":e.allowApiTreeDrop,draggable:""},on:{"node-drop":e.apiHeaderNodeDrop},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.node,i=t.data;return n("div",{staticClass:"custom-tree-node"},[n("el-row",{attrs:{gutter:10}},[n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"参数名",maxlength:"20"},on:{input:function(t){return e.paramNameChange(r,i)}},model:{value:i.name,callback:function(t){e.$set(i,"name",t)},expression:"data.name"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:""},on:{change:function(t){return e.typeChange(i)}},model:{value:i.type,callback:function(t){e.$set(i,"type",t)},expression:"data.type"}},e._l(e.paramsArr,(function(e){return n("el-option",{key:e.value,attrs:{label:e.type,value:e.value}})})),1)],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:"是否必填"},model:{value:i.enabled,callback:function(t){e.$set(i,"enabled",t)},expression:"data.enabled"}},[n("el-option",{attrs:{label:"true",value:2}}),n("el-option",{attrs:{label:"false",value:1}})],1)],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{staticClass:"rule-question",attrs:{label:""}},[n("el-input",{attrs:{placeholder:"生成规则"},model:{value:i.rule,callback:function(t){e.$set(i,"rule",t)},expression:"data.rule"}}),e.apiHeaderTreeData&&e.apiHeaderTreeData[0].id==i.id?n("i",{staticClass:"wq wq-wenhao rule-icon",on:{click:e.goMock}}):e._e()],1)],1),n("el-col",{attrs:{span:4}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{disabled:4==i.type,placeholder:"示例值"},model:{value:i.default_value,callback:function(t){e.$set(i,"default_value",t)},expression:"data.default_value"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"描述"},model:{value:i.description,callback:function(t){e.$set(i,"description",t)},expression:"data.description"}})],1)],1),n("span",{staticClass:"add",on:{click:function(){return e.addApiTreeNode(i)}}},[n("span",{staticClass:"iconfont wq-add"})]),n("span",{staticClass:"delete",on:{click:function(){return e.removeApiTreeNode(r,i)}}},[n("span",{staticClass:"iconfont wq-delete"})]),n("span",{staticClass:"delete",on:{click:function(){return e.insertAfter(r,i)}}})],1)],1)}}],null,!1,3457980663)})],1)]),n("el-tab-pane",{key:"params",attrs:{label:"Query Params",name:"2"}},[n("div",{staticClass:"tree-wrap"},[n("el-tree",{attrs:{data:e.apiParamsTreeData,"node-key":"id","default-expand-all":"","expand-on-click-node":!1,"allow-drop":e.allowApiTreeDrop,draggable:""},on:{"node-drop":e.apiParamsNodeDrop},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.node,i=t.data;return n("div",{staticClass:"custom-tree-node"},[n("el-row",{attrs:{gutter:5}},[n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"参数名",maxlength:"20"},on:{input:function(t){return e.paramNameChange(r,i)}},model:{value:i.name,callback:function(t){e.$set(i,"name",t)},expression:"data.name"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:""},on:{change:function(t){return e.typeChange(i)}},model:{value:i.type,callback:function(t){e.$set(i,"type",t)},expression:"data.type"}},e._l(e.paramsArr,(function(e){return n("el-option",{key:e.value,attrs:{label:e.type,value:e.value}})})),1)],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:"是否必填"},model:{value:i.enabled,callback:function(t){e.$set(i,"enabled",t)},expression:"data.enabled"}},[n("el-option",{attrs:{label:"true",value:2}}),n("el-option",{attrs:{label:"false",value:1}})],1)],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{staticClass:"rule-question",attrs:{label:""}},[n("el-input",{attrs:{placeholder:"生成规则"},model:{value:i.rule,callback:function(t){e.$set(i,"rule",t)},expression:"data.rule"}}),e.apiParamsTreeData&&e.apiParamsTreeData[0].id==i.id?n("i",{staticClass:"wq wq-wenhao rule-icon",on:{click:e.goMock}}):e._e()],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{disabled:4==i.type,placeholder:"示例值"},model:{value:i.default_value,callback:function(t){e.$set(i,"default_value",t)},expression:"data.default_value"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"描述"},model:{value:i.description,callback:function(t){e.$set(i,"description",t)},expression:"data.description"}})],1)],1),n("span",{staticClass:"add",on:{click:function(){return e.addApiTreeNode(i)}}},[n("span",{staticClass:"iconfont wq-add"})]),n("span",{staticClass:"delete",on:{click:function(){return e.removeApiTreeNode(r,i)}}},[n("span",{staticClass:"iconfont wq-delete"})]),n("span",{staticClass:"delete",on:{click:function(){return e.insertAfter(r,i)}}})],1)],1)}}],null,!1,4034622116)})],1)]),n("el-tab-pane",{key:"body",attrs:{label:"请求参数(Body)",name:"3"}},[n("div",{staticClass:"type-body"},[n("el-form-item",{attrs:{label:"请求类型:"}},[n("el-radio-group",{model:{value:e.form.body_param_location,callback:function(t){e.$set(e.form,"body_param_location",t)},expression:"form.body_param_location"}},[n("el-radio",{attrs:{label:3}},[e._v("form-data")]),n("el-radio",{attrs:{label:4}},[e._v("x-www-form-urlencoded")]),n("el-radio",{attrs:{label:5}},[e._v("raw")]),n("el-radio",{attrs:{label:6}},[e._v("binary")])],1)],1),n("div",{staticClass:"tree-wrap"},[n("el-tree",{attrs:{data:e.apiBodyTreeData,"node-key":"id","default-expand-all":"","expand-on-click-node":!1,"allow-drop":e.allowApiTreeDrop,draggable:""},on:{"node-drop":e.apiBodyNodeDrop},scopedSlots:e._u([{key:"default",fn:function(t){var r=t.node,i=t.data;return n("div",{staticClass:"custom-tree-node"},[n("el-row",{attrs:{gutter:5}},[n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"参数名",maxlength:"20"},on:{input:function(t){return e.paramNameChange(r,i)}},model:{value:i.name,callback:function(t){e.$set(i,"name",t)},expression:"data.name"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:""},on:{change:function(t){return e.typeChange(i)}},model:{value:i.type,callback:function(t){e.$set(i,"type",t)},expression:"data.type"}},e._l(e.paramsArr,(function(e){return n("el-option",{key:e.value,attrs:{label:e.type,value:e.value}})})),1)],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:"是否必填"},model:{value:i.enabled,callback:function(t){e.$set(i,"enabled",t)},expression:"data.enabled"}},[n("el-option",{attrs:{label:"true",value:2}}),n("el-option",{attrs:{label:"false",value:1}})],1)],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{staticClass:"rule-question",attrs:{label:""}},[n("el-input",{attrs:{placeholder:"生成规则"},model:{value:i.rule,callback:function(t){e.$set(i,"rule",t)},expression:"data.rule"}}),e.apiBodyTreeData&&e.apiBodyTreeData[0].id==i.id?n("i",{staticClass:"wq wq-wenhao rule-icon",on:{click:e.goMock}}):e._e()],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{disabled:4==i.type,placeholder:"示例值"},model:{value:i.default_value,callback:function(t){e.$set(i,"default_value",t)},expression:"data.default_value"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"描述"},model:{value:i.description,callback:function(t){e.$set(i,"description",t)},expression:"data.description"}})],1)],1),n("span",{staticClass:"add",on:{click:function(){return e.addApiTreeNode(i)}}},[n("span",{staticClass:"iconfont wq-add"})]),n("span",{staticClass:"delete",on:{click:function(){return e.removeApiTreeNode(r,i)}}},[n("span",{staticClass:"iconfont wq-delete"})]),n("span",{staticClass:"delete",on:{click:function(){return e.insertAfter(r,i)}}})],1)],1)}}],null,!1,1908562212)})],1)],1)])],1)],1),e.isViewRequest?n("div",{staticClass:"c-bottom"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("div",{staticClass:"mock"},[n("div",{staticClass:"m-tit"},[e._v("请求模板")]),n("div",{staticClass:"m-con",style:{height:e.requestMockHeight+"px"}},[n("pre",{directives:[{name:"highlight",rawName:"v-highlight"}],ref:"requestMockLeftHeight"},[n("code",{domProps:{innerHTML:e._s(e.requestMockTemplate)}})])])])]),n("el-col",{attrs:{span:12}},[n("div",{staticClass:"mock"},[n("div",{staticClass:"m-tit"},[e._v("\n 请求数据\n "),n("i",{staticClass:"el-icon-refresh",on:{click:e.refreshRequestMock}})]),n("div",{staticClass:"m-con",style:{height:e.requestMockHeight+"px"}},[n("pre",{directives:[{name:"highlight",rawName:"v-highlight"}],ref:"requestMockRightHeight"},[n("code",{domProps:{innerHTML:e._s(e.requestMockJson)}})])])])])],1)],1):e._e()]),n("div",{staticClass:"api-con response-api"},[n("div",{staticClass:"top"},[n("div",{staticClass:"line-wrap"},[n("span",{staticClass:"line"}),n("span",{staticClass:"text"},[e._v("响应数据")]),n("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"导入JSON",placement:"top"}},[n("img",{attrs:{src:r("7d1d")},on:{click:function(t){return e.showImportDialog("json")}}})]),n("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"添加数据",placement:"top"}},[n("img",{attrs:{src:r("1a0b")},on:{click:e.addResNode}})])],1),e._e(),n("el-button",{attrs:{type:"primary",size:"mini",icon:"el-icon-view"},on:{click:e.viewResponseMock}},[e._v("预览")])],1),e._l(e.apiResTreeData,(function(t,r){return n("div",{key:r,staticClass:"c-con"},[n("el-row",{attrs:{gutter:5}},[n("el-col",{attrs:{span:15}},[n("div",{staticStyle:{"padding-left":"24px"}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{staticStyle:{width:"calc(100% + 5px)"},attrs:{placeholder:"响应数据描述"},model:{value:t.description,callback:function(r){e.$set(t,"description",r)},expression:"item.description"}})],1)],1)]),n("el-col",{attrs:{span:9}},[n("div",{staticStyle:{"text-align":"right"}},[n("el-button",{attrs:{type:"danger",size:"mini"},on:{click:function(t){return e.deleteApiItem(r)}}},[e._v("删除")])],1)])],1),n("el-tree",{attrs:{data:t.data,"node-key":"id","default-expand-all":"","expand-on-click-node":!1,"allow-drop":e.allowApiTreeDrop,draggable:""},on:{"node-drop":e.apiResNodeDrop},scopedSlots:e._u([{key:"default",fn:function(i){var o=i.node,a=i.data;return n("div",{staticClass:"custom-tree-node"},[n("el-row",{attrs:{gutter:5}},[n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"参数名",maxlength:"20"},on:{input:function(t){return e.resParamNameChange(o,a)}},model:{value:a.name,callback:function(t){e.$set(a,"name",t)},expression:"data.name"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-select",{attrs:{placeholder:""},on:{change:function(t){return e.typeChange(a)}},model:{value:a.type,callback:function(t){e.$set(a,"type",t)},expression:"data.type"}},e._l(e.paramsArr,(function(e){return n("el-option",{key:e.value,attrs:{label:e.type,value:e.value}})})),1)],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{staticClass:"rule-question",attrs:{label:""}},[n("el-input",{attrs:{placeholder:"生成规则"},model:{value:a.rule,callback:function(t){e.$set(a,"rule",t)},expression:"data.rule"}}),t.data[0].id==a.id?n("i",{staticClass:"wq wq-wenhao rule-icon",on:{click:e.goMock}}):e._e()],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{disabled:4==a.type,placeholder:"示例值"},model:{value:a.default_value,callback:function(t){e.$set(a,"default_value",t)},expression:"data.default_value"}})],1)],1),n("el-col",{attrs:{span:3}},[n("el-form-item",{attrs:{label:""}},[n("el-input",{attrs:{placeholder:"描述"},model:{value:a.description,callback:function(t){e.$set(a,"description",t)},expression:"data.description"}})],1)],1),n("span",{staticClass:"add",on:{click:function(){return e.addResApiTreeNode(a)}}},[n("span",{staticClass:"iconfont wq-add"})]),n("span",{staticClass:"delete",on:{click:function(){return e.removeResApiTreeNode(o,a,r)}}},[n("span",{staticClass:"iconfont wq-delete"})]),n("span",{staticClass:"delete",on:{click:function(){return e.insertAfter(o,a)}}})],1)],1)}}],null,!0)})],1)})),e.isViewResponse?n("div",{staticClass:"c-bottom"},[n("el-row",{attrs:{gutter:20}},[n("el-col",{attrs:{span:12}},[n("div",{staticClass:"mock"},[n("div",{staticClass:"m-tit"},[e._v("响应模板")]),n("div",{staticClass:"m-con",style:{height:e.responseMockHeight+"px"}},[n("div",{ref:"responseMockLeftHeight"},e._l(e.responseMockTemplate,(function(t,r){return n("div",{key:r,style:{"margin-top":r>0?"30px":""}},[n("div",{staticStyle:{"margin-bottom":"10px","font-size":"12px"}},[e._v("\n 响应"+e._s(e.apiResTreeData[r].description)+":\n ")]),n("pre",{directives:[{name:"highlight",rawName:"v-highlight"}]},[n("code",{domProps:{innerHTML:e._s(t)}})])])})),0)])])]),n("el-col",{attrs:{span:12}},[n("div",{staticClass:"mock"},[n("div",{staticClass:"m-tit"},[e._v("\n 响应数据\n "),n("i",{staticClass:"el-icon-refresh",on:{click:e.refreshResponseMock}})]),n("div",{staticClass:"m-con",style:{height:e.responseMockHeight+"px"}},[n("div",{ref:"responseMockRightHeight"},e._l(e.responseMockJson,(function(t,r){return n("div",{key:r,style:{"margin-top":r>0?"30px":""}},[n("div",{staticStyle:{"margin-bottom":"10px","font-size":"12px"}},[e._v("\n 响应"+e._s(e.apiResTreeData[r].description)+":\n ")]),n("pre",{directives:[{name:"highlight",rawName:"v-highlight"}]},[n("code",{domProps:{innerHTML:e._s(t)}})])])})),0)])])])],1)],1):e._e()],2)])],1):e._e(),n("editors",{attrs:{markDownContent:e.markDownContent,chapter_id:e.chapter_id,chapterIsDir:e.selectNodeObj.is_dir},model:{value:e.markDownContent,callback:function(t){e.markDownContent=t},expression:"markDownContent"}}),n("el-button",{attrs:{type:"primary"},on:{click:e.saveApi}},[e._v("保存")])]],2),n("el-dialog",{staticClass:"we7-dialog only-input-dialog",attrs:{title:e.dialogTitle,visible:e.dialogVisible,"close-on-click-modal":!1,center:""},on:{"update:visible":function(t){e.dialogVisible=t}}},[n("el-form",{attrs:{model:e.addNodeObj,"label-width":"105px","label-position":"left"},nativeOn:{submit:function(e){e.preventDefault()}}},[n("el-form-item",{attrs:{label:e.dialogFormLabel}},[n("el-input",{nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.confirmBtn(t)}},model:{value:e.addNodeObj.name,callback:function(t){e.$set(e.addNodeObj,"name",t)},expression:"addNodeObj.name"}})],1),1!=e.addNodeObj.is_dir?n("el-form-item",{attrs:{label:"文档类型"}},[n("el-radio-group",{model:{value:e.addNodeObj.layout,callback:function(t){e.$set(e.addNodeObj,"layout",t)},expression:"addNodeObj.layout"}},[n("el-radio",{attrs:{label:0}},[e._v("普通文档")]),n("el-radio",{attrs:{label:1}},[e._v("API文档")])],1)],1):e._e()],1),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",disabled:e.confirmDisabled},on:{click:e.confirmBtn}},[e._v("确 定")]),n("el-button",{on:{click:function(t){e.dialogVisible=!1}}},[e._v("取 消")])],1)],1),n("el-dialog",{staticClass:"we7-dialog",attrs:{title:e.dialogMoveTitle,visible:e.dialogMoveVisible,"close-on-click-modal":!1,center:""},on:{"update:visible":function(t){e.dialogMoveVisible=t}}},[n("el-form",{attrs:{"label-width":"105px","label-position":"left"}},[n("el-form-item",{attrs:{label:"项目"}},[n("el-select",{attrs:{placeholder:"请输入文档名称进行搜索",filterable:"",remote:"","reserve-keyword":"","remote-method":e.remoteMethod},on:{change:e.changeDoc},model:{value:e.moveDoc,callback:function(t){e.moveDoc=t},expression:"moveDoc"}},e._l(e.docList,(function(e){return n("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1),n("el-form-item",{attrs:{label:"分类"}},[n("el-cascader",{attrs:{options:e.docChapters,props:{value:"id",label:"name"},clearable:!0,"change-on-select":!0},model:{value:e.moveClass,callback:function(t){e.moveClass=t},expression:"moveClass"}})],1)],1),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary"},on:{click:e.moveNode}},[e._v("确 定")]),n("el-button",{on:{click:function(t){e.dialogMoveVisible=!1}}},[e._v("取 消")])],1)],1),n("el-dialog",{staticClass:"we7-dialog only-input-dialog",attrs:{title:"复制章节",visible:e.dialogVisibleCopy,"close-on-click-modal":!1,center:""},on:{"update:visible":function(t){e.dialogVisibleCopy=t}}},[n("el-form",{attrs:{"label-width":"105px","label-position":"left"},nativeOn:{submit:function(e){e.preventDefault()}}},[n("el-form-item",{attrs:{label:"文档名称"}},[n("el-input",{nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.confirmBtnCopy(t)}},model:{value:e.copyNodeName,callback:function(t){e.copyNodeName=t},expression:"copyNodeName"}})],1)],1),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{type:"primary",disabled:e.confirmCopyDisabled},on:{click:e.confirmBtnCopy}},[e._v("确 定")]),n("el-button",{on:{click:function(t){e.dialogVisibleCopy=!1}}},[e._v("取 消")])],1)],1),n("el-dialog",{staticClass:"we7-dialog dialog-setting",attrs:{title:"项目设置",width:"1000px",visible:e.showSetting,"close-on-click-modal":!1,"before-close":e.handleClose},on:{"update:visible":function(t){e.showSetting=t}}},[n("setting",{attrs:{id:e.$route.params.id}})],1),n("el-dialog",{attrs:{title:e.importDialogTitle,visible:e.importDialogVisible,width:"700px",center:""},on:{"update:visible":function(t){e.importDialogVisible=t}}},[n("codemirror",{attrs:{options:e.cmOptions},model:{value:e.importQuery.data,callback:function(t){e.$set(e.importQuery,"data",t)},expression:"importQuery.data"}}),n("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{on:{click:function(t){e.importDialogVisible=!1}}},[e._v("取 消")]),n("el-button",{attrs:{type:"primary",disabled:e.importDisabled},on:{click:e.importSubmit}},[e._v("确 定")])],1)],1)],1)},i=[],o=r("5aed"),a=o["a"],s=(r("47ae"),r("3d54"),r("2877")),l=Object(s["a"])(a,n,i,!1,null,"8863de70",null);t["default"]=l.exports},"1a0b":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB40lEQVQ4jZVTTWsTURR9mDa4SCSVpp0hDbhIYprJH3DjQvAfOOCmcSYzc86bmQQmK1FQZuuqmdIwq26ELMxeurMIfm38IOCi+mOuC20NIVTz4G3OOdx37z3nKc/zbpK8C+ANgDmArwBeJI5TGfjuvQjOWy7gYRhukbxP8jWAp4rkc5JNkk3f9/cBtLXWNdu2C/1+vxwHvVa0hA+Hwxske0EQnCmSXwC01ZoniiKD5BMF4GcQBNZK1UwKaiaFVVSapteSJKkokmckm8sCaybFeibdei5daybFZT5JkgrJByqO45bjONeXBdWJlIwjcYwjcaoTKS3zYRjeJvlRaX2wk6bpxuLL2ydS3sulZo5lZI5ltJdLbftEyoudkOwAOFex35tq7dz6PZhs1DPpGpm45lhGZiZTM5OpOZaRkYm7m0v3YicA2gA+qzBwv9N1O5cF8v8r4Pv+LsnHisA5yc66I9i2XbjShepESsahOMbh6iX+0wVrJkXjWCzjWKxVNi64oHds214ZlquCRLJD8oci+WowGKwd5TiOWwA+KZIfADwjeSeKon3f9y+v53kNAJsANj3Pa1zgcRy3oihqAHiktNYPAbwk+Y7ktz9feg5wTuBU615Na10jefqXw3ut9UEYhlu/AJuVGFDjKKxXAAAAAElFTkSuQmCC"},"1c4c":function(e,t,r){"use strict";var n=r("9b43"),i=r("5ca1"),o=r("4bf8"),a=r("1fa8"),s=r("33a4"),l=r("9def"),c=r("f1ae"),u=r("27ee");i(i.S+i.F*!r("5cc5")((function(e){Array.from(e)})),"Array",{from:function(e){var t,r,i,d,f=o(e),h="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:void 0,g=void 0!==m,v=0,y=u(f);if(g&&(m=n(m,p>2?arguments[2]:void 0,2)),void 0==y||h==Array&&s(y))for(t=l(f.length),r=new h(t);t>v;v++)c(r,v,g?m(f[v],v):f[v]);else for(d=y.call(f),r=new h;!(i=d.next()).done;v++)c(r,v,g?a(d,m,[i.value,v],!0):i.value);return r.length=v,r}})},"20d6":function(e,t,r){"use strict";var n=r("5ca1"),i=r("0a49")(6),o="findIndex",a=!0;o in[]&&Array(1)[o]((function(){a=!1})),n(n.P+n.F*a,"Array",{findIndex:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),r("9c6c")(o)},"37c8":function(e,t,r){t.f=r("2b4c")},"3a72":function(e,t,r){var n=r("7726"),i=r("8378"),o=r("2d00"),a=r("37c8"),s=r("86cc").f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},"3d54":function(e,t,r){"use strict";r("ce4d")},4238:function(e,t,r){"use strict";r("7af4")},"47ae":function(e,t,r){"use strict";r("a9f2")},"56b3":function(e,t,r){(function(t,r){e.exports=r()})(0,(function(){"use strict";var e=navigator.userAgent,t=navigator.platform,r=/gecko\/\d/i.test(e),n=/MSIE \d/.test(e),i=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(e),o=/Edge\/(\d+)/.exec(e),a=n||i||o,s=a&&(n?document.documentMode||6:+(o||i)[1]),l=!o&&/WebKit\//.test(e),c=l&&/Qt\/\d+\.\d+/.test(e),u=!o&&/Chrome\//.test(e),d=/Opera\//.test(e),f=/Apple Computer/.test(navigator.vendor),h=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(e),p=/PhantomJS/.test(e),m=!o&&/AppleWebKit/.test(e)&&/Mobile\/\w+/.test(e),g=/Android/.test(e),v=m||g||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=m||/Mac/.test(t),_=/\bCrOS\b/.test(e),b=/win/i.test(t),w=d&&e.match(/Version\/(\d*\.\d*)/);w&&(w=Number(w[1])),w&&w>=15&&(d=!1,l=!0);var C=y&&(c||d&&(null==w||w<12.11)),x=r||a&&s>=9;function k(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}var T,S=function(e,t){var r=e.className,n=k(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}};function O(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function D(e,t){return O(e).appendChild(t)}function M(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o=t)return a+(t-o);a+=s-o,a+=r-a%r,o=s+1}}m?R=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:a&&(R=function(e){try{e.select()}catch(t){}});var j=function(){this.id=null,this.f=null,this.time=0,this.handler=I(this.onTimeout,this)};function H(e,t){for(var r=0;r=t)return n+Math.min(a,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}var J=[""];function V(e){while(J.length<=e)J.push(G(J)+" ");return J[e]}function G(e){return e[e.length-1]}function X(e,t){for(var r=[],n=0;n"€"&&(e.toUpperCase()!=e.toLowerCase()||ee.test(e))}function re(e,t){return t?!!(t.source.indexOf("\\w")>-1&&te(e))||t.test(e):te(e)}function ne(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ie=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function oe(e){return e.charCodeAt(0)>=768&&ie.test(e)}function ae(e,t,r){while((r<0?t>0:tr?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function le(e,t,r,n){if(!e)return n(t,r,"ltr",0);for(var i=!1,o=0;ot||t==r&&a.to==t)&&(n(Math.max(a.from,t),Math.min(a.to,r),1==a.level?"rtl":"ltr",o),i=!0)}i||n(t,r,"ltr")}var ce=null;function ue(e,t,r){var n;ce=null;for(var i=0;it)return i;o.to==t&&(o.from!=o.to&&"before"==r?n=i:ce=i),o.from==t&&(o.from!=o.to&&"before"!=r?n=i:ce=i)}return null!=n?n:ce}var de=function(){var e="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",t="nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111";function r(r){return r<=247?e.charAt(r):1424<=r&&r<=1524?"R":1536<=r&&r<=1785?t.charAt(r-1536):1774<=r&&r<=2220?"r":8192<=r&&r<=8203?"w":8204==r?"b":"L"}var n=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,i=/[stwN]/,o=/[LRr]/,a=/[Lb1n]/,s=/[1n]/;function l(e,t,r){this.level=e,this.from=t,this.to=r}return function(e,t){var c="ltr"==t?"L":"R";if(0==e.length||"ltr"==t&&!n.test(e))return!1;for(var u=e.length,d=[],f=0;f-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function ve(e,t){var r=me(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i0}function we(e){e.prototype.on=function(e,t){pe(this,e,t)},e.prototype.off=function(e,t){ge(this,e,t)}}function Ce(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function xe(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ke(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function Te(e){Ce(e),xe(e)}function Se(e){return e.target||e.srcElement}function Oe(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var De,Me,Ae=function(){if(a&&s<9)return!1;var e=M("div");return"draggable"in e||"dragDrop"in e}();function Ne(e){if(null==De){var t=M("span","​");D(e,M("span",[t,document.createTextNode("x")])),0!=e.firstChild.offsetHeight&&(De=t.offsetWidth<=1&&t.offsetHeight>2&&!(a&&s<8))}var r=De?M("span","​"):M("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function Ee(e){if(null!=Me)return Me;var t=D(e,document.createTextNode("AخA")),r=T(t,0,1).getBoundingClientRect(),n=T(t,1,2).getBoundingClientRect();return O(e),!(!r||r.left==r.right)&&(Me=n.right-r.right<3)}var Le=3!="\n\nb".split(/\n/).length?function(e){var t=0,r=[],n=e.length;while(t<=n){var i=e.indexOf("\n",t);-1==i&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),a=o.indexOf("\r");-1!=a?(r.push(o.slice(0,a)),t+=a+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},Pe=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(r){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},Re=function(){var e=M("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Ie=null;function We(e){if(null!=Ie)return Ie;var t=D(e,M("span","x")),r=t.getBoundingClientRect(),n=T(t,0,1).getBoundingClientRect();return Ie=Math.abs(r.left-n.left)>1}var Be={},je={};function He(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),Be[e]=t}function Fe(e,t){je[e]=t}function $e(e){if("string"==typeof e&&je.hasOwnProperty(e))e=je[e];else if(e&&"string"==typeof e.name&&je.hasOwnProperty(e.name)){var t=je[e.name];"string"==typeof t&&(t={name:t}),e=Z(t,e),e.name=t.name}else{if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+xml$/.test(e))return $e("application/xml");if("string"==typeof e&&/^[\w\-]+\/[\w\-]+\+json$/.test(e))return $e("application/json")}return"string"==typeof e?{name:e}:e||{name:"null"}}function Ue(e,t){t=$e(t);var r=Be[t.name];if(!r)return Ue(e,"text/plain");var n=r(e,t);if(qe.hasOwnProperty(t.name)){var i=qe[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n["_"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var a in t.modeProps)n[a]=t.modeProps[a];return n}var qe={};function ze(e,t){var r=qe.hasOwnProperty(e)?qe[e]:qe[e]={};W(t,r)}function Ke(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function Je(e,t){var r;while(e.innerMode){if(r=e.innerMode(t),!r||r.mode==e)break;t=r.state,e=r.mode}return r||{mode:e,state:t}}function Ve(e,t,r){return!e.startState||e.startState(t,r)}var Ge=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};function Xe(e,t){if(t-=e.first,t<0||t>=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");var r=e;while(!r.lines)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t=e.first&&tr?it(r,Xe(e,r).text.length):ft(t,Xe(e,t.line).text.length)}function ft(e,t){var r=e.ch;return null==r||r>t?it(e.line,t):r<0?it(e.line,0):e}function ht(e,t){for(var r=[],n=0;n=this.string.length},Ge.prototype.sol=function(){return this.pos==this.lineStart},Ge.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Ge.prototype.next=function(){if(this.post},Ge.prototype.eatSpace=function(){var e=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos)))++this.pos;return this.pos>e},Ge.prototype.skipToEnd=function(){this.pos=this.string.length},Ge.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Ge.prototype.backUp=function(e){this.pos-=e},Ge.prototype.column=function(){return this.lastColumnPos0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);if(i(o)==i(e))return!1!==t&&(this.pos+=e.length),!0},Ge.prototype.current=function(){return this.string.slice(this.start,this.pos)},Ge.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Ge.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Ge.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var pt=function(e,t){this.state=e,this.lookAhead=t},mt=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function gt(e,t,r,n){var i=[e.state.modeGen],o={};Tt(e,t.text,e.doc.mode,r,(function(e,t){return i.push(e,t)}),o,n);for(var a=r.state,s=function(n){r.baseTokens=i;var s=e.state.overlays[n],l=1,c=0;r.state=!0,Tt(e,t.text,s.mode,r,(function(e,t){var r=l;while(ce&&i.splice(l,1,e,i[l+1],n),l+=2,c=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,l-r,e,"overlay "+t),l=r+2;else for(;re.options.maxHighlightLength&&Ke(e.doc.mode,n.state),o=gt(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function yt(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new mt(n,!0,t);var o=St(e,t,r),a=o>n.first&&Xe(n,o-1).stateAfter,s=a?mt.fromSaved(n,a,o):new mt(n,Ve(n.mode),o);return n.iter(o,t,(function(r){_t(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&nt.start)return o}throw new Error("Mode "+e.name+" failed to advance stream.")}mt.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},mt.prototype.baseToken=function(e){if(!this.baseTokens)return null;while(this.baseTokens[this.baseTokenPos]<=e)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,""),size:this.baseTokens[this.baseTokenPos]-e}},mt.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},mt.fromSaved=function(e,t,r){return t instanceof pt?new mt(e,Ke(e.mode,t.state),r,t.lookAhead):new mt(e,Ke(e.mode,t),r)},mt.prototype.save=function(e){var t=!1!==e?Ke(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new pt(t,this.maxLookAhead):t};var Ct=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function xt(e,t,r,n){var i,o=e.doc,a=o.mode;t=dt(o,t);var s,l=Xe(o,t.line),c=yt(e,t.line,r),u=new Ge(l.text,e.options.tabSize,c);n&&(s=[]);while((n||u.pose.options.maxHighlightLength?(s=!1,a&&_t(e,t,n,d.pos),d.pos=t.length,l=null):l=kt(wt(r,d,n.state,f),o),f){var h=f[0].name;h&&(l="m-"+(l?h+" "+l:h))}if(!s||u!=l){while(ca;--s){if(s<=o.first)return o.first;var l=Xe(o,s-1),c=l.stateAfter;if(c&&(!r||s+(c instanceof pt?c.lookAhead:0)<=o.modeFrontier))return s;var u=B(l.text,null,e.options.tabSize);(null==i||n>u)&&(i=s-1,n=u)}return i}function Ot(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontierr;n--){var i=Xe(e,n).stateAfter;if(i&&(!(i instanceof pt)||n+i.lookAhead=t:o.to>t);(n||(n=[])).push(new Et(a,o.from,l?null:o.to))}}return n}function Wt(e,t,r){var n;if(e)for(var i=0;i=t:o.to>t);if(s||o.from==t&&"bookmark"==a.type&&(!r||o.marker.insertLeft)){var l=null==o.from||(a.inclusiveLeft?o.from<=t:o.from0&&s)for(var b=0;b0)){var u=[l,1],d=ot(c.from,s.from),f=ot(c.to,s.to);(d<0||!a.inclusiveLeft&&!d)&&u.push({from:c.from,to:s.from}),(f>0||!a.inclusiveRight&&!f)&&u.push({from:s.to,to:c.to}),i.splice.apply(i,u),l+=u.length-3}}return i}function Ft(e){var t=e.markedSpans;if(t){for(var r=0;rt)&&(!r||zt(r,o.marker)<0)&&(r=o.marker)}return r}function Xt(e,t,r,n,i){var o=Xe(e,t),a=Mt&&o.markedSpans;if(a)for(var s=0;s=0&&d<=0||u<=0&&d>=0)&&(u<=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ot(c.to,r)>=0:ot(c.to,r)>0)||u>=0&&(l.marker.inclusiveRight&&i.inclusiveLeft?ot(c.from,n)<=0:ot(c.from,n)<0)))return!0}}}function Yt(e){var t;while(t=Jt(e))e=t.find(-1,!0).line;return e}function Qt(e){var t;while(t=Vt(e))e=t.find(1,!0).line;return e}function Zt(e){var t,r;while(t=Vt(e))e=t.find(1,!0).line,(r||(r=[])).push(e);return r}function er(e,t){var r=Xe(e,t),n=Yt(r);return r==n?t:et(n)}function tr(e,t){if(t>e.lastLine())return t;var r,n=Xe(e,t);if(!rr(e,n))return t;while(r=Vt(n))n=r.find(1,!0).line;return et(n)+1}function rr(e,t){var r=Mt&&t.markedSpans;if(r)for(var n=void 0,i=0;it.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)}))}var sr=function(e,t,r){this.text=e,$t(this,t),this.height=r?r(this):1};function lr(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),Ft(e),$t(e,r);var i=n?n(e):1;i!=e.height&&Ze(e,i)}function cr(e){e.parent=null,Ft(e)}sr.prototype.lineNo=function(){return et(this)},we(sr);var ur={},dr={};function fr(e,t){if(!e||/^\s*$/.test(e))return null;var r=t.addModeClass?dr:ur;return r[e]||(r[e]=e.replace(/\S+/g,"cm-$&"))}function hr(e,t){var r=A("span",null,null,l?"padding-right: .1px":null),n={pre:A("pre",[r],"CodeMirror-line"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:e.getOption("lineWrapping")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,a=void 0;n.pos=0,n.addToken=mr,Ee(e.display.measure)&&(a=fe(o,e.doc.direction))&&(n.addToken=vr(n.addToken,a)),n.map=[];var s=t!=e.display.externalMeasured&&et(o);_r(o,n,vt(e,o,s)),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=P(o.styleClasses.bgClass,n.bgClass||"")),o.styleClasses.textClass&&(n.textClass=P(o.styleClasses.textClass,n.textClass||""))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(Ne(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(l){var c=n.content.lastChild;(/\bcm-tab\b/.test(c.className)||c.querySelector&&c.querySelector(".cm-tab"))&&(n.content.className="cm-tab-wrap-hack")}return ve(e,"renderLine",e,t.line,n.pre),n.pre.className&&(n.textClass=P(n.pre.className,n.textClass||"")),n}function pr(e){var t=M("span","•","cm-invalidchar");return t.title="\\u"+e.charCodeAt(0).toString(16),t.setAttribute("aria-label",t.title),t}function mr(e,t,r,n,i,o,l){if(t){var c,u=e.splitSpaces?gr(t,e.trailingSpace):t,d=e.cm.state.specialChars,f=!1;if(d.test(t)){c=document.createDocumentFragment();var h=0;while(1){d.lastIndex=h;var p=d.exec(t),m=p?p.index-h:t.length-h;if(m){var g=document.createTextNode(u.slice(h,h+m));a&&s<9?c.appendChild(M("span",[g])):c.appendChild(g),e.map.push(e.pos,e.pos+m,g),e.col+=m,e.pos+=m}if(!p)break;h+=m+1;var v=void 0;if("\t"==p[0]){var y=e.cm.options.tabSize,_=y-e.col%y;v=c.appendChild(M("span",V(_),"cm-tab")),v.setAttribute("role","presentation"),v.setAttribute("cm-text","\t"),e.col+=_}else"\r"==p[0]||"\n"==p[0]?(v=c.appendChild(M("span","\r"==p[0]?"␍":"␤","cm-invalidchar")),v.setAttribute("cm-text",p[0]),e.col+=1):(v=e.cm.options.specialCharPlaceholder(p[0]),v.setAttribute("cm-text",p[0]),a&&s<9?c.appendChild(M("span",[v])):c.appendChild(v),e.col+=1);e.map.push(e.pos,e.pos+1,v),e.pos++}}else e.col+=t.length,c=document.createTextNode(u),e.map.push(e.pos,e.pos+t.length,c),a&&s<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==u.charCodeAt(t.length-1),r||n||i||f||o||l){var b=r||"";n&&(b+=n),i&&(b+=i);var w=M("span",[c],b,o);if(l)for(var C in l)l.hasOwnProperty(C)&&"style"!=C&&"class"!=C&&w.setAttribute(C,l[C]);return e.content.appendChild(w)}e.content.appendChild(c)}}function gr(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n="",i=0;ic&&d.from<=c)break;if(d.to>=u)return e(r,n,i,o,a,s,l);e(r,n.slice(0,d.to-c),i,o,null,s,l),o=null,n=n.slice(d.to-c),c=d.to}}}function yr(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function _r(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var a,s,l,c,u,d,f,h=i.length,p=0,m=1,g="",v=0;;){if(v==p){l=c=u=s="",f=null,d=null,v=1/0;for(var y=[],_=void 0,b=0;bp||C.collapsed&&w.to==p&&w.from==p)){if(null!=w.to&&w.to!=p&&v>w.to&&(v=w.to,c=""),C.className&&(l+=" "+C.className),C.css&&(s=(s?s+";":"")+C.css),C.startStyle&&w.from==p&&(u+=" "+C.startStyle),C.endStyle&&w.to==v&&(_||(_=[])).push(C.endStyle,w.to),C.title&&((f||(f={})).title=C.title),C.attributes)for(var x in C.attributes)(f||(f={}))[x]=C.attributes[x];C.collapsed&&(!d||zt(d.marker,C)<0)&&(d=w)}else w.from>p&&v>w.from&&(v=w.from)}if(_)for(var k=0;k<_.length;k+=2)_[k+1]==v&&(c+=" "+_[k]);if(!d||d.from==p)for(var T=0;T=h)break;var S=Math.min(h,v);while(1){if(g){var O=p+g.length;if(!d){var D=O>S?g.slice(0,S-p):g;t.addToken(t,D,a?a+l:l,u,p+D.length==v?c:"",s,f)}if(O>=S){g=g.slice(S-p),p=S;break}p=O,u=""}g=i.slice(o,o=r[m++]),a=fr(r[m++],t.cm.options)}}else for(var M=1;M2&&o.push((l.bottom+c.top)/2-r.top)}}o.push(r.bottom-r.top)}}function Xr(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;nr)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Yr(e,t){t=Yt(t);var r=et(t),n=e.display.externalMeasured=new br(e.doc,t,r);n.lineN=r;var i=n.built=hr(e,n);return n.text=i.pre,D(e.display.lineMeasure,i.pre),n}function Qr(e,t,r,n){return tn(e,en(e,t),r,n)}function Zr(e,t){if(t>=e.display.viewFrom&&t=r.lineN&&tt)&&(o=l-s,i=o-1,t>=l&&(a="right")),null!=i){if(n=e[c+2],s==l&&r==(n.insertLeft?"left":"right")&&(a=r),"left"==r&&0==i)while(c&&e[c-2]==e[c-3]&&e[c-1].insertLeft)n=e[2+(c-=3)],a="left";if("right"==r&&i==l-s)while(c=0;i--)if((r=e[i]).left!=r.right)break;return r}function sn(e,t,r,n){var i,o=on(t.map,r,n),l=o.node,c=o.start,u=o.end,d=o.collapse;if(3==l.nodeType){for(var f=0;f<4;f++){while(c&&oe(t.line.text.charAt(o.coverStart+c)))--c;while(o.coverStart+u0&&(d=n="right"),i=e.options.lineWrapping&&(h=l.getClientRects()).length>1?h["right"==n?h.length-1:0]:l.getBoundingClientRect()}if(a&&s<9&&!c&&(!i||!i.left&&!i.right)){var p=l.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+Mn(e.display),top:p.top,bottom:p.bottom}:nn}for(var m=i.top-t.rect.top,g=i.bottom-t.rect.top,v=(m+g)/2,y=t.view.measure.heights,_=0;_=n.text.length?(l=n.text.length,c="before"):l<=0&&(l=0,c="after"),!s)return a("before"==c?l-1:l,"before"==c);function u(e,t,r){var n=s[t],i=1==n.level;return a(r?e-1:e,i!=r)}var d=ue(s,l,c),f=ce,h=u(l,d,"before"==c);return null!=f&&(h.other=u(l,f,"before"!=c)),h}function _n(e,t){var r=0;t=dt(e.doc,t),e.options.lineWrapping||(r=Mn(e.display)*t.ch);var n=Xe(e.doc,t.line),i=ir(n)+Ur(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function bn(e,t,r,n,i){var o=it(e,t,r);return o.xRel=i,n&&(o.outside=n),o}function wn(e,t,r){var n=e.doc;if(r+=e.display.viewOffset,r<0)return bn(n.first,0,null,-1,-1);var i=tt(n,r),o=n.first+n.size-1;if(i>o)return bn(n.first+n.size-1,Xe(n,o).text.length,null,1,1);t<0&&(t=0);for(var a=Xe(n,i);;){var s=Tn(e,a,i,t,r),l=Gt(a,s.ch+(s.xRel>0||s.outside>0?1:0));if(!l)return s;var c=l.find(1);if(c.line==i)return c;a=Xe(n,i=c.line)}}function Cn(e,t,r,n){n-=pn(t);var i=t.text.length,o=se((function(t){return tn(e,r,t-1).bottom<=n}),i,0);return i=se((function(t){return tn(e,r,t).top>n}),o,i),{begin:o,end:i}}function xn(e,t,r,n){r||(r=en(e,t));var i=mn(e,t,tn(e,r,n),"line").top;return Cn(e,t,r,i)}function kn(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function Tn(e,t,r,n,i){i-=ir(t);var o=en(e,t),a=pn(t),s=0,l=t.text.length,c=!0,u=fe(t,e.doc.direction);if(u){var d=(e.options.lineWrapping?On:Sn)(e,t,r,o,u,n,i);c=1!=d.level,s=c?d.from:d.to-1,l=c?d.to:d.from-1}var f,h,p=null,m=null,g=se((function(t){var r=tn(e,o,t);return r.top+=a,r.bottom+=a,!!kn(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,m=r),!0)}),s,l),v=!1;if(m){var y=n-m.left=b.bottom?1:0}return g=ae(t.text,g,1),bn(r,g,h,v,n-f)}function Sn(e,t,r,n,i,o,a){var s=se((function(s){var l=i[s],c=1!=l.level;return kn(yn(e,it(r,c?l.to:l.from,c?"before":"after"),"line",t,n),o,a,!0)}),0,i.length-1),l=i[s];if(s>0){var c=1!=l.level,u=yn(e,it(r,c?l.from:l.to,c?"after":"before"),"line",t,n);kn(u,o,a,!0)&&u.top>a&&(l=i[s-1])}return l}function On(e,t,r,n,i,o,a){var s=Cn(e,t,n,a),l=s.begin,c=s.end;/\s/.test(t.text.charAt(c-1))&&c--;for(var u=null,d=null,f=0;f=c||h.to<=l)){var p=1!=h.level,m=tn(e,n,p?Math.min(c,h.to)-1:Math.max(l,h.from)).right,g=mg)&&(u=h,d=g)}}return u||(u=i[i.length-1]),u.fromc&&(u={from:u.from,to:c,level:u.level}),u}function Dn(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==rn){rn=M("pre",null,"CodeMirror-line-like");for(var t=0;t<49;++t)rn.appendChild(document.createTextNode("x")),rn.appendChild(M("br"));rn.appendChild(document.createTextNode("x"))}D(e.measure,rn);var r=rn.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),O(e.measure),r||1}function Mn(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=M("span","xxxxxxxxxx"),r=M("pre",[t],"CodeMirror-line-like");D(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function An(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,a=0;o;o=o.nextSibling,++a){var s=e.display.gutterSpecs[a].className;r[s]=o.offsetLeft+o.clientLeft+i,n[s]=o.clientWidth}return{fixedPos:Nn(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function Nn(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function En(e){var t=Dn(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/Mn(e.display)-3);return function(i){if(rr(e.doc,i))return 0;var o=0;if(i.widgets)for(var a=0;a0&&(l=Xe(e.doc,c.line).text).length==c.ch){var u=B(l,l.length,e.options.tabSize)-l.length;c=it(c.line,Math.max(0,Math.round((o-zr(e.display).left)/Mn(e.display))-u))}return c}function Rn(e,t){if(t>=e.display.viewTo)return null;if(t-=e.display.viewFrom,t<0)return null;for(var r=e.display.view,n=0;nt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Mt&&er(e.doc,t)i.viewFrom?Bn(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)Bn(e);else if(t<=i.viewFrom){var o=jn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):Bn(e)}else if(r>=i.viewTo){var a=jn(e,t,t,-1);a?(i.view=i.view.slice(0,a.index),i.viewTo=a.lineN):Bn(e)}else{var s=jn(e,t,t,-1),l=jn(e,r,r+n,1);s&&l?(i.view=i.view.slice(0,s.index).concat(wr(e,s.lineN,l.lineN)).concat(i.view.slice(l.index)),i.viewTo+=n):Bn(e)}var c=i.externalMeasured;c&&(r=i.lineN&&t=n.viewTo)){var o=n.view[Rn(e,t)];if(null!=o.node){var a=o.changes||(o.changes=[]);-1==H(a,r)&&a.push(r)}}}function Bn(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function jn(e,t,r,n){var i,o=Rn(e,t),a=e.display.view;if(!Mt||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,l=0;l0){if(o==a.length-1)return null;i=s+a[o].size-t,o++}else i=s-t;t+=i,r+=i}while(er(e.doc,r)!=r){if(o==(n<0?0:a.length-1))return null;r+=n*a[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function Hn(e,t,r){var n=e.display,i=n.view;0==i.length||t>=n.viewTo||r<=n.viewFrom?(n.view=wr(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=wr(e,t,n.viewFrom).concat(n.view):n.viewFromr&&(n.view=n.view.slice(0,Rn(e,r)))),n.viewTo=r}function Fn(e){for(var t=e.display.view,r=0,n=0;n=e.display.viewTo||s.to().line0?t.blinker=setInterval((function(){e.hasFocus()||Yn(e),t.cursorDiv.style.visibility=(r=!r)?"":"hidden"}),e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function Vn(e){e.hasFocus()||(e.display.input.focus(),e.state.focused||Xn(e))}function Gn(e){e.state.delayingBlurEvent=!0,setTimeout((function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,e.state.focused&&Yn(e))}),100)}function Xn(e,t){e.state.delayingBlurEvent&&!e.state.draggingText&&(e.state.delayingBlurEvent=!1),"nocursor"!=e.options.readOnly&&(e.state.focused||(ve(e,"focus",e,t),e.state.focused=!0,L(e.display.wrapper,"CodeMirror-focused"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),l&&setTimeout((function(){return e.display.input.reset(!0)}),20)),e.display.input.receivedFocus()),Jn(e))}function Yn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(ve(e,"blur",e,t),e.state.focused=!1,S(e.display.wrapper,"CodeMirror-focused")),clearInterval(e.display.blinker),setTimeout((function(){e.state.focused||(e.display.shift=!1)}),150))}function Qn(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n.005||f<-.005)&&(Ze(i.line,l),Zn(i.line),i.rest))for(var h=0;he.display.sizerWidth){var p=Math.ceil(c/Mn(e.display));p>e.display.maxLineLength&&(e.display.maxLineLength=p,e.display.maxLine=i.line,e.display.maxLineChanged=!0)}}}}function Zn(e){if(e.widgets)for(var t=0;t=a&&(o=tt(t,ir(Xe(t,l))-e.wrapper.clientHeight),a=l)}return{from:o,to:Math.max(a,o+1)}}function ti(e,t){if(!ye(e,"scrollCursorIntoView")){var r=e.display,n=r.sizer.getBoundingClientRect(),i=null;if(t.top+n.top<0?i=!0:t.bottom+n.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=M("div","​",null,"position: absolute;\n top: "+(t.top-r.viewOffset-Ur(e.display))+"px;\n height: "+(t.bottom-t.top+Kr(e)+r.barHeight)+"px;\n left: "+t.left+"px; width: "+Math.max(2,t.right-t.left)+"px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}function ri(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(t=t.ch?it(t.line,"before"==t.sticky?t.ch-1:t.ch,"after"):t,r="before"==t.sticky?it(t.line,t.ch+1,"before"):t);for(var o=0;o<5;o++){var a=!1,s=yn(e,t),l=r&&r!=t?yn(e,r):s;i={left:Math.min(s.left,l.left),top:Math.min(s.top,l.top)-n,right:Math.max(s.left,l.left),bottom:Math.max(s.bottom,l.bottom)+n};var c=ii(e,i),u=e.doc.scrollTop,d=e.doc.scrollLeft;if(null!=c.scrollTop&&(di(e,c.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(a=!0)),null!=c.scrollLeft&&(hi(e,c.scrollLeft),Math.abs(e.doc.scrollLeft-d)>1&&(a=!0)),!a)break}return i}function ni(e,t){var r=ii(e,t);null!=r.scrollTop&&di(e,r.scrollTop),null!=r.scrollLeft&&hi(e,r.scrollLeft)}function ii(e,t){var r=e.display,n=Dn(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Vr(e),a={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+qr(r),l=t.tops-n;if(t.topi+o){var u=Math.min(t.top,(c?s:t.bottom)-o);u!=i&&(a.scrollTop=u)}var d=e.options.fixedGutter?0:r.gutters.offsetWidth,f=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft-d,h=Jr(e)-r.gutters.offsetWidth,p=t.right-t.left>h;return p&&(t.right=t.left+h),t.left<10?a.scrollLeft=0:t.lefth+f-3&&(a.scrollLeft=t.right+(p?0:10)-h),a}function oi(e,t){null!=t&&(ci(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function ai(e){ci(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function si(e,t,r){null==t&&null==r||ci(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function li(e,t){ci(e),e.curOp.scrollToPos=t}function ci(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var r=_n(e,t.from),n=_n(e,t.to);ui(e,r,n,t.margin)}}function ui(e,t,r,n){var i=ii(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});si(e,i.scrollLeft,i.scrollTop)}function di(e,t){Math.abs(e.doc.scrollTop-t)<2||(r||$i(e,{top:t}),fi(e,t,!0),r&&$i(e),Pi(e,100))}function fi(e,t,r){t=Math.max(0,Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t)),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function hi(e,t,r,n){t=Math.max(0,Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth)),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,Ki(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function pi(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+qr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Kr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var mi=function(e,t,r){this.cm=r;var n=this.vert=M("div",[M("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=M("div",[M("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");n.tabIndex=i.tabIndex=-1,e(n),e(i),pe(n,"scroll",(function(){n.clientHeight&&t(n.scrollTop,"vertical")})),pe(i,"scroll",(function(){i.clientWidth&&t(i.scrollLeft,"horizontal")})),this.checkedZeroWidth=!1,a&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")};mi.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},mi.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,"horiz")},mi.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,"vert")},mi.prototype.zeroWidthHack=function(){var e=y&&!h?"12px":"18px";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents="none",this.disableHoriz=new j,this.disableVert=new j},mi.prototype.enableZeroWidthBar=function(e,t,r){function n(){var i=e.getBoundingClientRect(),o="vert"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1);o!=e?e.style.pointerEvents="none":t.set(1e3,n)}e.style.pointerEvents="auto",t.set(1e3,n)},mi.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var gi=function(){};function vi(e,t){t||(t=pi(e));var r=e.display.barWidth,n=e.display.barHeight;yi(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&Qn(e),yi(e,pi(e)),r=e.display.barWidth,n=e.display.barHeight}function yi(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",r.heightForcer.style.borderBottom=n.bottom+"px solid transparent",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}gi.prototype.update=function(){return{bottom:0,right:0}},gi.prototype.setScrollLeft=function(){},gi.prototype.setScrollTop=function(){},gi.prototype.clear=function(){};var _i={native:mi,null:gi};function bi(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&S(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new _i[e.options.scrollbarStyle]((function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),pe(t,"mousedown",(function(){e.state.focused&&setTimeout((function(){return e.display.input.focus()}),0)})),t.setAttribute("cm-not-content","true")}),(function(t,r){"horizontal"==r?hi(e,t):di(e,t)}),e),e.display.scrollbars.addClass&&L(e.display.wrapper,e.display.scrollbars.addClass)}var wi=0;function Ci(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:0,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++wi},xr(e.curOp)}function xi(e){var t=e.curOp;t&&Tr(t,(function(e){for(var t=0;t=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new Ii(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Si(e){e.updatedDisplay=e.mustUpdate&&Hi(e.cm,e.update)}function Oi(e){var t=e.cm,r=t.display;e.updatedDisplay&&Qn(t),e.barMeasure=pi(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Qr(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Kr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Jr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Di(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeft=e.display.viewTo)){var r=+new Date+e.options.workTime,n=yt(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),(function(o){if(n.line>=e.display.viewFrom){var a=o.styles,s=o.text.length>e.options.maxHighlightLength?Ke(t.mode,n.state):null,l=gt(e,o,n,!0);s&&(n.state=s),o.styles=l.styles;var c=o.styleClasses,u=l.classes;u?o.styleClasses=u:c&&(o.styleClasses=null);for(var d=!a||a.length!=o.styles.length||c!=u&&(!c||!u||c.bgClass!=u.bgClass||c.textClass!=u.textClass),f=0;!d&&fr)return Pi(e,e.options.workDelay),!0})),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&Ai(e,(function(){for(var t=0;t=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==Fn(e))return!1;Ji(e)&&(Bn(e),t.dims=An(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),a=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFroma&&r.viewTo-a<20&&(a=Math.min(i,r.viewTo)),Mt&&(o=er(e.doc,o),a=tr(e.doc,a));var s=o!=r.viewFrom||a!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;Hn(e,o,a),r.viewOffset=ir(Xe(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var l=Fn(e);if(!s&&0==l&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var c=Bi(e);return l>4&&(r.lineDiv.style.display="none"),Ui(e,r.updateLineNumbers,t.dims),l>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,ji(c),O(r.cursorDiv),O(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,s&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,Pi(e,400)),r.updateLineNumbers=null,!0}function Fi(e,t){for(var r=t.viewport,n=!0;;n=!1){if(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Jr(e))n&&(t.visible=ei(e.display,e.doc,r));else if(r&&null!=r.top&&(r={top:Math.min(e.doc.height+qr(e.display)-Vr(e),r.top)}),t.visible=ei(e.display,e.doc,r),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!Hi(e,t))break;Qn(e);var i=pi(e);$n(e),vi(e,i),zi(e,i),t.force=!1}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function $i(e,t){var r=new Ii(e,t);if(Hi(e,r)){Qn(e),Fi(e,r);var n=pi(e);$n(e),vi(e,n),zi(e,n),r.finish()}}function Ui(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,a=o.firstChild;function s(t){var r=t.nextSibling;return l&&y&&e.display.currentWheelTarget==t?t.style.display="none":t.parentNode.removeChild(t),r}for(var c=n.view,u=n.viewFrom,d=0;d-1&&(h=!1),Mr(e,f,u,r)),h&&(O(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(nt(e.options,u)))),a=f.node.nextSibling}else{var p=Wr(e,f,u,r);o.insertBefore(p,a)}u+=f.size}while(a)a=s(a)}function qi(e){var t=e.gutters.offsetWidth;e.sizer.style.marginLeft=t+"px"}function zi(e,t){e.display.sizer.style.minHeight=t.docHeight+"px",e.display.heightForcer.style.top=t.docHeight+"px",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Kr(e)+"px"}function Ki(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=Nn(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",a=0;as.clientWidth,u=s.scrollHeight>s.clientHeight;if(i&&c||o&&u){if(o&&y&&l)e:for(var f=t.target,h=a.view;f!=s;f=f.parentNode)for(var p=0;p=0&&ot(e,n.to())<=0)return r}return-1};var io=function(e,t){this.anchor=e,this.head=t};function oo(e,t,r){var n=e&&e.options.selectionsMayTouch,i=t[r];t.sort((function(e,t){return ot(e.from(),t.from())})),r=H(t,i);for(var o=1;o0:l>=0){var c=ct(s.from(),a.from()),u=lt(s.to(),a.to()),d=s.empty()?a.from()==a.head:s.from()==s.head;o<=r&&--r,t.splice(--o,2,new io(d?u:c,d?c:u))}}return new no(t,r)}function ao(e,t){return new no([new io(e,t||e)],0)}function so(e){return e.text?it(e.from.line+e.text.length-1,G(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function lo(e,t){if(ot(e,t.from)<0)return e;if(ot(e,t.to)<=0)return so(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=so(t).ch-t.to.ch),it(r,n)}function co(e,t){for(var r=[],n=0;n1&&e.remove(s.line+1,p-1),e.insert(s.line+1,v)}Or(e,"change",e,t)}function vo(e,t,r){function n(e,i,o){if(e.linked)for(var a=0;a1&&!e.done[e.done.length-2].ranges?(e.done.pop(),G(e.done)):void 0}function To(e,t,r,n){var i=e.history;i.undone.length=0;var o,a,s=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&i.lastModTime>s-(e.cm?e.cm.options.historyEventDelay:500)||"*"==t.origin.charAt(0)))&&(o=ko(i,i.lastOp==n)))a=G(o.changes),0==ot(t.from,t.to)&&0==ot(t.from,a.to)?a.to=so(t):o.changes.push(Co(e,t));else{var l=G(i.done);l&&l.ranges||Do(e.sel,i.done),o={changes:[Co(e,t)],generation:i.generation},i.done.push(o);while(i.done.length>i.undoDepth)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=s,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,a||ve(e,"historyAdded")}function So(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function Oo(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||So(e,o,G(i.done),t))?i.done[i.done.length-1]=t:Do(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&!1!==n.clearRedo&&xo(i.undone)}function Do(e,t){var r=G(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Mo(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),(function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o}))}function Ao(e){if(!e)return null;for(var t,r=0;r-1&&(G(s)[d]=c[d],delete c[d])}}}return n}function Po(e,t,r,n){if(n){var i=e.anchor;if(r){var o=ot(t,i)<0;o!=ot(r,i)<0?(i=t,t=r):o!=ot(t,r)<0&&(t=r)}return new io(i,t)}return new io(r||t,t)}function Ro(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),Fo(e,new no([Po(e.sel.primary(),t,r,i)],0),n)}function Io(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o=t.ch:s.to>t.ch))){if(i&&(ve(l,"beforeCursorEnter"),l.explicitlyCleared)){if(o.markedSpans){--a;continue}break}if(!l.atomic)continue;if(r){var d=l.find(n<0?1:-1),f=void 0;if((n<0?u:c)&&(d=Vo(e,d,-n,d&&d.line==t.line?o:null)),d&&d.line==t.line&&(f=ot(d,r))&&(n<0?f<0:f>0))return Ko(e,d,t,n,i)}var h=l.find(n<0?-1:1);return(n<0?c:u)&&(h=Vo(e,h,n,h.line==t.line?o:null)),h?Ko(e,h,t,n,i):null}}return t}function Jo(e,t,r,n,i){var o=n||1,a=Ko(e,t,r,o,i)||!i&&Ko(e,t,r,o,!0)||Ko(e,t,r,-o,i)||!i&&Ko(e,t,r,-o,!0);return a||(e.cantEdit=!0,it(e.first,0))}function Vo(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?dt(e,it(t.line-1)):null:r>0&&t.ch==(n||Xe(e,t.line)).text.length?t.line=0;--i)Qo(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text,origin:t.origin});else Qo(e,t)}}function Qo(e,t){if(1!=t.text.length||""!=t.text[0]||0!=ot(t.from,t.to)){var r=co(e,t);To(e,t,r,e.cm?e.cm.curOp.id:NaN),ta(e,t,r,Bt(e,t));var n=[];vo(e,(function(e,r){r||-1!=H(n,e.history)||(aa(e.history,t),n.push(e.history)),ta(e,t,null,Bt(e,t))}))}}function Zo(e,t,r){var n=e.cm&&e.cm.state.suppressEdits;if(!n||r){for(var i,o=e.history,a=e.sel,s="undo"==t?o.done:o.undone,l="undo"==t?o.undone:o.done,c=0;c=0;--h){var p=f(h);if(p)return p.v}}}}function ea(e,t){if(0!=t&&(e.first+=t,e.sel=new no(X(e.sel.ranges,(function(e){return new io(it(e.anchor.line+t,e.anchor.ch),it(e.head.line+t,e.head.ch))})),e.sel.primIndex),e.cm)){In(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;ne.lastLine())){if(t.from.lineo&&(t={from:t.from,to:it(o,Xe(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=Ye(e,t.from,t.to),r||(r=co(e,t)),e.cm?ra(e.cm,t,n):go(e,t,n),$o(e,r,U),e.cantEdit&&Jo(e,it(e.firstLine(),0))&&(e.cantEdit=!1)}}function ra(e,t,r){var n=e.doc,i=e.display,o=t.from,a=t.to,s=!1,l=o.line;e.options.lineWrapping||(l=et(Yt(Xe(n,o.line))),n.iter(l,a.line+1,(function(e){if(e==i.maxLine)return s=!0,!0}))),n.sel.contains(t.from,t.to)>-1&&_e(e),go(n,t,r,En(e)),e.options.lineWrapping||(n.iter(l,o.line+t.text.length,(function(e){var t=or(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)})),s&&(e.curOp.updateMaxLine=!0)),Ot(n,o.line),Pi(e,400);var c=t.text.length-(a.line-o.line)-1;t.full?In(e):o.line!=a.line||1!=t.text.length||mo(e.doc,t)?In(e,o.line,a.line+1,c):Wn(e,o.line,"text");var u=be(e,"changes"),d=be(e,"change");if(d||u){var f={from:o,to:a,text:t.text,removed:t.removed,origin:t.origin};d&&Or(e,"change",e,f),u&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}function na(e,t,r,n,i){var o;n||(n=r),ot(n,r)<0&&(o=[n,r],r=o[0],n=o[1]),"string"==typeof t&&(t=e.splitLines(t)),Yo(e,{from:r,to:n,text:t,origin:i})}function ia(e,t,r,n){r1||!(this.children[0]instanceof la))){var s=[];this.collapse(s),this.children=[new la(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(var a=i.lines.length%25+25,s=a;s10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n0||0==a&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A("span",[o.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Xt(e,t.line,t,r,o)||t.line!=r.line&&Xt(e,r.line,t,r,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Nt()}o.addToHistory&&To(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,l=t.line,c=e.cm;if(e.iter(l,r.line+1,(function(e){c&&o.collapsed&&!c.options.lineWrapping&&Yt(e)==c.display.maxLine&&(s=!0),o.collapsed&&l!=t.line&&Ze(e,0),Rt(e,new Et(o,l==t.line?t.ch:null,l==r.line?r.ch:null)),++l})),o.collapsed&&e.iter(t.line,r.line+1,(function(t){rr(e,t)&&Ze(t,0)})),o.clearOnEnter&&pe(o,"beforeCursorEnter",(function(){return o.clear()})),o.readOnly&&(At(),(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++ha,o.atomic=!0),c){if(s&&(c.curOp.updateMaxLine=!0),o.collapsed)In(c,t.line,r.line+1);else if(o.className||o.startStyle||o.endStyle||o.css||o.attributes||o.title)for(var u=t.line;u<=r.line;u++)Wn(c,u,"text");o.atomic&&qo(c.doc),Or(c,"markerAdded",c,o)}return o}pa.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&Ci(e),be(this,"clear")){var r=this.find();r&&Or(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=c,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&In(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&qo(e.doc)),e&&Or(e,"markerCleared",e,this,n,i),t&&xi(e),this.parent&&this.parent.clear()}},pa.prototype.find=function(e,t){var r,n;null==e&&"bookmark"==this.type&&(e=1);for(var i=0;i=0;l--)Yo(this,n[l]);s?Ho(this,s):this.cm&&ai(this.cm)})),undo:Li((function(){Zo(this,"undo")})),redo:Li((function(){Zo(this,"redo")})),undoSelection:Li((function(){Zo(this,"undo",!0)})),redoSelection:Li((function(){Zo(this,"redo",!0)})),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=dt(this,e),t=dt(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,(function(o){var a=o.markedSpans;if(a)for(var s=0;s=l.to||null==l.from&&i!=e.line||null!=l.from&&i==t.line&&l.from>=t.ch||r&&!r(l.marker)||n.push(l.marker.parent||l.marker)}++i})),n},getAllMarks:function(){var e=[];return this.iter((function(t){var r=t.markedSpans;if(r)for(var n=0;ne)return t=e,!0;e-=o,++r})),dt(this,it(r,t))},indexFromPos:function(e){e=dt(this,e);var t=e.ch;if(e.linet&&(t=e.from),null!=e.to&&e.to-1)return t.state.draggingText(e),void setTimeout((function(){return t.display.input.focus()}),20);try{var d=e.dataTransfer.getData("Text");if(d){var f;if(t.state.draggingText&&!t.state.draggingText.copy&&(f=t.listSelections()),$o(t.doc,ao(r,r)),f)for(var h=0;h=0;t--)na(e.doc,"",n[t].from,n[t].to,"+delete");ai(e)}))}function Ka(e,t,r){var n=ae(e.text,t+r,r);return n<0||n>e.text.length?null:n}function Ja(e,t,r){var n=Ka(e,t.ch,r);return null==n?null:new it(t.line,n,r<0?"after":"before")}function Va(e,t,r,n,i){if(e){"rtl"==t.doc.direction&&(i=-i);var o=fe(r,t.doc.direction);if(o){var a,s=i<0?G(o):o[0],l=i<0==(1==s.level),c=l?"after":"before";if(s.level>0||"rtl"==t.doc.direction){var u=en(t,r);a=i<0?r.text.length-1:0;var d=tn(t,u,a).top;a=se((function(e){return tn(t,u,e).top==d}),i<0==(1==s.level)?s.from:s.to-1,a),"before"==c&&(a=Ka(r,a,1))}else a=i<0?s.to:s.from;return new it(n,a,c)}}return new it(n,i<0?r.text.length:0,i<0?"before":"after")}function Ga(e,t,r,n){var i=fe(t,e.doc.direction);if(!i)return Ja(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky="before"):r.ch<=0&&(r.ch=0,r.sticky="after");var o=ue(i,r.ch,r.sticky),a=i[o];if("ltr"==e.doc.direction&&a.level%2==0&&(n>0?a.to>r.ch:a.from=a.from&&f>=u.begin)){var h=d?"before":"after";return new it(r.line,f,h)}}var p=function(e,t,n){for(var o=function(e,t){return t?new it(r.line,l(e,1),"before"):new it(r.line,e,"after")};e>=0&&e0==(1!=a.level),c=s?n.begin:l(n.end,-1);if(a.from<=c&&c0?u.end:l(u.begin,-1);return null==g||n>0&&g==t.text.length||(m=p(n>0?0:i.length-1,n,c(g)),!m)?null:m}Wa.basic={Left:"goCharLeft",Right:"goCharRight",Up:"goLineUp",Down:"goLineDown",End:"goLineEnd",Home:"goLineStartSmart",PageUp:"goPageUp",PageDown:"goPageDown",Delete:"delCharAfter",Backspace:"delCharBefore","Shift-Backspace":"delCharBefore",Tab:"defaultTab","Shift-Tab":"indentAuto",Enter:"newlineAndIndent",Insert:"toggleOverwrite",Esc:"singleSelection"},Wa.pcDefault={"Ctrl-A":"selectAll","Ctrl-D":"deleteLine","Ctrl-Z":"undo","Shift-Ctrl-Z":"redo","Ctrl-Y":"redo","Ctrl-Home":"goDocStart","Ctrl-End":"goDocEnd","Ctrl-Up":"goLineUp","Ctrl-Down":"goLineDown","Ctrl-Left":"goGroupLeft","Ctrl-Right":"goGroupRight","Alt-Left":"goLineStart","Alt-Right":"goLineEnd","Ctrl-Backspace":"delGroupBefore","Ctrl-Delete":"delGroupAfter","Ctrl-S":"save","Ctrl-F":"find","Ctrl-G":"findNext","Shift-Ctrl-G":"findPrev","Shift-Ctrl-F":"replace","Shift-Ctrl-R":"replaceAll","Ctrl-[":"indentLess","Ctrl-]":"indentMore","Ctrl-U":"undoSelection","Shift-Ctrl-U":"redoSelection","Alt-U":"redoSelection",fallthrough:"basic"},Wa.emacsy={"Ctrl-F":"goCharRight","Ctrl-B":"goCharLeft","Ctrl-P":"goLineUp","Ctrl-N":"goLineDown","Alt-F":"goWordRight","Alt-B":"goWordLeft","Ctrl-A":"goLineStart","Ctrl-E":"goLineEnd","Ctrl-V":"goPageDown","Shift-Ctrl-V":"goPageUp","Ctrl-D":"delCharAfter","Ctrl-H":"delCharBefore","Alt-D":"delWordAfter","Alt-Backspace":"delWordBefore","Ctrl-K":"killLine","Ctrl-T":"transposeChars","Ctrl-O":"openLine"},Wa.macDefault={"Cmd-A":"selectAll","Cmd-D":"deleteLine","Cmd-Z":"undo","Shift-Cmd-Z":"redo","Cmd-Y":"redo","Cmd-Home":"goDocStart","Cmd-Up":"goDocStart","Cmd-End":"goDocEnd","Cmd-Down":"goDocEnd","Alt-Left":"goGroupLeft","Alt-Right":"goGroupRight","Cmd-Left":"goLineLeft","Cmd-Right":"goLineRight","Alt-Backspace":"delGroupBefore","Ctrl-Alt-Backspace":"delGroupAfter","Alt-Delete":"delGroupAfter","Cmd-S":"save","Cmd-F":"find","Cmd-G":"findNext","Shift-Cmd-G":"findPrev","Cmd-Alt-F":"replace","Shift-Cmd-Alt-F":"replaceAll","Cmd-[":"indentLess","Cmd-]":"indentMore","Cmd-Backspace":"delWrappedLineLeft","Cmd-Delete":"delWrappedLineRight","Cmd-U":"undoSelection","Shift-Cmd-U":"redoSelection","Ctrl-Up":"goDocStart","Ctrl-Down":"goDocEnd",fallthrough:["basic","emacsy"]},Wa["default"]=y?Wa.macDefault:Wa.pcDefault;var Xa={selectAll:Go,singleSelection:function(e){return e.setSelection(e.getCursor("anchor"),e.getCursor("head"),U)},killLine:function(e){return za(e,(function(t){if(t.empty()){var r=Xe(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line0)i=new it(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),it(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var a=Xe(e.doc,i.line-1).text;a&&(i=new it(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+a.charAt(a.length-1),it(i.line-1,a.length-1),i,"+transpose"))}r.push(new io(i,i))}e.setSelections(r)}))},newlineAndIndent:function(e){return Ai(e,(function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,"+input");t=e.listSelections();for(var n=0;n-1&&(ot((i=s.ranges[i]).from(),t)<0||t.xRel>0)&&(ot(i.to(),t)>0||t.xRel<0)?ws(e,n,t,o):xs(e,n,t,o)}function ws(e,t,r,n){var i=e.display,o=!1,c=Ni(e,(function(t){l&&(i.scroller.draggable=!1),e.state.draggingText=!1,e.state.delayingBlurEvent&&(e.hasFocus()?e.state.delayingBlurEvent=!1:Gn(e)),ge(i.wrapper.ownerDocument,"mouseup",c),ge(i.wrapper.ownerDocument,"mousemove",u),ge(i.scroller,"dragstart",d),ge(i.scroller,"drop",c),o||(Ce(t),n.addNew||Ro(e.doc,r,null,null,n.extend),l&&!f||a&&9==s?setTimeout((function(){i.wrapper.ownerDocument.body.focus({preventScroll:!0}),i.input.focus()}),20):i.input.focus())})),u=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},d=function(){return o=!0};l&&(i.scroller.draggable=!0),e.state.draggingText=c,c.copy=!n.moveOnDrag,pe(i.wrapper.ownerDocument,"mouseup",c),pe(i.wrapper.ownerDocument,"mousemove",u),pe(i.scroller,"dragstart",d),pe(i.scroller,"drop",c),e.state.delayingBlurEvent=!0,setTimeout((function(){return i.input.focus()}),20),i.scroller.dragDrop&&i.scroller.dragDrop()}function Cs(e,t,r){if("char"==r)return new io(t,t);if("word"==r)return e.findWordAt(t);if("line"==r)return new io(it(t.line,0),dt(e.doc,it(t.line+1,0)));var n=r(e,t);return new io(n.from,n.to)}function xs(e,t,r,n){a&&Gn(e);var i=e.display,o=e.doc;Ce(t);var s,l,c=o.sel,u=c.ranges;if(n.addNew&&!n.extend?(l=o.sel.contains(r),s=l>-1?u[l]:new io(r,r)):(s=o.sel.primary(),l=o.sel.primIndex),"rectangle"==n.unit)n.addNew||(s=new io(r,r)),r=Pn(e,t,!0,!0),l=-1;else{var d=Cs(e,r,n.unit);s=n.extend?Po(s,d.anchor,d.head,n.extend):d}n.addNew?-1==l?(l=u.length,Fo(o,oo(e,u.concat([s]),l),{scroll:!1,origin:"*mouse"})):u.length>1&&u[l].empty()&&"char"==n.unit&&!n.extend?(Fo(o,oo(e,u.slice(0,l).concat(u.slice(l+1)),0),{scroll:!1,origin:"*mouse"}),c=o.sel):Wo(o,l,s,q):(l=0,Fo(o,new no([s],0),q),c=o.sel);var f=r;function h(t){if(0!=ot(f,t))if(f=t,"rectangle"==n.unit){for(var i=[],a=e.options.tabSize,u=B(Xe(o,r.line).text,r.ch,a),d=B(Xe(o,t.line).text,t.ch,a),h=Math.min(u,d),p=Math.max(u,d),m=Math.min(r.line,t.line),g=Math.min(e.lastLine(),Math.max(r.line,t.line));m<=g;m++){var v=Xe(o,m).text,y=K(v,h,a);h==p?i.push(new io(it(m,y),it(m,y))):v.length>y&&i.push(new io(it(m,y),it(m,K(v,p,a))))}i.length||i.push(new io(r,r)),Fo(o,oo(e,c.ranges.slice(0,l).concat(i),l),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var _,b=s,w=Cs(e,t,n.unit),C=b.anchor;ot(w.anchor,C)>0?(_=w.head,C=ct(b.from(),w.anchor)):(_=w.anchor,C=lt(b.to(),w.head));var x=c.ranges.slice(0);x[l]=ks(e,new io(dt(o,C),_)),Fo(o,oo(e,x,l),q)}}var p=i.wrapper.getBoundingClientRect(),m=0;function g(t){var r=++m,a=Pn(e,t,!0,"rectangle"==n.unit);if(a)if(0!=ot(a,f)){e.curOp.focus=E(),h(a);var s=ei(i,o);(a.line>=s.to||a.linep.bottom?20:0;l&&setTimeout(Ni(e,(function(){m==r&&(i.scroller.scrollTop+=l,g(t))})),50)}}function v(t){e.state.selectingText=!1,m=1/0,t&&(Ce(t),i.input.focus()),ge(i.wrapper.ownerDocument,"mousemove",y),ge(i.wrapper.ownerDocument,"mouseup",_),o.history.lastSelOrigin=null}var y=Ni(e,(function(e){0!==e.buttons&&Oe(e)?g(e):v(e)})),_=Ni(e,v);e.state.selectingText=_,pe(i.wrapper.ownerDocument,"mousemove",y),pe(i.wrapper.ownerDocument,"mouseup",_)}function ks(e,t){var r=t.anchor,n=t.head,i=Xe(e.doc,r.line);if(0==ot(r,n)&&r.sticky==n.sticky)return t;var o=fe(i);if(!o)return t;var a=ue(o,r.ch,r.sticky),s=o[a];if(s.from!=r.ch&&s.to!=r.ch)return t;var l,c=a+(s.from==r.ch==(1!=s.level)?0:1);if(0==c||c==o.length)return t;if(n.line!=r.line)l=(n.line-r.line)*("ltr"==e.doc.direction?1:-1)>0;else{var u=ue(o,n.ch,n.sticky),d=u-a||(n.ch-r.ch)*(1==s.level?-1:1);l=u==c-1||u==c?d<0:d>0}var f=o[c+(l?-1:0)],h=l==(1==f.level),p=h?f.from:f.to,m=h?"after":"before";return r.ch==p&&r.sticky==m?t:new io(new it(r.line,p,m),n)}function Ts(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(f){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&Ce(t);var a=e.display,s=a.lineDiv.getBoundingClientRect();if(o>s.bottom||!be(e,r))return ke(t);o-=s.top-a.viewOffset;for(var l=0;l=i){var u=tt(e.doc,o),d=e.display.gutterSpecs[l];return ve(e,r,e,u,d.className,t),ke(t)}}}function Ss(e,t){return Ts(e,t,"gutterClick",!0)}function Os(e,t){$r(e.display,t)||Ds(e,t)||ye(e,t,"contextmenu")||x||e.display.input.onContextMenu(t)}function Ds(e,t){return!!be(e,"gutterContextMenu")&&Ts(e,t,"gutterContextMenu",!1)}function Ms(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\s*cm-s-\S+/g,"")+e.options.theme.replace(/(^|\s)\s*/g," cm-s-"),dn(e)}ms.prototype.compare=function(e,t,r){return this.time+ps>e&&0==ot(t,this.pos)&&r==this.button};var As={toString:function(){return"CodeMirror.Init"}},Ns={},Es={};function Ls(e){var t=e.optionHandlers;function r(r,n,i,o){e.defaults[r]=n,i&&(t[r]=o?function(e,t,r){r!=As&&i(e,t,r)}:i)}e.defineOption=r,e.Init=As,r("value","",(function(e,t){return e.setValue(t)}),!0),r("mode",null,(function(e,t){e.doc.modeOption=t,ho(e)}),!0),r("indentUnit",2,ho,!0),r("indentWithTabs",!1),r("smartIndent",!0),r("tabSize",4,(function(e){po(e),dn(e),In(e)}),!0),r("lineSeparator",null,(function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter((function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(it(n,o))}n++}));for(var i=r.length-1;i>=0;i--)na(e.doc,t,r[i],it(r[i].line,r[i].ch+t.length))}})),r("specialChars",/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,(function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),r!=As&&e.refresh()})),r("specialCharPlaceholder",pr,(function(e){return e.refresh()}),!0),r("electricChars",!0),r("inputStyle",v?"contenteditable":"textarea",(function(){throw new Error("inputStyle can not (yet) be changed in a running editor")}),!0),r("spellcheck",!1,(function(e,t){return e.getInputField().spellcheck=t}),!0),r("autocorrect",!1,(function(e,t){return e.getInputField().autocorrect=t}),!0),r("autocapitalize",!1,(function(e,t){return e.getInputField().autocapitalize=t}),!0),r("rtlMoveVisually",!b),r("wholeLineUpdateBefore",!0),r("theme","default",(function(e){Ms(e),Xi(e)}),!0),r("keyMap","default",(function(e,t,r){var n=qa(t),i=r!=As&&qa(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)})),r("extraKeys",null),r("configureMouse",null),r("lineWrapping",!1,Rs,!0),r("gutters",[],(function(e,t){e.display.gutterSpecs=Vi(t,e.options.lineNumbers),Xi(e)}),!0),r("fixedGutter",!0,(function(e,t){e.display.gutters.style.left=t?Nn(e.display)+"px":"0",e.refresh()}),!0),r("coverGutterNextToScrollbar",!1,(function(e){return vi(e)}),!0),r("scrollbarStyle","native",(function(e){bi(e),vi(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)}),!0),r("lineNumbers",!1,(function(e,t){e.display.gutterSpecs=Vi(e.options.gutters,t),Xi(e)}),!0),r("firstLineNumber",1,Xi,!0),r("lineNumberFormatter",(function(e){return e}),Xi,!0),r("showCursorWhenSelecting",!1,$n,!0),r("resetSelectionOnContextMenu",!0),r("lineWiseCopyCut",!0),r("pasteLinesPerSelection",!0),r("selectionsMayTouch",!1),r("readOnly",!1,(function(e,t){"nocursor"==t&&(Yn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)})),r("screenReaderLabel",null,(function(e,t){t=""===t?null:t,e.display.input.screenReaderLabelChanged(t)})),r("disableInput",!1,(function(e,t){t||e.display.input.reset()}),!0),r("dragDrop",!0,Ps),r("allowDropFileTypes",null),r("cursorBlinkRate",530),r("cursorScrollMargin",0),r("cursorHeight",1,$n,!0),r("singleCursorHeightPerLine",!0,$n,!0),r("workTime",100),r("workDelay",100),r("flattenSpans",!0,po,!0),r("addModeClass",!1,po,!0),r("pollInterval",100),r("undoDepth",200,(function(e,t){return e.doc.history.undoDepth=t})),r("historyEventDelay",1250),r("viewportMargin",10,(function(e){return e.refresh()}),!0),r("maxHighlightLength",1e4,po,!0),r("moveInputWithCursor",!0,(function(e,t){t||e.display.input.resetPosition()})),r("tabindex",null,(function(e,t){return e.display.input.getField().tabIndex=t||""})),r("autofocus",null),r("direction","ltr",(function(e,t){return e.doc.setDirection(t)}),!0),r("phrases",null)}function Ps(e,t,r){var n=r&&r!=As;if(!t!=!n){var i=e.display.dragFunctions,o=t?pe:ge;o(e.display.scroller,"dragstart",i.start),o(e.display.scroller,"dragenter",i.enter),o(e.display.scroller,"dragover",i.over),o(e.display.scroller,"dragleave",i.leave),o(e.display.scroller,"drop",i.drop)}}function Rs(e){e.options.lineWrapping?(L(e.display.wrapper,"CodeMirror-wrap"),e.display.sizer.style.minWidth="",e.display.sizerWidth=null):(S(e.display.wrapper,"CodeMirror-wrap"),ar(e)),Ln(e),In(e),dn(e),setTimeout((function(){return vi(e)}),100)}function Is(e,t){var r=this;if(!(this instanceof Is))return new Is(e,t);this.options=t=t?W(t):{},W(Ns,t,!1);var n=t.value;"string"==typeof n?n=new Ca(n,t.mode,null,t.lineSeparator,t.direction):t.mode&&(n.modeOption=t.mode),this.doc=n;var i=new Is.inputStyles[t.inputStyle](this),o=this.display=new Yi(e,n,i,t);for(var c in o.wrapper.CodeMirror=this,Ms(this),t.lineWrapping&&(this.display.wrapper.className+=" CodeMirror-wrap"),bi(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:-1,cutIncoming:-1,selectingText:!1,draggingText:!1,highlight:new j,keySeq:null,specialChars:null},t.autofocus&&!v&&o.input.focus(),a&&s<11&&setTimeout((function(){return r.display.input.reset(!0)}),20),Ws(this),Aa(),Ci(this),this.curOp.forceUpdate=!0,yo(this,n),t.autofocus&&!v||this.hasFocus()?setTimeout((function(){r.hasFocus()&&!r.state.focused&&Xn(r)}),20):Yn(this),Es)Es.hasOwnProperty(c)&&Es[c](this,t[c],As);Ji(this),t.finishInit&&t.finishInit(this);for(var u=0;u400}pe(t.scroller,"touchstart",(function(i){if(!ye(e,i)&&!o(i)&&!Ss(e,i)){t.input.ensurePolled(),clearTimeout(r);var a=+new Date;t.activeTouch={start:a,moved:!1,prev:a-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}})),pe(t.scroller,"touchmove",(function(){t.activeTouch&&(t.activeTouch.moved=!0)})),pe(t.scroller,"touchend",(function(r){var n=t.activeTouch;if(n&&!$r(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var o,a=e.coordsChar(t.activeTouch,"page");o=!n.prev||l(n,n.prev)?new io(a,a):!n.prev.prev||l(n,n.prev.prev)?e.findWordAt(a):new io(it(a.line,0),dt(e.doc,it(a.line+1,0))),e.setSelection(o.anchor,o.head),e.focus(),Ce(r)}i()})),pe(t.scroller,"touchcancel",i),pe(t.scroller,"scroll",(function(){t.scroller.clientHeight&&(di(e,t.scroller.scrollTop),hi(e,t.scroller.scrollLeft,!0),ve(e,"scroll",e))})),pe(t.scroller,"mousewheel",(function(t){return ro(e,t)})),pe(t.scroller,"DOMMouseScroll",(function(t){return ro(e,t)})),pe(t.wrapper,"scroll",(function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0})),t.dragFunctions={enter:function(t){ye(e,t)||Te(t)},over:function(t){ye(e,t)||(Sa(e,t),Te(t))},start:function(t){return Ta(e,t)},drop:Ni(e,ka),leave:function(t){ye(e,t)||Oa(e)}};var c=t.input.getField();pe(c,"keyup",(function(t){return us.call(e,t)})),pe(c,"keydown",Ni(e,ls)),pe(c,"keypress",Ni(e,ds)),pe(c,"focus",(function(t){return Xn(e,t)})),pe(c,"blur",(function(t){return Yn(e,t)}))}Is.defaults=Ns,Is.optionHandlers=Es;var Bs=[];function js(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=yt(e,t).state:r="prev");var a=e.options.tabSize,s=Xe(o,t),l=B(s.text,null,a);s.stateAfter&&(s.stateAfter=null);var c,u=s.text.match(/^\s*/)[0];if(n||/\S/.test(s.text)){if("smart"==r&&(c=o.mode.indent(i,s.text.slice(u.length),s.text),c==$||c>150)){if(!n)return;r="prev"}}else c=0,r="not";"prev"==r?c=t>o.first?B(Xe(o,t-1).text,null,a):0:"add"==r?c=l+e.options.indentUnit:"subtract"==r?c=l-e.options.indentUnit:"number"==typeof r&&(c=l+r),c=Math.max(0,c);var d="",f=0;if(e.options.indentWithTabs)for(var h=Math.floor(c/a);h;--h)f+=a,d+="\t";if(fa,l=Le(t),c=null;if(s&&n.ranges.length>1)if(Hs&&Hs.text.join("\n")==t){if(n.ranges.length%Hs.text.length==0){c=[];for(var u=0;u=0;f--){var h=n.ranges[f],p=h.from(),m=h.to();h.empty()&&(r&&r>0?p=it(p.line,p.ch-r):e.state.overwrite&&!s?m=it(m.line,Math.min(Xe(o,m.line).text.length,m.ch+G(l).length)):s&&Hs&&Hs.lineWise&&Hs.text.join("\n")==l.join("\n")&&(p=m=it(p.line,0)));var g={from:p,to:m,text:c?c[f%c.length]:l,origin:i||(s?"paste":e.state.cutIncoming>a?"cut":"+input")};Yo(e.doc,g),Or(e,"inputRead",e,g)}t&&!s&&qs(e,t),ai(e),e.curOp.updateInput<2&&(e.curOp.updateInput=d),e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=-1}function Us(e,t){var r=e.clipboardData&&e.clipboardData.getData("Text");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Ai(t,(function(){return $s(t,r,0,null,"paste")})),!0}function qs(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),a=!1;if(o.electricChars){for(var s=0;s-1){a=js(e,i.head.line,"smart");break}}else o.electricInput&&o.electricInput.test(Xe(e.doc,i.head.line).text.slice(0,i.head.ch))&&(a=js(e,i.head.line,"smart"));a&&Or(e,"electricInput",e,i.head.line)}}}function zs(e){for(var t=[],r=[],n=0;nr&&(js(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&ai(this));else{var o=i.from(),a=i.to(),s=Math.max(r,o.line);r=Math.min(this.lastLine(),a.line-(a.ch?0:1))+1;for(var l=s;l0&&Wo(this.doc,n,new io(o,c[n].to()),U)}}})),getTokenAt:function(e,t){return xt(this,e,t)},getLineTokens:function(e,t){return xt(this,it(e),t,!0)},getTokenTypeAt:function(e){e=dt(this.doc,e);var t,r=vt(this,Xe(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var a=n+i>>1;if((a?r[2*a-1]:0)>=o)i=a;else{if(!(r[2*a+1]o&&(e=o,i=!0),n=Xe(this.doc,e)}else n=e;return mn(this,n,{top:0,left:0},t||"page",r||i).top+(i?this.doc.height-ir(n):0)},defaultTextHeight:function(){return Dn(this.display)},defaultCharWidth:function(){return Mn(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display;e=yn(this,dt(this.doc,e));var a=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)a=e.top;else if("above"==n||"near"==n){var l=Math.max(o.wrapper.clientHeight,this.doc.height),c=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>l)&&e.top>t.offsetHeight?a=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=l&&(a=e.bottom),s+t.offsetWidth>c&&(s=c-t.offsetWidth)}t.style.top=a+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),r&&ni(this,{left:s,top:a,right:s+t.offsetWidth,bottom:a+t.offsetHeight})},triggerOnKeyDown:Ei(ls),triggerOnKeyPress:Ei(ds),triggerOnKeyUp:us,triggerOnMouseDown:Ei(vs),execCommand:function(e){if(Xa.hasOwnProperty(e))return Xa[e].call(null,this)},triggerElectric:Ei((function(e){qs(this,e)})),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=dt(this.doc,e),a=0;a0&&s(r.charAt(n-1)))--n;while(i.5||this.options.lineWrapping)&&Ln(this),ve(this,"refresh",this)})),swapDoc:Ei((function(e){var t=this.doc;return t.cm=null,this.state.selectingText&&this.state.selectingText(),yo(this,e),dn(this),this.display.input.reset(),si(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,Or(this,"swapDoc",this,t),t})),phrase:function(e){var t=this.options.phrases;return t&&Object.prototype.hasOwnProperty.call(t,e)?t[e]:e},getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},we(e),e.registerHelper=function(t,n,i){r.hasOwnProperty(t)||(r[t]=e[t]={_global:[]}),r[t][n]=i},e.registerGlobalHelper=function(t,n,i,o){e.registerHelper(t,n,o),r[t]._global.push({pred:i,val:o})}}function Gs(e,t,r,n,i){var o=t,a=r,s=Xe(e,t.line),l=i&&"rtl"==e.direction?-r:r;function c(){var r=t.line+l;return!(r=e.first+e.size)&&(t=new it(r,t.ch,t.sticky),s=Xe(e,r))}function u(o){var a;if("codepoint"==n){var u=s.text.charCodeAt(t.ch+(n>0?0:-1));a=isNaN(u)?null:new it(t.line,Math.max(0,Math.min(s.text.length,t.ch+r*(u>=55296&&u<56320?2:1))),-r)}else a=i?Ga(e.cm,s,t,r):Ja(s,t,r);if(null==a){if(o||!c())return!1;t=Va(i,e.cm,s,t.line,l)}else t=a;return!0}if("char"==n||"codepoint"==n)u();else if("column"==n)u(!0);else if("word"==n||"group"==n)for(var d=null,f="group"==n,h=e.cm&&e.cm.getHelper(t,"wordChars"),p=!0;;p=!1){if(r<0&&!u(!p))break;var m=s.text.charAt(t.ch)||"\n",g=re(m,h)?"w":f&&"\n"==m?"n":!f||/\s/.test(m)?null:"p";if(!f||p||g||(g="s"),d&&d!=g){r<0&&(r=1,u(),t.sticky="after");break}if(g&&(d=g),r>0&&!u(!p))break}var v=Jo(e,t,o,a,!0);return at(o,v)&&(v.hitSide=!0),v}function Xs(e,t,r,n){var i,o,a=e.doc,s=t.left;if("page"==n){var l=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),c=Math.max(l-.5*Dn(e.display),3);i=(r>0?t.bottom:t.top)+r*c}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(;;){if(o=wn(e,s,i),!o.outside)break;if(r<0?i<=0:i>=a.height){o.hitSide=!0;break}i+=5*r}return o}var Ys=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new j,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Qs(e,t){var r=Zr(e,t.line);if(!r||r.hidden)return null;var n=Xe(e.doc,t.line),i=Xr(r,n,t.line),o=fe(n,e.doc.direction),a="left";if(o){var s=ue(o,t.ch);a=s%2?"right":"left"}var l=on(i.map,t.ch,a);return l.offset="right"==l.collapse?l.end:l.start,l}function Zs(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}function el(e,t){return t&&(e.bad=!0),e}function tl(e,t,r,n,i){var o="",a=!1,s=e.doc.lineSeparator(),l=!1;function c(e){return function(t){return t.id==e}}function u(){a&&(o+=s,l&&(o+=s),a=l=!1)}function d(e){e&&(u(),o+=e)}function f(t){if(1==t.nodeType){var r=t.getAttribute("cm-text");if(r)return void d(r);var o,h=t.getAttribute("cm-marker");if(h){var p=e.findMarks(it(n,0),it(i+1,0),c(+h));return void(p.length&&(o=p[0].find(0))&&d(Ye(e.doc,o.from,o.to).join(s)))}if("false"==t.getAttribute("contenteditable"))return;var m=/^(pre|div|p|li|table|br)$/i.test(t.nodeName);if(!/^br$/i.test(t.nodeName)&&0==t.textContent.length)return;m&&u();for(var g=0;g=t.display.viewTo||o.line=t.display.viewFrom&&Qs(t,i)||{node:l[0].measure.map[2],offset:0},u=o.linen.firstLine()&&(a=it(a.line-1,Xe(n.doc,a.line-1).length)),s.ch==Xe(n.doc,s.line).text.length&&s.linei.viewTo-1)return!1;a.line==i.viewFrom||0==(e=Rn(n,a.line))?(t=et(i.view[0].line),r=i.view[0].node):(t=et(i.view[e].line),r=i.view[e-1].node.nextSibling);var l,c,u=Rn(n,s.line);if(u==i.view.length-1?(l=i.viewTo-1,c=i.lineDiv.lastChild):(l=et(i.view[u+1].line)-1,c=i.view[u+1].node.previousSibling),!r)return!1;var d=n.doc.splitLines(tl(n,r,c,t,l)),f=Ye(n.doc,it(t,0),it(l,Xe(n.doc,l).text.length));while(d.length>1&&f.length>1)if(G(d)==G(f))d.pop(),f.pop(),l--;else{if(d[0]!=f[0])break;d.shift(),f.shift(),t++}var h=0,p=0,m=d[0],g=f[0],v=Math.min(m.length,g.length);while(ha.ch&&y.charCodeAt(y.length-p-1)==_.charCodeAt(_.length-p-1))h--,p++;d[d.length-1]=y.slice(0,y.length-p).replace(/^\u200b+/,""),d[0]=d[0].slice(h).replace(/\u200b+$/,"");var w=it(t,h),C=it(l,f.length?G(f).length-p:0);return d.length>1||d[0]||ot(w,C)?(na(n.doc,d,w,C,"+input"),!0):void 0},Ys.prototype.ensurePolled=function(){this.forceCompositionEnd()},Ys.prototype.reset=function(){this.forceCompositionEnd()},Ys.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Ys.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout((function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()}),80))},Ys.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Ai(this.cm,(function(){return In(e.cm)}))},Ys.prototype.setUneditable=function(e){e.contentEditable="false"},Ys.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||Ni(this.cm,$s)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Ys.prototype.readOnlyChanged=function(e){this.div.contentEditable=String("nocursor"!=e)},Ys.prototype.onContextMenu=function(){},Ys.prototype.resetPosition=function(){},Ys.prototype.needsContentAttribute=!0;var il=function(e){this.cm=e,this.prevInput="",this.pollingFast=!1,this.polling=new j,this.hasSelection=!1,this.composing=null};function ol(e,t){if(t=t?W(t):{},t.value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=E();t.autofocus=r==e||null!=e.getAttribute("autofocus")&&r==document.body}function n(){e.value=s.getValue()}var i;if(e.form&&(pe(e.form,"submit",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var a=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=a}}catch(l){}}t.finishInit=function(r){r.save=n,r.getTextArea=function(){return e},r.toTextArea=function(){r.toTextArea=isNaN,n(),e.parentNode.removeChild(r.getWrapperElement()),e.style.display="",e.form&&(ge(e.form,"submit",n),t.leaveSubmitMethodAlone||"function"!=typeof e.form.submit||(e.form.submit=i))}},e.style.display="none";var s=Is((function(t){return e.parentNode.insertBefore(t,e.nextSibling)}),t);return s}function al(e){e.off=ge,e.on=pe,e.wheelEventPixels=to,e.Doc=Ca,e.splitLines=Le,e.countColumn=B,e.findColumn=K,e.isWordChar=te,e.Pass=$,e.signal=ve,e.Line=sr,e.changeEnd=so,e.scrollbarModel=_i,e.Pos=it,e.cmpPos=ot,e.modes=Be,e.mimeModes=je,e.resolveMode=$e,e.getMode=Ue,e.modeExtensions=qe,e.extendMode=ze,e.copyState=Ke,e.startState=Ve,e.innerMode=Je,e.commands=Xa,e.keyMap=Wa,e.keyName=Ua,e.isModifierKey=Fa,e.lookupKey=Ha,e.normalizeKeyMap=ja,e.StringStream=Ge,e.SharedTextMarker=ga,e.TextMarker=pa,e.LineWidget=ua,e.e_preventDefault=Ce,e.e_stopPropagation=xe,e.e_stop=Te,e.addClass=L,e.contains=N,e.rmClass=S,e.keyNames=La}il.prototype.init=function(e){var t=this,r=this,n=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!ye(n,e)){if(n.somethingSelected())Fs({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=zs(n);Fs({lineWise:!0,text:t.text}),"cut"==e.type?n.setSelections(t.ranges,null,U):(r.prevInput="",i.value=t.text.join("\n"),R(i))}"cut"==e.type&&(n.state.cutIncoming=+new Date)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),m&&(i.style.width="0px"),pe(i,"input",(function(){a&&s>=9&&t.hasSelection&&(t.hasSelection=null),r.poll()})),pe(i,"paste",(function(e){ye(n,e)||Us(e,n)||(n.state.pasteIncoming=+new Date,r.fastPoll())})),pe(i,"cut",o),pe(i,"copy",o),pe(e.scroller,"paste",(function(t){if(!$r(e,t)&&!ye(n,t)){if(!i.dispatchEvent)return n.state.pasteIncoming=+new Date,void r.focus();var o=new Event("paste");o.clipboardData=t.clipboardData,i.dispatchEvent(o)}})),pe(e.lineSpace,"selectstart",(function(t){$r(e,t)||Ce(t)})),pe(i,"compositionstart",(function(){var e=n.getCursor("from");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor("to"),{className:"CodeMirror-composing"})}})),pe(i,"compositionend",(function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)}))},il.prototype.createField=function(e){this.wrapper=Js(),this.textarea=this.wrapper.firstChild},il.prototype.screenReaderLabelChanged=function(e){e?this.textarea.setAttribute("aria-label",e):this.textarea.removeAttribute("aria-label")},il.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=Un(e);if(e.options.moveInputWithCursor){var i=yn(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),a=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+a.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+a.left-o.left))}return n},il.prototype.showSelection=function(e){var t=this.cm,r=t.display;D(r.cursorDiv,e.cursors),D(r.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},il.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput="";var r=t.getSelection();this.textarea.value=r,t.state.focused&&R(this.textarea),a&&s>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value="",a&&s>=9&&(this.hasSelection=null))}},il.prototype.getField=function(){return this.textarea},il.prototype.supportsTouch=function(){return!1},il.prototype.focus=function(){if("nocursor"!=this.cm.options.readOnly&&(!v||E()!=this.textarea))try{this.textarea.focus()}catch(e){}},il.prototype.blur=function(){this.textarea.blur()},il.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},il.prototype.receivedFocus=function(){this.slowPoll()},il.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,(function(){e.poll(),e.cm.state.focused&&e.slowPoll()}))},il.prototype.fastPoll=function(){var e=!1,t=this;function r(){var n=t.poll();n||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))}t.pollingFast=!0,t.polling.set(20,r)},il.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||Pe(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(a&&s>=9&&this.hasSelection===i||y&&/[\uf700-\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n="​"),8666==o)return this.reset(),this.cm.execCommand("undo")}var l=0,c=Math.min(n.length,i.length);while(l1e3||i.indexOf("\n")>-1?r.value=e.prevInput="":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor("to"),{className:"CodeMirror-composing"}))})),!0},il.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},il.prototype.onKeyPress=function(){a&&s>=9&&(this.hasSelection=null),this.fastPoll()},il.prototype.onContextMenu=function(e){var t=this,r=t.cm,n=r.display,i=t.textarea;t.contextMenuPending&&t.contextMenuPending();var o=Pn(r,e),c=n.scroller.scrollTop;if(o&&!d){var u=r.options.resetSelectionOnContextMenu;u&&-1==r.doc.sel.contains(o)&&Ni(r,Fo)(r.doc,ao(o),U);var f,h=i.style.cssText,p=t.wrapper.style.cssText,m=t.wrapper.offsetParent.getBoundingClientRect();if(t.wrapper.style.cssText="position: static",i.style.cssText="position: absolute; width: 30px; height: 30px;\n top: "+(e.clientY-m.top-5)+"px; left: "+(e.clientX-m.left-5)+"px;\n z-index: 1000; background: "+(a?"rgba(255, 255, 255, .05)":"transparent")+";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",l&&(f=window.scrollY),n.input.focus(),l&&window.scrollTo(null,f),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=" "),t.contextMenuPending=y,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),a&&s>=9&&v(),x){Te(e);var g=function(){ge(window,"mouseup",g),setTimeout(y,20)};pe(window,"mouseup",g)}else setTimeout(y,50)}function v(){if(null!=i.selectionStart){var e=r.somethingSelected(),o="​"+(e?i.value:"");i.value="⇚",i.value=o,t.prevInput=e?"":"​",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function y(){if(t.contextMenuPending==y&&(t.contextMenuPending=!1,t.wrapper.style.cssText=p,i.style.cssText=h,a&&s<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=c),null!=i.selectionStart)){(!a||a&&s<9)&&v();var e=0,o=function(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&"​"==t.prevInput?Ni(r,Go)(r):e++<10?n.detectingSelectAll=setTimeout(o,500):(n.selForContextMenu=null,n.input.reset())};n.detectingSelectAll=setTimeout(o,200)}}},il.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled="nocursor"==e,this.textarea.readOnly=!!e},il.prototype.setUneditable=function(){},il.prototype.needsContentAttribute=!1,Ls(Is),Vs(Is);var sl="iter insert remove copy getEditor constructor".split(" ");for(var ll in Ca.prototype)Ca.prototype.hasOwnProperty(ll)&&H(sl,ll)<0&&(Is.prototype[ll]=function(e){return function(){return e.apply(this.doc,arguments)}}(Ca.prototype[ll]));return we(Ca),Is.inputStyles={textarea:il,contenteditable:Ys},Is.defineMode=function(e){Is.defaults.mode||"null"==e||(Is.defaults.mode=e),He.apply(this,arguments)},Is.defineMIME=Fe,Is.defineMode("null",(function(){return{token:function(e){return e.skipToEnd()}}})),Is.defineMIME("text/plain","null"),Is.defineExtension=function(e,t){Is.prototype[e]=t},Is.defineDocExtension=function(e,t){Ca.prototype[e]=t},Is.fromTextArea=ol,al(Is),Is.version="5.58.3",Is}))},"5aed":function(module,__webpack_exports__,__webpack_require__){"use strict";(function($){var core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("ac4d"),core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es7_symbol_async_iterator__WEBPACK_IMPORTED_MODULE_0__),core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("8a81"),core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(core_js_modules_es6_symbol__WEBPACK_IMPORTED_MODULE_1__),core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("5df3"),core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_string_iterator__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("1c4c"),core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_array_from__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("8e6e"),core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_4__),core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("456d"),core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_5__),C_Users_Administrator_Desktop_ued_document_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("d0ff"),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("6b54"),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_7___default=__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_7__),core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("c5f6"),core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_8___default=__webpack_require__.n(core_js_modules_es6_number_constructor__WEBPACK_IMPORTED_MODULE_8__),core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_9__=__webpack_require__("20d6"),core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_9___default=__webpack_require__.n(core_js_modules_es6_array_find_index__WEBPACK_IMPORTED_MODULE_9__),core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_10__=__webpack_require__("7514"),core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_10___default=__webpack_require__.n(core_js_modules_es6_array_find__WEBPACK_IMPORTED_MODULE_10__),C_Users_Administrator_Desktop_ued_document_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_11__=__webpack_require__("fc11"),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_12__=__webpack_require__("3b2b"),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_12___default=__webpack_require__.n(core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_12__),core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_13__=__webpack_require__("ac6a"),core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_13___default=__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_13__),core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_14__=__webpack_require__("7f7f"),core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_14___default=__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_14__),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_15__=__webpack_require__("a481"),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_15___default=__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_15__),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_16__=__webpack_require__("28a5"),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_16___default=__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_16__),vuex__WEBPACK_IMPORTED_MODULE_17__=__webpack_require__("2f62"),_api_api__WEBPACK_IMPORTED_MODULE_18__=__webpack_require__("4ec3"),_editors_vue__WEBPACK_IMPORTED_MODULE_19__=__webpack_require__("f93f"),_setting_vue__WEBPACK_IMPORTED_MODULE_20__=__webpack_require__("49f7"),vue_codemirror__WEBPACK_IMPORTED_MODULE_21__=__webpack_require__("8f94"),vue_codemirror__WEBPACK_IMPORTED_MODULE_21___default=__webpack_require__.n(vue_codemirror__WEBPACK_IMPORTED_MODULE_21__),codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_22__=__webpack_require__("a7be"),codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_22___default=__webpack_require__.n(codemirror_lib_codemirror_css__WEBPACK_IMPORTED_MODULE_22__),codemirror_mode_javascript_javascript_js__WEBPACK_IMPORTED_MODULE_23__=__webpack_require__("f9d4"),codemirror_mode_javascript_javascript_js__WEBPACK_IMPORTED_MODULE_23___default=__webpack_require__.n(codemirror_mode_javascript_javascript_js__WEBPACK_IMPORTED_MODULE_23__),codemirror_theme_base16_light_css__WEBPACK_IMPORTED_MODULE_24__=__webpack_require__("cc10"),codemirror_theme_base16_light_css__WEBPACK_IMPORTED_MODULE_24___default=__webpack_require__.n(codemirror_theme_base16_light_css__WEBPACK_IMPORTED_MODULE_24__),qs__WEBPACK_IMPORTED_MODULE_25__=__webpack_require__("4328"),qs__WEBPACK_IMPORTED_MODULE_25___default=__webpack_require__.n(qs__WEBPACK_IMPORTED_MODULE_25__);function _createForOfIteratorHelper(e,t){var r;if("undefined"===typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(r=_unsupportedIterableToArray(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){r=e[Symbol.iterator]()},n:function(){var e=r.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==r.return||r.return()}finally{if(s)throw o}}}}function _unsupportedIterableToArray(e,t){if(e){if("string"===typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r1&&void 0!==arguments[1]?arguments[1]:0;function parse(item,result){var rule=item.rule?"|"+item.rule:"",value=item.default_value;if(item.default_value&&0===item.default_value.indexOf("[")&&"]"===item.default_value.substring(item.default_value.length-1))try{var reg=/\s*/g,reg2=/\"/g;value=value.substring(1,value.length-1).replace(reg,"").replace(reg2,"").split(","),result[item.name+rule]=value}catch(e){result[item.name+rule]=value}else if(item.name.length)switch(item.type){case 1:result[item.name+rule]=value;break;case 2:""===value&&(value=1);var parsed=parseFloat(value);isNaN(parsed)||(value=parsed),result[item.name+rule]=value;break;case 3:"true"===value&&(value=!0),"false"===value&&(value=!1),"0"===value&&(value=!1),value=!!value,result[item.name+rule]=value;break;case 4:result[item.name+rule]={},item.children.forEach((function(e){parse(e,result[item.name+rule])}));break;case 5:if(value)try{result[item.name+rule]=value}catch(e){result[item.name+rule]=item.value}else result[item.name+rule]=item.children.length?[{}]:[],item.children.forEach((function(e){parse(e,result[item.name+rule][0])}));break;case 6:if(1==num)try{var fun=eval(item.default_value);result[item.name+rule]=fun()}catch(e){result[item.name+rule]=item.default_value}else result[item.name+rule]=value;break;case 7:if(1==num)try{result[item.name+rule]=new RegExp(item.default_value)}catch(e){result[item.name+rule]=item.default_value}else{var _reg=/\\/g;result[item.name+rule]=item.default_value.replace(_reg,"")}break;case 8:result[item.name+rule]=null;break}}var result={};return tree.length&&tree.forEach((function(e){parse(e,result)})),result}function romoveSlash(e){var t={},r=/\//g;for(var n in e)"string"==typeof e[n]&&r.test(e[n])?t[n]=e[n].replace(r,""):t[n]=e[n];return t}__webpack_exports__["a"]={name:"chapter",components:{editors:_editors_vue__WEBPACK_IMPORTED_MODULE_19__["a"],setting:_setting_vue__WEBPACK_IMPORTED_MODULE_20__["a"],codemirror:vue_codemirror__WEBPACK_IMPORTED_MODULE_21__["codemirror"]},data:function(){return{isHeaderLast:!0,docName:"",docTitle:"",defaultCheckedKeys:[],layout:"",has_manage:!0,filterText:"",chapters:[],defaultProps:{children:"children",label:"name"},defaultExpanded:[],defaultSelect:"",menuBarVisible:!1,clientX:"",clientY:"",selectNodeObj:{},rightSelectNodeObj:{},rightSelectNode:{},addFirst:!0,addNodeObj:{name:"",is_dir:1,layout:0},dialogTitle:"",dialogFormLabel:"",dialogVisible:!1,dialogMoveVisible:!1,dialogMoveTitle:"",moveDoc:"",moveClass:"",docList:[],docChapters:[],showSetting:!1,dialogVisibleCopy:!1,copyNodeName:"",methodArr:[],paramsArr:[{type:"String",value:1},{type:"Number",value:2},{type:"Boolean",value:3},{type:"Object",value:4},{type:"Array",value:5},{type:"Function",value:6},{type:"RegExp",value:7},{type:"Null",value:8}],form:{method:1,url:"",description:"",body_param_location:3,tab_location:"1"},formCompared:{},formCopy:{method:1,url:"",description:"",body_param_location:3,tab_location:"1"},baseRequestData:{already:0,isChecked:!1,name:"",type:1,enabled:2,default_value:"",description:"",rule:"",children:[]},markDownContent:"",apiHeaderTreeData:[],apiParamsTreeData:[],apiBodyTreeData:[],apiResTreeData:[],apiResTreeDataCopy:[{already:0,isChecked:!1,name:"",type:1,enabled:2,default_value:"",description:"",rule:"",children:[]}],chapter_id:"",isDocEmpty:!1,previewId:"",loading:"",confirmDisabled:!1,confirmCopyDisabled:!1,apiHeaderTreeDataCompared:"",apiParamsTreeDataCompared:"",apiBodyTreeDataCompared:"",apiResTreeDataCompared:"",markDownContentCompared:"",isSave:!0,isFormChange:!1,isApiHeaderTreeDataChange:!1,isApiParamsTreeDataChange:!1,isApiBodyTreeDataChange:!1,isApiResTreeDataChange:!1,isMarkDownContentChange:!1,treeActive:!1,isViewRequest:!1,isViewResponse:!1,requestMockTemplate:"",requestMockJson:"",responseMockTemplate:"",responseMockJson:"",responseMockJsonList:[],requestMockHeight:"",responseMockHeight:"",mockApiUrl:"",mockApiUrl2:"",isDelete:!1,code:"",cmOptions:{tabSize:4,mode:{name:"javascript",json:!0},theme:"base16-light",lineNumbers:!0,line:!0,highlightDifferences:!0},importDialogVisible:!1,importDisabled:!1,importQuery:{data:null,location:null,type:null},importDialogTitle:"导入键值对",isSubmit:!1,addFlag:!1}},computed:_objectSpread({},Object(vuex__WEBPACK_IMPORTED_MODULE_17__["b"])({UserInfo:"UserInfo"})),watch:{filterText:function(e){this.$refs.chaptersTree.filter(e)},dialogVisible:function(e){e&&setTimeout((function(){document.querySelector(".only-input-dialog .el-input__inner").focus()}),300)},UserInfo:function(e){e&&this.getOperRecord()},markDownContent:{deep:!0,handler:function(e,t){var r=JSON.stringify(e),n=JSON.stringify(this.markDownContentCompared);this.isMarkDownContentChange=r!=n}},form:{deep:!0,immediate:!1,handler:function(e,t){var r=JSON.parse(JSON.stringify(e));delete r.tab_location;var n="";n=r.url?JSON.stringify(r):'""';var i=JSON.parse(JSON.stringify(this.formCompared));delete i.tab_location;var o=JSON.stringify(i);this.isFormChange=n!=o}},apiHeaderTreeData:{deep:!0,immediate:!1,handler:function(e){if(e){var t=JSON.parse(JSON.stringify(e)),r="";t.length&&(t.forEach((function(e){delete e.already})),t=t.filter((function(e){return e.name||e.description})),r=t.length?JSON.stringify(t):'""');var n=JSON.parse(JSON.stringify(this.apiHeaderTreeDataCompared)),i=JSON.stringify(n);this.isApiHeaderTreeDataChange=r!=i}}},apiParamsTreeData:{deep:!0,immediate:!1,handler:function(e){if(e){var t=JSON.parse(JSON.stringify(e)),r="";t.length&&(t.forEach((function(e){delete e.already})),t=t.filter((function(e){return e.name||e.description})),r=t.length?JSON.stringify(t):'""');var n=JSON.parse(JSON.stringify(this.apiParamsTreeDataCompared)),i=JSON.stringify(n);this.isApiParamsTreeDataChange=r!=i}}},apiBodyTreeData:{deep:!0,immediate:!1,handler:function(e){if(e){var t=JSON.parse(JSON.stringify(e)),r="";t.length&&(t.forEach((function(e){delete e.already})),t=t.filter((function(e){return e.name||e.description})),r=t.length?JSON.stringify(t):'""');var n=JSON.parse(JSON.stringify(this.apiBodyTreeDataCompared)),i=JSON.stringify(n);this.isApiBodyTreeDataChange=r!=i}}},apiResTreeData:{deep:!0,immediate:!1,handler:function(e){if(e){var t=JSON.parse(JSON.stringify(e));t.length&&0==t[0].already&&(t=t.filter((function(e){return e.name||e.description}))),t.length?t.forEach((function(e){e.data&&e.data.length&&(e.data.forEach((function(e){delete e.already})),e.data=e.data.filter((function(e){return e.name||e.description})))})):t=[{description:"",data:[]}];var r="";r=JSON.stringify(t);var n=JSON.parse(JSON.stringify(this.apiResTreeDataCompared)),i=JSON.stringify(n);this.isApiResTreeDataChange=r!=i}}}},created:function(){this.$route.query&&"add"==this.$route.query.type?this.clickIconAddNode(!0):(this.UserInfo&&this.getOperRecord(),this.getChapters()),this.getMethodType(),this.mockApiUrl=location.origin+"/document/mockApiReponse/".concat(this.$route.params.id)+"/"},mounted:function(){var e=this;document.addEventListener("keydown",(function(t){var r=0;t=t||event||window.event,r=t.keyCode||t.which||t.charCode,(t.ctrlKey||t.metaKey)&&83==r&&(t.preventDefault(),e.saveApi())}))},beforeRouteLeave:function(e,t,r){var n=this;this.isFormChange||this.isApiHeaderTreeDataChange||this.isApiParamsTreeDataChange||this.isApiBodyTreeDataChange||this.isApiResTreeDataChange||this.isMarkDownContentChange?this.$confirm("您有数据尚未保存,确认保存?","提示",{showClose:!1,closeOnClickModal:!1,confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then((function(){n.saveApi()})).catch((function(){n.$message({type:"info",message:"已取消"}),r()})):r()},methods:{urlChange:function(){this.mockApiUrl=location.origin+"/document/mockApiReponse/".concat(this.$route.params.id)+"/"+this.form.url},initCreateChapter:function(){var e=this;Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["c"])({document_id:this.$route.params.id,parent_id:0,is_dir:1,layout:0,name:"默认目录"}).then((function(t){e.chapter_id=t.data.id;var r=t.data;if(e.addFirst)e.chapters.push(r);else{var n=e.rightSelectNodeObj;n.children||e.$set(n,"children",[]),n.children.push(r)}e.$nextTick((function(){e.$refs.chaptersTree.setCurrentKey(r.id),e.handleNodeClick(e.$refs.chaptersTree.getCurrentNode());var t=JSON.parse(localStorage.getItem("we7_doc_user_"+e.UserInfo.id)),n=t["document_"+e.$route.params.id];e.defaultExpanded=n.defaultExpanded,e.defaultExpanded.push(r.id)}))})).catch((function(){}))},getOperRecord:function(){var e="we7_doc_user_"+this.UserInfo.id,t=JSON.parse(localStorage.getItem(e)),r="document_"+this.$route.params.id,n={};n[r]={defaultExpanded:[],defaultSelect:""},t?t[r]?(this.defaultExpanded=t[r].defaultExpanded,this.defaultSelect=t[r].defaultSelect):(t[r]={defaultExpanded:[],defaultSelect:""},localStorage.setItem(e,JSON.stringify(t))):localStorage.setItem(e,JSON.stringify(n))},setOperRecord:function(e){var t=this.$route.query.type,r=this.$route.params.id;if("add"==t){var n={};n["document_"+r]={defaultExpanded:[],defaultSelect:""},localStorage.setItem("we7_doc_user_"+this.UserInfo.id,JSON.stringify(n))}else{var i=JSON.parse(localStorage.getItem("we7_doc_user_"+this.UserInfo.id)),o=i["document_"+this.$route.params.id];e.is_dir,o.defaultSelect=e.id,localStorage.setItem("we7_doc_user_"+this.UserInfo.id,JSON.stringify(i))}},getChapters:function(){var e=this;Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["h"])({document_id:this.$route.params.id}).then((function(t){if(200==t.code){var r="";if(localStorage["currentData_"+e.$route.params.id]&&(r=JSON.parse(localStorage["currentData_"+e.$route.params.id])),e.docName=t.data.document.name,0==t.data.catalog.length)e.isDocEmpty=!0;else if(t.data.catalog&&!r){var n=function r(n){if(n.length){var i,o=_createForOfIteratorHelper(n);try{for(o.s();!(i=o.n()).done;){var a=i.value;try{if(a.is_dir&&a.children.length)return r(a.children),!1;if(!a.is_dir)return e.isDocEmpty=!1,e.chapters=e.initTreeData(t.data.catalog),e.handleNodeClick(a),e.defaultExpanded=[a.parent_id],!1;e.isDocEmpty=!0,e.has_manage=t.data.acl.has_manage,e.chapters=e.initTreeData(t.data.catalog)}catch(s){}}}catch(l){o.e(l)}finally{o.f()}}};t.data.catalog.length&&n(t.data.catalog)}else e.isDocEmpty=!1,e.docName=t.data.document.name,e.has_manage=t.data.acl.has_manage,e.chapters=e.initTreeData(t.data.catalog),r?e.$nextTick((function(){if(e.$refs.chaptersTree.setCurrentKey(r.id),null!=e.$refs.chaptersTree.getCurrentNode()){e.handleNodeClick(e.$refs.chaptersTree.getCurrentNode());var n=JSON.parse(localStorage.getItem("we7_doc_user_"+e.UserInfo.id)),i=n["document_"+e.$route.params.id];e.defaultExpanded=i.defaultExpanded,e.defaultExpanded.push(e.$refs.chaptersTree.getCurrentNode().id)}else{e.$refs.chaptersTree.setCurrentKey(t.data.catalog[0].id),e.handleNodeClick(t.data.catalog[0]);var o=JSON.parse(localStorage.getItem("we7_doc_user_"+e.UserInfo.id)),a=o["document_"+e.$route.params.id];e.defaultExpanded=a.defaultExpanded,e.defaultExpanded.push(t.data.catalog[0])}})):e.$nextTick((function(){e.$refs.chaptersTree.setCurrentKey(t.data.catalog[0].id),e.handleNodeClick(t.data.catalog[0])}))}}))},initTreeData:function(e){function t(e,r){for(var n=0;n0)&&0==t&&setTimeout((function(){var e=$(".w7-tree .is-current").prop("aria-expanded"),t=$(".w7-tree .is-checked").prop("aria-expanded");e||$(".w7-tree .is-current").attr("data-active","tree-active"),t||$(".w7-tree .is-checked:last").attr("data-active","tree-active")}),600)}))}},updateXY:function(e){this.clientX=e.clientX,this.clientY=e.clientY},shortcut:function(e,t){this.rightSelectNodeObj=e,this.rightSelectNode=t,this.addChildNode(!1)},leftClick:function(e,t){1!=this.menuBarVisible?this.rightClick(!1,e,t):this.menuBarVisible=!1},rightClick:function(e,t,r){var n=this;this.rightSelectNodeObj=t,this.rightSelectNode=r,this.menuBarVisible=!1,this.menuBarVisible=!0,this.$nextTick((function(){var t=document.querySelector("#menu-bar"),r=window.innerHeight,i=t.offsetHeight;e?(r-e.clientY>i?(t.style.top=e.clientY+20+"px",t.className="menu-bar bottom"):(t.style.top=e.clientY-i-10+"px",t.className="menu-bar top"),t.style.left=e.clientX-50+"px"):(r-n.clientY>i?(t.style.top=n.clientY+20+"px",t.className="menu-bar bottom"):(t.style.top=n.clientY-i-20+"px",t.className="menu-bar top"),t.style.left=n.clientX-50+"px")})),document.addEventListener("click",this.removeRightClickEvent)},removeRightClickEvent:function(){this.menuBarVisible=!1,document.removeEventListener("click",this.removeRightClickEvent)},clickIconAddNode:function(e){this.addFirst=!0,this.dialogTitle=e?"新建目录":"新建文档",this.dialogFormLabel=e?"目录名称":"文档名称",this.addNodeObj.name="",this.addNodeObj.is_dir=e?1:0,this.addNodeObj.layout=e?0:1,this.dialogVisible=!0,this.rightSelectNode={},this.rightSelectNodeObj={}},updateNode:function(e){this.dialogTitle="重命名",localStorage.rename=this.rightSelectNodeObj.name,this.addNodeObj.name=this.rightSelectNodeObj.name,this.dialogFormLabel=e?"新的目录名称":"新的文档名称",this.dialogVisible=!0},copyNode:function(){this.copyNodeName=this.rightSelectNodeObj.name,this.dialogVisibleCopy=!0},addChildNode:function(e){this.addFirst=!1,5==this.rightSelectNode.level&&e?this.$message("第五级只能为文档!"):(this.dialogTitle=e?"新建目录":"新建文档",this.dialogFormLabel=e?"目录名称":"文档名称",this.addNodeObj.name="",this.addNodeObj.is_dir=e?1:0,this.dialogVisible=!0)},confirmBtnCopy:function(){var e=this;this.copyNodeName?(this.confirmCopyDisabled=!0,this.$post("/admin/chapter/copy",{document_id:this.$route.params.id,chapter_id:this.rightSelectNodeObj.id,parent_id:this.rightSelectNodeObj.parent_id,name:this.copyNodeName}).then((function(t){var r=t.data;if(e.confirmCopyDisabled=!1,0!=e.rightSelectNodeObj.parent_id){var n=e.rightSelectNode,i=n.parent;i.data.children.push(r)}else e.chapters.push(r);e.$message("复制成功!"),e.dialogVisibleCopy=!1,e.$nextTick((function(){e.$refs.chaptersTree.setCurrentKey(r.id),e.handleNodeClick(e.$refs.chaptersTree.getCurrentNode());var t=JSON.parse(localStorage.getItem("we7_doc_user_"+e.UserInfo.id)),n=t["document_"+e.$route.params.id];e.defaultExpanded=n.defaultExpanded,e.defaultExpanded.push(r.id)}))}))):this.$message("章节名称不能为空!")},confirmBtn:function(){var e=this;if(this.addFlag)return!1;this.addFlag=!0,this.addNodeObj.name?(this.confirmDisabled=!0,"新建目录"==this.dialogTitle&&(this.formCompared="",this.markDownContentCompared="",this.apiResTreeDataCompared=[],this.apiResTreeDataCompared.push({description:"",data:[]}),Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["c"])({document_id:this.$route.params.id,parent_id:this.addFirst?0:this.rightSelectNode.data.id,is_dir:this.addNodeObj.is_dir,layout:this.addNodeObj.layout,name:this.addNodeObj.name}).then((function(t){e.chapter_id=t.data.id,e.confirmDisabled=!1;var r=t.data;if(e.addFirst)e.chapters.push(r);else{var n=e.rightSelectNodeObj;n.children||e.$set(n,"children",[]),n.children.push(r)}e.$message("新增成功!"),e.dialogVisible=!1,setTimeout((function(){e.addFlag=!1}),3e3)})).catch((function(){e.dialogVisible=!1,e.confirmDisabled=!1,setTimeout((function(){e.addFlag=!1}),3e3)}))),"新建文档"==this.dialogTitle&&(this.formCompared="",this.markDownContentCompared="",this.apiResTreeDataCompared=[],this.apiResTreeDataCompared.push({description:"",data:[]}),Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["c"])({document_id:this.$route.params.id,parent_id:this.addFirst?0:this.rightSelectNode.data.id,is_dir:this.addNodeObj.is_dir,layout:this.addNodeObj.layout,name:this.addNodeObj.name}).then((function(t){e.chapter_id=t.data.id,e.confirmDisabled=!1;var r=t.data;if(e.addFirst)e.chapters.push(r);else{var n=e.rightSelectNodeObj;n.children||e.$set(n,"children",[]),n.children.push(r)}e.$message("新增成功!"),e.emptyForm(),e.isDocEmpty=!1,e.dialogVisible=!1,setTimeout((function(){e.addFlag=!1}),3e3),e.$nextTick((function(){e.$refs.chaptersTree.setCurrentKey(r.id),e.handleNodeClick(e.$refs.chaptersTree.getCurrentNode());var t=JSON.parse(localStorage.getItem("we7_doc_user_"+e.UserInfo.id)),n=t["document_"+e.$route.params.id];e.defaultExpanded=n.defaultExpanded,e.defaultExpanded.push(r.id)}))})).catch((function(){e.dialogVisible=!1,e.confirmDisabled=!1,setTimeout((function(){e.addFlag=!1}),3e3)}))),"重命名"==this.dialogTitle&&this.$post("/admin/chapter/update",{document_id:this.$route.params.id,chapter_id:this.rightSelectNodeObj.id,name:this.addNodeObj.name}).then((function(){e.$message("修改成功!"),e.rightSelectNodeObj.name=e.addNodeObj.name,e.dialogVisible=!1,e.confirmDisabled=!1;var t=e.docTitle,r=localStorage.rename;t==r&&(e.docTitle=e.addNodeObj.name),setTimeout((function(){e.addFlag=!1}),3e3)})).catch((function(){e.dialogVisible=!1,e.confirmDisabled=!1,setTimeout((function(){e.addFlag=!1}),3e3)}))):this.$message("章节名称不能为空!")},removeNode:function(){var e=this,t=[];if(t.push(this.rightSelectNodeObj.id),this.rightSelectNodeObj.is_dir&&this.rightSelectNodeObj.children&&this.rightSelectNodeObj.children.length){var r=function e(r){r.forEach((function(r){t.push(r.id),r.children&&r.children.length&&e(r.children)}))};r(this.rightSelectNodeObj.children)}this.$confirm("确定删除该章节吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){e.$post("/admin/chapter/delete",{document_id:e.$route.params.id,chapter_id:t}).then((function(){if(localStorage["currentData_"+e.$route.params.id]){var r=JSON.parse(localStorage["currentData_"+e.$route.params.id]);if(r){var n=r.id;t.forEach((function(t){t===n&&(localStorage["currentData_"+e.$route.params.id]="")}))}}var i=e.rightSelectNode,o=e.rightSelectNodeObj,a=i.parent,s=a.data.children||a.data,l=s.findIndex((function(e){return e.id===o.id}));s.splice(l,1),e.$message("删除成功!"),e.selectNodeObj={},e.isDelete=!0,e.getChapters()}))})).catch((function(){}))},handleDrop:function(e,t,r){var n=this;this.$post("/admin/chapter/sort",{document_id:this.$route.params.id,chapter_id:e.data.id,target:{chapter_id:t.data.id,parent_id:t.data.parent_id,position:r}}).then((function(){n.$message("修改成功!")}))},allowDrop:function(e,t,r){if(t.data.is_dir||"inner"!==r)return!0},openMoveDialog:function(e){this.dialogMoveTitle=e?"移动目录":"移动文档",this.moveDoc="",this.moveClass="",this.dialogMoveVisible=!0},remoteMethod:function(e){var t=this;""!==e?this.$post("/admin/document/all",{keyword:e}).then((function(e){t.docList=e.data.data})):this.options=[]},changeDoc:function(e){var t=this;this.$post("/admin/chapter/detail",{document_id:e}).then((function(e){t.docChapters=t.deleteA(t.deleteA(e.data.catalog))}))},deleteA:function(e){if(e.length)for(var t=e.length-1;t>=0;t--)e[t]["is_dir"]?e[t].children&&!e[t].children.length?delete e[t].children:e[t].children&&this.deleteA(e[t]["children"]):e.splice(t,1);return e},moveNode:function(){var e=this;this.moveDoc||this.$message("项目不能为空!");var t=0;this.moveClass.length&&(t=this.moveClass[this.moveClass.length-1]),this.$post("/admin/chapter/sort",{document_id:this.$route.params.id,chapter_id:this.rightSelectNodeObj.id,target:{document_id:this.moveDoc,chapter_id:t,position:"move"}}).then((function(){e.$message("移动成功!"),e.dialogMoveVisible=!1,Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["h"])({document_id:e.$route.params.id}).then((function(t){200==t.code&&(t.data.catalog.length?(localStorage["currentData_"+e.$route.params.id]="",e.getChapters()):(e.isDocEmpty=!0,e.chapters=[]))}))}))},defaultFile:function(){var e=this;this.$post("/admin/chapter/default-show",{document_id:this.$route.params.id,chapter_id:this.rightSelectNodeObj.parent_id,show_chapter_id:this.rightSelectNodeObj.id}).then((function(){e.getChapters(),e.$message("设置默认文档成功!")}))},handleClose:function(){this.getChapters(),this.showSetting=!1},getMethodType:function(){var e=this;Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["m"])({}).then((function(t){t.data&&t.data.methodLabel&&(e.methodArr=t.data.methodLabel.option)}))},tabRequest:function(e){localStorage.tab_location=e.name,this.refreshRequestMock()},paramNameChange:function(e,t){t.name.length&&(t.already=Number(t.already)+1,1==t.already&&this.insertAfter(e,t))},resParamNameChange:function(e,t){t.name.length&&(t.already=Number(t.already)+1,1==t.already&&this.insertAfter(e,t))},addFirstNode:function(){var e=JSON.parse(JSON.stringify(this.baseRequestData)),t=this;function r(r){var n=r.length-1;""==r[n].name&&""==r[n].description?t.$message.warning("已存在空白行,请勿再次添加!"):r.push(e)}var n=this.form.tab_location;1==n?r(this.apiHeaderTreeData):2==n?r(this.apiParamsTreeData):3==n&&r(this.apiBodyTreeData)},addResFirstNode:function(){var e=this,t=JSON.parse(JSON.stringify(this.baseRequestData));function r(r){var n=r.length-1;""==r[n].name&&""==r[n].description?e.$message.warning("已存在空白行,请勿再次添加!"):r.push(t)}r(this.apiResTreeData)},addApiTreeNode:function(e){var t={id:id++,already:0,isChecked:!1,name:"",type:1,enabled:2,default_value:"",description:"",rule:"",children:[]};e.children||this.$set(e,"children",[]),4==e.type||5==e.type?e.children.push(t):this.$message.warning("参数类型为Object或者为Array才可添加!")},addResApiTreeNode:function(e){var t={id:id++,already:0,isChecked:!1,name:"",type:1,enabled:2,default_value:"",description:"",rule:"",children:[]};e.children||this.$set(e,"children",[]),4==e.type||5==e.type?e.children.push(t):this.$message.warning("参数类型为Object或者为Array才可添加!")},removeApiTreeNode:function(e,t){var r=this.apiHeaderTreeData.length,n=this.apiParamsTreeData.length,i=this.apiBodyTreeData.length,o=this.form.tab_location;if(1==o&&1==r&&1==e.level)return this.$message.closeAll(),this.$message.error("已经是最后一个了,勿删!"),!1;if(2==o&&1==n&&1==e.level)return this.$message.closeAll(),this.$message.error("已经是最后一个了,勿删!"),!1;if(3==o&&1==i&&1==e.level)return this.$message.closeAll(),this.$message.error("已经是最后一个了,勿删!"),!1;var a=e.parent,s=a.data.children||a.data,l=s.findIndex((function(e){return e.id===t.id}));s.splice(l,1)},removeResApiTreeNode:function(e,t,r){var n=this.apiResTreeData[r].data.length;if(1==n&&1==e.level)return this.$message.closeAll(),this.$message.error("已经是最后一个了,勿删!"),!1;var i=e.parent,o=i.data.children||i.data,a=o.findIndex((function(e){return e.id===t.id}));o.splice(a,1)},insertAfter:function(e,t){var r=e.parent,n={id:id++,already:0,isChecked:!1,name:"",type:1,enabled:2,default_value:"",description:"",rule:"",children:[]};Array.isArray(r.data)?r.data.push(n):r.data.children.push(n)},saveApi:function(){var e=this,t=(this.form.tab_location,this.form.body_param_location,""),r={},n={};n={},n["1"]=this.apiHeaderTreeData,n["2"]=this.apiParamsTreeData,n["request_body"]=this.apiBodyTreeData,r.api=this.form,r.body=n,r.reponse=this.apiResTreeData,r.extend=this.markDownContent,t=this.chapter_id,1==this.layout?(Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["w"])({document_id:this.$route.params.id,chapter_id:t,layout:1,record:r}).then((function(t){200==t.code&&(e.$message.closeAll(),e.$message.success("保存成功!"),e.isFormChange=!1,e.isApiHeaderTreeDataChange=!1,e.isApiParamsTreeDataChange=!1,e.isApiBodyTreeDataChange=!1,e.isApiResTreeDataChange=!1,e.isMarkDownContentChange=!1)})),1==this.responseMockJson.length?(this.saveResponseMockJson(this.responseMockJson),this.getResponseMockJson(2)):this.getResponseMockJson(3)):Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["w"])({document_id:this.$route.params.id,chapter_id:t,layout:0,content:this.markDownContent}).then((function(t){200==t.code&&(e.$message.closeAll(),e.$message.success("保存成功!"),e.isFormChange=!1,e.isApiHeaderTreeDataChange=!1,e.isApiParamsTreeDataChange=!1,e.isApiBodyTreeDataChange=!1,e.isApiResTreeDataChange=!1,e.isMarkDownContentChange=!1)}))},emptyForm:function(){this.docTitle="",this.form=this.formCopy,this.apiHeaderTreeData=this.apiTreeDataCopy,this.apiParamsTreeData=this.apiTreeDataCopy,this.apiBodyTreeData=this.apiTreeDataCopy,this.apiResTreeData=this.apiResTreeDataCopy,this.markDownContent=""},viewChapter:function(){var e=this,t=this.chapter_id,r=this.$route.params.id;this.loading=this.$loading(),Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["D"])({chapter_id:t,document_id:r}).then((function(r){if(e.loading.close(),e.defaultCheckedKeys=[t],200==r.code)if(e.layout=r.data.layout,1==r.data.layout){var n=JSON.parse(JSON.stringify(r.data.record)),i=JSON.parse(JSON.stringify(e.baseRequestData)),o=JSON.parse(JSON.stringify(e.baseRequestData)),a=JSON.parse(JSON.stringify(e.baseRequestData)),s=JSON.parse(JSON.stringify(e.baseRequestData));if(n.api?(e.formCompared=JSON.parse(JSON.stringify(n.api)),e.formCompared.url||(e.formCompared=""),e.form=JSON.parse(JSON.stringify(n.api)),e.form.tab_location=localStorage.tab_location||e.form.tab_location.toString(),e.form.body_param_location=e.form.body_param_location,e.mockApiUrl2=location.origin+"/mock/".concat(e.$route.params.id,"/").concat(t),e.mockApiUrl=location.origin+"/document/mockApiReponse/".concat(e.$route.params.id)+"/"+e.form.url):(e.formCompared="",e.form=JSON.parse(JSON.stringify(e.formCopy))),n.body[1].length?(e.apiHeaderTreeData=JSON.parse(JSON.stringify(n.body["1"])),e.apiHeaderTreeDataCompared=JSON.parse(JSON.stringify(n.body["1"])),e.apiHeaderTreeData.push(i)):(e.apiHeaderTreeDataCompared="",e.apiHeaderTreeData=[i]),n.body[2].length?(e.apiParamsTreeData=JSON.parse(JSON.stringify(n.body["2"])),e.apiParamsTreeDataCompared=JSON.parse(JSON.stringify(n.body["2"])),e.apiParamsTreeData.push(o)):(e.apiParamsTreeDataCompared="",e.apiParamsTreeData=[o]),n.body.request_body.length?(e.apiBodyTreeData=JSON.parse(JSON.stringify(n.body.request_body)),e.apiBodyTreeDataCompared=JSON.parse(JSON.stringify(n.body.request_body)),e.apiBodyTreeData.push(a)):(e.apiBodyTreeDataCompared="",e.apiBodyTreeData=[a]),n.reponse.length)e.apiResTreeData=JSON.parse(JSON.stringify(n.reponse)),e.apiResTreeData.forEach((function(e){e.data.push(JSON.parse(JSON.stringify(s)))})),e.apiResTreeDataCompared=JSON.parse(JSON.stringify(n.reponse));else{var l=JSON.parse(JSON.stringify(e.baseRequestData));e.apiResTreeDataCompared=[],e.apiResTreeDataCompared.push({description:"",data:[]}),e.apiResTreeData=[{description:"",data:[l]}]}null==n.extend?(e.markDownContent="",e.markDownContentCompared=""):(e.markDownContent=JSON.parse(JSON.stringify(n.extend)),e.markDownContentCompared=JSON.parse(JSON.stringify(n.extend)))}else null==r.data.content?(e.markDownContent="",e.markDownContentCompared=""):(e.markDownContent=r.data.content,e.markDownContentCompared=r.data.content)})).catch((function(t){e.loading.close()}))},addResNode:function(){var e=JSON.parse(JSON.stringify(this.baseRequestData));this.apiResTreeData.push({description:"",data:[e]}),this.$message.closeAll(),this.$message.success("添加成功")},deleteApiItem:function(e){var t=this;this.$confirm("确认删除该数据吗?","提示",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"}).then((function(){t.apiResTreeData.splice(e,1)})).catch((function(){t.$message({type:"info",message:"已取消"})}))},typeChange:function(e){4!=e.type&&5!=e.type||(e.default_value="")},viewRequestMock:function(){this.isViewRequest=!0,this.isViewRequest&&this.refreshRequestMock()},refreshRequestMock:function(){var e=this,t=this.form.tab_location;1==t?(this.requestMockTemplate=treeToTemplate(this.apiHeaderTreeData),this.requestMockJson=this.$mock.mock(treeToTemplate(this.apiHeaderTreeData,1)),this.requestMockJson=romoveSlash(this.requestMockJson)):2==t?(this.requestMockTemplate=treeToTemplate(this.apiParamsTreeData),this.requestMockJson=this.$mock.mock(treeToTemplate(this.apiParamsTreeData,1)),this.requestMockJson=romoveSlash(this.requestMockJson)):(this.requestMockTemplate=treeToTemplate(this.apiBodyTreeData),this.requestMockJson=this.$mock.mock(treeToTemplate(this.apiBodyTreeData,1)),this.requestMockJson=romoveSlash(this.requestMockJson)),this.$nextTick((function(){var t=e.$refs.requestMockLeftHeight.offsetHeight+32,r=e.$refs.requestMockRightHeight.offsetHeight+32;e.requestMockHeight=t>r?t:tr?t:r}))},onCopy:function(e){this.$message.success("复制成功")},goMock:function(){window.open("https://github.com/nuysoft/Mock/wiki/Syntax-Specification")},showImportDialog:function(e){this.importDialogVisible=!0,this.importQuery.type=e,this.importQuery.data="",this.isSubmit=!1,"key_word"==e?(this.importQuery.location=this.form.tab_location,this.importDialogTitle="导入键值对"):(this.importQuery.location=10,this.importDialogTitle="导入JSON")},importSubmit:function(){var e=this;if(this.isSubmit)return!1;this.isSubmit=!0,setTimeout((function(){e.importSubmitFun(),e.isSubmit=!1}),500)},importSubmitFun:function(){var e=this;if(this.importQuery.data.length)if(10==this.importQuery.location)try{var t=JSON.parse(this.importQuery.data);t&&(this.importDisabled=!0,Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["r"])(this.importQuery).then((function(t){200==t.code&&(e.$message.success("提交成功"),e.importDialogVisible=!1,t.data&&t.data.length&&t.data.forEach((function(e){e.id=id++})),e.apiResTreeData.unshift({description:"",data:t.data}),e.importDisabled=!1)})).catch((function(t){e.importDisabled=!1})))}catch(r){this.$message.closeAll(),this.$message.error("导入数据不是标准的JSON格式")}else this.importDisabled=!0,Object(_api_api__WEBPACK_IMPORTED_MODULE_18__["r"])(this.importQuery).then((function(t){if(200==t.code){e.$message.success("提交成功"),e.importDialogVisible=!1;var r=e.importQuery.location;if(t.data&&t.data.length&&t.data.forEach((function(e){e.id=id++})),1==r){var n,i=e.apiHeaderTreeData.length-1;(n=e.apiHeaderTreeData).splice.apply(n,[i,0].concat(Object(C_Users_Administrator_Desktop_ued_document_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__["a"])(t.data)))}else if(2==r){var o,a=e.apiParamsTreeData.length-1;(o=e.apiParamsTreeData).splice.apply(o,[a,0].concat(Object(C_Users_Administrator_Desktop_ued_document_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__["a"])(t.data)))}else if(3==r){var s,l=e.apiBodyTreeData.length-1;(s=e.apiBodyTreeData).splice.apply(s,[l,0].concat(Object(C_Users_Administrator_Desktop_ued_document_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_toConsumableArray__WEBPACK_IMPORTED_MODULE_6__["a"])(t.data)))}e.importDisabled=!1}})).catch((function(t){e.importDisabled=!1}));else this.$message.closeAll(),this.$message.error("导入数据不能为空")},allowApiTreeDrop:function(e,t,r){return e.data.level===t.data.level&&(e.data.aboveId===t.data.aboveId?"prev"===r||"next"===r:void 0)},handleApiNodeDrop:function(e,t){for(var r=t.parent.data,n=0;n=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})}))},"67ab":function(e,t,r){var n=r("ca5a")("meta"),i=r("d3f4"),o=r("69a8"),a=r("86cc").f,s=0,l=Object.isExtensible||function(){return!0},c=!r("79e5")((function(){return l(Object.preventExtensions({}))})),u=function(e){a(e,n,{value:{i:"O"+ ++s,w:{}}})},d=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,n)){if(!l(e))return"F";if(!t)return"E";u(e)}return e[n].i},f=function(e,t){if(!o(e,n)){if(!l(e))return!0;if(!t)return!1;u(e)}return e[n].w},h=function(e){return c&&p.NEED&&l(e)&&!o(e,n)&&u(e),e},p=e.exports={KEY:n,NEED:!1,fastKey:d,getWeak:f,onFreeze:h}},7514:function(e,t,r){"use strict";var n=r("5ca1"),i=r("0a49")(5),o="find",a=!0;o in[]&&Array(1)[o]((function(){a=!1})),n(n.P+n.F*a,"Array",{find:function(e){return i(this,e,arguments.length>1?arguments[1]:void 0)}}),r("9c6c")(o)},"7af4":function(e,t,r){},"7bbc":function(e,t,r){var n=r("6821"),i=r("9093").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(t){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?s(e):i(n(e))}},"7d1d":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAB40lEQVQ4jaWSPWhUQRSFJwaLQBBSqG+DRWIhsQkRhJjSVogEIb2JM9+Z2bDCqmATSaxsLN4TtbARxB9IE8VCC0UQbOwUJFZiIQbNEkRt/CHXIk/RJbtZyYWp7plvztx7nGtR1Wq1V9JZ4DnwSVJD0uMY4/HJycnuVvc2rJTSMPAW+C7pLnBO0nlJTwADnk1NTe3sCDY9Pd0PfACWvPf7m/vAYWCldL59UyBwA1j13u9ppZE0BvwETraF1Wq1HcA3YK6DhxeAly0F5RJOlTMa3Qwo6QSwJmm8Xq/3NDePAaslzLz3gx04nPitBz4CE84557z3h4Afkp7GGA/8TyTm5+e3ee+HgUdlIg46SfeBd9VqtbfVxf7crldyu92qX6/Xe4A3wD0HNCRdaeekkttiVtiDdhrgIrDiJC1LurZVYAjhEvDeAXeAxobJX7Duf4BmXc6sq1mWUuoDlkMINx0wFEL4CrxKKR1NKe2NMQ6klPoqud2q5HahkttiltvDrLCrWWGXY4y7YowD3vtBSUeAF8CXmZmZfc65P8lf+isGBsxVcpvNcrOssEaW2+essLXdhdWAxSbta0ljzc67QggjksbLjA2V312Hrp/T5QJGgQlJ4yGEEdtgDG2rkttsVtiZTrS/AEKgFMIAi18YAAAAAElFTkSuQmCC"},"8a81":function(e,t,r){"use strict";var n=r("7726"),i=r("69a8"),o=r("9e1e"),a=r("5ca1"),s=r("2aba"),l=r("67ab").KEY,c=r("79e5"),u=r("5537"),d=r("7f20"),f=r("ca5a"),h=r("2b4c"),p=r("37c8"),m=r("3a72"),g=r("d4c0"),v=r("1169"),y=r("cb7c"),_=r("d3f4"),b=r("4bf8"),w=r("6821"),C=r("6a99"),x=r("4630"),k=r("2aeb"),T=r("7bbc"),S=r("11e9"),O=r("2621"),D=r("86cc"),M=r("0d58"),A=S.f,N=D.f,E=T.f,L=n.Symbol,P=n.JSON,R=P&&P.stringify,I="prototype",W=h("_hidden"),B=h("toPrimitive"),j={}.propertyIsEnumerable,H=u("symbol-registry"),F=u("symbols"),$=u("op-symbols"),U=Object[I],q="function"==typeof L&&!!O.f,z=n.QObject,K=!z||!z[I]||!z[I].findChild,J=o&&c((function(){return 7!=k(N({},"a",{get:function(){return N(this,"a",{value:7}).a}})).a}))?function(e,t,r){var n=A(U,t);n&&delete U[t],N(e,t,r),n&&e!==U&&N(U,t,n)}:N,V=function(e){var t=F[e]=k(L[I]);return t._k=e,t},G=q&&"symbol"==typeof L.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof L},X=function(e,t,r){return e===U&&X($,t,r),y(e),t=C(t,!0),y(r),i(F,t)?(r.enumerable?(i(e,W)&&e[W][t]&&(e[W][t]=!1),r=k(r,{enumerable:x(0,!1)})):(i(e,W)||N(e,W,x(1,{})),e[W][t]=!0),J(e,t,r)):N(e,t,r)},Y=function(e,t){y(e);var r,n=g(t=w(t)),i=0,o=n.length;while(o>i)X(e,r=n[i++],t[r]);return e},Q=function(e,t){return void 0===t?k(e):Y(k(e),t)},Z=function(e){var t=j.call(this,e=C(e,!0));return!(this===U&&i(F,e)&&!i($,e))&&(!(t||!i(this,e)||!i(F,e)||i(this,W)&&this[W][e])||t)},ee=function(e,t){if(e=w(e),t=C(t,!0),e!==U||!i(F,t)||i($,t)){var r=A(e,t);return!r||!i(F,t)||i(e,W)&&e[W][t]||(r.enumerable=!0),r}},te=function(e){var t,r=E(w(e)),n=[],o=0;while(r.length>o)i(F,t=r[o++])||t==W||t==l||n.push(t);return n},re=function(e){var t,r=e===U,n=E(r?$:w(e)),o=[],a=0;while(n.length>a)!i(F,t=n[a++])||r&&!i(U,t)||o.push(F[t]);return o};q||(L=function(){if(this instanceof L)throw TypeError("Symbol is not a constructor!");var e=f(arguments.length>0?arguments[0]:void 0),t=function(r){this===U&&t.call($,r),i(this,W)&&i(this[W],e)&&(this[W][e]=!1),J(this,e,x(1,r))};return o&&K&&J(U,e,{configurable:!0,set:t}),V(e)},s(L[I],"toString",(function(){return this._k})),S.f=ee,D.f=X,r("9093").f=T.f=te,r("52a7").f=Z,O.f=re,o&&!r("2d00")&&s(U,"propertyIsEnumerable",Z,!0),p.f=function(e){return V(h(e))}),a(a.G+a.W+a.F*!q,{Symbol:L});for(var ne="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;ne.length>ie;)h(ne[ie++]);for(var oe=M(h.store),ae=0;oe.length>ae;)m(oe[ae++]);a(a.S+a.F*!q,"Symbol",{for:function(e){return i(H,e+="")?H[e]:H[e]=L(e)},keyFor:function(e){if(!G(e))throw TypeError(e+" is not a symbol!");for(var t in H)if(H[t]===e)return t},useSetter:function(){K=!0},useSimple:function(){K=!1}}),a(a.S+a.F*!q,"Object",{create:Q,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:ee,getOwnPropertyNames:te,getOwnPropertySymbols:re});var se=c((function(){O.f(1)}));a(a.S+a.F*se,"Object",{getOwnPropertySymbols:function(e){return O.f(b(e))}}),P&&a(a.S+a.F*(!q||c((function(){var e=L();return"[null]"!=R([e])||"{}"!=R({a:e})||"{}"!=R(Object(e))}))),"JSON",{stringify:function(e){var t,r,n=[e],i=1;while(arguments.length>i)n.push(arguments[i++]);if(r=t=n[1],(_(t)||void 0!==e)&&!G(e))return v(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!G(t))return t}),n[1]=t,R.apply(P,n)}}),L[I][B]||r("32e9")(L[I],B,L[I].valueOf),d(L,"Symbol"),d(Math,"Math",!0),d(n.JSON,"JSON",!0)},"8e6e":function(e,t,r){var n=r("5ca1"),i=r("990b"),o=r("6821"),a=r("11e9"),s=r("f1ae");n(n.S,"Object",{getOwnPropertyDescriptors:function(e){var t,r,n=o(e),l=a.f,c=i(n),u={},d=0;while(c.length>d)r=l(n,t=c[d++]),void 0!==r&&s(u,t,r);return u}})},"8f94":function(e,t,r){!function(t,n){e.exports=n(r("56b3"))}(0,(function(e){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};return t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/",t(t.s=3)}([function(t,r){t.exports=e},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(0),i=function(e){return e&&e.__esModule?e:{default:e}}(n),o=window.CodeMirror||i.default;"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(e,t){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var r=Object(e),n=1;n2){t=y?t.trim():f(t,3);var r,n,i,o=t.charCodeAt(0);if(43===o||45===o){if(r=t.charCodeAt(2),88===r||120===r)return NaN}else if(48===o){switch(t.charCodeAt(1)){case 66:case 98:n=2,i=49;break;case 79:case 111:n=8,i=55;break;default:return+t}for(var a,l=t.slice(2),c=0,u=l.length;ci)return NaN;return parseInt(l,n)}}return+t};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function(e){var t=arguments.length<1?0:e,r=this;return r instanceof p&&(v?l((function(){g.valueOf.call(r)})):o(r)!=h)?a(new m(_(t)),r,p):_(t)};for(var b,w=r("9e1e")?c(m):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),C=0;w.length>C;C++)i(m,b=w[C])&&!i(p,b)&&d(p,b,u(m,b));p.prototype=g,g.constructor=p,r("2aba")(n,h,p)}},cc10:function(e,t,r){},cd1c:function(e,t,r){var n=r("e853");e.exports=function(e,t){return new(n(e))(t)}},ce4d:function(e,t,r){},d0ff:function(e,t,r){"use strict";function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);rc)l.call(e,a=s[c++])&&t.push(a)}return t}},e853:function(e,t,r){var n=r("d3f4"),i=r("1169"),o=r("2b4c")("species");e.exports=function(e){var t;return i(e)&&(t=e.constructor,"function"!=typeof t||t!==Array&&!i(t.prototype)||(t=void 0),n(t)&&(t=t[o],null===t&&(t=void 0))),void 0===t?Array:t}},f1ae:function(e,t,r){"use strict";var n=r("86cc"),i=r("4630");e.exports=function(e,t,r){t in e?n.f(e,t,i(0,r)):e[t]=r}},f93f:function(e,t,r){"use strict";var n=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"editors"},[r("mavon-editor",{ref:"mavonEditor",attrs:{boxShadow:!1,scrollStyle:!0,ishljs:!0,codeStyle:e.code_style,navigation:!1},on:{imgAdd:e.$imgAdd,input:e.input},model:{value:e.contentMd,callback:function(t){e.contentMd=t},expression:"contentMd"}}),r("div")],1)},i=[],o={props:["chapter_id","markDownContent"],data:function(){return{code_style:"tomorrow-night-blue",chapterInfo:{name:"",updated_at:"",username:""},contentMd:"",old_contentMd:"",timer:""}},watch:{markDownContent:function(e){this.contentMd=e}},mounted:function(){var e=document.documentElement.clientHeight;this.$refs.mavonEditor.$el.style.height=e-310+"px"},destroyed:function(){},methods:{input:function(){this.$emit("input",this.contentMd)},$imgAdd:function(e,t){var r=this,n=(t.size/1048576).toFixed(2);if(n<=5){var i=new FormData;i.append("file",t),i.append("document_id",this.$route.params.id),i.append("chapter_id",this.chapter_id),this.$post("/admin/upload/image",i,{headers:{"Content-Type":"multipart/form-data"}}).then((function(t){r.$refs.mavonEditor.$img2Url(e,t.data.url)})).catch((function(e){}))}else this.$refs.mavonEditor.$img2Url(e,""),this.$message.closeAll(),this.$message.error("请上传不大于5M的文件")}}},a=o,s=(r("4238"),r("2877")),l=Object(s["a"])(a,n,i,!1,null,"7d82a91c",null);t["a"]=l.exports},f9d4:function(e,t,r){(function(e){e(r("56b3"))})((function(e){"use strict";e.defineMode("javascript",(function(t,r){var n,i,o=t.indentUnit,a=r.statementIndent,s=r.jsonld,l=r.json||s,c=r.typescript,u=r.wordCharacters||/[\w$\xa1-\uffff]/,d=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),r=e("keyword b"),n=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:r,do:r,try:r,finally:r,return:i,break:i,continue:i,new:e("new"),delete:n,void:n,throw:n,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:n,export:e("export"),import:e("import"),extends:n,await:n}}(),f=/[+\-*&%=<>!?|~^@]/,h=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function p(e){var t,r=!1,n=!1;while(null!=(t=e.next())){if(!r){if("/"==t&&!n)return;"["==t?n=!0:n&&"]"==t&&(n=!1)}r=!r&&"\\"==t}}function m(e,t,r){return n=e,i=r,t}function g(e,t){var r=e.next();if('"'==r||"'"==r)return t.tokenize=v(r),t.tokenize(e,t);if("."==r&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return m("number","number");if("."==r&&e.match(".."))return m("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return m(r);if("="==r&&e.eat(">"))return m("=>","operator");if("0"==r&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return m("number","number");if(/\d/.test(r))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),m("number","number");if("/"==r)return e.eat("*")?(t.tokenize=y,y(e,t)):e.eat("/")?(e.skipToEnd(),m("comment","comment")):et(e,t,1)?(p(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),m("regexp","string-2")):(e.eat("="),m("operator","operator",e.current()));if("`"==r)return t.tokenize=_,_(e,t);if("#"==r&&"!"==e.peek())return e.skipToEnd(),m("meta","meta");if("#"==r&&e.eatWhile(u))return m("variable","property");if("<"==r&&e.match("!--")||"-"==r&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),m("comment","comment");if(f.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-|&?]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),"?"==r&&e.eat(".")?m("."):m("operator","operator",e.current());if(u.test(r)){e.eatWhile(u);var n=e.current();if("."!=t.lastType){if(d.propertyIsEnumerable(n)){var i=d[n];return m(i.type,i.style,n)}if("async"==n&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return m("async","keyword",n)}return m("variable","variable",n)}}function v(e){return function(t,r){var n,i=!1;if(s&&"@"==t.peek()&&t.match(h))return r.tokenize=g,m("jsonld-keyword","meta");while(null!=(n=t.next())){if(n==e&&!i)break;i=!i&&"\\"==n}return i||(r.tokenize=g),m("string","string")}}function y(e,t){var r,n=!1;while(r=e.next()){if("/"==r&&n){t.tokenize=g;break}n="*"==r}return m("comment","comment")}function _(e,t){var r,n=!1;while(null!=(r=e.next())){if(!n&&("`"==r||"$"==r&&e.eat("{"))){t.tokenize=g;break}n=!n&&"\\"==r}return m("quasi","string-2",e.current())}var b="([{}])";function w(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf("=>",e.start);if(!(r<0)){if(c){var n=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var i=0,o=!1,a=r-1;a>=0;--a){var s=e.string.charAt(a),l=b.indexOf(s);if(l>=0&&l<3){if(!i){++a;break}if(0==--i){"("==s&&(o=!0);break}}else if(l>=3&&l<6)++i;else if(u.test(s))o=!0;else if(/["'\/`]/.test(s))for(;;--a){if(0==a)return;var d=e.string.charAt(a-1);if(d==s&&"\\"!=e.string.charAt(a-2)){a--;break}}else if(o&&!i){++a;break}}o&&!i&&(t.fatArrowAt=a)}}var C={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,"jsonld-keyword":!0};function x(e,t,r,n,i,o){this.indented=e,this.column=t,this.type=r,this.prev=i,this.info=o,null!=n&&(this.align=n)}function k(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}function T(e,t,r,n,i){var o=e.cc;S.state=e,S.stream=i,S.marked=null,S.cc=o,S.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);while(1){var a=o.length?o.pop():l?q:$;if(a(r,n)){while(o.length&&o[o.length-1].lex)o.pop()();return S.marked?S.marked:"variable"==r&&k(e,n)?"variable-2":t}}}var S={state:null,column:null,marked:null,cc:null};function O(){for(var e=arguments.length-1;e>=0;e--)S.cc.push(arguments[e])}function D(){return O.apply(null,arguments),!0}function M(e,t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}function A(e){var t=S.state;if(S.marked="def",t.context)if("var"==t.lexical.info&&t.context&&t.context.block){var n=N(e,t.context);if(null!=n)return void(t.context=n)}else if(!M(e,t.localVars))return void(t.localVars=new P(e,t.localVars));r.globalVars&&!M(e,t.globalVars)&&(t.globalVars=new P(e,t.globalVars))}function N(e,t){if(t){if(t.block){var r=N(e,t.prev);return r?r==t.prev?t:new L(r,t.vars,!0):null}return M(e,t.vars)?t:new L(t.prev,new P(e,t.vars),!1)}return null}function E(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function L(e,t,r){this.prev=e,this.vars=t,this.block=r}function P(e,t){this.name=e,this.next=t}var R=new P("this",new P("arguments",null));function I(){S.state.context=new L(S.state.context,S.state.localVars,!1),S.state.localVars=R}function W(){S.state.context=new L(S.state.context,S.state.localVars,!0),S.state.localVars=null}function B(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}function j(e,t){var r=function(){var r=S.state,n=r.indented;if("stat"==r.lexical.type)n=r.lexical.indented;else for(var i=r.lexical;i&&")"==i.type&&i.align;i=i.prev)n=i.indented;r.lexical=new x(n,S.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function H(){var e=S.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function F(e){function t(r){return r==e?D():";"==e||"}"==r||")"==r||"]"==r?O():D(t)}return t}function $(e,t){return"var"==e?D(j("vardef",t),ke,F(";"),H):"keyword a"==e?D(j("form"),K,$,H):"keyword b"==e?D(j("form"),$,H):"keyword d"==e?S.stream.match(/^\s*$/,!1)?D():D(j("stat"),V,F(";"),H):"debugger"==e?D(F(";")):"{"==e?D(j("}"),W,de,H,B):";"==e?D():"if"==e?("else"==S.state.lexical.info&&S.state.cc[S.state.cc.length-1]==H&&S.state.cc.pop()(),D(j("form"),K,$,H,Ae)):"function"==e?D(Pe):"for"==e?D(j("form"),Ne,$,H):"class"==e||c&&"interface"==t?(S.marked="keyword",D(j("form","class"==e?e:t),je,H)):"variable"==e?c&&"declare"==t?(S.marked="keyword",D($)):c&&("module"==t||"enum"==t||"type"==t)&&S.stream.match(/^\s*\w/,!1)?(S.marked="keyword","enum"==t?D(Ye):"type"==t?D(Ie,F("operator"),ge,F(";")):D(j("form"),Te,F("{"),j("}"),de,H,H)):c&&"namespace"==t?(S.marked="keyword",D(j("form"),q,$,H)):c&&"abstract"==t?(S.marked="keyword",D($)):D(j("stat"),ie):"switch"==e?D(j("form"),K,F("{"),j("}","switch"),W,de,H,H,B):"case"==e?D(q,F(":")):"default"==e?D(F(":")):"catch"==e?D(j("form"),I,U,$,H,B):"export"==e?D(j("stat"),Ue,H):"import"==e?D(j("stat"),ze,H):"async"==e?D($):"@"==t?D(q,$):O(j("stat"),q,F(";"),H)}function U(e){if("("==e)return D(We,F(")"))}function q(e,t){return J(e,t,!1)}function z(e,t){return J(e,t,!0)}function K(e){return"("!=e?O():D(j(")"),V,F(")"),H)}function J(e,t,r){if(S.state.fatArrowAt==S.stream.start){var n=r?ee:Z;if("("==e)return D(I,j(")"),ce(We,")"),H,F("=>"),n,B);if("variable"==e)return O(I,Te,F("=>"),n,B)}var i=r?X:G;return C.hasOwnProperty(e)?D(i):"function"==e?D(Pe,i):"class"==e||c&&"interface"==t?(S.marked="keyword",D(j("form"),Be,H)):"keyword c"==e||"async"==e?D(r?z:q):"("==e?D(j(")"),V,F(")"),H,i):"operator"==e||"spread"==e?D(r?z:q):"["==e?D(j("]"),Xe,H,i):"{"==e?ue(ae,"}",null,i):"quasi"==e?O(Y,i):"new"==e?D(te(r)):"import"==e?D(q):D()}function V(e){return e.match(/[;\}\)\],]/)?O():O(q)}function G(e,t){return","==e?D(V):X(e,t,!1)}function X(e,t,r){var n=0==r?G:X,i=0==r?q:z;return"=>"==e?D(I,r?ee:Z,B):"operator"==e?/\+\+|--/.test(t)||c&&"!"==t?D(n):c&&"<"==t&&S.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?D(j(">"),ce(ge,">"),H,n):"?"==t?D(q,F(":"),i):D(i):"quasi"==e?O(Y,n):";"!=e?"("==e?ue(z,")","call",n):"."==e?D(oe,n):"["==e?D(j("]"),V,F("]"),H,n):c&&"as"==t?(S.marked="keyword",D(ge,n)):"regexp"==e?(S.state.lastType=S.marked="operator",S.stream.backUp(S.stream.pos-S.stream.start-1),D(i)):void 0:void 0}function Y(e,t){return"quasi"!=e?O():"${"!=t.slice(t.length-2)?D(Y):D(q,Q)}function Q(e){if("}"==e)return S.marked="string-2",S.state.tokenize=_,D(Y)}function Z(e){return w(S.stream,S.state),O("{"==e?$:q)}function ee(e){return w(S.stream,S.state),O("{"==e?$:z)}function te(e){return function(t){return"."==t?D(e?ne:re):"variable"==t&&c?D(we,e?X:G):O(e?z:q)}}function re(e,t){if("target"==t)return S.marked="keyword",D(G)}function ne(e,t){if("target"==t)return S.marked="keyword",D(X)}function ie(e){return":"==e?D(H,$):O(G,F(";"),H)}function oe(e){if("variable"==e)return S.marked="property",D()}function ae(e,t){return"async"==e?(S.marked="property",D(ae)):"variable"==e||"keyword"==S.style?(S.marked="property","get"==t||"set"==t?D(se):(c&&S.state.fatArrowAt==S.stream.start&&(r=S.stream.match(/^\s*:\s*/,!1))&&(S.state.fatArrowAt=S.stream.pos+r[0].length),D(le))):"number"==e||"string"==e?(S.marked=s?"property":S.style+" property",D(le)):"jsonld-keyword"==e?D(le):c&&E(t)?(S.marked="keyword",D(ae)):"["==e?D(q,fe,F("]"),le):"spread"==e?D(z,le):"*"==t?(S.marked="keyword",D(ae)):":"==e?O(le):void 0;var r}function se(e){return"variable"!=e?O(le):(S.marked="property",D(Pe))}function le(e){return":"==e?D(z):"("==e?O(Pe):void 0}function ce(e,t,r){function n(i,o){if(r?r.indexOf(i)>-1:","==i){var a=S.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),D((function(r,n){return r==t||n==t?O():O(e)}),n)}return i==t||o==t?D():r&&r.indexOf(";")>-1?O(e):D(F(t))}return function(r,i){return r==t||i==t?D():O(e,n)}}function ue(e,t,r){for(var n=3;n"),ge):void 0}function ve(e){if("=>"==e)return D(ge)}function ye(e,t){return"variable"==e||"keyword"==S.style?(S.marked="property",D(ye)):"?"==t||"number"==e||"string"==e?D(ye):":"==e?D(ge):"["==e?D(F("variable"),he,F("]"),ye):"("==e?O(Re,ye):void 0}function _e(e,t){return"variable"==e&&S.stream.match(/^\s*[?:]/,!1)||"?"==t?D(_e):":"==e?D(ge):"spread"==e?D(_e):O(ge)}function be(e,t){return"<"==t?D(j(">"),ce(ge,">"),H,be):"|"==t||"."==e||"&"==t?D(ge):"["==e?D(ge,F("]"),be):"extends"==t||"implements"==t?(S.marked="keyword",D(ge)):"?"==t?D(ge,F(":"),ge):void 0}function we(e,t){if("<"==t)return D(j(">"),ce(ge,">"),H,be)}function Ce(){return O(ge,xe)}function xe(e,t){if("="==t)return D(ge)}function ke(e,t){return"enum"==t?(S.marked="keyword",D(Ye)):O(Te,fe,De,Me)}function Te(e,t){return c&&E(t)?(S.marked="keyword",D(Te)):"variable"==e?(A(t),D()):"spread"==e?D(Te):"["==e?ue(Oe,"]"):"{"==e?ue(Se,"}"):void 0}function Se(e,t){return"variable"!=e||S.stream.match(/^\s*:/,!1)?("variable"==e&&(S.marked="property"),"spread"==e?D(Te):"}"==e?O():"["==e?D(q,F("]"),F(":"),Se):D(F(":"),Te,De)):(A(t),D(De))}function Oe(){return O(Te,De)}function De(e,t){if("="==t)return D(z)}function Me(e){if(","==e)return D(ke)}function Ae(e,t){if("keyword b"==e&&"else"==t)return D(j("form","else"),$,H)}function Ne(e,t){return"await"==t?D(Ne):"("==e?D(j(")"),Ee,H):void 0}function Ee(e){return"var"==e?D(ke,Le):"variable"==e?D(Le):O(Le)}function Le(e,t){return")"==e?D():";"==e?D(Le):"in"==t||"of"==t?(S.marked="keyword",D(q,Le)):O(q,Le)}function Pe(e,t){return"*"==t?(S.marked="keyword",D(Pe)):"variable"==e?(A(t),D(Pe)):"("==e?D(I,j(")"),ce(We,")"),H,pe,$,B):c&&"<"==t?D(j(">"),ce(Ce,">"),H,Pe):void 0}function Re(e,t){return"*"==t?(S.marked="keyword",D(Re)):"variable"==e?(A(t),D(Re)):"("==e?D(I,j(")"),ce(We,")"),H,pe,B):c&&"<"==t?D(j(">"),ce(Ce,">"),H,Re):void 0}function Ie(e,t){return"keyword"==e||"variable"==e?(S.marked="type",D(Ie)):"<"==t?D(j(">"),ce(Ce,">"),H):void 0}function We(e,t){return"@"==t&&D(q,We),"spread"==e?D(We):c&&E(t)?(S.marked="keyword",D(We)):c&&"this"==e?D(fe,De):O(Te,fe,De)}function Be(e,t){return"variable"==e?je(e,t):He(e,t)}function je(e,t){if("variable"==e)return A(t),D(He)}function He(e,t){return"<"==t?D(j(">"),ce(Ce,">"),H,He):"extends"==t||"implements"==t||c&&","==e?("implements"==t&&(S.marked="keyword"),D(c?ge:q,He)):"{"==e?D(j("}"),Fe,H):void 0}function Fe(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||c&&E(t))&&S.stream.match(/^\s+[\w$\xa1-\uffff]/,!1)?(S.marked="keyword",D(Fe)):"variable"==e||"keyword"==S.style?(S.marked="property",D($e,Fe)):"number"==e||"string"==e?D($e,Fe):"["==e?D(q,fe,F("]"),$e,Fe):"*"==t?(S.marked="keyword",D(Fe)):c&&"("==e?O(Re,Fe):";"==e||","==e?D(Fe):"}"==e?D():"@"==t?D(q,Fe):void 0}function $e(e,t){if("?"==t)return D($e);if(":"==e)return D(ge,De);if("="==t)return D(z);var r=S.state.lexical.prev,n=r&&"interface"==r.info;return O(n?Re:Pe)}function Ue(e,t){return"*"==t?(S.marked="keyword",D(Ge,F(";"))):"default"==t?(S.marked="keyword",D(q,F(";"))):"{"==e?D(ce(qe,"}"),Ge,F(";")):O($)}function qe(e,t){return"as"==t?(S.marked="keyword",D(F("variable"))):"variable"==e?O(z,qe):void 0}function ze(e){return"string"==e?D():"("==e?O(q):O(Ke,Je,Ge)}function Ke(e,t){return"{"==e?ue(Ke,"}"):("variable"==e&&A(t),"*"==t&&(S.marked="keyword"),D(Ve))}function Je(e){if(","==e)return D(Ke,Je)}function Ve(e,t){if("as"==t)return S.marked="keyword",D(Ke)}function Ge(e,t){if("from"==t)return S.marked="keyword",D(q)}function Xe(e){return"]"==e?D():O(ce(z,"]"))}function Ye(){return O(j("form"),Te,F("{"),j("}"),ce(Qe,"}"),H,H)}function Qe(){return O(Te,De)}function Ze(e,t){return"operator"==e.lastType||","==e.lastType||f.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}function et(e,t,r){return t.tokenize==g&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(r||0)))}return B.lex=!0,H.lex=!0,{startState:function(e){var t={tokenize:g,lastType:"sof",cc:[],lexical:new x((e||0)-o,0,"block",!1),localVars:r.localVars,context:r.localVars&&new L(null,null,!1),indented:e||0};return r.globalVars&&"object"==typeof r.globalVars&&(t.globalVars=r.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation(),w(e,t)),t.tokenize!=y&&e.eatSpace())return null;var r=t.tokenize(e,t);return"comment"==n?r:(t.lastType="operator"!=n||"++"!=i&&"--"!=i?n:"incdec",T(t,r,n,i,e))},indent:function(t,n){if(t.tokenize==y||t.tokenize==_)return e.Pass;if(t.tokenize!=g)return 0;var i,s=n&&n.charAt(0),l=t.lexical;if(!/^\s*else\b/.test(n))for(var c=t.cc.length-1;c>=0;--c){var u=t.cc[c];if(u==H)l=l.prev;else if(u!=Ae)break}while(("stat"==l.type||"form"==l.type)&&("}"==s||(i=t.cc[t.cc.length-1])&&(i==G||i==X)&&!/^[,\.=+\-*:?[\(]/.test(n)))l=l.prev;a&&")"==l.type&&"stat"==l.prev.type&&(l=l.prev);var d=l.type,f=s==d;return"vardef"==d?l.indented+("operator"==t.lastType||","==t.lastType?l.info.length+1:0):"form"==d&&"{"==s?l.indented:"form"==d?l.indented+o:"stat"==d?l.indented+(Ze(t,n)?a||o:0):"switch"!=l.info||f||0==r.doubleIndentSwitch?l.align?l.column+(f?0:1):l.indented+(f?0:o):l.indented+(/^(?:case|default)\b/.test(n)?o:2*o)},electricInput:/^\s*(?:case .*?:|default:|\{|\})$/,blockCommentStart:l?null:"/*",blockCommentEnd:l?null:"*/",blockCommentContinue:l?null:" * ",lineComment:l?null:"//",fold:"brace",closeBrackets:"()[]{}''\"\"``",helperType:l?"json":"javascript",jsonldMode:s,jsonMode:l,expressionAllowed:et,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=q&&t!=z||e.cc.pop()}}})),e.registerHelper("wordChars","javascript",/[\w$]/),e.defineMIME("text/javascript","javascript"),e.defineMIME("text/ecmascript","javascript"),e.defineMIME("application/javascript","javascript"),e.defineMIME("application/x-javascript","javascript"),e.defineMIME("application/ecmascript","javascript"),e.defineMIME("application/json",{name:"javascript",json:!0}),e.defineMIME("application/x-json",{name:"javascript",json:!0}),e.defineMIME("application/ld+json",{name:"javascript",jsonld:!0}),e.defineMIME("text/typescript",{name:"javascript",typescript:!0}),e.defineMIME("application/typescript",{name:"javascript",typescript:!0})}))},fc11:function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,"a",(function(){return n}))},fdef:function(e,t){e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"}}]); ================================================ FILE: public/js/chunk-079f5797.19ae5348.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-079f5797"],{"0be6":function(t,e,a){"use strict";a("d733")},"5b97":function(t,e,a){"use strict";(function(t){a("ac6a");e["a"]={data:function(){return{keyword:"",loading:!1,docList:[],currentPage:1,pageCount:0,total:0}},created:function(){this.getList()},methods:{getList:function(){var t=this;this.loading=!0,this.$post("/admin/document/all",{page:this.currentPage,name:this.keyword,role:"all"}).then((function(e){t.docList=e.data.data,t.pageCount=e.data.page_count,t.total=e.data.total,t.loading=!1}))},operStar:function(t){var e=this,a=t.star_id?"/admin/star/delete":"/admin/star/add",n=t.star_id?"取消成功!":"添加成功!",i={document_id:t.id};t.star_id&&(i["id"]=t.star_id),this.$post(a,i).then((function(a){e.$message(n),e.docList.forEach((function(e){e.id!=t.id||(e.star_id=a.data.star_id||"")}))}))},readDoc:function(e){var a=this.$router.resolve({path:"/chapter/"+e});t(document).trigger("mouseup"),window.open(a.href,"_blank")},editDoc:function(e){var a=this.$router.resolve({path:"/admin/document/chapter/"+e});t(window).trigger("mouseup"),window.open(a.href,"_blank")}}}}).call(this,a("1157"))},"9be8":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"we7-document-involved"},[a("div",{staticClass:"page-head"},[t._v("\n 我参与的\n ")]),a("div",{staticClass:"search-box"},[a("div",{staticClass:"demo-input-suffix"},[a("el-input",{attrs:{placeholder:"请输入文档名称",clearable:""},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.getList(e)}},model:{value:t.keyword,callback:function(e){t.keyword=e},expression:"keyword"}},[a("i",{staticClass:"el-input__icon el-icon-search",attrs:{slot:"suffix"},on:{click:t.getList},slot:"suffix"})])],1)]),a("el-table",{ref:"multipleTable",staticClass:"w7-table",attrs:{data:t.docList,"header-cell-style":{background:"#f7f9fc",color:"#606266"},"empty-text":"没有与搜索条件匹配的项"}},[a("el-table-column",{attrs:{label:"文档名称"},scopedSlots:t._u([{key:"default",fn:function(e){return a("div",{staticClass:"doc-icons"},[a("i",{staticClass:"wi wi-document color-blue"}),a("span",{staticClass:"name",on:{click:function(a){return t.readDoc(e.row.id)}}},[t._v(t._s(e.row.name))]),e.row.star_id?a("i",{staticClass:"wi wi-star color-yellow"}):t._e(),e.row.is_public?t._e():a("div",{staticClass:"we7-label"},[a("i",{staticClass:"wi wi-lock"},[a("span",{staticClass:"font"},[t._v("私有")])])])])}}])}),a("el-table-column",{attrs:{label:"来自",prop:"author.name"}}),a("el-table-column",{attrs:{label:"角色",prop:"acl.name"}}),a("el-table-column",{attrs:{label:"操作",align:"right"},scopedSlots:t._u([{key:"default",fn:function(e){return a("div",{staticClass:"oper"},[e.row.acl.has_edit?a("el-tooltip",{attrs:{effect:"dark",content:"编辑",placement:"bottom"}},[a("i",{staticClass:"wq wq-bianji",on:{click:function(a){return t.editDoc(e.row.id)}}})]):t._e(),e.row.acl.has_read?a("el-tooltip",{attrs:{effect:"dark",content:"预览",placement:"bottom"}},[a("i",{staticClass:"wq wq-chakan",on:{click:function(a){return t.readDoc(e.row.id)}}})]):t._e(),a("el-tooltip",{attrs:{effect:"dark",content:e.row.star_id?"取消星标":"添加星标",placement:"bottom"}},[a("i",{staticClass:"wi wi-star",class:{checked:e.row.star_id},on:{click:function(a){return t.operStar(e.row)}}})])],1)}}])})],1),a("div",{staticClass:"btns"},[a("el-pagination",{attrs:{background:"",layout:"prev, pager, next, total","prev-text":"上一页","next-text":"下一页","page-size":15,"current-page":t.currentPage,"page-count":t.pageCount,total:t.total,"hide-on-single-page":!0},on:{"current-change":t.getList,"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e}}})],1)],1)},i=[],o=a("5b97"),s=o["a"],r=(a("0be6"),a("2877")),c=Object(r["a"])(s,n,i,!1,null,null,null);e["default"]=c.exports},d733:function(t,e,a){}}]); ================================================ FILE: public/js/chunk-07e6273c.1984b9b7.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-07e6273c"],{"11e9":function(t,e,a){var n=a("52a7"),l=a("4630"),i=a("6821"),o=a("6a99"),r=a("69a8"),s=a("c69a"),c=Object.getOwnPropertyDescriptor;e.f=a("9e1e")?c:function(t,e){if(t=i(t),e=o(e,!0),s)try{return c(t,e)}catch(a){}if(r(t,e))return l(!n.f.call(t,e),t[e])}},"2f21":function(t,e,a){"use strict";var n=a("79e5");t.exports=function(t,e){return!!t&&n((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},"3bf9":function(t,e,a){"use strict";a("9ff8")},"3c4d":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"setting-nav"},[a("div",{staticClass:"page-head"},[t._v("导航设置")]),a("el-tabs",{on:{"tab-click":t.handleClick},model:{value:t.activeName,callback:function(e){t.activeName=e},expression:"activeName"}},[a("el-tab-pane",{attrs:{label:"风格设置",name:"style"}},[a("div",{staticClass:"we7-panel-form"},[a("div",{staticClass:"we7-panel-form__header"},[t._v("导航风格")]),a("div",{staticClass:"we7-panel-form__body"},[a("div",{staticClass:"we7-panel-form__item"},[a("div",{staticClass:"we7-panel-form__label"},[t._v("导航风格设置")]),a("div",{staticClass:"we7-panel-form__value"},[t._v(t._s(t.styleData[t.style]))]),a("div",{staticClass:"we7-panel-form__action"},[a("el-tooltip",{attrs:{effect:"dark",content:"编辑",placement:"bottom"}},[a("i",{staticClass:"wi wi-edit wi-oper",on:{click:function(e){t.dialogStyle=!0}}})])],1)])])])]),a("el-tab-pane",{attrs:{label:"菜单设置",name:"menu"}},[a("div",{staticClass:"search-box"},[a("div",{staticClass:"demo-input-btn"},[a("el-button",{staticClass:"add-menu",attrs:{type:"primary"},on:{click:function(e){return t.openDialogMenu("add")}}},[t._v("新增菜单")])],1)]),a("el-table",{ref:"multipleTable",staticClass:"w7-table",attrs:{data:t.menuList,"header-cell-style":{background:"#f7f9fc",color:"#606266"},"default-sort":{prop:"sort",order:"ascending"}}},[a("el-table-column",{attrs:{label:"菜单名称",prop:"name"}}),a("el-table-column",{attrs:{label:"排序",prop:"sort"}}),a("el-table-column",{attrs:{label:"操作",align:"right"},scopedSlots:t._u([{key:"default",fn:function(e){return a("div",{staticClass:"oper"},[a("el-tooltip",{attrs:{effect:"dark",content:"编辑",placement:"bottom"}},[a("i",{staticClass:"wi wi-edit wi-oper",on:{click:function(a){return t.openDialogMenu("edit",e.row)}}})]),a("el-tooltip",{attrs:{effect:"dark",content:"删除",placement:"bottom"}},[a("i",{staticClass:"wi wi-delete wi-oper",on:{click:function(a){return t.delMenu(e.row.id,e.$index)}}})])],1)}}])})],1)],1)],1),a("el-dialog",{staticClass:"w7-dialog",attrs:{title:"导航风格设置",visible:t.dialogStyle,"close-on-click-modal":!1,center:""},on:{"update:visible":function(e){t.dialogStyle=e}}},[a("el-form",{attrs:{"label-width":"120px","label-position":"left"}},[a("el-form-item",{attrs:{label:"导航风格"}},[a("el-select",{model:{value:t.style,callback:function(e){t.style=e},expression:"style"}},t._l(t.styleList,(function(t){return a("el-option",{key:t.value,attrs:{label:t.label,value:t.value}})})),1)],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:t.confirmStyle}},[t._v("确 定")]),a("el-button",{on:{click:function(e){t.dialogStyle=!1}}},[t._v("取 消")])],1)],1),a("el-dialog",{staticClass:"w7-dialog",attrs:{title:t.dialogMenuTitle,visible:t.dialogMenu,"close-on-click-modal":!1,center:""},on:{"update:visible":function(e){t.dialogMenu=e},close:t.closeDialogMenu}},[a("el-form",{ref:"menuForm",staticClass:"w7-form__no-required-icon",attrs:{model:t.menuData,rules:t.rules,"label-width":"120px","label-position":"left"}},[a("el-form-item",{attrs:{label:"菜单名称",prop:"name"}},[a("el-input",{model:{value:t.menuData.name,callback:function(e){t.$set(t.menuData,"name",e)},expression:"menuData.name"}})],1),a("el-form-item",{attrs:{label:"排序",prop:"sort"}},[a("el-input",{model:{value:t.menuData.sort,callback:function(e){t.$set(t.menuData,"sort",e)},expression:"menuData.sort"}}),a("div",{staticClass:"we7-help-block"},[t._v("排序为升序排序,数字越小,排名越靠前")])],1),a("el-form-item",{attrs:{label:"菜单链接",prop:"url"}},[a("el-input",{model:{value:t.menuData.url,callback:function(e){t.$set(t.menuData,"url",e)},expression:"menuData.url"}}),a("div",{staticClass:"we7-help-block"},[t._v("支持相对链接。非相对链接请填写以http或https开头的完整链接")])],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:t.confirm}},[t._v("确 定")]),a("el-button",{on:{click:t.closeDialogMenu}},[t._v("取 消")])],1)],1)],1)},l=[],i=(a("8e6e"),a("ac6a"),a("456d"),a("fc11"));a("55dd"),a("7f7f");function o(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function r(t){for(var e=1;ef)a=s(n,e=c[f++]),void 0!==a&&r(u,e,a);return u}})},9093:function(t,e,a){var n=a("ce10"),l=a("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,l)}},"990b":function(t,e,a){var n=a("9093"),l=a("2621"),i=a("cb7c"),o=a("7726").Reflect;t.exports=o&&o.ownKeys||function(t){var e=n.f(i(t)),a=l.f;return a?e.concat(a(t)):e}},"9ff8":function(t,e,a){},f1ae:function(t,e,a){"use strict";var n=a("86cc"),l=a("4630");t.exports=function(t,e,a){e in t?n.f(t,e,l(0,a)):t[e]=a}},fc11:function(t,e,a){"use strict";function n(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}a.d(e,"a",(function(){return n}))}}]); ================================================ FILE: public/js/chunk-10615ad3.5901db24.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-10615ad3"],{"02f4":function(t,n,e){var i=e("4588"),r=e("be13");t.exports=function(t){return function(n,e){var c,a,s=String(r(n)),o=i(e),l=s.length;return o<0||o>=l?t?"":void 0:(c=s.charCodeAt(o),c<55296||c>56319||o+1===l||(a=s.charCodeAt(o+1))<56320||a>57343?t?s.charAt(o):c:t?s.slice(o,o+2):a-56320+(c-55296<<10)+65536)}}},"0bfb":function(t,n,e){"use strict";var i=e("cb7c");t.exports=function(){var t=i(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},1169:function(t,n,e){var i=e("2d95");t.exports=Array.isArray||function(t){return"Array"==i(t)}},"11e9":function(t,n,e){var i=e("52a7"),r=e("4630"),c=e("6821"),a=e("6a99"),s=e("69a8"),o=e("c69a"),l=Object.getOwnPropertyDescriptor;n.f=e("9e1e")?l:function(t,n){if(t=c(t),n=a(n,!0),o)try{return l(t,n)}catch(e){}if(s(t,n))return r(!i.f.call(t,n),t[n])}},"1c4c":function(t,n,e){"use strict";var i=e("9b43"),r=e("5ca1"),c=e("4bf8"),a=e("1fa8"),s=e("33a4"),o=e("9def"),l=e("f1ae"),u=e("27ee");r(r.S+r.F*!e("5cc5")((function(t){Array.from(t)})),"Array",{from:function(t){var n,e,r,A,b=c(t),g="function"==typeof this?this:Array,f=arguments.length,d=f>1?arguments[1]:void 0,h=void 0!==d,m=0,v=u(b);if(h&&(d=i(d,f>2?arguments[2]:void 0,2)),void 0==v||g==Array&&s(v))for(n=o(b.length),e=new g(n);n>m;m++)l(e,m,h?d(b[m],m):b[m]);else for(A=v.call(b),e=new g;!(r=A.next()).done;m++)l(e,m,h?a(A,d,[r.value,m],!0):r.value);return e.length=m,e}})},"37c8":function(t,n,e){n.f=e("2b4c")},3846:function(t,n,e){e("9e1e")&&"g"!=/./g.flags&&e("86cc").f(RegExp.prototype,"flags",{configurable:!0,get:e("0bfb")})},"385c":function(t,n,e){"use strict";e.r(n);var i=function(){var t=this,n=t.$createElement,i=t._self._c||n;return i("div",{staticClass:"install"},[i("div",{staticClass:"i-con"},[i("div",{staticClass:"c-top"},[t.testLoading?[i("img",{attrs:{src:e("76fc")}}),t._v("正在进行安装环境检测,已检测"),i("span",{staticClass:"num"},[t._v(t._s(t.num))]),t._v("项参数\n ")]:t._e(),t.testSuccess?[i("img",{attrs:{src:e("76fc")}}),t._v("检测完成,已检测"),i("span",{staticClass:"num"},[t._v(t._s(t.num))]),t._v("项参数\n ")]:t._e(),t.testError?[i("img",{attrs:{src:e("e163")}}),t._v("检测完成,"),i("span",{staticClass:"num error"},[t._v(t._s(t.errorNum))]),t._v("项参数不满足安装条件,请配置后重新检测!\n ")]:t._e()],2),i("ul",[t._m(0),t._l(t.list,(function(n,r){return i("li",{key:r},[i("span",{staticClass:"l-left"},[t._v(t._s(n.name))]),i("span",{staticClass:"l-center"},[1==n.id||12==n.id?[i("img",{attrs:{src:e("b249")}})]:[n.enable?i("img",{attrs:{src:e("9ace")}}):i("img",{attrs:{src:e("b249")}})],t._v("\n "+t._s(n.result)+"\n ")],2),i("span",{staticClass:"l-right"},[1==n.id||12==n.id?[n.enable?i("span",[t._v("异常")]):t._e()]:[n.enable?t._e():i("span",[t._v("异常")])]],2)])}))],2),i("div",{staticClass:"c-bottom"},[t.testError?i("span",{staticClass:"btn",on:{click:t.test}},[t._v("重新检测")]):t._e(),t.testSuccess?i("span",{staticClass:"btn",on:{click:t.nextStep}},[t._v("下一步")]):t._e()])])])},r=[function(){var t=this,n=t.$createElement,e=t._self._c||n;return e("li",{staticClass:"li1"},[e("span",{staticClass:"l-left"},[t._v("检测记录")]),e("span",{staticClass:"l-center"},[t._v("检测结果")]),e("span",{staticClass:"l-right"})])}],c=(e("ac4d"),e("8a81"),e("5df3"),e("1c4c"),e("7f7f"),e("6b54"),e("ac6a"),e("4ec3"));function a(t,n){var e;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(e=s(t))||n&&t&&"number"===typeof t.length){e&&(t=e);var i=0,r=function(){};return{s:r,n:function(){return i>=t.length?{done:!0}:{done:!1,value:t[i++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var c,a=!0,o=!1;return{s:function(){e=t[Symbol.iterator]()},n:function(){var t=e.next();return a=t.done,t},e:function(t){o=!0,c=t},f:function(){try{a||null==e.return||e.return()}finally{if(o)throw c}}}}function s(t,n){if(t){if("string"===typeof t)return o(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?o(t,n):void 0}}function o(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,i=new Array(n);e=n.length?{value:void 0,done:!0}:(t=i(n,e),this._i+=t.length,{value:t,done:!1})}))},"67ab":function(t,n,e){var i=e("ca5a")("meta"),r=e("d3f4"),c=e("69a8"),a=e("86cc").f,s=0,o=Object.isExtensible||function(){return!0},l=!e("79e5")((function(){return o(Object.preventExtensions({}))})),u=function(t){a(t,i,{value:{i:"O"+ ++s,w:{}}})},A=function(t,n){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!c(t,i)){if(!o(t))return"F";if(!n)return"E";u(t)}return t[i].i},b=function(t,n){if(!c(t,i)){if(!o(t))return!0;if(!n)return!1;u(t)}return t[i].w},g=function(t){return l&&f.NEED&&o(t)&&!c(t,i)&&u(t),t},f=t.exports={KEY:i,NEED:!1,fastKey:A,getWeak:b,onFreeze:g}},"6b54":function(t,n,e){"use strict";e("3846");var i=e("cb7c"),r=e("0bfb"),c=e("9e1e"),a="toString",s=/./[a],o=function(t){e("2aba")(RegExp.prototype,a,t,!0)};e("79e5")((function(){return"/a/b"!=s.call({source:"a",flags:"b"})}))?o((function(){var t=i(this);return"/".concat(t.source,"/","flags"in t?t.flags:!c&&t instanceof RegExp?r.call(t):void 0)})):s.name!=a&&o((function(){return s.call(this)}))},"76fc":function(t,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAyCAYAAAAjrenXAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkRFNkMwMEM0QzI3RTExRUFCOTNFRDdDOTk3NzQ1MjM5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkRFNkMwMEM1QzI3RTExRUFCOTNFRDdDOTk3NzQ1MjM5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6REU2QzAwQzJDMjdFMTFFQUI5M0VEN0M5OTc3NDUyMzkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6REU2QzAwQzNDMjdFMTFFQUI5M0VEN0M5OTc3NDUyMzkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6LpemyAAAF50lEQVR42sxaCWwVVRT9HaAuaA2INlUqKGJFUVsSjdRG1IhLlSpKtNgIrmi1GFzK5pKgxpYWKC64ESAiQmKCRbQENQJGcIsR41LBSgVSUIMQRCVYinpuOGOuN+//PzOdb73JgT/zZuad9+a++86906yhTaWJmO1EoBq4mcfzgHpgi+viD0qbInXixUh4MLAIaAEqgUOJu4FNwELgtLg6i4P4UGA58CVQAXRzXCPnbgS+BpYB53Yl8cuANfK2gRGO9rXAOsf5q4APgdXApVE7zwrp4zLQUcAUoNDR/hdntJ7kxIqBiUCZ9Oe45zOgFlgKf/8zbuLZwFgSONnR3k4fngFsTPKMQcADdJkejvZvgTrgZQygvbPEjwDuAO4DjnO0/wK8AMwGfgg4WfKcCXxujqO9DZgFzMUAfgtLvA8wHqgCejvat5OskN4T0U2PInkZRJ6jfSfwNPAMBrAzHfF8zu7tQE/Hw76hOyyie8Rh4oZj6EYFjvbfgReBmRjANku8gP6bzP8kckwH3uACjM38Dah4xRUeF/BEhlhr+7mOpuOeFiF+EQ5WOggLwTdJeF0iQ+baOTGIEvw3CbjScYtEnioZ5SOGtIxsPnA6ZyBjpFMMZi0wghxeIicdksvln1x18nVqjVvpz11qIN8M3ISfJ/Ht+3asZ6KG+PC2xP/MQL7NEO/T3RD/Maa+RFwNYFj9FWgFdnfymT/pSCTEu5vQE9XkOaMpZ0sci11E2GLg+YiD0PfkeI6tO4qdA3zBcHVhkpB6BlBDiTsmbnW4N8IzRlMJDjLnO7he7Oz2ZqR4KonoSmZ7LfEOdXxkSNJXcxfVMyyB+XLgcKAv0AvoD9wP7FDXjeceEWbd/KORPGoC33qFeFA+Z85T6+NabhorTezdQuEk7vK5Ol+NzebigP0dbYn/nKQxndUodSdr4xLgtQCRQa77Xp2rC9ifntQ9ngmBeQEfIteVq+MnqGeC2A6VSIsVYdbPDHCf3ih3edS/vg0M2HmZyi1FM88MuTbeI/RaSWenqN9bPbO1Dw4R/nx7h+TDWqPJjoJUEXzbbImfBRwS0FV0yhXFNgZ1UbjSYSbH3eCxZOCbhLWzu0COpNP4hWaH/8rjTqZ1wPkBOtL5ZUFEsvq+1jTXFpvdvdmPwatVQ5C0/xP1eziT6rA20pQoUplOKNZDLe73ia8wo8tN8yCpXB3g757cFcPYBcAwldE0pvDvvsYL3tZapUlt/VkspaVzlcXqeCpwXkDSxwAL9CRgBrenuH6c0VSNmvguM+u3BRBAU1lX8TN1CYuVSWqHvoly/JTaxRdi1SlmWxbkXXpRYpDrrTqcb+JqOl9vY1XAL5tJyHqWYW4ahdYQkr0XeB9YBZxgNPyoFH3kmESnwVVXkUG0ML8T+5hlgnShqpxiK7sT4XAKZrI2yaxP4FsRd67EdQdcBaFKzppvMhtLA3Q8hH4bRHO085nXmzf+MEg9HjWRmGeUW0PAUCfhrIizv0a5j1WGIm1PBW5gFqSvewyzWxuUuKt2KJ0vUcfPmQUSxHJYE8llbXFzkk2mgumenkCpVE2OQtyPlcPNZrEsQ9t9JPJeitipq7Cxfr8xNZNXmLfqjGkS3OahKMTl1d5pctEm5pCZIP8qA4EmXxWFeIJ+3qCO+9OFjs8Q+eUkv5sb05IoPu5bN+aRZercJuaNrTERjqWuYk2C/XVGPQ6gOhwWA+88+HJ+JoiL/UFZ2WSqAe8CkxPRPjlmMcTKW9sK8vdkgrhfRboGmGvcqIZJ78AQfeZzEuaoIk9ppoj7W/U4rnZdYyxh3XAaq1fJLJtiq5kCLKEKSXWZJO6bzJR80t5gymPyZeM7htFs82YqmJTPMhJC1koRFuiq0L7Wib+eELIPJg5+q+nhkLxPUouI//Yz7VIzfxSYDdIdmVqcyWyfKDrWO6wckI2qnoWifiZKLWBxZ0bi3wXX/4y4rquMpHZ/K0VYXUhleEsihi8fcf69ykeJg39RUchsah8xh1FnLNdALPa3AAMATwODKLu5H7UAAAAASUVORK5CYII="},"7bbc":function(t,n,e){var i=e("6821"),r=e("9093").f,c={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(n){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==c.call(t)?s(t):r(i(t))}},"8a81":function(t,n,e){"use strict";var i=e("7726"),r=e("69a8"),c=e("9e1e"),a=e("5ca1"),s=e("2aba"),o=e("67ab").KEY,l=e("79e5"),u=e("5537"),A=e("7f20"),b=e("ca5a"),g=e("2b4c"),f=e("37c8"),d=e("3a72"),h=e("d4c0"),m=e("1169"),v=e("cb7c"),I=e("d3f4"),p=e("4bf8"),E=e("6821"),y=e("6a99"),w=e("4630"),R=e("2aeb"),M=e("7bbc"),N=e("11e9"),Z=e("2621"),S=e("86cc"),O=e("0d58"),D=N.f,G=S.f,j=M.f,C=i.Symbol,J=i.JSON,Q=J&&J.stringify,k="prototype",F=g("_hidden"),U=g("toPrimitive"),B={}.propertyIsEnumerable,z=u("symbol-registry"),T=u("symbols"),W=u("op-symbols"),Y=Object[k],L="function"==typeof C&&!!Z.f,P=i.QObject,V=!P||!P[k]||!P[k].findChild,H=c&&l((function(){return 7!=R(G({},"a",{get:function(){return G(this,"a",{value:7}).a}})).a}))?function(t,n,e){var i=D(Y,n);i&&delete Y[n],G(t,n,e),i&&t!==Y&&G(Y,n,i)}:G,x=function(t){var n=T[t]=R(C[k]);return n._k=t,n},X=L&&"symbol"==typeof C.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof C},K=function(t,n,e){return t===Y&&K(W,n,e),v(t),n=y(n,!0),v(e),r(T,n)?(e.enumerable?(r(t,F)&&t[F][n]&&(t[F][n]=!1),e=R(e,{enumerable:w(0,!1)})):(r(t,F)||G(t,F,w(1,{})),t[F][n]=!0),H(t,n,e)):G(t,n,e)},q=function(t,n){v(t);var e,i=h(n=E(n)),r=0,c=i.length;while(c>r)K(t,e=i[r++],n[e]);return t},_=function(t,n){return void 0===n?R(t):q(R(t),n)},$=function(t){var n=B.call(this,t=y(t,!0));return!(this===Y&&r(T,t)&&!r(W,t))&&(!(n||!r(this,t)||!r(T,t)||r(this,F)&&this[F][t])||n)},tt=function(t,n){if(t=E(t),n=y(n,!0),t!==Y||!r(T,n)||r(W,n)){var e=D(t,n);return!e||!r(T,n)||r(t,F)&&t[F][n]||(e.enumerable=!0),e}},nt=function(t){var n,e=j(E(t)),i=[],c=0;while(e.length>c)r(T,n=e[c++])||n==F||n==o||i.push(n);return i},et=function(t){var n,e=t===Y,i=j(e?W:E(t)),c=[],a=0;while(i.length>a)!r(T,n=i[a++])||e&&!r(Y,n)||c.push(T[n]);return c};L||(C=function(){if(this instanceof C)throw TypeError("Symbol is not a constructor!");var t=b(arguments.length>0?arguments[0]:void 0),n=function(e){this===Y&&n.call(W,e),r(this,F)&&r(this[F],t)&&(this[F][t]=!1),H(this,t,w(1,e))};return c&&V&&H(Y,t,{configurable:!0,set:n}),x(t)},s(C[k],"toString",(function(){return this._k})),N.f=tt,S.f=K,e("9093").f=M.f=nt,e("52a7").f=$,Z.f=et,c&&!e("2d00")&&s(Y,"propertyIsEnumerable",$,!0),f.f=function(t){return x(g(t))}),a(a.G+a.W+a.F*!L,{Symbol:C});for(var it="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;it.length>rt;)g(it[rt++]);for(var ct=O(g.store),at=0;ct.length>at;)d(ct[at++]);a(a.S+a.F*!L,"Symbol",{for:function(t){return r(z,t+="")?z[t]:z[t]=C(t)},keyFor:function(t){if(!X(t))throw TypeError(t+" is not a symbol!");for(var n in z)if(z[n]===t)return n},useSetter:function(){V=!0},useSimple:function(){V=!1}}),a(a.S+a.F*!L,"Object",{create:_,defineProperty:K,defineProperties:q,getOwnPropertyDescriptor:tt,getOwnPropertyNames:nt,getOwnPropertySymbols:et});var st=l((function(){Z.f(1)}));a(a.S+a.F*st,"Object",{getOwnPropertySymbols:function(t){return Z.f(p(t))}}),J&&a(a.S+a.F*(!L||l((function(){var t=C();return"[null]"!=Q([t])||"{}"!=Q({a:t})||"{}"!=Q(Object(t))}))),"JSON",{stringify:function(t){var n,e,i=[t],r=1;while(arguments.length>r)i.push(arguments[r++]);if(e=n=i[1],(I(n)||void 0!==t)&&!X(t))return m(n)||(n=function(t,n){if("function"==typeof e&&(n=e.call(this,t,n)),!X(n))return n}),i[1]=n,Q.apply(J,i)}}),C[k][U]||e("32e9")(C[k],U,C[k].valueOf),A(C,"Symbol"),A(Math,"Math",!0),A(i.JSON,"JSON",!0)},9093:function(t,n,e){var i=e("ce10"),r=e("e11e").concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return i(t,r)}},"9ace":function(t,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVFNDE5MTM5QzI3RTExRUFBQzBCRTdBNzg4N0UxRDhEIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVFNDE5MTNBQzI3RTExRUFBQzBCRTdBNzg4N0UxRDhEIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUU0MTkxMzdDMjdFMTFFQUFDMEJFN0E3ODg3RTFEOEQiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUU0MTkxMzhDMjdFMTFFQUFDMEJFN0E3ODg3RTFEOEQiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4h0EUsAAABeUlEQVR42mJkQAOWW73MgFQKELsCsTRU+CkQ7wbiOce9t51CVs+IpJEPSE0H4igG/GAZEGcCDfoENwCqeS8QmzAQB0CucAUZwgQVmEGsZlYmFhBlBtXDwAS03RxIRxKjWVtAnWGVwxwGLQE1EDcSFF5M0AAjSvMEsxYGJiD89OsLTDgVZIALsZq//fnOkH2iguHJt2cwKReQATIwnrGwPgMPCzexmkFAGmTAfxBLmF2Iode0AawYZggBzWDALButmgikBb///c7w/NsrhmB5HwYTEQOGZ99eMvQADfz65xtDzolKrJqB4BHIAC2Q60G8u58fMDz99hxsiIe0I8Pbn+8ZMo6XMjz//hJX8KwGeWEOssjOZ/sZ1j/ayvD3/1+GirPNDK9+vMEXvrNhKXERkIpFluFgZmf48fcnPs2LgSkxDpYSs6DJEw4IaD4F1cMANgBoEihlOAPxQiLS1AKQWqgeRG5EypWGSNlZFhbaQLwHmp3PI6sHCDAAOxKM/1qz5MgAAAAASUVORK5CYII="},ac4d:function(t,n,e){e("3a72")("asyncIterator")},b249:function(t,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY4OEI3QjdEQzI3RjExRUFCMDE3Q0U3QTIzNkU3RDg2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY4OEI3QjdFQzI3RjExRUFCMDE3Q0U3QTIzNkU3RDg2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6Rjg4QjdCN0JDMjdGMTFFQUIwMTdDRTdBMjM2RTdEODYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6Rjg4QjdCN0NDMjdGMTFFQUIwMTdDRTdBMjM2RTdEODYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4GdyTVAAABA0lEQVR42mJ8ZqvHgAZMgDgFiF2BWAYq9gSIdwPxHCA+g6yYEckAXiCeAsRxDPjBIiDOBuIvIA4TkuY9aJr/AnEWFP9DEgep2QvEPMgGTAViMzSbbgDxdCi+hSZnBnUtAwsQmwJxLBanagNxK9QSDSzy8UA8CWRAKh7/lhMIj1SQAW54FFiDAhqIj+OQdwUZII3HgJsEXCDLxEAhABnwlAL9j0EG7KTAgN0gA2aTqfk/EM9igqbtRWQYsACIz7NAOdnQxIKeGtOBmBmL5hNAnIOembhBKQuIE6Fxj8vZ84A4D4i/IecFEPgKxMlAbATNG6D0/wOKb0PFjKBZ/RtME0CAAQBfvjGDHtEXRgAAAABJRU5ErkJggg=="},bd28:function(t,n,e){"use strict";e("be6b")},be6b:function(t,n,e){},d4c0:function(t,n,e){var i=e("0d58"),r=e("2621"),c=e("52a7");t.exports=function(t){var n=i(t),e=r.f;if(e){var a,s=e(t),o=c.f,l=0;while(s.length>l)o.call(t,a=s[l++])&&n.push(a)}return n}},e163:function(t,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAyCAYAAADMb4LpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkRBRTAwNTkwQzI3RjExRUFCQkJBQjgxNzM5Mzg0QzA2IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkRBRTAwNTkxQzI3RjExRUFCQkJBQjgxNzM5Mzg0QzA2Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6REFFMDA1OEVDMjdGMTFFQUJCQkFCODE3MzkzODRDMDYiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6REFFMDA1OEZDMjdGMTFFQUJCQkFCODE3MzkzODRDMDYiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7JjqEJAAAFAklEQVR42tRaa4gWVRieHbXU1NVtk1bTTLtnxmpeQFstCqUfaRFRFkVoUGn5x/ACggshigiKoEim9iOQEkvt5hWzhC5qbEsGBestXNNVd101c3W359nvPXH2dWZ25jujzPfCw3xzZubMM+e9nPe85ys6/tgQLw8ZANwH3C/HgUCJhV5yXyPQDPwLnBH8DdQI/gCqyvZUncqHRFFM8oOBJ4EngFHAbV66chzYB3wH7AZ+wQdddSFfDrwMPCsjeyPlLPAN8AWwGR9yPg75bsCrwJvAwwledl5Gj+qvs9puBjoB3cWcbhetdUjQ9yXgS2A1sA0f0qzJlwIzgbeAHhEdtQC/inp5PAhUA+cSkCHx/sDdwEPAUNEyfxe18+wh4ANgJT6inuQX42Qa0CVChZ8BnwN7xelSE5BoPdZWPEInHy2+NUECQZhcAJaRfEvARTrLRmANsBNoul7Gbchrwccwkk0GXgj7EE2+HlgFrACOOvLqIPZ9UsJlIvLqQ4bh8DbwkmUhDb66bxMwOwXiVPtffC9wDBjnqJ39wBQ6rN3ui/0Y6Z6CJTBirZfIQukDfCqRx1U6avJXlKpdhSG2WLWVSnRJY2CMNJL8RashjdEJ66NTyr7e5EveYaSLl22xzfocyTdYDV0zTt7W6iVfpl8jt2ScfLdCJn+N2dh5SXHGyXeNctis23xnHSrPWg03pRTrUxekCD1VU6vZ1KvG4gIwmdY8LIh8r4ySL1XnDUHkSzJKvnfQyNcVyMjfqs7rSP5EO+rJKvmTviwWbOlbIDZ/ypciUJRtZdXmT5g4/4/VeEcBkG9kLccsA2usCwNc8+yQ9quO/dq8DpuVlKmHGBnk+JLfVcphShU1jv0OjEOeK/4eDi9hXYd1oMsmdQWmqrVy0tSgWEWbNuQPqvvLHUfpQ/GdMRK91jv2N0ydV9vk96mLI1JwMNYt06qwaT77bfJVlpopr0uG6SKPerna51jHbJILkHespst65Bkhdlg3PADMcXjnXOBnL1d52w0sdehrkZer/RjZgDDZZJOnvKdqOPPEZpMKnWu+apsB3JnHqE8U7RlhmWa2ObHJ02kXWudclHwC9Ev4zv4hNZq7EhJ/EIePVPMcjPqxIPKUSuBH67zMy+1Q9LzBqyaWCr9SC6OtwHL7Pk2eZvMicNpq4whsShD7j4bMsodiEuc8s12ZGYu2r2HUW6LImwngOTVLVkiHcXL9hgCb54gdiUGcmt7l5TbwjHB7aCKI6wQykDxlD/CK17auPkLidhzbXQCMlJl2HPBuTBvfq4hTg8+D+IGgZ/yI/jZ4uc21ZhVCOaE9FeMDfpJQ+W0M4pNw+EENjCG+New5v51+P6bKVMpcIs6z0HOv/HYGcZoU97zaVMOACSC+OephP8YLuBf6uFouctduFnDAIZWgH3FHcbpqp29UgPiu9jrwY76I4ZNbjt+r9sGi7tUSVuNIP9EozekedY2z/HAQr4rTkZ9gpGrF+SrVwoJa4H7Rn2JKYQv4MkkT+H+DyQELGM6c45P8D6Eozz9OlMtoDw24xvx9nThrtdwzXQgH7ZpQc1NB+rekJPIlT+Hm1huiibA/UhyJyGlqJX9aa2/JJxHfIVJwNl7p5TbKKr22OyxGgoifFtL3ctGSL3FX8nZYmy+OGLWHy/Rgpiyk35eZ00nSIP9/OUJyby6UnwG+lrLKFuBp0dCSNEgb+U+AAQCwyUnyOlpmgQAAAABJRU5ErkJggg=="},f1ae:function(t,n,e){"use strict";var i=e("86cc"),r=e("4630");t.exports=function(t,n,e){n in t?i.f(t,n,r(0,e)):t[n]=e}}}]); ================================================ FILE: public/js/chunk-168777de.cb8bf66b.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-168777de"],{"02f4":function(e,t,r){var a=r("4588"),n=r("be13");e.exports=function(e){return function(t,r){var o,i,s=String(n(t)),u=a(r),c=s.length;return u<0||u>=c?e?"":void 0:(o=s.charCodeAt(u),o<55296||o>56319||u+1===c||(i=s.charCodeAt(u+1))<56320||i>57343?e?s.charAt(u):o:e?s.slice(u,u+2):i-56320+(o-55296<<10)+65536)}}},"0390":function(e,t,r){"use strict";var a=r("02f4")(!0);e.exports=function(e,t,r){return t+(r?a(e,t).length:1)}},"0bfb":function(e,t,r){"use strict";var a=r("cb7c");e.exports=function(){var e=a(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"11e9":function(e,t,r){var a=r("52a7"),n=r("4630"),o=r("6821"),i=r("6a99"),s=r("69a8"),u=r("c69a"),c=Object.getOwnPropertyDescriptor;t.f=r("9e1e")?c:function(e,t){if(e=o(e),t=i(t,!0),u)try{return c(e,t)}catch(r){}if(s(e,t))return n(!a.f.call(e,t),e[t])}},"214f":function(e,t,r){"use strict";r("b0c5");var a=r("2aba"),n=r("32e9"),o=r("79e5"),i=r("be13"),s=r("2b4c"),u=r("520a"),c=s("species"),l=!o((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),_=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r="ab".split(e);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();e.exports=function(e,t,r){var p=s(e),f=!o((function(){var t={};return t[p]=function(){return 7},7!=""[e](t)})),d=f?!o((function(){var t=!1,r=/a/;return r.exec=function(){return t=!0,null},"split"===e&&(r.constructor={},r.constructor[c]=function(){return r}),r[p](""),!t})):void 0;if(!f||!d||"replace"===e&&!l||"split"===e&&!_){var m=/./[p],v=r(i,p,""[e],(function(e,t,r,a,n){return t.exec===u?f&&!n?{done:!0,value:m.call(t,r,a)}:{done:!0,value:e.call(r,t,a)}:{done:!1}})),h=v[0],g=v[1];a(String.prototype,e,h),n(RegExp.prototype,p,2==t?function(e,t){return g.call(e,this,t)}:function(e){return g.call(e,this)})}}},"23e5":function(module,__webpack_exports__,__webpack_require__){"use strict";var core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("3b2b"),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_0__),core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("ac6a"),core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_1__),core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("7f7f"),core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("a481"),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("28a5"),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_4__),_api_api__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("4ec3");function treeToTemplate(tree){var num=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;function parse(item,result){var rule=item.rule?"|"+item.rule:"",value=item.default_value;if(item.default_value&&0===item.default_value.indexOf("[")&&"]"===item.default_value.substring(item.default_value.length-1))try{var reg=/\s*/g,reg2=/\"/g;value=value.substring(1,value.length-1).replace(reg,"").replace(reg2,"").split(","),result[item.name+rule]=value}catch(e){result[item.name+rule]=value}else if(item.name.length)switch(item.type){case 1:result[item.name+rule]=value;break;case 2:""===value&&(value=1);var parsed=parseFloat(value);isNaN(parsed)||(value=parsed),result[item.name+rule]=value;break;case 3:"true"===value&&(value=!0),"false"===value&&(value=!1),"0"===value&&(value=!1),value=!!value,result[item.name+rule]=value;break;case 4:result[item.name+rule]={},item.children.forEach((function(e){parse(e,result[item.name+rule])}));break;case 5:if(value)try{result[item.name+rule]=value}catch(e){result[item.name+rule]=item.value}else result[item.name+rule]=item.children.length?[{}]:[],item.children.forEach((function(e){parse(e,result[item.name+rule][0])}));break;case 6:if(1==num)try{var fun=eval(item.default_value);result[item.name+rule]=fun()}catch(e){result[item.name+rule]=item.default_value}else result[item.name+rule]=value;break;case 7:if(1==num)try{result[item.name+rule]=new RegExp(item.default_value)}catch(e){result[item.name+rule]=item.default_value}else{var _reg=/\\/g;result[item.name+rule]=item.default_value.replace(_reg,"")}break;case 8:result[item.name+rule]=null;break}}var result={};return tree.length&&tree.forEach((function(e){parse(e,result)})),result}function romoveSlash(e){var t={},r=/\//g;for(var a in e)"string"==typeof e[a]&&r.test(e[a])?t[a]=e[a].replace(r,""):t[a]=e[a];return t}__webpack_exports__["a"]={name:"mock",data:function(){return{loading:"",requestHeaderMockTemplate:"",requestParamsMockTemplate:"",requestBodyMockTemplate:"",requestHeaderMockJson:"",requesParamstMockJson:"",requestBodyMockJson:"",responseMockTemplate:"",apiHeaderTreeData:[],apiParamsTreeData:[],apiBodyTreeData:[],apiResTreeData:[],responseMockJson:"",reponseIndex:0}},created:function(){this.mockDetail(),this.reponseIndex=this.$route.query.reponse},methods:{mockDetail:function(){var e=this,t=this.$route.params.chapter_id,r=this.$route.params.document_id;this.loading=this.$loading(),Object(_api_api__WEBPACK_IMPORTED_MODULE_5__["v"])({chapter_id:t,document_id:r,show_record:1}).then((function(t){if(e.loading.close(),200==t.code&&t.data.record){var r=JSON.parse(JSON.stringify(t.data.record));r.body[1].length&&(e.apiHeaderTreeData=JSON.parse(JSON.stringify(r.body["1"]))),r.body[2].length?e.apiParamsTreeData=JSON.parse(JSON.stringify(r.body["2"])):e.apiParamsTreeData=[],r.body.request_body.length?e.apiBodyTreeData=JSON.parse(JSON.stringify(r.body.request_body)):e.apiBodyTreeData=[],r.reponse.length?e.apiResTreeData=JSON.parse(JSON.stringify(r.reponse)):e.apiResTreeData=[],e.initMock()}})).catch((function(t){e.loading.close()}))},initMock:function(){var e=this;this.requestHeaderMockTemplate=treeToTemplate(this.apiHeaderTreeData),this.requestHeaderMockJson=this.$mock.mock(treeToTemplate(this.apiHeaderTreeData,1)),this.requestHeaderMockJson=romoveSlash(this.requestHeaderMockJson),this.requestParamsMockTemplate=treeToTemplate(this.apiParamsTreeData),this.requesParamstMockJson=this.$mock.mock(treeToTemplate(this.apiParamsTreeData,1)),this.requesParamstMockJson=romoveSlash(this.requesParamstMockJson),this.requestBodyMockTemplate=treeToTemplate(this.apiBodyTreeData),this.requestBodyMockJson=this.$mock.mock(treeToTemplate(this.apiBodyTreeData,1)),this.requestBodyMockJson=romoveSlash(this.requestBodyMockJson),this.responseMockTemplate=[],this.responseMockJson=[],this.apiResTreeData.forEach((function(t){e.responseMockTemplate.push(treeToTemplate(t.data)),e.responseMockJson.push(e.$mock.mock(treeToTemplate(t.data,1)))}));var t=[];this.responseMockJson.forEach((function(e){t.push(romoveSlash(e))})),this.responseMockJson=t}}}},"28a5":function(e,t,r){"use strict";var a=r("aae3"),n=r("cb7c"),o=r("ebd6"),i=r("0390"),s=r("9def"),u=r("5f1b"),c=r("520a"),l=r("79e5"),_=Math.min,p=[].push,f="split",d="length",m="lastIndex",v=4294967295,h=!l((function(){RegExp(v,"y")}));r("214f")("split",2,(function(e,t,r,l){var g;return g="c"=="abbc"[f](/(b)*/)[1]||4!="test"[f](/(?:)/,-1)[d]||2!="ab"[f](/(?:ab)*/)[d]||4!="."[f](/(.?)(.?)/)[d]||"."[f](/()()/)[d]>1||""[f](/.?/)[d]?function(e,t){var n=String(this);if(void 0===e&&0===t)return[];if(!a(e))return r.call(n,e,t);var o,i,s,u=[],l=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),_=0,f=void 0===t?v:t>>>0,h=new RegExp(e.source,l+"g");while(o=c.call(h,n)){if(i=h[m],i>_&&(u.push(n.slice(_,o.index)),o[d]>1&&o.index=f))break;h[m]===o.index&&h[m]++}return _===n[d]?!s&&h.test("")||u.push(""):u.push(n.slice(_)),u[d]>f?u.slice(0,f):u}:"0"[f](void 0,0)[d]?function(e,t){return void 0===e&&0===t?[]:r.call(this,e,t)}:r,[function(r,a){var n=e(this),o=void 0==r?void 0:r[t];return void 0!==o?o.call(r,n,a):g.call(String(n),r,a)},function(e,t){var a=l(g,e,this,t,g!==r);if(a.done)return a.value;var c=n(e),p=String(this),f=o(c,RegExp),d=c.unicode,m=(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.unicode?"u":"")+(h?"y":"g"),b=new f(h?c:"^(?:"+c.source+")",m),E=void 0===t?v:t>>>0;if(0===E)return[];if(0===p.length)return null===u(b,p)?[p]:[];var k=0,M=0,x=[];while(Mh;)m(v[h++]);_.constructor=c,c.prototype=_,r("2aba")(a,"RegExp",c)}r("7a56")("RegExp")},"520a":function(e,t,r){"use strict";var a=r("0bfb"),n=RegExp.prototype.exec,o=String.prototype.replace,i=n,s="lastIndex",u=function(){var e=/a/,t=/b*/g;return n.call(e,"a"),n.call(t,"a"),0!==e[s]||0!==t[s]}(),c=void 0!==/()??/.exec("")[1],l=u||c;l&&(i=function(e){var t,r,i,l,_=this;return c&&(r=new RegExp("^"+_.source+"$(?!\\s)",a.call(_))),u&&(t=_[s]),i=n.call(_,e),u&&i&&(_[s]=_.global?i.index+i[0].length:t),c&&i&&i.length>1&&o.call(i[0],r,(function(){for(l=1;l]*>)/g,f=/\$([$&`']|\d\d?)/g,d=function(e){return void 0===e?e:String(e)};r("214f")("replace",2,(function(e,t,r,m){return[function(a,n){var o=e(this),i=void 0==a?void 0:a[t];return void 0!==i?i.call(a,o,n):r.call(String(o),a,n)},function(e,t){var n=m(r,e,this,t);if(n.done)return n.value;var _=a(e),p=String(this),f="function"===typeof t;f||(t=String(t));var h=_.global;if(h){var g=_.unicode;_.lastIndex=0}var b=[];while(1){var E=u(_,p);if(null===E)break;if(b.push(E),!h)break;var k=String(E[0]);""===k&&(_.lastIndex=s(p,o(_.lastIndex),g))}for(var M="",x=0,y=0;y=x&&(M+=p.slice(x,D)+q,x=D+T.length)}return M+p.slice(x)}];function v(e,t,a,o,i,s){var u=a+e.length,c=o.length,l=f;return void 0!==i&&(i=n(i),l=p),r.call(s,l,(function(r,n){var s;switch(n.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,a);case"'":return t.slice(u);case"<":s=i[n.slice(1,-1)];break;default:var l=+n;if(0===l)return r;if(l>c){var p=_(l/10);return 0===p?r:p<=c?void 0===o[p-1]?n.charAt(1):o[p-1]+n.charAt(1):r}s=o[l-1]}return void 0===s?"":s}))}}))},aae3:function(e,t,r){var a=r("d3f4"),n=r("2d95"),o=r("2b4c")("match");e.exports=function(e){var t;return a(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==n(e))}},b0c5:function(e,t,r){"use strict";var a=r("520a");r("5ca1")({target:"RegExp",proto:!0,forced:a!==/./.exec},{exec:a})}}]); ================================================ FILE: public/js/chunk-1e630799.897fa4c7.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-1e630799"],{"11e9":function(t,e,r){var n=r("52a7"),a=r("4630"),o=r("6821"),s=r("6a99"),i=r("69a8"),c=r("c69a"),l=Object.getOwnPropertyDescriptor;e.f=r("9e1e")?l:function(t,e){if(t=o(t),e=s(e,!0),c)try{return l(t,e)}catch(r){}if(i(t,e))return a(!n.f.call(t,e),t[e])}},"8e6e":function(t,e,r){var n=r("5ca1"),a=r("990b"),o=r("6821"),s=r("11e9"),i=r("f1ae");n(n.S,"Object",{getOwnPropertyDescriptors:function(t){var e,r,n=o(t),c=s.f,l=a(n),u={},f=0;while(l.length>f)r=c(n,e=l[f++]),void 0!==r&&i(u,e,r);return u}})},9093:function(t,e,r){var n=r("ce10"),a=r("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,a)}},"990b":function(t,e,r){var n=r("9093"),a=r("2621"),o=r("cb7c"),s=r("7726").Reflect;t.exports=s&&s.ownKeys||function(t){var e=n.f(o(t)),r=a.f;return r?e.concat(r(t)):e}},"9f63":function(t,e,r){},b745:function(t,e,r){"use strict";r("9f63")},e378:function(t,e,r){"use strict";r.r(e);var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"layout-container container"},[r("div",{staticClass:"page-head"},[t._v("用户管理")]),r("div",{staticClass:"search-box"},[r("div",{staticClass:"search-box-input"},[r("el-input",{staticClass:"demo-input-suffix",attrs:{placeholder:"请输入用户名称",clearable:""},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.search(e)}},model:{value:t.keyword,callback:function(e){t.keyword=e},expression:"keyword"}},[r("i",{staticClass:"el-input__icon el-icon-search",attrs:{slot:"suffix"},on:{click:t.search},slot:"suffix"})])],1),r("div",{staticClass:"demo-input-btn"},[r("router-link",{staticClass:"el-button el-button--primary we7-button-normal",attrs:{to:"user/create",type:"button"}},[t._v("创建用户")])],1)]),r("el-table",{ref:"multipleTable",staticClass:"w7-table",attrs:{data:t.userList,"header-cell-style":{background:"#f7f9fc",color:"#606266"},"empty-text":"没有与搜索条件匹配的项"}},[r("el-table-column",{attrs:{label:"账号",prop:"username"}}),r("el-table-column",{attrs:{label:"添加时间",prop:"created_at",sortable:"","column-key":"date"},scopedSlots:t._u([{key:"default",fn:function(e){return[t.UserInfo.id!=e.row.id?r("div",[t._v(t._s(e.row.created_at))]):t._e()]}}])}),r("el-table-column",{attrs:{label:"身份",prop:"role"}}),r("el-table-column",{attrs:{label:"管理权限"},scopedSlots:t._u([{key:"default",fn:function(e){return[r("span",[t._v(t._s(e.row.manage_doc_count)+"个文档")])]}}])}),r("el-table-column",{attrs:{label:"操作权限"},scopedSlots:t._u([{key:"default",fn:function(e){return[r("span",[t._v(t._s(e.row.operate_doc_count)+"个文档")])]}}])}),r("el-table-column",{attrs:{label:"仅阅读"},scopedSlots:t._u([{key:"default",fn:function(e){return[r("span",[t._v(t._s(e.row.read_doc_count)+"个文档")])]}}])}),r("el-table-column",{attrs:{label:"操作",align:"right"},scopedSlots:t._u([{key:"default",fn:function(e){return r("div",{staticClass:"oper"},[r("el-tooltip",{attrs:{effect:"dark",content:"个人资料",placement:"bottom"}},[r("i",{staticClass:" wi el-icon-user",on:{click:function(r){return t.openPersonDetail(e.row.id)}}})]),r("el-tooltip",{attrs:{effect:"dark",content:"设置",placement:"bottom"}},[r("i",{staticClass:"wi wi-tools",on:{click:function(r){return t.openEditorUser(e.row)}}})]),r("el-tooltip",{attrs:{effect:"dark",content:"权限管理",placement:"bottom"}},[r("i",{staticClass:"wi wi-quanxian2",on:{click:function(r){return t.openPermission(e.row.id)}}})]),r("el-tooltip",{attrs:{effect:"dark",content:"删除",placement:"bottom"}},[t.UserInfo.id!=e.row.id?r("i",{staticClass:"wi wi-delete",on:{click:function(r){return t.deleteSelectRows(e.row.id)}}}):t._e()])],1)}}])})],1),r("div",{staticClass:"btns"},[r("el-pagination",{attrs:{background:"",layout:"prev, pager, next, total","prev-text":"上一页","next-text":"下一页","current-page":t.currentPage,"page-count":t.pageCount,total:t.total,"hide-on-single-page":!0},on:{"current-change":t.getuserlist,"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e}}})],1),r("el-dialog",{staticClass:"w7-dialog",attrs:{title:"账号设置",visible:t.dialogEditUserVisible,"close-on-click-modal":!1,center:""},on:{"update:visible":function(e){t.dialogEditUserVisible=e}}},[r("el-form",{attrs:{model:t.formData,"label-width":"105px","label-position":"left"}},[r("el-form-item",{attrs:{label:"用户名"}},[r("el-input",{model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}})],1),r("el-form-item",{attrs:{label:"密码"}},[r("el-input",{attrs:{type:"password"},model:{value:t.formData.userpass,callback:function(e){t.$set(t.formData,"userpass",e)},expression:"formData.userpass"}})],1),r("el-form-item",{attrs:{label:"确认密码"}},[r("el-input",{attrs:{type:"password"},model:{value:t.formData.userpass_confirmation,callback:function(e){t.$set(t.formData,"userpass_confirmation",e)},expression:"formData.userpass_confirmation"}})],1)],1),r("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[r("el-button",{attrs:{type:"primary"},on:{click:t.editorUser}},[t._v("确 定")]),r("el-button",{on:{click:function(e){t.dialogEditUserVisible=!1}}},[t._v("取 消")])],1)],1)],1)},a=[],o=(r("8e6e"),r("ac6a"),r("456d"),r("fc11")),s=r("2f62");function i(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,n)}return r}function c(t){for(var e=1;ef)s=l(a,t=c[f++]),void 0!==s&&n(u,t,s);return u}})},9093:function(e,t,s){var a=s("ce10"),r=s("e11e").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return a(e,r)}},"990b":function(e,t,s){var a=s("9093"),r=s("2621"),o=s("cb7c"),i=s("7726").Reflect;e.exports=i&&i.ownKeys||function(e){var t=a.f(o(e)),s=r.f;return s?t.concat(s(e)):t}},c88b:function(e,t,s){"use strict";s("59cf")},f1ae:function(e,t,s){"use strict";var a=s("86cc"),r=s("4630");e.exports=function(e,t,s){t in e?a.f(e,t,r(0,s)):e[t]=s}},fc11:function(e,t,s){"use strict";function a(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}s.d(t,"a",(function(){return a}))}}]); ================================================ FILE: public/js/chunk-211c6b12.01b14833.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-211c6b12"],{"02f4":function(e,t,n){var r=n("4588"),i=n("be13");e.exports=function(e){return function(t,n){var o,a,s=String(i(t)),c=r(n),l=s.length;return c<0||c>=l?e?"":void 0:(o=s.charCodeAt(c),o<55296||o>56319||c+1===l||(a=s.charCodeAt(c+1))<56320||a>57343?e?s.charAt(c):o:e?s.slice(c,c+2):a-56320+(o-55296<<10)+65536)}}},"0390":function(e,t,n){"use strict";var r=n("02f4")(!0);e.exports=function(e,t,n){return t+(n?r(e,t).length:1)}},"0bfb":function(e,t,n){"use strict";var r=n("cb7c");e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},1169:function(e,t,n){var r=n("2d95");e.exports=Array.isArray||function(e){return"Array"==r(e)}},"11e9":function(e,t,n){var r=n("52a7"),i=n("4630"),o=n("6821"),a=n("6a99"),s=n("69a8"),c=n("c69a"),l=Object.getOwnPropertyDescriptor;t.f=n("9e1e")?l:function(e,t){if(e=o(e),t=a(t,!0),c)try{return l(e,t)}catch(n){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},"1c4c":function(e,t,n){"use strict";var r=n("9b43"),i=n("5ca1"),o=n("4bf8"),a=n("1fa8"),s=n("33a4"),c=n("9def"),l=n("f1ae"),u=n("27ee");i(i.S+i.F*!n("5cc5")((function(e){Array.from(e)})),"Array",{from:function(e){var t,n,i,d,h=o(e),f="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:void 0,g=void 0!==m,v=0,b=u(h);if(g&&(m=r(m,p>2?arguments[2]:void 0,2)),void 0==b||f==Array&&s(b))for(t=c(h.length),n=new f(t);t>v;v++)l(n,v,g?m(h[v],v):h[v]);else for(d=b.call(h),n=new f;!(i=d.next()).done;v++)l(n,v,g?a(d,m,[i.value,v],!0):i.value);return n.length=v,n}})},"1ec4":function(e,t){e.exports=function(e){var t=document.querySelector(e.tocSelector);if(t&&t.scrollHeight>t.clientHeight){var n=t.querySelector("."+e.activeListItemClass);n&&(t.scrollTop=n.offsetTop)}}},"214f":function(e,t,n){"use strict";n("b0c5");var r=n("2aba"),i=n("32e9"),o=n("79e5"),a=n("be13"),s=n("2b4c"),c=n("520a"),l=s("species"),u=!o((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),d=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var h=s(e),f=!o((function(){var t={};return t[h]=function(){return 7},7!=""[e](t)})),p=f?!o((function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[l]=function(){return n}),n[h](""),!t})):void 0;if(!f||!p||"replace"===e&&!u||"split"===e&&!d){var m=/./[h],g=n(a,h,""[e],(function(e,t,n,r,i){return t.exec===c?f&&!i?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}})),v=g[0],b=g[1];r(String.prototype,e,v),i(RegExp.prototype,h,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}}},"28a5":function(e,t,n){"use strict";var r=n("aae3"),i=n("cb7c"),o=n("ebd6"),a=n("0390"),s=n("9def"),c=n("5f1b"),l=n("520a"),u=n("79e5"),d=Math.min,h=[].push,f="split",p="length",m="lastIndex",g=4294967295,v=!u((function(){RegExp(g,"y")}));n("214f")("split",2,(function(e,t,n,u){var b;return b="c"=="abbc"[f](/(b)*/)[1]||4!="test"[f](/(?:)/,-1)[p]||2!="ab"[f](/(?:ab)*/)[p]||4!="."[f](/(.?)(.?)/)[p]||"."[f](/()()/)[p]>1||""[f](/.?/)[p]?function(e,t){var i=String(this);if(void 0===e&&0===t)return[];if(!r(e))return n.call(i,e,t);var o,a,s,c=[],u=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),d=0,f=void 0===t?g:t>>>0,v=new RegExp(e.source,u+"g");while(o=l.call(v,i)){if(a=v[m],a>d&&(c.push(i.slice(d,o.index)),o[p]>1&&o.index=f))break;v[m]===o.index&&v[m]++}return d===i[p]?!s&&v.test("")||c.push(""):c.push(i.slice(d)),c[p]>f?c.slice(0,f):c}:"0"[f](void 0,0)[p]?function(e,t){return void 0===e&&0===t?[]:n.call(this,e,t)}:n,[function(n,r){var i=e(this),o=void 0==n?void 0:n[t];return void 0!==o?o.call(n,i,r):b.call(String(i),n,r)},function(e,t){var r=u(b,e,this,t,b!==n);if(r.done)return r.value;var l=i(e),h=String(this),f=o(l,RegExp),p=l.unicode,m=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(v?"y":"g"),y=new f(v?l:"^(?:"+l.source+")",m),C=void 0===t?g:t>>>0;if(0===C)return[];if(0===h.length)return null===c(y,h)?[h]:[];var w=0,S=0,k=[];while(S=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return a=e.done,e},e:function(e){s=!0,o=e},f:function(){try{a||null==n.return||n.return()}finally{if(s)throw o}}}}function d(e,t){if(e){if("string"===typeof e)return h(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?h(e,t):void 0}}function h(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n100})),e(document).on("click",".markdown-body .markdown-content img",(function(){var t=e(this).attr("src");n.imgDialogShow=!0,n.imgDialogSrc=t})),document.onmousedown=function(e){if(!e.target.toElement.nodeValue||"文档反馈"!=e.target.toElement.nodeValue){var t=document.querySelector("#feedBtn");if("none"!=t.style.display&&(t.style.display="none"),document.selection)document.selection.empty();else{var n=document.getSelection();n.removeAllRanges()}}},document.querySelector(".article").onmouseup=function(e){e=e||window.event;var t=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0,n=e.clientX-50,r=e.clientY+t-60,i="";if(i=document.selection?document.selection.createRange().text.toString():document.getSelection().toString(),i){var o=document.querySelector("#feedBtn");o.style.display="block",o.style.position="absolute",o.style.left=n+"px",o.style.top=r+"px"}else{var a=document.querySelector("#feedBtn");a.style.display="none"}}},beforeDestroy:function(){document.onmousedown=null,c.a.destroy()},methods:{isMobile:function(){navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)?this.isPhone=!0:this.isPhone=!1},showNav:function(){this.showPhoneNav=!0},closeNav:function(){this.showPhoneNav=!1},querySearch:function(e,t){var n=e?this.getFilterList(e):[];t(n)},getFilterList:function(e){var t=this.chapters,n=[],r=function t(r){r.forEach((function(r){r.name&&r.name.indexOf(e)>-1&&n.push({id:r.id,name:r.name}),r.children&&r.children.length&&t(r.children)}))};return r(t),n},handleSelect:function(e){this.$refs.chaptersTree.setCurrentKey(e.id),this.handleNodeClick(e),this.filterWord="",this.filterList=[]},getDocumentName:function(){var e=this;this.$post("/document/detail",{document_id:this.document_id}).then((function(t){e.document_name=t.data.name,e.getChapters()}))},getChapters:function(){var e=this;this.$post("/document/chapter/list",{document_id:this.$route.params.id}).then((function(t){if(t.data.length)if(t.data.forEach((function(e){e.is_dir&&0==e.children.length||e.children.forEach((function(e){e.is_dir&&0==e.children.length&&e.children.push({is_dir:!1})}))})),e.chapters=t.data,e.$route.query.id){e.selectChapterId=e.$route.query.id;var n="",i=function e(t,r){t.forEach((function(t){t.children.length||e(t.children),t.id!=r||(n=t.name)}))};i(e.chapters,e.selectChapterId),document.title=n?n+" — "+e.document_name:e.document_name,e.getArticle(),e.$nextTick((function(){e.selectNode(e.selectChapterId),localStorage.docId=e.selectChapterId}))}else{var o=function t(n){if(n.length){var i,o=u(n);try{var a=function(){var n=i.value;try{if(n.is_dir&&n.children.length)return t(n.children),{v:!1};if(!n.is_dir&&n.id)return e.$nextTick((function(){e.handleNodeClick(n),e.selectNode(n.id),e.defaultExpanded=[n.parent_id]})),{v:!1}}catch(r){}};for(o.s();!(i=o.n()).done;){var s=a();if("object"===Object(r["a"])(s))return s.v}}catch(c){o.e(c)}finally{o.f()}}};o(t.data)}else e.noData=!0}))},goDefaultChaper:function(e,t){for(var n=0;n"),e.loading.close(),t.data.api?e.mockUrl=location.origin+"/document/mockApiReponse/".concat(e.$route.params.id)+"/"+t.data.api.url:e.mockUrl="",t.data.document&&(e.projectName=t.data.document.name),e.articleContent.content=t.data.content?e.$refs.mavonEditor.markdownIt.render(t.data.content):"",e.$nextTick((function(){var t=e.$route.hash;t?(window.location.hash="",window.location.hash=decodeURIComponent(t)):window.scroll({top:0}),e.initToc()})),e.articleFlag=!0,e.UserInfo.username?e.getShareKey():e.shareUrl=window.location.href)})).catch((function(t){e.loading.close()}))},initToc:function(e){var t=document.querySelector(".markdown-content"),n=t.querySelectorAll("h1, h2, h3, h4, h5, h6, h7"),r={};Array.prototype.forEach.call(n,(function(e){var t=e.id?e.id:"h"+e.querySelector("a").id.replace(/[\!\@\#\$\%\^\&\*\(\)\:]/gi,"");r[t]=isNaN(r[t])?0:++r[t],r[t]?e.id=t+"-"+r[t]:e.id=t})),this.$nextTick((function(){var t={contentSelector:".markdown-content",tocSelector:".js-toc",headingSelector:"h1, h2, h3 ",scrollSmooth:!0,scrollSmoothOffset:-60,headingsOffset:100,hasInnerContainers:!0};e=Object.assign(t,e),c.a.init(e)}))},selectNode:function(e){this.expandIdArray=[],this.expandIdArray.push(e),this.$refs.chaptersTree.setCurrentKey(e)},search:function(){var e=this;""!=this.keyword?this.$post("/document/chapter/search",{document_id:this.$route.params.id,keywords:this.keyword}).then((function(t){e.articleFlag=!1,t.data.forEach((function(t){t.content=e.$refs.mavonEditor.markdownIt.render(t.content),t.content=e.htmlToWord(t.content),t.name=e.highlight(t.name),t.content=e.highlight(t.content)})),e.articleInfoList=t.data})):this.$message("搜索关键字不能为空!")},highlight:function(e){var t=this.keyword;e=e.split(""),t=t.split("");var n="";for(var r in e)-1!==t.indexOf(e[r])?n=n+''+e[r]+"":n+=e[r];return n},htmlToWord:function(e){var t=e.replace(/<(style|script|iframe)[^>]*?>[\s\S]+?<\/\1\s*>/gi,"").replace(/<[^>]+?>/g,"").replace(/\s+/g," ").replace(/ /g," ").replace(/>/g," ");return t},getShareKey:function(){var e=this;this.$post("/admin/share/url",{chapter_id:this.$route.query.id,document_id:this.$route.params.id}).then((function(t){e.shareUrl=t.data}))},shareToWeibo:function(){var e="http://service.weibo.com/share/share.php?url="+this.shareUrl+"&title="+this.articleContent.name;window.open(e,"_blank")},shareToQQ:function(){var e="https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+this.shareUrl+"&title="+this.articleContent.name;window.open(e,"_blank")},onCopy:function(){this.$message.success("复制成功!")},operStar:function(){var e=this,t=this.articleContent.star_id?"/admin/star/delete":"/admin/star/add",n={document_id:this.$route.params.id};this.articleContent.star_id?n["id"]=this.articleContent.star_id:n["chapter_id"]=this.$route.query.id,this.$post(t,n).then((function(t){e.articleContent.star_id=t.data.star_id||""}))},goSearch:function(){var e=this.$route.params.id,t=this.keywords;t?this.$router.push({name:"searchResults",query:{id:e,keywords:t}}):this.$message.error("搜索关键字不能为空!")},closeImgDialog:function(){this.imgDialogShow=!1},showImgDialog:function(){this.imgDialogShow=!0},openFeedBack:function(){document.querySelector("#feedBtn").style.display="none",this.feedVisible=!0},handlePictureCardPreview:function(e){this.dialogImageUrl=e.url,this.dialogVisible=!0},submitFeed:function(){var e=this;this.$refs.feedForm.validate((function(t){if(t){var n=e.feedData;Object(l["c"])({document_id:e.document_id,type:n.feedType.toString(),content:n.feedText,images:n.feedImg}).then((function(t){200==t.code?(e.$message({type:"success",message:"提交成功"}),e.feedVisible=!1,e.feedData={feedType:[],feedText:"",feedImg:[]},e.feedFileList=[],setTimeout((function(){e.hideUpload=!1}),100)):e.$message({type:"fail",message:"提交失败,请重试"})})).catch((function(e){}))}}))},beforeAvatarUpload:function(e){var t=5,n=e.size/1024/1024<=t;return n||this.$message.error("上传图片大小不能超过".concat(t,"MB!")),n},handleRemoveImage:function(e,t){var n=e.response.data.url,r=this.feedData.feedImg.indexOf(n);this.feedData.feedImg.splice(r,1),this.hideUpload=t.length>=3},handleChangeImage:function(e,t){this.hideUpload=t.length>=3},handleUploadSuccess:function(e){200===e.code?this.feedData.feedImg.push(e.data.url):this.$message.error(e.message)}}}}).call(this,n("1157"))},"47f3":function(e,t,n){},4917:function(e,t,n){"use strict";var r=n("cb7c"),i=n("9def"),o=n("0390"),a=n("5f1b");n("214f")("match",1,(function(e,t,n,s){return[function(n){var r=e(this),i=void 0==n?void 0:n[t];return void 0!==i?i.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=s(n,e,this);if(t.done)return t.value;var c=r(e),l=String(this);if(!c.global)return a(c,l);var u=c.unicode;c.lastIndex=0;var d,h=[],f=0;while(null!==(d=a(c,l))){var p=String(d[0]);h[f]=p,""===p&&(c.lastIndex=o(l,i(c.lastIndex),u)),f++}return 0===f?null:h}]}))},"520a":function(e,t,n){"use strict";var r=n("0bfb"),i=RegExp.prototype.exec,o=String.prototype.replace,a=i,s="lastIndex",c=function(){var e=/a/,t=/b*/g;return i.call(e,"a"),i.call(t,"a"),0!==e[s]||0!==t[s]}(),l=void 0!==/()??/.exec("")[1],u=c||l;u&&(a=function(e){var t,n,a,u,d=this;return l&&(n=new RegExp("^"+d.source+"$(?!\\s)",r.call(d))),c&&(t=d[s]),a=i.call(d,e),c&&a&&(d[s]=d.global?a.index+a[0].length:t),l&&a&&a.length>1&&o.call(a[0],n,(function(){for(u=1;u=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},"5f1b":function(e,t,n){"use strict";var r=n("23c6"),i=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"===typeof n){var o=n.call(e,t);if("object"!==typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==r(e))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(e,t)}},6297:function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"a",(function(){return o})),n.d(t,"c",(function(){return a}));var r=n("1c1e"),i=function(e){return Object(r["a"])({url:"/admin/document/feedback-list",data:e,method:"post"})},o=function(e){return Object(r["a"])({url:"/admin/document/feedback-detail",data:e,method:"post"})},a=function(e){return Object(r["a"])({url:"/document/feedback/add",data:e,method:"post"})}},"67ab":function(e,t,n){var r=n("ca5a")("meta"),i=n("d3f4"),o=n("69a8"),a=n("86cc").f,s=0,c=Object.isExtensible||function(){return!0},l=!n("79e5")((function(){return c(Object.preventExtensions({}))})),u=function(e){a(e,r,{value:{i:"O"+ ++s,w:{}}})},d=function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,r)){if(!c(e))return"F";if(!t)return"E";u(e)}return e[r].i},h=function(e,t){if(!o(e,r)){if(!c(e))return!0;if(!t)return!1;u(e)}return e[r].w},f=function(e){return l&&p.NEED&&c(e)&&!o(e,r)&&u(e),e},p=e.exports={KEY:r,NEED:!1,fastKey:d,getWeak:h,onFreeze:f}},"6b54":function(e,t,n){"use strict";n("3846");var r=n("cb7c"),i=n("0bfb"),o=n("9e1e"),a="toString",s=/./[a],c=function(e){n("2aba")(RegExp.prototype,a,e,!0)};n("79e5")((function(){return"/a/b"!=s.call({source:"a",flags:"b"})}))?c((function(){var e=r(this);return"/".concat(e.source,"/","flags"in e?e.flags:!o&&e instanceof RegExp?i.call(e):void 0)})):s.name!=a&&c((function(){return s.call(this)}))},7577:function(e,t,n){(function(r){var i,o,a;(function(n,r){o=[],i=r(n),a="function"===typeof i?i.apply(t,o):i,void 0===a||(e.exports=a)})("undefined"!==typeof r?r:this.window||this.global,(function(e){"use strict";var t,r,i=n("5bb8"),o={},a={},s=n("83fa"),c=n("a65a"),l=n("1ec4"),u=!!e&&!!e.document&&!!e.document.querySelector&&!!e.addEventListener;if("undefined"!==typeof window||u){var d,h=Object.prototype.hasOwnProperty;return a.destroy=function(){if(!o.skipRendering)try{document.querySelector(o.tocSelector).innerHTML=""}catch(e){}o.scrollContainer&&document.querySelector(o.scrollContainer)?(document.querySelector(o.scrollContainer).removeEventListener("scroll",this._scrollListener,!1),document.querySelector(o.scrollContainer).removeEventListener("resize",this._scrollListener,!1),t&&document.querySelector(o.scrollContainer).removeEventListener("click",this._clickListener,!1)):(document.removeEventListener("scroll",this._scrollListener,!1),document.removeEventListener("resize",this._scrollListener,!1),t&&document.removeEventListener("click",this._clickListener,!1))},a.init=function(e){if(u&&(o=f(i,e||{}),this.options=o,this.state={},o.scrollSmooth&&(o.duration=o.scrollSmoothDuration,o.offset=o.scrollSmoothOffset,a.scrollSmooth=n("bbe6").initSmoothScrolling(o)),t=s(o),r=c(o),this._buildHtml=t,this._parseContent=r,a.destroy(),d=r.selectHeadings(o.contentSelector,o.headingSelector),null!==d)){var h=r.nestHeadingsArray(d),m=h.nest;o.skipRendering||t.render(o.tocSelector,m),this._scrollListener=p((function(e){t.updateToc(d),!o.disableTocScrollSync&&l(o);var n=e&&e.target&&e.target.scrollingElement&&0===e.target.scrollingElement.scrollTop;(e&&(0===e.eventPhase||null===e.currentTarget)||n)&&(t.updateToc(d),o.scrollEndCallback&&o.scrollEndCallback(e))}),o.throttleTimeout),this._scrollListener(),o.scrollContainer&&document.querySelector(o.scrollContainer)?(document.querySelector(o.scrollContainer).addEventListener("scroll",this._scrollListener,!1),document.querySelector(o.scrollContainer).addEventListener("resize",this._scrollListener,!1)):(document.addEventListener("scroll",this._scrollListener,!1),document.addEventListener("resize",this._scrollListener,!1));var g=null;return this._clickListener=p((function(e){o.scrollSmooth&&t.disableTocAnimation(e),t.updateToc(d),g&&clearTimeout(g),g=setTimeout((function(){t.enableTocAnimation()}),o.scrollSmoothDuration)}),o.throttleTimeout),o.scrollContainer&&document.querySelector(o.scrollContainer)?document.querySelector(o.scrollContainer).addEventListener("click",this._clickListener,!1):document.addEventListener("click",this._clickListener,!1),this}},a.refresh=function(e){a.destroy(),a.init(e||this.options)},e.tocbot=a,a}function f(){for(var e={},t=0;t\n ")]):e._e()]}))]:e._e()],2),n("el-input",{attrs:{placeholder:"请输入关键字搜索",maxlength:"10"},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.goSearch(t)}},model:{value:e.keywords,callback:function(t){e.keywords=t},expression:"keywords"}},[n("i",{staticClass:"el-input__icon el-icon-search",attrs:{slot:"suffix"},on:{click:e.goSearch},slot:"suffix"})])],1),n("p",{staticClass:"title"},[e._v(e._s(e.articleContent.name))]),n("div",{staticClass:"info"},[n("span",{directives:[{name:"show",rawName:"v-show",value:e.articleContent.updated_at,expression:"articleContent.updated_at"}],staticClass:"time"},[e._v("更新时间:"+e._s(e.articleContent.updated_at))]),n("span",{directives:[{name:"show",rawName:"v-show",value:e.articleContent.author.username,expression:"articleContent.author.username"}],staticClass:"author"},[e._v("作者:"+e._s(e.articleContent.author.username))]),n("div",{directives:[{name:"show",rawName:"v-show",value:e.articleContent.content,expression:"articleContent.content"}],staticClass:"share"},[n("el-tooltip",{attrs:{effect:"dark",content:"分享到新浪微博",placement:"bottom"}},[n("div",{staticClass:"share-block",on:{click:e.shareToWeibo}},[n("i",{staticClass:"wi wi-weibo"})])]),n("el-tooltip",{attrs:{effect:"dark",content:"分享到微信",placement:"bottom"}},[n("div",{staticClass:"share-block",on:{click:function(t){e.showShareWechat=!0}}},[n("i",{staticClass:"wi wi-weixin"})])]),n("el-tooltip",{attrs:{effect:"dark",content:"分享到QQ空间",placement:"bottom"}},[n("div",{staticClass:"share-block",on:{click:e.shareToQQ}},[n("i",{staticClass:"wi wi-qq"})])]),n("el-tooltip",{attrs:{effect:"dark",content:"复制链接",placement:"bottom"}},[n("div",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.shareUrl,expression:"shareUrl",arg:"copy"},{name:"clipboard",rawName:"v-clipboard:success",value:e.onCopy,expression:"onCopy",arg:"success"}],staticClass:"share-block"},[n("i",{staticClass:"wi wi-link"})])]),n("el-tooltip",{attrs:{effect:"dark",content:e.articleContent.star_id?"取消星标":"添加星标",placement:"bottom"}},[n("div",{staticClass:"share-block",class:{checked:e.articleContent.star_id},on:{click:function(t){return e.operStar()}}},[n("i",{staticClass:"wi wi-star"})])]),e.mockUrl?n("el-tooltip",{attrs:{effect:"dark",content:"复制Mock链接",placement:"bottom"}},[n("div",{directives:[{name:"clipboard",rawName:"v-clipboard:copy",value:e.mockUrl,expression:"mockUrl",arg:"copy"},{name:"clipboard",rawName:"v-clipboard:success",value:e.onCopy,expression:"onCopy",arg:"success"}],staticClass:"share-block"},[n("i",{staticClass:"wq-fuzhi wq"})])]):e._e()],1)]),n("div",{staticClass:"markdown-body"},[n("div",{staticClass:"markdown-content",domProps:{innerHTML:e._s(e.articleContent.content)}}),n("el-scrollbar",{staticClass:"markdown-menu"},[n("div",{staticClass:"catalog"},[e._v("本页目录")]),n("div",{staticClass:"js-toc-wrap"},[n("div",{staticClass:"js-toc toc toc-right"})])])],1),n("mavon-editor",{directives:[{name:"show",rawName:"v-show",value:!1,expression:"false"}],ref:"mavonEditor"})],1),e.articleFlag?e._e():n("div",{staticClass:"article-list"},[n("el-button",{staticClass:"back",attrs:{type:"text"},on:{click:function(t){e.articleFlag=!e.articleFlag}}},[e._v("返回")]),n("p",{staticClass:"number-result"},[e._v("\n "+e._s(e.articleInfoList.length)+'条结果"'+e._s(e.keyword)+'"\n ')]),e._l(e.articleInfoList,(function(t){return n("div",{directives:[{name:"show",rawName:"v-show",value:e.articleInfoList.length,expression:"articleInfoList.length"}],key:t.id,staticClass:"list-content"},[n("div",{staticClass:"header"},[n("p",{staticClass:"title",domProps:{innerHTML:e._s(t.name)},on:{click:function(n){return e.changeRoute(t.id,t.name,!0)}}}),n("p",{staticClass:"info"},[n("span",[e._v("作者:"+e._s(t.username))]),n("span",[e._v("更新时间:"+e._s(t.updated_at))])])]),n("p",{staticClass:"content",domProps:{innerHTML:e._s(t.content)},on:{click:function(n){return e.changeRoute(t.id,t.name,!0)}}})])})),e.articleInfoList.length?e._e():n("p",{staticClass:"no-result"},[e._v('\n 没有找到相关内容"'+e._s(e.keyword)+'"\n ')])],2)])]],2)],1)],1),n("el-backtop",{attrs:{bottom:100}},[n("div",{staticClass:"w7-top"},[n("i",{staticClass:"el-icon-arrow-up"}),n("p",[e._v("TOP")])])]),e.showShareWechat?n("div",{staticClass:"share-wechat"},[n("div",{staticClass:"head"},[n("span",[e._v("分享到微信朋友圈")]),n("i",{staticClass:"el-icon-close",on:{click:function(t){e.showShareWechat=!1}}})]),n("qrcode-vue",{staticClass:"content",attrs:{value:e.shareUrl,size:160,level:"H"}}),e._m(0)],1):e._e()],1),e.imgDialogShow?n("div",{staticClass:"img-dialog",on:{click:function(t){return t.stopPropagation(),e.closeImgDialog(t)}}},[n("div",{staticClass:"img-wrap"},[n("img",{attrs:{src:e.imgDialogSrc,alt:"img dialog"},on:{click:function(t){return t.stopPropagation(),e.showImgDialog(t)}}})])]):e._e(),n("el-dialog",{attrs:{visible:e.feedVisible,"close-on-click-modal":!1,title:e.feedTitle,width:"680px"},on:{"update:visible":function(t){e.feedVisible=t}}},[n("el-form",{ref:"feedForm",attrs:{model:e.feedData,"label-width":"100px",rules:e.feedRules}},[n("el-form-item",{attrs:{label:"问题类型",prop:"feedType"}},[n("el-checkbox-group",{model:{value:e.feedData.feedType,callback:function(t){e.$set(e.feedData,"feedType",t)},expression:"feedData.feedType"}},e._l(e.feedType,(function(t,r){return n("el-checkbox",{key:r,attrs:{label:r}},[e._v(e._s(t))])})),1)],1),n("el-form-item",{attrs:{label:"意见反馈",prop:"feedText"}},[n("el-input",{staticClass:"feedText",attrs:{type:"textarea",resize:"none"},model:{value:e.feedData.feedText,callback:function(t){e.$set(e.feedData,"feedText",t)},expression:"feedData.feedText"}})],1),n("el-form-item",{attrs:{label:"反馈截图"}},[n("el-upload",{class:{hide:e.hideUpload},attrs:{action:"/common/upload/image",accept:"image/*","on-remove":e.handleRemoveImage,"before-upload":e.beforeAvatarUpload,"on-success":e.handleUploadSuccess,"list-type":"picture-card",limit:3,"file-list":e.feedFileList,"on-change":e.handleChangeImage}},[n("i",{staticClass:"el-icon-plus"})])],1),n("el-form-item",[n("el-button",{attrs:{type:"primary"},on:{click:e.submitFeed}},[e._v("确认提交")])],1)],1)],1)],1)},i=[function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"foot"},[e._v("\n 打开微信,点击底部的“发现”,"),n("br"),e._v("使用“扫一扫”即可将网页分享至朋友圈。\n ")])}],o=n("408a"),a=o["a"],s=(n("fb25"),n("fca8"),n("2877")),c=Object(s["a"])(a,r,i,!1,null,"ca45b106",null);t["default"]=c.exports},"7bbc":function(e,t,n){var r=n("6821"),i=n("9093").f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return i(e)}catch(t){return a.slice()}};e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?s(e):i(r(e))}},"83fa":function(e,t){e.exports=function(e){var t=[].forEach,n=[].some,r=document.body,i=!0,o=" ";function a(e,t){var n=t.appendChild(c(e));if(e.children.length){var r=l(e.isCollapsed);e.children.forEach((function(e){a(e,r)})),n.appendChild(r)}}function s(e,t){var n=!1,r=l(n);t.forEach((function(e){a(e,r)}));var i=document.querySelector(e);if(null!==i)return i.firstChild&&i.removeChild(i.firstChild),0===t.length?i:i.appendChild(r)}function c(n){var r=document.createElement("li"),i=document.createElement("a");return e.listItemClass&&r.setAttribute("class",e.listItemClass),e.onClick&&(i.onclick=e.onClick),e.includeHtml&&n.childNodes.length?t.call(n.childNodes,(function(e){i.appendChild(e.cloneNode(!0))})):i.textContent=n.textContent,i.setAttribute("href",e.basePath+"#"+n.id),i.setAttribute("class",e.linkClass+o+"node-name--"+n.nodeName+o+e.extraLinkClasses),r.appendChild(i),r}function l(t){var n=e.orderedList?"ol":"ul",r=document.createElement(n),i=e.listClass+o+e.extraListClasses;return t&&(i+=o+e.collapsibleClass,i+=o+e.isCollapsedClass),r.setAttribute("class",i),r}function u(){var t;e.scrollContainer&&document.querySelector(e.scrollContainer)?t=document.querySelector(e.scrollContainer).scrollTop:t=document.documentElement.scrollTop||r.scrollTop;var n=document.querySelector(e.positionFixedSelector);"auto"===e.fixedSidebarOffset&&(e.fixedSidebarOffset=document.querySelector(e.tocSelector).offsetTop),t>e.fixedSidebarOffset?-1===n.className.indexOf(e.positionFixedClass)&&(n.className+=o+e.positionFixedClass):n.className=n.className.split(o+e.positionFixedClass).join("")}function d(t){var n=0;return t!==document.querySelector(e.contentSelector&&null!=t)&&(n=t.offsetTop,e.hasInnerContainers&&(n+=d(t.offsetParent))),n}function h(a){var s;e.scrollContainer&&document.querySelector(e.scrollContainer)?s=document.querySelector(e.scrollContainer).scrollTop:s=document.documentElement.scrollTop||r.scrollTop;e.positionFixedSelector&&u();var c,l=a;if(i&&null!==document.querySelector(e.tocSelector)&&l.length>0){n.call(l,(function(t,n){if(d(t)>s+e.headingsOffset+10){var r=0===n?n:n-1;return c=l[r],!0}if(n===l.length-1)return c=l[l.length-1],!0}));var h=document.querySelector(e.tocSelector).querySelectorAll("."+e.linkClass);t.call(h,(function(t){t.className=t.className.split(o+e.activeLinkClass).join("")}));var p=document.querySelector(e.tocSelector).querySelectorAll("."+e.listItemClass);t.call(p,(function(t){t.className=t.className.split(o+e.activeListItemClass).join("")}));var m=document.querySelector(e.tocSelector).querySelector("."+e.linkClass+".node-name--"+c.nodeName+'[href="'+e.basePath+"#"+c.id.replace(/([ #;&,.+*~':"!^$[\]()=>|/@])/g,"\\$1")+'"]');-1===m.className.indexOf(e.activeLinkClass)&&(m.className+=o+e.activeLinkClass);var g=m.parentNode;g&&-1===g.className.indexOf(e.activeListItemClass)&&(g.className+=o+e.activeListItemClass);var v=document.querySelector(e.tocSelector).querySelectorAll("."+e.listClass+"."+e.collapsibleClass);t.call(v,(function(t){-1===t.className.indexOf(e.isCollapsedClass)&&(t.className+=o+e.isCollapsedClass)})),m.nextSibling&&-1!==m.nextSibling.className.indexOf(e.isCollapsedClass)&&(m.nextSibling.className=m.nextSibling.className.split(o+e.isCollapsedClass).join("")),f(m.parentNode.parentNode)}}function f(t){return-1!==t.className.indexOf(e.collapsibleClass)&&-1!==t.className.indexOf(e.isCollapsedClass)?(t.className=t.className.split(o+e.isCollapsedClass).join(""),f(t.parentNode.parentNode)):t}function p(t){var n=t.target||t.srcElement;"string"===typeof n.className&&-1!==n.className.indexOf(e.linkClass)&&(i=!1)}function m(){i=!0}return{enableTocAnimation:m,disableTocAnimation:p,render:s,updateToc:h}}},"8a81":function(e,t,n){"use strict";var r=n("7726"),i=n("69a8"),o=n("9e1e"),a=n("5ca1"),s=n("2aba"),c=n("67ab").KEY,l=n("79e5"),u=n("5537"),d=n("7f20"),h=n("ca5a"),f=n("2b4c"),p=n("37c8"),m=n("3a72"),g=n("d4c0"),v=n("1169"),b=n("cb7c"),y=n("d3f4"),C=n("4bf8"),w=n("6821"),S=n("6a99"),k=n("4630"),_=n("2aeb"),x=n("7bbc"),E=n("11e9"),T=n("2621"),L=n("86cc"),N=n("0d58"),A=E.f,O=L.f,P=x.f,I=r.Symbol,D=r.JSON,B=D&&D.stringify,M="prototype",q=f("_hidden"),R=f("toPrimitive"),j={}.propertyIsEnumerable,$=u("symbol-registry"),H=u("symbols"),F=u("op-symbols"),U=Object[M],K="function"==typeof I&&!!T.f,z=r.QObject,G=!z||!z[M]||!z[M].findChild,W=o&&l((function(){return 7!=_(O({},"a",{get:function(){return O(this,"a",{value:7}).a}})).a}))?function(e,t,n){var r=A(U,t);r&&delete U[t],O(e,t,n),r&&e!==U&&O(U,t,r)}:O,Q=function(e){var t=H[e]=_(I[M]);return t._k=e,t},J=K&&"symbol"==typeof I.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof I},V=function(e,t,n){return e===U&&V(F,t,n),b(e),t=S(t,!0),b(n),i(H,t)?(n.enumerable?(i(e,q)&&e[q][t]&&(e[q][t]=!1),n=_(n,{enumerable:k(0,!1)})):(i(e,q)||O(e,q,k(1,{})),e[q][t]=!0),W(e,t,n)):O(e,t,n)},X=function(e,t){b(e);var n,r=g(t=w(t)),i=0,o=r.length;while(o>i)V(e,n=r[i++],t[n]);return e},Y=function(e,t){return void 0===t?_(e):X(_(e),t)},Z=function(e){var t=j.call(this,e=S(e,!0));return!(this===U&&i(H,e)&&!i(F,e))&&(!(t||!i(this,e)||!i(H,e)||i(this,q)&&this[q][e])||t)},ee=function(e,t){if(e=w(e),t=S(t,!0),e!==U||!i(H,t)||i(F,t)){var n=A(e,t);return!n||!i(H,t)||i(e,q)&&e[q][t]||(n.enumerable=!0),n}},te=function(e){var t,n=P(w(e)),r=[],o=0;while(n.length>o)i(H,t=n[o++])||t==q||t==c||r.push(t);return r},ne=function(e){var t,n=e===U,r=P(n?F:w(e)),o=[],a=0;while(r.length>a)!i(H,t=r[a++])||n&&!i(U,t)||o.push(H[t]);return o};K||(I=function(){if(this instanceof I)throw TypeError("Symbol is not a constructor!");var e=h(arguments.length>0?arguments[0]:void 0),t=function(n){this===U&&t.call(F,n),i(this,q)&&i(this[q],e)&&(this[q][e]=!1),W(this,e,k(1,n))};return o&&G&&W(U,e,{configurable:!0,set:t}),Q(e)},s(I[M],"toString",(function(){return this._k})),E.f=ee,L.f=V,n("9093").f=x.f=te,n("52a7").f=Z,T.f=ne,o&&!n("2d00")&&s(U,"propertyIsEnumerable",Z,!0),p.f=function(e){return Q(f(e))}),a(a.G+a.W+a.F*!K,{Symbol:I});for(var re="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ie=0;re.length>ie;)f(re[ie++]);for(var oe=N(f.store),ae=0;oe.length>ae;)m(oe[ae++]);a(a.S+a.F*!K,"Symbol",{for:function(e){return i($,e+="")?$[e]:$[e]=I(e)},keyFor:function(e){if(!J(e))throw TypeError(e+" is not a symbol!");for(var t in $)if($[t]===e)return t},useSetter:function(){G=!0},useSimple:function(){G=!1}}),a(a.S+a.F*!K,"Object",{create:Y,defineProperty:V,defineProperties:X,getOwnPropertyDescriptor:ee,getOwnPropertyNames:te,getOwnPropertySymbols:ne});var se=l((function(){T.f(1)}));a(a.S+a.F*se,"Object",{getOwnPropertySymbols:function(e){return T.f(C(e))}}),D&&a(a.S+a.F*(!K||l((function(){var e=I();return"[null]"!=B([e])||"{}"!=B({a:e})||"{}"!=B(Object(e))}))),"JSON",{stringify:function(e){var t,n,r=[e],i=1;while(arguments.length>i)r.push(arguments[i++]);if(n=t=r[1],(y(t)||void 0!==e)&&!J(e))return v(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!J(t))return t}),r[1]=t,B.apply(D,r)}}),I[M][R]||n("32e9")(I[M],R,I[M].valueOf),d(I,"Symbol"),d(Math,"Math",!0),d(r.JSON,"JSON",!0)},"8e6e":function(e,t,n){var r=n("5ca1"),i=n("990b"),o=n("6821"),a=n("11e9"),s=n("f1ae");r(r.S,"Object",{getOwnPropertyDescriptors:function(e){var t,n,r=o(e),c=a.f,l=i(r),u={},d=0;while(l.length>d)n=c(r,t=l[d++]),void 0!==n&&s(u,t,n);return u}})},9093:function(e,t,n){var r=n("ce10"),i=n("e11e").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},"990b":function(e,t,n){var r=n("9093"),i=n("2621"),o=n("cb7c"),a=n("7726").Reflect;e.exports=a&&a.ownKeys||function(e){var t=r.f(o(e)),n=i.f;return n?t.concat(n(e)):t}},a481:function(e,t,n){"use strict";var r=n("cb7c"),i=n("4bf8"),o=n("9def"),a=n("4588"),s=n("0390"),c=n("5f1b"),l=Math.max,u=Math.min,d=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,f=/\$([$&`']|\d\d?)/g,p=function(e){return void 0===e?e:String(e)};n("214f")("replace",2,(function(e,t,n,m){return[function(r,i){var o=e(this),a=void 0==r?void 0:r[t];return void 0!==a?a.call(r,o,i):n.call(String(o),r,i)},function(e,t){var i=m(n,e,this,t);if(i.done)return i.value;var d=r(e),h=String(this),f="function"===typeof t;f||(t=String(t));var v=d.global;if(v){var b=d.unicode;d.lastIndex=0}var y=[];while(1){var C=c(d,h);if(null===C)break;if(y.push(C),!v)break;var w=String(C[0]);""===w&&(d.lastIndex=s(h,o(d.lastIndex),b))}for(var S="",k=0,_=0;_=k&&(S+=h.slice(k,E)+O,k=E+x.length)}return S+h.slice(k)}];function g(e,t,r,o,a,s){var c=r+e.length,l=o.length,u=f;return void 0!==a&&(a=i(a),u=h),n.call(s,u,(function(n,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,r);case"'":return t.slice(c);case"<":s=a[i.slice(1,-1)];break;default:var u=+i;if(0===u)return n;if(u>l){var h=d(u/10);return 0===h?n:h<=l?void 0===o[h-1]?i.charAt(1):o[h-1]+i.charAt(1):n}s=o[u-1]}return void 0===s?"":s}))}}))},a65a:function(e,t){e.exports=function(e){var t=[].reduce;function n(e){return e[e.length-1]}function r(e){return+e.nodeName.split("H").join("")}function i(t){if(!(t instanceof window.HTMLElement))return t;if(e.ignoreHiddenElements&&(!t.offsetHeight||!t.offsetParent))return null;var n={id:t.id,children:[],nodeName:t.nodeName,headingLevel:r(t),textContent:e.headingLabelCallback?String(e.headingLabelCallback(t.textContent)):t.textContent.trim()};return e.includeHtml&&(n.childNodes=t.childNodes),e.headingObjectCallback?e.headingObjectCallback(n,t):n}function o(t,r){var o=i(t),a=o.headingLevel,s=r,c=n(s),l=c?c.headingLevel:0,u=a-l;while(u>0)c=n(s),c&&void 0!==c.children&&(s=c.children),u--;return a>=e.collapseDepth&&(o.isCollapsed=!0),s.push(o),s}function a(t,n){var r=n;e.ignoreSelector&&(r=n.split(",").map((function(t){return t.trim()+":not("+e.ignoreSelector+")"})));try{return document.querySelector(t).querySelectorAll(r)}catch(i){return null}}function s(e){return t.call(e,(function(e,t){var n=i(t);return n&&o(n,e.nest),e}),{nest:[]})}return{nestHeadingsArray:s,selectHeadings:a}}},aae3:function(e,t,n){var r=n("d3f4"),i=n("2d95"),o=n("2b4c")("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==i(e))}},ac4d:function(e,t,n){n("3a72")("asyncIterator")},b0c5:function(e,t,n){"use strict";var r=n("520a");n("5ca1")({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},bbe6:function(e,t){function n(e){c();var t=e.duration,n=e.offset,i=location.hash?s(location.href):location.href;function o(){function i(i){!a(i.target)||i.target.className.indexOf("no-smooth-scroll")>-1||"#"===i.target.href.charAt(i.target.href.length-2)&&"!"===i.target.href.charAt(i.target.href.length-1)||-1===i.target.className.indexOf(e.linkClass)||r(i.target.hash,{duration:t,offset:n,callback:function(){l(i.target.hash)}})}document.body.addEventListener("click",i,!1)}function a(e){return"a"===e.tagName.toLowerCase()&&(e.hash.length>0||"#"===e.href.charAt(e.href.length-1))&&(s(e.href)===i||s(e.href)+"#"===i)}function s(e){return e.slice(0,e.lastIndexOf("#"))}function c(){return"scrollBehavior"in document.documentElement.style}function l(e){var t=document.getElementById(e.substring(1));t&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())}o()}function r(e,t){var n,r,i=window.pageYOffset,o={duration:t.duration,offset:t.offset||0,callback:t.callback,easing:t.easing||d},a=document.querySelector('[id="'+decodeURI(e).split("#").join("")+'"]'),s="string"===typeof e?o.offset+(e?a&&a.getBoundingClientRect().top||0:-(document.documentElement.scrollTop||document.body.scrollTop)):e,c="function"===typeof o.duration?o.duration(s):o.duration;function l(e){r=e-n,window.scrollTo(0,o.easing(r,i,s,c)),rl)c.call(e,a=s[l++])&&t.push(a)}return t}},d7b0:function(e,t,n){"use strict"; /*! * qrcode.vue v1.7.0 * A Vue component to generate QRCode. * © 2017-2019 @scopewu(https://github.com/scopewu) * MIT License. */var r={MODE_NUMBER:1,MODE_ALPHA_NUM:2,MODE_8BIT_BYTE:4,MODE_KANJI:8};function i(e){this.mode=r.MODE_8BIT_BYTE,this.data=e}i.prototype={getLength:function(e){return this.data.length},write:function(e){for(var t=0;t>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}};for(var u=l,d={glog:function(e){if(e<1)throw new Error("glog("+e+")");return d.LOG_TABLE[e]},gexp:function(e){while(e<0)e+=255;while(e>=256)e-=255;return d.EXP_TABLE[e]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},h=0;h<8;h++)d.EXP_TABLE[h]=1<=0)t^=v.G15<=0)t^=v.G18<>>=1;return t},getPatternPosition:function(e){return v.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case g.PATTERN000:return(t+n)%2==0;case g.PATTERN001:return t%2==0;case g.PATTERN010:return n%3==0;case g.PATTERN011:return(t+n)%3==0;case g.PATTERN100:return(Math.floor(t/2)+Math.floor(n/3))%2==0;case g.PATTERN101:return t*n%2+t*n%3==0;case g.PATTERN110:return(t*n%2+t*n%3)%2==0;case g.PATTERN111:return(t*n%3+(t+n)%2)%2==0;default:throw new Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new m([1],0),n=0;n5&&(n+=3+o-5)}for(r=0;r=7&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=y.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},C.setupPositionProbePattern=function(e,t){for(var n=-1;n<=7;n++)if(!(e+n<=-1||this.moduleCount<=e+n))for(var r=-1;r<=7;r++)t+r<=-1||this.moduleCount<=t+r||(this.modules[e+n][t+r]=0<=n&&n<=6&&(0==r||6==r)||0<=r&&r<=6&&(0==n||6==n)||2<=n&&n<=4&&2<=r&&r<=4)},C.getBestMaskPattern=function(){for(var e=0,t=0,n=0;n<8;n++){this.makeImpl(!0,n);var r=b.getLostPoint(this);(0==n||e>r)&&(e=r,t=n)}return t},C.createMovieClip=function(e,t,n){var r=e.createEmptyMovieClip(t,n),i=1;this.make();for(var o=0;o>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=r}for(n=0;n<18;n++){r=!e&&1==(t>>n&1);this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=r}},C.setupTypeInfo=function(e,t){for(var n=this.errorCorrectLevel<<3|t,r=b.getBCHTypeInfo(n),i=0;i<15;i++){var o=!e&&1==(r>>i&1);i<6?this.modules[i][8]=o:i<8?this.modules[i+1][8]=o:this.modules[this.moduleCount-15+i][8]=o}for(i=0;i<15;i++){o=!e&&1==(r>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=o:i<9?this.modules[8][15-i-1+1]=o:this.modules[8][15-i-1]=o}this.modules[this.moduleCount-8][8]=!e},C.mapData=function(e,t){for(var n=-1,r=this.moduleCount-1,i=7,o=0,a=this.moduleCount-1;a>0;a-=2){6==a&&a--;while(1){for(var s=0;s<2;s++)if(null==this.modules[r][a-s]){var c=!1;o>>i&1));var l=b.getMask(t,r,a-s);l&&(c=!c),this.modules[r][a-s]=c,i--,-1==i&&(o++,i=7)}if(r+=n,r<0||this.moduleCount<=r){r-=n,n=-n;break}}}},y.PAD0=236,y.PAD1=17,y.createData=function(e,t,n){for(var r=c.getRSBlocks(e,t),i=new u,o=0;o8*s)throw new Error("code length overflow. ("+i.getLengthInBits()+">"+8*s+")");i.getLengthInBits()+4<=8*s&&i.put(0,4);while(i.getLengthInBits()%8!=0)i.putBit(!1);while(1){if(i.getLengthInBits()>=8*s)break;if(i.put(y.PAD0,8),i.getLengthInBits()>=8*s)break;i.put(y.PAD1,8)}return y.createBytes(i,r)},y.createBytes=function(e,t){for(var n=0,r=0,i=0,o=new Array(t.length),a=new Array(t.length),s=0;s=0?f.get(p):0}}var g=0;for(u=0;u>6),t+=String.fromCharCode(128|63&r)):r<55296||r>=57344?(t+=String.fromCharCode(224|r>>12),t+=String.fromCharCode(128|r>>6&63),t+=String.fromCharCode(128|63&r)):(n++,r=65536+((1023&r)<<10|1023&e.charCodeAt(n)),t+=String.fromCharCode(240|r>>18),t+=String.fromCharCode(128|r>>12&63),t+=String.fromCharCode(128|r>>6&63),t+=String.fromCharCode(128|63&r))}return t}function k(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[];return e.forEach((function(e,r){var i=null;e.forEach((function(o,a){if(!o&&null!==i)return n.push("M".concat(i+t," ").concat(r+t,"h").concat(a-i,"v1H").concat(i+t,"z")),void(i=null);if(a!==e.length-1)o&&null===i&&(i=a);else{if(!o)return;null===i?n.push("M".concat(a+t,",").concat(r+t," h1v1H").concat(a+t,"z")):n.push("M".concat(i+t,",").concat(r+t," h").concat(a+1-i,"v1H").concat(i+t,"z"))}}))})),n.join("")}var _={props:{value:{type:String,required:!0,default:""},className:{type:String,default:""},size:{type:[Number,String],default:100,validator:function(e){return!0!==isNaN(Number(e))}},level:{type:String,default:"L",validator:function(e){return["L","Q","M","H"].indexOf(e)>-1}},background:{type:String,default:"#fff"},foreground:{type:String,default:"#000"},renderAs:{type:String,required:!1,default:"canvas",validator:function(e){return["canvas","svg"].indexOf(e)>-1}}},data:function(){return{numCells:0,fgPath:""}},updated:function(){this.render()},mounted:function(){this.render()},methods:{render:function(){var e=this.value,t=this.size,n=this.level,r=this.background,i=this.foreground,o=this.renderAs,s=t>>>0,c=new w(-1,a[n]);c.addData(S(e)),c.make();var l=c.modules,u=s/l.length,d=s/l.length,h=window.devicePixelRatio||1;if("svg"===o)this.numCells=l.length,this.fgPath=k(l);else{var f=this.$refs["qrcode-vue"],p=f.getContext("2d");f.height=f.width=s*h,p.scale(h,h),l.forEach((function(e,t){e.forEach((function(e,n){p.fillStyle=e?i:r;var o=Math.ceil((n+1)*u)-Math.floor(n*u),a=Math.ceil((t+1)*d)-Math.floor(t*d);p.fillRect(Math.round(n*u),Math.round(t*d),o,a)}))}))}}},render:function(e){var t=this.className,n=this.value,r=this.level,i=this.background,o=this.foreground,a=this.size,s=this.renderAs,c=this.numCells,l=this.fgPath;return e("div",{class:this.class||t,attrs:{value:n,level:r,background:i,foreground:o}},["svg"===s?e("svg",{attrs:{height:a,width:a,shapeRendering:"crispEdges",viewBox:"0 0 ".concat(c," ").concat(c)},style:{width:a+"px",height:a+"px"}},[e("path",{attrs:{fill:i,d:"M0,0 h".concat(c,"v").concat(c,"H0z")}}),e("path",{attrs:{fill:o,d:l}})]):e("canvas",{attrs:{height:a,width:a},style:{width:a+"px",height:a+"px"},ref:"qrcode-vue"},[])])}};t["a"]=_},f1ae:function(e,t,n){"use strict";var r=n("86cc"),i=n("4630");e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},fb25:function(e,t,n){"use strict";n("47f3")},fc11:function(e,t,n){"use strict";function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",(function(){return r}))},fca8:function(e,t,n){"use strict";n("5841")}}]); ================================================ FILE: public/js/chunk-22e40c8e.f3e7130f.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-22e40c8e"],{b49c:function(t,e,i){"use strict";i.r(e);var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"setting-login"},[i("div",{staticClass:"page-head"},[t._v("登录设置")]),i("div",{staticClass:"we7-panel-form"},[i("div",{staticClass:"we7-panel-form__header"},[t._v("登录方式设置")]),i("div",{staticClass:"we7-panel-form__body"},[i("div",{staticClass:"we7-panel-form__item"},[i("div",{staticClass:"we7-panel-form__label"},[t._v("登录方式")]),i("div",{staticClass:"we7-panel-form__value"},[1==t.loginMethod?[t._v("\n 依赖第三方登录:"+t._s(t.default_login_name)+"\n ")]:[t._v("\n 文档系统登录:"+t._s("1"==t.is_need_bind?"第三方登录时需绑定用户自己创建的已有账号":"第三方登录时系统自动创建一个账号对应")+"\n ")]],2),i("div",{staticClass:"we7-panel-form__action"},[i("el-tooltip",{attrs:{effect:"dark",content:"编辑",placement:"bottom"}},[i("i",{staticClass:"wi wi-edit wi-oper",on:{click:function(e){t.dialogVisible=!0}}})])],1)])])]),i("el-dialog",{staticClass:"w7-dialog",attrs:{title:"登录方式设置",visible:t.dialogVisible,"close-on-click-modal":!1,center:""},on:{"update:visible":function(e){t.dialogVisible=e}}},[i("el-form",{attrs:{"label-width":"120px","label-position":"left"}},[i("el-form-item",{attrs:{label:"登录方式"}},[i("el-radio-group",{on:{change:t.change},model:{value:t.loginMethod,callback:function(e){t.loginMethod=e},expression:"loginMethod"}},[i("el-radio",{attrs:{label:0}},[t._v("文档系统登录")]),i("el-radio",{attrs:{label:1}},[t._v("依赖第三方登录")])],1),i("div",{staticClass:"we7-help-block"},[t._v("文档系统登录:登录时通过文档系统登录页面进行登录;依赖第三方登录:用户登录时跳转至第三方登录页面登录。")])],1),0==t.loginMethod?i("el-form-item",{attrs:{label:"第三方登录设置"}},[i("el-select",{attrs:{placeholder:"请选择"},model:{value:t.is_need_bind,callback:function(e){t.is_need_bind=e},expression:"is_need_bind"}},[i("el-option",{attrs:{label:"第三方登录时需绑定用户自己创建的已有账号",value:"1"}}),i("el-option",{attrs:{label:"第三方登录时系统自动创建一个账号对应",value:"0"}})],1)],1):t._e(),1==t.loginMethod?i("el-form-item",{attrs:{label:"选择第三方"}},[i("el-select",{attrs:{placeholder:"请选择","no-data-text":"暂无第三方配置"},model:{value:t.default_login_channel,callback:function(e){t.default_login_channel=e},expression:"default_login_channel"}},t._l(t.thirdParty,(function(t){return i("el-option",{key:t.id,attrs:{label:t.name,value:t.id}})})),1),t.thirdParty.length?i("div",{staticClass:"we7-help-block"},[t._v("用户使用该第三方登录时,系统将随机创建一个账号与该第三方账号绑定,用户可在账号信息中查看或修改。")]):i("el-button",{staticClass:"textBtn",attrs:{type:"text"},on:{click:t.goto}},[t._v("去配置第三方登录")])],1):t._e()],1),i("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[i("el-button",{attrs:{type:"primary"},on:{click:t.confirmBtn}},[t._v("确 定")]),i("el-button",{on:{click:function(e){t.dialogVisible=!1}}},[t._v("取 消")])],1)],1)],1)},n=[],l=(i("7f7f"),{data:function(){return{dialogVisible:!1,loginMethod:0,is_need_bind:0,default_login_channel:"",default_login_name:"",thirdParty:[],thirdPartyFisrtId:""}},created:function(){this.init(),this.getThirdParty()},methods:{init:function(){var t=this;this.$post("/admin/third-party-login/get-default-channel").then((function(e){e&&(e.data.default_login_channel?(t.loginMethod=1,t.default_login_channel=e.data.default_login_channel):t.is_need_bind=e.data.is_need_bind?"1":"0")}))},getThirdParty:function(){var t=this;this.$post("/admin/third-party-login/all").then((function(e){for(var i in t.thirdParty=[],e.data)0==i&&(t.thirdPartyFisrtId=e.data[i].id),t.default_login_channel==e.data[i].id&&(t.default_login_name=e.data[i].name),e.data[i].enable&&(t.thirdParty.push({id:e.data[i].id+"",name:e.data[i].name}),t.default_login_channel||(t.default_login_channel=e.data[i].id+""))}))},change:function(t){1!=t||this.thirdParty.length||this.getThirdParty()},goto:function(){var t=this.$router.resolve({path:"/admin/setting/third-party?id="+this.thirdPartyFisrtId});window.open(t.href,"_blank")},confirmBtn:function(){var t=this,e={};e=0==this.loginMethod?{is_need_bind:this.is_need_bind}:{default_login_channel:this.default_login_channel},this.$post("/admin/third-party-login/set-default-channel",e).then((function(){t.$message("修改成功!"),t.dialogVisible=!1}))}}}),o=l,d=(i("fc08"),i("2877")),s=Object(d["a"])(o,a,n,!1,null,null,null);e["default"]=s.exports},dc4f:function(t,e,i){},fc08:function(t,e,i){"use strict";i("dc4f")}}]); ================================================ FILE: public/js/chunk-25f82f1a.e3262c66.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-25f82f1a"],{"02f4":function(t,e,r){var n=r("4588"),o=r("be13");t.exports=function(t){return function(e,r){var i,a,c=String(o(e)),u=n(r),s=c.length;return u<0||u>=s?t?"":void 0:(i=c.charCodeAt(u),i<55296||i>56319||u+1===s||(a=c.charCodeAt(u+1))<56320||a>57343?t?c.charAt(u):i:t?c.slice(u,u+2):a-56320+(i-55296<<10)+65536)}}},"0bfb":function(t,e,r){"use strict";var n=r("cb7c");t.exports=function(){var t=n(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},1169:function(t,e,r){var n=r("2d95");t.exports=Array.isArray||function(t){return"Array"==n(t)}},"11e9":function(t,e,r){var n=r("52a7"),o=r("4630"),i=r("6821"),a=r("6a99"),c=r("69a8"),u=r("c69a"),s=Object.getOwnPropertyDescriptor;e.f=r("9e1e")?s:function(t,e){if(t=i(t),e=a(e,!0),u)try{return s(t,e)}catch(r){}if(c(t,e))return o(!n.f.call(t,e),t[e])}},"1c4c":function(t,e,r){"use strict";var n=r("9b43"),o=r("5ca1"),i=r("4bf8"),a=r("1fa8"),c=r("33a4"),u=r("9def"),s=r("f1ae"),l=r("27ee");o(o.S+o.F*!r("5cc5")((function(t){Array.from(t)})),"Array",{from:function(t){var e,r,o,f,h=i(t),d="function"==typeof this?this:Array,p=arguments.length,m=p>1?arguments[1]:void 0,b=void 0!==m,v=0,g=l(h);if(b&&(m=n(m,p>2?arguments[2]:void 0,2)),void 0==g||d==Array&&c(g))for(e=u(h.length),r=new d(e);e>v;v++)s(r,v,b?m(h[v],v):h[v]);else for(f=g.call(h),r=new d;!(o=f.next()).done;v++)s(r,v,b?a(f,m,[o.value,v],!0):o.value);return r.length=v,r}})},"37c8":function(t,e,r){e.f=r("2b4c")},3846:function(t,e,r){r("9e1e")&&"g"!=/./g.flags&&r("86cc").f(RegExp.prototype,"flags",{configurable:!0,get:r("0bfb")})},"3a72":function(t,e,r){var n=r("7726"),o=r("8378"),i=r("2d00"),a=r("37c8"),c=r("86cc").f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==t.charAt(0)||t in e||c(e,t,{value:a.f(t)})}},"5df3":function(t,e,r){"use strict";var n=r("02f4")(!0);r("01f9")(String,"String",(function(t){this._t=String(t),this._i=0}),(function(){var t,e=this._t,r=this._i;return r>=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})}))},"67ab":function(t,e,r){var n=r("ca5a")("meta"),o=r("d3f4"),i=r("69a8"),a=r("86cc").f,c=0,u=Object.isExtensible||function(){return!0},s=!r("79e5")((function(){return u(Object.preventExtensions({}))})),l=function(t){a(t,n,{value:{i:"O"+ ++c,w:{}}})},f=function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,n)){if(!u(t))return"F";if(!e)return"E";l(t)}return t[n].i},h=function(t,e){if(!i(t,n)){if(!u(t))return!0;if(!e)return!1;l(t)}return t[n].w},d=function(t){return s&&p.NEED&&u(t)&&!i(t,n)&&l(t),t},p=t.exports={KEY:n,NEED:!1,fastKey:f,getWeak:h,onFreeze:d}},"6a44":function(t,e,r){},"6b54":function(t,e,r){"use strict";r("3846");var n=r("cb7c"),o=r("0bfb"),i=r("9e1e"),a="toString",c=/./[a],u=function(t){r("2aba")(RegExp.prototype,a,t,!0)};r("79e5")((function(){return"/a/b"!=c.call({source:"a",flags:"b"})}))?u((function(){var t=n(this);return"/".concat(t.source,"/","flags"in t?t.flags:!i&&t instanceof RegExp?o.call(t):void 0)})):c.name!=a&&u((function(){return c.call(this)}))},"7bbc":function(t,e,r){var n=r("6821"),o=r("9093").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(t){try{return o(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?c(t):o(n(t))}},"8a81":function(t,e,r){"use strict";var n=r("7726"),o=r("69a8"),i=r("9e1e"),a=r("5ca1"),c=r("2aba"),u=r("67ab").KEY,s=r("79e5"),l=r("5537"),f=r("7f20"),h=r("ca5a"),d=r("2b4c"),p=r("37c8"),m=r("3a72"),b=r("d4c0"),v=r("1169"),g=r("cb7c"),y=r("d3f4"),_=r("4bf8"),w=r("6821"),x=r("6a99"),F=r("4630"),O=r("2aeb"),S=r("7bbc"),E=r("11e9"),k=r("2621"),j=r("86cc"),L=r("0d58"),P=E.f,A=j.f,C=S.f,$=n.Symbol,N=n.JSON,q=N&&N.stringify,I="prototype",T=d("_hidden"),G=d("toPrimitive"),R={}.propertyIsEnumerable,J=l("symbol-registry"),D=l("symbols"),Y=l("op-symbols"),K=Object[I],M="function"==typeof $&&!!k.f,W=n.QObject,z=!W||!W[I]||!W[I].findChild,Q=i&&s((function(){return 7!=O(A({},"a",{get:function(){return A(this,"a",{value:7}).a}})).a}))?function(t,e,r){var n=P(K,e);n&&delete K[e],A(t,e,r),n&&t!==K&&A(K,e,n)}:A,U=function(t){var e=D[t]=O($[I]);return e._k=t,e},B=M&&"symbol"==typeof $.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof $},H=function(t,e,r){return t===K&&H(Y,e,r),g(t),e=x(e,!0),g(r),o(D,e)?(r.enumerable?(o(t,T)&&t[T][e]&&(t[T][e]=!1),r=O(r,{enumerable:F(0,!1)})):(o(t,T)||A(t,T,F(1,{})),t[T][e]=!0),Q(t,e,r)):A(t,e,r)},V=function(t,e){g(t);var r,n=b(e=w(e)),o=0,i=n.length;while(i>o)H(t,r=n[o++],e[r]);return t},X=function(t,e){return void 0===e?O(t):V(O(t),e)},Z=function(t){var e=R.call(this,t=x(t,!0));return!(this===K&&o(D,t)&&!o(Y,t))&&(!(e||!o(this,t)||!o(D,t)||o(this,T)&&this[T][t])||e)},tt=function(t,e){if(t=w(t),e=x(e,!0),t!==K||!o(D,e)||o(Y,e)){var r=P(t,e);return!r||!o(D,e)||o(t,T)&&t[T][e]||(r.enumerable=!0),r}},et=function(t){var e,r=C(w(t)),n=[],i=0;while(r.length>i)o(D,e=r[i++])||e==T||e==u||n.push(e);return n},rt=function(t){var e,r=t===K,n=C(r?Y:w(t)),i=[],a=0;while(n.length>a)!o(D,e=n[a++])||r&&!o(K,e)||i.push(D[e]);return i};M||($=function(){if(this instanceof $)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(r){this===K&&e.call(Y,r),o(this,T)&&o(this[T],t)&&(this[T][t]=!1),Q(this,t,F(1,r))};return i&&z&&Q(K,t,{configurable:!0,set:e}),U(t)},c($[I],"toString",(function(){return this._k})),E.f=tt,j.f=H,r("9093").f=S.f=et,r("52a7").f=Z,k.f=rt,i&&!r("2d00")&&c(K,"propertyIsEnumerable",Z,!0),p.f=function(t){return U(d(t))}),a(a.G+a.W+a.F*!M,{Symbol:$});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ot=0;nt.length>ot;)d(nt[ot++]);for(var it=L(d.store),at=0;it.length>at;)m(it[at++]);a(a.S+a.F*!M,"Symbol",{for:function(t){return o(J,t+="")?J[t]:J[t]=$(t)},keyFor:function(t){if(!B(t))throw TypeError(t+" is not a symbol!");for(var e in J)if(J[e]===t)return e},useSetter:function(){z=!0},useSimple:function(){z=!1}}),a(a.S+a.F*!M,"Object",{create:X,defineProperty:H,defineProperties:V,getOwnPropertyDescriptor:tt,getOwnPropertyNames:et,getOwnPropertySymbols:rt});var ct=s((function(){k.f(1)}));a(a.S+a.F*ct,"Object",{getOwnPropertySymbols:function(t){return k.f(_(t))}}),N&&a(a.S+a.F*(!M||s((function(){var t=$();return"[null]"!=q([t])||"{}"!=q({a:t})||"{}"!=q(Object(t))}))),"JSON",{stringify:function(t){var e,r,n=[t],o=1;while(arguments.length>o)n.push(arguments[o++]);if(r=e=n[1],(y(e)||void 0!==t)&&!B(t))return v(e)||(e=function(t,e){if("function"==typeof r&&(e=r.call(this,t,e)),!B(e))return e}),n[1]=e,q.apply(N,n)}}),$[I][G]||r("32e9")($[I],G,$[I].valueOf),f($,"Symbol"),f(Math,"Math",!0),f(n.JSON,"JSON",!0)},9093:function(t,e,r){var n=r("ce10"),o=r("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,o)}},"96cf":function(t,e,r){var n=function(t){"use strict";var e,r=Object.prototype,n=r.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{u({},"")}catch(C){u=function(t,e,r){return t[e]=r}}function s(t,e,r,n){var o=e&&e.prototype instanceof b?e:b,i=Object.create(o.prototype),a=new L(n||[]);return i._invoke=S(t,r,a),i}function l(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(C){return{type:"throw",arg:C}}}t.wrap=s;var f="suspendedStart",h="suspendedYield",d="executing",p="completed",m={};function b(){}function v(){}function g(){}var y={};y[i]=function(){return this};var _=Object.getPrototypeOf,w=_&&_(_(P([])));w&&w!==r&&n.call(w,i)&&(y=w);var x=g.prototype=b.prototype=Object.create(y);function F(t){["next","throw","return"].forEach((function(e){u(t,e,(function(t){return this._invoke(e,t)}))}))}function O(t,e){function r(o,i,a,c){var u=l(t[o],t,i);if("throw"!==u.type){var s=u.arg,f=s.value;return f&&"object"===typeof f&&n.call(f,"__await")?e.resolve(f.__await).then((function(t){r("next",t,a,c)}),(function(t){r("throw",t,a,c)})):e.resolve(f).then((function(t){s.value=t,a(s)}),(function(t){return r("throw",t,a,c)}))}c(u.arg)}var o;function i(t,n){function i(){return new e((function(e,o){r(t,n,e,o)}))}return o=o?o.then(i,i):i()}this._invoke=i}function S(t,e,r){var n=f;return function(o,i){if(n===d)throw new Error("Generator is already running");if(n===p){if("throw"===o)throw i;return A()}r.method=o,r.arg=i;while(1){var a=r.delegate;if(a){var c=E(a,r);if(c){if(c===m)continue;return c}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(n===f)throw n=p,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n=d;var u=l(t,e,r);if("normal"===u.type){if(n=r.done?p:h,u.arg===m)continue;return{value:u.arg,done:r.done}}"throw"===u.type&&(n=p,r.method="throw",r.arg=u.arg)}}}function E(t,r){var n=t.iterator[r.method];if(n===e){if(r.delegate=null,"throw"===r.method){if(t.iterator["return"]&&(r.method="return",r.arg=e,E(t,r),"throw"===r.method))return m;r.method="throw",r.arg=new TypeError("The iterator does not provide a 'throw' method")}return m}var o=l(n,t.iterator,r.arg);if("throw"===o.type)return r.method="throw",r.arg=o.arg,r.delegate=null,m;var i=o.arg;return i?i.done?(r[t.resultName]=i.value,r.next=t.nextLoc,"return"!==r.method&&(r.method="next",r.arg=e),r.delegate=null,m):i:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,m)}function k(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(k,this),this.reset(!0)}function P(t){if(t){var r=t[i];if(r)return r.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function r(){while(++o=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),s=n.call(a,"finallyLoc");if(u&&s){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),j(r),m}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;j(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:P(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),m}},t}(t.exports);try{regeneratorRuntime=n}catch(o){Function("r","regeneratorRuntime = r")(n)}},ac4d:function(t,e,r){r("3a72")("asyncIterator")},c643:function(t,e,r){"use strict";r.r(e);var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"install"},[t.init?r("div",{staticClass:"i-con"},[r("div",{staticClass:"c-top"},[r("div",{staticClass:"t-tit"},[t._v("配置数据库参数")]),r("el-form",{ref:"ruleForm",attrs:{model:t.ruleForm,rules:t.rules,"label-width":"200px"}},[r("el-form-item",{attrs:{label:"服务器地址",prop:"api_host"}},[r("el-input",{attrs:{placeholder:"示例:200.64.35.80:8080"},model:{value:t.ruleForm.api_host,callback:function(e){t.$set(t.ruleForm,"api_host",e)},expression:"ruleForm.api_host"}})],1),"redis"==t.ruleForm.cache_driver?[r("el-form-item",{attrs:{label:"redis缓存服务器地址",prop:"cache_host"}},[r("el-input",{attrs:{placeholder:"示例:127.0.0.1:6739"},model:{value:t.ruleForm.cache_host,callback:function(e){t.$set(t.ruleForm,"cache_host",e)},expression:"ruleForm.cache_host"}})],1)]:t._e(),r("el-form-item",{attrs:{label:"数据库名称",prop:"db_database"}},[r("el-input",{model:{value:t.ruleForm.db_database,callback:function(e){t.$set(t.ruleForm,"db_database",e)},expression:"ruleForm.db_database"}})],1),r("el-form-item",{attrs:{label:"数据库地址",prop:"db_host"}},[r("el-input",{attrs:{placeholder:"示例:200.64.35.80:8080"},model:{value:t.ruleForm.db_host,callback:function(e){t.$set(t.ruleForm,"db_host",e)},expression:"ruleForm.db_host"}})],1),r("el-form-item",{attrs:{label:"数据库用户名",prop:"db_username"}},[r("el-input",{model:{value:t.ruleForm.db_username,callback:function(e){t.$set(t.ruleForm,"db_username",e)},expression:"ruleForm.db_username"}})],1),r("el-form-item",{attrs:{label:"数据库密码",prop:"db_password"}},[r("el-input",{model:{value:t.ruleForm.db_password,callback:function(e){t.$set(t.ruleForm,"db_password",e)},expression:"ruleForm.db_password"}})],1),r("el-form-item",{attrs:{label:"数据库表前缀",prop:"db_prefix"}},[r("el-input",{model:{value:t.ruleForm.db_prefix,callback:function(e){t.$set(t.ruleForm,"db_prefix",e)},expression:"ruleForm.db_prefix"}})],1),r("el-form-item",{attrs:{label:"管理员账户",prop:"admin_username"}},[r("el-input",{attrs:{placeholder:""},model:{value:t.ruleForm.admin_username,callback:function(e){t.$set(t.ruleForm,"admin_username",e)},expression:"ruleForm.admin_username"}})],1),r("el-form-item",{attrs:{label:"管理员密码",prop:"admin_password"}},[r("el-input",{attrs:{placeholder:""},model:{value:t.ruleForm.admin_password,callback:function(e){t.$set(t.ruleForm,"admin_password",e)},expression:"ruleForm.admin_password"}})],1)],2)],1),r("div",{staticClass:"c-bottom"},[r("span",{staticClass:"btn",on:{click:function(e){return t.submit("ruleForm")}}},[t._v("安装文档系统")])])]):t._e(),t.loading?r("div",{staticClass:"i-con"},[t._m(0)]):t._e()])},o=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"c-top"},[n("div",{staticClass:"t-tit"},[t._v("正在安装文档系统")]),n("div",{staticClass:"loading"},[n("img",{attrs:{src:r("efed")}}),n("div",{staticClass:"text"},[t._v("正在安装"),n("i",{staticClass:"el-icon-loading"})])])])}];r("ac6a"),r("ac4d"),r("8a81"),r("5df3"),r("1c4c"),r("7f7f"),r("6b54"),r("96cf");function i(t,e,r,n,o,i,a){try{var c=t[i](a),u=c.value}catch(s){return void r(s)}c.done?e(u):Promise.resolve(u).then(n,o)}function a(t){return function(){var e=this,r=arguments;return new Promise((function(n,o){var a=t.apply(e,r);function c(t){i(a,n,o,c,u,"next",t)}function u(t){i(a,n,o,c,u,"throw",t)}c(void 0)}))}}var c=r("4ec3"),u=r("56d7");function s(t,e){var r;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(r=l(t))||e&&t&&"number"===typeof t.length){r&&(t=r);var n=0,o=function(){};return{s:o,n:function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,c=!1;return{s:function(){r=t[Symbol.iterator]()},n:function(){var t=r.next();return a=t.done,t},e:function(t){c=!0,i=t},f:function(){try{a||null==r.return||r.return()}finally{if(c)throw i}}}}function l(t,e){if(t){if("string"===typeof t)return f(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(t,e):void 0}}function f(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);rs)u.call(t,a=c[s++])&&e.push(a)}return e}},e426:function(t,e,r){"use strict";r("6a44")},efed:function(t,e,r){t.exports=r.p+"img/img-1.94406c67.png"},f1ae:function(t,e,r){"use strict";var n=r("86cc"),o=r("4630");t.exports=function(t,e,r){e in t?n.f(t,e,o(0,r)):t[e]=r}}}]); ================================================ FILE: public/js/chunk-2d0ba2e6.ba43e34b.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d0ba2e6"],{"35b0":function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"admin-login"},[n("div",{staticClass:"login-box"},[n("h2",[t._v("文档管理系统")]),n("el-tabs",{model:{value:t.active,callback:function(e){t.active=e},expression:"active"}},[n("el-tab-pane",{attrs:{label:"账号登录",name:"first"}},[n("div",{staticClass:"login-form"},[n("el-input",{attrs:{"prefix-icon":"el-icon-user-solid",placeholder:"用户名/手机号"},model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}}),n("el-input",{attrs:{type:"password","prefix-icon":"el-icon-s-goods",placeholder:"输入密码"},model:{value:t.formData.userpass,callback:function(e){t.$set(t.formData,"userpass",e)},expression:"formData.userpass"}}),n("el-input",{staticClass:"code-input",attrs:{"prefix-icon":"el-icon-s-goods",placeholder:"输入图形验证码"},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.login(e)}},model:{value:t.formData.code,callback:function(e){t.$set(t.formData,"code",e)},expression:"formData.code"}},[n("img",{attrs:{slot:"append",src:t.code,alt:""},on:{click:t.getCode},slot:"append"})])],1),t.thirdPartyList.length?n("div",{staticClass:"login-thirdParty"},[n("span",{staticClass:"title"},[t._v("第三方账号登录")]),n("div",{staticClass:"icon-list"},t._l(t.thirdPartyList,(function(e){return n("img",{key:e.name,staticClass:"icon-block",attrs:{src:e.logo,title:e.name},on:{click:function(n){return t.thirdPartyIconClick(e.redirect_url)}}})})),0)]):t._e(),n("el-button",{staticClass:"login-btn",on:{click:t.login}},[t._v("登录")])],1)],1)],1),t._m(0)])},o=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"footer"},[t._v("\n Powered by "),n("a",{attrs:{href:"https://www.w7.cc"}},[t._v("微擎云计算©www.w7.cc")])])}],i=n("1c1e"),s=n("4ec3"),c={name:"adminLogin",data:function(){return{autofocus:!1,active:"first",code:"",formData:{username:"",userpass:"",code:""},thirdPartyList:[]}},beforeRouteEnter:function(t,e,n){var a=t.query.code,o=t.query.redirect_url,c=t.query.app_id;a?i["a"].post("/common/auth/third-party-login",{code:a,app_id:c}).then((function(t){t&&t.data.is_need_bind?n("/bind"):t&&t.data.has_login?n((function(e){1==t.data.has_login?e.$confirm("当前登录账号非微擎账户绑定账号,是否继续登录?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){Object(s["b"])({change_token:t.data.change_token}).then((function(){e.$message({type:"success",message:"切换账户成功!"}),e.$router.push({name:"admin"})}))})).catch((function(){e.$message({type:"info",message:"已取消"}),e.$router.push({name:"admin"})})):2==t.data.has_login?e.$confirm("是否绑定当前微擎账户于该登录账户?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){Object(s["a"])({bind_token:t.data.bind_token}).then((function(){e.$message({type:"success",message:"绑定账户成功!"}),e.$router.push({name:"admin"})}))})).catch((function(){e.$message({type:"info",message:"已取消"}),e.$router.push({name:"admin"})})):3==t.data.has_login&&e.$confirm("当前登录账号非微擎账户绑定账号,是否继续登录?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){Object(s["A"])({source_token:t.data.source_token}).then((function(){e.$router.push({name:"adminBind"})}))})).catch((function(){e.$message({type:"info",message:"已取消"}),e.$router.push({name:"admin"})}))})):t&&"success"==t.data?n("/"):o?window.open(o,"_self"):n("/")})).catch((function(){})):i["a"].post("/common/auth/default-login-url").then((function(t){t.data?window.open(t.data,"_self"):n()})).catch((function(t){}))},created:function(){this.getCode(),this.getThirdParty()},methods:{showFind:function(){this.$message({message:"请联系管理员修改或使用密码找回工具修改"})},getCode:function(){var t=this;this.$post("/common/verifycode/image").then((function(e){e.img&&(t.code=e.img)}))},login:function(){var t=this;for(var e in this.formData)if(!this.formData[e])return this.$message("请填写完整表单"),!1;this.$post("/common/auth/login",this.formData).then((function(){var e=t.$message("登录成功");setTimeout((function(){e.close(),t.$route.query&&t.$route.query.redirect_url?window.open(t.$route.query.redirect_url,"_self"):t.$router.push("/")}),500)})).catch((function(){t.formData.code="",document.getElementsByClassName("el-input__inner")[2].focus(),t.getCode()}))},getThirdParty:function(){var t=this;this.$post("/common/auth/method",{redirect_url:this.$route.query.redirect_url}).then((function(e){t.thirdPartyList=e||[]}))},thirdPartyIconClick:function(t){window.open(t,"_self")}}},r=c,u=n("2877"),l=Object(u["a"])(r,a,o,!1,null,null,null);e["default"]=l.exports}}]); ================================================ FILE: public/js/chunk-2d22276a.90e5dc78.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-2d22276a"],{cf5f:function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"we7-document-star"},[a("div",{staticClass:"page-head"},[t._v("\n 我的星标\n ")]),a("div",{staticClass:"search-box"},[a("div",{staticClass:"demo-input-suffix"},[a("el-input",{attrs:{placeholder:"请输入文档名称",clearable:""},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.getList(e)}},model:{value:t.keyword,callback:function(e){t.keyword=e},expression:"keyword"}},[a("i",{staticClass:"el-input__icon el-icon-search",attrs:{slot:"suffix"},on:{click:t.getList},slot:"suffix"})])],1)]),a("el-table",{ref:"multipleTable",staticClass:"w7-table",attrs:{data:t.docList,"header-cell-style":{background:"#f7f9fc",color:"#606266"},"empty-text":"没有与搜索条件匹配的项"}},[a("el-table-column",{attrs:{label:"文档名称"},scopedSlots:t._u([{key:"default",fn:function(e){return a("div",{staticClass:"doc-icons"},[a("i",{staticClass:"wi wi-document color-blue"}),a("span",{staticClass:"name",on:{click:function(a){return t.readDoc(e.row.document_id)}}},[t._v(t._s(e.row.name))]),a("i",{staticClass:"wi wi-star color-yellow"}),e.row.is_public?t._e():a("div",{staticClass:"we7-label"},[a("i",{staticClass:"wi wi-lock"},[a("span",{staticClass:"font"},[t._v("私有")])])])])}}])}),a("el-table-column",{attrs:{label:"来自",prop:"author.name"}}),a("el-table-column",{attrs:{label:"操作",align:"right"},scopedSlots:t._u([{key:"default",fn:function(e){return a("div",{staticClass:"oper"},[a("el-tooltip",{attrs:{effect:"dark",content:"取消星标",placement:"bottom"}},[a("i",{staticClass:"wi wi-star checked",on:{click:function(a){return t.cancel(e.row)}}})])],1)}}])})],1),a("div",{staticClass:"btns"},[a("el-pagination",{attrs:{background:"",layout:"prev, pager, next, total","prev-text":"上一页","next-text":"下一页","page-size":15,"current-page":t.currentPage,"page-count":t.pageCount,total:t.total,"hide-on-single-page":!0},on:{"current-change":t.getList,"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e}}})],1)],1)},s=[],i={data:function(){return{keyword:"",loading:!1,docList:[],currentPage:1,pageCount:0,total:0}},created:function(){this.getList()},methods:{getList:function(){var t=this;this.loading=!0,this.$post("/admin/star/all",{page:this.currentPage,name:this.keyword}).then((function(e){t.docList=e.data.data,t.pageCount=e.data.page_count,t.total=e.data.total,t.loading=!1}))},cancel:function(t){var e=this;this.$post("/admin/star/delete",{document_id:t.document_id,id:t.id}).then((function(){e.getList(),e.$message("取消成功!")}))},readDoc:function(t){var e=this.$router.resolve({path:"/chapter/"+t});window.open(e.href,"_blank")}}},o=i,c=a("2877"),l=Object(c["a"])(o,n,s,!1,null,null,null);e["default"]=l.exports}}]); ================================================ FILE: public/js/chunk-3337dd8f.e12552ed.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3337dd8f"],{"091d":function(t,e,a){"use strict";a.r(e);var r=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"setting-thirdParty"},[a("div",{staticClass:"page-head"},[t._v(t._s(t.formData.setting.name)+"授权设置")]),a("el-form",{ref:"thirdPartyForm",staticClass:"we7-panel-form",class:{edit:t.editStatus},attrs:{"status-icon":"","label-position":"left","label-width":"290px",model:t.formData,rules:t.rules}},[a("div",{staticClass:"we7-panel-form__header"},[t._v("授权配置")]),a("div",{staticClass:"we7-panel-form__body edit"},[a("el-form-item",{attrs:{label:t.formData.setting.name+"授权登录"}},[a("el-switch",{attrs:{"active-value":1,"inactive-value":0},on:{change:t.change},model:{value:t.formData.setting.enable,callback:function(e){t.$set(t.formData.setting,"enable",e)},expression:"formData.setting.enable"}})],1)],1),a("div",{staticClass:"we7-panel-form__header"},[t._v("登录配置")]),a("div",{staticClass:"we7-panel-form__body"},[a("el-form-item",{attrs:{label:"unionid"}},[a("span",[t._v(t._s(t.$route.query.id))])]),a("el-form-item",{attrs:{label:"第三方名称",prop:"setting.name"}},[t.editStatus&&!t.formData.is_default?a("el-input",{model:{value:t.formData.setting.name,callback:function(e){t.$set(t.formData.setting,"name",e)},expression:"formData.setting.name"}}):a("span",[t._v(t._s(t.formData.setting.name))])],1),t.formData.is_default?t._e():a("el-form-item",{attrs:{label:"LOGO",prop:"setting.logo"}},[t.editStatus?a("el-upload",{staticClass:"avatar-uploader",attrs:{action:"/admin/upload/image","show-file-list":!1,"on-success":t.handleAvatarSuccess,"before-upload":t.beforeAvatarUpload}},[t.formData.setting.logo?a("img",{staticClass:"avatar",attrs:{src:t.formData.setting.logo}}):a("i",{staticClass:"el-icon-plus avatar-uploader-icon"})]):a("img",{staticClass:"avatar",attrs:{src:t.formData.setting.logo}})],1),a("el-form-item",{attrs:{label:"APPID",prop:"setting.app_id"}},[t.editStatus?a("el-input",{model:{value:t.formData.setting.app_id,callback:function(e){t.$set(t.formData.setting,"app_id",e)},expression:"formData.setting.app_id"}}):a("span",[t._v(t._s(t.formData.setting.app_id))])],1),a("el-form-item",{attrs:{label:"SERCETkey",prop:"setting.secret_key"}},[t.editStatus?a("el-input",{model:{value:t.formData.setting.secret_key,callback:function(e){t.$set(t.formData.setting,"secret_key",e)},expression:"formData.setting.secret_key"}}):a("span",[t._v(t._s(t.formData.setting.secret_key))])],1),a("el-form-item",{attrs:{label:"ACCESSTOKEN API地址",prop:"setting.access_token_url"}},[t.editStatus?a("el-input",{model:{value:t.formData.setting.access_token_url,callback:function(e){t.$set(t.formData.setting,"access_token_url",e)},expression:"formData.setting.access_token_url"}}):a("span",[t._v(t._s(t.formData.setting.access_token_url))])],1),a("el-form-item",{attrs:{label:"获取用户信息 API地址",prop:"setting.user_info_url"}},[t.editStatus?a("el-input",{model:{value:t.formData.setting.user_info_url,callback:function(e){t.$set(t.formData.setting,"user_info_url",e)},expression:"formData.setting.user_info_url"}}):a("span",[t._v(t._s(t.formData.setting.user_info_url))])],1),"QQ"==t.formData.setting.name?a("el-form-item",{attrs:{label:"回调地址"}},[a("span",[t._v(t._s(t.callbackUrl))])]):t._e()],1),t.formData.is_default?t._e():[a("div",{staticClass:"we7-panel-form__header"},[a("span",[t._v("转换功能")])]),a("div",{staticClass:"we7-panel-form__body"},[a("el-form-item",{attrs:{label:"uid"}},[t.editStatus?a("el-input",{model:{value:t.formData.convert.uid,callback:function(e){t.$set(t.formData.convert,"uid",e)},expression:"formData.convert.uid"}}):t._e(),t.editStatus?a("div",{staticClass:"we7-help-block"},[t._v("\n 请填写第三方系统用户id的字段\n ")]):a("span",[t._v(t._s(t.formData.convert.uid))])],1),a("el-form-item",{attrs:{label:"username"}},[t.editStatus?a("el-input",{model:{value:t.formData.convert.username,callback:function(e){t.$set(t.formData.convert,"username",e)},expression:"formData.convert.username"}}):t._e(),t.editStatus?a("div",{staticClass:"we7-help-block"},[t._v("\n 请填写第三方系统用户名的字段\n ")]):a("span",[t._v(t._s(t.formData.convert.username))])],1)],1)]],2),t.editStatus?t._e():a("el-button",{attrs:{type:"primary"},on:{click:function(e){t.editStatus=!0}}},[t._v("编辑")]),t.editStatus?[a("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保存")]),a("el-button",{on:{click:function(e){t.editStatus=!1}}},[t._v("取消")])]:t._e()],2)},s=[],i=(a("8e6e"),a("ac6a"),a("456d"),a("fc11"));a("7f7f");function n(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,r)}return a}function o(t){for(var e=1;ef)a=l(r,e=c[f++]),void 0!==a&&o(u,e,a);return u}})},9093:function(t,e,a){var r=a("ce10"),s=a("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,s)}},"990b":function(t,e,a){var r=a("9093"),s=a("2621"),i=a("cb7c"),n=a("7726").Reflect;t.exports=n&&n.ownKeys||function(t){var e=r.f(i(t)),a=s.f;return a?e.concat(a(t)):e}},e850:function(t,e,a){},f1ae:function(t,e,a){"use strict";var r=a("86cc"),s=a("4630");t.exports=function(t,e,a){e in t?r.f(t,e,s(0,a)):t[e]=a}},fc11:function(t,e,a){"use strict";function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}a.d(e,"a",(function(){return r}))}}]); ================================================ FILE: public/js/chunk-3bcf66f7.da2788c2.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-3bcf66f7"],{"1ce0":function(a,t,e){},"3d4e":function(a,t,e){"use strict";e.r(t);var s=function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("div",{staticClass:"layout-container container"},[e("div",{staticClass:"we7-topLine"}),a._m(0),e("el-form",{ref:"form",staticClass:"we7-panel-form",class:{edit:a.editStatus},attrs:{model:a.formData,"label-position":"left","label-width":"120px"}},[e("div",{staticClass:"we7-panel-form__header"},[a._v("账号设置")]),e("div",{staticClass:"we7-panel-form__body"},[e("el-form-item",{attrs:{label:"头像"}},[e("el-avatar",{attrs:{size:"large",src:a.formData.avatar}})],1),e("el-form-item",{attrs:{label:"公司职称"}},[e("span",[a._v(a._s(a.formData.company))])]),e("el-form-item",{attrs:{label:"个人简介"}},[e("span",[a._v(a._s(a.formData.resume))])]),e("el-form-item",{attrs:{label:"技能专长"}},[e("span",[a._v(a._s(a.formData.skill))])]),e("el-form-item",{attrs:{label:"所在城市"}},[e("span",[a._v(a._s(a.formData.company))])])],1)])],1)},r=[function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("div",{staticClass:"baseInfo"},[e("span",[a._v("基础信息")])])}],i=e("4ec3"),n={name:"personDetail",data:function(){return{editStatus:!1,user_id:"",formData:{avatar:"https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png",company:"",resume:"",skill:"",address:""},firstPage:!0}},created:function(){this.$route.params.id&&(this.user_id=this.$route.params.id,this.firstPage=!1),this.init()},methods:{init:function(){var a=this,t={user_id:this.user_id};Object(i["p"])(t).then((function(t){var e=t.data,s=e.avatar,r=e.company,i=e.resume,n=e.skill,o=e.address;""==s||null==s||void 0==s?(a.formData.company=r,a.formData.resume=i,a.formData.skill=n,a.formData.address=o):(a.formData.company=r,a.formData.resume=i,a.formData.skill=n,a.formData.address=o,a.formData.avatar=s)})).catch((function(){}))}}},o=n,l=(e("53b1"),e("2877")),c=Object(l["a"])(o,s,r,!1,null,"65f326c0",null);t["default"]=c.exports},"53b1":function(a,t,e){"use strict";e("1ce0")}}]); ================================================ FILE: public/js/chunk-416ef35e.e3de812c.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-416ef35e"],{"11e9":function(t,e,r){var a=r("52a7"),i=r("4630"),s=r("6821"),o=r("6a99"),n=r("69a8"),l=r("c69a"),c=Object.getOwnPropertyDescriptor;e.f=r("9e1e")?c:function(t,e){if(t=s(t),e=o(e,!0),l)try{return c(t,e)}catch(r){}if(n(t,e))return i(!a.f.call(t,e),t[e])}},"58e0":function(t,e,r){"use strict";r("dc9d")},"5dbc":function(t,e,r){var a=r("d3f4"),i=r("8b97").set;t.exports=function(t,e,r){var s,o=e.constructor;return o!==r&&"function"==typeof o&&(s=o.prototype)!==r.prototype&&a(s)&&i&&i(t,s),t}},"6ccf":function(t,e,r){"use strict";r("76e5")},"76e5":function(t,e,r){},"8b97":function(t,e,r){var a=r("d3f4"),i=r("cb7c"),s=function(t,e){if(i(t),!a(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,a){try{a=r("9b43")(Function.call,r("11e9").f(Object.prototype,"__proto__").set,2),a(t,[]),e=!(t instanceof Array)}catch(i){e=!0}return function(t,r){return s(t,r),e?t.__proto__=r:a(t,r),t}}({},!1):void 0),check:s}},9093:function(t,e,r){var a=r("ce10"),i=r("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return a(t,i)}},"99a4":function(t,e,r){"use strict";r.r(e);var a=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"container"},[r("div",{staticClass:"page-head"},[r("router-link",{attrs:{to:"/admin/user"}},[r("i",{staticClass:"el-icon-arrow-left"}),r("span",{staticStyle:{color:"#4da4fb"}},[t._v("用户管理")])]),t._v("/"),r("span",[t._v(t._s(t.$route.params.id?"编辑用户":"添加用户"))])],1),t.$route.params.id?t._e():r("div",{staticClass:"title"},[r("span",{staticClass:"active"},[t._v("1.添加成员")]),r("div",{staticClass:"title-line"}),r("span",{class:{active:!t.firstPage}},[t._v("2.设置权限")])]),r("div",{staticClass:"content"},[t.firstPage?[r("el-form",{ref:"ruleForm",staticStyle:{width:"420px"},attrs:{model:t.formData,rules:t.rules,"label-width":"80px","label-position":"left"}},[r("el-form-item",{attrs:{label:"用户账号",prop:"username"}},[r("el-input",{model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}})],1),r("el-form-item",{attrs:{label:"密码",prop:"userpass"}},[r("el-input",{attrs:{type:"password"},model:{value:t.formData.userpass,callback:function(e){t.$set(t.formData,"userpass",e)},expression:"formData.userpass"}})],1),r("el-form-item",{attrs:{label:"确认密码",prop:"confirm_userpass"}},[r("el-input",{attrs:{type:"password"},model:{value:t.formData.confirm_userpass,callback:function(e){t.$set(t.formData,"confirm_userpass",e)},expression:"formData.confirm_userpass"}})],1),r("el-form-item",[r("el-button",{attrs:{type:"primary"},on:{click:t.onSubmit}},[t._v("下一步")])],1)],1)]:[r("permission",{attrs:{user_id:t.user_id}})]],2)])},i=[],s=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("el-container",{staticClass:"user-permission"},[r("el-aside",{attrs:{width:"150px"}},[t._v("项目权限")]),r("el-main",[r("div",{staticClass:"select-power search-box"},[r("el-select",{attrs:{placeholder:"请选择"},on:{change:t.search},model:{value:t.is_public,callback:function(e){t.is_public=e},expression:"is_public"}},[r("el-option",{attrs:{label:"全部项目",value:"0"}}),r("el-option",{attrs:{label:"公有项目",value:"1"}}),r("el-option",{attrs:{label:"私有项目",value:"2"}})],1),r("div",{staticClass:"demo-input-suffix"},[r("el-input",{attrs:{placeholder:"请输入项目名称",clearable:""},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.search(e)}},model:{value:t.keyword,callback:function(e){t.keyword=e},expression:"keyword"}},[r("i",{staticClass:"el-input__icon el-icon-search",attrs:{slot:"suffix"},on:{click:t.search},slot:"suffix"})])],1),t._e()],1),r("el-table",{ref:"multipleTable",staticClass:"w7-table",attrs:{data:t.docList,"empty-text":"","row-key":"id","header-cell-style":{background:"#f7f9fc",color:"#606266"}}},[t._e(),r("el-table-column",{attrs:{label:"项目名称"},scopedSlots:t._u([{key:"default",fn:function(e){return[r("i",{staticClass:"wi wi-folder"}),r("span",{staticStyle:{"margin-left":"10px"}},[t._v(t._s(e.row.name))]),e.row.is_public?t._e():r("div",{staticStyle:{display:"inline-block",padding:"0 5px","margin-left":"20px",background:"#fff1de",color:"#ff8600"}},[r("i",{staticClass:"el-icon-lock"},[r("span",{staticStyle:{"margin-left":"5px"}},[t._v("私有")])])])]}}])}),r("el-table-column",{attrs:{label:"权限",align:"right"},scopedSlots:t._u([{key:"default",fn:function(e){return[r("el-radio-group",{staticClass:"ownership",model:{value:e.row.cur_role,callback:function(r){t.$set(e.row,"cur_role",r)},expression:"scope.row.cur_role"}},[t._l(e.row.role_list,(function(e){return[1==e.id?r("el-tooltip",{key:e.id,attrs:{effect:"dark",content:"可管理成员、阅读和编辑文档",placement:"bottom"}},[r("el-radio",{attrs:{label:1}},[t._v(t._s(e.name))])],1):t._e(),2==e.id?r("el-tooltip",{key:e.id,attrs:{effect:"dark",content:"可阅读和编辑文档",placement:"bottom"}},[r("el-radio",{attrs:{label:2}},[t._v(t._s(e.name))])],1):t._e(),3==e.id?r("el-tooltip",{key:e.id,attrs:{effect:"dark",content:"仅可以阅读",placement:"bottom"}},[r("el-radio",{attrs:{label:3}},[t._v(t._s(e.name))])],1):t._e()]}))],2)]}}])}),r("div",{staticClass:"nodata",attrs:{slot:"empty"},slot:"empty"},[r("p",[t._v("暂无可以查看管理的文档")])])],1),t.currentPage!=t.pageCount&&t.pageCount>1?r("div",{staticClass:"get-more"},[r("el-button",{attrs:{type:"text"},on:{click:t.getMore}},[t._v("点击加载更多")])],1):t._e(),r("div",{staticClass:"btns"},[r("el-button",{attrs:{type:"primary"},on:{click:t.save}},[t._v("保存")])],1)],1),r("el-dialog",{staticClass:"w7-dialog",attrs:{title:"批量修改",visible:t.dialogEditInfoVisible,"close-on-click-modal":!1,center:""},on:{"update:visible":function(e){t.dialogEditInfoVisible=e}}},[r("el-form",{staticStyle:{"margin-left":"50px"},attrs:{"label-width":"120"}},[r("el-form-item",{attrs:{label:"公有项目"}},[r("el-radio-group",{staticClass:"ownership",model:{value:t.radio,callback:function(e){t.radio=e},expression:"radio"}},[r("el-radio",{attrs:{label:2}},[t._v("操作员")])],1)],1),r("el-form-item",{attrs:{label:"私有项目"}},[r("el-radio-group",{staticClass:"ownership",model:{value:t.radio1,callback:function(e){t.radio1=e},expression:"radio1"}},[r("el-radio",{attrs:{label:2}},[t._v("操作员")]),r("el-radio",{attrs:{label:3}},[t._v("阅读者")])],1)],1)],1),r("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[r("el-button",{attrs:{type:"primary"},on:{click:t.editAll}},[t._v("确 定")]),r("el-button",{on:{click:function(e){t.dialogEditInfoVisible=!1}}},[t._v("取 消")])],1)],1)],1)},o=[],n=(r("c5f6"),r("d0ff")),l={props:["user_id"],data:function(){return{is_public:"",keyword:"",docList:[],currentPage:1,pageCount:1,total:0,dialogEditInfoVisible:!1,radio:2,radio1:2,selectRows:[]}},created:function(){this.getList()},methods:{search:function(){this.currentPage=1,this.getList()},getMore:function(){this.currentPage++,this.getList("more")},getList:function(t){var e=this;this.$post("/admin/document/all-by-uid",{user_id:this.user_id,page:this.currentPage,name:this.keyword,is_public:this.is_public}).then((function(r){e.docList="more"==t?[].concat(Object(n["a"])(e.docList),Object(n["a"])(r.data.data)):r.data.data,e.pageCount=r.data.page_count,e.total=r.data.total}))},save:function(){var t=this,e=[];for(var r in this.docList)this.docList[r].cur_role&&e.push({document_id:this.docList[r].id,permission:this.docList[r].cur_role});e.length?this.$post("/admin/user/batch-update-permission",{user_id:this.user_id,document_permission:e}).then((function(){t.$message("保存成功!"),t.$router.push("/admin/user")})):this.$router.push("/admin/user")},editAll:function(){var t=this.$refs.multipleTable.selection;for(var e in t)t[e].is_public?t[e].cur_role=Number(this.radio):t[e].cur_role=Number(this.radio1);this.dialogEditInfoVisible=!1}}},c=l,u=(r("6ccf"),r("2877")),f=Object(u["a"])(c,s,o,!1,null,null,null),d=f.exports,p={components:{permission:d},data:function(){var t=this,e=function(e,r,a){""===r?a(new Error("请输入密码")):(""!==t.formData.confirm_userpass&&t.$refs.ruleForm.validateField("confirm_userpass"),a())},r=function(e,r,a){""===r?a(new Error("请再次输入密码")):r!==t.formData.userpass?a(new Error("两次输入密码不一致!")):a()};return{rules:{username:[{required:!0,message:"请输入用户账号",trigger:"blur"}],userpass:[{required:!0,validator:e,trigger:"blur"}],confirm_userpass:[{required:!0,validator:r,trigger:"blur"}]},firstPage:!0,formData:{id:this.$route.params.id,username:"",userpass:"",confirm_userpass:""},user_id:""}},created:function(){this.$route.params.id&&(this.user_id=this.$route.params.id,this.firstPage=!1)},methods:{onSubmit:function(){var t=this;this.$refs["ruleForm"].validate((function(e){e&&t.$post("/admin/user/add",t.formData).then((function(e){t.$message("创建成功!"),t.user_id=e.data,t.firstPage=!1}))}))}}},m=p,b=(r("58e0"),Object(u["a"])(m,a,i,!1,null,"5df92025",null));e["default"]=b.exports},aa77:function(t,e,r){var a=r("5ca1"),i=r("be13"),s=r("79e5"),o=r("fdef"),n="["+o+"]",l="​…",c=RegExp("^"+n+n+"*"),u=RegExp(n+n+"*$"),f=function(t,e,r){var i={},n=s((function(){return!!o[t]()||l[t]()!=l})),c=i[t]=n?e(d):o[t];r&&(i[r]=c),a(a.P+a.F*n,"String",i)},d=f.trim=function(t,e){return t=String(i(t)),1&e&&(t=t.replace(c,"")),2&e&&(t=t.replace(u,"")),t};t.exports=f},c5f6:function(t,e,r){"use strict";var a=r("7726"),i=r("69a8"),s=r("2d95"),o=r("5dbc"),n=r("6a99"),l=r("79e5"),c=r("9093").f,u=r("11e9").f,f=r("86cc").f,d=r("aa77").trim,p="Number",m=a[p],b=m,_=m.prototype,v=s(r("2aeb")(_))==p,h="trim"in String.prototype,g=function(t){var e=n(t,!1);if("string"==typeof e&&e.length>2){e=h?e.trim():d(e,3);var r,a,i,s=e.charCodeAt(0);if(43===s||45===s){if(r=e.charCodeAt(2),88===r||120===r)return NaN}else if(48===s){switch(e.charCodeAt(1)){case 66:case 98:a=2,i=49;break;case 79:case 111:a=8,i=55;break;default:return+e}for(var o,l=e.slice(2),c=0,u=l.length;ci)return NaN;return parseInt(l,a)}}return+e};if(!m(" 0o1")||!m("0b1")||m("+0x1")){m=function(t){var e=arguments.length<1?0:t,r=this;return r instanceof m&&(v?l((function(){_.valueOf.call(r)})):s(r)!=p)?o(new b(g(e)),r,m):g(e)};for(var y,k=r("9e1e")?c(b):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),w=0;k.length>w;w++)i(b,y=k[w])&&!i(m,y)&&f(m,y,u(b,y));m.prototype=_,_.constructor=m,r("2aba")(a,p,m)}},d0ff:function(t,e,r){"use strict";function a(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,a=new Array(e);r=_?e?"":void 0:(i=s.charCodeAt(o),i<55296||i>56319||o+1===_||(c=s.charCodeAt(o+1))<56320||c>57343?e?s.charAt(o):i:e?s.slice(o,o+2):c-56320+(i-55296<<10)+65536)}}},"0390":function(e,t,r){"use strict";var n=r("02f4")(!0);e.exports=function(e,t,r){return t+(r?n(e,t).length:1)}},"0bfb":function(e,t,r){"use strict";var n=r("cb7c");e.exports=function(){var e=n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"0dae":function(e,t,r){},"214f":function(e,t,r){"use strict";r("b0c5");var n=r("2aba"),a=r("32e9"),i=r("79e5"),c=r("be13"),s=r("2b4c"),o=r("520a"),_=s("species"),u=!i((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),l=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r="ab".split(e);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();e.exports=function(e,t,r){var h=s(e),p=!i((function(){var t={};return t[h]=function(){return 7},7!=""[e](t)})),d=p?!i((function(){var t=!1,r=/a/;return r.exec=function(){return t=!0,null},"split"===e&&(r.constructor={},r.constructor[_]=function(){return r}),r[h](""),!t})):void 0;if(!p||!d||"replace"===e&&!u||"split"===e&&!l){var f=/./[h],g=r(c,h,""[e],(function(e,t,r,n,a){return t.exec===o?p&&!a?{done:!0,value:f.call(t,r,n)}:{done:!0,value:e.call(r,t,n)}:{done:!1}})),v=g[0],m=g[1];n(String.prototype,e,v),a(RegExp.prototype,h,2==t?function(e,t){return m.call(e,this,t)}:function(e){return m.call(e,this)})}}},"28a5":function(e,t,r){"use strict";var n=r("aae3"),a=r("cb7c"),i=r("ebd6"),c=r("0390"),s=r("9def"),o=r("5f1b"),_=r("520a"),u=r("79e5"),l=Math.min,h=[].push,p="split",d="length",f="lastIndex",g=4294967295,v=!u((function(){RegExp(g,"y")}));r("214f")("split",2,(function(e,t,r,u){var m;return m="c"=="abbc"[p](/(b)*/)[1]||4!="test"[p](/(?:)/,-1)[d]||2!="ab"[p](/(?:ab)*/)[d]||4!="."[p](/(.?)(.?)/)[d]||"."[p](/()()/)[d]>1||""[p](/.?/)[d]?function(e,t){var a=String(this);if(void 0===e&&0===t)return[];if(!n(e))return r.call(a,e,t);var i,c,s,o=[],u=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),l=0,p=void 0===t?g:t>>>0,v=new RegExp(e.source,u+"g");while(i=_.call(v,a)){if(c=v[f],c>l&&(o.push(a.slice(l,i.index)),i[d]>1&&i.index=p))break;v[f]===i.index&&v[f]++}return l===a[d]?!s&&v.test("")||o.push(""):o.push(a.slice(l)),o[d]>p?o.slice(0,p):o}:"0"[p](void 0,0)[d]?function(e,t){return void 0===e&&0===t?[]:r.call(this,e,t)}:r,[function(r,n){var a=e(this),i=void 0==r?void 0:r[t];return void 0!==i?i.call(r,a,n):m.call(String(a),r,n)},function(e,t){var n=u(m,e,this,t,m!==r);if(n.done)return n.value;var _=a(e),h=String(this),p=i(_,RegExp),d=_.unicode,f=(_.ignoreCase?"i":"")+(_.multiline?"m":"")+(_.unicode?"u":"")+(v?"y":"g"),y=new p(v?_:"^(?:"+_.source+")",f),b=void 0===t?g:t>>>0;if(0===b)return[];if(0===h.length)return null===o(y,h)?[h]:[];var w=0,E=0,k=[];while(E1?"total, sizes, prev, pager, next, jumper":"total, sizes"}},methods:{init:function(){this.keywords=this.$route.query.keywords,this.querySearch.keywords=this.keywords,this.querySearch2.keywords=this.keywords,this.keywords&&this.getSearchAll()},getSearchAll:function(){this.keywords?(this.$router.push({name:"homeSearch",query:{keywords:this.keywords}}),this.querySearch.page=1,this.querySearch.keywords=this.keywords,this.querySearch2.keywords=this.keywords,this.getSearch(),this.getSearch2()):(this.$message.closeAll(),this.$message.error("请输入关键字搜索"))},getSearch:function getSearch(){var _this=this;Object(_api_home__WEBPACK_IMPORTED_MODULE_4__["d"])(this.querySearch).then((function(res){200===res.code&&(_this.list=res.data.data,_this.total=res.data.total,_this.list.length&&_this.list.forEach((function(item){var reg="/"+_this.keywords+"/gi";if(item.chapter_content){item.chapter_content=item.chapter_content.replace(/[\-\_\,\!\|\~\`\(\)\#\$\%\^\&\*\{\}\:\;\"\<\>\?]/g,""),item.chapter_content=item.chapter_content.replace(/^[A-Za-z]+$/g,(function(e){return e.toLowerCase()})),item.chapter_content=item.chapter_content.replace(/(cdn\.w7\.cc)(.|\/)+\.(jpg|png|jpeg)/g,""),item.chapter_content=item.chapter_content.replace(/(http)(.|\/)+\.(jpg|png|jpeg)/g,""),item.chapter_content=item.chapter_content.replace(/\.(jpg|png|jpeg)/g,"");var hasKeywords=item.chapter_content.indexOf(_this.keywords);item.chapter_content=-1!=hasKeywords?item.chapter_content.substr(item.chapter_content.indexOf(_this.keywords),400)+"...":item.chapter_content.substr(0,400)+"...",item.chapter_content=item.chapter_content.replace(eval(reg),''.concat(_this.keywords,""))}item.name&&(item.name=item.name.replace(eval(reg),''.concat(_this.keywords,""))),item.nav&&(item.nav=item.nav.split(">"))})))}))},getSearch2:function(){var e=this;Object(_api_home__WEBPACK_IMPORTED_MODULE_4__["d"])(this.querySearch2).then((function(t){200===t.code&&(e.list2=t.data.data)}))},handleSizeChange:function(e){this.querySearch.page_size=e,this.getSearch()},handleCurrentChange:function(e){this.querySearch.page=e,this.getSearch()},viewDoc:function(e){var t="";e.chapter_id&&(t=e.chapter_id);var r=this.$router.resolve({name:"viewHome",params:{id:e.id},query:{id:t}}),n=r.href;window.open(n,"_blank")}}}},"520a":function(e,t,r){"use strict";var n=r("0bfb"),a=RegExp.prototype.exec,i=String.prototype.replace,c=a,s="lastIndex",o=function(){var e=/a/,t=/b*/g;return a.call(e,"a"),a.call(t,"a"),0!==e[s]||0!==t[s]}(),_=void 0!==/()??/.exec("")[1],u=o||_;u&&(c=function(e){var t,r,c,u,l=this;return _&&(r=new RegExp("^"+l.source+"$(?!\\s)",n.call(l))),o&&(t=l[s]),c=a.call(l,e),o&&c&&(l[s]=l.global?c.index+c[0].length:t),_&&c&&c.length>1&&i.call(c[0],r,(function(){for(u=1;u")]):e._e()])})),0)])})),r("div",{staticClass:"pagination-wrap"},[r("el-pagination",{attrs:{background:"","hide-on-single-page":e.total<=10,"current-page":e.querySearch.page,"page-sizes":[10,20,30],"page-size":e.querySearch.page_size,layout:e.paginationLayouts,total:e.total},on:{"update:currentPage":function(t){return e.$set(e.querySearch,"page",t)},"update:current-page":function(t){return e.$set(e.querySearch,"page",t)},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1)],2)])])])},a=[function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"l-tit"},[r("div",{staticClass:"text"},[e._v("相关文档")]),r("div",{staticClass:"line"},[r("span")])])}],i=r("3eb7"),c=i["a"],s=(r("9699"),r("2877")),o=Object(s["a"])(c,n,a,!1,null,"0d4061d4",null);t["default"]=o.exports},9699:function(e,t,r){"use strict";r("0dae")},a481:function(e,t,r){"use strict";var n=r("cb7c"),a=r("4bf8"),i=r("9def"),c=r("4588"),s=r("0390"),o=r("5f1b"),_=Math.max,u=Math.min,l=Math.floor,h=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g,d=function(e){return void 0===e?e:String(e)};r("214f")("replace",2,(function(e,t,r,f){return[function(n,a){var i=e(this),c=void 0==n?void 0:n[t];return void 0!==c?c.call(n,i,a):r.call(String(i),n,a)},function(e,t){var a=f(r,e,this,t);if(a.done)return a.value;var l=n(e),h=String(this),p="function"===typeof t;p||(t=String(t));var v=l.global;if(v){var m=l.unicode;l.lastIndex=0}var y=[];while(1){var b=o(l,h);if(null===b)break;if(y.push(b),!v)break;var w=String(b[0]);""===w&&(l.lastIndex=s(h,i(l.lastIndex),m))}for(var E="",k=0,x=0;x=k&&(E+=h.slice(k,C)+q,k=C+S.length)}return E+h.slice(k)}];function g(e,t,n,i,c,s){var o=n+e.length,_=i.length,u=p;return void 0!==c&&(c=a(c),u=h),r.call(s,u,(function(r,a){var s;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(o);case"<":s=c[a.slice(1,-1)];break;default:var u=+a;if(0===u)return r;if(u>_){var h=l(u/10);return 0===h?r:h<=_?void 0===i[h-1]?a.charAt(1):i[h-1]+a.charAt(1):r}s=i[u-1]}return void 0===s?"":s}))}}))},aae3:function(e,t,r){var n=r("d3f4"),a=r("2d95"),i=r("2b4c")("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==a(e))}},b0c5:function(e,t,r){"use strict";var n=r("520a");r("5ca1")({target:"RegExp",proto:!0,forced:n!==/./.exec},{exec:n})}}]); ================================================ FILE: public/js/chunk-564fade6.23bb5ce8.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-564fade6"],{9095:function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"we7-document-recycle"},[a("div",{staticClass:"page-head"},[t._v("\n 回收站\n ")]),a("el-table",{staticClass:"w7-table",attrs:{data:t.docList,"header-cell-style":{background:"#f7f9fc",color:"#606266"},"empty-text":"没有与搜索条件匹配的项"}},[a("el-table-column",{attrs:{label:"名称"},scopedSlots:t._u([{key:"default",fn:function(t){}}])}),a("el-table-column",{attrs:{label:"归属",prop:"author.name"}}),a("el-table-column",{attrs:{label:"删除时间"},scopedSlots:t._u([{key:"default",fn:function(t){}}])}),a("el-table-column",{attrs:{label:"操作",align:"right"},scopedSlots:t._u([{key:"default",fn:function(e){return a("div",{staticClass:"oper"},[a("el-tooltip",{attrs:{effect:"dark",content:"恢复",placement:"bottom"}},[a("i",{staticClass:"wi wi-huifu",on:{click:function(a){return t.recover(e.row.id)}}})]),a("el-tooltip",{attrs:{effect:"dark",content:"删除",placement:"bottom"}},[a("i",{staticClass:"wi wi-delete",on:{click:function(a){return t.del(e.row.id)}}})])],1)}}])})],1),a("div",{staticClass:"btns"},[a("el-pagination",{attrs:{background:"",layout:"prev, pager, next, total","prev-text":"上一页","next-text":"下一页","page-size":15,"current-page":t.currentPage,"page-count":t.pageCount,total:t.total,"hide-on-single-page":!0},on:{"current-change":t.getList,"update:currentPage":function(e){t.currentPage=e},"update:current-page":function(e){t.currentPage=e}}})],1)],1)},o=[],c={data:function(){return{loading:!1,docList:[],currentPage:1,pageCount:0,total:0}},created:function(){this.getList()},methods:{getList:function(){var t=this;this.loading=!0,this.$post("/admin/operate-log/all",{page:this.currentPage,name:this.keyword,time:this.time}).then((function(e){t.docList=e.data,t.pageCount=e.page_count,t.total=e.total,t.loading=!1}))},recover:function(t){},del:function(t){}}},l=c,i=(a("93c8"),a("2877")),r=Object(i["a"])(l,n,o,!1,null,null,null);e["default"]=r.exports},"93c8":function(t,e,a){"use strict";a("f040")},f040:function(t,e,a){}}]); ================================================ FILE: public/js/chunk-56652b45.b9202ad0.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-56652b45"],{"02f4":function(t,e,n){var r=n("4588"),o=n("be13");t.exports=function(t){return function(e,n){var a,i,c=String(o(e)),s=r(n),u=c.length;return s<0||s>=u?t?"":void 0:(a=c.charCodeAt(s),a<55296||a>56319||s+1===u||(i=c.charCodeAt(s+1))<56320||i>57343?t?c.charAt(s):a:t?c.slice(s,s+2):i-56320+(a-55296<<10)+65536)}}},"0a49":function(t,e,n){var r=n("9b43"),o=n("626a"),a=n("4bf8"),i=n("9def"),c=n("cd1c");t.exports=function(t,e){var n=1==t,s=2==t,u=3==t,f=4==t,l=6==t,d=5==t||l,g=e||c;return function(e,c,h){for(var p,m,A=a(e),b=o(A),v=r(c,h,3),y=i(b.length),w=0,S=n?g(e,y):s?g(e,0):void 0;y>w;w++)if((d||w in b)&&(p=b[w],m=v(p,w,A),t))if(n)S[w]=m;else if(m)switch(t){case 3:return!0;case 5:return p;case 6:return w;case 2:S.push(p)}else if(f)return!1;return l?-1:u||f?f:S}}},"0ae3":function(t,e,n){},"0bfb":function(t,e,n){"use strict";var r=n("cb7c");t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},"0f71":function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADDUlEQVRYR8WXT1IaURDGv2ZQyQ4qsA5WBbbBE0ROEDxBzAk0O8hG3AR2wROoJ9CcQDxBYAtWSdZSpUtE4Eu9B4NvhmHmjaZKFiyYnn6//vO6PwRv/JE3Ph+xAPL1+/Tm4/QLKHkISyTSywCEHc6kPXnnXA/qmQfbwKwACj/uS8LpEYCKjWMSZwTPb5q5dpR9KICKeGM0/SWC/ShHQc8VyFPK+R6WkbUAKmpwciqQ0ksOX75DDJhw9vo/M50gP4EA88OnVwKjxq+gIPAAccpBECsAOu2P09v/dbjLrSCe6OwMmpmBGcsKQKF21xbIZ6uAya62E/lkY0+i3W9my2sBCtXhvghOI52Rx+NUsuU2l76eo8khRNRNCf2Q+NZvZs9cI08GirWhSs+HMA9+B6atVQDEoNfMbq8AFGtDdccvQg8Hr/uN3G6YjWUJ93qN7KWunuusUBueCfD1pdEv/ViUkcB5v5HVs2UJYJP+GVmOmm4fq3e7CZGriEx2+o3cjh+AcRsoyN6qDwD0GlkdvP7KV+/zmzK9tQBYuUb+dyx7AOMtJ6NukQZYLJs/UQDq+atvweIQt5xmD0SWYAlIqY9TiRPvHJgdQFi3CULZeDKgfijWhvYAi1PUZNN1FIRezSAoTw/oMsQZwbZhrrMju71mTm/Z5zlQHbZEcBDqez77LyHSmZEe1ZMQSYNUTitRu4HESb+ZPfQCzFVPcCOS3RlwGDUDXHg9C4DWOpAxnW13K3p2QWAZyO44ldyNo/P01Z4vqLYfgr5x7gEImmImbdzSB80XirNjCpNVPWD0gp82LoC/uc3au74CJVmxetdRqSPYedpKluOm33U+V1eTK60rjc43AwkEMOunpBTJPdsGNBtRRC60tAvpo7WqeKENW+6KVkOH4HEUiOojgRy5w8lcvUEljPxjsthuasRqpaQVLnEpEC0uSTyIIE0wD0HFELN/SdRN+fUiAPdKbYymFQGV7gsXoMTvmUj7pvG+ZdO0kRnwO1GlSY4mpQSe5z8hA4KDSSrZiduwsQFsoopj8w85b5UwNkDVfAAAAABJRU5ErkJggg=="},1169:function(t,e,n){var r=n("2d95");t.exports=Array.isArray||function(t){return"Array"==r(t)}},"11e9":function(t,e,n){var r=n("52a7"),o=n("4630"),a=n("6821"),i=n("6a99"),c=n("69a8"),s=n("c69a"),u=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?u:function(t,e){if(t=a(t),e=i(e,!0),s)try{return u(t,e)}catch(n){}if(c(t,e))return o(!r.f.call(t,e),t[e])}},"1c4c":function(t,e,n){"use strict";var r=n("9b43"),o=n("5ca1"),a=n("4bf8"),i=n("1fa8"),c=n("33a4"),s=n("9def"),u=n("f1ae"),f=n("27ee");o(o.S+o.F*!n("5cc5")((function(t){Array.from(t)})),"Array",{from:function(t){var e,n,o,l,d=a(t),g="function"==typeof this?this:Array,h=arguments.length,p=h>1?arguments[1]:void 0,m=void 0!==p,A=0,b=f(d);if(m&&(p=r(p,h>2?arguments[2]:void 0,2)),void 0==b||g==Array&&c(b))for(e=s(d.length),n=new g(e);e>A;A++)u(n,A,m?p(d[A],A):d[A]);else for(l=b.call(d),n=new g;!(o=l.next()).done;A++)u(n,A,m?i(l,p,[o.value,A],!0):o.value);return n.length=A,n}})},"2b83":function(t,e,n){"use strict";n.r(e);var r=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"admin-login"},[r("div",{staticClass:"login-box"},[r("h2",[t._v("文档管理系统")]),r("el-tabs",{model:{value:t.active,callback:function(e){t.active=e},expression:"active"}},[r("el-tab-pane",{attrs:{label:"账号登录",name:"account"}},[r("div",{staticClass:"login-form"},[r("div",{staticClass:"users"},[r("div",{staticClass:"background"},[r("img",{attrs:{src:n("0f71"),alt:""}})]),r("el-input",{staticClass:"user",attrs:{placeholder:"用户名/手机号"},model:{value:t.formData.username,callback:function(e){t.$set(t.formData,"username",e)},expression:"formData.username"}})],1),r("div",{staticClass:"passwords"},[r("div",{staticClass:"background"},[r("img",{attrs:{src:n("bf1f"),alt:""}})]),r("el-input",{staticClass:"pwd",attrs:{type:"password",placeholder:"输入密码"},model:{value:t.formData.userpass,callback:function(e){t.$set(t.formData,"userpass",e)},expression:"formData.userpass"}})],1),r("div",{staticClass:"codes"},[r("div",{staticClass:"background"},[r("img",{attrs:{src:n("7b00"),alt:""}})]),r("el-input",{staticClass:"code-input vrcode",attrs:{placeholder:"输入图形验证码"},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.login(e)}},model:{value:t.formData.code,callback:function(e){t.$set(t.formData,"code",e)},expression:"formData.code"}},[r("img",{attrs:{slot:"append",src:t.code,alt:""},on:{click:t.getCode},slot:"append"})])],1)]),t.thirdPartyList.length?r("div",{staticClass:"login-thirdParty"},[r("span",{staticClass:"title"},[t._v("第三方账号登录")]),r("div",{staticClass:"icon-list"},t._l(t.thirdPartyList,(function(e){return r("img",{key:e.name,staticClass:"icon-block",attrs:{src:e.logo,title:e.name},on:{click:function(n){return t.thirdPartyIconClick(e.redirect_url)}}})})),0)]):t._e(),r("el-button",{staticClass:"login-btn",on:{click:t.login}},[t._v("登录")])],1)],1)],1),t._m(0)])},o=[function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"footer"},[t._v("\n Powered by "),n("a",{attrs:{href:"https://www.w7.cc"}},[t._v("微擎云计算©www.w7.cc")])])}],a=(n("ac6a"),n("ac4d"),n("8a81"),n("5df3"),n("1c4c"),n("7f7f"),n("6b54"),n("7514"),n("1c1e")),i=n("4ec3");function c(t,e){var n;if("undefined"===typeof Symbol||null==t[Symbol.iterator]){if(Array.isArray(t)||(n=s(t))||e&&t&&"number"===typeof t.length){n&&(t=n);var r=0,o=function(){};return{s:o,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,c=!1;return{s:function(){n=t[Symbol.iterator]()},n:function(){var t=n.next();return i=t.done,t},e:function(t){c=!0,a=t},f:function(){try{i||null==n.return||n.return()}finally{if(c)throw a}}}}function s(t,e){if(t){if("string"===typeof t)return u(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(t,e):void 0}}function u(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})}))},"653f":function(t,e,n){"use strict";n("0ae3")},"67ab":function(t,e,n){var r=n("ca5a")("meta"),o=n("d3f4"),a=n("69a8"),i=n("86cc").f,c=0,s=Object.isExtensible||function(){return!0},u=!n("79e5")((function(){return s(Object.preventExtensions({}))})),f=function(t){i(t,r,{value:{i:"O"+ ++c,w:{}}})},l=function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!a(t,r)){if(!s(t))return"F";if(!e)return"E";f(t)}return t[r].i},d=function(t,e){if(!a(t,r)){if(!s(t))return!0;if(!e)return!1;f(t)}return t[r].w},g=function(t){return u&&h.NEED&&s(t)&&!a(t,r)&&f(t),t},h=t.exports={KEY:r,NEED:!1,fastKey:l,getWeak:d,onFreeze:g}},"6b54":function(t,e,n){"use strict";n("3846");var r=n("cb7c"),o=n("0bfb"),a=n("9e1e"),i="toString",c=/./[i],s=function(t){n("2aba")(RegExp.prototype,i,t,!0)};n("79e5")((function(){return"/a/b"!=c.call({source:"a",flags:"b"})}))?s((function(){var t=r(this);return"/".concat(t.source,"/","flags"in t?t.flags:!a&&t instanceof RegExp?o.call(t):void 0)})):c.name!=i&&s((function(){return c.call(this)}))},7514:function(t,e,n){"use strict";var r=n("5ca1"),o=n("0a49")(5),a="find",i=!0;a in[]&&Array(1)[a]((function(){i=!1})),r(r.P+r.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")(a)},"7b00":function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAADo0lEQVRYR8VXW0gUURj+/tnd2oc2U9fCeqgF3bS3iEySLpAUBlEUQUHWkz4kvdZsQdaD67xGGKEQlUI9dJEogu5FEtj1JbNdxYJKzF0trbztzh9nxG0vMzvjZjmPc/7Ld77//79zDmGWP5rl/LAMYEUtz5mYGNhAqloBYDUIS8BYKDbAQB8BX0BoB9Nt+9zcJx0nadzK5iwBKJDDuyVSTwGUbyUowL3M0qGgknvVzD4tAM+xwaX2aLSRCJvNAumtM+NOxGar7qnL/mjkbwjA6wvtYPBZAi3KJPmUD4P7mKX9XUruHb04ugAKjvRvI4laCZD+JvkfEFBV4vJuf97D5HgpADTa1egbAhbMRPJ4JibYXvpByf4QHzcRQDU7CnNCz4holZXk5SvmYP9aJ2pahjE8yuYujOeBgdwyNNLElHECAO/RgT1g9ZJRJJeTUJRvQ3G+HTtXOVGcb9NMh0YZ996O417HOD5/i6KzN2oMhqS9AX/OZR0ATF5fqBsgT7J3iceB5qr55juMs2jviaCy6buODwcC9e4igDTKYgwUHA6XSjZ+ppdlZgEATLaVQX/2mwQAXrn/BIhq/wcAFfB11buVBACFcuguEcozBSAov9A2goZ9Li2EcQkAIVBBxb0liYFQJwjLMwHgv/UT116O4cHhbMx3TlY1HQAw3gcU0QdxPVAoh74RIcsMgBg3kexAmVMbvbqbP7Xub67Kik2FGQBmfA8qbk1nYk1oFcC73qjW3WIUh0ZVbeRE8hKPPQG7SQlSAXhl6yX4NKiipmVISy7EaKru8QgyKcFDImzUK4EQoBfHcxKWhPjUNA+jodIVq3u8wfVXY5Cv/NDVDoMmNB5DEUWP5nTKVNk0hPaemOImmOqOYTohEt5CgluqsiDYMPvS7V746gqR+O31hToB8holEIp4ptKVFoSYCEG90eHEzMGg4l6eIsUiqdlhJGyWLJCg7HaldL1IePr+L1xoG01PkPFhNOlX6Ot/QqB1ZjQLNoQWFC+24/rLMZxvGzE/kpmfBpS8hNgpBV0mDy5zUPT1v7iQRCT7muT7ocGVLLRdktBqxoLVdQZUZt7UpeQ9SvYxbOkCObyZSL04K5fSKZSeoz8WOXjkHEBbre423o6BGxFyVvf45/UZ+ZsPtWhMObyLSD09nYcJQAcD9W7TMloCINCLp1lkLLwexBVglDCwmIDJNwPhKxifATxnSbrtcOQ8ntGnWSb0W/WxzIDVgNO1+w3cr6Mw+iVR1gAAAABJRU5ErkJggg=="},"7bbc":function(t,e,n){var r=n("6821"),o=n("9093").f,a={}.toString,i="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(t){try{return o(t)}catch(e){return i.slice()}};t.exports.f=function(t){return i&&"[object Window]"==a.call(t)?c(t):o(r(t))}},"8a81":function(t,e,n){"use strict";var r=n("7726"),o=n("69a8"),a=n("9e1e"),i=n("5ca1"),c=n("2aba"),s=n("67ab").KEY,u=n("79e5"),f=n("5537"),l=n("7f20"),d=n("ca5a"),g=n("2b4c"),h=n("37c8"),p=n("3a72"),m=n("d4c0"),A=n("1169"),b=n("cb7c"),v=n("d3f4"),y=n("4bf8"),w=n("6821"),S=n("6a99"),C=n("4630"),E=n("2aeb"),B=n("7bbc"),O=n("11e9"),k=n("2621"),P=n("86cc"),x=n("0d58"),D=O.f,Q=P.f,j=B.f,U=r.Symbol,N=r.JSON,V=N&&N.stringify,Y="prototype",R=g("_hidden"),J=g("toPrimitive"),I={}.propertyIsEnumerable,K=f("symbol-registry"),L=f("symbols"),W=f("op-symbols"),G=Object[Y],M="function"==typeof U&&!!k.f,q=r.QObject,T=!q||!q[Y]||!q[Y].findChild,Z=a&&u((function(){return 7!=E(Q({},"a",{get:function(){return Q(this,"a",{value:7}).a}})).a}))?function(t,e,n){var r=D(G,e);r&&delete G[e],Q(t,e,n),r&&t!==G&&Q(G,e,r)}:Q,_=function(t){var e=L[t]=E(U[Y]);return e._k=t,e},F=M&&"symbol"==typeof U.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof U},z=function(t,e,n){return t===G&&z(W,e,n),b(t),e=S(e,!0),b(n),o(L,e)?(n.enumerable?(o(t,R)&&t[R][e]&&(t[R][e]=!1),n=E(n,{enumerable:C(0,!1)})):(o(t,R)||Q(t,R,C(1,{})),t[R][e]=!0),Z(t,e,n)):Q(t,e,n)},H=function(t,e){b(t);var n,r=m(e=w(e)),o=0,a=r.length;while(a>o)z(t,n=r[o++],e[n]);return t},X=function(t,e){return void 0===e?E(t):H(E(t),e)},$=function(t){var e=I.call(this,t=S(t,!0));return!(this===G&&o(L,t)&&!o(W,t))&&(!(e||!o(this,t)||!o(L,t)||o(this,R)&&this[R][t])||e)},tt=function(t,e){if(t=w(t),e=S(e,!0),t!==G||!o(L,e)||o(W,e)){var n=D(t,e);return!n||!o(L,e)||o(t,R)&&t[R][e]||(n.enumerable=!0),n}},et=function(t){var e,n=j(w(t)),r=[],a=0;while(n.length>a)o(L,e=n[a++])||e==R||e==s||r.push(e);return r},nt=function(t){var e,n=t===G,r=j(n?W:w(t)),a=[],i=0;while(r.length>i)!o(L,e=r[i++])||n&&!o(G,e)||a.push(L[e]);return a};M||(U=function(){if(this instanceof U)throw TypeError("Symbol is not a constructor!");var t=d(arguments.length>0?arguments[0]:void 0),e=function(n){this===G&&e.call(W,n),o(this,R)&&o(this[R],t)&&(this[R][t]=!1),Z(this,t,C(1,n))};return a&&T&&Z(G,t,{configurable:!0,set:e}),_(t)},c(U[Y],"toString",(function(){return this._k})),O.f=tt,P.f=z,n("9093").f=B.f=et,n("52a7").f=$,k.f=nt,a&&!n("2d00")&&c(G,"propertyIsEnumerable",$,!0),h.f=function(t){return _(g(t))}),i(i.G+i.W+i.F*!M,{Symbol:U});for(var rt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ot=0;rt.length>ot;)g(rt[ot++]);for(var at=x(g.store),it=0;at.length>it;)p(at[it++]);i(i.S+i.F*!M,"Symbol",{for:function(t){return o(K,t+="")?K[t]:K[t]=U(t)},keyFor:function(t){if(!F(t))throw TypeError(t+" is not a symbol!");for(var e in K)if(K[e]===t)return e},useSetter:function(){T=!0},useSimple:function(){T=!1}}),i(i.S+i.F*!M,"Object",{create:X,defineProperty:z,defineProperties:H,getOwnPropertyDescriptor:tt,getOwnPropertyNames:et,getOwnPropertySymbols:nt});var ct=u((function(){k.f(1)}));i(i.S+i.F*ct,"Object",{getOwnPropertySymbols:function(t){return k.f(y(t))}}),N&&i(i.S+i.F*(!M||u((function(){var t=U();return"[null]"!=V([t])||"{}"!=V({a:t})||"{}"!=V(Object(t))}))),"JSON",{stringify:function(t){var e,n,r=[t],o=1;while(arguments.length>o)r.push(arguments[o++]);if(n=e=r[1],(v(e)||void 0!==t)&&!F(t))return A(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!F(e))return e}),r[1]=e,V.apply(N,r)}}),U[Y][J]||n("32e9")(U[Y],J,U[Y].valueOf),l(U,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},9093:function(t,e,n){var r=n("ce10"),o=n("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},ac4d:function(t,e,n){n("3a72")("asyncIterator")},bf1f:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAACrElEQVRYR8VXS3LaQBDtlkRgF1MR6+Aqm23ICQw3sG/g3ADvIJuwitg5N0huYG4AnCBkC1QF1pAy2WELqVM9IKLPSDN8qtCGAqZ7Xr/+PSGc+cEz3w97Abj+/FwFz78BpFsGjgg1/iSCvgiEsAumMRh/LQ51A9MCcNWc1wzA74BQ1nJMMPWBPk06pQ2wjCcTQLn9fJFbeU9BpCpn8f+ZGbdg3k3bxWWabSoAQTd5PQS42Pfi8HkCWAKa9bS0SAHw5Ujez2MuTrCB5kcZiAQAQfuL9/vYyBMAAJZu3ryMpyMB4Lo17yPgTVb0RPAXABoumKLIcuDVEKENAO8Vdv1xx66Hz0QAiGpH7Cmon73mzSpHwucBLZo4xQEz92a17gPihyx7n6ge7o4IgEprMVVFwQ7WBWuYe1n3ELAq2h9o6OaturVaV5UBEExHHfsyALkDoFt4I8fGq9afhgH0GI7UB3yYOO++VVoLUhUvhQpyB0DmVOaIAVSa8zYgfom2G/H04/ppqAAEYPncfwY0io8N0gCoLo2BHYydkhjj+gCIfr0WrFrWVGOHOsVIQEkAqtzFqzcrYp1uYiYjDJwdgGoAyRhgGyCk+HBRMSBNwUEAmgux5cYdO7KwDgKgakMZA6IduTM6JfEZPCoA8jZUbEBpCpqL+y0DP/YBIB1E7CBrFJ+wC2Yjx94pq32W0d3Isbs6A6fSWrBmfJKdzVxGbJBWjLxwiOBBpfM4/4jwGCyqtAmYWEbBD1sdOEWEtzrR6p5hDeEWzLJSkAgWTizJhIAxzJqWJAsiEqLU9/rHMpF1eWQUy6jc6MN1VyXR0tLAE8/NW7cHyXJJX3OvZ2q+kM3MJ7pXFaySgXhknBYiv4bgb17NtuKVI+XvBEYX0eif/NVMt9IPOaf1bniIY12bf7ZOhzAhOjIGAAAAAElFTkSuQmCC"},cd1c:function(t,e,n){var r=n("e853");t.exports=function(t,e){return new(r(t))(e)}},d4c0:function(t,e,n){var r=n("0d58"),o=n("2621"),a=n("52a7");t.exports=function(t){var e=r(t),n=o.f;if(n){var i,c=n(t),s=a.f,u=0;while(c.length>u)s.call(t,i=c[u++])&&e.push(i)}return e}},e853:function(t,e,n){var r=n("d3f4"),o=n("1169"),a=n("2b4c")("species");t.exports=function(t){var e;return o(t)&&(e=t.constructor,"function"!=typeof e||e!==Array&&!o(e.prototype)||(e=void 0),r(e)&&(e=e[a],null===e&&(e=void 0))),void 0===e?Array:e}},f1ae:function(t,e,n){"use strict";var r=n("86cc"),o=n("4630");t.exports=function(t,e,n){e in t?r.f(t,e,o(0,n)):t[e]=n}}}]); ================================================ FILE: public/js/chunk-57425795.4709a7c2.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-57425795"],{"1a95":function(t,e,i){"use strict";i("91a3")},"794d":function(t,e,i){"use strict";i.r(e);var a=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("el-container",{staticClass:"layout-container"},[t.showAside?i("el-aside",{staticClass:"admin-view-aside",attrs:{width:t.isCollapse?"65px":"240px"}},[i("el-menu",{staticClass:"admin-view-menu",attrs:{"default-active":t.active,router:!0,collapse:t.isCollapse}},[i("el-menu-item",{attrs:{index:"/admin/document/index"}},[i("i",{staticClass:"wi wi-folder"}),i("span",{attrs:{slot:"title"},slot:"title"},[t._v("我的文档管理")])]),i("div",{staticClass:"line"}),i("el-menu-item",{attrs:{index:"/admin/document/star"}},[i("i",{staticClass:"wi wi-star"}),i("span",{attrs:{slot:"title"},slot:"title"},[t._v("我的星标")])]),i("el-menu-item",{attrs:{index:"/admin/document/history"}},[i("i",{staticClass:"wi wi-waiting"}),i("span",{attrs:{slot:"title"},slot:"title"},[t._v("历史查看")])]),i("el-menu-item",{attrs:{index:"/admin/document/involved"}},[i("i",{staticClass:"wi wi-wocanyude"}),i("span",{attrs:{slot:"title"},slot:"title"},[t._v("我参与的")])])],1)],1):t._e(),i("el-main",[i("keep-alive",{attrs:{include:"documentIndex"}},[i("router-view")],1)],1)],1)},n=[],s=(i("7f7f"),{name:"documentLayout",data:function(){return{active:"/admin/document/index",isCollapse:!1,showAside:!0}},watch:{$route:function(t){"manageSetting"===t.name||"chapter"===t.name?this.showAside=!1:this.showAside=!0}},beforeRouteEnter:function(t,e,i){i((function(e){"/admin/document/star"==t.path||"/admin/document/history"==t.path||"/admin/document/involved"==t.path?e.active=t.path:e.active="/admin/document/index","manageSetting"===t.name||"chapter"===t.name?e.showAside=!1:e.showAside=!0}))}}),o=s,l=(i("1a95"),i("2877")),d=Object(l["a"])(o,a,n,!1,null,"70c2a92a",null);e["default"]=d.exports},"91a3":function(t,e,i){}}]); ================================================ FILE: public/js/chunk-5b1f82de.b6b71a96.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5b1f82de"],{"11e9":function(t,e,a){var o=a("52a7"),i=a("4630"),n=a("6821"),r=a("6a99"),l=a("69a8"),s=a("c69a"),c=Object.getOwnPropertyDescriptor;e.f=a("9e1e")?c:function(t,e){if(t=n(t),e=r(e,!0),s)try{return c(t,e)}catch(a){}if(l(t,e))return i(!o.f.call(t,e),t[e])}},"1cb1":function(t,e,a){},"2f21":function(t,e,a){"use strict";var o=a("79e5");t.exports=function(t,e){return!!t&&o((function(){e?t.call(null,(function(){}),1):t.call(null)}))}},"40a8":function(t,e,a){},"55dd":function(t,e,a){"use strict";var o=a("5ca1"),i=a("d8e8"),n=a("4bf8"),r=a("79e5"),l=[].sort,s=[1,2,3];o(o.P+o.F*(r((function(){s.sort(void 0)}))||!r((function(){s.sort(null)}))||!a("2f21")(l)),"Array",{sort:function(t){return void 0===t?l.call(n(this)):l.call(n(this),i(t))}})},"732d":function(t,e,a){"use strict";a.r(e);var o=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"setting"},[a("el-tabs",{model:{value:t.activeName,callback:function(e){t.activeName=e},expression:"activeName"}},[a("el-tab-pane",{attrs:{label:"首页设置",name:"index"}},[a("table",[a("tr",[a("th",{attrs:{width:"200"}},[t._v("基本设置")]),a("th"),a("th",{attrs:{width:"200"}},[t._v("操作")])]),a("tr",[a("td",[t._v("开启首页")]),a("td",[t.homeData&&t.homeData.open_home?[t._v(t._s(t.homeData.open_home.url))]:t._e()],2),a("td",[t.homeData&&t.homeData.open_home?a("el-switch",{attrs:{"active-color":"#4096f9","inactive-color":"#999","active-value":1,"inactive-value":0},on:{change:t.openHomeChange},model:{value:t.homeData.open_home.is_open,callback:function(e){t.$set(t.homeData.open_home,"is_open",e)},expression:"homeData.open_home.is_open"}}):t._e()],1)]),a("tr",[a("td",[t._v("首页banner图")]),a("td"),a("td",[a("span",{on:{click:t.showUploadBannerDialog}},[t._v("设置")])])]),a("tr",[a("td",[t._v("文档首页名称")]),a("td"),a("td",[a("span",{on:{click:t.showTitleDialog}},[t._v("设置")])])])]),a("el-dialog",{attrs:{title:"banner上传",visible:t.uploadBannerDialogVisible,center:"",width:"500px"},on:{"update:visible":function(e){t.uploadBannerDialogVisible=e}}},[a("el-form",{ref:"uploadBannerForm",attrs:{model:t.uploadBannerForm,"label-width":"150px"}},[a("el-form-item",[a("el-upload",{staticClass:"avatar-uploader",attrs:{action:"/common/upload/image",accept:"image/*","show-file-list":!1,"on-success":t.handleUploadSuccess,"before-upload":t.beforeAvatarUpload}},[t.imageUrl?a("img",{staticClass:"avatar",attrs:{src:t.imageUrl}}):a("i",{staticClass:"el-icon-plus avatar-uploader-icon"})])],1)],1),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(e){t.uploadBannerDialogVisible=!1}}},[t._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:t.submitBannerForm}},[t._v("确 定")])],1)],1),a("el-dialog",{attrs:{title:"文档首页名称修改",visible:t.titleDialogVisible,center:"",width:"500px"},on:{"update:visible":function(e){t.titleDialogVisible=e}}},[a("el-form",{ref:"uploadBannerForm",attrs:{model:t.titleForm,"label-width":"100px"}},[a("el-form-item",{attrs:{label:"文档首页名称"}},[a("el-input",{attrs:{maxlength:"20"},model:{value:t.titleForm.title,callback:function(e){t.$set(t.titleForm,"title",e)},expression:"titleForm.title"}})],1)],1),a("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(e){t.titleDialogVisible=!1}}},[t._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:t.submitTitleForm}},[t._v("确 定")])],1)],1)],1),a("el-tab-pane",{attrs:{label:"文档设置",name:"document"}},[a("index-doc-setting")],1)],1)],1)},i=[],n=a("1c1e"),r=function(t){return Object(n["a"])({url:"/admin/home/get-set",params:t,method:"get"})},l=function(t){return Object(n["a"])({url:"/admin/home/set-open",data:t,method:"post"})},s=function(t){return Object(n["a"])({url:"/admin/home/set-banner",data:t,method:"post"})},c=function(t){return Object(n["a"])({url:"/admin/home/set-title",data:t,method:"post"})},u=function(t){return Object(n["a"])({url:"/admin/home/list",params:t,method:"get"})},m=function(t){return Object(n["a"])({url:"/admin/home/get-type",params:t,method:"get"})},d=function(t){return Object(n["a"])({url:"/admin/home/search-doc",data:t,method:"post"})},f=function(t){return Object(n["a"])({url:"/admin/home/add",data:t,method:"post"})},h=function(t){return Object(n["a"])({url:"/admin/home/edit",data:t,method:"post"})},p=function(t){return Object(n["a"])({url:"/admin/home/delete",data:t,method:"post"})},g=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"setting"},[a("div",{staticClass:"tab-wrap"},[a("el-tabs",{on:{"tab-click":t.handleClick},model:{value:t.activeName,callback:function(e){t.activeName=e},expression:"activeName"}},[a("el-tab-pane",{attrs:{label:"全部",name:"0"}}),a("el-tab-pane",{attrs:{label:"公告",name:"1"}}),a("el-tab-pane",{attrs:{label:"首页类型一",name:"2"}}),a("el-tab-pane",{attrs:{label:"首页类型二",name:"3"}})],1),a("el-button",{staticClass:"add",attrs:{type:"primary",size:"small"},on:{click:function(e){return t.showDialogForm(0)}}},[t._v("添加首页文档")])],1),a("div",{staticClass:"reset-element"},[a("el-table",{staticStyle:{width:"100%"},attrs:{data:t.docSettingData}},[a("el-table-column",{attrs:{align:"center",prop:"sort",label:"排序",width:"80"}}),a("el-table-column",{attrs:{align:"center",prop:"document_name",label:"首页名称"}}),2==t.activeName||0==t.activeName?a("el-table-column",{attrs:{align:"center",label:"导航图标"},scopedSlots:t._u([{key:"default",fn:function(e){var o=e.row;return[o.logo?a("img",{staticClass:"nav-icon",attrs:{src:o.logo}}):a("span",[t._v("--")])]}}],null,!1,537090118)}):t._e(),a("el-table-column",{attrs:{align:"center",label:"文档地址"},scopedSlots:t._u([{key:"default",fn:function(e){var o=e.row;return[o.first_chapter_id?a("a",{attrs:{target:"_blank",href:t.origin+"/chapter/"+o.document_id+"?id="+o.first_chapter_id}},[t._v(t._s(t.origin+"/chapter/"+o.document_id+"?id="+o.first_chapter_id))]):a("span",[t._v("--")])]}}])}),a("el-table-column",{attrs:{align:"center",prop:"type_name",label:"首页显示类型"}}),a("el-table-column",{attrs:{width:"150",align:"center",label:"操作"},scopedSlots:t._u([{key:"default",fn:function(e){var o=e.row;return[a("span",{staticClass:"edit",on:{click:function(e){return t.showDialogForm(1,o)}}},[t._v("编辑")]),a("span",{staticClass:"remove",on:{click:function(e){return t.remove(o)}}},[t._v("删除")])]}}])})],1),t.total>10?a("el-pagination",{attrs:{small:"",background:"",layout:"prev, pager, next",total:t.total,"current-page":t.page,"page-size":t.pageSize},on:{"current-change":t.handleCurrentChange}}):t._e()],1),a("el-dialog",{attrs:{title:"首页设置",visible:t.dialogFormVisible},on:{"update:visible":function(e){t.dialogFormVisible=e}}},[a("el-form",{attrs:{model:t.form}},[a("el-form-item",{attrs:{label:"首页类型","label-width":t.formLabelWidth}},[a("el-select",{attrs:{placeholder:"请选择类型",disabled:t.isEdit},model:{value:t.form.type,callback:function(e){t.$set(t.form,"type",e)},expression:"form.type"}},t._l(t.hometypes,(function(t){return a("el-option",{key:t.val,attrs:{label:t.label,value:t.val}})})),1)],1),1!==t.form.type?a("el-form-item",{attrs:{label:"文档排序","label-width":t.formLabelWidth}},[a("el-input-number",{attrs:{controls:!1,min:0,max:100,precision:0,placeholder:"输入整数,数值越小排名越靠前"},model:{value:t.form.sort,callback:function(e){t.$set(t.form,"sort",e)},expression:"form.sort"}})],1):t._e(),2===t.form.type?a("el-form-item",{attrs:{label:"文档图标","label-width":t.formLabelWidth}},[a("el-upload",{staticClass:"avatar-uploader",attrs:{action:"/common/upload/image",accept:"image/*","show-file-list":!1,"on-success":t.handleUploadSuccess,"before-upload":t.beforeAvatarUpload}},[t.form.logo?a("img",{staticClass:"avatar",attrs:{src:t.form.logo,alt:""}}):a("i",{staticClass:"el-icon-plus avatar-uploader-icon"})])],1):t._e(),a("el-form-item",{attrs:{label:"添加文档","label-width":t.formLabelWidth}},[a("el-autocomplete",{staticClass:"inline-input",attrs:{"fetch-suggestions":t.querySearch,placeholder:"请输入文档名称","trigger-on-focus":!1,clearable:""},on:{select:t.handleSelect},model:{value:t.searchForm.keyword,callback:function(e){t.$set(t.searchForm,"keyword",e)},expression:"searchForm.keyword"}})],1),2===t.form.type?a("el-form-item",{attrs:{label:"文档简介","label-width":t.formLabelWidth}},[a("el-input",{attrs:{type:"textarea",rows:2,placeholder:"不超过25个字"},model:{value:t.form.desc,callback:function(e){t.$set(t.form,"desc",e)},expression:"form.desc"}})],1):t._e()],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(e){t.dialogFormVisible=!1}}},[t._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:t.submitForm}},[t._v("确 定")])],1)],1)],1)},b=[],v=(a("8e6e"),a("456d"),a("ac6a"),a("55dd"),a("7f7f"),a("fc11"));function y(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,o)}return a}function _(t){for(var e=1;e0,this.searchForm.keyword="",this.isEdit)this.form.id=e.id,this.form.type=e.type,this.form.sort=e.sort,this.form.logo=e.logo,this.form.desc=e.description;else{var a=+this.activeName;this.form.type=a||1}},remove:function(t){var e=this;this.$confirm("此操作将删除该设置, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){p({id:t.id}).then((function(t){200===t.code&&(e.$message.success("删除成功!"),e.getHomeList())})).catch((function(t){}))})).catch((function(){e.$message.info("已取消删除")}))},handleUploadSuccess:function(t){200===t.code&&(this.form.logo=t.data.url)},beforeAvatarUpload:function(t){var e=5,a=t.size/1024/1024<=e;return a||this.$message.error("上传图片大小不能超过".concat(e,"MB!")),a},querySearch:function(t,e){var a=this;d(this.searchForm).then((function(t){a.restaurants=t.data,a.restaurants.forEach((function(t){t["value"]=t.name})),e(a.restaurants)})).finally((function(){a.listLoading=!1}))},handleSelect:function(t){this.form.document_id=t.document_id},submitForm:function(){this.isEdit?this.homeEdit():this.homeAdd()},homeEdit:function(){var t=this;h(this.form).then((function(e){200===e.code&&(t.dialogFormVisible=!1,t.$message.success("更新成功"),t.getHomeList())}))},homeAdd:function(){var t=this;f(this.form).then((function(e){200===e.code&&(t.dialogFormVisible=!1,t.$message.success("保存成功"),t.getHomeList())}))},handleCurrentChange:function(t){this.page=t,this.getHomeList()}}},D=w,F=(a("e1ff"),a("2877")),O=Object(F["a"])(D,g,b,!1,null,"4599d29e",null),k=O.exports,S={name:"indexSetting",components:{indexDocSetting:k},data:function(){return{homeData:[],uploadBannerDialogVisible:!1,titleDialogVisible:!1,uploadBannerForm:{images:[]},imageUrl:"",titleForm:{title:""},activeName:"index"}},created:function(){this.init()},methods:{init:function(){this.getHomeData()},getHomeData:function(){var t=this;r().then((function(e){200===e.code&&(t.homeData=e.data)})).catch((function(t){}))},openHomeChange:function(t){var e=this;l({is_open:t}).then((function(t){200===t.code&&e.getHomeData()})).catch((function(t){}))},showUploadBannerDialog:function(){this.uploadBannerDialogVisible=!0,this.uploadBannerForm.images=this.homeData.banner,this.imageUrl=this.homeData.banner[0]},showTitleDialog:function(){this.titleDialogVisible=!0,this.titleForm.title=this.homeData.title},handleUploadSuccess:function(t){200===t.code&&(this.imageUrl=t.data.url,this.uploadBannerForm.images=[],this.uploadBannerForm.images.push(t.data.url))},beforeAvatarUpload:function(t){var e=5,a=t.size/1024/1024<=e;return a||this.$message.error("上传图片大小不能超过".concat(e,"MB!")),a},submitBannerForm:function(){var t=this;if(!this.uploadBannerForm.images.length)return this.$message.closeAll(),this.$message.error("请上传图片"),!1;s(this.uploadBannerForm).then((function(e){200===e.code&&(t.uploadBannerDialogVisible=!1,t.$message.success("图片保存成功"),t.getHomeData())})).catch((function(t){}))},submitTitleForm:function(){var t=this;if(!this.titleForm.title.length)return this.$message.closeAll(),this.$message.error("文档首页名称不能为空"),!1;c(this.titleForm).then((function(e){200===e.code&&(t.titleDialogVisible=!1,t.$message.success("保存成功"),t.getHomeData())})).catch((function(t){}))}}},x=S,j=(a("d23f"),Object(F["a"])(x,o,i,!1,null,"091246e5",null));e["default"]=j.exports},"8e6e":function(t,e,a){var o=a("5ca1"),i=a("990b"),n=a("6821"),r=a("11e9"),l=a("f1ae");o(o.S,"Object",{getOwnPropertyDescriptors:function(t){var e,a,o=n(t),s=r.f,c=i(o),u={},m=0;while(c.length>m)a=s(o,e=c[m++]),void 0!==a&&l(u,e,a);return u}})},9093:function(t,e,a){var o=a("ce10"),i=a("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return o(t,i)}},"990b":function(t,e,a){var o=a("9093"),i=a("2621"),n=a("cb7c"),r=a("7726").Reflect;t.exports=r&&r.ownKeys||function(t){var e=o.f(n(t)),a=i.f;return a?e.concat(a(t)):e}},d23f:function(t,e,a){"use strict";a("1cb1")},e1ff:function(t,e,a){"use strict";a("40a8")},f1ae:function(t,e,a){"use strict";var o=a("86cc"),i=a("4630");t.exports=function(t,e,a){e in t?o.f(t,e,i(0,a)):t[e]=a}},fc11:function(t,e,a){"use strict";function o(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}a.d(e,"a",(function(){return o}))}}]); ================================================ FILE: public/js/chunk-654f0b98.4b5aff3b.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-654f0b98"],{"063d":function(e,t,i){"use strict";i("a844")},2630:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAASCAYAAABSO15qAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkE1N0U5NzQzRTVCMTExRUFCMjVGODlCRjEyRTUwMTEyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkE1N0U5NzQ0RTVCMTExRUFCMjVGODlCRjEyRTUwMTEyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTU3RTk3NDFFNUIxMTFFQUIyNUY4OUJGMTJFNTAxMTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTU3RTk3NDJFNUIxMTFFQUIyNUY4OUJGMTJFNTAxMTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6ZSNkHAAABF0lEQVR42mL4//8/Ax7sBcSvgHgLELNjU8NAwIAV/xHgNhBrEmOAOBDHA/F0IH7yHxX8BeJwfAYUAvG3/4TBNCBmQjeg4T9pQB/ZACsSNZ8BYn5kA+5hUQTy708s4pPRw8AETcFWIA4FYhkg3o4ml46kWR2Ik0CMEiQFiWiBagvEb4D4ARDboMkdBOJzIMYyqGY7NAWGQNwIjTY2NLk0qJ41IM4CqGnICqKRXLUJSZwFiJuR5LpAglpALI2kqAPN36+hCasbiB+iyTkh2yoFxKdIiMpHyNEISlXvSUwLFiC9TAwI8JeBeJAFxCfALCQviEADEx8ApQtjQrlxBpqmH0DsC8SKpJQHeUD8Eog/AfEOfGUGQIABAOmHtnsc9MOfAAAAAElFTkSuQmCC"},2748:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjNGNDk0QjYzRTVCMDExRUFCNzVFOTk3NDg1RjBDMUY5IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjNGNDk0QjY0RTVCMDExRUFCNzVFOTk3NDg1RjBDMUY5Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6M0Y0OTRCNjFFNUIwMTFFQUI3NUU5OTc0ODVGMEMxRjkiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6M0Y0OTRCNjJFNUIwMTFFQUI3NUU5OTc0ODVGMEMxRjkiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz43AAf6AAAEHUlEQVR42sSYeUgVURTGn/oyMy3NCk3cIIqyDQkro9LMNAkKSioIkgLLemBFG7SHEWTRImlBgf2VKQkG7blVBgViZZFQEJlatmhZZmnbd+EMHG7jm5n73qsDv/fu3Jm595u7nnu8Egu+21y0cBALokAICATtoAU0gCfOXq7K9nVauF1R1DyQBKaDeINyhMAqUAvOg99WKrIqcB3IBJMtvBNLOMABUASOgk/uFChaK58qku0teAbegc/UQgFgCIihrtcsGuyhD80B54wq9jIxBnPBdimvFVwCF0Al6HXy/lSwCKSBcdI90eVZGIedKgK9aOzMYnld4DDYD3oUxu4qsA+MYHlvwBSIbNJ7wdtJYQ8kcWXURbsVxQk7AyLBMZYXCp4mFfaEWxFYDSaw6y3UTe9trttPsB7MZ3n+4CFEDjAjME9qOQfludvEGE5m12INvWYkcBrYxK63ghM2z1mlJHIGWtHhTGAxS98EB20eNkyOSlp6NMuHyBg9gVk0gDVbYPtHBpF78feaZe3QE7iNpXeCrxbrCaZl6R4YraBzMUtnohUjuMA0WvVttCPkKlQwFyTS3rxBoRXv4q+ONdxSLjCVPVuu2FN+LN1PsYzTLJ3CBSawGyWKhfPtTtWHOwu6KZ2Mbh7mTf5cPGV+ADds/8nQzULcfdbNKeInjj3zyIXyW1i6w4Vymlk6ys4mh9mCB5H7FcS6tVfafUSPZLCx6AO+gVugzaB8fj/QTn6bZmaWlsvkSTuzOYRswkkNY+NMz7iGYG9yqzQz445HuNB9g03McH6GabdLrrefiUpSya+Tu3gsazVRSQUTY6dWKwWdBhOlGLN3ODkPeeLFV9IXGlkj2KyTn8gElut44VZm83G+1dWze2Nc6L4wlg5y19IjBD6nVtHGV5xiWV59pF0WKKyG5S1RLMvHDeftPgXeZnkZbhDoq1IAJkcK2AiCZIGlFK6w0cK9TKH8Gjojd0mbvllx4kB2nU6N+bLAHp4JO6Ug8AWNYbG331F4/yJLD9VzWHk4QgSATipU0mM2pCG13gr8jZeCBX8J/AhWsuvVIN3THgx1bRHLKsA6WNvXoamMjoP8aJjkQX3RFKLjcZ4co3PxQsmjEKeu2R4QN5K2xACWl4zW+2EkUDwwUfIqKlzZunRsjQh3UERBs3SIe2w29NFGkagOaeA2SOcXqzaJwiqF0mIuxF2xGjwSy8Yo8v80E6Kv0vHSIfmSzjaD5eRA1EuOrfDCE/oSZxR+45YtZpdOfhcdFVvp4N1CLlYIiReBgFjJkdDsCNgFcV+cVWx2zyykVhNjZy3z8waCmRa7uYQ+tsbMw1Y29UYKmx2iQ7Xm//U3eO8X7SzVtFvUWfkaFa+jmUQKQul8EkmhD39yGrppR3kJRMSgSXVW/RFgACb99tu0X8NAAAAAAElFTkSuQmCC"},4917:function(e,t,i){"use strict";var a=i("cb7c"),l=i("9def"),c=i("0390"),n=i("5f1b");i("214f")("match",1,(function(e,t,i,o){return[function(i){var a=e(this),l=void 0==i?void 0:i[t];return void 0!==l?l.call(i,a):new RegExp(i)[t](String(a))},function(e){var t=o(i,e,this);if(t.done)return t.value;var s=a(e),A=String(this);if(!s.global)return n(s,A);var r=s.unicode;s.lastIndex=0;var g,m=[],I=0;while(null!==(g=n(s,A))){var u=String(g[0]);m[I]=u,""===u&&(s.lastIndex=c(A,l(s.lastIndex),r)),I++}return 0===I?null:m}]}))},9434:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAARCAYAAAAyhueAAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkFCMjQzMTBFRTVCMTExRUFBNzYzQUNFNzc0MjdFRkU1IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkFCMjQzMTBGRTVCMTExRUFBNzYzQUNFNzc0MjdFRkU1Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QUIyNDMxMENFNUIxMTFFQUE3NjNBQ0U3NzQyN0VGRTUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QUIyNDMxMERFNUIxMTFFQUE3NjNBQ0U3NzQyN0VGRTUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5lgD01AAABYUlEQVR42mL8//8/Aw6gDMQRQOwGZfMB8Vcgvg/E+4B4FRBfwqoTZCgWPOU/cWA+EHOi60c3jA+Ij2PR/BGIrwPxGyxyt4FYAZ+h19E0nAdiPyDmh8pzAbErEB9EU/cOl6EtaAqn4wgaGK5FU78U3VA5NAWHsQSLLRBLoIlvQdNngWzoJjRJUySNwUD8Fir+HYizkOQU0PRdhhmqjCd8RHHEuhqSmqtocjZMwFSVgpbK7iGxLXCkYU8k9k00uRiQoUfRBEWQ2PdxGHoNiS2KJncO5oW7aF6QQvLeYjS5fUhybED8E0nuGxAzwSS90DT2oMVyGBBXA3E8mngFmr5c9HR6BE2BN4F0agzEf5DUP8CW+IWxxHIT1IvoBhZgUasBk2dEK6WcgXgPWsA/A+LLUBoUKTpArICmJg6IF+MrpayA+BaRpdQTIPYnVErBMDM0EkA55BMWDLK0FYi5sekHCDAA6XHJVeB5ArsAAAAASUVORK5CYII="},a844:function(e,t,i){},a941b:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkUwOTA5NkQzRTVCMTExRUFCMDYwRTdFN0VDMjBBNTFDIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkUwOTA5NkQ0RTVCMTExRUFCMDYwRTdFN0VDMjBBNTFDIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RTA5MDk2RDFFNUIxMTFFQUIwNjBFN0U3RUMyMEE1MUMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RTA5MDk2RDJFNUIxMTFFQUIwNjBFN0U3RUMyMEE1MUMiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5PTFWmAAABD0lEQVR42mL8//8/AzJo6ptjCqQagdgJiNmB+CBIuK4oZR+yOkZkjUBNgUBqHRB/B+JtUNoViMWBOBOoeQaGRqAmDqjCrUAFPmiumAKksoFYAij3EiTGhCSfCSLQNUHFcqDMSpgYskY7IP7CgBvcBWJLbBo/AfFXPBo/AvE3uB8be2frA2k5IC4HYj0gjgKJo2kCBcR0IP4MVfeIBUjUA3EgkqLNDPjBJiDeAHLqewbSwXuQxn9YJP5CXVICxD+xyP9jwWHiWWAUNEHj0AxIhaErwKVRCahBCBrKJtgUMOHQKALSDMRsUJqBWBtBQAKH/+Aa+XHI4YsWfpDGh0D8AhqSKJJQr6BHFzNID0CAAQDZQ0rGPvmXBQAAAABJRU5ErkJggg=="},b4e3:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAEACAYAAACHwJcoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkI1NUE2QTg5RTZBQjExRUFCRDNFQ0M2QTE2NEVDN0EyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkI1NUE2QThBRTZBQjExRUFCRDNFQ0M2QTE2NEVDN0EyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjU1QTZBODdFNkFCMTFFQUJEM0VDQzZBMTY0RUM3QTIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjU1QTZBODhFNkFCMTFFQUJEM0VDQzZBMTY0RUM3QTIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz42+i3YAAAE5UlEQVR42pxaS4sUQQxOyvHB3nwjHkREFL3owYP//yJ4EURQFMWT+ESEEV11Y7X0SG91ku/LNBTLznR15fnlS3p0u902ETkS8ppuPtnXQV/KbpiuTV/n583Uht2mq32dRhts8f+Jvm7MIsITZN48nXSnr1PZhlHh6eb7niHa/KE5Dzvb1132hJ14t/q64G2wQMfpQQ89K2lw87Qu9XUz0kEHkXafP4h0sEC8y31dG/1gICrujZ5WR6yluLen+9sgjgxGWJ56ZhJrNKt34/Lk620woTkiLXW84jkuc+LF0UqaZN70/bmWKOldB414+tIg/80aWWcVZy0woTg32zL4vIDTLEVt8IdnAK1EK3WCetZqSQyZp1MjHXbsBAsc5ZlavHzQYVkElZrIv9Ih0mN1UnRCFIAr9PZsb5FIkYU0c5yyoZGG9CjSKKchT2cnKBKJqtOaJL0wJ2gSHmG0KopWHbDJAuhf1QcLsm4FMxE2aQRkSqK3a9Zos0VQaZlfWlLfQh2gGF7wZYoaiqXI6y5qKBPeRlho5ekIsRXBvSQnuDoYQpEWKBsSlUaIUfKDRH6whA2YF61RarqehiGdwUwJKo0oLOJRuPQ0xGYgCFjygH/foyq6OqUFyR+K2MBNVA+Uco8GSq1EoSEAwd0TLFHezQclzGoNVP6VPlkVTRMoIySKCopkaIiYwJi+1sjksTH4UoiPRFo6zqKTEUlcWQs5zvWDCDfT0Cq2hgUlbQI9GqoI7i0rUaigZBglEZBJAp9lqLRWgZgo+Ch2z6CeeiBgKJlakL9pLAkZgOb1DwY8bw2QwlXdQ+1x2OIboYvLyLIQSXPaMqKroFOEfRz0gxTCAwYf1ccpKlmChh9Li1WgUiKybhXko8k6M+cTFu41mwlk9c5QLIWcrzKFS2fGgmgoappcs0IOzkIlXXbDQbkGFWfVvTeH62WbtBFZBlv8corCgZRWrcSmJ92xp9EKq1EjSJUyGxTVB6sQXRYEymbVyhBBs4JiwWeh4xRNTiL6DOcayjZ+LIiZN5uhC4oSDP8Ym7EKI0NDBMtAgGot2XxWtMF95Vad6CoqKHDITM2MM8cZavwo5GPnfMLqYJW2TDyCpcC7mnUoVCzZvmZFnI8eDArDvSG7Z7pdjRpwyPmEZPcWjYtgfWATSLOJLl3YaU9bNUXLoaEVT5vwL7Shp2WfCRZFHSTrFLMqatUqWs44mA/KFPZsGrqaF7RggAaHm0yLv6oPBpgxjd5pfaAaP4TeKZU2BgSkkqYjaiiLrQLAjEJvRZzPHaJF41NmbKd7e5oC4X16oHLZpUfAgmZk1Ewgiyc4bzWEfJIQXWP4EvSDSvGVOSpTJSYQihQpqbLHL3Nga6kskKEksij4sp9VUQUFvk5QVBTZsqtRxmVKW4tGKhFpZMbYoQ6oPVYGNRT109Q0lJ1prH5dRL/mrAyktAKVhoBMMzC2KBQYgqXohGx6NT7oqDLnm/5+bxGcBPnwZWQzyHkfG5j8jBHwbiS6HmIsH/bGI7oRKPzo621jInS+nntmzWrckwp1eD+Jw4ztdtfjDPnG60NfLzO+NMr/CGHrcuOLvj4x/cO08Wtfz8YvNoGSh309FecX/96G33296uun96TNIPufvl7PYSDZhkmPX319nv9KtsHmm74xvGkzy3zIEqy/AgwAbEf1HHi8x5sAAAAASUVORK5CYII="},b56e:function(e,t,i){"use strict";i.r(t);var a=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"container"},[a("div",{staticClass:"page-head"},[e._v("我的文档管理")]),a("div",{staticClass:"container-box"},[a("div",{staticClass:"search-box"},[a("div",{staticClass:"search-box-input"},[a("el-input",{staticClass:"demo-input-suffix",attrs:{placeholder:"请输入文档名称",clearable:""},nativeOn:{keyup:function(t){return!t.type.indexOf("key")&&e._k(t.keyCode,"enter",13,t.key,"Enter")?null:e.searchProject(t)}},model:{value:e.listQuery.keyword,callback:function(t){e.$set(e.listQuery,"keyword",t)},expression:"listQuery.keyword"}},[a("i",{staticClass:"el-input__icon el-icon-search",attrs:{slot:"suffix"},on:{click:e.searchProject},slot:"suffix"})]),a("el-select",{on:{change:e.getAllProject},model:{value:e.listQuery.is_public,callback:function(t){e.$set(e.listQuery,"is_public",t)},expression:"listQuery.is_public"}},[a("el-option",{attrs:{label:"全部",value:""}}),a("el-option",{attrs:{label:"公有",value:"1"}}),a("el-option",{attrs:{label:"私有",value:"2"}})],1),a("el-select",{on:{change:e.getAllProject},model:{value:e.listQuery.role,callback:function(t){e.$set(e.listQuery,"role",t)},expression:"listQuery.role"}},[a("el-option",{attrs:{label:"全部",value:""}}),a("el-option",{attrs:{label:"我创建的",value:"1"}}),a("el-option",{attrs:{label:"我操作的",value:"2"}})],1)],1)]),a("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"card-box"},[a("div",{staticClass:"card-warpper"},[e._l(e.docList,(function(t,l){return a("div",{key:l,staticClass:"w7-card",class:{"has-cover":t.cover},style:{backgroundImage:"url("+t.cover+")"},on:{click:function(i){return e.goChapter(t)}}},[a("img",{staticClass:"mask-icon",attrs:{src:i("ffc0")}}),t.cover?a("div",{staticClass:"mask"}):e._e(),a("div",{staticClass:"mask-content"},[a("div",{staticClass:"w7-card-title has-cover"},[e._v("\n "+e._s(t.name)+"\n ")]),a("div",{staticClass:"time-wrap"},[t.is_public?e._e():a("img",{attrs:{src:i("a941b")}}),a("div",{staticClass:"w7-card-time"},[e._v("\n "+e._s(e.format(t.operator.time))+" "+e._s(t.operator.name)+"\n ")])]),a("div",{staticClass:"icon-box"},[t.acl.has_manage?a("el-tooltip",{attrs:{effect:"dark",content:"转让项目",placement:"bottom"}},[a("img",{attrs:{src:i("2630")},on:{click:function(i){return i.stopPropagation(),e.transferDoc(t.id)}}})]):e._e(),a("el-tooltip",{attrs:{effect:"dark",content:"预览",placement:"bottom"}},[a("img",{attrs:{src:i("9434")},on:{click:function(i){return i.stopPropagation(),e.readDoc(t)}}})]),t.acl.has_manage?a("el-tooltip",{attrs:{effect:"dark",content:"进入管理",placement:"bottom"}},[a("img",{attrs:{src:i("d47d")},on:{click:function(i){return i.stopPropagation(),e.settingDoc(t.id)}}})]):e._e()],1),a("div",{staticClass:"line"})])])})),a("div",{staticClass:"w7-card add-project",on:{click:e.dialogDocShow}},[a("img",{staticClass:"mask-icon",attrs:{src:i("b4e3")}}),a("img",{attrs:{src:i("2748")}}),a("div",{staticClass:"add-text"},[e._v("新建项目")])])],2)]),a("div",{staticClass:"pagination-wrap"},[a("el-pagination",{attrs:{background:"","hide-on-single-page":e.total<=11,"current-page":e.listQuery.page,"page-sizes":[11,23,35],"page-size":e.listQuery.page_size,layout:e.paginationLayouts,total:e.total},on:{"update:currentPage":function(t){return e.$set(e.listQuery,"page",t)},"update:current-page":function(t){return e.$set(e.listQuery,"page",t)},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1),a("el-dialog",{staticClass:"w7-dialog",attrs:{title:"创建项目",visible:e.dialogDocInfoVisible,"close-on-click-modal":!1,center:""},on:{"update:visible":function(t){e.dialogDocInfoVisible=t}}},[a("el-form",{attrs:{"label-width":"105px","label-position":"left"}},[a("el-form-item",{attrs:{label:"项目名称"}},[a("el-input",{attrs:{autocomplete:"off"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}})],1),a("el-radio-group",{staticClass:"ownership",model:{value:e.radio,callback:function(t){e.radio=t},expression:"radio"}},[a("el-radio",{attrs:{label:"1"},model:{value:e.radio,callback:function(t){e.radio=t},expression:"radio"}},[e._v("公开项目")]),a("el-radio",{attrs:{label:"2"},model:{value:e.radio,callback:function(t){e.radio=t},expression:"radio"}},[e._v("私有项目")])],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:e.createDoc}},[e._v("确 定")]),a("el-button",{on:{click:function(t){e.dialogDocInfoVisible=!1}}},[e._v("取 消")])],1)],1),a("el-dialog",{staticClass:"w7-dialog",attrs:{title:"管理员转让",visible:e.dialogTransferDoc,center:""},on:{"update:visible":function(t){e.dialogTransferDoc=t}}},[a("div",{staticClass:"transfer-tip"},[a("i",{staticClass:"el-icon-warning"}),e._v("转让管理员权限后您将成为操作员,不再是管理员,请谨慎操作。\n ")]),a("el-form",{attrs:{"label-width":"115px","label-position":"left"}},[a("el-form-item",{attrs:{label:"选择新的管理员"}},[a("el-input",{attrs:{autocomplete:"off"},model:{value:e.transferUsername,callback:function(t){e.transferUsername=t},expression:"transferUsername"}})],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{attrs:{type:"primary"},on:{click:e.transfer}},[e._v("确 定")]),a("el-button",{on:{click:function(t){e.dialogTransferDoc=!1}}},[e._v("取 消")])],1)],1)],1),a("el-dialog",{staticClass:"we7-dialog dialog-setting",attrs:{title:"项目设置",width:"1000px",visible:e.showSetting,"before-close":e.handleClose},on:{"update:visible":function(t){e.showSetting=t}}},[a("setting",{attrs:{id:e.settingDocId}})],1)],1)},l=[],c=(i("ac6a"),i("7f7f"),i("fa7d")),n=i("4ec3"),o=i("49f7"),s={name:"documentIndex",components:{setting:o["a"]},data:function(){return{listQuery:{page:1,page_size:11,keyword:"",role:"",is_public:""},radio:"1",loading:!1,docList:[],currentPage:0,page_size:19,pageCount:0,total:0,name:"",dialogDocInfoVisible:!1,actClass:"actClass",dialogTransferDoc:!1,transferUsername:"",selectDocId:"",showSetting:!1,settingDocId:""}},computed:{paginationLayouts:function(){return this.total&&this.total/this.listQuery.page_size>1?"total, sizes, prev, pager, next, jumper":"total, sizes"}},watch:{$route:function(e,t){"chapter"==t.name&&this.getAllProject()}},created:function(){this.getAllProject()},methods:{dialogDocShow:function(){this.dialogDocInfoVisible=!0,this.name=""},getAllProject:function(){var e=this;this.loading=!0,Object(n["i"])(this.listQuery).then((function(t){200==t.code&&(e.docList=t.data.data,e.pageCount=t.data.page_count,e.total=t.data.total,e.loading=!1)})).catch((function(t){e.loading=!1}))},createDoc:function(){var e=this;Object(n["d"])({name:this.name,is_public:this.radio}).then((function(t){e.$message("创建成功!"),e.dialogDocInfoVisible=!1,e.getAllProject()}))},removeDoc:function(e){var t=this;this.$confirm("确定删除该文档吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){t.$post("/admin/document/delete",{id:e}).then((function(){t.getAllProject(),t.$message("删除成功!")}))}))},updateDoc:function(e,t){var i=this;this.$post("/admin/document/update",{id:e,is_show:1==t?2:1}).then((function(){i.docList.forEach((function(i){i.id!=e||(i.is_show=1==t?2:1)}))}))},readDoc:function(e){var t=this.$router.resolve({path:"/chapter/"+e.id});localStorage.projectName=e.name,window.open(t.href,"_blank")},settingDoc:function(e){this.settingDocId=e,this.showSetting=!0},transferDoc:function(e){this.selectDocId=e,this.transferUsername="",this.dialogTransferDoc=!0},transfer:function(){var e=this;this.$post("/admin/document/change-founder",{document_id:this.selectDocId,username:this.transferUsername}).then((function(){e.getAllProject(),e.$message("转让成功!"),e.dialogTransferDoc=!1}))},goChapter:function(e,t){var i={name:"chapter",params:{id:e.id}};t&&(i["query"]={type:"add",documentType:1}),localStorage.projectName=e.name,this.$router.push(i)},format:function(e){if(e){var t=Object(c["a"])(e);return t.length>8?Object(c["a"])(e).slice(5):Object(c["a"])(e)}},handleClose:function(){this.getAllProject(),this.showSetting=!1},handleSizeChange:function(e){this.listQuery.page_size=e,this.getAllProject()},handleCurrentChange:function(e){this.listQuery.page=e,this.getAllProject()},searchProject:function(){this.listQuery.page=1,this.getAllProject()}}},A=s,r=(i("063d"),i("2877")),g=Object(r["a"])(A,a,l,!1,null,"749b2369",null);t["default"]=g.exports},d47d:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkVEMUMwNTY1RTZBNzExRUFCNzYzQURDRDA3MkUyNjJCIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkVEMUMwNTY2RTZBNzExRUFCNzYzQURDRDA3MkUyNjJCIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RUQxQzA1NjNFNkE3MTFFQUI3NjNBRENEMDcyRTI2MkIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUQxQzA1NjRFNkE3MTFFQUI3NjNBRENEMDcyRTI2MkIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz460mJ5AAABXElEQVR42pzUzysEYRzH8RlGYqPWAflxsZxdlPuenTgpOSoOjq4O4qD8DQ5Szrg4OEhSDpSDJAeRHEQiJu2ax/ub7+jbmrGz+9SrfXafmc/M832eZ33n3L3neW1oRINXvX0hwjam4h8D9Hj1tS77RYJCtGABpxkC5jCOz8qgeDp7OM8QVNTPO3RgUUIlyJmLRjCGQ5xhviJkDR/af0D37zUUO3Q/LYdV7e9g2P1tA5jU/jIK2g8D87R+nZ4UcVefuAFfx+XNn9GXNF8b1It9HKCsv00n3JO4ynbfXGAGJaygoG9hSU0uqwVJQLv282hKmUGp2tSGsI4j3OIRo2ZVfa3bYFpQXMwXPOHYjJ8k3FNOC5KBZizhRs/cf+esmBaU0/5EjWet09ZLgjbRqnV5zxgib72F17h+gfkryOvZydpkhWe1H/ls73jgWvdOXc0u/5Xu7lpapAvw9i3AANvWh5SKpYAJAAAAAElFTkSuQmCC"},fa7d:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",(function(){return timestampFormat}));var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("a481"),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("6b54"),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__),core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("4917"),core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("28a5"),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("3b2b"),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4__);function getUrlParam(e,t){var i=new RegExp("(^|&)"+t+"=([^&]*)(&|$)");if(e&&e.split("?")[1]){var a=e.split("?")[1].match(i);return null!=a?unescape(a[2]):null}}function replaceParamVal(url,paramName,replaceVal){var oUrl=url.toString(),re=eval("/("+paramName+"=)([^&]*)/gi"),nUrl=oUrl.replace(re,paramName+"="+replaceVal);return nUrl}function timestampFormat(e){var t=Date.parse(e)/1e3;function i(e){return(1==String(e).length?"0":"")+e}var a=parseInt((new Date).getTime()/1e3),l=a-t,c=new Date(1e3*a),n=new Date(1e3*t),o=n.getFullYear(),s=n.getMonth()+1,A=n.getDate(),r=n.getHours(),g=n.getMinutes();if(l<60)return"刚刚";if(l<3600)return Math.floor(l/60)+"分钟前";if(c.getFullYear()==o&&c.getMonth()+1==s&&c.getDate()==A)return"今天"+i(r)+":"+i(g);var m=new Date(1e3*(a-86400));return m.getFullYear()==o&&m.getMonth()+1==s&&m.getDate()==A?"昨天"+i(r)+":"+i(g):o+"年"+i(s)+"月"+i(A)+"日 "+i(r)+":"+i(g)}},ffc0:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAEACAYAAACHwJcoAAAACXBIWXMAAAsTAAALEwEAmpwYAAAF7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTggKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyMC0wOC0yNVQxMDo0MjowNiswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjAtMDgtMjVUMTY6MjA6NTErMDg6MDAiIHhtcDpNZXRhZGF0YURhdGU9IjIwMjAtMDgtMjVUMTY6MjA6NTErMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6YTNjNWNmOWYtMDE1Zi1mYTRiLThkMzMtMzAxMzVjY2JjNjgxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjkwQjA2NkI2RTY3QzExRUFBRkQ1QzRCRDY0QjMyRTQxIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6OTBCMDY2QjZFNjdDMTFFQUFGRDVDNEJENjRCMzJFNDEiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5MEIwNjZCM0U2N0MxMUVBQUZENUM0QkQ2NEIzMkU0MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5MEIwNjZCNEU2N0MxMUVBQUZENUM0QkQ2NEIzMkU0MSIvPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJzYXZlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDphM2M1Y2Y5Zi0wMTVmLWZhNGItOGQzMy0zMDEzNWNjYmM2ODEiIHN0RXZ0OndoZW49IjIwMjAtMDgtMjVUMTY6MjA6NTErMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE4IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6rCmcHAAAG30lEQVRogZ2aO48cRRDHfz23tz6fjaU7DDaywEIG8ZIQBASACPgCZAQI8RmQCEDiA5DBByCyREbkgJQAiQAJEAFyYGFjGcTLcDY6c4+925sm2Jm56uqq7lmXtLfzqqp/Pbum98Lv27EBWkZSA6wC60AYywAwAR7smEcx9EwXgBM1hijOV4BLHcSqBjrmCfAsMC0xaIOnwIvGdZruYtQ3gA3gubEaenhPAWctBktDL+hlzRAdDaH7PAw8KRmkDZIxiusveTbIhySdAy5KhpIdPb0gbZBaJCwJ92mgaUjh9N/6GsAacFG71XpQan5cGt2r15B6isAjVuBKQXxIe6nXZFEENnWka65dl5A86dIhg1s972R5pktUe0Wf0xgXrURMNGicngOCZKhl6ygNGlKUDBaMiGFTraZNDfph09ierHoI6hM1gyVJ4x/u12o60+Rp0DQI093b8r3pVg9Wlio6cF4nH8jSkKW0hqRxehoyL1kazBVoKdIVN6i2pHsadDFluWRlq2uHbDORPEMzRr0+aAjyPGkzXm/KuqG1ipa6t+lWj9msaSs1il3DcmlmQxWGhqRvSDK7Rq2Wk9ZZW+PM9C4Vj2lDqWO7BVQsS8msbbAGFbMetLHuoGJVXDFVanHQ8BKjvWkgK6BSaZqRrqa0tkHjHd0qiw1Ma7AWQFNbbZpJ4E6axYDlTTOJgBBYWV1ZjHCexOTa2oTzASZ6hNMUAKYrbEwaNnsbzIcElMnahCe641DrGpye8kwTONmfW+1+yKe1CedWGy7J69pLQwdvApNTU17r7oZgtHuZsZxZ49UQ2CBNvkTDoGl9lQvThle6iwFRBpkNTaA5PeVtFq+ZC4HBt4GNk7wRAo92uDWFRMOZEzy22vCm8FQQBqcLShNo1ld5n9C9tAbxt/sOHAeOs+u8FQLPS4+o4+MmsHmSCysN72ko4hM7gxYaphM+AU5pacY5zfnTvBPgdekJ/ZCwNYQY4xbwALAH7ETYjZHdCHsxst9GDtrIvI20R+2Cc9OSZGgZHpBQhuOQXh8+E8ONUkuiMQR7quxPhmBp6yVZbk0gaxvkRzsAzwaLkorTkPpvS0PWW+VNa4HMGBLpITc+WEZ70S7akMIMQ+WNGKVDIqSxcskromLg5DnBMVpq8QTFjCEYGoSoTEMGLSg7SsmXaOgPJuRkx6ISuKY7S+GFVINOb7Ma7YrTvhHCPA1WAAsafJhmXyqmeSkOQ9BE2zEjjXgo0z6ugI61ubOGmeYlDSaTVaIl6aaGkh3VrtGICy6Dp6EIyXpwEOQZ7Xa/WiM77nxOE9C5oxnHb7V4qWEFLrlZyqWhpkPBaEuy28gsygqsZEPnyHIuWcwDzVu2xqRGAEKMHO4ccH10eu/PudpGDqy3Xdn9Qgflt91DfpE2WM0rdKIO7834ur9ZsyHsz/lq3vIfxntcxtRGbm7P+F5e9FMjcnBvxuf6pqvhoOXK/pw/lSBbQxu5cXePL9AOcBiOdg/5OEaOuvNkryxjmLdcvjfjunjYX7Ii3Li7x6catyTJ0M7mfDhvOTBg5gxt5PLdPb4rPJvY8Ov2Ph+VHkw0HLW8uzdnx8JManRsgM9u7/ClJc3QFJrZnA+UtOLGeXNnjy2h1nuvTm1waFT3tqBIxmyEq9HwLrrUzwlLkTlEaakWg3nTELDUPl+mwSPzFw5vBzRjtrYpUOfFhX1ULmWFXoI3ZtnNGIoQNLO1meORu7PuHSf14Lk2i35pIjO1WdtFmhIhyxRQ4iVrZLMgLmVDwjA2FvefGmPSI3HrmAIaFelMQK2m3c3+Eows0n3gkv1tC46E5JXp0hVXrQdtT7FVJruh6tpwbL1a5vOfOLfcOmpR9GKRVeF9rUC1Tf5sXqp1bwnP/HnNo2xhH1WmumtU00Tb4DWzBFLxAQuS9b4wQNDftTZT/LVsFI1hSCDWWqVbQGOWXTOXqmS1yipDlpEFWOZPU6WaztpMqWskDNU6QGVrzY6B0crWpdaH0tI7qoCk15JsHWO0CcmDlTDUhtus4mrNqxhpKzWKuWSlRkLLLLvZvGRCIDU6yjh4bd+cvWX4qwt7D8NrBImmWtcoTgJWMzCnmRJly5lsMxb2TGOtkWU2LdMq3YqT0t1mbAXLbKGlenA1aPIW+QC0Y8ZQKWDXGn+8VTUAd/Q0Uwve37rirHqWQv7Qg67VMaSwm9ag6zWFfeDWmK3Hnq5huLW0xv0A40eHv4BbPUPWewz6tj+wOp+m28BPkqH2OvONvOBp6BmvAf9oBi8d/gWu6hvWz2sAB8CPGP/xbzHMgevAzJLUM/TYj4CfWaSBSfLn5kNgq/t2adJJPwS2seOQMcyhvKEp6X9Sc/wlboLoXgAAAABJRU5ErkJggg=="}}]); ================================================ FILE: public/js/chunk-65eafec3.92b978b7.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-65eafec3"],{"02f4":function(e,t,r){var n=r("4588"),i=r("be13");e.exports=function(e){return function(t,r){var a,s,c=String(i(t)),o=n(r),_=c.length;return o<0||o>=_?e?"":void 0:(a=c.charCodeAt(o),a<55296||a>56319||o+1===_||(s=c.charCodeAt(o+1))<56320||s>57343?e?c.charAt(o):a:e?c.slice(o,o+2):s-56320+(a-55296<<10)+65536)}}},"0390":function(e,t,r){"use strict";var n=r("02f4")(!0);e.exports=function(e,t,r){return t+(r?n(e,t).length:1)}},"07ed":function(module,__webpack_exports__,__webpack_require__){"use strict";var core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("8e6e"),core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es7_object_get_own_property_descriptors__WEBPACK_IMPORTED_MODULE_0__),core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("456d"),core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_1__),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("28a5"),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("a481"),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("ac6a"),core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_4__),core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_5__=__webpack_require__("7f7f"),core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_5___default=__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_5__),C_Users_Administrator_Desktop_ued_document_node_modules_vue_babel_preset_app_node_modules_babel_runtime_helpers_esm_defineProperty__WEBPACK_IMPORTED_MODULE_6__=__webpack_require__("fc11"),vuex__WEBPACK_IMPORTED_MODULE_7__=__webpack_require__("2f62"),_api_api__WEBPACK_IMPORTED_MODULE_8__=__webpack_require__("4ec3");function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread(e){for(var t=1;t1?"total, sizes, prev, pager, next, jumper":"total, sizes"}}),watch:{},created:function(){this.init()},mounted:function(){},methods:{init:function(){var e=this;this.listQuery.document_id=this.$route.query.id,this.document_id=this.$route.query.id,this.listQuery.keywords=this.$route.query.keywords,Object(_api_api__WEBPACK_IMPORTED_MODULE_8__["j"])({document_id:this.listQuery.document_id}).then((function(t){e.document_name=t.data.name,e.getChapters()})),this.getSearchResults()},getSearchResults:function getSearchResults(){var _this2=this,keywords=this.listQuery.keywords.toLowerCase(),id=this.listQuery.document_id;this.$router.push({query:{id:id,keywords:keywords}}),Object(_api_api__WEBPACK_IMPORTED_MODULE_8__["n"])(this.listQuery).then((function(res){_this2.total=res.data.total,_this2.list=res.data.data,_this2.list.length&&_this2.list.forEach((function(item){var reg="/"+keywords+"/gi";if(item.content){item.content=item.content.replace(/[\-\_\,\!\|\~\`\(\)\#\$\%\^\&\*\{\}\:\;\"\<\>\?]/g,""),item.content=item.content.replace(/^[A-Za-z]+$/g,(function(e){return e.toLowerCase()})),item.content=item.content.replace(/(cdn\.w7\.cc)(.|\/)+\.(jpg|png|jpeg)/g,""),item.content=item.content.replace(/(http)(.|\/)+\.(jpg|png|jpeg)/g,""),item.content=item.content.replace(/\.(jpg|png|jpeg)/g,"");var hasKeywords=item.content.indexOf(keywords);item.content=-1!=hasKeywords?item.content.substr(item.content.indexOf(keywords),400)+"...":item.content.substr(0,400)+"...",item.content=item.content.replace(eval(reg),''.concat(keywords,""))}item.name&&(item.name=item.name.replace(eval(reg),''.concat(keywords,""))),item.navigation&&(item.navigation=item.navigation.split(">"))}))})).catch((function(e){}))},getChapters:function(){var e=this;this.$post("/document/chapter/list",{document_id:this.document_id}).then((function(t){t.data.length&&(t.data.forEach((function(e){e.is_dir&&0==e.children.length?e.children.push({is_dir:!1}):e.children.forEach((function(e){e.is_dir&&0==e.children.length&&e.children.push({is_dir:!1})}))})),e.chapters=t.data,e.$nextTick((function(){if(e.$route.query.id){e.selectChapterId=e.$route.query.id;var r="",n=function e(t,n){t.forEach((function(t){t.children.length||e(t.children),t.id!=n||(r=t.name)}))};n(e.chapters,e.selectChapterId),e.selectNode(e.selectChapterId),document.title=r?r+" — "+e.document_name:e.document_name}else t.data.length&&(e.selectNode(t.data[0].id),e.handleNodeClick(t.data[0]))})))}))},goDefaultChaper:function(e,t){for(var r=0;r'+e[n]+"":r+=e[n];return r},htmlToWord:function(e){var t=e.replace(/<(style|script|iframe)[^>]*?>[\s\S]+?<\/\1\s*>/gi,"").replace(/<[^>]+?>/g,"").replace(/\s+/g," ").replace(/ /g," ").replace(/>/g," ");return t},getShareKey:function(){var e=this;this.$post("/admin/share/url",{chapter_id:this.$route.query.id,document_id:this.$route.params.id}).then((function(t){e.shareUrl=t.data}))},operStar:function(){var e=this,t=this.articleContent.star_id?"/admin/star/delete":"/admin/star/add",r={document_id:this.$route.params.id};this.articleContent.star_id?r["id"]=this.articleContent.star_id:r["chapter_id"]=this.$route.query.id,this.$post(t,r).then((function(t){e.articleContent.star_id=t.data.star_id||""}))},goViewChapter:function(e){this.$router.push({path:"/chapter/"+this.document_id,query:{id:e.chapter_id}})},handleSizeChange:function(e){this.listQuery.page_size=e,this.getSearchResults()},handleCurrentChange:function(e){this.listQuery.page=e,this.getSearchResults()}}}},"0bfb":function(e,t,r){"use strict";var n=r("cb7c");e.exports=function(){var e=n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"11e9":function(e,t,r){var n=r("52a7"),i=r("4630"),a=r("6821"),s=r("6a99"),c=r("69a8"),o=r("c69a"),_=Object.getOwnPropertyDescriptor;t.f=r("9e1e")?_:function(e,t){if(e=a(e),t=s(t,!0),o)try{return _(e,t)}catch(r){}if(c(e,t))return i(!n.f.call(e,t),e[t])}},"214f":function(e,t,r){"use strict";r("b0c5");var n=r("2aba"),i=r("32e9"),a=r("79e5"),s=r("be13"),c=r("2b4c"),o=r("520a"),_=c("species"),u=!a((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),l=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r="ab".split(e);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();e.exports=function(e,t,r){var d=c(e),p=!a((function(){var t={};return t[d]=function(){return 7},7!=""[e](t)})),h=p?!a((function(){var t=!1,r=/a/;return r.exec=function(){return t=!0,null},"split"===e&&(r.constructor={},r.constructor[_]=function(){return r}),r[d](""),!t})):void 0;if(!p||!h||"replace"===e&&!u||"split"===e&&!l){var f=/./[d],g=r(s,d,""[e],(function(e,t,r,n,i){return t.exec===o?p&&!i?{done:!0,value:f.call(t,r,n)}:{done:!0,value:e.call(r,t,n)}:{done:!1}})),v=g[0],m=g[1];n(String.prototype,e,v),i(RegExp.prototype,d,2==t?function(e,t){return m.call(e,this,t)}:function(e){return m.call(e,this)})}}},"28a5":function(e,t,r){"use strict";var n=r("aae3"),i=r("cb7c"),a=r("ebd6"),s=r("0390"),c=r("9def"),o=r("5f1b"),_=r("520a"),u=r("79e5"),l=Math.min,d=[].push,p="split",h="length",f="lastIndex",g=4294967295,v=!u((function(){RegExp(g,"y")}));r("214f")("split",2,(function(e,t,r,u){var m;return m="c"=="abbc"[p](/(b)*/)[1]||4!="test"[p](/(?:)/,-1)[h]||2!="ab"[p](/(?:ab)*/)[h]||4!="."[p](/(.?)(.?)/)[h]||"."[p](/()()/)[h]>1||""[p](/.?/)[h]?function(e,t){var i=String(this);if(void 0===e&&0===t)return[];if(!n(e))return r.call(i,e,t);var a,s,c,o=[],u=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),l=0,p=void 0===t?g:t>>>0,v=new RegExp(e.source,u+"g");while(a=_.call(v,i)){if(s=v[f],s>l&&(o.push(i.slice(l,a.index)),a[h]>1&&a.index=p))break;v[f]===a.index&&v[f]++}return l===i[h]?!c&&v.test("")||o.push(""):o.push(i.slice(l)),o[h]>p?o.slice(0,p):o}:"0"[p](void 0,0)[h]?function(e,t){return void 0===e&&0===t?[]:r.call(this,e,t)}:r,[function(r,n){var i=e(this),a=void 0==r?void 0:r[t];return void 0!==a?a.call(r,i,n):m.call(String(i),r,n)},function(e,t){var n=u(m,e,this,t,m!==r);if(n.done)return n.value;var _=i(e),d=String(this),p=a(_,RegExp),h=_.unicode,f=(_.ignoreCase?"i":"")+(_.multiline?"m":"")+(_.unicode?"u":"")+(v?"y":"g"),y=new p(v?_:"^(?:"+_.source+")",f),b=void 0===t?g:t>>>0;if(0===b)return[];if(0===d.length)return null===o(y,d)?[d]:[];var E=0,w=0,C=[];while(w1&&a.call(s[0],r,(function(){for(u=1;u")]):e._e()]}))],2)])})),0)],1),r("div",{staticClass:"pagination-wrap"},[r("el-pagination",{attrs:{background:"","hide-on-single-page":e.total<=10,"current-page":e.listQuery.page,"page-sizes":[10,20,30],"page-size":e.listQuery.page_size,layout:e.paginationLayouts,total:e.total},on:{"update:currentPage":function(t){return e.$set(e.listQuery,"page",t)},"update:current-page":function(t){return e.$set(e.listQuery,"page",t)},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1)])])],1)],1),r("el-backtop",{attrs:{bottom:100}},[r("div",{staticClass:"w7-top"},[r("i",{staticClass:"el-icon-arrow-up"}),r("p",[e._v("TOP")])])])],1)])},i=[],a=r("07ed"),s=a["a"],c=(r("6103"),r("39ca"),r("2877")),o=Object(c["a"])(s,n,i,!1,null,"731e09c6",null);t["default"]=o.exports},"731d":function(e,t,r){},"8e6e":function(e,t,r){var n=r("5ca1"),i=r("990b"),a=r("6821"),s=r("11e9"),c=r("f1ae");n(n.S,"Object",{getOwnPropertyDescriptors:function(e){var t,r,n=a(e),o=s.f,_=i(n),u={},l=0;while(_.length>l)r=o(n,t=_[l++]),void 0!==r&&c(u,t,r);return u}})},9093:function(e,t,r){var n=r("ce10"),i=r("e11e").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},"990b":function(e,t,r){var n=r("9093"),i=r("2621"),a=r("cb7c"),s=r("7726").Reflect;e.exports=s&&s.ownKeys||function(e){var t=n.f(a(e)),r=i.f;return r?t.concat(r(e)):t}},a481:function(e,t,r){"use strict";var n=r("cb7c"),i=r("4bf8"),a=r("9def"),s=r("4588"),c=r("0390"),o=r("5f1b"),_=Math.max,u=Math.min,l=Math.floor,d=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g,h=function(e){return void 0===e?e:String(e)};r("214f")("replace",2,(function(e,t,r,f){return[function(n,i){var a=e(this),s=void 0==n?void 0:n[t];return void 0!==s?s.call(n,a,i):r.call(String(a),n,i)},function(e,t){var i=f(r,e,this,t);if(i.done)return i.value;var l=n(e),d=String(this),p="function"===typeof t;p||(t=String(t));var v=l.global;if(v){var m=l.unicode;l.lastIndex=0}var y=[];while(1){var b=o(l,d);if(null===b)break;if(y.push(b),!v)break;var E=String(b[0]);""===E&&(l.lastIndex=c(d,a(l.lastIndex),m))}for(var w="",C=0,O=0;O=C&&(w+=d.slice(C,k)+R,C=k+x.length)}return w+d.slice(C)}];function g(e,t,n,a,s,c){var o=n+e.length,_=a.length,u=p;return void 0!==s&&(s=i(s),u=d),r.call(c,u,(function(r,i){var c;switch(i.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(o);case"<":c=s[i.slice(1,-1)];break;default:var u=+i;if(0===u)return r;if(u>_){var d=l(u/10);return 0===d?r:d<=_?void 0===a[d-1]?i.charAt(1):a[d-1]+i.charAt(1):r}c=a[u-1]}return void 0===c?"":c}))}}))},aae3:function(e,t,r){var n=r("d3f4"),i=r("2d95"),a=r("2b4c")("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[a])?!!t:"RegExp"==i(e))}},b0c5:function(e,t,r){"use strict";var n=r("520a");r("5ca1")({target:"RegExp",proto:!0,forced:n!==/./.exec},{exec:n})},d8f8:function(e,t,r){},f1ae:function(e,t,r){"use strict";var n=r("86cc"),i=r("4630");e.exports=function(e,t,r){t in e?n.f(e,t,i(0,r)):e[t]=r}},fc11:function(e,t,r){"use strict";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,"a",(function(){return n}))}}]); ================================================ FILE: public/js/chunk-6a2c3c1a.5e3ea521.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-6a2c3c1a"],{"11e9":function(t,e,n){var a=n("52a7"),i=n("4630"),r=n("6821"),c=n("6a99"),o=n("69a8"),s=n("c69a"),u=Object.getOwnPropertyDescriptor;e.f=n("9e1e")?u:function(t,e){if(t=r(t),e=c(e,!0),s)try{return u(t,e)}catch(n){}if(o(t,e))return i(!a.f.call(t,e),t[e])}},"12bc":function(t,e,n){},"2fdb":function(t,e,n){"use strict";var a=n("5ca1"),i=n("d2c8"),r="includes";a(a.P+a.F*n("5147")(r),"String",{includes:function(t){return!!~i(this,t,r).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},3191:function(t,e,n){"use strict";n.d(e,"b",(function(){return i})),n.d(e,"d",(function(){return r})),n.d(e,"a",(function(){return c})),n.d(e,"c",(function(){return o}));var a=n("1c1e"),i=function(t){return Object(a["a"])({url:"/document/home",params:t,method:"get"})},r=function(t){return Object(a["a"])({url:"/document/home/search",data:t,method:"post"})},c=function(t){return Object(a["a"])({url:"/document/home/check",data:t,method:"get"})},o=function(t){return Object(a["a"])({url:"/document/home/search-hot",data:t,method:"get"})}},5147:function(t,e,n){var a=n("2b4c")("match");t.exports=function(t){var e=/./;try{"/./"[t](e)}catch(n){try{return e[a]=!1,!"/./"[t](e)}catch(i){}}return!0}},6141:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAAAhCAYAAABHhIyzAAAK1ElEQVRoge2ae3AVRRaHDzEoymOxKBVh3QVREO/MJBiSO6dniFceSmRBpIzGVW53AgYChQaQpwpXQYIbKoEsYmKQRygIRlRYXgYfWV8LahDxUaiLha/Cx2Khlg+Qld/+kZ7L5O5NyF1Xo7ueqlO3pqfndJ9vuvuc7rlECYqlMNSSeMqU+M5UKE/0+V9FizUa7S2FtaYE/BqYgA6t3bdfnPTJQ0dT4m+xMC2Fv7R23372YlyPc4w89I8WRJBkSmyLgbnTlMj0quTMx3kjZmPYoEJMCY7HIkNhsSExNSUMNzsbp7SKIz8HCWSjgyXxsqWQ45UZElMbwVRYGYogORLBqYVLwfnFuO3GeVgzcjZ2DCrE3mABPjEUvjckoPWgKXG7NRrtW9O3VhFLYb2eyjlERGn5ONdU+MyUOK7Lt1MESZGV6HFHJcKTl2J2/iKUnASop++l5MFtbR9/MrEUcnxrYw4RkSWxwJQ4ZCl8bUoc6peHbiU1MOdXIfv2CozzgN4wD1VX3YYlQyZjtl2AGaZEiaGww5A4EgP1qBHG1T+kn7ZtB23bVrZtKyHE771yx3GuY+ZC27Z7xD7DzNlCiBxmbrJtIcRAXae7vj5bCJHjOM6VPjsZQogcIUROenp61yY7ydk43ZT40A80eAM6mRJ7TYX3LYl/9MvDlHsfQd/iBzHYB3RawSJkqVJ0jmf3ojC6GBLzDYmjfqg/ZKQKIV5hZjDzPx3HGcHMdUKIZUKInbp8JjPXMfNyIiLHcfrrcjDzxn/znVkw80fMfJSZIYQ4rK8/088cY+aPMjMzz2Pmtz1bQohnmXm7X6NGDYWI57Ap8V1KGL1TwrjaUthjKuyzFF6/vRJ9yzehfxToCvxhUhk6Nec8gDb19WhrjYVtSBzyQX2/Tx46JgrTcZyAD04tMw/Vzu30gAohFur7ezSwEh+E93Xd6Mhm5gxm3sfMX+t6HzLzPiHEe/r6qL4/0td2XPXcbmMqfO5ztpKIKEXiHkvhOUthdzAfi1ZvRW8PaNFapAFoczIAz7+GXq/tx3kff4z2loIdM1IXJApUCHG313nHceTJgGZnZ5/CzAfjOH+RZ9N13d7MXKRH3Co9zW3HcUbp68WO49jMfIuvnTFCiNRYJSIiUyLTv85ZCnYogmRLYoOpsMNSeG7EdIzwgJbV4OKWAnjiZfCuN3DxgU/RFcApAYk7fW19keAobcPMBzSQb4LBYKeTAXVdd7AP4rr09PSu6enpXUOhULJn1LNxMrVtuwcz/0kvMQN9L3kKM9fZtq08oHN8Tr5IRGTm4XxLodpS2Jiah9riKvRcvRW9792CvpEIklpK4JHnwc+8gow97+DCNz5Fh8AEdDAkDkdfXh7CLbUViUSSbNvuIYRQQogyvVbeqh0+ohXM/LkH1HGcbsy8iplXua57pm3bk5h5ZkZGRhfPruM4A/SU3sXMRXH0mA9ouX5prweDwXNc1w0y82HdXoMvhsTmKFCFuURE6TdBWArLrVys6z8WS6t3oNv9W9G7pAantxQAEVH1Uwg++gwGPbUbaXv342wiIlPhfl976xOxR0SkHQczHxdC5DczqvaEQqHO/vVNB5tGU16X36XvRVUIcZO+960HNC0tra0Q4iFtYz8zf6EBz4gaMyT2+6b7cCKirGm43ClAab8xeIDH4dbqHehWVdsAJBGp2Ijgym0Y+VAdQk/WoxcRkaEwyhcADyRiLzMzsyczH9dOPJuVlXVaKBTqGk8HDRrUJQGgpdrmSm6I2GDmwligREShUChZCLHDsyuEmN+ok4bEV1EHFUwiovDdyLpqFu4M3YzFl96M0dU70K2iHm0Tcb6uDsmLNyBYWoPRyzdj+Ian0U+318u3xBwPZOPUltq0bXu2bwROPMn6l8gI9YBWCiG2eEC5IaU65gcqhBjGzN/42nnPdd3efqDRgJSq0IOIaOpSDLmpGFOumYO7siMYsfoJdKEEpaoW7eevgZizAgXF1fhjxeaG3NPJQ0d/mwGFphPkGGHmV7UTx4QQZ/vWv3j6qB/o8OHDz/Ctr42AOo5TJIQ4HKMFHmgPqI78R5n5mG3bkpn/rO8fdBwn4AGNbhMDuQ0RfOE6uLMqMWZCCaaOW4Qhm+txRqJAa57BWdOW4dKbl2D6zArkz1uFy4mI0vLRtlFWcQN+2xJ7OgUaysx79QhZTkRJtm2H4ikzX0BEScz8rnZ6uf79LBAINJoVzNw9XhokhJigA1G567qDHcdZyszljuNM9uo4jlOk69ziAf0oCjSMy4iI7t+K1NIaXBNZgbFzHsBliU73SB2SK2vRM78Yw26ch7vG3oOphWUYRkSU0bB7igINTmp+cxAr3LAL8qZ0u2amfCkRkRAi4i8XQlTEsVnajJ2W6n0NQBX+6ltDpxARbXkJ56+pxZAlG3BtcTVCLUni/XLvVnStqkXPkTOhhs1AyajZmDt6Hq4kIkoJI8MH9EuixGw3A/Rh27armfk1P1Cd7nzvm7qhODav1lDj6Wo+kZo1VaeUmbOJiMhUWOiLuo8TEb38d5z12EvIWPs4rqjY0jBqWyor69CuYiPMqlr0HFiI24LjUBGahEXDpjfYCShM8KVNLyZiuzmgoVCoswY41w9UP/OELvuAiP4tjxZCbImzhh7W+/ov+USaFreO1lwiIgqE4fpGzPeBMbig/iDOeOlN9Hl8N+yaJzEwtgNNCYA2ZY8gpXITrBVbcL47AasthVUpuSgfUACLiEifQnlAy34ioDW67N0mgC7zdltxNHoY00ydnXziJAttTIU3o07m4kEASQc+Rdfdb6PvYy9gQF0dkmM7EU+K18Fa/DAyKzfBKijBpZeMwTZTocaSWJ2q0LmvwoWGxPFoQJK4/scG6jhOR/alOa7rDvbb06dR25tSvccHN6RPTdZj/2mTlQvZKPLmQgJo99YH6P7CPvQ+2RoaaTh0theswQgP6ODJmGYq1JkKWy2FUiIiU6LE184RnpzYzisRoEKIMiHEVUKI0THBY12MvRbt5VuiPiJIMhSe9zn7nSURrgOSgeb37gXLcOaM+3Bt5AEoD+jiTehjKTxpStRbCk9buZApYXQ3Jb7xtbEkUZiJAGXmr3SQ2q4Bb9Tl37que2bU9UgkKRQKtWtKXddN0c993ly9UCjUrlFHUxV6GBKf+EeqqVBjjYERz7FRs3Fu3kJcO7EEd84oxxQPaNkG9Os3BjmWxIeWxFuWwu6UMLobCiHft6lDqSr+ofR/ESiYeZueqggGgxdyQw4LZp7Ykrb0NnO9fiGHE+5sqkJqLFRDAkYYbxoK61PzsNSdhKVDp+PB7DuwSRahcmIpFnhAi9YiLWsSOpkK75gSX5oSB70/Q/iBWrkYm3DntDiOM8K27fFCiGt0sl/IzIVZWVmn6fv9bdser+uM9n6JiIQQbNv2eGa+ooVtBTz7QoiC/6jDeqQ+F+cjG1LycMSdiHezpmFXI6D3Ydy8KvQkIjIlVmhwx02JL1IkAkQngFoSmxLNPf8HBG0shRxD4oXmgKoizJ1YCo5EkKyzhaKY7/clnkVDIWQqvJqWj9+0pmetLoEwfhdogDsrNQ+RARNRMHQ6BmXPwlleHSsXl5gStTEw63soRBdqQ6KXcT3OaR0vfkFiKpTH/kXHlHir7404t7X79osUHXz8/3d67KJw4sd9v4oWU+JOU+KopbArJRfX/R8GnF/lx5R/AWyXv3t/2q43AAAAAElFTkSuQmCC"},6762:function(t,e,n){"use strict";var a=n("5ca1"),i=n("c366")(!0);a(a.P,"Array",{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n("9c6c")("includes")},"68d1":function(t,e,n){"use strict";n("12bc")},"7fb8":function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFQAAAAhCAYAAABHhIyzAAAHCklEQVRoge3af8zXVRUHcJAHRUDDMRQkCyRQIRGT8WtoaOSPSBMWSm0qLUvQNUkyy1ooM7DmAIkVJqXUMrJa2A8r+0ENS3MWWW5lsynGcC0d5jT5kbz645yPz+Xj93m+z/cpfWRxtrvvc8+959x73p97zz3nQK9eLRLOxs+xG2tblT9ASRiAr3k5Dezpve13hMPw6wZgfren9/aaJxyFiUX/INxdA/I+nFbMOQazcBVuwiosxnT06RlLXgOEgfgd5hW8xTUwb0MbDsZUfAJfxT14CH/Hi8X87fgkBvSkbT1C2JAgzMv+MDyNvcn/YZ7YEbgY12JFE0Ar2orpPW3jq0aYVxhfAboMT+H5/D0aJ2IuLisA/Qpuzv41ybsHO2ug7sLs/3KfkzE/2xsL/oVYhBENZOamfR2ujTNyzvDsH5n9dxRzJiVvHoZ2tslDsa0EFIfniXsC/xD+8QTMLAC9GudgUAd6B+OGBLIEtdsnFb9PPf/GediEzwu/Dh9L3rqcP7FYe2MDfdPwZLHHHdl/Ovt7sn8M/lLo2ixu7EutVHpdMXE3xmA2tuBPeDjBnFgA+k4c3sT43uiLKeKEV/QEDusGmOMKHT8WMbEEswL0xvzdkjIrauveZ9+TPSltfD7nbMv+1uzvyv75mlBp9DMF/9bkfwb34rfi5R5TAHoKencBgFHiyw5IUMuTuqwbgH66kL+kGaDoIx7FOh1f6ByD5eLE3S5u5xTMyf6q7F9ZrPN+TKi3SuFptcWmiFf8W8IP3iuuVgXo2BYAmIqxGJrGXV+s808tnFLx4R9L2X8Jl9QM0JnFenfkPoairdB7tq7RCHxWuJMzCvmrkje/YnyqEHogecfi69gortbIBPQEHNQioJMwWoRkA4WPqujiFnRV0cV8rBa+8iOpZ6f2B7C6bVvEI3p7tiPwoZQbXOg9VVzp+8VJrbc9BaBr8++HRbw+ubDn4krh9woDlyRvGtaJr7omNzYGh3YVgNQzGW8TLuLI5H2xWG9DK/pS/v6U3YsP6pi2YFDVSdkns3t8TefSHCvbB3LshQLQvvhm9h8VtwyuKZU9Wmzi3OSdiZX4kjgFR1eAdAPQ8zEDo5I3p1jvsRb1jdQeE2/GIdqvcb0NbgHQlcm/TbzYsKgOaPbbhCus6Ib6Jp8rBk9M3jnC363CRQlo3xaNb0tAL8K5ODn5o4r19uLgFnReW8heoXP/18oJrQC9Fd+vABU39aUrn3NnCR9e0VaMKZWVVAm9XTjbpeJBGtyrRRIv+zQsxHtl7CkKLSV1HCC/XOcfUmaPCLwr/9eofacEFP21+9c6oMuFLyzbwgJo4srPEZHKHhFlfC7HtmNcpaxME8cmb7oIDRYnuP27AegQvBUfFb7uzOT3rQH6+i7q6yNO5EPihKwTD9WMDtqbcvzxXGdd/j6tdiswXIMwCJeLh2itiBjW5N8fLuYsT96VlbLqGsDpyZuAd+NSnK57132kuB5L88PMyrHBNUA7TQ4a6N6UclvQT8e0MudfV+Pf0kDnygbyrdIXKmW/KJhXJe9YcTIvEF+7aRBf2+BQAeh8kakskTmxCKMqerYbujelbB3Qb4tQ74/ZrwAdYd9bOKOBztkC1EZtfcrt7GTOSsytlN1YLPaT5A1Jw8+Sp7YFg/uJAspIUdq7RWRa1em/vFjvgVZ0NwF0UI4vKQFN3k+T9zcN4mjxENV9aNWeTdm9nczZgfdVyqYXm3pR+J7+OE5kTWfUN9CJsb1xEsaLU75eBNVrMT7nlCHH6lcJ0DuT93gHgFbFlUatLMZ0NOc+VSUrQfhzsbFvCGc+VGRGpypStSbGjhep7HjxIN2dxqwXL+5o7XEkvOeVBlREFWWYM7Omb6Ja1ajWNqfcnibz9qk2XWJfuiQ3O1xkSJ36ufwAU0SIVQF6dRr/g8K4svKzU4uZV4uArsa7RBxc0h01fV3N5ZtSHZBfFWO7RUW+TZPcXeTIF4gHqAL0OPwMD+KX4gMNt+9JublVMFsE9DnxSFWZz8b8fQFH1Gzv10k7KeWeaTKvX32jI8Q/X5R0J97cgWHDEsjrRRJQAXqyKIFtwyOi/DdcRAsVPaWDovT/EFDC5VSZzmgRw8IVXVyrTfs/C+3ozmYnNACV8LEbRGC7RvjZu0SqtqwA9BRRVvureB23y/8MUQP00pY3177H87BAxMl9RIq4CIfk+MQcXyCu+wJclGNTs39WF9caV+hf2N0NjxA10Ea0U7yU99cAvQwjU/7LOXevqMaMS34F6F1ajD33exIv/zz8pgmgS/Krt6XM8tr8FYXOGSIXf11P2tbjhDckuB8XadxCUeMcUsx5iyhEl/SgwlGLKtNRPWPFfkTaq9glPYJhPb23/ZK0p2YV/Ug3yn0HKEmETbvSr174f/fgHKBXlv4D1eSGw6GEvQ4AAAAASUVORK5CYII="},"8e6e":function(t,e,n){var a=n("5ca1"),i=n("990b"),r=n("6821"),c=n("11e9"),o=n("f1ae");a(a.S,"Object",{getOwnPropertyDescriptors:function(t){var e,n,a=r(t),s=c.f,u=i(a),d={},f=0;while(u.length>f)n=s(a,e=u[f++]),void 0!==n&&o(d,e,n);return d}})},9093:function(t,e,n){var a=n("ce10"),i=n("e11e").concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return a(t,i)}},"990b":function(t,e,n){var a=n("9093"),i=n("2621"),r=n("cb7c"),c=n("7726").Reflect;t.exports=c&&c.ownKeys||function(t){var e=a.f(r(t)),n=i.f;return n?e.concat(n(t)):e}},aae3:function(t,e,n){var a=n("d3f4"),i=n("2d95"),r=n("2b4c")("match");t.exports=function(t){var e;return a(t)&&(void 0!==(e=t[r])?!!e:"RegExp"==i(t))}},d2c8:function(t,e,n){var a=n("aae3"),i=n("be13");t.exports=function(t,e,n){if(a(e))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(t))}},ed3a:function(t,e,n){"use strict";n.r(e);var a=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("el-container",{staticClass:"admin-view"},[a("el-header",{class:t.NavMenu.theme},[a("span",{staticClass:"logo",on:{click:t.goIndex}},["black"==t.NavMenu.theme?a("img",{attrs:{src:n("7fb8")}}):t._e(),"white"==t.NavMenu.theme?a("img",{attrs:{src:n("6141")}}):t._e()]),t.docName?[a("div",{staticClass:"menu-line"}),a("div",{staticClass:"menu-icon",on:{click:function(e){return t.goto("admin")}}},[a("i",{staticClass:"wi wi-shouye"})]),a("i",{staticClass:"el-icon-arrow-right"})]:t._e(),a("div",{staticClass:"menu"},[t.isManage?[t.isAdmin?a("router-link",{staticClass:"item",attrs:{to:"/admin/user"}},[t._v("用户管理")]):t._e(),t.isAdmin?a("router-link",{staticClass:"item",attrs:{to:"/admin/setting"}},[t._v("系统设置")]):t._e()]:!t.isRead&&t.docName?[a("span",{staticClass:"doc-name"},[t._v(t._s(t.docName))])]:t._l(t.NavMenu.list,(function(e,n){return a("a",{key:n,staticClass:"item",attrs:{underline:!1,href:e.url,target:"_blank"}},[t._v("\n "+t._s(e.name)+"\n ")])}))],2),t.UserInfo.username?a("div",{staticClass:"user"},[a("div",{staticClass:"username text-over",attrs:{title:t.UserInfo.username}},[t._v("\n "+t._s(t.UserInfo.username)+"\n ")]),a("div",{staticClass:"menu-bar",attrs:{id:"w7-nav-menu"}},[a("ul",{staticClass:"menu-ul"},[1===t.UserInfo.group_id?a("li",{staticClass:"menu__item",on:{click:t.goBackstage}},[t._v("\n 后台管理\n ")]):t._e(),a("li",{staticClass:"menu__item",on:{click:t.goPersonalCenter}},[t._v("个人中心")]),a("li",{staticClass:"menu__item",on:{click:t.exit}},[t._v("退出系统")])])])]):t._e(),t.UserInfo.username?t._e():a("router-link",{staticClass:"item",attrs:{to:"/admin-login"}},[t._v("登录")])],2),a("div",{staticClass:"admin-content"},[a("router-view")],1),a("el-footer",{staticClass:"w7-footer",class:t.$route.meta.footerClass,attrs:{height:"80px"}},[a("div",{staticClass:"footer-law"},[a("p",[t._v("\n Copyright © 2018 宿州市涛盛网络科技有限公司 www.w7.cc All Rights\n Reserved\n ")]),a("p",[t._v("\n 网站备案:皖ICP备17004788号-1  增值电信业务经营许可证:皖B2-20200003  "),a("a",{attrs:{href:"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=34130202000406",target:"_blank"}},[a("img",{attrs:{src:"//cdn.w7.cc/new/img/icon/bei.png?imageView2/5/w/14/h/14",alt:""}}),t._v("  皖公网安备 34130202000406号")]),t._v("  "),a("a",{attrs:{href:"http://www.cyberpolice.cn",target:"_blank"}},[a("img",{attrs:{src:"//cdn.w7.cc/new/img/icon/jubao.png?imageView2/5/w/14/h/14",alt:""}}),t._v("  网络违法犯罪举报网站")])])])])],1)},i=[],r=(n("8e6e"),n("ac6a"),n("456d"),n("6762"),n("2fdb"),n("7f7f"),n("fc11")),c=n("2f62"),o=n("4ec3"),s=n("3191"),u=n("56d7");function d(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function f(t){for(var e=1;e10||s.length<2)return this.$message.closeAll(),this.$message.error("用户名长度不正确"),!1;if(!e.length)return this.$message.closeAll(),this.$message.error("请输入密码"),!1;if(e.length<6)return this.$message.closeAll(),this.$message.error("密码长度最小6位"),!1;if("reg"==this.formQuery.handle){if(!t.length)return this.$message.closeAll(),this.$message.error("请输入密码"),!1;if(t.length<6)return this.$message.closeAll(),this.$message.error("密码长度最小6位"),!1;if(t!=e)return this.$message.closeAll(),this.$message.error("两次输入的密码不一致"),!1}this.submit()},submit:function(){var s=this;Object(n["z"])(this.formQuery).then((function(e){s.$message(e.data),s.$router.push("/")})).catch((function(s){}))},tabClick:function(s){this.formQuery.handle=s.name}}},o=l,c=(t("aa37"),t("d08e"),t("2877")),i=Object(c["a"])(o,a,r,!1,null,"780cb3f1",null);e["default"]=i.exports},bebc:function(s,e){s.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAGtElEQVR4Xu2cvW4bRxDH/3NHfVSxBFBlIAq22EYBkspFqCeQ0qRJYRt5AaoKmRSWACOk01h5gtCNW9FA6ph+AolVENKB5cKV6JAJECQSyZtglzyKpE53e7d7J9IwS2n3bva3s7Mzs7NHSPiXKbQzKcK6xU6OyVkB05YrAgEZJu6AqXP5N6oxo8OWddJbQv10f3X0vyREp7hfktlvryye93eYkSMgB0JG550MPgFQY4dqrx6nn+s8S6VvbIDufNvaIcIuCLsErKgIE7YNAx2AK6DU0+YPqwKc8Z9xQNli6x4Y+7qaEnakzKgx+OBVea0Wtq9fe2OAbgrM9ODEEmTGnilQ2oA2v2tvwek/IULO5MwZeFb1gu290/Lqqc6ztABlC+8egnhfR4A4+0obxdhrltOVqO+JBEjsTAv/9Y9mUGs8OTCj0l2296K4CKEBySXF/Rdx7UxRZzqon7BN3aXUdlhIoQDdKZzliOho3uC48OSSI3s7jEugDGiz0LpPhJ+DZmrW/x8WkhKgbLG1C+Bo1gevKl8YSIGA5tXmBMESkLpL9kaQTfIFJALLBeofz6vNCYYUbLh9AW0Wz44Jl9F20Avn8f/CBWiW0w+uk/1aQNnC2T6IHs7joMPKzIwH1zmTnoCE3SHuH4d9EZjrAKqh+yl0YFCeCLcUmoZu4mePvAFFXVrMB43yWiyhh5w0p1cB0SehCSh0YOBps5S+P930CqA7xXd5C/xE4ZlXmwwBZYstjtTfo1OjlKaN79vr9oLT7sGyFs77hwTcM/X88ec4zNvTWYArgDaLrXbkXSsmQNIPY5S7Du+8/nHtd61J9CErckrNcnp7vMkEIG1vOU5AwBEDfwP8dbO09osMe0BV03ZpWosmAGULrddamcCYAYmZZQYD/Kj5R/ogc7vz8SJ6VZN2aVqLRoCMhBMJABqpP+PXf2jxq7elj95tFlsVk3bpgu0NN9F2CajQqoKwo2X8kgQ0EPQNHHun8Xi1rm0exgbOjJ+a5XRe/EkCGh7NtLXgDPRfbvOmd7HbxT/vWuw88pKPwP92HewJ4z1M/9a07RLjtFFOb4wAGdsVYgIUZuI2i2c1An0Rpo9XWyb7U5E3khqUNbG8AjTIAe2BncCzKws4HDe6wmgqDrYuloUpQO5qkIC0fJ9x6X00yMsJ8xp41AEy+GWztJaL2n9aFvd5FDnu8tRL8zZIUXtgGpB4r/DiyaT1j8NI3yQgofVkNK3hs8REMEjMWod4LiwmUQgxaYjj0CAAX5IxAx1kpD0CQVXtmG7nNamxAGI+IFNGTQ7CV4P4ZLzuJyqcoW+SmQ6J4gAktT4pQDpAVPrGA4hfkkmvN8BIv2GYsUEEEkVY6xMehuFtXi4IJAnIYLYxKRuUMCCcMmBkFxO1jMnYoCQ1SMWQaLSJzQYlZaSluqrHVb6okvKDpMxJAXINuIaSjLomZ4PwNDFH0QQYv2fEscTEpCYWaswlIBFqfAhWr586Gawmle5QTZhNiEvWluohZhxLTKY7ZMKs0Opo53EVg9VsofW5ynJrLzm/3TqnzyyiFyrtTQMaJczEy41F9AEZRae/+DaV6jZUBtx36C6Rs3hTgCZTrqbqDwMAXWChvkTdb1QAWX0861vI3hSgiaR9Esc+7FBeXGlSgeO2IcfZIosPVfoYXmJvGqW0vJU08weHKnDcyNtU0v7KwaG0QyYqWWM4F7sJQJ5Hz0NIItqeyLOoCijbvQeA3KU6WubjALSdxvcAkG/5i7ZPNOeAprVnwki7mqR1Tj/ngJRK8AaO49lJpKIkg2nVULZvrHHU9I1yEadcZhHLgMWVI2IrljJgVWBMnA9bY8mMv7rLdsbrWsKHQvJBWV+4QnJ3tqKqq+psz0K765aW5zY/LfDw6uWpkUh/FmhMy8Bcv1hO5fxu/Khdh3L6+mVtMwbIz+6MixoISDQWNcmqUfWMcfAUR8CBZedUrmYqARo6kO/HlcwQcDwdRT8NiKu6PSmtC6M5SkbaS3BjpbZJUXHfo2CQvURSXmLjneXudt6rmii3TYKT2Mq7S3Y+6H6qMUDug4yW78VASi4pIJ/4pynGxzK4Fd07nDltYjy/gJ2/0Y+bTIAaJP7FbcPoCTcTWsRcd4D8zHweZ3pMw6Rb4qBELocZ+6bARN7FVCdZ5LgZEDcFd+MKVYY2pgLLrqg4faqyh/akozzY7TM8UsoJWPIjb7pLkLnOIBH61BqldOyplUjbvBYw8ZlA9DIWkGPQCogvPxPIg4/BMYmPtw1+oujKIasjLsL0llMnUbZqHXn/B5sq7OVQhiqfAAAAAElFTkSuQmCC"},d08e:function(s,e,t){"use strict";t("30c8")}}]); ================================================ FILE: public/js/chunk-ab7deece.198a94a8.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-ab7deece"],{"02f4":function(e,t,r){var n=r("4588"),a=r("be13");e.exports=function(e){return function(t,r){var o,i,c=String(a(t)),u=n(r),l=c.length;return u<0||u>=l?e?"":void 0:(o=c.charCodeAt(u),o<55296||o>56319||u+1===l||(i=c.charCodeAt(u+1))<56320||i>57343?e?c.charAt(u):o:e?c.slice(u,u+2):i-56320+(o-55296<<10)+65536)}}},"0390":function(e,t,r){"use strict";var n=r("02f4")(!0);e.exports=function(e,t,r){return t+(r?n(e,t).length:1)}},"0bfb":function(e,t,r){"use strict";var n=r("cb7c");e.exports=function(){var e=n(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"11e9":function(e,t,r){var n=r("52a7"),a=r("4630"),o=r("6821"),i=r("6a99"),c=r("69a8"),u=r("c69a"),l=Object.getOwnPropertyDescriptor;t.f=r("9e1e")?l:function(e,t){if(e=o(e),t=i(t,!0),u)try{return l(e,t)}catch(r){}if(c(e,t))return a(!n.f.call(e,t),e[t])}},"214f":function(e,t,r){"use strict";r("b0c5");var n=r("2aba"),a=r("32e9"),o=r("79e5"),i=r("be13"),c=r("2b4c"),u=r("520a"),l=c("species"),s=!o((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),_=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var r="ab".split(e);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();e.exports=function(e,t,r){var f=c(e),p=!o((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),d=p?!o((function(){var t=!1,r=/a/;return r.exec=function(){return t=!0,null},"split"===e&&(r.constructor={},r.constructor[l]=function(){return r}),r[f](""),!t})):void 0;if(!p||!d||"replace"===e&&!s||"split"===e&&!_){var g=/./[f],v=r(i,f,""[e],(function(e,t,r,n,a){return t.exec===u?p&&!a?{done:!0,value:g.call(t,r,n)}:{done:!0,value:e.call(r,t,n)}:{done:!1}})),h=v[0],b=v[1];n(String.prototype,e,h),a(RegExp.prototype,f,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}}},"28a5":function(e,t,r){"use strict";var n=r("aae3"),a=r("cb7c"),o=r("ebd6"),i=r("0390"),c=r("9def"),u=r("5f1b"),l=r("520a"),s=r("79e5"),_=Math.min,f=[].push,p="split",d="length",g="lastIndex",v=4294967295,h=!s((function(){RegExp(v,"y")}));r("214f")("split",2,(function(e,t,r,s){var b;return b="c"=="abbc"[p](/(b)*/)[1]||4!="test"[p](/(?:)/,-1)[d]||2!="ab"[p](/(?:ab)*/)[d]||4!="."[p](/(.?)(.?)/)[d]||"."[p](/()()/)[d]>1||""[p](/.?/)[d]?function(e,t){var a=String(this);if(void 0===e&&0===t)return[];if(!n(e))return r.call(a,e,t);var o,i,c,u=[],s=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),_=0,p=void 0===t?v:t>>>0,h=new RegExp(e.source,s+"g");while(o=l.call(h,a)){if(i=h[g],i>_&&(u.push(a.slice(_,o.index)),o[d]>1&&o.index=p))break;h[g]===o.index&&h[g]++}return _===a[d]?!c&&h.test("")||u.push(""):u.push(a.slice(_)),u[d]>p?u.slice(0,p):u}:"0"[p](void 0,0)[d]?function(e,t){return void 0===e&&0===t?[]:r.call(this,e,t)}:r,[function(r,n){var a=e(this),o=void 0==r?void 0:r[t];return void 0!==o?o.call(r,a,n):b.call(String(a),r,n)},function(e,t){var n=s(b,e,this,t,b!==r);if(n.done)return n.value;var l=a(e),f=String(this),p=o(l,RegExp),d=l.unicode,g=(l.ignoreCase?"i":"")+(l.multiline?"m":"")+(l.unicode?"u":"")+(h?"y":"g"),m=new p(h?l:"^(?:"+l.source+")",g),x=void 0===t?v:t>>>0;if(0===x)return[];if(0===f.length)return null===u(m,f)?[f]:[];var w=0,E=0,y=[];while(Eh;)g(v[h++]);_.constructor=l,l.prototype=_,r("2aba")(n,"RegExp",l)}r("7a56")("RegExp")},4917:function(e,t,r){"use strict";var n=r("cb7c"),a=r("9def"),o=r("0390"),i=r("5f1b");r("214f")("match",1,(function(e,t,r,c){return[function(r){var n=e(this),a=void 0==r?void 0:r[t];return void 0!==a?a.call(r,n):new RegExp(r)[t](String(n))},function(e){var t=c(r,e,this);if(t.done)return t.value;var u=n(e),l=String(this);if(!u.global)return i(u,l);var s=u.unicode;u.lastIndex=0;var _,f=[],p=0;while(null!==(_=i(u,l))){var d=String(_[0]);f[p]=d,""===d&&(u.lastIndex=o(l,a(u.lastIndex),s)),p++}return 0===p?null:f}]}))},"520a":function(e,t,r){"use strict";var n=r("0bfb"),a=RegExp.prototype.exec,o=String.prototype.replace,i=a,c="lastIndex",u=function(){var e=/a/,t=/b*/g;return a.call(e,"a"),a.call(t,"a"),0!==e[c]||0!==t[c]}(),l=void 0!==/()??/.exec("")[1],s=u||l;s&&(i=function(e){var t,r,i,s,_=this;return l&&(r=new RegExp("^"+_.source+"$(?!\\s)",n.call(_))),u&&(t=_[c]),i=a.call(_,e),u&&i&&(_[c]=_.global?i.index+i[0].length:t),l&&i&&i.length>1&&o.call(i[0],r,(function(){for(s=1;s]*>)/g,p=/\$([$&`']|\d\d?)/g,d=function(e){return void 0===e?e:String(e)};r("214f")("replace",2,(function(e,t,r,g){return[function(n,a){var o=e(this),i=void 0==n?void 0:n[t];return void 0!==i?i.call(n,o,a):r.call(String(o),n,a)},function(e,t){var a=g(r,e,this,t);if(a.done)return a.value;var _=n(e),f=String(this),p="function"===typeof t;p||(t=String(t));var h=_.global;if(h){var b=_.unicode;_.lastIndex=0}var m=[];while(1){var x=u(_,f);if(null===x)break;if(m.push(x),!h)break;var w=String(x[0]);""===w&&(_.lastIndex=c(f,o(_.lastIndex),b))}for(var E="",y=0,k=0;k=y&&(E+=f.slice(y,C)+I,y=C+O.length)}return E+f.slice(y)}];function v(e,t,n,o,i,c){var u=n+e.length,l=o.length,s=p;return void 0!==i&&(i=a(i),s=f),r.call(c,s,(function(r,a){var c;switch(a.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,n);case"'":return t.slice(u);case"<":c=i[a.slice(1,-1)];break;default:var s=+a;if(0===s)return r;if(s>l){var f=_(s/10);return 0===f?r:f<=l?void 0===o[f-1]?a.charAt(1):o[f-1]+a.charAt(1):r}c=o[s-1]}return void 0===c?"":c}))}}))},aae3:function(e,t,r){var n=r("d3f4"),a=r("2d95"),o=r("2b4c")("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==a(e))}},b0c5:function(e,t,r){"use strict";var n=r("520a");r("5ca1")({target:"RegExp",proto:!0,forced:n!==/./.exec},{exec:n})},fa7d:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",(function(){return timestampFormat}));var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("a481"),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("6b54"),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__),core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("4917"),core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("28a5"),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("3b2b"),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4__);function getUrlParam(e,t){var r=new RegExp("(^|&)"+t+"=([^&]*)(&|$)");if(e&&e.split("?")[1]){var n=e.split("?")[1].match(r);return null!=n?unescape(n[2]):null}}function replaceParamVal(url,paramName,replaceVal){var oUrl=url.toString(),re=eval("/("+paramName+"=)([^&]*)/gi"),nUrl=oUrl.replace(re,paramName+"="+replaceVal);return nUrl}function timestampFormat(e){var t=Date.parse(e)/1e3;function r(e){return(1==String(e).length?"0":"")+e}var n=parseInt((new Date).getTime()/1e3),a=n-t,o=new Date(1e3*n),i=new Date(1e3*t),c=i.getFullYear(),u=i.getMonth()+1,l=i.getDate(),s=i.getHours(),_=i.getMinutes();if(a<60)return"刚刚";if(a<3600)return Math.floor(a/60)+"分钟前";if(o.getFullYear()==c&&o.getMonth()+1==u&&o.getDate()==l)return"今天"+r(s)+":"+r(_);var f=new Date(1e3*(n-86400));return f.getFullYear()==c&&f.getMonth()+1==u&&f.getDate()==l?"昨天"+r(s)+":"+r(_):c+"年"+r(u)+"月"+r(l)+"日 "+r(s)+":"+r(_)}}}]); ================================================ FILE: public/js/chunk-b09d1c24.40e2b6cd.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-b09d1c24"],{1528:function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAYUlEQVQ4jWNgGAXDAMTda2KIvSNGPQNjbk9liL3zn7qGxt2ZTAtDJzDE3vnPEHlPHLuCqIdKDLF39pOIf0EMvSmCaWDEfQXqGkh1L5NmGBUjJeYulZNN7J0y6iaXUUBzAACfHWNSEh0HywAAAABJRU5ErkJggg=="},"1dd1":function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABlklEQVRYhe2WwSsEYRjGl1VaRYQDcXFxEJETV4f9A1wcHNy0VxclRRz2IAcnF3KRgz9ANkW52HLAhZSSclnSllqR8nPYV17TN3a+mW9aB89p+r73eZ7fNzPbTiLxr4ACksAO/noExuIqPzMUXgF54Nmw1++quM0TPPrLbC1womYPo5Y3qbCsha9Z+Y6iAHxpyLA3C1wCt8A2MGiYeRf/TJjyGzFn1Fot8GJ43lqTPoeosSmvF9OrT1gOSHr2xtX+olpPy9qFDcCBmHo861mgoYJ3AUiZwG0A7AyV89YkcsQG4M4hQLtkbtkAbLgCUJnXQQaTMrweA8CDzXAuBoBTm+EPh+XDkrlkA+DyV5CXyFTl6bIhI4Z5RwD2B3J1F4A9iZq2NU6I8T5C+UCkg1D+twM4D+Ht41t1oQAkqCghb0BjQM++Ku8NXa4Cj1XgE5A2zLQAu3gUuVwVdAMlb4GPVoA5uS44g1AwU/z8SC0Bm0CrZ64g+8vOIYJKQXZUC6DL+fsQAmI1tvfBAqJY1bsgEJ1VBfiz+gQ/cfbknw8jpwAAAABJRU5ErkJggg=="},3191:function(t,e,a){"use strict";a.d(e,"b",(function(){return s})),a.d(e,"d",(function(){return i})),a.d(e,"a",(function(){return o})),a.d(e,"c",(function(){return c}));var n=a("1c1e"),s=function(t){return Object(n["a"])({url:"/document/home",params:t,method:"get"})},i=function(t){return Object(n["a"])({url:"/document/home/search",data:t,method:"post"})},o=function(t){return Object(n["a"])({url:"/document/home/check",data:t,method:"get"})},c=function(t){return Object(n["a"])({url:"/document/home/search-hot",data:t,method:"get"})}},"492b":function(t,e,a){"use strict";a("af0d")},"77b8":function(t,e,a){"use strict";a.r(e);var n=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"home"},[t.homeData&&t.homeData.set?n("div",{staticClass:"banner",style:{"background-image":"url("+t.homeData.set.banner[0]+")"}},[n("div",{staticClass:"title"},[t._v("\n "+t._s(t.homeData.set.title)+"\n ")]),n("div",{staticClass:"search-wrap"},[n("el-input",{attrs:{placeholder:"输入关键字搜索"},nativeOn:{keyup:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.goSearch(t.keywords)}},model:{value:t.keywords,callback:function(e){t.keywords=e},expression:"keywords"}}),n("span",{staticClass:"search-btn"},[n("img",{attrs:{src:a("1dd1"),alt:""},on:{click:function(e){return t.goSearch(t.keywords)}}})])],1),n("div",{staticClass:"href"},t._l(t.hotArr,(function(e,a){return n("a",{key:e,attrs:{target:"_blank"}},[n("span",{staticClass:"hot",on:{click:function(a){return t.goSearch(e)}}},[t._v(t._s(e))]),a5?n("ul",{staticClass:"right"},t._l(t.homeData.notice.chapter.slice(4,8),(function(e,a){return n("li",{key:a},[n("div",{staticClass:"con-left"},[n("span",{staticClass:"new new2"},[t._v("公告")]),n("div",{staticClass:"popover-wrap"},[n("el-popover",{attrs:{placement:"top",trigger:"hover",content:e.chapter_name}},[n("a",{attrs:{slot:"reference"},on:{click:function(a){return t.viewDoc(e,t.homeData.notice.document_id)}},slot:"reference"},[t._v(t._s(e.chapter_name))])])],1)]),n("span",{staticClass:"time"},[t._v(t._s(e.created_at))])])})),0):t._e()])])]),n("div",{staticClass:"w1200"},[n("div",{staticClass:"type-1"},[t.homeData&&t.homeData.middle_list&&t.homeData.middle_list.length?n("el-row",{attrs:{gutter:65}},t._l(t.homeData.middle_list,(function(e,s){return n("el-col",{key:s,attrs:{xs:12,sm:12,md:6}},[n("div",{staticClass:"con",on:{click:function(a){return t.viewDoc2(e)}}},[n("img",{attrs:{src:e.logo,alt:""}}),n("div",{staticClass:"document-name"},[t._v(t._s(e.document_name))]),n("div",{staticClass:"description"},[t._v(t._s(e.description))]),n("div",{staticClass:"view"},[n("span",{staticClass:"text"},[t._v("查看文档")]),n("img",{attrs:{src:a("1528")}})])])])})),1):t._e()],1)]),n("div",{staticClass:"w1200"},[n("div",{staticClass:"type-2"},[t.homeData&&t.homeData.bottom_list&&t.homeData.bottom_list.length?n("el-row",{attrs:{gutter:65}},t._l(t.homeData.bottom_list,(function(e,a){return n("el-col",{key:a,attrs:{xs:12,sm:12,md:6}},[n("div",{staticClass:"con"},[n("div",{staticClass:"document-name"},[t._v(t._s(e.document_name))]),n("div",{staticClass:"line"}),n("ul",t._l(e.chapter,(function(a,s){return n("li",{key:s,on:{click:function(n){return t.viewDoc(a,e.document_id)}}},[t._v("\n "+t._s(a.chapter_name)+"\n ")])})),0)])])})),1):t._e()],1)])])},s=[function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"title"},[a("div",{staticClass:"text"},[t._v("更新公告")]),a("div",{staticClass:"line"},[a("span")])])}],i=a("3191"),o={name:"home",data:function(){return{origin:"",homeData:{},keywords:void 0,hotArr:[]}},created:function(){this.init()},methods:{init:function(){this.origin=location.origin,this.getHomeData(),this.getHots()},getHots:function(){var t=this;Object(i["c"])().then((function(e){200==e.code&&(t.hotArr=e.data)})).catch((function(t){}))},getHomeData:function(){var t=this;Object(i["b"])().then((function(e){200===e.code&&(t.homeData=e.data)})).catch((function(t){}))},viewDoc:function(t,e){var a=this.$router.resolve({name:"viewHome",params:{id:e},query:{id:t.chapter_id}}),n=a.href;window.open(n,"_blank")},viewDoc2:function(t){var e=this.$router.resolve({name:"viewHome",params:{id:t.document_id},query:{id:t.first_chapter_id}}),a=e.href;window.open(a,"_blank")},goSearch:function(t){t?this.$router.push({name:"homeSearch",query:{keywords:t}}):(this.$message.closeAll(),this.$message.error("搜索关键字不能为空!"))}}},c=o,r=(a("492b"),a("2877")),l=Object(r["a"])(c,n,s,!1,null,"688d267c",null);e["default"]=l.exports},af0d:function(t,e,a){}}]); ================================================ FILE: public/js/chunk-b9b22232.9694579b.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-b9b22232"],{"01d6":function(e,t,r){"use strict";r("beaf")},"08d8":function(e,t,r){"use strict";r.r(t);var s=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"setting-thirdParty"},[r("div",{staticClass:"page-head"},[e._v("自定义授权配置")]),r("el-form",{ref:"customForm",attrs:{model:e.formData,"status-icon":"","label-position":"left"}},e._l(e.formData.customList,(function(t,s){return r("div",{key:s,staticClass:"we7-panel-form"},[r("div",{staticClass:"we7-panel-form__header"},[e._v("\n 自定义第三方授权配置\n "),s>0?r("el-button",{attrs:{type:"text"},on:{click:function(t){return e.del(s)}}},[e._v("删除")]):e._e()],1),r("div",{staticClass:"we7-panel-form__body edit"},[r("el-form-item",{attrs:{label:"授权登录","label-width":"290px"}},[r("el-switch",{attrs:{"active-value":1,"inactive-value":0},model:{value:t.setting.enable,callback:function(r){e.$set(t.setting,"enable",r)},expression:"item.setting.enable"}})],1)],1),r("div",{staticClass:"we7-panel-form__header"},[e._v("\n 自定义第三方登陆配置\n ")]),r("div",{staticClass:"we7-panel-form__body edit"},[r("el-form-item",{attrs:{label:"第三方名称","label-width":"290px",prop:"customList."+s+".setting.name",rules:e.rules.name}},[r("el-input",{model:{value:t.setting.name,callback:function(r){e.$set(t.setting,"name",r)},expression:"item.setting.name"}})],1),r("el-form-item",{attrs:{label:"LOGO","label-width":"290px",prop:"customList."+s+".setting.logo",rules:e.rules.logo}},[r("el-upload",{staticClass:"avatar-uploader",attrs:{action:"/admin/upload/image","show-file-list":!1,"before-upload":e.beforeAvatarUpload,"on-success":function(t,r){return e.handleAvatarSuccess(t,r,s)}}},[t.setting.logo?r("img",{staticClass:"avatar",attrs:{src:t.setting.logo}}):r("i",{staticClass:"el-icon-plus avatar-uploader-icon"})])],1),r("el-form-item",{attrs:{label:"APPID","label-width":"290px",prop:"customList."+s+".setting.app_id",rules:e.rules.app_id}},[r("el-input",{model:{value:t.setting.app_id,callback:function(r){e.$set(t.setting,"app_id",r)},expression:"item.setting.app_id"}})],1),r("el-form-item",{attrs:{label:"SERCETkey","label-width":"290px",prop:"customList."+s+".setting.secret_key",rules:e.rules.secret_key}},[r("el-input",{model:{value:t.setting.secret_key,callback:function(r){e.$set(t.setting,"secret_key",r)},expression:"item.setting.secret_key"}})],1),r("el-form-item",{attrs:{label:"ACCESSTOKEN API地址","label-width":"290px",prop:"customList."+s+".setting.access_token_url",rules:e.rules.access_token_url}},[r("el-input",{model:{value:t.setting.access_token_url,callback:function(r){e.$set(t.setting,"access_token_url",r)},expression:"item.setting.access_token_url"}})],1),r("el-form-item",{attrs:{label:"获取用户信息 API地址","label-width":"290px",prop:"customList."+s+".setting.user_info_url",rules:e.rules.user_info_url}},[r("el-input",{model:{value:t.setting.user_info_url,callback:function(r){e.$set(t.setting,"user_info_url",r)},expression:"item.setting.user_info_url"}})],1)],1),r("div",{staticClass:"we7-panel-form__header"},[r("span",[e._v("转换功能")])]),r("div",{staticClass:"we7-panel-form__body edit"},[r("el-form-item",{attrs:{label:"uid","label-width":"290px"}},[r("el-input",{model:{value:t.convert.uid,callback:function(r){e.$set(t.convert,"uid",r)},expression:"item.convert.uid"}}),r("div",{staticClass:"we7-help-block"},[e._v("请填写第三方系统用户id的字段")])],1),r("el-form-item",{attrs:{label:"username","label-width":"290px"}},[r("el-input",{model:{value:t.convert.username,callback:function(r){e.$set(t.convert,"username",r)},expression:"item.convert.username"}}),r("div",{staticClass:"we7-help-block"},[e._v("请填写第三方系统用户名的字段")])],1)],1)])})),0),r("el-button",{attrs:{type:"text"},on:{click:e.add}},[e._v("+添加自定义授权")]),r("el-button",{attrs:{type:"primary"},on:{click:e.save}},[e._v("保存")])],1)},a=[],i=(r("8e6e"),r("ac6a"),r("456d"),r("fc11"));function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,s)}return r}function l(e){for(var t=1;tp)r=o(s,t=c[p++]),void 0!==r&&l(u,t,r);return u}})},9093:function(e,t,r){var s=r("ce10"),a=r("e11e").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return s(e,a)}},"990b":function(e,t,r){var s=r("9093"),a=r("2621"),i=r("cb7c"),n=r("7726").Reflect;e.exports=n&&n.ownKeys||function(e){var t=s.f(i(e)),r=a.f;return r?t.concat(r(e)):t}},beaf:function(e,t,r){},f1ae:function(e,t,r){"use strict";var s=r("86cc"),a=r("4630");e.exports=function(e,t,r){t in e?s.f(e,t,a(0,r)):e[t]=r}},fc11:function(e,t,r){"use strict";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}r.d(t,"a",(function(){return s}))}}]); ================================================ FILE: public/js/chunk-bd264252.deae42c5.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-bd264252"],{"02f4":function(e,t,a){var i=a("4588"),n=a("be13");e.exports=function(e){return function(t,a){var o,r,s=String(n(t)),l=i(a),c=s.length;return l<0||l>=c?e?"":void 0:(o=s.charCodeAt(l),o<55296||o>56319||l+1===c||(r=s.charCodeAt(l+1))<56320||r>57343?e?s.charAt(l):o:e?s.slice(l,l+2):r-56320+(o-55296<<10)+65536)}}},"0390":function(e,t,a){"use strict";var i=a("02f4")(!0);e.exports=function(e,t,a){return t+(a?i(e,t).length:1)}},"0454":function(e,t,a){"use strict";a("fa9a")},"0bfb":function(e,t,a){"use strict";var i=a("cb7c");e.exports=function(){var e=i(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},"11e9":function(e,t,a){var i=a("52a7"),n=a("4630"),o=a("6821"),r=a("6a99"),s=a("69a8"),l=a("c69a"),c=Object.getOwnPropertyDescriptor;t.f=a("9e1e")?c:function(e,t){if(e=o(e),t=r(t,!0),l)try{return c(e,t)}catch(a){}if(s(e,t))return n(!i.f.call(e,t),e[t])}},"214f":function(e,t,a){"use strict";a("b0c5");var i=a("2aba"),n=a("32e9"),o=a("79e5"),r=a("be13"),s=a("2b4c"),l=a("520a"),c=s("species"),d=!o((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")})),u=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var a="ab".split(e);return 2===a.length&&"a"===a[0]&&"b"===a[1]}();e.exports=function(e,t,a){var f=s(e),p=!o((function(){var t={};return t[f]=function(){return 7},7!=""[e](t)})),g=p?!o((function(){var t=!1,a=/a/;return a.exec=function(){return t=!0,null},"split"===e&&(a.constructor={},a.constructor[c]=function(){return a}),a[f](""),!t})):void 0;if(!p||!g||"replace"===e&&!d||"split"===e&&!u){var v=/./[f],h=a(r,f,""[e],(function(e,t,a,i,n){return t.exec===l?p&&!n?{done:!0,value:v.call(t,a,i)}:{done:!0,value:e.call(a,t,i)}:{done:!1}})),m=h[0],b=h[1];i(String.prototype,e,m),n(RegExp.prototype,f,2==t?function(e,t){return b.call(e,this,t)}:function(e){return b.call(e,this)})}}},"28a5":function(e,t,a){"use strict";var i=a("aae3"),n=a("cb7c"),o=a("ebd6"),r=a("0390"),s=a("9def"),l=a("5f1b"),c=a("520a"),d=a("79e5"),u=Math.min,f=[].push,p="split",g="length",v="lastIndex",h=4294967295,m=!d((function(){RegExp(h,"y")}));a("214f")("split",2,(function(e,t,a,d){var b;return b="c"=="abbc"[p](/(b)*/)[1]||4!="test"[p](/(?:)/,-1)[g]||2!="ab"[p](/(?:ab)*/)[g]||4!="."[p](/(.?)(.?)/)[g]||"."[p](/()()/)[g]>1||""[p](/.?/)[g]?function(e,t){var n=String(this);if(void 0===e&&0===t)return[];if(!i(e))return a.call(n,e,t);var o,r,s,l=[],d=(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.unicode?"u":"")+(e.sticky?"y":""),u=0,p=void 0===t?h:t>>>0,m=new RegExp(e.source,d+"g");while(o=c.call(m,n)){if(r=m[v],r>u&&(l.push(n.slice(u,o.index)),o[g]>1&&o.index=p))break;m[v]===o.index&&m[v]++}return u===n[g]?!s&&m.test("")||l.push(""):l.push(n.slice(u)),l[g]>p?l.slice(0,p):l}:"0"[p](void 0,0)[g]?function(e,t){return void 0===e&&0===t?[]:a.call(this,e,t)}:a,[function(a,i){var n=e(this),o=void 0==a?void 0:a[t];return void 0!==o?o.call(a,n,i):b.call(String(n),a,i)},function(e,t){var i=d(b,e,this,t,b!==a);if(i.done)return i.value;var c=n(e),f=String(this),p=o(c,RegExp),g=c.unicode,v=(c.ignoreCase?"i":"")+(c.multiline?"m":"")+(c.unicode?"u":"")+(m?"y":"g"),_=new p(m?c:"^(?:"+c.source+")",v),y=void 0===t?h:t>>>0;if(0===y)return[];if(0===f.length)return null===l(_,f)?[f]:[];var x=0,w=0,D=[];while(wm;)v(h[m++]);u.constructor=c,c.prototype=u,a("2aba")(i,"RegExp",c)}a("7a56")("RegExp")},"49f7":function(e,t,a){"use strict";var i=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"document-setting"},[e.showAddManage||e.feedDetailVisible?e._e():a("div",{staticClass:"document-setting-warpper"},[a("div",{staticClass:"nav"},[a("div",{staticClass:"nav-item",class:{active:0==e.active},on:{click:function(t){return e.onClickNav(0)}}},[0==e.active?a("p",{staticClass:"light-line"}):e._e(),e._v("\n 项目概览\n ")]),a("div",{staticClass:"nav-item",class:{active:1==e.active},on:{click:function(t){return e.onClickNav(1)}}},[1==e.active?a("p",{staticClass:"light-line"}):e._e(),e._v("\n 权限管理\n ")]),a("div",{staticClass:"nav-item",class:{active:2==e.active},on:{click:function(t){return e.onClickNav(2)}}},[2==e.active?a("p",{staticClass:"light-line"}):e._e(),e._v("\n 历史记录\n ")]),a("div",{staticClass:"nav-item",class:{active:3==e.active},on:{click:function(t){return e.onClickNav(3)}}},[3==e.active?a("p",{staticClass:"light-line"}):e._e(),e._v("\n 反馈建议\n "),e.newFeed?a("span",{staticClass:"redDot"}):e._e()])]),a("div",{staticClass:"content"},[0==e.active?a("div",{staticClass:"project"},[a("el-form",{key:"doc",ref:"docForm",staticClass:"w7-form__no-required-icon",attrs:{model:e.docData,rules:e.rules,"label-width":"85px","label-position":"left"}},[a("el-form-item",{staticClass:"cover-warpper",attrs:{label:"项目封面"}},[a("div",{staticClass:"upload-wrap"},[a("el-upload",{ref:"upload",attrs:{action:"/admin/upload/image",accept:".jpg,.jpeg,.png","show-file-list":!1,"on-success":e.handleAvatarSuccess,"before-upload":e.beforeAvatarUpload}},[a("div",{staticClass:"cover-img"},[e.docData.cover?a("img",{attrs:{src:e.docData.cover}}):e._e()])]),a("div",{staticClass:"cover-btn"},[a("el-upload",{ref:"upload",attrs:{action:"/admin/upload/image",accept:".jpg,.jpeg,.png","show-file-list":!1,"on-success":e.handleAvatarSuccess,"before-upload":e.beforeAvatarUpload}},[a("el-button",{attrs:{type:"primary",plain:""}},[e._v("上传封面")])],1),a("el-button",{staticClass:"cover-default",on:{click:function(t){e.docData.cover=""}}},[e._v("默认封面")])],1)],1),a("div",{staticClass:"el-upload__tip"},[e._v("格式要求:支持jpg、jpeg、png格式,图片小于5M,最佳图片比例2:1。")])]),a("el-form-item",{attrs:{label:"项目名称",prop:"name"}},[a("el-input",{model:{value:e.docData.name,callback:function(t){e.$set(e.docData,"name",t)},expression:"docData.name"}})],1),a("el-form-item",{attrs:{label:"公开性质"}},[a("el-select",{model:{value:e.docData.is_public,callback:function(t){e.$set(e.docData,"is_public",t)},expression:"docData.is_public"}},[a("el-option",{attrs:{label:"公开项目",value:"1"}}),a("el-option",{attrs:{label:"私有项目",value:"2"}})],1)],1),1!=e.docData.is_public?a("el-form-item",{attrs:{label:"查看权限"}},[a("el-select",{model:{value:e.docData.login_preview,callback:function(t){e.$set(e.docData,"login_preview",t)},expression:"docData.login_preview"}},[a("el-option",{attrs:{label:"仅限有权限者查看",value:"2"}}),a("el-option",{attrs:{label:"点击链接登录后查看",value:"3"}})],1)],1):e._e()],1),a("div",{staticClass:"btns"},[a("el-button",{attrs:{type:"primary"},on:{click:e.saveDoc}},[e._v("保存")]),a("el-button",{on:{click:e.delDoc}},[e._v("删除")])],1)],1):e._e(),1==e.active?a("div",{staticClass:"manage"},[a("div",{staticClass:"top"},[a("el-button",{attrs:{type:"primary",plain:""},on:{click:e.openAddManage}},[e._v("添加权限")])],1),a("el-table",{key:"manageTable",staticClass:"w7-table",attrs:{"max-height":"370",data:e.details.operator,"header-cell-style":{background:"#f7f9fc",color:"#606266"}}},[a("el-table-column",{attrs:{prop:"username",label:"名称",width:"300px"}}),a("el-table-column",{attrs:{label:"身份",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[e.shwoEditRole&&e.selectUserId==t.row.id?a("el-select",{staticClass:"edit-role-change",on:{change:e.editRole},model:{value:e.selectUserRole,callback:function(t){e.selectUserRole=t},expression:"selectUserRole"}},e._l(e.role_list,(function(e){return a("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1):[1==t.row.acl.role?a("div",{staticClass:"identity"},[e._v(e._s(t.row.acl.name))]):[e._v(e._s(t.row.acl.name))]]]}}],null,!1,505741635)}),a("el-table-column",{attrs:{label:"操作",align:"right"},scopedSlots:e._u([{key:"default",fn:function(t){return a("div",{staticClass:"oper"},[2==e.details.is_public?a("el-tooltip",{attrs:{effect:"dark",content:"编辑",placement:"bottom"}},[e.details.acl.has_manage&&1!=t.row.acl.role?a("i",{staticClass:"wi wi-edit",on:{click:function(a){return a.stopPropagation(),e.editManage(t.row)}}}):e._e()]):e._e(),a("el-tooltip",{attrs:{effect:"dark",content:"删除",placement:"bottom"}},[e.details.acl.has_manage&&1!=t.row.acl.role?a("i",{staticClass:"wi wi-delete",on:{click:function(a){return e.removeManage(t.row.id)}}}):e._e()])],1)}}],null,!1,519701077)})],1)],1):e._e(),2==e.active?a("div",{staticClass:"history"},[a("el-table",{key:"historyTable",ref:"historyTableRef",staticClass:"w7-table",attrs:{data:e.historyList,"max-height":"370"}},[a("el-table-column",{attrs:{prop:"remark",label:"描述"}}),a("el-table-column",{attrs:{prop:"time",label:"时间",align:"right"}})],1),a("el-pagination",{attrs:{background:"",layout:"prev, pager, next, total","prev-text":"上一页","next-text":"下一页","page-size":5,"current-page":e.currentPageHistory,"page-count":e.pageCountHistory,"hide-on-single-page":!0},on:{"current-change":e.getHistory,"update:currentPage":function(t){e.currentPageHistory=t},"update:current-page":function(t){e.currentPageHistory=t}}})],1):e._e(),3==e.active?a("div",{staticClass:"feed"},[a("el-table",{key:"feedTable",ref:"feedTableRef",staticClass:"w7-table",attrs:{data:e.feedList,"max-height":"370"}},[a("el-table-column",{attrs:{prop:"type_name",label:"问题类型",align:"center"}}),a("el-table-column",{attrs:{prop:"created_at",label:"时间",align:"center"}}),a("el-table-column",{attrs:{prop:"status_text",label:"状态",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){var i=t.row;return[i.status?a("span",[e._v(e._s(i.status_text))]):a("span",{staticStyle:{color:"#3296fa"}},[e._v(e._s(i.status_text))])]}}],null,!1,2194571870)}),a("el-table-column",{attrs:{label:"操作",align:"center"},scopedSlots:e._u([{key:"default",fn:function(t){return[a("div",[a("el-button",{attrs:{type:"primary"},on:{click:function(a){return e.getFeedDetail(t.row)}}},[e._v("查看详情")])],1)]}}],null,!1,1946360409)})],1),a("el-pagination",{attrs:{background:"",layout:"prev, pager, next, total","prev-text":"上一页","next-text":"下一页","page-size":5,"current-page":e.currentPageFeed,"page-count":e.pageCountFeed,"hide-on-single-page":!0},on:{"current-change":e.getFeed,"update:currentPage":function(t){e.currentPageFeed=t},"update:current-page":function(t){e.currentPageFeed=t}}})],1):e._e()])]),e.feedDetailVisible?a("div",{staticClass:"feedDetailHeader"},[a("el-link",{attrs:{underline:!1},on:{click:function(t){e.feedDetailVisible=!1}}},[a("i",{staticClass:"el-icon-arrow-left"}),e._v("用户反馈详情")]),a("el-link",{attrs:{underline:!1},on:{click:function(t){e.feedDetailVisible=!1}}},[a("i",{staticClass:"el-icon-close"})])],1):e._e(),e.feedDetailVisible?a("div",{staticClass:"feedDetail"},[a("div",{staticClass:"item"},[a("div",{staticClass:"lef"},[e._v("问题类型:")]),a("div",{staticClass:"rig",domProps:{innerHTML:e._s(e.feedType)}})]),a("div",{staticClass:"item"},[a("div",{staticClass:"lef"},[e._v("意见反馈:")]),a("div",{staticClass:"rig"},[e._v(e._s(e.feedDetail.content))])]),a("div",{staticClass:"item"},[a("div",{staticClass:"lef"},[e._v("反馈截图:")]),a("div",{staticClass:"rig"},e._l(e.feedDetail.images,(function(t,i){return a("el-image",{key:i,staticStyle:{width:"100px",height:"100px","margin-right":"20px"},attrs:{src:t,"preview-src-list":e.feedDetail.images}})})),1)])]):e._e(),e.showAddManage?a("div",{staticClass:"add-manage-header"},[a("el-link",{attrs:{underline:!1},on:{click:function(t){e.showAddManage=!1}}},[a("i",{staticClass:"el-icon-arrow-left"}),e._v("添加权限")]),a("el-link",{attrs:{underline:!1},on:{click:function(t){e.showAddManage=!1}}},[a("i",{staticClass:"el-icon-close"})])],1):e._e(),e.showAddManage?a("div",{staticClass:"add-manage-body"},[a("el-form",{key:"addManage",ref:"addManageForm",staticClass:"w7-form__no-required-icon",attrs:{model:e.addManageData,rules:e.rules,"label-width":"100px"}},[a("el-form-item",{attrs:{label:"用户名",prop:"username"}},[a("el-select",{attrs:{filterable:"",remote:"","reserve-keyword":"",placeholder:"请输入用户名","remote-method":e.remoteMethod,loading:e.loading},model:{value:e.addManageData.username,callback:function(t){e.$set(e.addManageData,"username",t)},expression:"addManageData.username"}},e._l(e.userOptions,(function(e){return a("el-option",{key:e.username,attrs:{label:e.username,value:e.username}})})),1)],1),a("el-form-item",{attrs:{label:"权限设置"}},[a("el-select",{model:{value:e.addManageData.role,callback:function(t){e.$set(e.addManageData,"role",t)},expression:"addManageData.role"}},e._l(e.role_list,(function(e){return a("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})})),1)],1)],1),a("div",{staticClass:"add-manage-footer"},[a("el-button",{attrs:{type:"primary"},on:{click:e.addManage}},[e._v("确 定")]),a("el-button",{on:{click:function(t){e.showAddManage=!1}}},[e._v("取 消")])],1)],1):e._e(),a("div",{staticClass:"reset-element"},[a("el-dialog",{staticClass:"delete-doc",attrs:{title:"删除文档",visible:e.deleteDocVisible,width:"570px",center:"",modal:!1,"modal-append-to-body":!1},on:{"update:visible":function(t){e.deleteDocVisible=t}}},[a("el-form",{staticStyle:{padding:"0 30px 20px"},attrs:{model:e.deleteDocForm}},[a("el-form-item",{attrs:{label:"文档名称:","label-width":e.formLabelWidth}},[a("el-input",{attrs:{autocomplete:"off"},model:{value:e.deleteDocForm.name,callback:function(t){e.$set(e.deleteDocForm,"name",t)},expression:"deleteDocForm.name"}}),a("div",{staticClass:"el-form-item__error",staticStyle:{"margin-top":"5px"}},[e._v("删除文档须谨慎操作,一旦删除将无法恢复!")])],1)],1),a("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[a("el-button",{on:{click:function(t){e.deleteDocVisible=!1}}},[e._v("取 消")]),a("el-button",{attrs:{type:"primary"},on:{click:e.defineDeleteDoc}},[e._v("确 定")])],1)],1)],1)])},n=[],o=a("79ac"),r=o["a"],s=(a("7d57"),a("0454"),a("2877")),l=Object(s["a"])(r,i,n,!1,null,"63bdab51",null);t["a"]=l.exports},"520a":function(e,t,a){"use strict";var i=a("0bfb"),n=RegExp.prototype.exec,o=String.prototype.replace,r=n,s="lastIndex",l=function(){var e=/a/,t=/b*/g;return n.call(e,"a"),n.call(t,"a"),0!==e[s]||0!==t[s]}(),c=void 0!==/()??/.exec("")[1],d=l||c;d&&(r=function(e){var t,a,r,d,u=this;return c&&(a=new RegExp("^"+u.source+"$(?!\\s)",i.call(u))),l&&(t=u[s]),r=n.call(u,e),l&&r&&(u[s]=u.global?r.index+r[0].length:t),c&&r&&r.length>1&&o.call(r[0],a,(function(){for(d=1;d");t.feedDetailVisible=!0,t.getFeedFlag()}))},getFeedFlag:function(){var e=this;Object(i["k"])({document_id:this.id}).then((function(t){200==t.code&&(e.newFeed=t.data.new_feed)}))},handleAvatarSuccess:function(e){200===e.code?this.docData.cover=e.data.url:this.$message.error(e.message)},beforeAvatarUpload:function(e){var t="image/jpg"===e.type||"image/jpeg"===e.type||"image/png"===e.type,a=e.size/1024/1024<5;return t||this.$message.error("上传图片只支持jpg、jpeg、png格式!"),a||this.$message.error("上传图片大小不能超过 5MB!"),t&&a},saveDoc:function(){var e=this,t=this.docData.cover,a=this.docData.name,i=this.docData.login_preview,n=this.docData.is_public;n=1==n?1:2==i?2:3,this.$refs["docForm"].validate((function(i){i&&e.$post("/admin/document/update",{document_id:e.details.id,cover:t,name:a,is_public:n}).then((function(){e.getdetails(),e.$message({type:"success",message:"保存成功!"})}))}))},delDoc:function(){this.deleteDocVisible=!0},editManage:function(e){this.selectUserId=e.id,this.selectUserRole=e.acl.role,this.shwoEditRole=!0},editRole:function(){var e=this;this.$post("/admin/document/operator",{user_id:this.selectUserId,document_id:this.id,permission:this.selectUserRole}).then((function(){e.getdetails(),e.shwoEditRole=!1}))},removeManage:function(e){var t=this;this.$confirm("确定删除该操作员吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then((function(){t.$post("/admin/document/operator",{user_id:e,document_id:t.id}).then((function(){t.getdetails(),t.$message("删除成功!")}))}))},openAddManage:function(){this.addManageData={username:"",role:this.role_list[0].id||""},this.showAddManage=!0},addManage:function(){var e=this,t=!0;for(var a in this.details.operator)if(this.details.operator[a].username==this.addManageData.username)return this.$message("用户已存在"),void(t=!1);t&&this.$refs["addManageForm"].validate((function(t){t&&e.$post("/admin/document/operator",{user_name:e.addManageData.username,document_id:e.id,permission:e.addManageData.role}).then((function(){e.getdetails(),e.$message("添加成功!"),e.showAddManage=!1}))}))},uploadCover:function(){this.$refs.upload.uploadFiles()},remoteMethod:function(e){var t=this;""!==e?(this.loading=!0,Object(i["o"])({no_self:1,name:e}).then((function(e){t.loading=!1,t.userOptions=e.data})).catch((function(e){t.loading=!1}))):this.userOptions=[]},defineDeleteDoc:function(){var e=this;Object(i["e"])(this.deleteDocForm).then((function(){e.$parent.handleClose(),e.deleteDocVisible=!1,e.deleteDocForm.name="",e.$message({type:"success",message:"删除成功!"});var t=e.$route.name;e.$router.push({name:t})}))}}}}).call(this,a("1157"))},"7d57":function(e,t,a){"use strict";a("e30f")},"8b97":function(e,t,a){var i=a("d3f4"),n=a("cb7c"),o=function(e,t){if(n(e),!i(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,i){try{i=a("9b43")(Function.call,a("11e9").f(Object.prototype,"__proto__").set,2),i(e,[]),t=!(e instanceof Array)}catch(n){t=!0}return function(e,a){return o(e,a),t?e.__proto__=a:i(e,a),e}}({},!1):void 0),check:o}},9093:function(e,t,a){var i=a("ce10"),n=a("e11e").concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return i(e,n)}},a481:function(e,t,a){"use strict";var i=a("cb7c"),n=a("4bf8"),o=a("9def"),r=a("4588"),s=a("0390"),l=a("5f1b"),c=Math.max,d=Math.min,u=Math.floor,f=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g,g=function(e){return void 0===e?e:String(e)};a("214f")("replace",2,(function(e,t,a,v){return[function(i,n){var o=e(this),r=void 0==i?void 0:i[t];return void 0!==r?r.call(i,o,n):a.call(String(o),i,n)},function(e,t){var n=v(a,e,this,t);if(n.done)return n.value;var u=i(e),f=String(this),p="function"===typeof t;p||(t=String(t));var m=u.global;if(m){var b=u.unicode;u.lastIndex=0}var _=[];while(1){var y=l(u,f);if(null===y)break;if(_.push(y),!m)break;var x=String(y[0]);""===x&&(u.lastIndex=s(f,o(u.lastIndex),b))}for(var w="",D=0,C=0;C<_.length;C++){y=_[C];for(var k=String(y[0]),M=c(d(r(y.index),f.length),0),$=[],F=1;F=D&&(w+=f.slice(D,M)+S,D=M+k.length)}return w+f.slice(D)}];function h(e,t,i,o,r,s){var l=i+e.length,c=o.length,d=p;return void 0!==r&&(r=n(r),d=f),a.call(s,d,(function(a,n){var s;switch(n.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,i);case"'":return t.slice(l);case"<":s=r[n.slice(1,-1)];break;default:var d=+n;if(0===d)return a;if(d>c){var f=u(d/10);return 0===f?a:f<=c?void 0===o[f-1]?n.charAt(1):o[f-1]+n.charAt(1):a}s=o[d-1]}return void 0===s?"":s}))}}))},aae3:function(e,t,a){var i=a("d3f4"),n=a("2d95"),o=a("2b4c")("match");e.exports=function(e){var t;return i(e)&&(void 0!==(t=e[o])?!!t:"RegExp"==n(e))}},b0c5:function(e,t,a){"use strict";var i=a("520a");a("5ca1")({target:"RegExp",proto:!0,forced:i!==/./.exec},{exec:i})},e30f:function(e,t,a){},fa9a:function(e,t,a){}}]); ================================================ FILE: public/js/chunk-d779deb8.cbfbc744.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-d779deb8"],{"2ccb":function(t,i,e){"use strict";e.r(i);var s=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("el-container",{staticClass:"layout-container admin-setting"},[e("el-aside",{staticClass:"admin-view-aside",attrs:{width:t.isCollapse?"64px":"240px"}},[e("el-menu",{staticClass:"admin-view-menu",attrs:{"default-active":t.active,router:!0,collapse:t.isCollapse}},[e("el-menu-item",{attrs:{index:"/admin/setting"}},[e("i",{staticClass:"wi wi-cunchushebei"}),e("span",{attrs:{slot:"title"},slot:"title"},[t._v("存储设置")])]),e("el-submenu",{attrs:{index:"1"}},[e("template",{slot:"title"},[e("i",{staticClass:"wi wi-system-login-settings"}),e("span",[t._v("第三方登录设置")])]),t._l(t.thirdPartyLoginMenu,(function(i,s){return[e("el-menu-item",{key:s,attrs:{index:"/admin/setting/third-party?id="+i.id}},[e("span",{staticClass:"menu-name"},[t._v(t._s(i.name)+"授权配置")])])]})),e("el-menu-item",{attrs:{index:"/admin/setting/third-party-custom"}},[t._v("自定义授权配置")])],2),e("el-menu-item",{attrs:{index:"/admin/setting/login"}},[e("i",{staticClass:"wi wi-system-login-settings"}),e("span",{attrs:{slot:"title"},slot:"title"},[t._v("登录设置")])]),e("el-menu-item",{attrs:{index:"/admin/setting/nav"}},[e("i",{staticClass:"wi wi-wi-system-nav-settings"}),e("span",{attrs:{slot:"title"},slot:"title"},[t._v("导航设置")])]),e("el-menu-item",{attrs:{index:"/admin/setting/index/setting"}},[e("i",{staticClass:"wq wq-shouye1"}),e("span",{attrs:{slot:"title"},slot:"title"},[t._v("首页设置")])]),e("el-menu-item",{attrs:{index:"/admin/setting/screenWords"}},[e("i",{staticClass:"wi wi-wi-system-nav-settings"}),e("span",{attrs:{slot:"title"},slot:"title"},[t._v("屏蔽词设置")])])],1)],1),e("el-main",[e("router-view",{on:{refreshMenu:t.refreshMenu}})],1)],1)},n=[],a={data:function(){return{active:"/admin/setting",isCollapse:!1,thirdPartyLoginMenu:[]}},beforeRouteEnter:function(t,i,e){e((function(i){i.active=t.path}))},created:function(){this.init()},methods:{init:function(){var t=this;this.$post("/admin/third-party-login/all").then((function(i){t.thirdPartyLoginMenu=i.data}))},refreshMenu:function(t){t&&this.init()}}},l=a,r=(e("37a6"),e("2877")),o=Object(r["a"])(l,s,n,!1,null,null,null);i["default"]=o.exports},"37a6":function(t,i,e){"use strict";e("bcad")},bcad:function(t,i,e){}}]); ================================================ FILE: public/js/chunk-f66a53c0.e61a0c3e.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-f66a53c0"],{"14b8":function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABuklEQVQ4T9WUv6tBYRjHv4eBEMogAxKRH5tJCslmUCZWgz/A/2JQVgODjSxMLCgDGYSNUga/BhTn9rx1Tk7ce8/VHe59prfO+3zO832e7/NyPM/z+MXg/hfwcrmg2+1iv9/LaoLRaEQ4HIZKpRLvSyS3220cj0f4fD5ZwOl0Cr1ej3g8/hpYr9cRCATgdrtlAWezGSaTCdLp9NdAl8uF5XKJRwPodDpYLBbJj2QD7XY7Wq0WbrebCDCbzaxfj0Ht2W63cDgc70s+HA4YDoc4n8/wer0SGFElQxF6aLVaUa1WRclqtRrZbBbX6xXlcpmBaMK9Xg/JZFJehSRFkEy2IMBiscBgMEAmk2ESR6MR1us1gwrxssLPprxardBsNpHL5aBUKtHpdKBQKBCLxd4DUlatVmPG12q12Gw2yOfz7PxWhfP5HI1GA8FgEAaDAePxGBqNBqlUChzHMeaPJJdKJSQSCTidTpZ8v99RqVQQCoVA3n0CCqvn9/tFCTabje0q7XmxWEShUJB4sd/v43Q6iesnqZCSyAq73U5MikajMJlMbOL0LRKJSIA0ZTK4x+N5rlDWAn9z6e8/sB+8RhLU3r6FXgAAAABJRU5ErkJggg=="},"36d3":function(e,t,a){},4917:function(e,t,a){"use strict";var r=a("cb7c"),s=a("9def"),i=a("0390"),n=a("5f1b");a("214f")("match",1,(function(e,t,a,o){return[function(a){var r=e(this),s=void 0==a?void 0:a[t];return void 0!==s?s.call(a,r):new RegExp(a)[t](String(r))},function(e){var t=o(a,e,this);if(t.done)return t.value;var c=r(e),l=String(this);if(!c.global)return n(c,l);var u=c.unicode;c.lastIndex=0;var d,p=[],g=0;while(null!==(d=n(c,l))){var f=String(d[0]);p[g]=f,""===f&&(c.lastIndex=i(l,s(c.lastIndex),u)),g++}return 0===g?null:p}]}))},"499a":function(e,t,a){e.exports=a.p+"img/userAvg.db34f8a2.png"},"4ae1":function(e,t,a){},"4cbb":function(e,t,a){"use strict";a.r(t);var r=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"container"},[a("div",{staticClass:"header_bg"},[a("SignHeader")],1),a("div",{staticClass:"content"},[a("SignYourSelfLeft"),a("SignYourSelfRight")],1)])},s=[],i=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"container-left"},[r("el-card",{staticClass:"box-card"},[r("el-tabs",{on:{"tab-click":e.handleClick},model:{value:e.activeName,callback:function(t){e.activeName=t},expression:"activeName"}},[r("el-tab-pane",{attrs:{label:"动态",name:"first"}},[e._l(e.list,(function(t,s){return r("div",{key:s},[1==t.document.is_public?r("div",{staticClass:"dt_box"},[r("div",{staticClass:"f_div"},[9==t.operate?r("img",{attrs:{src:a("50dd"),alt:""}}):e._e(),1==t.operate?r("img",{attrs:{src:a("7728"),alt:""}}):e._e(),9==t.operate?r("span",{staticClass:"Collection"},[e._v("收藏了文档")]):e._e(),1==t.operate?r("span",{staticClass:"Collection"},[e._v("创建了文档")]):e._e(),r("span",{staticClass:"time"},[e._v(e._s(t.time_str))])]),r("div",{staticClass:"xx"},[r("div",{staticClass:"left_avg"},[1===t.operate?r("el-avatar",{attrs:{src:t.user.avatar?t.user.avatar:e.avatarImg}}):e._e(),9===t.operate?r("el-avatar",{attrs:{src:t.document.user.avatar}}):e._e()],1),r("div",{staticClass:"dynamic",on:{click:function(a){return e.goView(t)}}},[r("p",{staticClass:"user"},[e._v("\n "+e._s(t.document.name)+"\n ")])])])]):e._e()])})),r("div",{staticClass:"pagination-wrap"},[r("el-pagination",{attrs:{background:"","hide-on-single-page":e.total<=15,"current-page":e.listQuery.page,"page-sizes":[15,25,35],"page-size":e.listQuery.size,layout:e.paginationLayouts,total:e.total},on:{"update:currentPage":function(t){return e.$set(e.listQuery,"page",t)},"update:current-page":function(t){return e.$set(e.listQuery,"page",t)},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1)],2),r("el-tab-pane",{attrs:{label:"文档",name:"second"}},[r("YourSelfDoc")],1)],1)],1)],1)},n=[],o=(a("8e6e"),a("ac6a"),a("456d"),a("7f7f"),a("fc11")),c=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"container"},[e._l(e.docList,(function(t,s){return r("div",{key:s,staticClass:"doc_box"},[r("div",{staticClass:"doc_title"},[r("div",{staticClass:"f_div"},[t.is_public?e._e():[r("img",{attrs:{src:a("ce77"),alt:""}}),r("span",{staticClass:"collection"},[e._v("私有文档仅自己或操作员、阅读员可见")])],r("span",{staticClass:"time"},[t.acl.has_edit?r("el-button",{attrs:{type:"text"},on:{click:function(a){return e.goChapter(t)}}},[e._v("编辑")]):e._e(),t.acl.has_manage?r("el-button",{attrs:{type:"text"},on:{click:function(a){return a.stopPropagation(),e.settingDoc(t.id)}}},[e._v("管理")]):e._e()],1)],2),r("div",{staticClass:"doc_title"},[r("span",{staticClass:"detail",on:{click:function(a){return e.goDetail(t.id)}}},[e._v(e._s(t.name))])]),r("div",{staticClass:"doc_t3"},[r("p",[e._v("\n "+e._s(t.description)+"\n ")])])])])})),r("div",{staticClass:"pagination-wrap"},[r("el-pagination",{attrs:{"hide-on-single-page":e.total<=15,"current-page":e.listQuery.page,"page-sizes":[15,25,35],"page-size":e.listQuery.page_size,layout:e.paginationLayouts,total:e.total},on:{"update:currentPage":function(t){return e.$set(e.listQuery,"page",t)},"update:current-page":function(t){return e.$set(e.listQuery,"page",t)},"size-change":e.handleSizeChange,"current-change":e.handleCurrentChange}})],1),r("el-dialog",{staticClass:"we7-dialog dialog-setting",attrs:{title:"项目设置",width:"1000px",visible:e.showSetting,"before-close":e.handleClose},on:{"update:visible":function(t){e.showSetting=t}}},[r("setting",{attrs:{id:e.settingDocId}})],1)],2)},l=[],u=a("4ec3"),d=a("fa7d"),p=a("49f7"),g={name:"yourSelfDoc",components:{setting:p["a"]},data:function(){return{settingDocId:"",loading:!1,pageCount:"",showSetting:!1}},computed:{paginationLayouts:function(){return this.total&&this.total/this.listQuery.page_size>1?"total, sizes, prev, pager, next, jumper":"total, sizes"},docList:function(){return this.$store.state.allProjectData.data},total:function(){return this.$store.state.allProjectData.total},listQuery:function(){return this.$store.state.allProjectListQuery}},created:function(){this.$store.dispatch("getAllProject")},methods:{goDetail:function(e){this.$router.push({path:"/chapter/".concat(e)})},handleClose:function(){this.$store.dispatch("getAllProject"),this.showSetting=!1},settingDoc:function(e){this.settingDocId=e,this.showSetting=!0},goChapter:function(e,t){var a={name:"chapter",params:{id:e.id}};t&&(a["query"]={type:"add",documentType:1}),localStorage.projectName=e.name,this.$router.push(a)},format:function(e){if(e){var t=Object(d["a"])(e);return t.length>8?Object(d["a"])(e).slice(5):Object(d["a"])(e)}},handleSizeChange:function(e){this.listQuery.page_size=e,this.$store.dispatch("getAllProject")},handleCurrentChange:function(e){this.listQuery.page=e,this.$store.dispatch("getAllProject")}}},f=g,_=(a("a739"),a("2877")),m=Object(_["a"])(f,c,l,!1,null,"5afe36eb",null),A=m.exports,h=a("2f62");function v(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function b(e){for(var t=1;t1?"total, sizes, prev, pager, next, jumper":"total, sizes"},list:function(){return this.$store.state.userOperateData.data},total:function(){return this.$store.state.userOperateData.total},listQuery:function(){return this.$store.state.userOperateListQuery}}),data:function(){return{activeName:localStorage.userCenterActiveName||"first",avatarImg:"//img.w7.cc/12/33/89/a8/7f/2f/d4/0d/d9/c0/3a/dc/73/a9/9c/c0.png"}},mounted:function(){},methods:{format:function(e){if(e){var t=Object(d["a"])(e);return t.length>8?Object(d["a"])(e).slice(5):Object(d["a"])(e)}},formatDate:function(e){var t=new Date(e),a=t.getFullYear(),r=t.getMonth()+1;r=r<10?"0"+r:r;var s=t.getDate();return s=s<10?"0"+s:s,a+"-"+r+"-"+s},handleClick:function(e,t){localStorage.userCenterActiveName=e.name},handleSizeChange:function(e){this.$store.commit("setUserOperateListQuery",{page_size:e}),this.$store.dispatch("getUserOperate")},handleCurrentChange:function(e){this.$store.commit("setUserOperateListQuery",{page:e}),this.$store.dispatch("getUserOperate")},goView:function(e){var t={name:"viewHome",params:{id:e.document_id}};e.chapter_id&&(t.query={id:e.chapter_id});var a=this.$router.resolve(t),r=a.href;window.open(r,"_blank")}}},O=C,E=(a("9054"),Object(_["a"])(O,i,n,!1,null,"a46f0322",null)),y=E.exports,j=function(){var e=this,t=e.$createElement,r=e._self._c||t;return r("div",{staticClass:"container-right"},[e.UserInfo.id?r("div",{staticClass:"right_t1_d",on:{click:e.sendDoc}},[r("span",[e._v("发文档")])]):r("div",{staticClass:"right_t1_d",on:{click:function(t){return t.stopPropagation(),e.follow(t)}}},[r("span",[r("i",{staticClass:"el-icon-plus"}),e._v(" "+e._s(e.followVal))])]),r("div",{staticClass:"right_t3_d"},[r("el-card",{staticClass:"box-card"},[r("div",{staticClass:"clearfix",attrs:{slot:"header"},slot:"header"},[r("span",{staticClass:"profile"},[e._v("个人简介")]),e.UserInfo.id&&e.edit?r("el-button",{staticStyle:{float:"right",padding:"3px 0","margin-left":"13px"},attrs:{type:"text"},on:{click:e.save}},[e._v("保存")]):e._e(),""===e.UserInfo.id||e.edit?e._e():r("el-button",{staticStyle:{float:"right",padding:"3px 0"},attrs:{type:"text"},on:{click:e.editInfo}},[e._v("编辑")])],1),e.form?r("el-form",{ref:"form",attrs:{model:e.form,rules:e.rules}},[r("div",{staticClass:"text item"},[r("img",{attrs:{src:a("e19b"),alt:""}}),r("el-form-item",{attrs:{label:"",prop:"company"}},[r("el-input",{class:{edit:e.edit},attrs:{readonly:!e.edit,size:"small",placeholder:"请填写公司和职称",clearable:""},model:{value:e.form.company,callback:function(t){e.$set(e.form,"company",t)},expression:"form.company"}})],1)],1),r("div",{staticClass:"text item"},[r("img",{attrs:{src:a("c743"),alt:""}}),r("el-form-item",{attrs:{label:"",prop:"skill"}},[r("el-input",{class:{edit:e.edit},attrs:{readonly:!e.edit,size:"small",clearable:"",placeholder:"请填写技能专长"},model:{value:e.form.skill,callback:function(t){e.$set(e.form,"skill",t)},expression:"form.skill"}})],1)],1),r("div",{staticClass:"text item"},[r("img",{attrs:{src:a("14b8"),alt:""}}),r("el-form-item",{attrs:{label:"",prop:"resume"}},[r("el-input",{class:{edit:e.edit},attrs:{readonly:!e.edit,size:"small",clearable:"",placeholder:"请填写个人简历"},model:{value:e.form.resume,callback:function(t){e.$set(e.form,"resume",t)},expression:"form.resume"}})],1)],1),r("div",{staticClass:"text item"},[r("img",{attrs:{src:a("c4dc"),alt:""}}),r("el-form-item",{attrs:{label:"",prop:"address"}},[r("el-input",{class:{edit:e.edit},attrs:{readonly:!e.edit,size:"small",clearable:"",placeholder:"请填写所在城市"},model:{value:e.form.address,callback:function(t){e.$set(e.form,"address",t)},expression:"form.address"}})],1)],1)]):e._e()],1)],1),r("el-dialog",{staticClass:"w7-dialog",attrs:{title:"创建项目",visible:e.dialogDocInfoVisible,"close-on-click-modal":!1,center:""},on:{"update:visible":function(t){e.dialogDocInfoVisible=t}}},[r("el-form",{attrs:{"label-width":"105px","label-position":"left"}},[r("el-form-item",{attrs:{label:"项目名称"}},[r("el-input",{attrs:{autocomplete:"off"},model:{value:e.name,callback:function(t){e.name=t},expression:"name"}})],1),r("el-radio-group",{staticClass:"ownership",model:{value:e.radio,callback:function(t){e.radio=t},expression:"radio"}},[r("el-radio",{attrs:{label:"1"},model:{value:e.radio,callback:function(t){e.radio=t},expression:"radio"}},[e._v("公开项目")]),r("el-radio",{attrs:{label:"2"},model:{value:e.radio,callback:function(t){e.radio=t},expression:"radio"}},[e._v("私有项目")])],1)],1),r("div",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[r("el-button",{attrs:{type:"primary"},on:{click:e.createDoc}},[e._v("确 定")]),r("el-button",{on:{click:function(t){e.dialogDocInfoVisible=!1}}},[e._v("取 消")])],1)],1)],1)},D=[];function U(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function x(e){for(var t=1;td)a=c(r,t=l[d++]),void 0!==a&&o(u,t,a);return u}})},9054:function(e,t,a){"use strict";a("66db")},"990b":function(e,t,a){var r=a("9093"),s=a("2621"),i=a("cb7c"),n=a("7726").Reflect;e.exports=n&&n.ownKeys||function(e){var t=r.f(i(e)),a=s.f;return a?t.concat(a(e)):t}},a739:function(e,t,a){"use strict";a("efb2")},c4dc:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACcklEQVQ4T62Uv09UQRDHZ/ZB7l2D0QTFAhNj4h8AGhMaxR+JhZVCxMbEwkaNWniy84jeSu7eLmAhxtCaWCgCVhYWRIkNjcI/oIkJMdFAwBiKe0Dejhk95DjluILt3tv5fmbnO7OLsMMLd5gHNYEDAwNd3vtbAHCknPijUmq4t7d3YquDbAVEa+0IIl4EAMfMkwJAxDMAoJn5BRHdAACuBv8X6Jy7CgD9QRB05HK5L5WioaGhg2maTnvvoyiKntYFtNZ+YuZYBMVisVMp9UiE3vvbfX19U3EcX1FKkdb68LbAfD7fks1mv3nv966uri5mMpnviPhYhMx8c2VlpQUA9oRhuJAkyT5jzHwl9J+SC4VCa0NDw1ySJFlm9mEYLjPzaREppSZLpVITIqowDEtJkrQaY77WBBpjJHgxTdPzUp619h4i5ssio7UuiA1BEEwkSdJsjPE1gbJprX0IAMdmZ2dPjI+Pp865A/Jfaz3X3d0dtLW1vQeAaSK6u62HEmCMacpkMh8A4DUR3akUSTJEPLe0tHR0cHBwuSbQOTcCAGdl5Jh5FyLuZuYeInpZPvklRHzOzD8Q8eefPvEbIrq+Dv7blDiOm5VS8wJAxKQccIiZHyBiR7nL01IAIn4uf4eIOCoTEUXRwu/hXyfHcXxcKTWqtd5fWYZzrihJyjdlTGtNVfsyYj1RFImvG0Br7TUAuEBEpyoF0oT29vYxmZqZmZkuaVKVp28B4BURiV0bQOfcE2ZOiUgeg7qXtXYYEQOttdztTcB3zDzV2Nj4rG4aAKytrV1GxE6t9cnqksXs+5VJ6gRLp/uJyGwC1ineNmzHX+xfYMQWJNiuJSEAAAAASUVORK5CYII="},c743:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAB6UlEQVQ4T83UP2gUURAG8O/bBblWDFhoo4IQkICNYCtGESuLQCoVrAWxyL7ZQ+5OuZ3d49IoWEjUQtMIgopRUIw2IgQLIYWgxkJEsBTEveJ2R1Yukjsu90dSuNWyb/nxzcx7j9jih1vsYWRQVfeSPG5mEyTX0jR9VKvVfvYGGgpWKpVtpVLpGoDTJN+Y2RcApwDcFJGLY4NxHN83sz2+78/Mzc2tqWpAUkgeDYLg7VhgHMcnACxmWTZZLpe/R1F0zvO8eZLHgiBYUdWDJGfTNL2yXv7AkuM4vm1mP0TkQpFEVVdJJs65u0mSHDKzZ8X3PM/Ph2F4p3gfBr40s0URWeiAL0h+zLJs2ff9G2amACZJfnbOXR4FLPq3KiLV4udGo7Evy7JbJHea2VURua6qT0k+cc4VgxuasEixS0RO9tuvSZLsNrNPeZ5PhWH4YSC4YZp/BtALNpvNiXa7vWRm70Xk7Pp63x72YvV6/YDv+5GZvQPwDcB+kmcAvG61WrPVavXXpmA/zPO8ZQAPAWwnuQPAVwD3nHOPAdjG9F0JB2DzIpKMcu7/gqp6hOSDzglYKcrsJBsZ6xqKql4iOeWcm/lXrAvs7PxXAJYATBebdtQyN+1hFEWHPc+bLm6VIAiej9KzsS6H/wL8DQwx7hXPVocqAAAAAElFTkSuQmCC"},ce77:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAYAAACprHcmAAAA8klEQVQoU5WRMUrEQBSG/z8vIIIHWBRBvYA3EFu3DUnAWrs9gN5Ae6vdXpgJKVdrwQt4AUUhnmCLLTL8y8AGxmzlFDPw5nvfDP8jtqtt27O+7+8BTEkeSuoAvOR5/lAUxWfEGLemaa4keQAHQ3NyrkhWZVm+MhpDCB8JGI2Xkt7iC9umlZmd0zm3IHmTmL6rqjpxzv2QPB7qkhYR7hIDJK3rut733q8B7CWSjt57jf8ZQjg1s69xfcccAUkzkk8juIvwnORtctFLeiZ5DSBP6vOdNCT9SrrIsuwdwORPGv/KeTTBO5JTAEcAYt5LM3scJrgBzApzS4jh+3MAAAAASUVORK5CYII="},df95:function(e,t,a){"use strict";a("4ae1")},e19b:function(e,t){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACHElEQVQ4T82UPYgTQRTH3zyJGURQBEEthICVYHEGBDEqYqkgiLFRbLX0RNiZZSGzhOzMkqBYKILYiJU5K4tDRA7hBAVTCVbiF2gjEUQkG9nMk4G9I2c2a4Qr3GbYN+/95v/emzcM1vlj68yDWYBMa33UHSylfAYAVCSiENhoNDZyzh8AQCWDvE+S5GwYhr+mQacC6/X6hmq1eo+INidJUncAzvkCY+xHr9e70O12R3nQaUCX5m0A2DMcDk8opRIXrJTaVC6XHwHAWynlpbz0c4Fa6w4A1Pr9/vFOp/NzXIkxZgsRPQaAZSnl1T9VTgC11g0AOM0YOyKE+J6XVhRF2xHxKRE9lFKG4z5rgFrrecbYRWvtYd/3vxZ1M47jXdZa1/VbUsrrK76rwGazWSmVSi/SNN0fBMHnWe5nu92upGnaG41Gc0EQfHQxq0BjzG4iesUYW2SM3fc870kR1BhzypUGAE4OBoO5MAw/rQG6nyiK9iLiNQBYFELccDZjjCv8uayjd4UQN509juMGER201l7xff/NRMorBmOMq8eHMeCSU+z2iei8EOLYGHCrEGJ+alMyRRNARFRuz1qr/gugIKIdUsrLmeKlPIVa6zsA8E5KqQtTbrVaOxHxJQC8Zoy5R6CGiGeylBfchBARB4B9iHjA87wvhcBsZrdxzg8BAGagZbciYi0LtkmSPFdKffvr6M1yoYt8Znlg/+mM38eT/xUrmvW1AAAAAElFTkSuQmCC"},efb2:function(e,t,a){},f1ae:function(e,t,a){"use strict";var r=a("86cc"),s=a("4630");e.exports=function(e,t,a){t in e?r.f(e,t,s(0,a)):e[t]=a}},fa7d:function(module,__webpack_exports__,__webpack_require__){"use strict";__webpack_require__.d(__webpack_exports__,"a",(function(){return timestampFormat}));var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__("a481"),core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default=__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__=__webpack_require__("6b54"),core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1___default=__webpack_require__.n(core_js_modules_es6_regexp_to_string__WEBPACK_IMPORTED_MODULE_1__),core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2__=__webpack_require__("4917"),core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2___default=__webpack_require__.n(core_js_modules_es6_regexp_match__WEBPACK_IMPORTED_MODULE_2__),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3__=__webpack_require__("28a5"),core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3___default=__webpack_require__.n(core_js_modules_es6_regexp_split__WEBPACK_IMPORTED_MODULE_3__),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4__=__webpack_require__("3b2b"),core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4___default=__webpack_require__.n(core_js_modules_es6_regexp_constructor__WEBPACK_IMPORTED_MODULE_4__);function getUrlParam(e,t){var a=new RegExp("(^|&)"+t+"=([^&]*)(&|$)");if(e&&e.split("?")[1]){var r=e.split("?")[1].match(a);return null!=r?unescape(r[2]):null}}function replaceParamVal(url,paramName,replaceVal){var oUrl=url.toString(),re=eval("/("+paramName+"=)([^&]*)/gi"),nUrl=oUrl.replace(re,paramName+"="+replaceVal);return nUrl}function timestampFormat(e){var t=Date.parse(e)/1e3;function a(e){return(1==String(e).length?"0":"")+e}var r=parseInt((new Date).getTime()/1e3),s=r-t,i=new Date(1e3*r),n=new Date(1e3*t),o=n.getFullYear(),c=n.getMonth()+1,l=n.getDate(),u=n.getHours(),d=n.getMinutes();if(s<60)return"刚刚";if(s<3600)return Math.floor(s/60)+"分钟前";if(i.getFullYear()==o&&i.getMonth()+1==c&&i.getDate()==l)return"今天"+a(u)+":"+a(d);var p=new Date(1e3*(r-86400));return p.getFullYear()==o&&p.getMonth()+1==c&&p.getDate()==l?"昨天"+a(u)+":"+a(d):o+"年"+a(c)+"月"+a(l)+"日 "+a(u)+":"+a(d)}},fbfb:function(e,t,a){},fc11:function(e,t,a){"use strict";function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}a.d(t,"a",(function(){return r}))}}]); ================================================ FILE: public/js/chunk-vendors.26b96680.js ================================================ (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"0081":function(e,t){function n(e){const t="[A-Z_][A-Z0-9_.]*",n={$pattern:t,keyword:"HEADER ENDSEC DATA"},i={className:"meta",begin:"ISO-10303-21;",relevance:10},r={className:"meta",begin:"END-ISO-10303-21;",relevance:10};return{name:"STEP Part 21",aliases:["p21","step","stp"],case_insensitive:!0,keywords:n,contains:[i,r,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT("/\\*\\*!","\\*/"),e.C_NUMBER_MODE,e.inherit(e.APOS_STRING_MODE,{illegal:null}),e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),{className:"string",begin:"'",end:"'"},{className:"symbol",variants:[{begin:"#",end:"\\d+",illegal:"\\W"}]}]}}e.exports=n},"0118":function(e,t){function n(e){return{name:"Node REPL",contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",subLanguage:"javascript"}},variants:[{begin:/^>(?=[ ]|$)/},{begin:/^\.\.\.(?=[ ]|$)/}]}]}}e.exports=n},"0122":function(e,t,n){"use strict";function i(e){return i="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},i(e)}n.d(t,"a",(function(){return i}))},"014b":function(e,t,n){"use strict";var i=n("e53d"),r=n("07e3"),a=n("8e60"),o=n("63b6"),s=n("9138"),l=n("ebfd").KEY,c=n("294c"),u=n("dbdb"),d=n("45f2"),p=n("62a0"),h=n("5168"),f=n("ccb9"),_=n("6718"),m=n("47ee"),g=n("9003"),b=n("e4ae"),v=n("f772"),E=n("241e"),y=n("36c3"),S=n("1bc3"),C=n("aebd"),T=n("a159"),x=n("0395"),w=n("bf0b"),O=n("9aa9"),N=n("d9f6"),R=n("c3a1"),k=w.f,A=N.f,D=x.f,I=i.Symbol,M=i.JSON,L=M&&M.stringify,P="prototype",F=h("_hidden"),B=h("toPrimitive"),U={}.propertyIsEnumerable,$=u("symbol-registry"),j=u("symbols"),G=u("op-symbols"),q=Object[P],H="function"==typeof I&&!!O.f,V=i.QObject,z=!V||!V[P]||!V[P].findChild,Y=a&&c((function(){return 7!=T(A({},"a",{get:function(){return A(this,"a",{value:7}).a}})).a}))?function(e,t,n){var i=k(q,t);i&&delete q[t],A(e,t,n),i&&e!==q&&A(q,t,i)}:A,W=function(e){var t=j[e]=T(I[P]);return t._k=e,t},K=H&&"symbol"==typeof I.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof I},Q=function(e,t,n){return e===q&&Q(G,t,n),b(e),t=S(t,!0),b(n),r(j,t)?(n.enumerable?(r(e,F)&&e[F][t]&&(e[F][t]=!1),n=T(n,{enumerable:C(0,!1)})):(r(e,F)||A(e,F,C(1,{})),e[F][t]=!0),Y(e,t,n)):A(e,t,n)},X=function(e,t){b(e);var n,i=m(t=y(t)),r=0,a=i.length;while(a>r)Q(e,n=i[r++],t[n]);return e},Z=function(e,t){return void 0===t?T(e):X(T(e),t)},J=function(e){var t=U.call(this,e=S(e,!0));return!(this===q&&r(j,e)&&!r(G,e))&&(!(t||!r(this,e)||!r(j,e)||r(this,F)&&this[F][e])||t)},ee=function(e,t){if(e=y(e),t=S(t,!0),e!==q||!r(j,t)||r(G,t)){var n=k(e,t);return!n||!r(j,t)||r(e,F)&&e[F][t]||(n.enumerable=!0),n}},te=function(e){var t,n=D(y(e)),i=[],a=0;while(n.length>a)r(j,t=n[a++])||t==F||t==l||i.push(t);return i},ne=function(e){var t,n=e===q,i=D(n?G:y(e)),a=[],o=0;while(i.length>o)!r(j,t=i[o++])||n&&!r(q,t)||a.push(j[t]);return a};H||(I=function(){if(this instanceof I)throw TypeError("Symbol is not a constructor!");var e=p(arguments.length>0?arguments[0]:void 0),t=function(n){this===q&&t.call(G,n),r(this,F)&&r(this[F],e)&&(this[F][e]=!1),Y(this,e,C(1,n))};return a&&z&&Y(q,e,{configurable:!0,set:t}),W(e)},s(I[P],"toString",(function(){return this._k})),w.f=ee,N.f=Q,n("6abf").f=x.f=te,n("355d").f=J,O.f=ne,a&&!n("b8e3")&&s(q,"propertyIsEnumerable",J,!0),f.f=function(e){return W(h(e))}),o(o.G+o.W+o.F*!H,{Symbol:I});for(var ie="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;ie.length>re;)h(ie[re++]);for(var ae=R(h.store),oe=0;ae.length>oe;)_(ae[oe++]);o(o.S+o.F*!H,"Symbol",{for:function(e){return r($,e+="")?$[e]:$[e]=I(e)},keyFor:function(e){if(!K(e))throw TypeError(e+" is not a symbol!");for(var t in $)if($[t]===e)return t},useSetter:function(){z=!0},useSimple:function(){z=!1}}),o(o.S+o.F*!H,"Object",{create:Z,defineProperty:Q,defineProperties:X,getOwnPropertyDescriptor:ee,getOwnPropertyNames:te,getOwnPropertySymbols:ne});var se=c((function(){O.f(1)}));o(o.S+o.F*se,"Object",{getOwnPropertySymbols:function(e){return O.f(E(e))}}),M&&o(o.S+o.F*(!H||c((function(){var e=I();return"[null]"!=L([e])||"{}"!=L({a:e})||"{}"!=L(Object(e))}))),"JSON",{stringify:function(e){var t,n,i=[e],r=1;while(arguments.length>r)i.push(arguments[r++]);if(n=t=i[1],(v(t)||void 0!==e)&&!K(e))return g(t)||(t=function(e,t){if("function"==typeof n&&(t=n.call(this,e,t)),!K(t))return t}),i[1]=t,L.apply(M,i)}}),I[P][B]||n("35e8")(I[P],B,I[P].valueOf),d(I,"Symbol"),d(Math,"Math",!0),d(i.JSON,"JSON",!0)},"01ac":function(e,t){function n(e){const t="\\d(_|\\d)*",n="[eE][-+]?"+t,i=t+"(\\."+t+")?("+n+")?",r="\\w+",a=t+"#"+r+"(\\."+r+")?#("+n+")?",o="\\b("+a+"|"+i+")",s="[A-Za-z](_?[A-Za-z0-9.])*",l="[]\\{\\}%#'\"",c=e.COMMENT("--","$"),u={begin:"\\s+:\\s+",end:"\\s*(:=|;|\\)|=>|$)",illegal:l,contains:[{beginKeywords:"loop for declare others",endsParent:!0},{className:"keyword",beginKeywords:"not null constant access function procedure in out aliased exception"},{className:"type",begin:s,endsParent:!0,relevance:0}]};return{name:"Ada",case_insensitive:!0,keywords:{keyword:"abort else new return abs elsif not reverse abstract end accept entry select access exception of separate aliased exit or some all others subtype and for out synchronized array function overriding at tagged generic package task begin goto pragma terminate body private then if procedure type case in protected constant interface is raise use declare range delay limited record when delta loop rem while digits renames with do mod requeue xor",literal:"True False"},contains:[c,{className:"string",begin:/"/,end:/"/,contains:[{begin:/""/,relevance:0}]},{className:"string",begin:/'.'/},{className:"number",begin:o,relevance:0},{className:"symbol",begin:"'"+s},{className:"title",begin:"(\\bwith\\s+)?(\\bprivate\\s+)?\\bpackage\\s+(\\bbody\\s+)?",end:"(is|$)",keywords:"package body",excludeBegin:!0,excludeEnd:!0,illegal:l},{begin:"(\\b(with|overriding)\\s+)?\\b(function|procedure)\\s+",end:"(\\bis|\\bwith|\\brenames|\\)\\s*;)",keywords:"overriding function procedure with is renames return",returnBegin:!0,contains:[c,{className:"title",begin:"(\\bwith\\s+)?\\b(function|procedure)\\s+",end:"(\\(|\\s+|$)",excludeBegin:!0,excludeEnd:!0,illegal:l},u,{className:"type",begin:"\\breturn\\s+",end:"(\\s+|;|$)",keywords:"return",excludeBegin:!0,excludeEnd:!0,endsParent:!0,illegal:l}]},{className:"type",begin:"\\b(sub)?type\\s+",end:"\\s+",keywords:"type",excludeBegin:!0,illegal:l},u]}}e.exports=n},"01f9":function(e,t,n){"use strict";var i=n("2d00"),r=n("5ca1"),a=n("2aba"),o=n("32e9"),s=n("84f2"),l=n("41a0"),c=n("7f20"),u=n("38fd"),d=n("2b4c")("iterator"),p=!([].keys&&"next"in[].keys()),h="@@iterator",f="keys",_="values",m=function(){return this};e.exports=function(e,t,n,g,b,v,E){l(n,t,g);var y,S,C,T=function(e){if(!p&&e in N)return N[e];switch(e){case f:return function(){return new n(this,e)};case _:return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",w=b==_,O=!1,N=e.prototype,R=N[d]||N[h]||b&&N[b],k=R||T(b),A=b?w?T("entries"):k:void 0,D="Array"==t&&N.entries||R;if(D&&(C=u(D.call(new e)),C!==Object.prototype&&C.next&&(c(C,x,!0),i||"function"==typeof C[d]||o(C,d,m))),w&&R&&R.name!==_&&(O=!0,k=function(){return R.call(this)}),i&&!E||!p&&!O&&N[d]||o(N,d,k),s[t]=k,s[x]=m,b)if(y={values:w?k:T(_),keys:v?k:T(f),entries:A},E)for(S in y)S in N||a(N,S,y[S]);else r(r.P+r.F*(p||O),t,y);return y}},"0209":function(e,t){function n(e){return e?"string"===typeof e?e:e.source:null}function i(e){return r("(",e,")?")}function r(...e){const t=e.map(e=>n(e)).join("");return t}function a(e){const t=e.COMMENT("//","$",{contains:[{begin:/\\\n/}]}),n="decltype\\(auto\\)",r="[a-zA-Z_]\\w*::",a="<[^<>]+>",o="("+n+"|"+i(r)+"[a-zA-Z_]\\w*"+i(a)+")",s={className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},l="\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)",c={className:"string",variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",contains:[e.BACKSLASH_ESCAPE]},{begin:"(u8?|U|L)?'("+l+"|.)",end:"'",illegal:"."},e.END_SAME_AS_BEGIN({begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},u={className:"number",variants:[{begin:"\\b(0b[01']+)"},{begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"},{begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"}],relevance:0},d={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"},contains:[{begin:/\\\n/,relevance:0},e.inherit(c,{className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,illegal:"\\n"},t,e.C_BLOCK_COMMENT_MODE]},p={className:"title",begin:i(r)+e.IDENT_RE,relevance:0},h=i(r)+e.IDENT_RE+"\\s*\\(",f={keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",literal:"true false nullptr NULL"},_=[d,s,t,e.C_BLOCK_COMMENT_MODE,u,c],m={variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{beginKeywords:"new throw return else",end:/;/}],keywords:f,contains:_.concat([{begin:/\(/,end:/\)/,keywords:f,contains:_.concat(["self"]),relevance:0}]),relevance:0},g={className:"function",begin:"("+o+"[\\*&\\s]+)+"+h,returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:f,illegal:/[^\w\s\*&:<>.]/,contains:[{begin:n,keywords:f,relevance:0},{begin:h,returnBegin:!0,contains:[p],relevance:0},{className:"params",begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:[t,e.C_BLOCK_COMMENT_MODE,c,u,s,{begin:/\(/,end:/\)/,keywords:f,relevance:0,contains:["self",t,e.C_BLOCK_COMMENT_MODE,c,u,s]}]},s,t,e.C_BLOCK_COMMENT_MODE,d]};return{name:"C++",aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:f,illegal:"",keywords:f,contains:["self",s]},{begin:e.IDENT_RE+"::",keywords:f},{className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,contains:[{beginKeywords:"final class struct"},e.TITLE_MODE]}]),exports:{preprocessor:d,strings:c,keywords:f}}}e.exports=a},"0215":function(e,t){function n(e){const t={begin:"<",end:">",contains:[e.inherit(e.TITLE_MODE,{begin:/'[a-zA-Z0-9_]+/})]};return{name:"F#",aliases:["fs"],keywords:"abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",illegal:/\/\*/,contains:[{className:"keyword",begin:/\b(yield|return|let|do)!/},{className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]},{className:"string",begin:'"""',end:'"""'},e.COMMENT("\\(\\*(\\s)","\\*\\)",{contains:["self"]}),{className:"class",beginKeywords:"type",end:"\\(|=|$",excludeEnd:!0,contains:[e.UNDERSCORE_TITLE_MODE,t]},{className:"meta",begin:"\\[<",end:">\\]",relevance:10},{className:"symbol",begin:"\\B('[A-Za-z])\\b",contains:[e.BACKSLASH_ESCAPE]},e.C_LINE_COMMENT_MODE,e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),e.C_NUMBER_MODE]}}e.exports=n},"0290":function(e,t){function n(e){return e?"string"===typeof e?e:e.source:null}function i(...e){const t=e.map(e=>n(e)).join("");return t}function r(e){const t={begin:"^'{3,}[ \\t]*$",relevance:10},n=[{begin:/\\[*_`]/},{begin:/\\\\\*{2}[^\n]*?\*{2}/},{begin:/\\\\_{2}[^\n]*_{2}/},{begin:/\\\\`{2}[^\n]*`{2}/},{begin:/[:;}][*_`](?![*_`])/}],r=[{className:"strong",begin:/\*{2}([^\n]+?)\*{2}/},{className:"strong",begin:i(/\*\*/,/((\*(?!\*)|\\[^\n]|[^*\n\\])+\n)+/,/(\*(?!\*)|\\[^\n]|[^*\n\\])*/,/\*\*/),relevance:0},{className:"strong",begin:/\B\*(\S|\S[^\n]*?\S)\*(?!\w)/},{className:"strong",begin:/\*[^\s]([^\n]+\n)+([^\n]+)\*/}],a=[{className:"emphasis",begin:/_{2}([^\n]+?)_{2}/},{className:"emphasis",begin:i(/__/,/((_(?!_)|\\[^\n]|[^_\n\\])+\n)+/,/(_(?!_)|\\[^\n]|[^_\n\\])*/,/__/),relevance:0},{className:"emphasis",begin:/\b_(\S|\S[^\n]*?\S)_(?!\w)/},{className:"emphasis",begin:/_[^\s]([^\n]+\n)+([^\n]+)_/},{className:"emphasis",begin:"\\B'(?!['\\s])",end:"(\\n{2}|')",contains:[{begin:"\\\\'\\w",relevance:0}],relevance:0}],o={className:"symbol",begin:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",relevance:10},s={className:"bullet",begin:"^(\\*+|-+|\\.+|[^\\n]+?::)\\s+"};return{name:"AsciiDoc",aliases:["adoc"],contains:[e.COMMENT("^/{4,}\\n","\\n/{4,}$",{relevance:10}),e.COMMENT("^//","$",{relevance:0}),{className:"title",begin:"^\\.\\w.*$"},{begin:"^[=\\*]{4,}\\n",end:"\\n^[=\\*]{4,}$",relevance:10},{className:"section",relevance:10,variants:[{begin:"^(={1,6})[ \t].+?([ \t]\\1)?$"},{begin:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$"}]},{className:"meta",begin:"^:.+?:",end:"\\s",excludeEnd:!0,relevance:10},{className:"meta",begin:"^\\[.+?\\]$",relevance:0},{className:"quote",begin:"^_{4,}\\n",end:"\\n_{4,}$",relevance:10},{className:"code",begin:"^[\\-\\.]{4,}\\n",end:"\\n[\\-\\.]{4,}$",relevance:10},{begin:"^\\+{4,}\\n",end:"\\n\\+{4,}$",contains:[{begin:"<",end:">",subLanguage:"xml",relevance:0}],relevance:10},s,o,...n,...r,...a,{className:"string",variants:[{begin:"``.+?''"},{begin:"`.+?'"}]},{className:"code",begin:/`{2}/,end:/(\n{2}|`{2})/},{className:"code",begin:"(`.+?`|\\+.+?\\+)",relevance:0},{className:"code",begin:"^[ \\t]",end:"$",relevance:0},t,{begin:"(link:)?(http|https|ftp|file|irc|image:?):\\S+?\\[[^[]*?\\]",returnBegin:!0,contains:[{begin:"(link|image:?):",relevance:0},{className:"link",begin:"\\w",end:"[^\\[]+",relevance:0},{className:"string",begin:"\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0,relevance:0}],relevance:10}]}}e.exports=r},"02ac":function(e,t){function n(e){const t={className:"string",begin:"\\[\n(multipart)?",end:"\\]\n"},n={className:"string",begin:"\\d{4}-\\d{2}-\\d{2}(\\s+)\\d{2}:\\d{2}:\\d{2}.\\d+Z"},i={className:"string",begin:"(\\+|-)\\d+"},r={className:"keyword",relevance:10,variants:[{begin:"^(test|testing|success|successful|failure|error|skip|xfail|uxsuccess)(:?)\\s+(test)?"},{begin:"^progress(:?)(\\s+)?(pop|push)?"},{begin:"^tags:"},{begin:"^time:"}]};return{name:"SubUnit",case_insensitive:!0,contains:[t,n,i,r]}}e.exports=n},"02c4":function(e,t){function n(e){const t={className:"keyword",begin:"\\$(f[asn]|t|vp[rtd]|children)"},n={className:"literal",begin:"false|true|PI|undef"},i={className:"number",begin:"\\b\\d+(\\.\\d+)?(e-?\\d+)?",relevance:0},r=e.inherit(e.QUOTE_STRING_MODE,{illegal:null}),a={className:"meta",keywords:{"meta-keyword":"include use"},begin:"include|use <",end:">"},o={className:"params",begin:"\\(",end:"\\)",contains:["self",i,r,t,n]},s={begin:"[*!#%]",relevance:0},l={className:"function",beginKeywords:"module function",end:/=|\{/,contains:[o,e.UNDERSCORE_TITLE_MODE]};return{name:"OpenSCAD",aliases:["scad"],keywords:{keyword:"function module include use for intersection_for if else \\%",literal:"false true PI undef",built_in:"circle square polygon text sphere cube cylinder polyhedron translate rotate scale resize mirror multmatrix color offset hull minkowski union difference intersection abs sign sin cos tan acos asin atan atan2 floor round ceil ln log pow sqrt exp rands min max concat lookup str chr search version version_num norm cross parent_module echo import import_dxf dxf_linear_extrude linear_extrude rotate_extrude surface projection render children dxf_cross dxf_dim let assign"},contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,i,a,r,t,s,l]}}e.exports=n},"0395":function(e,t,n){var i=n("36c3"),r=n("6abf").f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(e){try{return r(e)}catch(t){return o.slice()}};e.exports.f=function(e){return o&&"[object Window]"==a.call(e)?s(e):r(i(e))}},"0481":function(e,t){function n(e){const t={begin:"`[\\s\\S]"};return{name:"AutoHotkey",case_insensitive:!0,aliases:["ahk"],keywords:{keyword:"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group",literal:"true false NOT AND OR",built_in:"ComSpec Clipboard ClipboardAll ErrorLevel"},contains:[t,e.inherit(e.QUOTE_STRING_MODE,{contains:[t]}),e.COMMENT(";","$",{relevance:0}),e.C_BLOCK_COMMENT_MODE,{className:"number",begin:e.NUMBER_RE,relevance:0},{className:"variable",begin:"%[a-zA-Z0-9#_$@]+%"},{className:"built_in",begin:"^\\s*\\w+\\s*(,|%)"},{className:"title",variants:[{begin:'^[^\\n";]+::(?!=)'},{begin:'^[^\\n";]+:(?!=)',relevance:0}]},{className:"meta",begin:"^\\s*#\\w+",end:"$",relevance:0},{className:"built_in",begin:"A_[a-zA-Z0-9]+"},{begin:",\\s*,"}]}}e.exports=n},"04a8":function(e,t){function n(e){const t={begin:/[\w-]+ *=/,returnBegin:!0,relevance:0,contains:[{className:"attr",begin:/[\w-]+/}]},n={className:"params",begin:/\(/,end:/\)/,contains:[t],relevance:0},i={className:"function",begin:/:[\w\-.]+/,relevance:0},r={className:"string",begin:/\B([\/.])[\w\-.\/=]+/},a={className:"params",begin:/--[\w\-=\/]+/};return{name:"JBoss CLI",aliases:["wildfly-cli"],keywords:{$pattern:"[a-z-]+",keyword:"alias batch cd clear command connect connection-factory connection-info data-source deploy deployment-info deployment-overlay echo echo-dmr help history if jdbc-driver-info jms-queue|20 jms-topic|20 ls patch pwd quit read-attribute read-operation reload rollout-plan run-batch set shutdown try unalias undeploy unset version xa-data-source",literal:"true false"},contains:[e.HASH_COMMENT_MODE,e.QUOTE_STRING_MODE,a,i,r,n]}}e.exports=n},"04b0":function(e,t){function n(e){return e?"string"===typeof e?e:e.source:null}function i(...e){const t=e.map(e=>n(e)).join("");return t}function r(e){const t={begin:/<\/?[A-Za-z_]/,end:">",subLanguage:"xml",relevance:0},n={begin:"^[-\\*]{3,}",end:"$"},r={className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},a={className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",end:"\\s+",excludeEnd:!0},o={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},s=/[A-Za-z][A-Za-z0-9+.-]*/,l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:i(/\[.+?\]\(/,s,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",end:"\\]",excludeBegin:!0,excludeEnd:!0}]},c={className:"strong",contains:[],variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},u={className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{begin:/_(?!_)/,end:/_/,relevance:0}]};c.contains.push(u),u.contains.push(c);let d=[t,l];c.contains=c.contains.concat(d),u.contains=u.contains.concat(d),d=d.concat(c,u);const p={className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:d},{begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",contains:d}]}]},h={className:"quote",begin:"^>\\s+",contains:d,end:"$"};return{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[p,t,a,c,u,h,r,n,l,o]}}e.exports=r},"06b4":function(e,t){function n(e){return{name:"Test Anything Protocol",case_insensitive:!0,contains:[e.HASH_COMMENT_MODE,{className:"meta",variants:[{begin:"^TAP version (\\d+)$"},{begin:"^1\\.\\.(\\d+)$"}]},{begin:/---$/,end:"\\.\\.\\.$",subLanguage:"yaml",relevance:0},{className:"number",begin:" (\\d+) "},{className:"symbol",variants:[{begin:"^ok"},{begin:"^not ok"}]}]}}e.exports=n},"074e":function(e,t){function n(e){return e?"string"===typeof e?e:e.source:null}function i(...e){const t=e.map(e=>n(e)).join("");return t}function r(e){const t={className:"params",begin:"\\(",end:"\\)"},n=/(_[a-z_\d]+)?/,r=/([de][+-]?\d+)?/,a={className:"number",variants:[{begin:i(/\b\d+/,/\.(\d*)/,r,n)},{begin:i(/\b\d+/,r,n)},{begin:i(/\.\d+/,r,n)}],relevance:0},o={literal:".False. .True.",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data begin_provider &begin_provider end_provider begin_shell end_shell begin_template end_template subst assert touch soft_touch provide no_dep free irp_if irp_else irp_endif irp_write irp_read",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_of acosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image IRP_ALIGN irp_here"};return{name:"IRPF90",case_insensitive:!0,keywords:o,illegal:/\/\*/,contains:[e.inherit(e.APOS_STRING_MODE,{className:"string",relevance:0}),e.inherit(e.QUOTE_STRING_MODE,{className:"string",relevance:0}),{className:"function",beginKeywords:"subroutine function program",illegal:"[${=\\n]",contains:[e.UNDERSCORE_TITLE_MODE,t]},e.COMMENT("!","$",{relevance:0}),e.COMMENT("begin_doc","end_doc",{relevance:10}),a]}}e.exports=r},"07e3":function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},"097d":function(e,t,n){"use strict";var i=n("5ca1"),r=n("8378"),a=n("7726"),o=n("ebd6"),s=n("bcaa");i(i.P+i.R,"Promise",{finally:function(e){var t=o(this,r.Promise||a.Promise),n="function"==typeof e;return this.then(n?function(n){return s(t,e()).then((function(){return n}))}:e,n?function(n){return s(t,e()).then((function(){throw n}))}:e)}})},"0a06":function(e,t,n){"use strict";var i=n("c532"),r=n("30b5"),a=n("f6b4"),o=n("5270"),s=n("4a7b");function l(e){this.defaults=e,this.interceptors={request:new a,response:new a}}l.prototype.request=function(e){"string"===typeof e?(e=arguments[1]||{},e.url=arguments[0]):e=e||{},e=s(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[o,void 0],n=Promise.resolve(e);this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));while(t.length)n=n.then(t.shift(),t.shift());return n},l.prototype.getUri=function(e){return e=s(this.defaults,e),r(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},i.forEach(["delete","get","head","options"],(function(e){l.prototype[e]=function(t,n){return this.request(i.merge(n||{},{method:e,url:t}))}})),i.forEach(["post","put","patch"],(function(e){l.prototype[e]=function(t,n,r){return this.request(i.merge(r||{},{method:e,url:t,data:n}))}})),e.exports=l},"0b22":function(e,t){function n(e){const t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",literal:"true false iota nil",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{name:"Go",aliases:["golang"],keywords:t,illegal:"/g,">").replace(/"/g,""").replace(/'/g,"'")}function s(e,...t){const n=Object.create(null);for(const i in e)n[i]=e[i];return t.forEach((function(e){for(const t in e)n[t]=e[t]})),n}const l="",c=e=>!!e.kind;class u{constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){this.buffer+=o(e)}openNode(e){if(!c(e))return;let t=e.kind;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){c(e)&&(this.buffer+=l)}value(){return this.buffer}span(e){this.buffer+=``}}class d{constructor(){this.rootNode={children:[]},this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){this.top.children.push(e)}openNode(e){const t={kind:e,children:[]};this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){while(this.closeNode());}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){return"string"===typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}static _collapse(e){"string"!==typeof e&&e.children&&(e.children.every(e=>"string"===typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{d._collapse(e)}))}}class p extends d{constructor(e){super(),this.options=e}addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){const e=new u(this,this.options);return e.value()}finalize(){return!0}}function h(e){return new RegExp(e.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")}function f(e){return e?"string"===typeof e?e:e.source:null}function _(...e){const t=e.map(e=>f(e)).join("");return t}function m(...e){const t="("+e.map(e=>f(e)).join("|")+")";return t}function g(e){return new RegExp(e.toString()+"|").exec("").length-1}function b(e,t){const n=e&&e.exec(t);return n&&0===n.index}function v(e,t="|"){const n=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;let i=0,r="";for(let a=0;a0&&(r+=t),r+="(";while(s.length>0){const e=n.exec(s);if(null==e){r+=s;break}r+=s.substring(0,e.index),s=s.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?r+="\\"+String(Number(e[1])+o):(r+=e[0],"("===e[0]&&i++)}r+=")"}return r}const E=/\b\B/,y="[a-zA-Z]\\w*",S="[a-zA-Z_]\\w*",C="\\b\\d+(\\.\\d+)?",T="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",x="\\b(0b[01]+)",w="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",O=(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=_(t,/.*\b/,e.binary,/\b.*/)),s({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)},N={begin:"\\\\[\\s\\S]",relevance:0},R={className:"string",begin:"'",end:"'",illegal:"\\n",contains:[N]},k={className:"string",begin:'"',end:'"',illegal:"\\n",contains:[N]},A={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},D=function(e,t,n={}){const i=s({className:"comment",begin:e,end:t,contains:[]},n);return i.contains.push(A),i.contains.push({className:"doctag",begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i},I=D("//","$"),M=D("/\\*","\\*/"),L=D("#","$"),P={className:"number",begin:C,relevance:0},F={className:"number",begin:T,relevance:0},B={className:"number",begin:x,relevance:0},U={className:"number",begin:C+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},$={begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[N,{begin:/\[/,end:/\]/,relevance:0,contains:[N]}]}]},j={className:"title",begin:y,relevance:0},G={className:"title",begin:S,relevance:0},q={begin:"\\.\\s*"+S,relevance:0},H=function(e){return Object.assign(e,{"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch()}})};var V=Object.freeze({__proto__:null,MATCH_NOTHING_RE:E,IDENT_RE:y,UNDERSCORE_IDENT_RE:S,NUMBER_RE:C,C_NUMBER_RE:T,BINARY_NUMBER_RE:x,RE_STARTERS_RE:w,SHEBANG:O,BACKSLASH_ESCAPE:N,APOS_STRING_MODE:R,QUOTE_STRING_MODE:k,PHRASAL_WORDS_MODE:A,COMMENT:D,C_LINE_COMMENT_MODE:I,C_BLOCK_COMMENT_MODE:M,HASH_COMMENT_MODE:L,NUMBER_MODE:P,C_NUMBER_MODE:F,BINARY_NUMBER_MODE:B,CSS_NUMBER_MODE:U,REGEXP_MODE:$,TITLE_MODE:j,UNDERSCORE_TITLE_MODE:G,METHOD_GUARD:q,END_SAME_AS_BEGIN:H});function z(e,t){const n=e.input[e.index-1];"."===n&&t.ignoreMatch()}function Y(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=z,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0))}function W(e,t){Array.isArray(e.illegal)&&(e.illegal=m(...e.illegal))}function K(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function Q(e,t){void 0===e.relevance&&(e.relevance=1)}const X=["of","and","for","in","not","or","if","then","parent","list","value"],Z="keyword";function J(e,t,n=Z){const i={};return"string"===typeof e?r(n,e.split(" ")):Array.isArray(e)?r(n,e):Object.keys(e).forEach((function(n){Object.assign(i,J(e[n],t,n))})),i;function r(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach((function(t){const n=t.split("|");i[n[0]]=[e,ee(n[0],n[1])]}))}}function ee(e,t){return t?Number(t):te(e)?0:1}function te(e){return X.includes(e.toLowerCase())}function ne(e,{plugins:t}){function n(t,n){return new RegExp(f(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=g(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=n(v(e),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex((e,t)=>t>0&&void 0!==e),i=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,i)}}class r{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}function a(e){const t=new r;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}function o(t,i){const r=t;if(t.compiled)return r;[K].forEach(e=>e(t,i)),e.compilerExtensions.forEach(e=>e(t,i)),t.__beforeBegin=null,[Y,W,Q].forEach(e=>e(t,i)),t.compiled=!0;let s=null;if("object"===typeof t.keywords&&(s=t.keywords.$pattern,delete t.keywords.$pattern),t.keywords&&(t.keywords=J(t.keywords,e.case_insensitive)),t.lexemes&&s)throw new Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ");return s=s||t.lexemes||/\w+/,r.keywordPatternRe=n(s,!0),i&&(t.begin||(t.begin=/\B|\b/),r.beginRe=n(t.begin),t.endSameAsBegin&&(t.end=t.begin),t.end||t.endsWithParent||(t.end=/\B|\b/),t.end&&(r.endRe=n(t.end)),r.terminatorEnd=f(t.end)||"",t.endsWithParent&&i.terminatorEnd&&(r.terminatorEnd+=(t.end?"|":"")+i.terminatorEnd)),t.illegal&&(r.illegalRe=n(t.illegal)),t.contains||(t.contains=[]),t.contains=[].concat(...t.contains.map((function(e){return re("self"===e?t:e)}))),t.contains.forEach((function(e){o(e,r)})),t.starts&&o(t.starts,i),r.matcher=a(r),r}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=s(e.classNameAliases||{}),o(e)}function ie(e){return!!e&&(e.endsWithParent||ie(e.starts))}function re(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((function(t){return s(e,{variants:null},t)}))),e.cachedVariants?e.cachedVariants:ie(e)?s(e,{starts:e.starts?s(e.starts):null}):Object.isFrozen(e)?s(e):e}var ae="10.6.0";function oe(e){return Boolean(e||""===e)}function se(e){const t={props:["language","code","autodetect"],data:function(){return{detectedLanguage:"",unknownLanguage:!1}},computed:{className(){return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){if(!this.autoDetect&&!e.getLanguage(this.language))return this.unknownLanguage=!0,o(this.code);let t={};return this.autoDetect?(t=e.highlightAuto(this.code),this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),this.detectedLanguage=this.language),t.value},autoDetect(){return!this.language||oe(this.autodetect)},ignoreIllegals(){return!0}},render(e){return e("pre",{},[e("code",{class:this.className,domProps:{innerHTML:this.highlighted}})])}},n={install(e){e.component("highlightjs",t)}};return{Component:t,VuePlugin:n}}const le={"after:highlightBlock":({block:e,result:t,text:n})=>{const i=ue(e);if(!i.length)return;const r=document.createElement("div");r.innerHTML=t.value,t.value=de(i,ue(r),n)}};function ce(e){return e.nodeName.toLowerCase()}function ue(e){const t=[];return function e(n,i){for(let r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?i+=r.nodeValue.length:1===r.nodeType&&(t.push({event:"start",offset:i,node:r}),i=e(r,i),ce(r).match(/br|hr|img|input/)||t.push({event:"stop",offset:i,node:r}));return i}(e,0),t}function de(e,t,n){let i=0,r="";const a=[];function s(){return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function c(e){r+=""}function u(e){("start"===e.event?l:c)(e.node)}while(e.length||t.length){let t=s();if(r+=o(n.substring(i,t[0].offset)),i=t[0].offset,t===e){a.reverse().forEach(c);do{u(t.splice(0,1)[0]),t=s()}while(t===e&&t.length&&t[0].offset===i);a.reverse().forEach(l)}else"start"===t[0].event?a.push(t[0].node):a.pop(),u(t.splice(0,1)[0])}return r+o(n.substr(i))}const pe=e=>{},he=(e,...t)=>{},fe=(e,t)=>{},_e=o,me=s,ge=Symbol("nomatch"),be=function(e){const t=Object.create(null),n=Object.create(null),r=[];let o=!0;const s=/(^(<[^>]+>|\t|)+|\n)/gm,l="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:!0,name:"Plain text",contains:[]};let u={noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:null,__emitter:p};function d(e){return u.noHighlightRe.test(e)}function f(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t);if(n){const t=P(n[1]);return t||(he(l.replace("{}",n[1])),he("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>d(e)||P(e))}function _(e,t,n,i){const r={code:t,language:e};$("before:highlight",r);const a=r.result?r.result:m(r.language,r.code,n,i);return a.code=r.code,$("after:highlight",a),a}function m(e,n,i,s){const c=n;function d(e,t){const n=O.case_insensitive?t[0].toLowerCase():t[0];return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}function p(){if(!k.keywords)return void D.addText(I);let e=0;k.keywordPatternRe.lastIndex=0;let t=k.keywordPatternRe.exec(I),n="";while(t){n+=I.substring(e,t.index);const i=d(k,t);if(i){const[e,r]=i;D.addText(n),n="",M+=r;const a=O.classNameAliases[e]||e;D.addKeyword(t[0],a)}else n+=t[0];e=k.keywordPatternRe.lastIndex,t=k.keywordPatternRe.exec(I)}n+=I.substr(e),D.addText(n)}function f(){if(""===I)return;let e=null;if("string"===typeof k.subLanguage){if(!t[k.subLanguage])return void D.addText(I);e=m(k.subLanguage,I,!0,A[k.subLanguage]),A[k.subLanguage]=e.top}else e=v(I,k.subLanguage.length?k.subLanguage:null);k.relevance>0&&(M+=e.relevance),D.addSublanguage(e.emitter,e.language)}function _(){null!=k.subLanguage?f():p(),I=""}function g(e){return e.className&&D.openNode(O.classNameAliases[e.className]||e.className),k=Object.create(e,{parent:{value:k}}),k}function E(e,t,n){let i=b(e.endRe,n);if(i){if(e["on:end"]){const n=new a(e);e["on:end"](t,n),n.ignore&&(i=!1)}if(i){while(e.endsParent&&e.parent)e=e.parent;return e}}if(e.endsWithParent)return E(e.parent,t,n)}function y(e){return 0===k.matcher.regexIndex?(I+=e[0],1):(B=!0,0)}function S(e){const t=e[0],n=e.rule,i=new a(n),r=[n.__beforeBegin,n["on:begin"]];for(const a of r)if(a&&(a(e,i),i.ignore))return y(t);return n&&n.endSameAsBegin&&(n.endRe=h(t)),n.skip?I+=t:(n.excludeBegin&&(I+=t),_(),n.returnBegin||n.excludeBegin||(I=t)),g(n),n.returnBegin?0:t.length}function C(e){const t=e[0],n=c.substr(e.index),i=E(k,e,n);if(!i)return ge;const r=k;r.skip?I+=t:(r.returnEnd||r.excludeEnd||(I+=t),_(),r.excludeEnd&&(I=t));do{k.className&&D.closeNode(),k.skip||k.subLanguage||(M+=k.relevance),k=k.parent}while(k!==i.parent);return i.starts&&(i.endSameAsBegin&&(i.starts.endRe=i.endRe),g(i.starts)),r.returnEnd?0:t.length}function T(){const e=[];for(let t=k;t!==O;t=t.parent)t.className&&e.unshift(t.className);e.forEach(e=>D.openNode(e))}let x={};function w(t,n){const r=n&&n[0];if(I+=t,null==r)return _(),0;if("begin"===x.type&&"end"===n.type&&x.index===n.index&&""===r){if(I+=c.slice(n.index,n.index+1),!o){const t=new Error("0 width match regex");throw t.languageName=e,t.badRule=x.rule,t}return 1}if(x=n,"begin"===n.type)return S(n);if("illegal"===n.type&&!i){const e=new Error('Illegal lexeme "'+r+'" for mode "'+(k.className||"")+'"');throw e.mode=k,e}if("end"===n.type){const e=C(n);if(e!==ge)return e}if("illegal"===n.type&&""===r)return 1;if(F>1e5&&F>3*n.index){const e=new Error("potential infinite loop, way more iterations than matches");throw e}return I+=r,r.length}const O=P(e);if(!O)throw pe(l.replace("{}",e)),new Error('Unknown language: "'+e+'"');const N=ne(O,{plugins:r});let R="",k=s||N;const A={},D=new u.__emitter(u);T();let I="",M=0,L=0,F=0,B=!1;try{for(k.matcher.considerAll();;){F++,B?B=!1:k.matcher.considerAll(),k.matcher.lastIndex=L;const e=k.matcher.exec(c);if(!e)break;const t=c.substring(L,e.index),n=w(t,e);L=e.index+n}return w(c.substr(L)),D.closeAllNodes(),D.finalize(),R=D.toHTML(),{relevance:Math.floor(M),value:R,language:e,illegal:!1,emitter:D,top:k}}catch(U){if(U.message&&U.message.includes("Illegal"))return{illegal:!0,illegalBy:{msg:U.message,context:c.slice(L-100,L+100),mode:U.mode},sofar:R,relevance:0,value:_e(c),emitter:D};if(o)return{illegal:!1,relevance:0,value:_e(c),emitter:D,language:e,top:k,errorRaised:U};throw U}}function g(e){const t={relevance:0,emitter:new u.__emitter(u),value:_e(e),illegal:!1,top:c};return t.emitter.addText(e),t}function v(e,n){n=n||u.languages||Object.keys(t);const i=g(e),r=n.filter(P).filter(B).map(t=>m(t,e,!1));r.unshift(i);const a=r.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(P(e.language).supersetOf===t.language)return 1;if(P(t.language).supersetOf===e.language)return-1}return 0}),[o,s]=a,l=o;return l.second_best=s,l}function E(e){return u.tabReplace||u.useBR?e.replace(s,e=>"\n"===e?u.useBR?"
":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e):e}function y(e,t,i){const r=t?n[t]:i;e.classList.add("hljs"),r&&e.classList.add(r)}const S={"before:highlightBlock":({block:e})=>{u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n"))},"after:highlightBlock":({result:e})=>{u.useBR&&(e.value=e.value.replace(/\n/g,"
"))}},C=/^(<[^>]+>|\t)+/gm,T={"after:highlightBlock":({result:e})=>{u.tabReplace&&(e.value=e.value.replace(C,e=>e.replace(/\t/g,u.tabReplace)))}};function x(e){let t=null;const n=f(e);if(d(n))return;$("before:highlightBlock",{block:e,language:n}),t=e;const i=t.textContent,r=n?_(n,i,!0):v(i);$("after:highlightBlock",{block:e,result:r,text:i}),e.innerHTML=r.value,y(e,n,r.language),e.result={language:r.language,re:r.relevance,relavance:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance,relavance:r.second_best.relevance})}function w(e){e.useBR&&(fe("10.3.0","'useBR' will be removed entirely in v11.0"),fe("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),u=me(u,e)}const O=()=>{if(O.called)return;O.called=!0,fe("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead.");const e=document.querySelectorAll("pre code");e.forEach(x)};function N(){fe("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."),R=!0}let R=!1,k=!1;function A(){if(!k)return void(R=!0);const e=document.querySelectorAll("pre code");e.forEach(x)}function D(){k=!0,R&&A()}function I(n,i){let r=null;try{r=i(e)}catch(a){if(pe("Language definition for '{}' could not be registered.".replace("{}",n)),!o)throw a;pe(a),r=c}r.name||(r.name=n),t[n]=r,r.rawDefinition=i.bind(null,e),r.aliases&&F(r.aliases,{languageName:n})}function M(){return Object.keys(t)}function L(e){fe("10.4.0","requireLanguage will be removed entirely in v11."),fe("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844");const t=P(e);if(t)return t;const n=new Error("The '{}' language is required, but not loaded.".replace("{}",e));throw n}function P(e){return e=(e||"").toLowerCase(),t[e]||t[n[e]]}function F(e,{languageName:t}){"string"===typeof e&&(e=[e]),e.forEach(e=>{n[e]=t})}function B(e){const t=P(e);return t&&!t.disableAutodetect}function U(e){r.push(e)}function $(e,t){const n=e;r.forEach((function(e){e[n]&&e[n](t)}))}function j(e){return fe("10.2.0","fixMarkup will be removed entirely in v11.0"),fe("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),E(e)}"undefined"!==typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",D,!1),Object.assign(e,{highlight:_,highlightAuto:v,highlightAll:A,fixMarkup:j,highlightBlock:x,configure:w,initHighlighting:O,initHighlightingOnLoad:N,registerLanguage:I,listLanguages:M,getLanguage:P,registerAliases:F,requireLanguage:L,autoDetection:B,inherit:me,addPlugin:U,vuePlugin:se(e).VuePlugin}),e.debugMode=function(){o=!1},e.safeMode=function(){o=!0},e.versionString=ae;for(const a in V)"object"===typeof V[a]&&i(V[a]);return Object.assign(e,V),e.addPlugin(S),e.addPlugin(le),e.addPlugin(T),e};var ve=be({});e.exports=ve},1069:function(e,t){function n(e){const t={className:"variable",variants:[{begin:/\$[\w\d#@][\w\d_]*/},{begin:/\$\{(.*?)\}/}]},n="BEGIN END if else while do for in break continue delete next nextfile function func exit|10",i={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/(u|b)?r?'''/,end:/'''/,relevance:10},{begin:/(u|b)?r?"""/,end:/"""/,relevance:10},{begin:/(u|r|ur)'/,end:/'/,relevance:10},{begin:/(u|r|ur)"/,end:/"/,relevance:10},{begin:/(b|br)'/,end:/'/},{begin:/(b|br)"/,end:/"/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]};return{name:"Awk",keywords:{keyword:n},contains:[t,i,e.REGEXP_MODE,e.HASH_COMMENT_MODE,e.NUMBER_MODE]}}e.exports=n},1098:function(e,t,n){"use strict";t.__esModule=!0;var i=n("17ed"),r=l(i),a=n("f893"),o=l(a),s="function"===typeof o.default&&"symbol"===typeof r.default?function(e){return typeof e}:function(e){return e&&"function"===typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function l(e){return e&&e.__esModule?e:{default:e}}t.default="function"===typeof o.default&&"symbol"===s(r.default)?function(e){return"undefined"===typeof e?"undefined":s(e)}:function(e){return e&&"function"===typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":"undefined"===typeof e?"undefined":s(e)}},1157:function(e,t,n){var i,r; /*! * jQuery JavaScript Library v3.5.1 * https://jquery.com/ * * Includes Sizzle.js * https://sizzlejs.com/ * * Copyright JS Foundation and other contributors * Released under the MIT license * https://jquery.org/license * * Date: 2020-05-04T22:49Z */(function(t,n){"use strict";"object"===typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)})("undefined"!==typeof window?window:this,(function(n,a){"use strict";var o=[],s=Object.getPrototypeOf,l=o.slice,c=o.flat?function(e){return o.flat.call(e)}:function(e){return o.concat.apply([],e)},u=o.push,d=o.indexOf,p={},h=p.toString,f=p.hasOwnProperty,_=f.toString,m=_.call(Object),g={},b=function(e){return"function"===typeof e&&"number"!==typeof e.nodeType},v=function(e){return null!=e&&e===e.window},E=n.document,y={type:!0,src:!0,nonce:!0,noModule:!0};function S(e,t,n){n=n||E;var i,r,a=n.createElement("script");if(a.text=e,t)for(i in y)r=t[i]||t.getAttribute&&t.getAttribute(i),r&&a.setAttribute(i,r);n.head.appendChild(a).parentNode.removeChild(a)}function C(e){return null==e?e+"":"object"===typeof e||"function"===typeof e?p[h.call(e)]||"object":typeof e}var T="3.5.1",x=function(e,t){return new x.fn.init(e,t)};function w(e){var t=!!e&&"length"in e&&e.length,n=C(e);return!b(e)&&!v(e)&&("array"===n||0===t||"number"===typeof t&&t>0&&t-1 in e)}x.fn=x.prototype={jquery:T,constructor:x,length:0,toArray:function(){return l.call(this)},get:function(e){return null==e?l.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return x.each(this,e)},map:function(e){return this.pushStack(x.map(this,(function(t,n){return e.call(t,n,t)})))},slice:function(){return this.pushStack(l.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(x.grep(this,(function(e,t){return(t+1)%2})))},odd:function(){return this.pushStack(x.grep(this,(function(e,t){return t%2})))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n+~]|"+F+")"+F+"*"),V=new RegExp(F+"|>"),z=new RegExp($),Y=new RegExp("^"+B+"$"),W={ID:new RegExp("^#("+B+")"),CLASS:new RegExp("^\\.("+B+")"),TAG:new RegExp("^("+B+"|[*])"),ATTR:new RegExp("^"+U),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+F+"*(even|odd|(([+-]|)(\\d*)n|)"+F+"*(?:([+-]|)"+F+"*(\\d+)|))"+F+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+F+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+F+"*((?:-\\d)?\\d*)"+F+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+F+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},ie=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,re=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},ae=function(){p()},oe=Ee((function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()}),{dir:"parentNode",next:"legend"});try{I.apply(k=M.call(y.childNodes),y.childNodes),k[y.childNodes.length].nodeType}catch(Oe){I={apply:k.length?function(e,t){D.apply(e,M.call(t))}:function(e,t){var n=e.length,i=0;while(e[n++]=t[i++]);e.length=n-1}}}function se(e,t,i,r){var a,s,c,u,d,f,g,b=t&&t.ownerDocument,y=t?t.nodeType:9;if(i=i||[],"string"!==typeof e||!e||1!==y&&9!==y&&11!==y)return i;if(!r&&(p(t),t=t||h,_)){if(11!==y&&(d=J.exec(e)))if(a=d[1]){if(9===y){if(!(c=t.getElementById(a)))return i;if(c.id===a)return i.push(c),i}else if(b&&(c=b.getElementById(a))&&v(t,c)&&c.id===a)return i.push(c),i}else{if(d[2])return I.apply(i,t.getElementsByTagName(e)),i;if((a=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return I.apply(i,t.getElementsByClassName(a)),i}if(n.qsa&&!O[e+" "]&&(!m||!m.test(e))&&(1!==y||"object"!==t.nodeName.toLowerCase())){if(g=e,b=t,1===y&&(V.test(e)||H.test(e))){b=ee.test(e)&&ge(t.parentNode)||t,b===t&&n.scope||((u=t.getAttribute("id"))?u=u.replace(ie,re):t.setAttribute("id",u=E)),f=o(e),s=f.length;while(s--)f[s]=(u?"#"+u:":scope")+" "+ve(f[s]);g=f.join(",")}try{return I.apply(i,b.querySelectorAll(g)),i}catch(S){O(e,!0)}finally{u===E&&t.removeAttribute("id")}}}return l(e.replace(G,"$1"),t,i,r)}function le(){var e=[];function t(n,r){return e.push(n+" ")>i.cacheLength&&delete t[e.shift()],t[n+" "]=r}return t}function ce(e){return e[E]=!0,e}function ue(e){var t=h.createElement("fieldset");try{return!!e(t)}catch(Oe){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){var n=e.split("|"),r=n.length;while(r--)i.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,i=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(i)return i;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function he(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function fe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function _e(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&oe(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function me(e){return ce((function(t){return t=+t,ce((function(n,i){var r,a=e([],n.length,t),o=a.length;while(o--)n[r=a[o]]&&(n[r]=!(i[r]=n[r]))}))}))}function ge(e){return e&&"undefined"!==typeof e.getElementsByTagName&&e}for(t in n=se.support={},a=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!K.test(t||n&&n.nodeName||"HTML")},p=se.setDocument=function(e){var t,r,o=e?e.ownerDocument||e:y;return o!=h&&9===o.nodeType&&o.documentElement?(h=o,f=h.documentElement,_=!a(h),y!=h&&(r=h.defaultView)&&r.top!==r&&(r.addEventListener?r.addEventListener("unload",ae,!1):r.attachEvent&&r.attachEvent("onunload",ae)),n.scope=ue((function(e){return f.appendChild(e).appendChild(h.createElement("div")),"undefined"!==typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length})),n.attributes=ue((function(e){return e.className="i",!e.getAttribute("className")})),n.getElementsByTagName=ue((function(e){return e.appendChild(h.createComment("")),!e.getElementsByTagName("*").length})),n.getElementsByClassName=Z.test(h.getElementsByClassName),n.getById=ue((function(e){return f.appendChild(e).id=E,!h.getElementsByName||!h.getElementsByName(E).length})),n.getById?(i.filter["ID"]=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},i.find["ID"]=function(e,t){if("undefined"!==typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}}):(i.filter["ID"]=function(e){var t=e.replace(te,ne);return function(e){var n="undefined"!==typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},i.find["ID"]=function(e,t){if("undefined"!==typeof t.getElementById&&_){var n,i,r,a=t.getElementById(e);if(a){if(n=a.getAttributeNode("id"),n&&n.value===e)return[a];r=t.getElementsByName(e),i=0;while(a=r[i++])if(n=a.getAttributeNode("id"),n&&n.value===e)return[a]}return[]}}),i.find["TAG"]=n.getElementsByTagName?function(e,t){return"undefined"!==typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,i=[],r=0,a=t.getElementsByTagName(e);if("*"===e){while(n=a[r++])1===n.nodeType&&i.push(n);return i}return a},i.find["CLASS"]=n.getElementsByClassName&&function(e,t){if("undefined"!==typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},g=[],m=[],(n.qsa=Z.test(h.querySelectorAll))&&(ue((function(e){var t;f.appendChild(e).innerHTML="
",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+F+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+F+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+E+"-]").length||m.push("~="),t=h.createElement("input"),t.setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+F+"*name"+F+"*="+F+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+E+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")})),ue((function(e){e.innerHTML="";var t=h.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+F+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),f.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")}))),(n.matchesSelector=Z.test(b=f.matches||f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&ue((function(e){n.disconnectedMatch=b.call(e,"*"),b.call(e,"[s!='']:x"),g.push("!=",$)})),m=m.length&&new RegExp(m.join("|")),g=g.length&&new RegExp(g.join("|")),t=Z.test(f.compareDocumentPosition),v=t||Z.test(f.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,i=t&&t.parentNode;return e===i||!(!i||1!==i.nodeType||!(n.contains?n.contains(i):e.compareDocumentPosition&&16&e.compareDocumentPosition(i)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},N=t?function(e,t){if(e===t)return d=!0,0;var i=!e.compareDocumentPosition-!t.compareDocumentPosition;return i||(i=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&i||!n.sortDetached&&t.compareDocumentPosition(e)===i?e==h||e.ownerDocument==y&&v(y,e)?-1:t==h||t.ownerDocument==y&&v(y,t)?1:u?L(u,e)-L(u,t):0:4&i?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,i=0,r=e.parentNode,a=t.parentNode,o=[e],s=[t];if(!r||!a)return e==h?-1:t==h?1:r?-1:a?1:u?L(u,e)-L(u,t):0;if(r===a)return pe(e,t);n=e;while(n=n.parentNode)o.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(o[i]===s[i])i++;return i?pe(o[i],s[i]):o[i]==y?-1:s[i]==y?1:0},h):h},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(p(e),n.matchesSelector&&_&&!O[t+" "]&&(!g||!g.test(t))&&(!m||!m.test(t)))try{var i=b.call(e,t);if(i||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return i}catch(Oe){O(t,!0)}return se(t,h,null,[e]).length>0},se.contains=function(e,t){return(e.ownerDocument||e)!=h&&p(e),v(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=h&&p(e);var r=i.attrHandle[t.toLowerCase()],a=r&&R.call(i.attrHandle,t.toLowerCase())?r(e,t,!_):void 0;return void 0!==a?a:n.attributes||!_?e.getAttribute(t):(a=e.getAttributeNode(t))&&a.specified?a.value:null},se.escape=function(e){return(e+"").replace(ie,re)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,i=[],r=0,a=0;if(d=!n.detectDuplicates,u=!n.sortStable&&e.slice(0),e.sort(N),d){while(t=e[a++])t===e[a]&&(r=i.push(a));while(r--)e.splice(i[r],1)}return u=null,e},r=se.getText=function(e){var t,n="",i=0,a=e.nodeType;if(a){if(1===a||9===a||11===a){if("string"===typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=r(e)}else if(3===a||4===a)return e.nodeValue}else while(t=e[i++])n+=r(t);return n},i=se.selectors={cacheLength:50,createPseudo:ce,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return W["CHILD"].test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&z.test(n)&&(t=o(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=T[e+" "];return t||(t=new RegExp("(^|"+F+")"+e+"("+F+"|$)"))&&T(e,(function(e){return t.test("string"===typeof e.className&&e.className||"undefined"!==typeof e.getAttribute&&e.getAttribute("class")||"")}))},ATTR:function(e,t,n){return function(i){var r=se.attr(i,e);return null==r?"!="===t:!t||(r+="","="===t?r===n:"!="===t?r!==n:"^="===t?n&&0===r.indexOf(n):"*="===t?n&&r.indexOf(n)>-1:"$="===t?n&&r.slice(-n.length)===n:"~="===t?(" "+r.replace(j," ")+" ").indexOf(n)>-1:"|="===t&&(r===n||r.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,i,r){var a="nth"!==e.slice(0,3),o="last"!==e.slice(-4),s="of-type"===t;return 1===i&&0===r?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,p,h,f,_=a!==o?"nextSibling":"previousSibling",m=t.parentNode,g=s&&t.nodeName.toLowerCase(),b=!l&&!s,v=!1;if(m){if(a){while(_){p=t;while(p=p[_])if(s?p.nodeName.toLowerCase()===g:1===p.nodeType)return!1;f=_="only"===e&&!f&&"nextSibling"}return!0}if(f=[o?m.firstChild:m.lastChild],o&&b){p=m,d=p[E]||(p[E]={}),u=d[p.uniqueID]||(d[p.uniqueID]={}),c=u[e]||[],h=c[0]===S&&c[1],v=h&&c[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[_]||(v=h=0)||f.pop())if(1===p.nodeType&&++v&&p===t){u[e]=[S,h,v];break}}else if(b&&(p=t,d=p[E]||(p[E]={}),u=d[p.uniqueID]||(d[p.uniqueID]={}),c=u[e]||[],h=c[0]===S&&c[1],v=h),!1===v)while(p=++h&&p&&p[_]||(v=h=0)||f.pop())if((s?p.nodeName.toLowerCase()===g:1===p.nodeType)&&++v&&(b&&(d=p[E]||(p[E]={}),u=d[p.uniqueID]||(d[p.uniqueID]={}),u[e]=[S,v]),p===t))break;return v-=r,v===i||v%i===0&&v/i>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return r[E]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ce((function(e,n){var i,a=r(e,t),o=a.length;while(o--)i=L(e,a[o]),e[i]=!(n[i]=a[o])})):function(e){return r(e,0,n)}):r}},pseudos:{not:ce((function(e){var t=[],n=[],i=s(e.replace(G,"$1"));return i[E]?ce((function(e,t,n,r){var a,o=i(e,null,r,[]),s=e.length;while(s--)(a=o[s])&&(e[s]=!(t[s]=a))})):function(e,r,a){return t[0]=e,i(t,null,a,n),t[0]=null,!n.pop()}})),has:ce((function(e){return function(t){return se(e,t).length>0}})),contains:ce((function(e){return e=e.replace(te,ne),function(t){return(t.textContent||r(t)).indexOf(e)>-1}})),lang:ce((function(e){return Y.test(e||"")||se.error("unsupported lang: "+e),e=e.replace(te,ne).toLowerCase(),function(t){var n;do{if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}})),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===h.activeElement&&(!h.hasFocus||h.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:_e(!1),disabled:_e(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!i.pseudos["empty"](e)},header:function(e){return X.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:me((function(){return[0]})),last:me((function(e,t){return[t-1]})),eq:me((function(e,t,n){return[n<0?n+t:n]})),even:me((function(e,t){for(var n=0;nt?t:n;--i>=0;)e.push(i);return e})),gt:me((function(e,t,n){for(var i=n<0?n+t:n;++i1?function(t,n,i){var r=e.length;while(r--)if(!e[r](t,n,i))return!1;return!0}:e[0]}function Se(e,t,n){for(var i=0,r=t.length;i-1&&(a[c]=!(o[c]=d))}}else g=Ce(g===o?g.splice(f,g.length):g),r?r(null,o,g,l):I.apply(o,g)}))}function xe(e){for(var t,n,r,a=e.length,o=i.relative[e[0].type],s=o||i.relative[" "],l=o?1:0,u=Ee((function(e){return e===t}),s,!0),d=Ee((function(e){return L(t,e)>-1}),s,!0),p=[function(e,n,i){var r=!o&&(i||n!==c)||((t=n).nodeType?u(e,n,i):d(e,n,i));return t=null,r}];l1&&ye(p),l>1&&ve(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(G,"$1"),n,l0,r=e.length>0,a=function(a,o,s,l,u){var d,f,m,g=0,b="0",v=a&&[],E=[],y=c,C=a||r&&i.find["TAG"]("*",u),T=S+=null==y?1:Math.random()||.1,x=C.length;for(u&&(c=o==h||o||u);b!==x&&null!=(d=C[b]);b++){if(r&&d){f=0,o||d.ownerDocument==h||(p(d),s=!_);while(m=e[f++])if(m(d,o||h,s)){l.push(d);break}u&&(S=T)}n&&((d=!m&&d)&&g--,a&&v.push(d))}if(g+=b,n&&b!==g){f=0;while(m=t[f++])m(v,E,o,s);if(a){if(g>0)while(b--)v[b]||E[b]||(E[b]=A.call(l));E=Ce(E)}I.apply(l,E),u&&!a&&E.length>0&&g+t.length>1&&se.uniqueSort(l)}return u&&(S=T,c=y),v};return n?ce(a):a}return be.prototype=i.filters=i.pseudos,i.setFilters=new be,o=se.tokenize=function(e,t){var n,r,a,o,s,l,c,u=x[e+" "];if(u)return t?0:u.slice(0);s=e,l=[],c=i.preFilter;while(s){for(o in n&&!(r=q.exec(s))||(r&&(s=s.slice(r[0].length)||s),l.push(a=[])),n=!1,(r=H.exec(s))&&(n=r.shift(),a.push({value:n,type:r[0].replace(G," ")}),s=s.slice(n.length)),i.filter)!(r=W[o].exec(s))||c[o]&&!(r=c[o](r))||(n=r.shift(),a.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?se.error(e):x(e,l).slice(0)},s=se.compile=function(e,t){var n,i=[],r=[],a=w[e+" "];if(!a){t||(t=o(e)),n=t.length;while(n--)a=xe(t[n]),a[E]?i.push(a):r.push(a);a=w(e,we(r,i)),a.selector=e}return a},l=se.select=function(e,t,n,r){var a,l,c,u,d,p="function"===typeof e&&e,h=!r&&o(e=p.selector||e);if(n=n||[],1===h.length){if(l=h[0]=h[0].slice(0),l.length>2&&"ID"===(c=l[0]).type&&9===t.nodeType&&_&&i.relative[l[1].type]){if(t=(i.find["ID"](c.matches[0].replace(te,ne),t)||[])[0],!t)return n;p&&(t=t.parentNode),e=e.slice(l.shift().value.length)}a=W["needsContext"].test(e)?0:l.length;while(a--){if(c=l[a],i.relative[u=c.type])break;if((d=i.find[u])&&(r=d(c.matches[0].replace(te,ne),ee.test(l[0].type)&&ge(t.parentNode)||t))){if(l.splice(a,1),e=r.length&&ve(l),!e)return I.apply(n,r),n;break}}}return(p||s(e,h))(r,t,!_,n,!t||ee.test(e)&&ge(t.parentNode)||t),n},n.sortStable=E.split("").sort(N).join("")===E,n.detectDuplicates=!!d,p(),n.sortDetached=ue((function(e){return 1&e.compareDocumentPosition(h.createElement("fieldset"))})),ue((function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")}))||de("type|href|height|width",(function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)})),n.attributes&&ue((function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}))||de("value",(function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue})),ue((function(e){return null==e.getAttribute("disabled")}))||de(P,(function(e,t,n){var i;if(!n)return!0===e[t]?t.toLowerCase():(i=e.getAttributeNode(t))&&i.specified?i.value:null})),se}(n);x.find=O,x.expr=O.selectors,x.expr[":"]=x.expr.pseudos,x.uniqueSort=x.unique=O.uniqueSort,x.text=O.getText,x.isXMLDoc=O.isXML,x.contains=O.contains,x.escapeSelector=O.escape;var N=function(e,t,n){var i=[],r=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(r&&x(e).is(n))break;i.push(e)}return i},R=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=x.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var D=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function I(e,t,n){return b(t)?x.grep(e,(function(e,i){return!!t.call(e,i,e)!==n})):t.nodeType?x.grep(e,(function(e){return e===t!==n})):"string"!==typeof t?x.grep(e,(function(e){return d.call(t,e)>-1!==n})):x.filter(t,e,n)}x.filter=function(e,t,n){var i=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===i.nodeType?x.find.matchesSelector(i,e)?[i]:[]:x.find.matches(e,x.grep(t,(function(e){return 1===e.nodeType})))},x.fn.extend({find:function(e){var t,n,i=this.length,r=this;if("string"!==typeof e)return this.pushStack(x(e).filter((function(){for(t=0;t1?x.uniqueSort(n):n},filter:function(e){return this.pushStack(I(this,e||[],!1))},not:function(e){return this.pushStack(I(this,e||[],!0))},is:function(e){return!!I(this,"string"===typeof e&&k.test(e)?x(e):e||[],!1).length}});var M,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,P=x.fn.init=function(e,t,n){var i,r;if(!e)return this;if(n=n||M,"string"===typeof e){if(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e),!i||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(i[1])&&x.isPlainObject(t))for(i in t)b(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return r=E.getElementById(i[2]),r&&(this[0]=r,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):b(e)?void 0!==n.ready?n.ready(e):e(x):x.makeArray(e,this)};P.prototype=x.fn,M=x(E);var F=/^(?:parents|prev(?:Until|All))/,B={children:!0,contents:!0,next:!0,prev:!0};function U(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.fn.extend({has:function(e){var t=x(e,this),n=t.length;return this.filter((function(){for(var e=0;e-1:1===n.nodeType&&x.find.matchesSelector(n,e))){a.push(n);break}return this.pushStack(a.length>1?x.uniqueSort(a):a)},index:function(e){return e?"string"===typeof e?d.call(x(e),this[0]):d.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(x.uniqueSort(x.merge(this.get(),x(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return N(e,"parentNode")},parentsUntil:function(e,t,n){return N(e,"parentNode",n)},next:function(e){return U(e,"nextSibling")},prev:function(e){return U(e,"previousSibling")},nextAll:function(e){return N(e,"nextSibling")},prevAll:function(e){return N(e,"previousSibling")},nextUntil:function(e,t,n){return N(e,"nextSibling",n)},prevUntil:function(e,t,n){return N(e,"previousSibling",n)},siblings:function(e){return R((e.parentNode||{}).firstChild,e)},children:function(e){return R(e.firstChild)},contents:function(e){return null!=e.contentDocument&&s(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),x.merge([],e.childNodes))}},(function(e,t){x.fn[e]=function(n,i){var r=x.map(this,t,n);return"Until"!==e.slice(-5)&&(i=n),i&&"string"===typeof i&&(r=x.filter(i,r)),this.length>1&&(B[e]||x.uniqueSort(r),F.test(e)&&r.reverse()),this.pushStack(r)}}));var $=/[^\x20\t\r\n\f]+/g;function j(e){var t={};return x.each(e.match($)||[],(function(e,n){t[n]=!0})),t}function G(e){return e}function q(e){throw e}function H(e,t,n,i){var r;try{e&&b(r=e.promise)?r.call(e).done(t).fail(n):e&&b(r=e.then)?r.call(e,t,n):t.apply(void 0,[e].slice(i))}catch(e){n.apply(void 0,[e])}}x.Callbacks=function(e){e="string"===typeof e?j(e):x.extend({},e);var t,n,i,r,a=[],o=[],s=-1,l=function(){for(r=r||e.once,i=t=!0;o.length;s=-1){n=o.shift();while(++s-1)a.splice(n,1),n<=s&&s--})),this},has:function(e){return e?x.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return r=o=[],a=n="",this},disabled:function(){return!a},lock:function(){return r=o=[],n||t||(a=n=""),this},locked:function(){return!!r},fireWith:function(e,n){return r||(n=n||[],n=[e,n.slice?n.slice():n],o.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!i}};return c},x.extend({Deferred:function(e){var t=[["notify","progress",x.Callbacks("memory"),x.Callbacks("memory"),2],["resolve","done",x.Callbacks("once memory"),x.Callbacks("once memory"),0,"resolved"],["reject","fail",x.Callbacks("once memory"),x.Callbacks("once memory"),1,"rejected"]],i="pending",r={state:function(){return i},always:function(){return a.done(arguments).fail(arguments),this},catch:function(e){return r.then(null,e)},pipe:function(){var e=arguments;return x.Deferred((function(n){x.each(t,(function(t,i){var r=b(e[i[4]])&&e[i[4]];a[i[1]]((function(){var e=r&&r.apply(this,arguments);e&&b(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this,r?[e]:arguments)}))})),e=null})).promise()},then:function(e,i,r){var a=0;function o(e,t,i,r){return function(){var s=this,l=arguments,c=function(){var n,c;if(!(e=a&&(i!==q&&(s=void 0,l=[n]),t.rejectWith(s,l))}};e?u():(x.Deferred.getStackHook&&(u.stackTrace=x.Deferred.getStackHook()),n.setTimeout(u))}}return x.Deferred((function(n){t[0][3].add(o(0,n,b(r)?r:G,n.notifyWith)),t[1][3].add(o(0,n,b(e)?e:G)),t[2][3].add(o(0,n,b(i)?i:q))})).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},a={};return x.each(t,(function(e,n){var o=n[2],s=n[5];r[n[1]]=o.add,s&&o.add((function(){i=s}),t[3-e][2].disable,t[3-e][3].disable,t[0][2].lock,t[0][3].lock),o.add(n[3].fire),a[n[0]]=function(){return a[n[0]+"With"](this===a?void 0:this,arguments),this},a[n[0]+"With"]=o.fireWith})),r.promise(a),e&&e.call(a,a),a},when:function(e){var t=arguments.length,n=t,i=Array(n),r=l.call(arguments),a=x.Deferred(),o=function(e){return function(n){i[e]=this,r[e]=arguments.length>1?l.call(arguments):n,--t||a.resolveWith(i,r)}};if(t<=1&&(H(e,a.done(o(n)).resolve,a.reject,!t),"pending"===a.state()||b(r[n]&&r[n].then)))return a.then();while(n--)H(r[n],o(n),a.reject);return a.promise()}});var V=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;x.Deferred.exceptionHook=function(e,t){n.console&&n.console.warn&&e&&V.test(e.name)&&n.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},x.readyException=function(e){n.setTimeout((function(){throw e}))};var z=x.Deferred();function Y(){E.removeEventListener("DOMContentLoaded",Y),n.removeEventListener("load",Y),x.ready()}x.fn.ready=function(e){return z.then(e).catch((function(e){x.readyException(e)})),this},x.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--x.readyWait:x.isReady)||(x.isReady=!0,!0!==e&&--x.readyWait>0||z.resolveWith(E,[x]))}}),x.ready.then=z.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?n.setTimeout(x.ready):(E.addEventListener("DOMContentLoaded",Y),n.addEventListener("load",Y));var W=function(e,t,n,i,r,a,o){var s=0,l=e.length,c=null==n;if("object"===C(n))for(s in r=!0,n)W(e,t,s,n[s],!0,a,o);else if(void 0!==i&&(r=!0,b(i)||(o=!0),c&&(o?(t.call(e,i),t=null):(c=t,t=function(e,t,n){return c.call(x(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each((function(){ne.remove(this,e)}))}}),x.extend({queue:function(e,t,n){var i;if(e)return t=(t||"fx")+"queue",i=te.get(e,t),n&&(!i||Array.isArray(n)?i=te.access(e,t,x.makeArray(n)):i.push(n)),i||[]},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),i=n.length,r=n.shift(),a=x._queueHooks(e,t),o=function(){x.dequeue(e,t)};"inprogress"===r&&(r=n.shift(),i--),r&&("fx"===t&&n.unshift("inprogress"),delete a.stop,r.call(e,o,a)),!i&&a&&a.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return te.get(e,n)||te.access(e,n,{empty:x.Callbacks("once memory").add((function(){te.remove(e,[t+"queue",n])}))})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!==typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]*)/i,Ee=/^$|^module$|\/(?:java|ecma)script/i;(function(){var e=E.createDocumentFragment(),t=e.appendChild(E.createElement("div")),n=E.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),g.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",g.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue,t.innerHTML="",g.option=!!t.lastChild})();var ye={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!==typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!==typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?x.merge([e],n):n}function Ce(e,t){for(var n=0,i=e.length;n",""]);var Te=/<|&#?\w+;/;function xe(e,t,n,i,r){for(var a,o,s,l,c,u,d=t.createDocumentFragment(),p=[],h=0,f=e.length;h-1)r&&r.push(a);else if(c=de(a),o=Se(d.appendChild(a),"script"),c&&Ce(o),n){u=0;while(a=o[u++])Ee.test(a.type||"")&&n.push(a)}return d}var we=/^key/,Oe=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ne=/^([^.]*)(?:\.(.+)|)/;function Re(){return!0}function ke(){return!1}function Ae(e,t){return e===De()===("focus"===t)}function De(){try{return E.activeElement}catch(e){}}function Ie(e,t,n,i,r,a){var o,s;if("object"===typeof t){for(s in"string"!==typeof n&&(i=i||n,n=void 0),t)Ie(e,s,n,i,t[s],a);return e}if(null==i&&null==r?(r=n,i=n=void 0):null==r&&("string"===typeof n?(r=i,i=void 0):(r=i,i=n,n=void 0)),!1===r)r=ke;else if(!r)return e;return 1===a&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),e.each((function(){x.event.add(this,t,r,i,n)}))}function Me(e,t,n){n?(te.set(e,t,!1),x.event.add(e,t,{namespace:!1,handler:function(e){var i,r,a=te.get(this,t);if(1&e.isTrigger&&this[t]){if(a.length)(x.event.special[t]||{}).delegateType&&e.stopPropagation();else if(a=l.call(arguments),te.set(this,t,a),i=n(this,t),this[t](),r=te.get(this,t),a!==r||i?te.set(this,t,!1):r={},a!==r)return e.stopImmediatePropagation(),e.preventDefault(),r.value}else a.length&&(te.set(this,t,{value:x.event.trigger(x.extend(a[0],x.Event.prototype),a.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===te.get(e,t)&&x.event.add(e,t,Re)}x.event={global:{},add:function(e,t,n,i,r){var a,o,s,l,c,u,d,p,h,f,_,m=te.get(e);if(J(e)){n.handler&&(a=n,n=a.handler,r=a.selector),r&&x.find.matchesSelector(ue,r),n.guid||(n.guid=x.guid++),(l=m.events)||(l=m.events=Object.create(null)),(o=m.handle)||(o=m.handle=function(t){return"undefined"!==typeof x&&x.event.triggered!==t.type?x.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match($)||[""],c=t.length;while(c--)s=Ne.exec(t[c])||[],h=_=s[1],f=(s[2]||"").split(".").sort(),h&&(d=x.event.special[h]||{},h=(r?d.delegateType:d.bindType)||h,d=x.event.special[h]||{},u=x.extend({type:h,origType:_,data:i,handler:n,guid:n.guid,selector:r,needsContext:r&&x.expr.match.needsContext.test(r),namespace:f.join(".")},a),(p=l[h])||(p=l[h]=[],p.delegateCount=0,d.setup&&!1!==d.setup.call(e,i,f,o)||e.addEventListener&&e.addEventListener(h,o)),d.add&&(d.add.call(e,u),u.handler.guid||(u.handler.guid=n.guid)),r?p.splice(p.delegateCount++,0,u):p.push(u),x.event.global[h]=!0)}},remove:function(e,t,n,i,r){var a,o,s,l,c,u,d,p,h,f,_,m=te.hasData(e)&&te.get(e);if(m&&(l=m.events)){t=(t||"").match($)||[""],c=t.length;while(c--)if(s=Ne.exec(t[c])||[],h=_=s[1],f=(s[2]||"").split(".").sort(),h){d=x.event.special[h]||{},h=(i?d.delegateType:d.bindType)||h,p=l[h]||[],s=s[2]&&new RegExp("(^|\\.)"+f.join("\\.(?:.*\\.|)")+"(\\.|$)"),o=a=p.length;while(a--)u=p[a],!r&&_!==u.origType||n&&n.guid!==u.guid||s&&!s.test(u.namespace)||i&&i!==u.selector&&("**"!==i||!u.selector)||(p.splice(a,1),u.selector&&p.delegateCount--,d.remove&&d.remove.call(e,u));o&&!p.length&&(d.teardown&&!1!==d.teardown.call(e,f,m.handle)||x.removeEvent(e,h,m.handle),delete l[h])}else for(h in l)x.event.remove(e,h+t[c],n,i,!0);x.isEmptyObject(l)&&te.remove(e,"handle events")}},dispatch:function(e){var t,n,i,r,a,o,s=new Array(arguments.length),l=x.event.fix(e),c=(te.get(this,"events")||Object.create(null))[l.type]||[],u=x.event.special[l.type]||{};for(s[0]=l,t=1;t=1))for(;c!==this;c=c.parentNode||this)if(1===c.nodeType&&("click"!==e.type||!0!==c.disabled)){for(a=[],o={},n=0;n-1:x.find(r,this,null,[c]).length),o[r]&&a.push(i);a.length&&s.push({elem:c,handlers:a})}return c=this,l\s*$/g;function Be(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&x(e).children("tbody")[0]||e}function Ue(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function $e(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function je(e,t){var n,i,r,a,o,s,l;if(1===t.nodeType){if(te.hasData(e)&&(a=te.get(e),l=a.events,l))for(r in te.remove(t,"handle events"),l)for(n=0,i=l[r].length;n1&&"string"===typeof f&&!g.checkClone&&Pe.test(f))return e.each((function(r){var a=e.eq(r);_&&(t[0]=f.call(this,r,a.html())),qe(a,t,n,i)}));if(p&&(r=xe(t,e[0].ownerDocument,!1,e,i),a=r.firstChild,1===r.childNodes.length&&(r=a),a||i)){for(o=x.map(Se(r,"script"),Ue),s=o.length;d0&&Ce(o,!l&&Se(e,"script")),s},cleanData:function(e){for(var t,n,i,r=x.event.special,a=0;void 0!==(n=e[a]);a++)if(J(n)){if(t=n[te.expando]){if(t.events)for(i in t.events)r[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);n[te.expando]=void 0}n[ne.expando]&&(n[ne.expando]=void 0)}}}),x.fn.extend({detach:function(e){return He(this,e,!0)},remove:function(e){return He(this,e)},text:function(e){return W(this,(function(e){return void 0===e?x.text(this):this.empty().each((function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)}))}),null,e,arguments.length)},append:function(){return qe(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Be(this,e);t.appendChild(e)}}))},prepend:function(){return qe(this,arguments,(function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Be(this,e);t.insertBefore(e,t.firstChild)}}))},before:function(){return qe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this)}))},after:function(){return qe(this,arguments,(function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)}))},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(Se(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return x.clone(this,e,t)}))},html:function(e){return W(this,(function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"===typeof e&&!Le.test(e)&&!ye[(ve.exec(e)||["",""])[1].toLowerCase()]){e=x.htmlPrefilter(e);try{for(;n3,ue.removeChild(e)),s}}))})();var Xe=["Webkit","Moz","ms"],Ze=E.createElement("div").style,Je={};function et(e){var t=e[0].toUpperCase()+e.slice(1),n=Xe.length;while(n--)if(e=Xe[n]+t,e in Ze)return e}function tt(e){var t=x.cssProps[e]||Je[e];return t||(e in Ze?e:Je[e]=et(e)||e)}var nt=/^(none|table(?!-c[ea]).+)/,it=/^--/,rt={position:"absolute",visibility:"hidden",display:"block"},at={letterSpacing:"0",fontWeight:"400"};function ot(e,t,n){var i=le.exec(t);return i?Math.max(0,i[2]-(n||0))+(i[3]||"px"):t}function st(e,t,n,i,r,a){var o="width"===t?1:0,s=0,l=0;if(n===(i?"border":"content"))return 0;for(;o<4;o+=2)"margin"===n&&(l+=x.css(e,n+ce[o],!0,r)),i?("content"===n&&(l-=x.css(e,"padding"+ce[o],!0,r)),"margin"!==n&&(l-=x.css(e,"border"+ce[o]+"Width",!0,r))):(l+=x.css(e,"padding"+ce[o],!0,r),"padding"!==n?l+=x.css(e,"border"+ce[o]+"Width",!0,r):s+=x.css(e,"border"+ce[o]+"Width",!0,r));return!i&&a>=0&&(l+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-a-l-s-.5))||0),l}function lt(e,t,n){var i=ze(e),r=!g.boxSizingReliable()||n,a=r&&"border-box"===x.css(e,"boxSizing",!1,i),o=a,s=Ke(e,t,i),l="offset"+t[0].toUpperCase()+t.slice(1);if(Ve.test(s)){if(!n)return s;s="auto"}return(!g.boxSizingReliable()&&a||!g.reliableTrDimensions()&&A(e,"tr")||"auto"===s||!parseFloat(s)&&"inline"===x.css(e,"display",!1,i))&&e.getClientRects().length&&(a="border-box"===x.css(e,"boxSizing",!1,i),o=l in e,o&&(s=e[l])),s=parseFloat(s)||0,s+st(e,t,n||(a?"border":"content"),o,i,s)+"px"}function ct(e,t,n,i,r){return new ct.prototype.init(e,t,n,i,r)}x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Ke(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var r,a,o,s=Z(t),l=it.test(t),c=e.style;if(l||(t=tt(s)),o=x.cssHooks[t]||x.cssHooks[s],void 0===n)return o&&"get"in o&&void 0!==(r=o.get(e,!1,i))?r:c[t];a=typeof n,"string"===a&&(r=le.exec(n))&&r[1]&&(n=fe(e,t,r),a="number"),null!=n&&n===n&&("number"!==a||l||(n+=r&&r[3]||(x.cssNumber[s]?"":"px")),g.clearCloneStyle||""!==n||0!==t.indexOf("background")||(c[t]="inherit"),o&&"set"in o&&void 0===(n=o.set(e,n,i))||(l?c.setProperty(t,n):c[t]=n))}},css:function(e,t,n,i){var r,a,o,s=Z(t),l=it.test(t);return l||(t=tt(s)),o=x.cssHooks[t]||x.cssHooks[s],o&&"get"in o&&(r=o.get(e,!0,n)),void 0===r&&(r=Ke(e,t,i)),"normal"===r&&t in at&&(r=at[t]),""===n||n?(a=parseFloat(r),!0===n||isFinite(a)?a||0:r):r}}),x.each(["height","width"],(function(e,t){x.cssHooks[t]={get:function(e,n,i){if(n)return!nt.test(x.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?lt(e,t,i):Ye(e,rt,(function(){return lt(e,t,i)}))},set:function(e,n,i){var r,a=ze(e),o=!g.scrollboxSize()&&"absolute"===a.position,s=o||i,l=s&&"border-box"===x.css(e,"boxSizing",!1,a),c=i?st(e,t,i,l,a):0;return l&&o&&(c-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(a[t])-st(e,t,"border",!1,a)-.5)),c&&(r=le.exec(n))&&"px"!==(r[3]||"px")&&(e.style[t]=n,n=x.css(e,t)),ot(e,n,c)}}})),x.cssHooks.marginLeft=Qe(g.reliableMarginLeft,(function(e,t){if(t)return(parseFloat(Ke(e,"marginLeft"))||e.getBoundingClientRect().left-Ye(e,{marginLeft:0},(function(){return e.getBoundingClientRect().left})))+"px"})),x.each({margin:"",padding:"",border:"Width"},(function(e,t){x.cssHooks[e+t]={expand:function(n){for(var i=0,r={},a="string"===typeof n?n.split(" "):[n];i<4;i++)r[e+ce[i]+t]=a[i]||a[i-2]||a[0];return r}},"margin"!==e&&(x.cssHooks[e+t].set=ot)})),x.fn.extend({css:function(e,t){return W(this,(function(e,t,n){var i,r,a={},o=0;if(Array.isArray(t)){for(i=ze(e),r=t.length;o1)}}),x.Tween=ct,ct.prototype={constructor:ct,init:function(e,t,n,i,r,a){this.elem=e,this.prop=n,this.easing=r||x.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=i,this.unit=a||(x.cssNumber[n]?"":"px")},cur:function(){var e=ct.propHooks[this.prop];return e&&e.get?e.get(this):ct.propHooks._default.get(this)},run:function(e){var t,n=ct.propHooks[this.prop];return this.options.duration?this.pos=t=x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):ct.propHooks._default.set(this),this}},ct.prototype.init.prototype=ct.prototype,ct.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):1!==e.elem.nodeType||!x.cssHooks[e.prop]&&null==e.elem.style[tt(e.prop)]?e.elem[e.prop]=e.now:x.style(e.elem,e.prop,e.now+e.unit)}}},ct.propHooks.scrollTop=ct.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},x.fx=ct.prototype.init,x.fx.step={};var ut,dt,pt=/^(?:toggle|show|hide)$/,ht=/queueHooks$/;function ft(){dt&&(!1===E.hidden&&n.requestAnimationFrame?n.requestAnimationFrame(ft):n.setTimeout(ft,x.fx.interval),x.fx.tick())}function _t(){return n.setTimeout((function(){ut=void 0})),ut=Date.now()}function mt(e,t){var n,i=0,r={height:e};for(t=t?1:0;i<4;i+=2-t)n=ce[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function gt(e,t,n){for(var i,r=(Et.tweeners[t]||[]).concat(Et.tweeners["*"]),a=0,o=r.length;a1)},removeAttr:function(e){return this.each((function(){x.removeAttr(this,e)}))}}),x.extend({attr:function(e,t,n){var i,r,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return"undefined"===typeof e.getAttribute?x.prop(e,t,n):(1===a&&x.isXMLDoc(e)||(r=x.attrHooks[t.toLowerCase()]||(x.expr.match.bool.test(t)?yt:void 0)),void 0!==n?null===n?void x.removeAttr(e,t):r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:(e.setAttribute(t,n+""),n):r&&"get"in r&&null!==(i=r.get(e,t))?i:(i=x.find.attr(e,t),null==i?void 0:i))},attrHooks:{type:{set:function(e,t){if(!g.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,i=0,r=t&&t.match($);if(r&&1===e.nodeType)while(n=r[i++])e.removeAttribute(n)}}),yt={set:function(e,t,n){return!1===t?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),(function(e,t){var n=St[t]||x.find.attr;St[t]=function(e,t,i){var r,a,o=t.toLowerCase();return i||(a=St[o],St[o]=r,r=null!=n(e,t,i)?o:null,St[o]=a),r}}));var Ct=/^(?:input|select|textarea|button)$/i,Tt=/^(?:a|area)$/i;function xt(e){var t=e.match($)||[];return t.join(" ")}function wt(e){return e.getAttribute&&e.getAttribute("class")||""}function Ot(e){return Array.isArray(e)?e:"string"===typeof e&&e.match($)||[]}x.fn.extend({prop:function(e,t){return W(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each((function(){delete this[x.propFix[e]||e]}))}}),x.extend({prop:function(e,t,n){var i,r,a=e.nodeType;if(3!==a&&8!==a&&2!==a)return 1===a&&x.isXMLDoc(e)||(t=x.propFix[t]||t,r=x.propHooks[t]),void 0!==n?r&&"set"in r&&void 0!==(i=r.set(e,n,t))?i:e[t]=n:r&&"get"in r&&null!==(i=r.get(e,t))?i:e[t]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Ct.test(e.nodeName)||Tt.test(e.nodeName)&&e.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),g.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],(function(){x.propFix[this.toLowerCase()]=this})),x.fn.extend({addClass:function(e){var t,n,i,r,a,o,s,l=0;if(b(e))return this.each((function(t){x(this).addClass(e.call(this,t,wt(this)))}));if(t=Ot(e),t.length)while(n=this[l++])if(r=wt(n),i=1===n.nodeType&&" "+xt(r)+" ",i){o=0;while(a=t[o++])i.indexOf(" "+a+" ")<0&&(i+=a+" ");s=xt(i),r!==s&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,i,r,a,o,s,l=0;if(b(e))return this.each((function(t){x(this).removeClass(e.call(this,t,wt(this)))}));if(!arguments.length)return this.attr("class","");if(t=Ot(e),t.length)while(n=this[l++])if(r=wt(n),i=1===n.nodeType&&" "+xt(r)+" ",i){o=0;while(a=t[o++])while(i.indexOf(" "+a+" ")>-1)i=i.replace(" "+a+" "," ");s=xt(i),r!==s&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,i="string"===n||Array.isArray(e);return"boolean"===typeof t&&i?t?this.addClass(e):this.removeClass(e):b(e)?this.each((function(n){x(this).toggleClass(e.call(this,n,wt(this),t),t)})):this.each((function(){var t,r,a,o;if(i){r=0,a=x(this),o=Ot(e);while(t=o[r++])a.hasClass(t)?a.removeClass(t):a.addClass(t)}else void 0!==e&&"boolean"!==n||(t=wt(this),t&&te.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":te.get(this,"__className__")||""))}))},hasClass:function(e){var t,n,i=0;t=" "+e+" ";while(n=this[i++])if(1===n.nodeType&&(" "+xt(wt(n))+" ").indexOf(t)>-1)return!0;return!1}});var Nt=/\r/g;x.fn.extend({val:function(e){var t,n,i,r=this[0];return arguments.length?(i=b(e),this.each((function(n){var r;1===this.nodeType&&(r=i?e.call(this,n,x(this).val()):e,null==r?r="":"number"===typeof r?r+="":Array.isArray(r)&&(r=x.map(r,(function(e){return null==e?"":e+""}))),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,r,"value")||(this.value=r))}))):r?(t=x.valHooks[r.type]||x.valHooks[r.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(r,"value"))?n:(n=r.value,"string"===typeof n?n.replace(Nt,""):null==n?"":n)):void 0}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:xt(x.text(e))}},select:{get:function(e){var t,n,i,r=e.options,a=e.selectedIndex,o="select-one"===e.type,s=o?null:[],l=o?a+1:r.length;for(i=a<0?l:o?a:0;i-1)&&(n=!0);return n||(e.selectedIndex=-1),a}}}}),x.each(["radio","checkbox"],(function(){x.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=x.inArray(x(e).val(),t)>-1}},g.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})})),g.focusin="onfocusin"in n;var Rt=/^(?:focusinfocus|focusoutblur)$/,kt=function(e){e.stopPropagation()};x.extend(x.event,{trigger:function(e,t,i,r){var a,o,s,l,c,u,d,p,h=[i||E],_=f.call(e,"type")?e.type:e,m=f.call(e,"namespace")?e.namespace.split("."):[];if(o=p=s=i=i||E,3!==i.nodeType&&8!==i.nodeType&&!Rt.test(_+x.event.triggered)&&(_.indexOf(".")>-1&&(m=_.split("."),_=m.shift(),m.sort()),c=_.indexOf(":")<0&&"on"+_,e=e[x.expando]?e:new x.Event(_,"object"===typeof e&&e),e.isTrigger=r?2:3,e.namespace=m.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=i),t=null==t?[e]:x.makeArray(t,[e]),d=x.event.special[_]||{},r||!d.trigger||!1!==d.trigger.apply(i,t))){if(!r&&!d.noBubble&&!v(i)){for(l=d.delegateType||_,Rt.test(l+_)||(o=o.parentNode);o;o=o.parentNode)h.push(o),s=o;s===(i.ownerDocument||E)&&h.push(s.defaultView||s.parentWindow||n)}a=0;while((o=h[a++])&&!e.isPropagationStopped())p=o,e.type=a>1?l:d.bindType||_,u=(te.get(o,"events")||Object.create(null))[e.type]&&te.get(o,"handle"),u&&u.apply(o,t),u=c&&o[c],u&&u.apply&&J(o)&&(e.result=u.apply(o,t),!1===e.result&&e.preventDefault());return e.type=_,r||e.isDefaultPrevented()||d._default&&!1!==d._default.apply(h.pop(),t)||!J(i)||c&&b(i[_])&&!v(i)&&(s=i[c],s&&(i[c]=null),x.event.triggered=_,e.isPropagationStopped()&&p.addEventListener(_,kt),i[_](),e.isPropagationStopped()&&p.removeEventListener(_,kt),x.event.triggered=void 0,s&&(i[c]=s)),e.result}},simulate:function(e,t,n){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0});x.event.trigger(i,null,t)}}),x.fn.extend({trigger:function(e,t){return this.each((function(){x.event.trigger(e,t,this)}))},triggerHandler:function(e,t){var n=this[0];if(n)return x.event.trigger(e,t,n,!0)}}),g.focusin||x.each({focus:"focusin",blur:"focusout"},(function(e,t){var n=function(e){x.event.simulate(t,e.target,x.event.fix(e))};x.event.special[t]={setup:function(){var i=this.ownerDocument||this.document||this,r=te.access(i,t);r||i.addEventListener(e,n,!0),te.access(i,t,(r||0)+1)},teardown:function(){var i=this.ownerDocument||this.document||this,r=te.access(i,t)-1;r?te.access(i,t,r):(i.removeEventListener(e,n,!0),te.remove(i,t))}}}));var At=n.location,Dt={guid:Date.now()},It=/\?/;x.parseXML=function(e){var t;if(!e||"string"!==typeof e)return null;try{t=(new n.DOMParser).parseFromString(e,"text/xml")}catch(i){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+e),t};var Mt=/\[\]$/,Lt=/\r?\n/g,Pt=/^(?:submit|button|image|reset|file)$/i,Ft=/^(?:input|select|textarea|keygen)/i;function Bt(e,t,n,i){var r;if(Array.isArray(t))x.each(t,(function(t,r){n||Mt.test(e)?i(e,r):Bt(e+"["+("object"===typeof r&&null!=r?t:"")+"]",r,n,i)}));else if(n||"object"!==C(t))i(e,t);else for(r in t)Bt(e+"["+r+"]",t[r],n,i)}x.param=function(e,t){var n,i=[],r=function(e,t){var n=b(t)?t():t;i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,(function(){r(this.name,this.value)}));else for(n in e)Bt(n,e[n],t,r);return i.join("&")},x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map((function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this})).filter((function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&Ft.test(this.nodeName)&&!Pt.test(e)&&(this.checked||!be.test(e))})).map((function(e,t){var n=x(this).val();return null==n?null:Array.isArray(n)?x.map(n,(function(e){return{name:t.name,value:e.replace(Lt,"\r\n")}})):{name:t.name,value:n.replace(Lt,"\r\n")}})).get()}});var Ut=/%20/g,$t=/#.*$/,jt=/([?&])_=[^&]*/,Gt=/^(.*?):[ \t]*([^\r\n]*)$/gm,qt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Ht=/^(?:GET|HEAD)$/,Vt=/^\/\//,zt={},Yt={},Wt="*/".concat("*"),Kt=E.createElement("a");function Qt(e){return function(t,n){"string"!==typeof t&&(n=t,t="*");var i,r=0,a=t.toLowerCase().match($)||[];if(b(n))while(i=a[r++])"+"===i[0]?(i=i.slice(1)||"*",(e[i]=e[i]||[]).unshift(n)):(e[i]=e[i]||[]).push(n)}}function Xt(e,t,n,i){var r={},a=e===Yt;function o(s){var l;return r[s]=!0,x.each(e[s]||[],(function(e,s){var c=s(t,n,i);return"string"!==typeof c||a||r[c]?a?!(l=c):void 0:(t.dataTypes.unshift(c),o(c),!1)})),l}return o(t.dataTypes[0])||!r["*"]&&o("*")}function Zt(e,t){var n,i,r=x.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((r[n]?e:i||(i={}))[n]=t[n]);return i&&x.extend(!0,e,i),e}function Jt(e,t,n){var i,r,a,o,s=e.contents,l=e.dataTypes;while("*"===l[0])l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(r in s)if(s[r]&&s[r].test(i)){l.unshift(r);break}if(l[0]in n)a=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){a=r;break}o||(o=r)}a=a||o}if(a)return a!==l[0]&&l.unshift(a),n[a]}function en(e,t,n,i){var r,a,o,s,l,c={},u=e.dataTypes.slice();if(u[1])for(o in e.converters)c[o.toLowerCase()]=e.converters[o];a=u.shift();while(a)if(e.responseFields[a]&&(n[e.responseFields[a]]=t),!l&&i&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=a,a=u.shift(),a)if("*"===a)a=l;else if("*"!==l&&l!==a){if(o=c[l+" "+a]||c["* "+a],!o)for(r in c)if(s=r.split(" "),s[1]===a&&(o=c[l+" "+s[0]]||c["* "+s[0]],o)){!0===o?o=c[r]:!0!==c[r]&&(a=s[0],u.unshift(s[1]));break}if(!0!==o)if(o&&e.throws)t=o(t);else try{t=o(t)}catch(d){return{state:"parsererror",error:o?d:"No conversion from "+l+" to "+a}}}return{state:"success",data:t}}Kt.href=At.href,x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:At.href,type:"GET",isLocal:qt.test(At.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Wt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Zt(Zt(e,x.ajaxSettings),t):Zt(x.ajaxSettings,e)},ajaxPrefilter:Qt(zt),ajaxTransport:Qt(Yt),ajax:function(e,t){"object"===typeof e&&(t=e,e=void 0),t=t||{};var i,r,a,o,s,l,c,u,d,p,h=x.ajaxSetup({},t),f=h.context||h,_=h.context&&(f.nodeType||f.jquery)?x(f):x.event,m=x.Deferred(),g=x.Callbacks("once memory"),b=h.statusCode||{},v={},y={},S="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(c){if(!o){o={};while(t=Gt.exec(a))o[t[1].toLowerCase()+" "]=(o[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=o[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=y[e.toLowerCase()]=y[e.toLowerCase()]||e,v[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)C.always(e[C.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||S;return i&&i.abort(t),T(0,t),this}};if(m.promise(C),h.url=((e||h.url||At.href)+"").replace(Vt,At.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match($)||[""],null==h.crossDomain){l=E.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Kt.protocol+"//"+Kt.host!==l.protocol+"//"+l.host}catch(w){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!==typeof h.data&&(h.data=x.param(h.data,h.traditional)),Xt(zt,h,t,C),c)return C;for(d in u=x.event&&h.global,u&&0===x.active++&&x.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Ht.test(h.type),r=h.url.replace($t,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Ut,"+")):(p=h.url.slice(r.length),h.data&&(h.processData||"string"===typeof h.data)&&(r+=(It.test(r)?"&":"?")+h.data,delete h.data),!1===h.cache&&(r=r.replace(jt,"$1"),p=(It.test(r)?"&":"?")+"_="+Dt.guid+++p),h.url=r+p),h.ifModified&&(x.lastModified[r]&&C.setRequestHeader("If-Modified-Since",x.lastModified[r]),x.etag[r]&&C.setRequestHeader("If-None-Match",x.etag[r])),(h.data&&h.hasContent&&!1!==h.contentType||t.contentType)&&C.setRequestHeader("Content-Type",h.contentType),C.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Wt+"; q=0.01":""):h.accepts["*"]),h.headers)C.setRequestHeader(d,h.headers[d]);if(h.beforeSend&&(!1===h.beforeSend.call(f,C,h)||c))return C.abort();if(S="abort",g.add(h.complete),C.done(h.success),C.fail(h.error),i=Xt(Yt,h,t,C),i){if(C.readyState=1,u&&_.trigger("ajaxSend",[C,h]),c)return C;h.async&&h.timeout>0&&(s=n.setTimeout((function(){C.abort("timeout")}),h.timeout));try{c=!1,i.send(v,T)}catch(w){if(c)throw w;T(-1,w)}}else T(-1,"No Transport");function T(e,t,o,l){var d,p,v,E,y,S=t;c||(c=!0,s&&n.clearTimeout(s),i=void 0,a=l||"",C.readyState=e>0?4:0,d=e>=200&&e<300||304===e,o&&(E=Jt(h,C,o)),!d&&x.inArray("script",h.dataTypes)>-1&&(h.converters["text script"]=function(){}),E=en(h,E,C,d),d?(h.ifModified&&(y=C.getResponseHeader("Last-Modified"),y&&(x.lastModified[r]=y),y=C.getResponseHeader("etag"),y&&(x.etag[r]=y)),204===e||"HEAD"===h.type?S="nocontent":304===e?S="notmodified":(S=E.state,p=E.data,v=E.error,d=!v)):(v=S,!e&&S||(S="error",e<0&&(e=0))),C.status=e,C.statusText=(t||S)+"",d?m.resolveWith(f,[p,S,C]):m.rejectWith(f,[C,S,v]),C.statusCode(b),b=void 0,u&&_.trigger(d?"ajaxSuccess":"ajaxError",[C,h,d?p:v]),g.fireWith(f,[C,S]),u&&(_.trigger("ajaxComplete",[C,h]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,t){return x.get(e,void 0,t,"script")}}),x.each(["get","post"],(function(e,t){x[t]=function(e,n,i,r){return b(n)&&(r=r||i,i=n,n=void 0),x.ajax(x.extend({url:e,type:t,dataType:r,data:n,success:i},x.isPlainObject(e)&&e))}})),x.ajaxPrefilter((function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")})),x._evalUrl=function(e,t,n){return x.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){x.globalEval(e,t,n)}})},x.fn.extend({wrapAll:function(e){var t;return this[0]&&(b(e)&&(e=e.call(this[0])),t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e})).append(this)),this},wrapInner:function(e){return b(e)?this.each((function(t){x(this).wrapInner(e.call(this,t))})):this.each((function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=b(e);return this.each((function(n){x(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(e){return this.parent(e).not("body").each((function(){x(this).replaceWith(this.childNodes)})),this}}),x.expr.pseudos.hidden=function(e){return!x.expr.pseudos.visible(e)},x.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},x.ajaxSettings.xhr=function(){try{return new n.XMLHttpRequest}catch(e){}};var tn={0:200,1223:204},nn=x.ajaxSettings.xhr();g.cors=!!nn&&"withCredentials"in nn,g.ajax=nn=!!nn,x.ajaxTransport((function(e){var t,i;if(g.cors||nn&&!e.crossDomain)return{send:function(r,a){var o,s=e.xhr();if(s.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(o in e.xhrFields)s[o]=e.xhrFields[o];for(o in e.mimeType&&s.overrideMimeType&&s.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest"),r)s.setRequestHeader(o,r[o]);t=function(e){return function(){t&&(t=i=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!==typeof s.status?a(0,"error"):a(s.status,s.statusText):a(tn[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!==typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=t(),i=s.onerror=s.ontimeout=t("error"),void 0!==s.onabort?s.onabort=i:s.onreadystatechange=function(){4===s.readyState&&n.setTimeout((function(){t&&i()}))},t=t("abort");try{s.send(e.hasContent&&e.data||null)}catch(l){if(t)throw l}},abort:function(){t&&t()}}})),x.ajaxPrefilter((function(e){e.crossDomain&&(e.contents.script=!1)})),x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")})),x.ajaxTransport("script",(function(e){var t,n;if(e.crossDomain||e.scriptAttrs)return{send:function(i,r){t=x("