From 58190c7deedfea9b9b5cb09c27bfabdf28749427 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Sun, 1 Dec 2024 09:07:33 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20pure-adm?= =?UTF-8?q?in/pure-admin-doc@eec687ff7056af7ad76690a561b8f9c3078909e3=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 8 ++++---- archives/index.html | 6 +++--- .../{0.styles.7ef54451.css => 0.styles.a0a7b326.css} | 2 +- assets/js/{11.d2aee323.js => 11.c51e1014.js} | 2 +- assets/js/{22.078dd68a.js => 22.5cfb2459.js} | 2 +- assets/js/{27.fca6ae8c.js => 27.87016ad6.js} | 2 +- assets/js/{3.1a95ab97.js => 3.cde9428e.js} | 2 +- assets/js/{31.7edde430.js => 31.1e7dd700.js} | 2 +- assets/js/{32.d6e38c8e.js => 32.b4672401.js} | 2 +- assets/js/{33.f6ebe61a.js => 33.d5781ef2.js} | 2 +- assets/js/{36.a216af20.js => 36.b95470f8.js} | 2 +- assets/js/{37.08683363.js => 37.519ef2a0.js} | 2 +- assets/js/{39.d2a8436e.js => 39.5b8567ea.js} | 2 +- assets/js/{6.164cf557.js => 6.5ba72b14.js} | 2 +- assets/js/{7.ecc4e4fb.js => 7.0d5c0c19.js} | 2 +- assets/js/{9.f699aee2.js => 9.3c89917c.js} | 2 +- assets/js/{app.15dc9eb2.js => app.c5aeac04.js} | 4 ++-- index.html | 6 +++--- pages/FAQ/index.html | 10 +++++----- pages/RBAC/index.html | 8 ++++---- pages/build/index.html | 10 +++++----- pages/buildgood/index.html | 10 +++++----- pages/components/index.html | 10 +++++----- pages/config/index.html | 10 +++++----- pages/directory/index.html | 10 +++++----- pages/git/index.html | 8 ++++---- pages/i18n/index.html | 8 ++++---- pages/icon/index.html | 8 ++++---- pages/introduction/index.html | 10 +++++----- pages/js/index.html | 10 +++++----- pages/layout/index.html | 10 +++++----- pages/max/index.html | 10 +++++----- pages/nologin/index.html | 10 +++++----- pages/opensource/index.html | 8 ++++---- pages/optimize/index.html | 8 ++++---- pages/recommendation/index.html | 10 +++++----- pages/request/index.html | 10 +++++----- pages/routerMenu/index.html | 8 ++++---- pages/service/index.html | 8 ++++---- pages/sponsor/index.html | 10 +++++----- pages/sso/index.html | 10 +++++----- pages/start/index.html | 10 +++++----- pages/tailwindcss/index.html | 10 +++++----- pages/theme/index.html | 10 +++++----- pages/track/index.html | 10 +++++----- pages/typescript/index.html | 10 +++++----- pages/utils/index.html | 10 +++++----- pages/viteplugin/index.html | 10 +++++----- pages/vscode/index.html | 10 +++++----- 49 files changed, 173 insertions(+), 173 deletions(-) rename assets/css/{0.styles.7ef54451.css => 0.styles.a0a7b326.css} (99%) rename assets/js/{11.d2aee323.js => 11.c51e1014.js} (65%) rename assets/js/{22.078dd68a.js => 22.5cfb2459.js} (99%) rename assets/js/{27.fca6ae8c.js => 27.87016ad6.js} (98%) rename assets/js/{3.1a95ab97.js => 3.cde9428e.js} (99%) rename assets/js/{31.7edde430.js => 31.1e7dd700.js} (98%) rename assets/js/{32.d6e38c8e.js => 32.b4672401.js} (98%) rename assets/js/{33.f6ebe61a.js => 33.d5781ef2.js} (96%) rename assets/js/{36.a216af20.js => 36.b95470f8.js} (99%) rename assets/js/{37.08683363.js => 37.519ef2a0.js} (99%) rename assets/js/{39.d2a8436e.js => 39.5b8567ea.js} (77%) rename assets/js/{6.164cf557.js => 6.5ba72b14.js} (97%) rename assets/js/{7.ecc4e4fb.js => 7.0d5c0c19.js} (97%) rename assets/js/{9.f699aee2.js => 9.3c89917c.js} (97%) rename assets/js/{app.15dc9eb2.js => app.c5aeac04.js} (90%) diff --git a/404.html b/404.html index 017b6e69f..9ed6a4c68 100644 --- a/404.html +++ b/404.html @@ -11,11 +11,11 @@ - - + + -
404
这是一个Four-Oh-Four.
返回首页
- +
404
看来我们的链接坏掉了~
返回首页
+ diff --git a/archives/index.html b/archives/index.html index c31f352dd..4cdd623fe 100644 --- a/archives/index.html +++ b/archives/index.html @@ -11,8 +11,8 @@ - - + +
- + diff --git a/assets/css/0.styles.7ef54451.css b/assets/css/0.styles.a0a7b326.css similarity index 99% rename from assets/css/0.styles.7ef54451.css rename to assets/css/0.styles.a0a7b326.css index 09ca9c47f..a7be2dfa5 100644 --- a/assets/css/0.styles.7ef54451.css +++ b/assets/css/0.styles.a0a7b326.css @@ -1 +1 @@ -@import url(//at.alicdn.com/t/font_1678482_4tbhmh589x.css);.code-copy{color:#aaa;fill:#aaa;font-size:14px;display:inline-block;cursor:pointer}div[class*=aside-code] aside .code-copy,div[class*=language-] pre .code-copy{position:absolute;z-index:1000;top:7px;right:35px;opacity:0;font-size:16px}div[class*=aside-code] aside:hover .code-copy,div[class*=language-] pre:hover .code-copy{opacity:1}.content pre,.content pre[class*=language-]{overflow-y:hidden}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{position:static!important}div[class~=language-text]:before{content:"text"}div[class~=language-yml]:before{content:"yml"}div[class*=language-] pre{-webkit-user-select:text;-moz-user-select:text;user-select:text}p code{-webkit-user-select:all;-moz-user-select:all;user-select:all}@keyframes message-move-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}#message-container .message.move-in{animation:message-move-in .3s ease-in-out}@keyframes message-move-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}#message-container .message.move-out{animation:message-move-out .3s ease-in-out;animation-fill-mode:forwards}#message-container .message{background:#fff;margin:10px 0;padding:0 10px;height:40px;box-shadow:0 0 10px 0 #ccc;font-size:14px;border-radius:3px;display:flex;align-items:center;transition:height .2s ease-in-out,margin .2s ease-in-out}#message-container{position:fixed;left:0;top:100px;right:0;display:flex;flex-direction:column;align-items:center}#message-container .message .text{color:#333;padding:0 20px 0 5px}.theme-code-block[data-v-b7295a7e]{display:none}.theme-code-block__active[data-v-b7295a7e]{display:block}.theme-code-block>pre[data-v-b7295a7e]{background-color:orange}@media (max-width:419px){.theme-code-group div[class*=language-][data-v-b7295a7e]{margin:0}}.theme-mode-light[data-v-d560d5e8]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-d560d5e8]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-d560d5e8]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-d560d5e8]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-d560d5e8],.theme-mode-light pre[class*=language-][data-v-d560d5e8]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-d560d5e8]::-moz-selection,.theme-mode-light code[class*=language-][data-v-d560d5e8] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-d560d5e8]::selection,.theme-mode-light code[class*=language-][data-v-d560d5e8] ::selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8]::selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-d560d5e8],.theme-mode-light pre[class*=language-][data-v-d560d5e8]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-d560d5e8]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-d560d5e8],.theme-mode-light pre[class*=language-][data-v-d560d5e8]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-d560d5e8]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-d560d5e8],.theme-mode-light .token.comment[data-v-d560d5e8],.theme-mode-light .token.doctype[data-v-d560d5e8],.theme-mode-light .token.prolog[data-v-d560d5e8]{color:#708090}.theme-mode-light .token.punctuation[data-v-d560d5e8]{color:#999}.theme-mode-light .namespace[data-v-d560d5e8]{opacity:.7}.theme-mode-light .token.boolean[data-v-d560d5e8],.theme-mode-light .token.constant[data-v-d560d5e8],.theme-mode-light .token.deleted[data-v-d560d5e8],.theme-mode-light .token.number[data-v-d560d5e8],.theme-mode-light .token.property[data-v-d560d5e8],.theme-mode-light .token.symbol[data-v-d560d5e8],.theme-mode-light .token.tag[data-v-d560d5e8]{color:#905}.theme-mode-light .token.attr-name[data-v-d560d5e8],.theme-mode-light .token.builtin[data-v-d560d5e8],.theme-mode-light .token.char[data-v-d560d5e8],.theme-mode-light .token.inserted[data-v-d560d5e8],.theme-mode-light .token.selector[data-v-d560d5e8],.theme-mode-light .token.string[data-v-d560d5e8]{color:#690}.theme-mode-light .language-css .token.string[data-v-d560d5e8],.theme-mode-light .style .token.string[data-v-d560d5e8],.theme-mode-light .token.entity[data-v-d560d5e8],.theme-mode-light .token.operator[data-v-d560d5e8],.theme-mode-light .token.url[data-v-d560d5e8]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-d560d5e8],.theme-mode-light .token.attr-value[data-v-d560d5e8],.theme-mode-light .token.keyword[data-v-d560d5e8]{color:#07a}.theme-mode-light .token.class-name[data-v-d560d5e8],.theme-mode-light .token.function[data-v-d560d5e8]{color:#dd4a68}.theme-mode-light .token.important[data-v-d560d5e8],.theme-mode-light .token.regex[data-v-d560d5e8],.theme-mode-light .token.variable[data-v-d560d5e8]{color:#e90}.theme-mode-light .token.bold[data-v-d560d5e8],.theme-mode-light .token.important[data-v-d560d5e8]{font-weight:700}.theme-mode-light .token.italic[data-v-d560d5e8]{font-style:italic}.theme-mode-light .token.entity[data-v-d560d5e8]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-d560d5e8],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-d560d5e8]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-d560d5e8]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-d560d5e8],.theme-mode-dark pre[class*=language-][data-v-d560d5e8]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-d560d5e8]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-d560d5e8],.theme-mode-dark pre[class*=language-][data-v-d560d5e8]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-d560d5e8]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-d560d5e8],.theme-mode-dark .token.cdata[data-v-d560d5e8],.theme-mode-dark .token.comment[data-v-d560d5e8],.theme-mode-dark .token.doctype[data-v-d560d5e8],.theme-mode-dark .token.prolog[data-v-d560d5e8]{color:#999}.theme-mode-dark .token.punctuation[data-v-d560d5e8]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-d560d5e8],.theme-mode-dark .token.deleted[data-v-d560d5e8],.theme-mode-dark .token.namespace[data-v-d560d5e8],.theme-mode-dark .token.tag[data-v-d560d5e8]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-d560d5e8]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-d560d5e8],.theme-mode-dark .token.function[data-v-d560d5e8],.theme-mode-dark .token.number[data-v-d560d5e8]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-d560d5e8],.theme-mode-dark .token.constant[data-v-d560d5e8],.theme-mode-dark .token.property[data-v-d560d5e8],.theme-mode-dark .token.symbol[data-v-d560d5e8]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-d560d5e8],.theme-mode-dark .token.builtin[data-v-d560d5e8],.theme-mode-dark .token.important[data-v-d560d5e8],.theme-mode-dark .token.keyword[data-v-d560d5e8],.theme-mode-dark .token.selector[data-v-d560d5e8]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-d560d5e8],.theme-mode-dark .token.char[data-v-d560d5e8],.theme-mode-dark .token.regex[data-v-d560d5e8],.theme-mode-dark .token.string[data-v-d560d5e8],.theme-mode-dark .token.variable[data-v-d560d5e8]{color:#7ec699}.theme-mode-dark .token.entity[data-v-d560d5e8],.theme-mode-dark .token.operator[data-v-d560d5e8],.theme-mode-dark .token.url[data-v-d560d5e8]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-d560d5e8],.theme-mode-dark .style .token.string[data-v-d560d5e8],.theme-mode-dark .token.entity[data-v-d560d5e8],.theme-mode-dark .token.operator[data-v-d560d5e8],.theme-mode-dark .token.url[data-v-d560d5e8]{background:none}.theme-mode-dark .token.bold[data-v-d560d5e8],.theme-mode-dark .token.important[data-v-d560d5e8]{font-weight:700}.theme-mode-dark .token.italic[data-v-d560d5e8]{font-style:italic}.theme-mode-dark .token.entity[data-v-d560d5e8]{cursor:help}.theme-mode-dark .token.inserted[data-v-d560d5e8]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-d560d5e8]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-d560d5e8]{background-color:transparent}.theme-mode-dark blockquote[data-v-d560d5e8]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-d560d5e8]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-d560d5e8]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-d560d5e8]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-d560d5e8]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-d560d5e8]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-d560d5e8]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-d560d5e8],.theme-mode-dark .custom-block.note[data-v-d560d5e8],.theme-mode-dark .custom-block.tip[data-v-d560d5e8],.theme-mode-dark .custom-block.warning[data-v-d560d5e8]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-d560d5e8],.theme-mode-dark .custom-block.danger[data-v-d560d5e8]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-d560d5e8]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-d560d5e8]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-d560d5e8],.theme-mode-dark .nav-item .dropdown-title a[data-v-d560d5e8]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-d560d5e8],.theme-mode-dark .nav-item>a[data-v-d560d5e8]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-d560d5e8]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-d560d5e8]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-d560d5e8]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-d560d5e8],.theme-mode-dark .buttons .button .select-box li[data-v-d560d5e8]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-d560d5e8]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-d560d5e8]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-d560d5e8],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-d560d5e8]:hover,.theme-mode-dark .pagination span[data-v-d560d5e8]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-d560d5e8]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-d560d5e8],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-d560d5e8]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-d560d5e8]:hover,.theme-mode-dark a.sidebar-link[data-v-d560d5e8]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-d560d5e8]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-d560d5e8],.theme-mode-dark .search-box input[data-v-d560d5e8]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-d560d5e8]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-d560d5e8],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-d560d5e8]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-d560d5e8],.theme-mode-dark .tabs-component-tab[data-v-d560d5e8]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-d560d5e8]{color:#b160ea}.theme-mode-read[data-v-d560d5e8]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-d560d5e8],.theme-mode-read pre[class*=language-][data-v-d560d5e8]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-d560d5e8]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-d560d5e8],.theme-mode-read pre[class*=language-][data-v-d560d5e8]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-d560d5e8]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-d560d5e8],.theme-mode-read .token.cdata[data-v-d560d5e8],.theme-mode-read .token.comment[data-v-d560d5e8],.theme-mode-read .token.doctype[data-v-d560d5e8],.theme-mode-read .token.prolog[data-v-d560d5e8]{color:#999}.theme-mode-read .token.punctuation[data-v-d560d5e8]{color:#ccc}.theme-mode-read .token.attr-name[data-v-d560d5e8],.theme-mode-read .token.deleted[data-v-d560d5e8],.theme-mode-read .token.namespace[data-v-d560d5e8],.theme-mode-read .token.tag[data-v-d560d5e8]{color:#e2777a}.theme-mode-read .token.function-name[data-v-d560d5e8]{color:#6196cc}.theme-mode-read .token.boolean[data-v-d560d5e8],.theme-mode-read .token.function[data-v-d560d5e8],.theme-mode-read .token.number[data-v-d560d5e8]{color:#f08d49}.theme-mode-read .token.class-name[data-v-d560d5e8],.theme-mode-read .token.constant[data-v-d560d5e8],.theme-mode-read .token.property[data-v-d560d5e8],.theme-mode-read .token.symbol[data-v-d560d5e8]{color:#f8c555}.theme-mode-read .token.atrule[data-v-d560d5e8],.theme-mode-read .token.builtin[data-v-d560d5e8],.theme-mode-read .token.important[data-v-d560d5e8],.theme-mode-read .token.keyword[data-v-d560d5e8],.theme-mode-read .token.selector[data-v-d560d5e8]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-d560d5e8],.theme-mode-read .token.char[data-v-d560d5e8],.theme-mode-read .token.regex[data-v-d560d5e8],.theme-mode-read .token.string[data-v-d560d5e8],.theme-mode-read .token.variable[data-v-d560d5e8]{color:#7ec699}.theme-mode-read .token.entity[data-v-d560d5e8],.theme-mode-read .token.operator[data-v-d560d5e8],.theme-mode-read .token.url[data-v-d560d5e8]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-d560d5e8],.theme-mode-read .style .token.string[data-v-d560d5e8],.theme-mode-read .token.entity[data-v-d560d5e8],.theme-mode-read .token.operator[data-v-d560d5e8],.theme-mode-read .token.url[data-v-d560d5e8]{background:none}.theme-mode-read .token.bold[data-v-d560d5e8],.theme-mode-read .token.important[data-v-d560d5e8]{font-weight:700}.theme-mode-read .token.italic[data-v-d560d5e8]{font-style:italic}.theme-mode-read .token.entity[data-v-d560d5e8]{cursor:help}.theme-mode-read .token.inserted[data-v-d560d5e8]{color:green}.theme-code-group[data-v-d560d5e8],.theme-code-group__nav[data-v-d560d5e8]{background-color:var(--codeBg);padding-bottom:22px;border-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__nav[data-v-d560d5e8]{margin-bottom:-35px}.theme-code-group__ul[data-v-d560d5e8]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__li[data-v-d560d5e8],.theme-code-group__nav-tab[data-v-d560d5e8]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:var(--codeColor);font-weight:600;opacity:.85}.theme-code-group__nav-tab-active[data-v-d560d5e8]{border-bottom:1px solid #426feb;opacity:1}.pre-blank[data-v-d560d5e8]{color:#426feb}body .theme-vdoing-content code{color:var(--textLightenColor);padding:.25rem .5rem;margin:0;font-size:.9em;background-color:hsla(0,0%,39.2%,.08);border-radius:3px}body .theme-vdoing-content code .token.deleted{color:#ec5975}body .theme-vdoing-content code .token.inserted{color:#426feb}body .theme-vdoing-content pre,body .theme-vdoing-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}body .theme-vdoing-content pre[class*=language-] code,body .theme-vdoing-content pre code{color:var(--codeColor);padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:var(--codeBg);border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.3)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative!important;z-index:1}div[class*=language-]:before{top:.8em;right:1em;font-size:.8rem;color:hsla(0,0%,58.8%,.7)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:2.5rem;height:100%;background-color:rgba(0,0,0,.3)}div[class*=language-].line-numbers-mode pre{padding-left:3.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:2.5rem;text-align:center;color:hsla(0,0%,49.8%,.5);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:2.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid var(--borderColor);background-color:var(--codeBg)}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:.2rem}.custom-block p{margin:0}.custom-block.danger,.custom-block.note,.custom-block.tip,.custom-block.warning{padding:.5rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983;color:#215d42}.custom-block.warning{background-color:#fff7d0;border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:var(--textColor)}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:var(--textColor)}.custom-block.note{background-color:#e8f5fa;border-color:#157bae;color:#0d4a68}.custom-block.right{color:var(--textColor);font-size:.9rem;text-align:right}.custom-block.theorem{margin:1rem 0;padding:.8rem 1.5rem;border-radius:2px;background-color:var(--customBlockBg)}.custom-block.theorem .title{font-weight:700;margin:.5rem 0}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1em 0;padding:1.6em;background-color:var(--customBlockBg)}.custom-block.details p{margin:.8rem 0}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.custom-block.details summary:hover{color:#426feb}.theme-mode-dark .custom-block.warning{background-color:rgba(255,247,208,.2);color:#e7c000}.theme-mode-dark .custom-block.warning .custom-block-title{color:#ffdc2f}.theme-mode-dark .custom-block.tip{background-color:rgba(243,245,247,.2);color:#42b983}.theme-mode-dark .custom-block.danger{background-color:rgba(255,230,230,.4);color:maroon}.theme-mode-dark .custom-block.danger a{color:#426feb}.theme-mode-dark .custom-block.note{background-color:rgba(243,245,247,.2);color:#157bae}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-vdoing-content:not(.custom){max-width:860px}.table-of-contents .badge{vertical-align:middle}.center-container{text-align:center}.center-container>h1,.center-container>h2,.center-container>h3,.center-container>h4,.center-container>h5,.center-container>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.center-container>h1 a.header-anchor,.center-container>h2 a.header-anchor,.center-container>h3 a.header-anchor,.center-container>h4 a.header-anchor,.center-container>h5 a.header-anchor,.center-container>h6 a.header-anchor{float:none;padding-right:0;margin-left:-.9rem}.cardListContainer{margin:.7rem 0}.cardListContainer>:not(.card-list){display:none}.cardListContainer .card-list{margin:-.35rem;display:flex;flex-wrap:wrap;align-items:flex-start}.cardListContainer .card-list .card-item{width:calc(33.33333% - .7rem);margin:.35rem;background:var(--bodyBg);border-radius:3px;color:var(--textColor);display:flex;box-shadow:1px 1px 2px 0 rgba(0,0,0,.06);transition:all .4s}.cardListContainer .card-list .card-item:hover{text-decoration:none;box-shadow:0 10px 20px -10px var(--randomColor,rgba(0,0,0,.15));transform:translateY(-3px) scale(1.01)}.cardListContainer .card-list .card-item:hover img{box-shadow:3px 2px 7px rgba(0,0,0,.15)}.cardListContainer .card-list .card-item:hover div p{text-shadow:3px 2px 5px rgba(0,0,0,.15)}.cardListContainer .card-list .card-item img{width:60px;height:60px;border-radius:50%;border:2px solid #fff;margin:1rem 0 1rem 1rem;box-shadow:3px 2px 5px rgba(0,0,0,.08);transition:all .4s}.cardListContainer .card-list .card-item div{flex:1;display:inline-block;float:right;padding:1rem 0}.cardListContainer .card-list .card-item div p{margin:0;padding:0 1rem;transition:text-shadow .4s;text-align:center}.cardListContainer .card-list .card-item div .name{margin:.2rem 0 .3rem}.cardListContainer .card-list .card-item div .desc{font-size:.8rem;line-height:1.1rem;opacity:.8;margin-bottom:.2rem}.cardListContainer .card-list .card-item.row-1{width:calc(100% - .7rem)}.cardListContainer .card-list .card-item.row-1 img{margin-left:2rem}.cardListContainer .card-list .card-item.row-2{width:calc(50% - .7rem)}.cardListContainer .card-list .card-item.row-2 img{margin-left:1.5rem}.cardListContainer .card-list .card-item.row-3{width:calc(33.33333% - .7rem)}.cardListContainer .card-list .card-item.row-4{width:calc(25% - .7rem)}.cardImgListContainer{margin:1rem 0}.cardImgListContainer>:not(.card-list){display:none}.cardImgListContainer .card-list{margin:-.5rem;display:flex;flex-wrap:wrap;align-items:flex-start}.cardImgListContainer .card-list .card-item{width:calc(33.33333% - 1rem);margin:.5rem;background:var(--mainBg);border:1px solid rgba(0,0,0,.1);box-sizing:border-box;border-radius:3px;overflow:hidden;color:var(--textColor);box-shadow:2px 2px 10px rgba(0,0,0,.04);display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:stretch;transition:all .4s}.cardImgListContainer .card-list .card-item:hover{box-shadow:1px 1px 20px rgba(0,0,0,.1);transform:translateY(-3px)}.cardImgListContainer .card-list .card-item .box-img{overflow:hidden;position:relative;background:#eee}.cardImgListContainer .card-list .card-item .box-img img{display:block;width:100%;height:100%;transition:all .3s}.cardImgListContainer .card-list .card-item a{color:var(--textColor);transition:color .3s}.cardImgListContainer .card-list .card-item a:hover{text-decoration:none}.cardImgListContainer .card-list .card-item .box-info{padding:.8rem 1rem}.cardImgListContainer .card-list .card-item .box-info p{margin:0}.cardImgListContainer .card-list .card-item .box-info .desc{margin-top:.3rem;opacity:.8;font-size:.9rem;line-height:1.1rem;overflow:hidden;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.cardImgListContainer .card-list .card-item .box-footer{overflow:hidden;padding:.8rem 1rem;border-top:1px solid rgba(0,0,0,.1)}.cardImgListContainer .card-list .card-item .box-footer img{width:1.8rem;height:1.8rem;border-radius:50%;float:left}.cardImgListContainer .card-list .card-item .box-footer span{line-height:1.8rem;float:left;margin-left:.6rem;font-size:.8rem}.cardImgListContainer .card-list .card-item.row-1{width:calc(100% - 1rem)}.cardImgListContainer .card-list .card-item.row-2{width:calc(50% - 1rem)}.cardImgListContainer .card-list .card-item.row-3{width:calc(33.33333% - 1rem)}.cardImgListContainer .card-list .card-item.row-4{width:calc(25% - 1rem)}.theme-mode-dark .cardImgListContainer .card-list .card-item,.theme-mode-dark .cardImgListContainer .card-list .card-item .box-footer{border-color:var(--borderColor)}@media (max-width:900px){.cardListContainer .card-list .card-item.row-4{width:calc(33.33333% - .7rem)}.cardImgListContainer .card-list .card-item.row-4{width:calc(33.33333% - 1rem)}}@media (max-width:720px){.cardListContainer .card-list .card-item.row-3,.cardListContainer .card-list .card-item.row-4{width:calc(50% - .7rem)}.cardListContainer .card-list .card-item.row-3 img,.cardListContainer .card-list .card-item.row-4 img{margin-left:1.5rem}.cardImgListContainer .card-list .card-item.row-3,.cardImgListContainer .card-list .card-item.row-4{width:calc(50% - 1rem)}}@media (max-width:500px){.cardListContainer .card-list .card-item.row-1,.cardListContainer .card-list .card-item.row-2,.cardListContainer .card-list .card-item.row-3,.cardListContainer .card-list .card-item.row-4{width:calc(100% - .7rem)}.cardListContainer .card-list .card-item.row-1 img,.cardListContainer .card-list .card-item.row-2 img,.cardListContainer .card-list .card-item.row-3 img,.cardListContainer .card-list .card-item.row-4 img{margin-left:1.5rem}.cardImgListContainer .card-list .card-item.row-1,.cardImgListContainer .card-list .card-item.row-2,.cardImgListContainer .card-list .card-item.row-3,.cardImgListContainer .card-list .card-item.row-4{width:calc(100% - 1rem)}}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-size:16px;color:#2c3e50;background:var(--bodyBg)}a,button,input{outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-focus-ring-color:transparent}@media (min-width:719px){::-webkit-scrollbar{width:6px;height:5px}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.15);-webkit-border-radius:3px}::-webkit-scrollbar-thumb:vertical{height:5px;background-color:rgba(0,0,0,.28);-webkit-border-radius:3px}::-webkit-scrollbar-thumb:horizontal{width:5px;background-color:rgba(0,0,0,.28);-webkit-border-radius:3px}}.card-box{border-radius:5px;background:var(--mainBg);box-shadow:0 0 4px 0 rgba(0,0,0,.1);transition:box-shadow .5s}.card-box:hover{box-shadow:0 1px 15px 0 rgba(0,0,0,.1)}@media (max-width:719px){.theme-style-line{margin-left:-1px;margin-right:-1px}}.theme-style-line .card-box{box-shadow:0 0;border:1px solid var(--borderColor)}.blur{-webkit-backdrop-filter:saturate(200%) blur(20px);backdrop-filter:saturate(200%) blur(20px)}.custom-page{min-height:calc(100vh - 3.6rem);padding-top:3.6rem;padding-bottom:.9rem}.custom-page .theme-vdoing-wrapper{margin:0 auto}body .search-box input{background-color:transparent;color:var(--textColor);border:1px solid var(--borderColor,#ccc)}@media (max-width:959px){body .search-box input{border-color:transparent}}.page{transition:padding .2s ease;padding-left:.8rem}.navbar{position:fixed;z-index:20;top:0;left:0;right:0;height:3.6rem;background-color:var(--blurBg);box-sizing:border-box;box-shadow:0 2px 5px rgba(0,0,0,.06)}.sidebar-mask{top:0;width:100vw;height:100vh}.sidebar-hover-trigger,.sidebar-mask{position:fixed;z-index:12;left:0;display:none}.sidebar-hover-trigger{top:8.1rem;bottom:0;width:24px}.sidebar{font-size:16px;background-color:var(--sidebarBg);width:18rem;position:fixed;z-index:13;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid var(--borderColor);overflow-y:auto;transform:translateX(-100%);transition:transform .2s}@media (max-width:719px){.sidebar{background-color:var(--mainBg)}}.theme-vdoing-content:not(.custom){word-wrap:break-word}.theme-vdoing-content:not(.custom) a:hover{text-decoration:underline}.theme-vdoing-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-vdoing-content:not(.custom) img{max-width:100%}.theme-vdoing-content.custom{padding:0;margin:0}.theme-vdoing-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#426feb}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;opacity:.75;border-left:.2rem solid hsla(0,0%,39.2%,.3);margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-vdoing-content:not(.custom)>h1,.theme-vdoing-content:not(.custom)>h2,.theme-vdoing-content:not(.custom)>h3,.theme-vdoing-content:not(.custom)>h4,.theme-vdoing-content:not(.custom)>h5,.theme-vdoing-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-vdoing-content:not(.custom)>h1:first-child,.theme-vdoing-content:not(.custom)>h2:first-child,.theme-vdoing-content:not(.custom)>h3:first-child,.theme-vdoing-content:not(.custom)>h4:first-child,.theme-vdoing-content:not(.custom)>h5:first-child,.theme-vdoing-content:not(.custom)>h6:first-child{margin-bottom:1rem}.theme-vdoing-content:not(.custom)>h1:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h1:first-child+p,.theme-vdoing-content:not(.custom)>h1:first-child+pre,.theme-vdoing-content:not(.custom)>h2:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h2:first-child+p,.theme-vdoing-content:not(.custom)>h2:first-child+pre,.theme-vdoing-content:not(.custom)>h3:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h3:first-child+p,.theme-vdoing-content:not(.custom)>h3:first-child+pre,.theme-vdoing-content:not(.custom)>h4:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h4:first-child+p,.theme-vdoing-content:not(.custom)>h4:first-child+pre,.theme-vdoing-content:not(.custom)>h5:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h5:first-child+p,.theme-vdoing-content:not(.custom)>h5:first-child+pre,.theme-vdoing-content:not(.custom)>h6:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h6:first-child+p,.theme-vdoing-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:focus .header-anchor,h1:hover .header-anchor,h2:focus .header-anchor,h2:hover .header-anchor,h3:focus .header-anchor,h3:hover .header-anchor,h4:focus .header-anchor,h4:hover .header-anchor,h5:focus .header-anchor,h5:hover .header-anchor,h6:focus .header-anchor,h6:hover .header-anchor{opacity:1}.theme-vdoing-content:not(.custom)>.custom-block:first-child,.theme-vdoing-content:not(.custom)>p:first-child,.theme-vdoing-content:not(.custom)>pre:first-child{margin-top:2rem}h1{font-size:1.9rem}.theme-vdoing-content:not(.custom)>h1:first-child{display:none}h2{font-size:1.5rem;padding-bottom:.3rem;border-bottom:1px solid var(--borderColor)}h3{font-size:1.35rem}.page h4{font-size:1.25rem}.page h5{font-size:1.15rem}.page h6{font-size:1.05rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:focus,a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid var(--borderColor)}table{border-collapse:collapse;margin:1rem 0;overflow-x:auto;width:100%;display:inline-table}@media (max-width:719px){table{display:block}}tr{border-top:1px solid var(--borderColor)}tr:nth-child(2n){background-color:hsla(0,0%,58.8%,.1)}td,th{border:1px solid var(--borderColor);padding:.6em 1em}@media (max-width:719px){td,th{padding:.3em .5em}}td a,th a{word-break:break-all}.theme-container{color:var(--textColor)}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-vdoing-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px}}@media (max-width:719px){.sidebar{width:17.099999999999998rem}}@media (min-width:720px) and (max-width:959px){.sidebar{width:16.2rem}.theme-container.sidebar-open .page{padding-left:17rem!important}}@media (max-width:719px){.sidebar{top:0;height:100vh;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-vdoing-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}@media (min-width:720px){.theme-container .sidebar-hover-trigger{display:block}.theme-container .sidebar-hover-trigger:hover~.sidebar,.theme-container:not(.sidebar-open) .sidebar-hover-trigger~.sidebar:hover{transform:translateX(0);z-index:100}.theme-container.sidebar-open .sidebar-mask{display:none}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.sidebar-open .sidebar-button{left:18rem}.theme-container.sidebar-open .page{padding-left:18.8rem;padding-right:.8rem}.theme-container.sidebar-open .sidebar-hover-trigger{display:none}.theme-container.have-rightmenu .page{padding-right:250px}.theme-container.no-sidebar .page{padding-left:0!important}.theme-container.no-sidebar .sidebar-hover-trigger{display:none}.theme-container.hide-navbar .sidebar-hover-trigger{top:4.5rem}.theme-container.hide-navbar .sidebar{top:0}.theme-container.no-sidebar .sidebar-button{display:none}}@media print{.buttons,.navbar,.sidebar{display:none}.page{padding-top:0!important}}@media (min-width:720px) and (max-width:959px){.theme-container.sidebar-open:not(.on-sidebar) .sidebar-button{left:12.6rem}}table{width:auto}.card-box,.page>:not(.footer){box-shadow:none!important}@media (min-width:940px){.page{padding-top:3.6rem!important}}.home-wrapper .banner .banner-conent{padding:0 2.9rem;box-sizing:border-box}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a h2{margin-top:2rem;font-size:1.2rem!important}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a p{padding:0 1rem}.gt-container .gt-ico-tip:after{content:"。( Win + . ) or ( ⌃ + ⌘ + ␣ ) open Emoji";color:#999}.gt-container .gt-meta{border-color:var(--borderColor)!important}.gt-container .gt-comments-null{color:var(--textColor);opacity:.5}.gt-container .gt-header-textarea{color:var(--textColor);background:hsla(0,0%,70.6%,.1)!important}.gt-container .gt-btn{border-color:#426feb!important;background-color:#426feb!important}.gt-container .gt-btn-preview{background-color:hsla(0,0%,100%,0)!important;color:#426feb!important}.gt-container a{color:#426feb!important}.gt-container .gt-svg svg{fill:#426feb!important}.gt-container .gt-comment-admin .gt-comment-content,.gt-container .gt-comment-content{background-color:hsla(0,0%,58.8%,.1)!important}.gt-container .gt-comment-admin .gt-comment-content:hover,.gt-container .gt-comment-content:hover{box-shadow:0 0 25px hsla(0,0%,58.8%,.5)!important}.gt-container .gt-comment-admin .gt-comment-content .gt-comment-body,.gt-container .gt-comment-content .gt-comment-body{color:var(--textColor)!important}.qq{position:relative}.qq:after{content:"可撩";background:#426feb;color:#fff;padding:0 5px;border-radius:10px;font-size:12px;position:absolute;top:-4px;right:-35px;transform:scale(.85)}body .vuepress-plugin-demo-block__wrapper,body .vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__display{border-color:hsla(0,0%,62.7%,.3)}body .vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover .vuepress-plugin-demo-block__expand:before{border-top-color:#426feb!important;border-bottom-color:#426feb!important}body .vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover svg{fill:#426feb!important}#nprogress{pointer-events:none}#nprogress .bar{background:#426feb;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #426feb,0 0 5px #426feb;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#426feb transparent transparent #426feb;border-style:solid;border-width:2px;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.theme-mode-light[data-v-2839e1cb]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-2839e1cb]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-2839e1cb]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-2839e1cb]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-2839e1cb],.theme-mode-light pre[class*=language-][data-v-2839e1cb]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-2839e1cb]::-moz-selection,.theme-mode-light code[class*=language-][data-v-2839e1cb] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-2839e1cb]::selection,.theme-mode-light code[class*=language-][data-v-2839e1cb] ::selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb]::selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-2839e1cb],.theme-mode-light pre[class*=language-][data-v-2839e1cb]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-2839e1cb]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-2839e1cb],.theme-mode-light pre[class*=language-][data-v-2839e1cb]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-2839e1cb]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-2839e1cb],.theme-mode-light .token.comment[data-v-2839e1cb],.theme-mode-light .token.doctype[data-v-2839e1cb],.theme-mode-light .token.prolog[data-v-2839e1cb]{color:#708090}.theme-mode-light .token.punctuation[data-v-2839e1cb]{color:#999}.theme-mode-light .namespace[data-v-2839e1cb]{opacity:.7}.theme-mode-light .token.boolean[data-v-2839e1cb],.theme-mode-light .token.constant[data-v-2839e1cb],.theme-mode-light .token.deleted[data-v-2839e1cb],.theme-mode-light .token.number[data-v-2839e1cb],.theme-mode-light .token.property[data-v-2839e1cb],.theme-mode-light .token.symbol[data-v-2839e1cb],.theme-mode-light .token.tag[data-v-2839e1cb]{color:#905}.theme-mode-light .token.attr-name[data-v-2839e1cb],.theme-mode-light .token.builtin[data-v-2839e1cb],.theme-mode-light .token.char[data-v-2839e1cb],.theme-mode-light .token.inserted[data-v-2839e1cb],.theme-mode-light .token.selector[data-v-2839e1cb],.theme-mode-light .token.string[data-v-2839e1cb]{color:#690}.theme-mode-light .language-css .token.string[data-v-2839e1cb],.theme-mode-light .style .token.string[data-v-2839e1cb],.theme-mode-light .token.entity[data-v-2839e1cb],.theme-mode-light .token.operator[data-v-2839e1cb],.theme-mode-light .token.url[data-v-2839e1cb]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-2839e1cb],.theme-mode-light .token.attr-value[data-v-2839e1cb],.theme-mode-light .token.keyword[data-v-2839e1cb]{color:#07a}.theme-mode-light .token.class-name[data-v-2839e1cb],.theme-mode-light .token.function[data-v-2839e1cb]{color:#dd4a68}.theme-mode-light .token.important[data-v-2839e1cb],.theme-mode-light .token.regex[data-v-2839e1cb],.theme-mode-light .token.variable[data-v-2839e1cb]{color:#e90}.theme-mode-light .token.bold[data-v-2839e1cb],.theme-mode-light .token.important[data-v-2839e1cb]{font-weight:700}.theme-mode-light .token.italic[data-v-2839e1cb]{font-style:italic}.theme-mode-light .token.entity[data-v-2839e1cb]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-2839e1cb],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-2839e1cb]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-2839e1cb]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-2839e1cb],.theme-mode-dark pre[class*=language-][data-v-2839e1cb]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-2839e1cb]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-2839e1cb],.theme-mode-dark pre[class*=language-][data-v-2839e1cb]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-2839e1cb]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-2839e1cb],.theme-mode-dark .token.cdata[data-v-2839e1cb],.theme-mode-dark .token.comment[data-v-2839e1cb],.theme-mode-dark .token.doctype[data-v-2839e1cb],.theme-mode-dark .token.prolog[data-v-2839e1cb]{color:#999}.theme-mode-dark .token.punctuation[data-v-2839e1cb]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-2839e1cb],.theme-mode-dark .token.deleted[data-v-2839e1cb],.theme-mode-dark .token.namespace[data-v-2839e1cb],.theme-mode-dark .token.tag[data-v-2839e1cb]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-2839e1cb]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-2839e1cb],.theme-mode-dark .token.function[data-v-2839e1cb],.theme-mode-dark .token.number[data-v-2839e1cb]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-2839e1cb],.theme-mode-dark .token.constant[data-v-2839e1cb],.theme-mode-dark .token.property[data-v-2839e1cb],.theme-mode-dark .token.symbol[data-v-2839e1cb]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-2839e1cb],.theme-mode-dark .token.builtin[data-v-2839e1cb],.theme-mode-dark .token.important[data-v-2839e1cb],.theme-mode-dark .token.keyword[data-v-2839e1cb],.theme-mode-dark .token.selector[data-v-2839e1cb]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-2839e1cb],.theme-mode-dark .token.char[data-v-2839e1cb],.theme-mode-dark .token.regex[data-v-2839e1cb],.theme-mode-dark .token.string[data-v-2839e1cb],.theme-mode-dark .token.variable[data-v-2839e1cb]{color:#7ec699}.theme-mode-dark .token.entity[data-v-2839e1cb],.theme-mode-dark .token.operator[data-v-2839e1cb],.theme-mode-dark .token.url[data-v-2839e1cb]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-2839e1cb],.theme-mode-dark .style .token.string[data-v-2839e1cb],.theme-mode-dark .token.entity[data-v-2839e1cb],.theme-mode-dark .token.operator[data-v-2839e1cb],.theme-mode-dark .token.url[data-v-2839e1cb]{background:none}.theme-mode-dark .token.bold[data-v-2839e1cb],.theme-mode-dark .token.important[data-v-2839e1cb]{font-weight:700}.theme-mode-dark .token.italic[data-v-2839e1cb]{font-style:italic}.theme-mode-dark .token.entity[data-v-2839e1cb]{cursor:help}.theme-mode-dark .token.inserted[data-v-2839e1cb]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-2839e1cb]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-2839e1cb]{background-color:transparent}.theme-mode-dark blockquote[data-v-2839e1cb]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-2839e1cb]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-2839e1cb]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-2839e1cb]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-2839e1cb]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-2839e1cb]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-2839e1cb]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-2839e1cb],.theme-mode-dark .custom-block.note[data-v-2839e1cb],.theme-mode-dark .custom-block.tip[data-v-2839e1cb],.theme-mode-dark .custom-block.warning[data-v-2839e1cb]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-2839e1cb],.theme-mode-dark .custom-block.danger[data-v-2839e1cb]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-2839e1cb]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-2839e1cb]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-2839e1cb],.theme-mode-dark .nav-item .dropdown-title a[data-v-2839e1cb]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-2839e1cb],.theme-mode-dark .nav-item>a[data-v-2839e1cb]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-2839e1cb]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-2839e1cb]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-2839e1cb]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-2839e1cb],.theme-mode-dark .buttons .button .select-box li[data-v-2839e1cb]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-2839e1cb]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-2839e1cb]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-2839e1cb],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-2839e1cb]:hover,.theme-mode-dark .pagination span[data-v-2839e1cb]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-2839e1cb]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-2839e1cb],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-2839e1cb]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-2839e1cb]:hover,.theme-mode-dark a.sidebar-link[data-v-2839e1cb]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-2839e1cb]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-2839e1cb],.theme-mode-dark .search-box input[data-v-2839e1cb]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-2839e1cb]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-2839e1cb],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-2839e1cb]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-2839e1cb],.theme-mode-dark .tabs-component-tab[data-v-2839e1cb]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-2839e1cb]{color:#b160ea}.theme-mode-read[data-v-2839e1cb]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-2839e1cb],.theme-mode-read pre[class*=language-][data-v-2839e1cb]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-2839e1cb]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-2839e1cb],.theme-mode-read pre[class*=language-][data-v-2839e1cb]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-2839e1cb]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-2839e1cb],.theme-mode-read .token.cdata[data-v-2839e1cb],.theme-mode-read .token.comment[data-v-2839e1cb],.theme-mode-read .token.doctype[data-v-2839e1cb],.theme-mode-read .token.prolog[data-v-2839e1cb]{color:#999}.theme-mode-read .token.punctuation[data-v-2839e1cb]{color:#ccc}.theme-mode-read .token.attr-name[data-v-2839e1cb],.theme-mode-read .token.deleted[data-v-2839e1cb],.theme-mode-read .token.namespace[data-v-2839e1cb],.theme-mode-read .token.tag[data-v-2839e1cb]{color:#e2777a}.theme-mode-read .token.function-name[data-v-2839e1cb]{color:#6196cc}.theme-mode-read .token.boolean[data-v-2839e1cb],.theme-mode-read .token.function[data-v-2839e1cb],.theme-mode-read .token.number[data-v-2839e1cb]{color:#f08d49}.theme-mode-read .token.class-name[data-v-2839e1cb],.theme-mode-read .token.constant[data-v-2839e1cb],.theme-mode-read .token.property[data-v-2839e1cb],.theme-mode-read .token.symbol[data-v-2839e1cb]{color:#f8c555}.theme-mode-read .token.atrule[data-v-2839e1cb],.theme-mode-read .token.builtin[data-v-2839e1cb],.theme-mode-read .token.important[data-v-2839e1cb],.theme-mode-read .token.keyword[data-v-2839e1cb],.theme-mode-read .token.selector[data-v-2839e1cb]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-2839e1cb],.theme-mode-read .token.char[data-v-2839e1cb],.theme-mode-read .token.regex[data-v-2839e1cb],.theme-mode-read .token.string[data-v-2839e1cb],.theme-mode-read .token.variable[data-v-2839e1cb]{color:#7ec699}.theme-mode-read .token.entity[data-v-2839e1cb],.theme-mode-read .token.operator[data-v-2839e1cb],.theme-mode-read .token.url[data-v-2839e1cb]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-2839e1cb],.theme-mode-read .style .token.string[data-v-2839e1cb],.theme-mode-read .token.entity[data-v-2839e1cb],.theme-mode-read .token.operator[data-v-2839e1cb],.theme-mode-read .token.url[data-v-2839e1cb]{background:none}.theme-mode-read .token.bold[data-v-2839e1cb],.theme-mode-read .token.important[data-v-2839e1cb]{font-weight:700}.theme-mode-read .token.italic[data-v-2839e1cb]{font-style:italic}.theme-mode-read .token.entity[data-v-2839e1cb]{cursor:help}.theme-mode-read .token.inserted[data-v-2839e1cb]{color:green}.reading-progress[data-v-2839e1cb]{position:fixed;z-index:1000;background:transparent;overflow:hidden}.reading-progress .progress[data-v-2839e1cb]{width:100%;height:100%;background:#b160ea;background-image:none;transform-origin:0 0;transition:transform .2s ease-out}.top[data-v-2839e1cb]{top:0;left:0;right:0;width:100%;height:3px}.bottom[data-v-2839e1cb]{bottom:0;left:0;right:0;width:100%;height:3px}.left[data-v-2839e1cb]{left:0;top:0;bottom:0;width:3px;height:100%}.right[data-v-2839e1cb]{right:0;top:0;bottom:0;width:3px;height:100%}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.theme-mode-light[data-v-8f4262da]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-8f4262da]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-8f4262da]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-8f4262da]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-8f4262da],.theme-mode-light pre[class*=language-][data-v-8f4262da]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-8f4262da]::-moz-selection,.theme-mode-light code[class*=language-][data-v-8f4262da] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-8f4262da]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-8f4262da] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-8f4262da]::selection,.theme-mode-light code[class*=language-][data-v-8f4262da] ::selection,.theme-mode-light pre[class*=language-][data-v-8f4262da]::selection,.theme-mode-light pre[class*=language-][data-v-8f4262da] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-8f4262da],.theme-mode-light pre[class*=language-][data-v-8f4262da]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-8f4262da]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-8f4262da],.theme-mode-light pre[class*=language-][data-v-8f4262da]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-8f4262da]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-8f4262da],.theme-mode-light .token.comment[data-v-8f4262da],.theme-mode-light .token.doctype[data-v-8f4262da],.theme-mode-light .token.prolog[data-v-8f4262da]{color:#708090}.theme-mode-light .token.punctuation[data-v-8f4262da]{color:#999}.theme-mode-light .namespace[data-v-8f4262da]{opacity:.7}.theme-mode-light .token.boolean[data-v-8f4262da],.theme-mode-light .token.constant[data-v-8f4262da],.theme-mode-light .token.deleted[data-v-8f4262da],.theme-mode-light .token.number[data-v-8f4262da],.theme-mode-light .token.property[data-v-8f4262da],.theme-mode-light .token.symbol[data-v-8f4262da],.theme-mode-light .token.tag[data-v-8f4262da]{color:#905}.theme-mode-light .token.attr-name[data-v-8f4262da],.theme-mode-light .token.builtin[data-v-8f4262da],.theme-mode-light .token.char[data-v-8f4262da],.theme-mode-light .token.inserted[data-v-8f4262da],.theme-mode-light .token.selector[data-v-8f4262da],.theme-mode-light .token.string[data-v-8f4262da]{color:#690}.theme-mode-light .language-css .token.string[data-v-8f4262da],.theme-mode-light .style .token.string[data-v-8f4262da],.theme-mode-light .token.entity[data-v-8f4262da],.theme-mode-light .token.operator[data-v-8f4262da],.theme-mode-light .token.url[data-v-8f4262da]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-8f4262da],.theme-mode-light .token.attr-value[data-v-8f4262da],.theme-mode-light .token.keyword[data-v-8f4262da]{color:#07a}.theme-mode-light .token.class-name[data-v-8f4262da],.theme-mode-light .token.function[data-v-8f4262da]{color:#dd4a68}.theme-mode-light .token.important[data-v-8f4262da],.theme-mode-light .token.regex[data-v-8f4262da],.theme-mode-light .token.variable[data-v-8f4262da]{color:#e90}.theme-mode-light .token.bold[data-v-8f4262da],.theme-mode-light .token.important[data-v-8f4262da]{font-weight:700}.theme-mode-light .token.italic[data-v-8f4262da]{font-style:italic}.theme-mode-light .token.entity[data-v-8f4262da]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-8f4262da],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-8f4262da]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-8f4262da]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-8f4262da],.theme-mode-dark pre[class*=language-][data-v-8f4262da]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-8f4262da]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-8f4262da],.theme-mode-dark pre[class*=language-][data-v-8f4262da]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-8f4262da]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-8f4262da],.theme-mode-dark .token.cdata[data-v-8f4262da],.theme-mode-dark .token.comment[data-v-8f4262da],.theme-mode-dark .token.doctype[data-v-8f4262da],.theme-mode-dark .token.prolog[data-v-8f4262da]{color:#999}.theme-mode-dark .token.punctuation[data-v-8f4262da]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-8f4262da],.theme-mode-dark .token.deleted[data-v-8f4262da],.theme-mode-dark .token.namespace[data-v-8f4262da],.theme-mode-dark .token.tag[data-v-8f4262da]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-8f4262da]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-8f4262da],.theme-mode-dark .token.function[data-v-8f4262da],.theme-mode-dark .token.number[data-v-8f4262da]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-8f4262da],.theme-mode-dark .token.constant[data-v-8f4262da],.theme-mode-dark .token.property[data-v-8f4262da],.theme-mode-dark .token.symbol[data-v-8f4262da]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-8f4262da],.theme-mode-dark .token.builtin[data-v-8f4262da],.theme-mode-dark .token.important[data-v-8f4262da],.theme-mode-dark .token.keyword[data-v-8f4262da],.theme-mode-dark .token.selector[data-v-8f4262da]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-8f4262da],.theme-mode-dark .token.char[data-v-8f4262da],.theme-mode-dark .token.regex[data-v-8f4262da],.theme-mode-dark .token.string[data-v-8f4262da],.theme-mode-dark .token.variable[data-v-8f4262da]{color:#7ec699}.theme-mode-dark .token.entity[data-v-8f4262da],.theme-mode-dark .token.operator[data-v-8f4262da],.theme-mode-dark .token.url[data-v-8f4262da]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-8f4262da],.theme-mode-dark .style .token.string[data-v-8f4262da],.theme-mode-dark .token.entity[data-v-8f4262da],.theme-mode-dark .token.operator[data-v-8f4262da],.theme-mode-dark .token.url[data-v-8f4262da]{background:none}.theme-mode-dark .token.bold[data-v-8f4262da],.theme-mode-dark .token.important[data-v-8f4262da]{font-weight:700}.theme-mode-dark .token.italic[data-v-8f4262da]{font-style:italic}.theme-mode-dark .token.entity[data-v-8f4262da]{cursor:help}.theme-mode-dark .token.inserted[data-v-8f4262da]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-8f4262da]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-8f4262da]{background-color:transparent}.theme-mode-dark blockquote[data-v-8f4262da]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-8f4262da]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-8f4262da]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-8f4262da]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-8f4262da]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-8f4262da]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-8f4262da]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-8f4262da],.theme-mode-dark .custom-block.note[data-v-8f4262da],.theme-mode-dark .custom-block.tip[data-v-8f4262da],.theme-mode-dark .custom-block.warning[data-v-8f4262da]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-8f4262da],.theme-mode-dark .custom-block.danger[data-v-8f4262da]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-8f4262da]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-8f4262da]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-8f4262da],.theme-mode-dark .nav-item .dropdown-title a[data-v-8f4262da]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-8f4262da],.theme-mode-dark .nav-item>a[data-v-8f4262da]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-8f4262da]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-8f4262da]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-8f4262da]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-8f4262da],.theme-mode-dark .buttons .button .select-box li[data-v-8f4262da]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-8f4262da]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-8f4262da]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-8f4262da],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-8f4262da]:hover,.theme-mode-dark .pagination span[data-v-8f4262da]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-8f4262da]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-8f4262da],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-8f4262da]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-8f4262da]:hover,.theme-mode-dark a.sidebar-link[data-v-8f4262da]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-8f4262da]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-8f4262da],.theme-mode-dark .search-box input[data-v-8f4262da]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-8f4262da]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-8f4262da],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-8f4262da]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-8f4262da],.theme-mode-dark .tabs-component-tab[data-v-8f4262da]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-8f4262da]{color:#b160ea}.theme-mode-read[data-v-8f4262da]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-8f4262da],.theme-mode-read pre[class*=language-][data-v-8f4262da]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-8f4262da]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-8f4262da],.theme-mode-read pre[class*=language-][data-v-8f4262da]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-8f4262da]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-8f4262da],.theme-mode-read .token.cdata[data-v-8f4262da],.theme-mode-read .token.comment[data-v-8f4262da],.theme-mode-read .token.doctype[data-v-8f4262da],.theme-mode-read .token.prolog[data-v-8f4262da]{color:#999}.theme-mode-read .token.punctuation[data-v-8f4262da]{color:#ccc}.theme-mode-read .token.attr-name[data-v-8f4262da],.theme-mode-read .token.deleted[data-v-8f4262da],.theme-mode-read .token.namespace[data-v-8f4262da],.theme-mode-read .token.tag[data-v-8f4262da]{color:#e2777a}.theme-mode-read .token.function-name[data-v-8f4262da]{color:#6196cc}.theme-mode-read .token.boolean[data-v-8f4262da],.theme-mode-read .token.function[data-v-8f4262da],.theme-mode-read .token.number[data-v-8f4262da]{color:#f08d49}.theme-mode-read .token.class-name[data-v-8f4262da],.theme-mode-read .token.constant[data-v-8f4262da],.theme-mode-read .token.property[data-v-8f4262da],.theme-mode-read .token.symbol[data-v-8f4262da]{color:#f8c555}.theme-mode-read .token.atrule[data-v-8f4262da],.theme-mode-read .token.builtin[data-v-8f4262da],.theme-mode-read .token.important[data-v-8f4262da],.theme-mode-read .token.keyword[data-v-8f4262da],.theme-mode-read .token.selector[data-v-8f4262da]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-8f4262da],.theme-mode-read .token.char[data-v-8f4262da],.theme-mode-read .token.regex[data-v-8f4262da],.theme-mode-read .token.string[data-v-8f4262da],.theme-mode-read .token.variable[data-v-8f4262da]{color:#7ec699}.theme-mode-read .token.entity[data-v-8f4262da],.theme-mode-read .token.operator[data-v-8f4262da],.theme-mode-read .token.url[data-v-8f4262da]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-8f4262da],.theme-mode-read .style .token.string[data-v-8f4262da],.theme-mode-read .token.entity[data-v-8f4262da],.theme-mode-read .token.operator[data-v-8f4262da],.theme-mode-read .token.url[data-v-8f4262da]{background:none}.theme-mode-read .token.bold[data-v-8f4262da],.theme-mode-read .token.important[data-v-8f4262da]{font-weight:700}.theme-mode-read .token.italic[data-v-8f4262da]{font-style:italic}.theme-mode-read .token.entity[data-v-8f4262da]{cursor:help}.theme-mode-read .token.inserted[data-v-8f4262da]{color:green}.theme-vdoing-content[data-v-8f4262da]{margin:3rem auto;padding:1.5rem}.theme-vdoing-content span[data-v-8f4262da]{font-size:6rem;color:#426feb}.theme-mode-light[data-v-617c663d]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-617c663d]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-617c663d]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-617c663d]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-617c663d],.theme-mode-light pre[class*=language-][data-v-617c663d]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-617c663d]::-moz-selection,.theme-mode-light code[class*=language-][data-v-617c663d] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-617c663d]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-617c663d] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-617c663d]::selection,.theme-mode-light code[class*=language-][data-v-617c663d] ::selection,.theme-mode-light pre[class*=language-][data-v-617c663d]::selection,.theme-mode-light pre[class*=language-][data-v-617c663d] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-617c663d],.theme-mode-light pre[class*=language-][data-v-617c663d]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-617c663d]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-617c663d],.theme-mode-light pre[class*=language-][data-v-617c663d]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-617c663d]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-617c663d],.theme-mode-light .token.comment[data-v-617c663d],.theme-mode-light .token.doctype[data-v-617c663d],.theme-mode-light .token.prolog[data-v-617c663d]{color:#708090}.theme-mode-light .token.punctuation[data-v-617c663d]{color:#999}.theme-mode-light .namespace[data-v-617c663d]{opacity:.7}.theme-mode-light .token.boolean[data-v-617c663d],.theme-mode-light .token.constant[data-v-617c663d],.theme-mode-light .token.deleted[data-v-617c663d],.theme-mode-light .token.number[data-v-617c663d],.theme-mode-light .token.property[data-v-617c663d],.theme-mode-light .token.symbol[data-v-617c663d],.theme-mode-light .token.tag[data-v-617c663d]{color:#905}.theme-mode-light .token.attr-name[data-v-617c663d],.theme-mode-light .token.builtin[data-v-617c663d],.theme-mode-light .token.char[data-v-617c663d],.theme-mode-light .token.inserted[data-v-617c663d],.theme-mode-light .token.selector[data-v-617c663d],.theme-mode-light .token.string[data-v-617c663d]{color:#690}.theme-mode-light .language-css .token.string[data-v-617c663d],.theme-mode-light .style .token.string[data-v-617c663d],.theme-mode-light .token.entity[data-v-617c663d],.theme-mode-light .token.operator[data-v-617c663d],.theme-mode-light .token.url[data-v-617c663d]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-617c663d],.theme-mode-light .token.attr-value[data-v-617c663d],.theme-mode-light .token.keyword[data-v-617c663d]{color:#07a}.theme-mode-light .token.class-name[data-v-617c663d],.theme-mode-light .token.function[data-v-617c663d]{color:#dd4a68}.theme-mode-light .token.important[data-v-617c663d],.theme-mode-light .token.regex[data-v-617c663d],.theme-mode-light .token.variable[data-v-617c663d]{color:#e90}.theme-mode-light .token.bold[data-v-617c663d],.theme-mode-light .token.important[data-v-617c663d]{font-weight:700}.theme-mode-light .token.italic[data-v-617c663d]{font-style:italic}.theme-mode-light .token.entity[data-v-617c663d]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-617c663d],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-617c663d]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-617c663d]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-617c663d],.theme-mode-dark pre[class*=language-][data-v-617c663d]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-617c663d]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-617c663d],.theme-mode-dark pre[class*=language-][data-v-617c663d]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-617c663d]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-617c663d],.theme-mode-dark .token.cdata[data-v-617c663d],.theme-mode-dark .token.comment[data-v-617c663d],.theme-mode-dark .token.doctype[data-v-617c663d],.theme-mode-dark .token.prolog[data-v-617c663d]{color:#999}.theme-mode-dark .token.punctuation[data-v-617c663d]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-617c663d],.theme-mode-dark .token.deleted[data-v-617c663d],.theme-mode-dark .token.namespace[data-v-617c663d],.theme-mode-dark .token.tag[data-v-617c663d]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-617c663d]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-617c663d],.theme-mode-dark .token.function[data-v-617c663d],.theme-mode-dark .token.number[data-v-617c663d]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-617c663d],.theme-mode-dark .token.constant[data-v-617c663d],.theme-mode-dark .token.property[data-v-617c663d],.theme-mode-dark .token.symbol[data-v-617c663d]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-617c663d],.theme-mode-dark .token.builtin[data-v-617c663d],.theme-mode-dark .token.important[data-v-617c663d],.theme-mode-dark .token.keyword[data-v-617c663d],.theme-mode-dark .token.selector[data-v-617c663d]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-617c663d],.theme-mode-dark .token.char[data-v-617c663d],.theme-mode-dark .token.regex[data-v-617c663d],.theme-mode-dark .token.string[data-v-617c663d],.theme-mode-dark .token.variable[data-v-617c663d]{color:#7ec699}.theme-mode-dark .token.entity[data-v-617c663d],.theme-mode-dark .token.operator[data-v-617c663d],.theme-mode-dark .token.url[data-v-617c663d]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-617c663d],.theme-mode-dark .style .token.string[data-v-617c663d],.theme-mode-dark .token.entity[data-v-617c663d],.theme-mode-dark .token.operator[data-v-617c663d],.theme-mode-dark .token.url[data-v-617c663d]{background:none}.theme-mode-dark .token.bold[data-v-617c663d],.theme-mode-dark .token.important[data-v-617c663d]{font-weight:700}.theme-mode-dark .token.italic[data-v-617c663d]{font-style:italic}.theme-mode-dark .token.entity[data-v-617c663d]{cursor:help}.theme-mode-dark .token.inserted[data-v-617c663d]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-617c663d]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-617c663d]{background-color:transparent}.theme-mode-dark blockquote[data-v-617c663d]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-617c663d]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-617c663d]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-617c663d]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-617c663d]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-617c663d]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-617c663d]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-617c663d],.theme-mode-dark .custom-block.note[data-v-617c663d],.theme-mode-dark .custom-block.tip[data-v-617c663d],.theme-mode-dark .custom-block.warning[data-v-617c663d]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-617c663d],.theme-mode-dark .custom-block.danger[data-v-617c663d]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-617c663d]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-617c663d]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-617c663d],.theme-mode-dark .nav-item .dropdown-title a[data-v-617c663d]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-617c663d],.theme-mode-dark .nav-item>a[data-v-617c663d]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-617c663d]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-617c663d]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-617c663d]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-617c663d],.theme-mode-dark .buttons .button .select-box li[data-v-617c663d]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-617c663d]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-617c663d]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-617c663d],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-617c663d]:hover,.theme-mode-dark .pagination span[data-v-617c663d]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-617c663d]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-617c663d],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-617c663d]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-617c663d]:hover,.theme-mode-dark a.sidebar-link[data-v-617c663d]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-617c663d]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-617c663d],.theme-mode-dark .search-box input[data-v-617c663d]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-617c663d]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-617c663d],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-617c663d]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-617c663d],.theme-mode-dark .tabs-component-tab[data-v-617c663d]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-617c663d]{color:#b160ea}.theme-mode-read[data-v-617c663d]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-617c663d],.theme-mode-read pre[class*=language-][data-v-617c663d]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-617c663d]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-617c663d],.theme-mode-read pre[class*=language-][data-v-617c663d]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-617c663d]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-617c663d],.theme-mode-read .token.cdata[data-v-617c663d],.theme-mode-read .token.comment[data-v-617c663d],.theme-mode-read .token.doctype[data-v-617c663d],.theme-mode-read .token.prolog[data-v-617c663d]{color:#999}.theme-mode-read .token.punctuation[data-v-617c663d]{color:#ccc}.theme-mode-read .token.attr-name[data-v-617c663d],.theme-mode-read .token.deleted[data-v-617c663d],.theme-mode-read .token.namespace[data-v-617c663d],.theme-mode-read .token.tag[data-v-617c663d]{color:#e2777a}.theme-mode-read .token.function-name[data-v-617c663d]{color:#6196cc}.theme-mode-read .token.boolean[data-v-617c663d],.theme-mode-read .token.function[data-v-617c663d],.theme-mode-read .token.number[data-v-617c663d]{color:#f08d49}.theme-mode-read .token.class-name[data-v-617c663d],.theme-mode-read .token.constant[data-v-617c663d],.theme-mode-read .token.property[data-v-617c663d],.theme-mode-read .token.symbol[data-v-617c663d]{color:#f8c555}.theme-mode-read .token.atrule[data-v-617c663d],.theme-mode-read .token.builtin[data-v-617c663d],.theme-mode-read .token.important[data-v-617c663d],.theme-mode-read .token.keyword[data-v-617c663d],.theme-mode-read .token.selector[data-v-617c663d]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-617c663d],.theme-mode-read .token.char[data-v-617c663d],.theme-mode-read .token.regex[data-v-617c663d],.theme-mode-read .token.string[data-v-617c663d],.theme-mode-read .token.variable[data-v-617c663d]{color:#7ec699}.theme-mode-read .token.entity[data-v-617c663d],.theme-mode-read .token.operator[data-v-617c663d],.theme-mode-read .token.url[data-v-617c663d]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-617c663d],.theme-mode-read .style .token.string[data-v-617c663d],.theme-mode-read .token.entity[data-v-617c663d],.theme-mode-read .token.operator[data-v-617c663d],.theme-mode-read .token.url[data-v-617c663d]{background:none}.theme-mode-read .token.bold[data-v-617c663d],.theme-mode-read .token.important[data-v-617c663d]{font-weight:700}.theme-mode-read .token.italic[data-v-617c663d]{font-style:italic}.theme-mode-read .token.entity[data-v-617c663d]{cursor:help}.theme-mode-read .token.inserted[data-v-617c663d]{color:green}[data-v-617c663d] .icon.outbound{color:var(--previewColor)!important}.main-wrapper{margin:1.5rem auto 0;max-width:1100px;padding:0 .9rem;box-sizing:border-box;position:relative;display:flex}.main-wrapper .main-left{flex:1}.main-wrapper .main-left .theme-vdoing-content.card-box{padding:1rem 1.5rem;margin-bottom:.9rem}.main-wrapper .main-left .home-content{padding:1rem 1.5rem 0}.main-wrapper .main-right>*{width:245px;box-sizing:border-box}@media (max-width:900px){.main-wrapper .main-right>*{width:235px}}.main-wrapper .main-right .card-box{margin:0 0 .9rem .9rem;padding-top:.95rem;padding-bottom:.95rem}@media (max-width:719px){.main-wrapper{margin:.9rem 0;padding:0;display:block}.main-wrapper .main-left{width:100%}.main-wrapper .main-left .post-list{margin-bottom:3rem}.main-wrapper .main-left .post-list .post{border-radius:0}.main-wrapper .main-left .pagination{margin-bottom:3rem}.main-wrapper .main-right .blogger-wrapper{display:none}.main-wrapper .main-right .card-box{margin:0 0 .9rem;border-radius:0;width:100%}}.post-list{margin-bottom:3rem}.post-list .post{position:relative;padding:1rem 1.5rem;margin-bottom:.8rem;transition:all .3s}.post-list .post:last-child{border-bottom:none}.post-list .post.post-leave-active{display:none}.post-list .post.post-enter{opacity:0;transform:translateX(-20px)}.post-list .post:before{position:absolute;top:-1px;right:0;font-size:2.5rem;color:#ff5722;opacity:.85}.post-list .post .title-wrapper a{color:var(--textColor)}.post-list .post .title-wrapper a:hover{color:#426feb}.post-list .post .title-wrapper h2{margin:.5rem 0;font-size:1.4rem;border:none}.post-list .post .title-wrapper h2 .title-tag{height:1.2rem;line-height:1.2rem;border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.15rem);display:inline-block}.post-list .post .title-wrapper h2 a{display:block}@media (max-width:719px){.post-list .post .title-wrapper h2 a{font-weight:400}}.post-list .post .title-wrapper .article-info>a,.post-list .post .title-wrapper .article-info>span{opacity:.7;font-size:.8rem;margin-right:1rem;cursor:pointer}.post-list .post .title-wrapper .article-info>a:before,.post-list .post .title-wrapper .article-info>span:before{margin-right:.3rem}.post-list .post .title-wrapper .article-info>a a,.post-list .post .title-wrapper .article-info>span a{margin:0}.post-list .post .title-wrapper .article-info>a a:not(:first-child):before,.post-list .post .title-wrapper .article-info>span a:not(:first-child):before{content:"/"}.post-list .post .title-wrapper .article-info .tags a:not(:first-child):before{content:"、"}.post-list .post .excerpt-wrapper{border-top:1px solid var(--borderColor);margin:.5rem 0;overflow:hidden}.post-list .post .excerpt-wrapper .excerpt{margin-bottom:.3rem;font-size:.92rem}.post-list .post .excerpt-wrapper .excerpt h1,.post-list .post .excerpt-wrapper .excerpt h2,.post-list .post .excerpt-wrapper .excerpt h3{display:none}.post-list .post .excerpt-wrapper .excerpt img{max-height:280px;max-width:100%!important;margin:0 auto}.post-list .post .excerpt-wrapper .readmore{float:right;margin-right:1rem;line-height:1rem}.post-list .post .excerpt-wrapper .readmore:before{float:right;font-size:.8rem;margin:.1rem 0 0 .2rem}.theme-style-line .post-list{border:1px solid var(--borderColor);border-bottom:none;border-radius:5px;overflow:hidden}.theme-style-line .post-list .post{margin-bottom:0;border:none;border-bottom:1px solid var(--borderColor);border-radius:0}.article-list{padding:1rem 2rem}@media (max-width:959px){.article-list{padding:1rem 1.5rem}}.article-list.no-article-list{display:none}.article-list .article-title{border-bottom:1px solid var(--borderColor);font-size:1.3rem;padding:1rem}.article-list .article-title a{font-size:1.2rem;color:var(--textColor);opacity:.9}.article-list .article-title a:before{margin-right:.4rem;font-size:1.1rem}.article-list .article-wrapper{overflow:hidden}.article-list .article-wrapper dl{border-bottom:1px dotted var(--borderColor);float:left;display:flex;padding:8px 0;margin:0;height:45px;width:100%}.article-list .article-wrapper dl dd{font-size:1.1rem;color:#f17229;width:50px;text-align:center;margin:0;line-height:45px}.article-list .article-wrapper dl dt{flex:1;display:flex}.article-list .article-wrapper dl dt a{color:var(--textColor);flex:1;display:flex;height:45px;align-items:center;font-weight:400}.article-list .article-wrapper dl dt a div{overflow:hidden;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.article-list .article-wrapper dl dt a div .title-tag{border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.05rem);display:inline-block}.article-list .article-wrapper dl dt a:hover{text-decoration:underline}.article-list .article-wrapper dl dt a.more{color:#426feb}.article-list .article-wrapper dl dt .date{width:50px;margin-right:15px;color:#999;text-align:right;font-size:.9rem;line-height:45px}.pagination{position:relative;height:60px;text-align:center}@media (max-width:720px){.pagination{margin-left:1px;margin-right:1px}}.pagination span{line-height:1rem;opacity:.9;cursor:pointer}.pagination span:hover{color:#426feb}.pagination span.ellipsis{opacity:.5}.pagination span.ellipsis:before{content:"...";font-size:1.2rem}@media (any-hover:hover){.pagination span.ellipsis.ell-two:hover:before{content:"«"}.pagination span.ellipsis.ell-four:hover:before{content:"»"}}.pagination>span{position:absolute;top:0;padding:1rem 1.2rem;font-size:.95rem}.pagination>span:before{font-size:.4rem}.pagination>span.disabled{color:hsla(0,0%,49%,.5)}.pagination>span.prev{left:0}.pagination>span.prev:before{margin-right:.3rem}.pagination>span.next{right:0}.pagination>span.next:before{float:right;margin-left:.3rem}.pagination>span p{display:inline;line-height:.95rem}.pagination .pagination-list span{display:inline-block;width:2.5rem;height:2.5rem;line-height:2.5rem;margin:.3rem}.pagination .pagination-list span.active{background:#426feb;color:var(--mainBg)}@media (max-width:800px){.pagination>span{padding:1rem 1.5rem}.pagination>span p{display:none}}@media (max-width:719px){.pagination>span{padding:.9rem 1.5rem}.pagination .pagination-list span{width:2.3rem;height:2.3rem;line-height:2.3rem;margin:.25rem}}@media (max-width:390px){.pagination>span{padding:.8rem 1.3rem}.pagination .pagination-list span{width:2rem;height:2rem;line-height:2rem;margin:.3rem .1rem .1rem}}.blogger-wrapper{height:auto;display:inline-table;padding-top:0!important;overflow:hidden}.blogger-wrapper .avatar{width:100%;overflow:hidden}.blogger-wrapper .avatar img{width:100%;height:100%}.blogger-wrapper .icons{border-top:none;height:35px;line-height:35px}.blogger-wrapper .icons a{font-size:20px;width:33%;color:var(--textColor);display:block;float:left;text-align:center;opacity:.8}.blogger-wrapper .icons a:hover{color:#426feb}.blogger-wrapper .blogger{padding:.3rem .95rem 0}.blogger-wrapper .blogger .name{font-size:1.3rem;display:block;margin-bottom:6px}.blogger-wrapper .blogger .slogan{color:var(--textColor)}.categories-wrapper .title{color:var(--textColor);opacity:.9;font-size:1.2rem;padding:0 .95rem}.categories-wrapper .title:before{margin-right:.3rem}.categories-wrapper .categories{margin-top:.6rem}.categories-wrapper .categories a{display:block;padding:8px 2.4rem 7px .95rem;color:var(--textColor);opacity:.8;font-size:.95rem;line-height:.95rem;position:relative;transition:all .2s;border-left:2px solid transparent;margin-top:-1px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (max-width:719px){.categories-wrapper .categories a{font-weight:400}}.categories-wrapper .categories a:not(.active):hover{color:#426feb;background:#f8f8f8;border-color:#426feb}.categories-wrapper .categories a:not(.active):hover span{opacity:.8}.categories-wrapper .categories a span{background-color:var(--textColor);color:var(--mainBg);border-radius:8px;padding:0 .13rem;min-width:1rem;height:1rem;line-height:1rem;font-size:12px;text-align:center;opacity:.6;transition:opacity .3s;position:absolute;right:.95rem;top:8px}.categories-wrapper .categories a.active{background:#426feb;color:var(--mainBg);padding-left:.8rem;border-radius:1px;border-color:transparent}.theme-mode-dark .categories-wrapper .categories a:not(.active):hover,.theme-mode-read .categories-wrapper .categories a:not(.active):hover{background:var(--customBlockBg)}.tags-wrapper{padding:0 .95rem}.tags-wrapper .title{color:var(--textColor);opacity:.9;font-size:1.2rem}.tags-wrapper .title:before{margin-right:.3rem}.tags-wrapper .tags{text-align:justify;padding:.8rem .5rem .5rem;margin:0 -.5rem -.5rem}.tags-wrapper .tags a{opacity:.8;display:inline-block;padding:.2rem .4rem;transition:all .4s;background-color:var(--textColor);color:var(--mainBg);border-radius:3px;margin:0 .3rem .5rem 0;min-width:2rem;height:1rem;line-height:1rem;font-size:.8rem;text-align:center}@media (max-width:719px){.tags-wrapper .tags a{font-weight:400}}.tags-wrapper .tags a:hover{opacity:1;transform:scale(1.1)}.tags-wrapper .tags a.active{box-shadow:0 5px 10px -5px var(--randomColor,rgba(0,0,0,.15));transform:scale(1.22);opacity:1}.tags-wrapper .tags a.active:hover{text-decoration:none}#special-sponsor[data-v-a0f9ce1c]{border-top:1px solid rgba(60,60,60,.12);border-bottom:1px solid rgba(60,60,60,.12);padding-bottom:12px}#special-sponsor-container[data-v-a0f9ce1c]{display:flex;justify-content:center;align-items:center}#special-sponsor h3[data-v-a0f9ce1c]{text-align:center;font-size:18px}#special-sponsor .logo[data-v-a0f9ce1c]{display:flex;justify-content:center;padding:0 10px}.theme-mode-light[data-v-a0f9ce1c]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-a0f9ce1c]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-a0f9ce1c]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-a0f9ce1c]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-a0f9ce1c],.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-a0f9ce1c]::-moz-selection,.theme-mode-light code[class*=language-][data-v-a0f9ce1c] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-a0f9ce1c]::selection,.theme-mode-light code[class*=language-][data-v-a0f9ce1c] ::selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]::selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-a0f9ce1c],.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-a0f9ce1c],.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-a0f9ce1c]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-a0f9ce1c],.theme-mode-light .token.comment[data-v-a0f9ce1c],.theme-mode-light .token.doctype[data-v-a0f9ce1c],.theme-mode-light .token.prolog[data-v-a0f9ce1c]{color:#708090}.theme-mode-light .token.punctuation[data-v-a0f9ce1c]{color:#999}.theme-mode-light .namespace[data-v-a0f9ce1c]{opacity:.7}.theme-mode-light .token.boolean[data-v-a0f9ce1c],.theme-mode-light .token.constant[data-v-a0f9ce1c],.theme-mode-light .token.deleted[data-v-a0f9ce1c],.theme-mode-light .token.number[data-v-a0f9ce1c],.theme-mode-light .token.property[data-v-a0f9ce1c],.theme-mode-light .token.symbol[data-v-a0f9ce1c],.theme-mode-light .token.tag[data-v-a0f9ce1c]{color:#905}.theme-mode-light .token.attr-name[data-v-a0f9ce1c],.theme-mode-light .token.builtin[data-v-a0f9ce1c],.theme-mode-light .token.char[data-v-a0f9ce1c],.theme-mode-light .token.inserted[data-v-a0f9ce1c],.theme-mode-light .token.selector[data-v-a0f9ce1c],.theme-mode-light .token.string[data-v-a0f9ce1c]{color:#690}.theme-mode-light .language-css .token.string[data-v-a0f9ce1c],.theme-mode-light .style .token.string[data-v-a0f9ce1c],.theme-mode-light .token.entity[data-v-a0f9ce1c],.theme-mode-light .token.operator[data-v-a0f9ce1c],.theme-mode-light .token.url[data-v-a0f9ce1c]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-a0f9ce1c],.theme-mode-light .token.attr-value[data-v-a0f9ce1c],.theme-mode-light .token.keyword[data-v-a0f9ce1c]{color:#07a}.theme-mode-light .token.class-name[data-v-a0f9ce1c],.theme-mode-light .token.function[data-v-a0f9ce1c]{color:#dd4a68}.theme-mode-light .token.important[data-v-a0f9ce1c],.theme-mode-light .token.regex[data-v-a0f9ce1c],.theme-mode-light .token.variable[data-v-a0f9ce1c]{color:#e90}.theme-mode-light .token.bold[data-v-a0f9ce1c],.theme-mode-light .token.important[data-v-a0f9ce1c]{font-weight:700}.theme-mode-light .token.italic[data-v-a0f9ce1c]{font-style:italic}.theme-mode-light .token.entity[data-v-a0f9ce1c]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-a0f9ce1c],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-a0f9ce1c]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-a0f9ce1c]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-a0f9ce1c],.theme-mode-dark pre[class*=language-][data-v-a0f9ce1c]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-a0f9ce1c]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-a0f9ce1c],.theme-mode-dark pre[class*=language-][data-v-a0f9ce1c]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-a0f9ce1c]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-a0f9ce1c],.theme-mode-dark .token.cdata[data-v-a0f9ce1c],.theme-mode-dark .token.comment[data-v-a0f9ce1c],.theme-mode-dark .token.doctype[data-v-a0f9ce1c],.theme-mode-dark .token.prolog[data-v-a0f9ce1c]{color:#999}.theme-mode-dark .token.punctuation[data-v-a0f9ce1c]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-a0f9ce1c],.theme-mode-dark .token.deleted[data-v-a0f9ce1c],.theme-mode-dark .token.namespace[data-v-a0f9ce1c],.theme-mode-dark .token.tag[data-v-a0f9ce1c]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-a0f9ce1c]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-a0f9ce1c],.theme-mode-dark .token.function[data-v-a0f9ce1c],.theme-mode-dark .token.number[data-v-a0f9ce1c]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-a0f9ce1c],.theme-mode-dark .token.constant[data-v-a0f9ce1c],.theme-mode-dark .token.property[data-v-a0f9ce1c],.theme-mode-dark .token.symbol[data-v-a0f9ce1c]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-a0f9ce1c],.theme-mode-dark .token.builtin[data-v-a0f9ce1c],.theme-mode-dark .token.important[data-v-a0f9ce1c],.theme-mode-dark .token.keyword[data-v-a0f9ce1c],.theme-mode-dark .token.selector[data-v-a0f9ce1c]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-a0f9ce1c],.theme-mode-dark .token.char[data-v-a0f9ce1c],.theme-mode-dark .token.regex[data-v-a0f9ce1c],.theme-mode-dark .token.string[data-v-a0f9ce1c],.theme-mode-dark .token.variable[data-v-a0f9ce1c]{color:#7ec699}.theme-mode-dark .token.entity[data-v-a0f9ce1c],.theme-mode-dark .token.operator[data-v-a0f9ce1c],.theme-mode-dark .token.url[data-v-a0f9ce1c]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-a0f9ce1c],.theme-mode-dark .style .token.string[data-v-a0f9ce1c],.theme-mode-dark .token.entity[data-v-a0f9ce1c],.theme-mode-dark .token.operator[data-v-a0f9ce1c],.theme-mode-dark .token.url[data-v-a0f9ce1c]{background:none}.theme-mode-dark .token.bold[data-v-a0f9ce1c],.theme-mode-dark .token.important[data-v-a0f9ce1c]{font-weight:700}.theme-mode-dark .token.italic[data-v-a0f9ce1c]{font-style:italic}.theme-mode-dark .token.entity[data-v-a0f9ce1c]{cursor:help}.theme-mode-dark .token.inserted[data-v-a0f9ce1c]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-a0f9ce1c]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-a0f9ce1c]{background-color:transparent}.theme-mode-dark blockquote[data-v-a0f9ce1c]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-a0f9ce1c]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-a0f9ce1c]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-a0f9ce1c]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-a0f9ce1c]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-a0f9ce1c]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-a0f9ce1c]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-a0f9ce1c],.theme-mode-dark .custom-block.note[data-v-a0f9ce1c],.theme-mode-dark .custom-block.tip[data-v-a0f9ce1c],.theme-mode-dark .custom-block.warning[data-v-a0f9ce1c]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-a0f9ce1c],.theme-mode-dark .custom-block.danger[data-v-a0f9ce1c]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-a0f9ce1c]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-a0f9ce1c]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-a0f9ce1c],.theme-mode-dark .nav-item .dropdown-title a[data-v-a0f9ce1c]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-a0f9ce1c],.theme-mode-dark .nav-item>a[data-v-a0f9ce1c]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-a0f9ce1c]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-a0f9ce1c]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-a0f9ce1c]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-a0f9ce1c],.theme-mode-dark .buttons .button .select-box li[data-v-a0f9ce1c]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-a0f9ce1c]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-a0f9ce1c]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-a0f9ce1c],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-a0f9ce1c]:hover,.theme-mode-dark .pagination span[data-v-a0f9ce1c]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-a0f9ce1c]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-a0f9ce1c],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-a0f9ce1c]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-a0f9ce1c]:hover,.theme-mode-dark a.sidebar-link[data-v-a0f9ce1c]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-a0f9ce1c]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-a0f9ce1c],.theme-mode-dark .search-box input[data-v-a0f9ce1c]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-a0f9ce1c]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-a0f9ce1c],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-a0f9ce1c]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-a0f9ce1c],.theme-mode-dark .tabs-component-tab[data-v-a0f9ce1c]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-a0f9ce1c]{color:#b160ea}.theme-mode-read[data-v-a0f9ce1c]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-a0f9ce1c],.theme-mode-read pre[class*=language-][data-v-a0f9ce1c]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-a0f9ce1c]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-a0f9ce1c],.theme-mode-read pre[class*=language-][data-v-a0f9ce1c]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-a0f9ce1c]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-a0f9ce1c],.theme-mode-read .token.cdata[data-v-a0f9ce1c],.theme-mode-read .token.comment[data-v-a0f9ce1c],.theme-mode-read .token.doctype[data-v-a0f9ce1c],.theme-mode-read .token.prolog[data-v-a0f9ce1c]{color:#999}.theme-mode-read .token.punctuation[data-v-a0f9ce1c]{color:#ccc}.theme-mode-read .token.attr-name[data-v-a0f9ce1c],.theme-mode-read .token.deleted[data-v-a0f9ce1c],.theme-mode-read .token.namespace[data-v-a0f9ce1c],.theme-mode-read .token.tag[data-v-a0f9ce1c]{color:#e2777a}.theme-mode-read .token.function-name[data-v-a0f9ce1c]{color:#6196cc}.theme-mode-read .token.boolean[data-v-a0f9ce1c],.theme-mode-read .token.function[data-v-a0f9ce1c],.theme-mode-read .token.number[data-v-a0f9ce1c]{color:#f08d49}.theme-mode-read .token.class-name[data-v-a0f9ce1c],.theme-mode-read .token.constant[data-v-a0f9ce1c],.theme-mode-read .token.property[data-v-a0f9ce1c],.theme-mode-read .token.symbol[data-v-a0f9ce1c]{color:#f8c555}.theme-mode-read .token.atrule[data-v-a0f9ce1c],.theme-mode-read .token.builtin[data-v-a0f9ce1c],.theme-mode-read .token.important[data-v-a0f9ce1c],.theme-mode-read .token.keyword[data-v-a0f9ce1c],.theme-mode-read .token.selector[data-v-a0f9ce1c]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-a0f9ce1c],.theme-mode-read .token.char[data-v-a0f9ce1c],.theme-mode-read .token.regex[data-v-a0f9ce1c],.theme-mode-read .token.string[data-v-a0f9ce1c],.theme-mode-read .token.variable[data-v-a0f9ce1c]{color:#7ec699}.theme-mode-read .token.entity[data-v-a0f9ce1c],.theme-mode-read .token.operator[data-v-a0f9ce1c],.theme-mode-read .token.url[data-v-a0f9ce1c]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-a0f9ce1c],.theme-mode-read .style .token.string[data-v-a0f9ce1c],.theme-mode-read .token.entity[data-v-a0f9ce1c],.theme-mode-read .token.operator[data-v-a0f9ce1c],.theme-mode-read .token.url[data-v-a0f9ce1c]{background:none}.theme-mode-read .token.bold[data-v-a0f9ce1c],.theme-mode-read .token.important[data-v-a0f9ce1c]{font-weight:700}.theme-mode-read .token.italic[data-v-a0f9ce1c]{font-style:italic}.theme-mode-read .token.entity[data-v-a0f9ce1c]{cursor:help}.theme-mode-read .token.inserted[data-v-a0f9ce1c]{color:green}.home-wrapper[data-v-a0f9ce1c]{height:calc(100vh - 58px)}.home-wrapper .banner[data-v-a0f9ce1c]{width:100%;min-height:450px;margin-top:3.6rem;color:#fff;position:relative;overflow:hidden}.home-wrapper .banner .banner-conent[data-v-a0f9ce1c]{max-width:1100px;margin:0 auto;position:relative;z-index:1;overflow:hidden}.home-wrapper .banner .banner-conent .hero[data-v-a0f9ce1c]{text-align:center;margin-top:3rem}.home-wrapper .banner .banner-conent .hero img[data-v-a0f9ce1c]{max-width:100%;max-height:160px;display:block;margin:2rem auto 1.5rem}.home-wrapper .banner .banner-conent .hero h1[data-v-a0f9ce1c]{margin:0;font-size:2.8rem}.home-wrapper .banner .banner-conent .hero .action[data-v-a0f9ce1c],.home-wrapper .banner .banner-conent .hero .description[data-v-a0f9ce1c]{margin:1.5rem auto}.home-wrapper .banner .banner-conent .hero .description[data-v-a0f9ce1c]{max-width:40rem;font-size:1.1rem;line-height:1.3;opacity:.9}.home-wrapper .banner .banner-conent .hero .action-button[data-v-a0f9ce1c]{display:inline-block;font-size:1.2rem;background-color:#426feb;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out;box-sizing:border-box;border-bottom:1px solid #275ae8;color:#fff}.home-wrapper .banner .banner-conent .hero .action-button[data-v-a0f9ce1c]:hover{background-color:#557ded}.home-wrapper .banner .banner-conent .hero .preview-button[data-v-a0f9ce1c]{display:inline-block;font-size:1.2rem;padding:.68rem 1.6rem;border-radius:4px;margin-left:.6rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out;box-sizing:border-box;border:2px solid #275ae8;color:var(--previewColor)}.home-wrapper .banner .banner-conent .hero .preview-button[data-v-a0f9ce1c]:hover{color:#fff;background-color:#426feb}.home-wrapper .banner .banner-conent .hero .preview-button[data-v-a0f9ce1c]:hover .icon.outbound{color:#fff!important}.home-wrapper .banner .banner-conent .features[data-v-a0f9ce1c]{padding:1.6rem 0;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home-wrapper .banner .banner-conent .feature[data-v-a0f9ce1c]{flex-grow:1;flex-basis:30%;max-width:30%;text-align:center}.home-wrapper .banner .banner-conent .feature a[data-v-a0f9ce1c]{color:inherit}.home-wrapper .banner .banner-conent .feature a .feature-img[data-v-a0f9ce1c]{width:10rem;height:10rem;animation:heart-a0f9ce1c 1.2s ease-in-out 0s infinite alternate;animation-play-state:paused}.home-wrapper .banner .banner-conent .feature a h2[data-v-a0f9ce1c]{font-weight:500;font-size:1.2rem;border-bottom:none;padding-bottom:0}.home-wrapper .banner .banner-conent .feature a p[data-v-a0f9ce1c]{opacity:.8;padding:0 .8rem;font-size:.94rem}.home-wrapper .banner .banner-conent .feature:hover .feature-img[data-v-a0f9ce1c]{animation-play-state:running}.home-wrapper .banner .banner-conent .feature:hover h2[data-v-a0f9ce1c],.home-wrapper .banner .banner-conent .feature:hover p[data-v-a0f9ce1c]{color:#426feb}.home-wrapper .banner .slide-banner .banner-wrapper[data-v-a0f9ce1c]{position:relative}.home-wrapper .banner .slide-banner .slide-banner-scroll[data-v-a0f9ce1c]{min-height:1px;overflow:hidden}.home-wrapper .banner .slide-banner .slide-banner-wrapper[data-v-a0f9ce1c]{height:300px}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item[data-v-a0f9ce1c]{display:inline-block;height:300px;width:100%;text-align:center}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a[data-v-a0f9ce1c]{color:inherit}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a .feature-img[data-v-a0f9ce1c]{width:10rem;height:10rem}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a h2[data-v-a0f9ce1c]{font-size:1.1rem;font-weight:500;border-bottom:none;padding-bottom:0}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a p[data-v-a0f9ce1c]{opacity:.8;padding:0 .8rem}.home-wrapper .banner .slide-banner .docs-wrapper[data-v-a0f9ce1c]{position:absolute;bottom:25px;left:50%;transform:translateX(-50%)}.home-wrapper .banner .slide-banner .docs-wrapper .doc[data-v-a0f9ce1c]{display:inline-block;margin:0 4px;width:8px;height:8px;border-radius:50%;background:var(--textColor);opacity:.9}.home-wrapper .banner .slide-banner .docs-wrapper .doc.active[data-v-a0f9ce1c]{opacity:.5}.home-wrapper .banner.hide-banner[data-v-a0f9ce1c]{display:none}.home-wrapper .banner.hide-banner+.main-wrapper[data-v-a0f9ce1c]{margin-top:4.5rem}.home-wrapper .main-wrapper[data-v-a0f9ce1c]{margin-top:2rem}.home-wrapper .main-wrapper .main-left .card-box[data-v-a0f9ce1c]{margin-bottom:.9rem}.home-wrapper .main-wrapper .main-left .pagination[data-v-a0f9ce1c]{margin-bottom:4rem}.home-wrapper .main-wrapper .main-left .theme-vdoing-content[data-v-a0f9ce1c]{padding:0 2rem;overflow:hidden}.home-wrapper .main-wrapper .main-left .theme-vdoing-content[data-v-a0f9ce1c]>:first-child{padding-top:2rem}.home-wrapper .main-wrapper .main-left .theme-vdoing-content[data-v-a0f9ce1c]>:last-child{padding-bottom:2rem}.home-wrapper .main-wrapper .main-right .custom-html-box[data-v-a0f9ce1c]{padding:0;overflow:hidden}@media (max-width:1025px){.home-wrapper .banner .banner-conent .hero h1[data-v-a0f9ce1c]{font-size:2.5rem}.home-wrapper .banner .banner-conent .hero .description[data-v-a0f9ce1c]{font-size:1rem}.home-wrapper .banner .banner-conent .feature a h2[data-v-a0f9ce1c]{font-size:1.1rem}.home-wrapper .banner .banner-conent .feature a .feature-img[data-v-a0f9ce1c]{width:9rem;height:9rem}}@media (max-width:719px){.home-wrapper .banner .banner-conent .features[data-v-a0f9ce1c]{display:none!important}}@media (max-width:419px){.home-wrapper .banner-conent[data-v-a0f9ce1c]{padding-left:1.5rem;padding-right:1.5rem}.home-wrapper .banner-conent .hero img[data-v-a0f9ce1c]{max-height:210px;margin:2rem auto 1.2rem}.home-wrapper .banner-conent .hero h1[data-v-a0f9ce1c]{font-size:2rem}.home-wrapper .banner-conent .hero .action[data-v-a0f9ce1c],.home-wrapper .banner-conent .hero .description[data-v-a0f9ce1c],.home-wrapper .banner-conent .hero h1[data-v-a0f9ce1c]{margin:1.2rem auto}.home-wrapper .banner-conent .hero .description[data-v-a0f9ce1c]{font-size:1.2rem}.home-wrapper .banner-conent .hero .action-button[data-v-a0f9ce1c]{font-size:1rem;padding:.6rem 1.2rem}.home-wrapper .banner-conent .feature h2[data-v-a0f9ce1c]{font-size:1.25rem}}@keyframes heart-a0f9ce1c{0%{transform:translate(0)}to{transform:translateY(8px)}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:var(--textColor);display:inline-block;border:1px solid var(--borderColor,#ccc);border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:width .2s ease;background:url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#426feb}.search-box .suggestions{background:var(--mainBg,#fff);width:20rem;position:absolute;top:1.5rem;border:1px solid var(--borderColor,#ccc);border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:var(--textColor);opacity:.75}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused,.search-box .suggestion:hover{background-color:hsla(0,0%,58.8%,.2)}.search-box .suggestion.focused a{color:#426feb}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}@media (max-width:719px){.sidebar-button{display:block}}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (min-width:720px){.sidebar-button{width:40px;height:40px;display:inline-block;position:fixed;left:0;top:4.6rem;text-align:center;line-height:44px;margin:5px 8px;color:#888;border-radius:50%;padding:0;transition:all .2s}.sidebar-button:hover{background:#426feb;color:#fff;box-shadow:0 0 6px #426feb}.sidebar-button .icon{display:inline;width:1rem;height:1rem}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:var(--textColor)}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid var(--borderColor);padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#426feb}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #426feb;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{font-weight:600;font-size:inherit}.dropdown-wrapper .dropdown-title:hover{color:#426feb}.dropdown-wrapper .dropdown-title .link-title{display:none}.dropdown-wrapper .dropdown-title .title{display:inline-block!important}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:var(--mainBg);padding:.6rem 0;border-bottom-color:var(--borderColor);border:1px solid var(--borderColor);text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}.nav-item .dropdown-title a.router-link-active,.nav-item .dropdown-title a:hover{margin-bottom:-2px;border-bottom:2px solid #517bed}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#426feb}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:959px){.nav-links .nav-item{margin-left:1.2rem}}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:var(--textColor)}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #517bed}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;transition:transform .3s;background-image:radial-gradient(transparent 1px,var(--blurBg) 0);background-size:4px 4px;backdrop-filter:saturate(50%) blur(4px);-webkit-backdrop-filter:saturate(50%) blur(4px)}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:1.8rem;min-width:1.8rem;vertical-align:top}.navbar .site-name{font-size:1rem;font-weight:600;color:var(--textColor);position:relative}.navbar .links{box-sizing:border-box;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:1.2px;display:flex;padding:.5rem;background:var(--blurBg);box-shadow:-15px 0 5px 0 var(--blurBg)}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}.hide-navbar .navbar{transform:translateY(-100%)}@media (max-width:959px){.navbar .site-name{display:none}}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:860px;padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block;float:left;margin:0 2rem .5rem 0}.page-edit .edit-link a{margin-right:.25rem}.page-edit .tags{float:left}.page-edit .tags a{margin:0 .8rem .5rem 0;display:inline-block;color:var(--textLightenColor);padding:.2rem .7rem;font-size:.9em;background-color:hsla(0,0%,50.2%,.08);border-radius:3px;opacity:.8}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:var(--textColor);opacity:.8}.page-edit .last-updated .time{font-weight:400;color:#aaa}@media (max-width:719px){.page-edit .edit-link,.page-edit .tags{margin-bottom:.5rem}.page-edit .last-updated{width:100%;font-size:.8em;text-align:left}}.page-nav{max-width:860px;padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid var(--borderColor);padding-top:1rem;overflow:auto}.page-nav .next{float:right}.page-nav-centre-wrap .page-nav-centre{position:fixed;top:50%;width:80px;height:70px;margin-top:-35px;outline:0;transition:all .2s;border-radius:3px;opacity:.55;z-index:99}@media (max-width:1340px){.page-nav-centre-wrap .page-nav-centre{width:50px}}@media (max-width:960px){.page-nav-centre-wrap .page-nav-centre{display:none}}.page-nav-centre-wrap .page-nav-centre:hover{background:hsla(0,0%,60%,.15);opacity:1}.page-nav-centre-wrap .page-nav-centre:hover .tooltip{display:block}.page-nav-centre-wrap .page-nav-centre:before{content:"";display:block;width:10px;height:10px;border-top:2px solid #999;border-right:2px solid #999;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.page-nav-centre-wrap .page-nav-centre .tooltip{display:none;background:rgba(0,0,0,.5);color:#fff;padding:4px 8px;font-size:13px;border-radius:3px;position:fixed;max-width:200px;z-index:99}.page-nav-centre-wrap .page-nav-centre-prev{left:0}.page-nav-centre-wrap .page-nav-centre-prev:before{transform:rotate(-135deg)}.page-nav-centre-wrap .page-nav-centre-next{right:0}.page-nav-centre-wrap .page-nav-centre-next:before{transform:rotate(45deg)}.sidebar-open .page-nav-centre-wrap .page-nav-centre-prev{left:18rem}.no-sidebar .page-nav-centre-wrap .page-nav-centre-prev{left:0}.theme-mode-light[data-v-51e47508]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-51e47508]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-51e47508]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-51e47508]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-51e47508],.theme-mode-light pre[class*=language-][data-v-51e47508]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-51e47508]::-moz-selection,.theme-mode-light code[class*=language-][data-v-51e47508] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-51e47508]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-51e47508] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-51e47508]::selection,.theme-mode-light code[class*=language-][data-v-51e47508] ::selection,.theme-mode-light pre[class*=language-][data-v-51e47508]::selection,.theme-mode-light pre[class*=language-][data-v-51e47508] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-51e47508],.theme-mode-light pre[class*=language-][data-v-51e47508]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-51e47508]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-51e47508],.theme-mode-light pre[class*=language-][data-v-51e47508]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-51e47508]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-51e47508],.theme-mode-light .token.comment[data-v-51e47508],.theme-mode-light .token.doctype[data-v-51e47508],.theme-mode-light .token.prolog[data-v-51e47508]{color:#708090}.theme-mode-light .token.punctuation[data-v-51e47508]{color:#999}.theme-mode-light .namespace[data-v-51e47508]{opacity:.7}.theme-mode-light .token.boolean[data-v-51e47508],.theme-mode-light .token.constant[data-v-51e47508],.theme-mode-light .token.deleted[data-v-51e47508],.theme-mode-light .token.number[data-v-51e47508],.theme-mode-light .token.property[data-v-51e47508],.theme-mode-light .token.symbol[data-v-51e47508],.theme-mode-light .token.tag[data-v-51e47508]{color:#905}.theme-mode-light .token.attr-name[data-v-51e47508],.theme-mode-light .token.builtin[data-v-51e47508],.theme-mode-light .token.char[data-v-51e47508],.theme-mode-light .token.inserted[data-v-51e47508],.theme-mode-light .token.selector[data-v-51e47508],.theme-mode-light .token.string[data-v-51e47508]{color:#690}.theme-mode-light .language-css .token.string[data-v-51e47508],.theme-mode-light .style .token.string[data-v-51e47508],.theme-mode-light .token.entity[data-v-51e47508],.theme-mode-light .token.operator[data-v-51e47508],.theme-mode-light .token.url[data-v-51e47508]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-51e47508],.theme-mode-light .token.attr-value[data-v-51e47508],.theme-mode-light .token.keyword[data-v-51e47508]{color:#07a}.theme-mode-light .token.class-name[data-v-51e47508],.theme-mode-light .token.function[data-v-51e47508]{color:#dd4a68}.theme-mode-light .token.important[data-v-51e47508],.theme-mode-light .token.regex[data-v-51e47508],.theme-mode-light .token.variable[data-v-51e47508]{color:#e90}.theme-mode-light .token.bold[data-v-51e47508],.theme-mode-light .token.important[data-v-51e47508]{font-weight:700}.theme-mode-light .token.italic[data-v-51e47508]{font-style:italic}.theme-mode-light .token.entity[data-v-51e47508]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-51e47508],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-51e47508]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-51e47508]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-51e47508],.theme-mode-dark pre[class*=language-][data-v-51e47508]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-51e47508]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-51e47508],.theme-mode-dark pre[class*=language-][data-v-51e47508]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-51e47508]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-51e47508],.theme-mode-dark .token.cdata[data-v-51e47508],.theme-mode-dark .token.comment[data-v-51e47508],.theme-mode-dark .token.doctype[data-v-51e47508],.theme-mode-dark .token.prolog[data-v-51e47508]{color:#999}.theme-mode-dark .token.punctuation[data-v-51e47508]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-51e47508],.theme-mode-dark .token.deleted[data-v-51e47508],.theme-mode-dark .token.namespace[data-v-51e47508],.theme-mode-dark .token.tag[data-v-51e47508]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-51e47508]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-51e47508],.theme-mode-dark .token.function[data-v-51e47508],.theme-mode-dark .token.number[data-v-51e47508]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-51e47508],.theme-mode-dark .token.constant[data-v-51e47508],.theme-mode-dark .token.property[data-v-51e47508],.theme-mode-dark .token.symbol[data-v-51e47508]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-51e47508],.theme-mode-dark .token.builtin[data-v-51e47508],.theme-mode-dark .token.important[data-v-51e47508],.theme-mode-dark .token.keyword[data-v-51e47508],.theme-mode-dark .token.selector[data-v-51e47508]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-51e47508],.theme-mode-dark .token.char[data-v-51e47508],.theme-mode-dark .token.regex[data-v-51e47508],.theme-mode-dark .token.string[data-v-51e47508],.theme-mode-dark .token.variable[data-v-51e47508]{color:#7ec699}.theme-mode-dark .token.entity[data-v-51e47508],.theme-mode-dark .token.operator[data-v-51e47508],.theme-mode-dark .token.url[data-v-51e47508]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-51e47508],.theme-mode-dark .style .token.string[data-v-51e47508],.theme-mode-dark .token.entity[data-v-51e47508],.theme-mode-dark .token.operator[data-v-51e47508],.theme-mode-dark .token.url[data-v-51e47508]{background:none}.theme-mode-dark .token.bold[data-v-51e47508],.theme-mode-dark .token.important[data-v-51e47508]{font-weight:700}.theme-mode-dark .token.italic[data-v-51e47508]{font-style:italic}.theme-mode-dark .token.entity[data-v-51e47508]{cursor:help}.theme-mode-dark .token.inserted[data-v-51e47508]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-51e47508]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-51e47508]{background-color:transparent}.theme-mode-dark blockquote[data-v-51e47508]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-51e47508]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-51e47508]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-51e47508]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-51e47508]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-51e47508]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-51e47508]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-51e47508],.theme-mode-dark .custom-block.note[data-v-51e47508],.theme-mode-dark .custom-block.tip[data-v-51e47508],.theme-mode-dark .custom-block.warning[data-v-51e47508]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-51e47508],.theme-mode-dark .custom-block.danger[data-v-51e47508]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-51e47508]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-51e47508]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-51e47508],.theme-mode-dark .nav-item .dropdown-title a[data-v-51e47508]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-51e47508],.theme-mode-dark .nav-item>a[data-v-51e47508]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-51e47508]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-51e47508]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-51e47508]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-51e47508],.theme-mode-dark .buttons .button .select-box li[data-v-51e47508]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-51e47508]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-51e47508]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-51e47508],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-51e47508]:hover,.theme-mode-dark .pagination span[data-v-51e47508]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-51e47508]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-51e47508],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-51e47508]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-51e47508]:hover,.theme-mode-dark a.sidebar-link[data-v-51e47508]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-51e47508]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-51e47508],.theme-mode-dark .search-box input[data-v-51e47508]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-51e47508]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-51e47508],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-51e47508]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-51e47508],.theme-mode-dark .tabs-component-tab[data-v-51e47508]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-51e47508]{color:#b160ea}.theme-mode-read[data-v-51e47508]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-51e47508],.theme-mode-read pre[class*=language-][data-v-51e47508]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-51e47508]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-51e47508],.theme-mode-read pre[class*=language-][data-v-51e47508]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-51e47508]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-51e47508],.theme-mode-read .token.cdata[data-v-51e47508],.theme-mode-read .token.comment[data-v-51e47508],.theme-mode-read .token.doctype[data-v-51e47508],.theme-mode-read .token.prolog[data-v-51e47508]{color:#999}.theme-mode-read .token.punctuation[data-v-51e47508]{color:#ccc}.theme-mode-read .token.attr-name[data-v-51e47508],.theme-mode-read .token.deleted[data-v-51e47508],.theme-mode-read .token.namespace[data-v-51e47508],.theme-mode-read .token.tag[data-v-51e47508]{color:#e2777a}.theme-mode-read .token.function-name[data-v-51e47508]{color:#6196cc}.theme-mode-read .token.boolean[data-v-51e47508],.theme-mode-read .token.function[data-v-51e47508],.theme-mode-read .token.number[data-v-51e47508]{color:#f08d49}.theme-mode-read .token.class-name[data-v-51e47508],.theme-mode-read .token.constant[data-v-51e47508],.theme-mode-read .token.property[data-v-51e47508],.theme-mode-read .token.symbol[data-v-51e47508]{color:#f8c555}.theme-mode-read .token.atrule[data-v-51e47508],.theme-mode-read .token.builtin[data-v-51e47508],.theme-mode-read .token.important[data-v-51e47508],.theme-mode-read .token.keyword[data-v-51e47508],.theme-mode-read .token.selector[data-v-51e47508]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-51e47508],.theme-mode-read .token.char[data-v-51e47508],.theme-mode-read .token.regex[data-v-51e47508],.theme-mode-read .token.string[data-v-51e47508],.theme-mode-read .token.variable[data-v-51e47508]{color:#7ec699}.theme-mode-read .token.entity[data-v-51e47508],.theme-mode-read .token.operator[data-v-51e47508],.theme-mode-read .token.url[data-v-51e47508]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-51e47508],.theme-mode-read .style .token.string[data-v-51e47508],.theme-mode-read .token.entity[data-v-51e47508],.theme-mode-read .token.operator[data-v-51e47508],.theme-mode-read .token.url[data-v-51e47508]{background:none}.theme-mode-read .token.bold[data-v-51e47508],.theme-mode-read .token.important[data-v-51e47508]{font-weight:700}.theme-mode-read .token.italic[data-v-51e47508]{font-style:italic}.theme-mode-read .token.entity[data-v-51e47508]{cursor:help}.theme-mode-read .token.inserted[data-v-51e47508]{color:green}.articleInfo-wrap[data-v-51e47508]{max-width:860px}.theme-style-line .articleInfo-wrap .articleInfo[data-v-51e47508]{padding-top:.5rem}.articleInfo-wrap[data-v-51e47508]{position:relative;z-index:1;color:#888}.articleInfo-wrap .articleInfo[data-v-51e47508]{overflow:hidden;font-size:.92rem}.articleInfo-wrap .articleInfo .breadcrumbs[data-v-51e47508]{margin:0;padding:0;overflow:hidden;display:inline-block;line-height:2rem}@media (max-width:960px){.articleInfo-wrap .articleInfo .breadcrumbs[data-v-51e47508]{width:100%}}.articleInfo-wrap .articleInfo .breadcrumbs li[data-v-51e47508]{list-style-type:none;float:left;padding-right:5px}.articleInfo-wrap .articleInfo .breadcrumbs li[data-v-51e47508]:after{content:"/";margin-left:5px;color:#999}.articleInfo-wrap .articleInfo .breadcrumbs li[data-v-51e47508]:last-child:after{content:""}.articleInfo-wrap .articleInfo .breadcrumbs li a[data-v-51e47508]{color:#888}.articleInfo-wrap .articleInfo .breadcrumbs li a[data-v-51e47508]:before{font-size:.92rem}.articleInfo-wrap .articleInfo .breadcrumbs li a[data-v-51e47508]:hover{color:#426feb}.articleInfo-wrap .articleInfo .breadcrumbs li .icon-home[data-v-51e47508]{text-decoration:none}.articleInfo-wrap .articleInfo .info[data-v-51e47508]{float:right;line-height:32px}@media (max-width:960px){.articleInfo-wrap .articleInfo .info[data-v-51e47508]{float:left}}.articleInfo-wrap .articleInfo .info div[data-v-51e47508]{float:left;margin-left:20px;font-size:.8rem}@media (max-width:960px){.articleInfo-wrap .articleInfo .info div[data-v-51e47508]{margin:0 20px 0 0}}.articleInfo-wrap .articleInfo .info div[data-v-51e47508]:before{margin-right:3px}.articleInfo-wrap .articleInfo .info div a[data-v-51e47508]{color:#888}.articleInfo-wrap .articleInfo .info div a[data-v-51e47508]:hover{text-decoration:none}.articleInfo-wrap .articleInfo .info div a.beLink[data-v-51e47508]:hover{color:#426feb;text-decoration:underline}.theme-mode-light[data-v-c1edc922]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-c1edc922]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-c1edc922]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-c1edc922]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-c1edc922],.theme-mode-light pre[class*=language-][data-v-c1edc922]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-c1edc922]::-moz-selection,.theme-mode-light code[class*=language-][data-v-c1edc922] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-c1edc922]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-c1edc922] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-c1edc922]::selection,.theme-mode-light code[class*=language-][data-v-c1edc922] ::selection,.theme-mode-light pre[class*=language-][data-v-c1edc922]::selection,.theme-mode-light pre[class*=language-][data-v-c1edc922] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-c1edc922],.theme-mode-light pre[class*=language-][data-v-c1edc922]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-c1edc922]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-c1edc922],.theme-mode-light pre[class*=language-][data-v-c1edc922]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-c1edc922]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-c1edc922],.theme-mode-light .token.comment[data-v-c1edc922],.theme-mode-light .token.doctype[data-v-c1edc922],.theme-mode-light .token.prolog[data-v-c1edc922]{color:#708090}.theme-mode-light .token.punctuation[data-v-c1edc922]{color:#999}.theme-mode-light .namespace[data-v-c1edc922]{opacity:.7}.theme-mode-light .token.boolean[data-v-c1edc922],.theme-mode-light .token.constant[data-v-c1edc922],.theme-mode-light .token.deleted[data-v-c1edc922],.theme-mode-light .token.number[data-v-c1edc922],.theme-mode-light .token.property[data-v-c1edc922],.theme-mode-light .token.symbol[data-v-c1edc922],.theme-mode-light .token.tag[data-v-c1edc922]{color:#905}.theme-mode-light .token.attr-name[data-v-c1edc922],.theme-mode-light .token.builtin[data-v-c1edc922],.theme-mode-light .token.char[data-v-c1edc922],.theme-mode-light .token.inserted[data-v-c1edc922],.theme-mode-light .token.selector[data-v-c1edc922],.theme-mode-light .token.string[data-v-c1edc922]{color:#690}.theme-mode-light .language-css .token.string[data-v-c1edc922],.theme-mode-light .style .token.string[data-v-c1edc922],.theme-mode-light .token.entity[data-v-c1edc922],.theme-mode-light .token.operator[data-v-c1edc922],.theme-mode-light .token.url[data-v-c1edc922]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-c1edc922],.theme-mode-light .token.attr-value[data-v-c1edc922],.theme-mode-light .token.keyword[data-v-c1edc922]{color:#07a}.theme-mode-light .token.class-name[data-v-c1edc922],.theme-mode-light .token.function[data-v-c1edc922]{color:#dd4a68}.theme-mode-light .token.important[data-v-c1edc922],.theme-mode-light .token.regex[data-v-c1edc922],.theme-mode-light .token.variable[data-v-c1edc922]{color:#e90}.theme-mode-light .token.bold[data-v-c1edc922],.theme-mode-light .token.important[data-v-c1edc922]{font-weight:700}.theme-mode-light .token.italic[data-v-c1edc922]{font-style:italic}.theme-mode-light .token.entity[data-v-c1edc922]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-c1edc922],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-c1edc922]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-c1edc922]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-c1edc922],.theme-mode-dark pre[class*=language-][data-v-c1edc922]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-c1edc922]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-c1edc922],.theme-mode-dark pre[class*=language-][data-v-c1edc922]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-c1edc922]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-c1edc922],.theme-mode-dark .token.cdata[data-v-c1edc922],.theme-mode-dark .token.comment[data-v-c1edc922],.theme-mode-dark .token.doctype[data-v-c1edc922],.theme-mode-dark .token.prolog[data-v-c1edc922]{color:#999}.theme-mode-dark .token.punctuation[data-v-c1edc922]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-c1edc922],.theme-mode-dark .token.deleted[data-v-c1edc922],.theme-mode-dark .token.namespace[data-v-c1edc922],.theme-mode-dark .token.tag[data-v-c1edc922]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-c1edc922]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-c1edc922],.theme-mode-dark .token.function[data-v-c1edc922],.theme-mode-dark .token.number[data-v-c1edc922]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-c1edc922],.theme-mode-dark .token.constant[data-v-c1edc922],.theme-mode-dark .token.property[data-v-c1edc922],.theme-mode-dark .token.symbol[data-v-c1edc922]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-c1edc922],.theme-mode-dark .token.builtin[data-v-c1edc922],.theme-mode-dark .token.important[data-v-c1edc922],.theme-mode-dark .token.keyword[data-v-c1edc922],.theme-mode-dark .token.selector[data-v-c1edc922]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-c1edc922],.theme-mode-dark .token.char[data-v-c1edc922],.theme-mode-dark .token.regex[data-v-c1edc922],.theme-mode-dark .token.string[data-v-c1edc922],.theme-mode-dark .token.variable[data-v-c1edc922]{color:#7ec699}.theme-mode-dark .token.entity[data-v-c1edc922],.theme-mode-dark .token.operator[data-v-c1edc922],.theme-mode-dark .token.url[data-v-c1edc922]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-c1edc922],.theme-mode-dark .style .token.string[data-v-c1edc922],.theme-mode-dark .token.entity[data-v-c1edc922],.theme-mode-dark .token.operator[data-v-c1edc922],.theme-mode-dark .token.url[data-v-c1edc922]{background:none}.theme-mode-dark .token.bold[data-v-c1edc922],.theme-mode-dark .token.important[data-v-c1edc922]{font-weight:700}.theme-mode-dark .token.italic[data-v-c1edc922]{font-style:italic}.theme-mode-dark .token.entity[data-v-c1edc922]{cursor:help}.theme-mode-dark .token.inserted[data-v-c1edc922]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-c1edc922]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-c1edc922]{background-color:transparent}.theme-mode-dark blockquote[data-v-c1edc922]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-c1edc922]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-c1edc922]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-c1edc922]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-c1edc922]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-c1edc922]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-c1edc922]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-c1edc922],.theme-mode-dark .custom-block.note[data-v-c1edc922],.theme-mode-dark .custom-block.tip[data-v-c1edc922],.theme-mode-dark .custom-block.warning[data-v-c1edc922]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-c1edc922],.theme-mode-dark .custom-block.danger[data-v-c1edc922]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-c1edc922]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-c1edc922]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-c1edc922],.theme-mode-dark .nav-item .dropdown-title a[data-v-c1edc922]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-c1edc922],.theme-mode-dark .nav-item>a[data-v-c1edc922]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-c1edc922]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-c1edc922]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-c1edc922]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-c1edc922],.theme-mode-dark .buttons .button .select-box li[data-v-c1edc922]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-c1edc922]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-c1edc922]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-c1edc922],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-c1edc922]:hover,.theme-mode-dark .pagination span[data-v-c1edc922]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-c1edc922]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-c1edc922],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-c1edc922]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-c1edc922]:hover,.theme-mode-dark a.sidebar-link[data-v-c1edc922]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-c1edc922]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-c1edc922],.theme-mode-dark .search-box input[data-v-c1edc922]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-c1edc922]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-c1edc922],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-c1edc922]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-c1edc922],.theme-mode-dark .tabs-component-tab[data-v-c1edc922]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-c1edc922]{color:#b160ea}.theme-mode-read[data-v-c1edc922]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-c1edc922],.theme-mode-read pre[class*=language-][data-v-c1edc922]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-c1edc922]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-c1edc922],.theme-mode-read pre[class*=language-][data-v-c1edc922]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-c1edc922]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-c1edc922],.theme-mode-read .token.cdata[data-v-c1edc922],.theme-mode-read .token.comment[data-v-c1edc922],.theme-mode-read .token.doctype[data-v-c1edc922],.theme-mode-read .token.prolog[data-v-c1edc922]{color:#999}.theme-mode-read .token.punctuation[data-v-c1edc922]{color:#ccc}.theme-mode-read .token.attr-name[data-v-c1edc922],.theme-mode-read .token.deleted[data-v-c1edc922],.theme-mode-read .token.namespace[data-v-c1edc922],.theme-mode-read .token.tag[data-v-c1edc922]{color:#e2777a}.theme-mode-read .token.function-name[data-v-c1edc922]{color:#6196cc}.theme-mode-read .token.boolean[data-v-c1edc922],.theme-mode-read .token.function[data-v-c1edc922],.theme-mode-read .token.number[data-v-c1edc922]{color:#f08d49}.theme-mode-read .token.class-name[data-v-c1edc922],.theme-mode-read .token.constant[data-v-c1edc922],.theme-mode-read .token.property[data-v-c1edc922],.theme-mode-read .token.symbol[data-v-c1edc922]{color:#f8c555}.theme-mode-read .token.atrule[data-v-c1edc922],.theme-mode-read .token.builtin[data-v-c1edc922],.theme-mode-read .token.important[data-v-c1edc922],.theme-mode-read .token.keyword[data-v-c1edc922],.theme-mode-read .token.selector[data-v-c1edc922]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-c1edc922],.theme-mode-read .token.char[data-v-c1edc922],.theme-mode-read .token.regex[data-v-c1edc922],.theme-mode-read .token.string[data-v-c1edc922],.theme-mode-read .token.variable[data-v-c1edc922]{color:#7ec699}.theme-mode-read .token.entity[data-v-c1edc922],.theme-mode-read .token.operator[data-v-c1edc922],.theme-mode-read .token.url[data-v-c1edc922]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-c1edc922],.theme-mode-read .style .token.string[data-v-c1edc922],.theme-mode-read .token.entity[data-v-c1edc922],.theme-mode-read .token.operator[data-v-c1edc922],.theme-mode-read .token.url[data-v-c1edc922]{background:none}.theme-mode-read .token.bold[data-v-c1edc922],.theme-mode-read .token.important[data-v-c1edc922]{font-weight:700}.theme-mode-read .token.italic[data-v-c1edc922]{font-style:italic}.theme-mode-read .token.entity[data-v-c1edc922]{cursor:help}.theme-mode-read .token.inserted[data-v-c1edc922]{color:green}.theme-vdoing-content[data-v-c1edc922]{margin-bottom:3.6rem}.title-tag[data-v-c1edc922]{border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.05rem);display:inline-block}dd[data-v-c1edc922],dl[data-v-c1edc922]{margin:0}.column-wrapper[data-v-c1edc922]{margin-top:1rem;display:flex;padding-bottom:2rem;border-bottom:1px solid var(--borderColor)}.column-wrapper img[data-v-c1edc922]{width:80px;height:80px;border-radius:2px;margin-right:1rem}.column-wrapper .column-info .title[data-v-c1edc922]{font-size:1.6rem}.column-wrapper .column-info .description[data-v-c1edc922]{color:var(--textColor);opacity:.8;margin:.5rem 0}.catalogue-wrapper .catalogue-title[data-v-c1edc922]{font-size:1.45rem;margin:2rem 0}.catalogue-wrapper .catalogue-content dl[data-v-c1edc922]{margin-bottom:1.8rem}.catalogue-wrapper .catalogue-content dl.inline[data-v-c1edc922]{display:inline-block;width:50%;margin-bottom:1rem}@media (max-width:419px){.catalogue-wrapper .catalogue-content dl.inline[data-v-c1edc922]{width:100%}}.catalogue-wrapper .catalogue-content dl.inline a[data-v-c1edc922]{width:100%}.catalogue-wrapper .catalogue-content dl:not(.inline) dt[data-v-c1edc922]{margin-top:-3.6rem;padding-top:3.6rem}.catalogue-wrapper .catalogue-content dl dt[data-v-c1edc922]{font-size:1.1rem}.catalogue-wrapper .catalogue-content dl dt:hover .header-anchor[data-v-c1edc922]{opacity:1}.catalogue-wrapper .catalogue-content dl dd[data-v-c1edc922]{margin-top:.7rem;margin-left:1rem}.catalogue-wrapper .catalogue-content dl dd a[data-v-c1edc922]:not(.header-anchor){margin-bottom:.5rem;display:inline-block;width:50%}.catalogue-wrapper .catalogue-content dl dd a[data-v-c1edc922]:not(.header-anchor):hover{color:#ff5722;text-decoration:none}@media (max-width:720px){.catalogue-wrapper .catalogue-content dl dd a[data-v-c1edc922]:not(.header-anchor){width:100%}}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap[data-v-c1edc922]{margin:5px 0 8px;font-size:.95rem}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap>a[data-v-c1edc922]{padding-left:1rem;box-sizing:border-box}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap .sub-title[data-v-c1edc922]{margin-top:-3.6rem;padding-top:3.6rem;margin-bottom:6px;font-size:1rem}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap:hover .header-anchor[data-v-c1edc922]{opacity:1}#special-sponsor[data-v-52e54980]{padding-bottom:12px}#special-sponsor-container[data-v-52e54980]{display:flex;justify-content:center;align-items:center}#special-sponsor h3[data-v-52e54980]{font-size:17px}#special-sponsor .logo[data-v-52e54980]{display:flex;justify-content:center;padding:0 10px}.theme-style-line .right-menu-wrapper .right-menu-margin{border-left:1px solid var(--borderColor)}.right-menu-wrapper{width:230px;float:right;margin-right:-285px;position:sticky;top:0;font-size:.8rem}.right-menu-wrapper .right-menu-margin{margin-top:4.6rem;border-radius:3px;overflow:hidden}.right-menu-wrapper .right-menu-title{padding:10px 15px 0;background:var(--mainBg);font-size:1.3rem}.right-menu-wrapper .right-menu-title:after{content:"";display:block;width:100%;height:1px;background:var(--borderColor);margin-top:10px}.right-menu-wrapper .right-menu-content{max-height:80vh;position:relative;overflow:hidden;background:var(--mainBg);padding:4px 3px 4px 0}.right-menu-wrapper .right-menu-content::-webkit-scrollbar{width:3px;height:3px}.right-menu-wrapper .right-menu-content::-webkit-scrollbar-track-piece{background:none}.right-menu-wrapper .right-menu-content::-webkit-scrollbar-thumb:vertical{background-color:hsla(0,0%,49%,.3)}.right-menu-wrapper .right-menu-content:hover{overflow-y:auto;padding-right:0}.right-menu-wrapper .right-menu-content .right-menu-item{padding:4px 15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative}.right-menu-wrapper .right-menu-content .right-menu-item.level2{font-size:.8rem}.right-menu-wrapper .right-menu-content .right-menu-item.level3{padding-left:27px}.right-menu-wrapper .right-menu-content .right-menu-item.level4{padding-left:37px}.right-menu-wrapper .right-menu-content .right-menu-item.level5{padding-left:47px}.right-menu-wrapper .right-menu-content .right-menu-item.level6{padding-left:57px}.right-menu-wrapper .right-menu-content .right-menu-item.active:before{content:"";position:absolute;top:5px;left:0;width:3px;height:14px;background:#426feb;border-radius:0 4px 4px 0}.right-menu-wrapper .right-menu-content .right-menu-item.active a{color:#426feb;opacity:1}.right-menu-wrapper .right-menu-content .right-menu-item a{color:var(--textColor);opacity:.75;display:inline-block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.right-menu-wrapper .right-menu-content .right-menu-item a:hover{opacity:1}.right-menu-wrapper .right-menu-content:hover{color:#426feb}.page>*{max-width:860px;margin:0 auto;padding:1rem 2.5rem 2rem}.page>:not(.footer){background:var(--mainBg);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);margin-bottom:1rem}@media (min-width:940px){.page>:not(.footer){border-radius:2px}}@media (max-width:959px){.page>*{padding:1rem 2rem}}@media (max-width:419px){.page>*{padding:1rem 1.5rem}}.page{padding-bottom:2rem;display:block}@media (max-width:719px){.page{padding-top:3.6rem}}@media (min-width:719px){.page{padding-top:5.1rem}}@media (min-width:719px){.theme-style-line .page{padding-top:3.6rem}}.theme-style-line .page>:not(.footer){box-shadow:0 0}@media (min-width:720px){.theme-style-line .page .placeholder{height:1.2rem}}.theme-vdoing-wrapper .content-wrapper{position:relative}.theme-vdoing-wrapper h1 .title-tag{height:1.5rem;line-height:1.5rem;border:1px solid #ff5722;color:#ff5722;font-size:1rem;padding:0 .4rem;border-radius:.2rem;margin-left:.5rem;transform:translateY(-.25rem);display:inline-block}.theme-vdoing-wrapper h1 img{margin-bottom:-.2rem;margin-right:.2rem;max-width:2.2rem;max-height:2.2rem}.theme-vdoing-wrapper{--linesColor:rgba(50,0,0,0.05)}.theme-vdoing-wrapper.bg-style-1{background-image:linear-gradient(90deg,var(--linesColor) 3%,transparent 0),linear-gradient(0deg,var(--linesColor) 3%,transparent 0);background-position:50%;background-size:20px 20px}.theme-vdoing-wrapper.bg-style-2{background-image:repeating-linear-gradient(0,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:30px 30px}.theme-vdoing-wrapper.bg-style-3{background-image:repeating-linear-gradient(90deg,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:30px 30px}.theme-vdoing-wrapper.bg-style-4{background-image:repeating-linear-gradient(-45deg,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:20px 20px}.theme-vdoing-wrapper.bg-style-5{background-image:repeating-linear-gradient(45deg,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:20px 20px}.theme-vdoing-wrapper.bg-style-6{background-image:radial-gradient(var(--linesColor) 1px,transparent 0);background-size:10px 10px}.theme-mode-dark .theme-vdoing-wrapper{--linesColor:hsla(0,0%,49%,0.05)}@media (min-width:720px) and (max-width:1279px){.have-rightmenu .page{padding-right:.8rem!important}}@media (max-width:1279px){.have-rightmenu .right-menu-wrapper{display:none}}@media (min-width:1280px){.have-rightmenu .sidebar .sidebar-sub-headers{display:none}}.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar,.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar-button{display:none}@media (min-width:720px){.theme-container.only-sidebarItem:not(.have-rightmenu) .page{padding-left:.8rem!important}}@media (max-width:719px){.theme-container.only-sidebarItem:not(.have-rightmenu) .page{padding-left:0!important}.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar,.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar-button{display:block}}@media (min-width:720px) and (max-width:1279px){.theme-container.only-sidebarItem.have-rightmenu .sidebar,.theme-container.only-sidebarItem.have-rightmenu .sidebar-button{display:block}}@media (min-width:1280px){.theme-container.only-sidebarItem.have-rightmenu .sidebar,.theme-container.only-sidebarItem.have-rightmenu .sidebar-button{display:none}}.categories-page .categories-wrapper{position:sticky;top:4.5rem;max-height:calc(100vh - 10rem);min-height:4.2rem}@media (max-width:719px){.categories-page .categories-wrapper{display:none}}.categories-page .categories-wrapper .categories{max-height:calc(100vh - 14rem);min-height:2.2rem;overflow-y:auto;transition:all .2s;position:relative}.categories-page .categories-wrapper .categories a{padding-right:1.8rem}.categories-page .categories-wrapper .categories a span{right:.4rem}.categories-page .categories-wrapper .categories::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.05)}.categories-page .categories-wrapper .categories::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.15)}.categories-page .categories-wrapper .categories:hover::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.1)}.categories-page .categories-wrapper .categories:hover::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.25)}.categories-page .main-left .categories-wrapper{position:relative;top:0;padding:.9rem 1.5rem;margin-bottom:.9rem;max-height:15rem;border-radius:0;display:none}@media (max-width:719px){.categories-page .main-left .categories-wrapper{display:block}}.categories-page .main-left .categories-wrapper .categories{max-height:12.3rem}@media (max-width:719px){.theme-style-line .categories-page .main-left .categories-wrapper{margin-top:-.91rem;margin-bottom:-1px;padding:.9rem .2rem .5rem}}.tags-page .tags-wrapper{position:sticky;top:4.5rem;max-height:calc(100vh - 10rem);min-height:4.2rem}@media (max-width:719px){.tags-page .tags-wrapper{display:none}}.tags-page .tags-wrapper .tags{max-height:calc(100vh - 14rem);min-height:2.2rem;overflow-x:hidden;overflow-y:auto;transition:all .2s}.tags-page .tags-wrapper .tags::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.05)}.tags-page .tags-wrapper .tags::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.15)}.tags-page .tags-wrapper .tags:hover::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.1)}.tags-page .tags-wrapper .tags:hover::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.25)}.tags-page .main-left .tags-wrapper{position:relative;top:0;padding:.9rem 1.5rem;margin-bottom:.9rem;max-height:15rem;border-radius:0;display:none}@media (max-width:719px){.tags-page .main-left .tags-wrapper{display:block}}.tags-page .main-left .tags-wrapper .tags{max-height:11.5rem}@media (max-width:719px){.theme-style-line .tags-page .main-left .tags-wrapper{margin-top:-.91rem;margin-bottom:-1px}}.archives-page .theme-vdoing-wrapper{max-width:860px;margin:0 auto;padding:1rem 2.5rem 2rem}.archives-page .theme-vdoing-wrapper:not(.footer){background:var(--mainBg);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);margin-bottom:1rem}@media (min-width:940px){.archives-page .theme-vdoing-wrapper:not(.footer){border-radius:2px}}@media (max-width:959px){.archives-page .theme-vdoing-wrapper{padding:1rem 2rem}}@media (max-width:419px){.archives-page .theme-vdoing-wrapper{padding:1rem 1.5rem}}.theme-style-line .archives-page .theme-vdoing-wrapper{box-shadow:0 0}.archives-page .theme-vdoing-wrapper{position:relative}@media (min-width:940px){.archives-page .theme-vdoing-wrapper{margin-top:1.5rem!important}}.archives-page .theme-vdoing-wrapper .count{text-align:right;margin-top:-2.5rem;font-size:.85rem;opacity:.8}.archives-page .theme-vdoing-wrapper li,.archives-page .theme-vdoing-wrapper ul{margin:0;padding:0}.archives-page .theme-vdoing-wrapper ul{margin-top:2rem}.archives-page .theme-vdoing-wrapper li{list-style:none}.archives-page .theme-vdoing-wrapper li.year{position:sticky;top:3.6rem;background:var(--mainBg);z-index:1}.archives-page .theme-vdoing-wrapper li.year:not(:first-child){margin-top:3.5rem}.archives-page .theme-vdoing-wrapper li h2{margin-bottom:.8rem;font-weight:400;padding:.5rem 0}.archives-page .theme-vdoing-wrapper li h2 span{font-size:.85rem;font-weight:300;float:right;margin-top:1rem}.archives-page .theme-vdoing-wrapper li a{display:block;color:var(--textColor);transition:padding .3s;padding:.5rem 2rem;line-height:1.2rem}.archives-page .theme-vdoing-wrapper li a:hover{padding-left:2.5rem;color:#426feb;background:#f9f9f9}@media (max-width:940px){.archives-page .theme-vdoing-wrapper li a{padding:.5rem 1rem;font-weight:400}.archives-page .theme-vdoing-wrapper li a:hover{padding-left:1.5rem}}.archives-page .theme-vdoing-wrapper li a span.date{opacity:.6;font-size:.85rem;font-weight:400;margin-right:.3rem}.archives-page .theme-vdoing-wrapper li a .title-tag{border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.05rem);display:inline-block}.archives-page .theme-vdoing-wrapper .loadmore{text-align:center;margin-top:1rem;opacity:.5}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a:hover,.theme-mode-read .archives-page .theme-vdoing-wrapper li a:hover{background:var(--customBlockBg)}.hide-navbar .archives-page .theme-vdoing-wrapper li.year{top:0}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:1.01em;line-height:1.4;font-weight:700;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.98em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:var(--textColor);transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#426feb;border-left-color:#426feb}.sidebar-heading.clickable:hover{color:#426feb}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}.sidebar .sidebar-sub-headers .level4{padding-left:.2rem}.sidebar .sidebar-sub-headers .level5{padding-left:.4rem}.sidebar .sidebar-sub-headers .level6{padding-left:.6rem}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:var(--textColor);border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#426feb}a.sidebar-link.active{font-weight:600;color:#426feb;border-left-color:#426feb}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .pure-video:hover{transition:all .6s;transform:scale(.9)}.sidebar .nav-links{display:none;border-bottom:1px solid var(--borderColor);padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}.sidebar .blogger{display:none;border-bottom:1px solid var(--borderColor)}.sidebar .blogger img{width:60px;height:60px;border-radius:5px;margin:.75rem 1rem}.sidebar .blogger .blogger-info{flex:1}.sidebar .blogger .blogger-info h3{margin:.95rem 0 .7rem;font-size:1.1rem}.sidebar .blogger .blogger-info .icons .iconfont{font-size:1.2rem;padding-right:.6rem;color:#777}.sidebar .sidebar-slot{margin-bottom:-.5rem;font-size:.85rem}.sidebar .sidebar-slot.sidebar-slot-top{padding:1.5rem 1.5rem 0}.sidebar .sidebar-slot.sidebar-slot-bottom{padding:0 1.5rem 1.5rem}@media (max-width:719px){.sidebar .blogger{display:flex}.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}.yellowBorder{border-radius:5px;box-shadow:0 0 15px #ffe089!important}.buttons{position:fixed;right:2rem;bottom:2.5rem;z-index:11}@media (max-width:959px){.buttons{right:1rem;bottom:1.5rem}}.buttons .button{width:2.2rem;height:2.2rem;line-height:2.2rem;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.15);margin-top:.9rem;text-align:center;cursor:pointer;transition:all .5s;background:var(--blurBg)}.buttons .button.hover{background:#426feb;box-shadow:0 0 15px #426feb}.buttons .button.hover:before{color:#fff}@media (any-hover:hover){.buttons .button:hover{background:#426feb;box-shadow:0 0 15px #426feb}.buttons .button:hover:before{color:#fff}}.buttons .button .select-box{margin:0;padding:.8rem 0;position:absolute;bottom:0;right:1.5rem;background:var(--mainBg);border:1px solid var(--borderColor);width:120px;border-radius:6px;box-shadow:0 0 15px hsla(0,0%,100%,.2)}.buttons .button .select-box li{list-style:none;line-height:2rem;font-size:.95rem}.buttons .button .select-box li:hover{color:#426feb}.buttons .button .select-box li.active{background-color:hsla(0,0%,58.8%,.2);color:#426feb}.mode-enter-active,.mode-leave-active{transition:all .3s}.mode-enter,.mode-leave-to{opacity:0;transform:scale(.8)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter,.fade-leave-to{opacity:0}.footer{margin-top:-3.5rem;text-align:center;color:#666;box-sizing:border-box;font-size:.85rem;transition:all .2s ease}.footer .sponsor{padding:8px 20px;display:inline-block;color:#426feb;border-radius:30px;box-sizing:border-box;border:1px solid #426feb}.footer .icons,.footer .sponsor{margin-bottom:16px}.footer .icons .iconfont{padding:0 10px;font-size:1.3rem}.footer a{color:inherit}.footer a:hover{color:#426feb}@media (min-width:720px){.sidebar-open .footer{width:auto;padding-left:19.5rem}}@media (min-width:1520px){.have-rightmenu .footer{padding-right:231.5px}}.no-sidebar .footer{width:auto;padding-left:1.5rem}.body-bg{position:fixed;left:0;top:0;z-index:-999999;height:100vh;width:100vw;transition:background .5s}.theme-mode-light{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-],.theme-mode-light pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-]::-moz-selection,.theme-mode-light code[class*=language-] ::-moz-selection,.theme-mode-light pre[class*=language-]::-moz-selection,.theme-mode-light pre[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-]::selection,.theme-mode-light code[class*=language-] ::selection,.theme-mode-light pre[class*=language-]::selection,.theme-mode-light pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-],.theme-mode-light pre[class*=language-]{text-shadow:none}}.theme-mode-light pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-],.theme-mode-light pre[class*=language-]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata,.theme-mode-light .token.comment,.theme-mode-light .token.doctype,.theme-mode-light .token.prolog{color:#708090}.theme-mode-light .token.punctuation{color:#999}.theme-mode-light .namespace{opacity:.7}.theme-mode-light .token.boolean,.theme-mode-light .token.constant,.theme-mode-light .token.deleted,.theme-mode-light .token.number,.theme-mode-light .token.property,.theme-mode-light .token.symbol,.theme-mode-light .token.tag{color:#905}.theme-mode-light .token.attr-name,.theme-mode-light .token.builtin,.theme-mode-light .token.char,.theme-mode-light .token.inserted,.theme-mode-light .token.selector,.theme-mode-light .token.string{color:#690}.theme-mode-light .language-css .token.string,.theme-mode-light .style .token.string,.theme-mode-light .token.entity,.theme-mode-light .token.operator,.theme-mode-light .token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule,.theme-mode-light .token.attr-value,.theme-mode-light .token.keyword{color:#07a}.theme-mode-light .token.class-name,.theme-mode-light .token.function{color:#dd4a68}.theme-mode-light .token.important,.theme-mode-light .token.regex,.theme-mode-light .token.variable{color:#e90}.theme-mode-light .token.bold,.theme-mode-light .token.important{font-weight:700}.theme-mode-light .token.italic{font-style:italic}.theme-mode-light .token.entity{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted,.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-],.theme-mode-dark pre[class*=language-]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-],.theme-mode-dark pre[class*=language-]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment,.theme-mode-dark .token.cdata,.theme-mode-dark .token.comment,.theme-mode-dark .token.doctype,.theme-mode-dark .token.prolog{color:#999}.theme-mode-dark .token.punctuation{color:#ccc}.theme-mode-dark .token.attr-name,.theme-mode-dark .token.deleted,.theme-mode-dark .token.namespace,.theme-mode-dark .token.tag{color:#e2777a}.theme-mode-dark .token.function-name{color:#6196cc}.theme-mode-dark .token.boolean,.theme-mode-dark .token.function,.theme-mode-dark .token.number{color:#f08d49}.theme-mode-dark .token.class-name,.theme-mode-dark .token.constant,.theme-mode-dark .token.property,.theme-mode-dark .token.symbol{color:#f8c555}.theme-mode-dark .token.atrule,.theme-mode-dark .token.builtin,.theme-mode-dark .token.important,.theme-mode-dark .token.keyword,.theme-mode-dark .token.selector{color:#cc99cd}.theme-mode-dark .token.attr-value,.theme-mode-dark .token.char,.theme-mode-dark .token.regex,.theme-mode-dark .token.string,.theme-mode-dark .token.variable{color:#7ec699}.theme-mode-dark .token.entity,.theme-mode-dark .token.operator,.theme-mode-dark .token.url{color:#67cdcc}.theme-mode-dark .language-css .token.string,.theme-mode-dark .style .token.string,.theme-mode-dark .token.entity,.theme-mode-dark .token.operator,.theme-mode-dark .token.url{background:none}.theme-mode-dark .token.bold,.theme-mode-dark .token.important{font-weight:700}.theme-mode-dark .token.italic{font-style:italic}.theme-mode-dark .token.entity{cursor:help}.theme-mode-dark .token.inserted{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code{background-color:transparent}.theme-mode-dark blockquote{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table{border-color:#1d1d26}.theme-mode-dark table thead{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger,.theme-mode-dark .custom-block.note,.theme-mode-dark .custom-block.tip,.theme-mode-dark .custom-block.warning{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger,.theme-mode-dark .custom-block.danger .custom-block-title{color:#ff4545}.theme-mode-dark .custom-block.note{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active,.theme-mode-dark .nav-item .dropdown-title a:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active,.theme-mode-dark .nav-item>a:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a:hover,.theme-mode-dark .blogger-wrapper .icons a:hover,.theme-mode-dark .buttons .button .select-box li.active,.theme-mode-dark .buttons .button .select-box li:hover,.theme-mode-dark .categories-wrapper .categories a:not(.active):hover,.theme-mode-dark .custom-block.details summary:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a:hover,.theme-mode-dark .pagination span:hover,.theme-mode-dark .post-list .post .title-wrapper a:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a:hover,.theme-mode-dark .search-box .suggestions .focused a:hover,.theme-mode-dark a.sidebar-link:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active,.theme-mode-dark .search-box input:focus{border-color:#b160ea}.theme-mode-dark .buttons .button:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active,.theme-mode-dark .search-box .suggestions .parent-page-title{background:#904ac2}.theme-mode-dark .tabs-component-panels,.theme-mode-dark .tabs-component-tab{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active{color:#b160ea}.theme-mode-read{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-],.theme-mode-read pre[class*=language-]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-],.theme-mode-read pre[class*=language-]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment,.theme-mode-read .token.cdata,.theme-mode-read .token.comment,.theme-mode-read .token.doctype,.theme-mode-read .token.prolog{color:#999}.theme-mode-read .token.punctuation{color:#ccc}.theme-mode-read .token.attr-name,.theme-mode-read .token.deleted,.theme-mode-read .token.namespace,.theme-mode-read .token.tag{color:#e2777a}.theme-mode-read .token.function-name{color:#6196cc}.theme-mode-read .token.boolean,.theme-mode-read .token.function,.theme-mode-read .token.number{color:#f08d49}.theme-mode-read .token.class-name,.theme-mode-read .token.constant,.theme-mode-read .token.property,.theme-mode-read .token.symbol{color:#f8c555}.theme-mode-read .token.atrule,.theme-mode-read .token.builtin,.theme-mode-read .token.important,.theme-mode-read .token.keyword,.theme-mode-read .token.selector{color:#cc99cd}.theme-mode-read .token.attr-value,.theme-mode-read .token.char,.theme-mode-read .token.regex,.theme-mode-read .token.string,.theme-mode-read .token.variable{color:#7ec699}.theme-mode-read .token.entity,.theme-mode-read .token.operator,.theme-mode-read .token.url{color:#67cdcc}.theme-mode-read .language-css .token.string,.theme-mode-read .style .token.string,.theme-mode-read .token.entity,.theme-mode-read .token.operator,.theme-mode-read .token.url{background:none}.theme-mode-read .token.bold,.theme-mode-read .token.important{font-weight:700}.theme-mode-read .token.italic{font-style:italic}.theme-mode-read .token.entity{cursor:help}.theme-mode-read .token.inserted{color:green}.custom-html-window{position:fixed;bottom:0;display:flex;overflow:hidden;font-weight:350}@media (max-width:960px){.custom-html-window{display:none}}.custom-html-window .custom-wrapper{position:relative;max-width:200px;max-height:400px}.custom-html-window .custom-wrapper .close-but{cursor:pointer;position:absolute;right:0;top:0;font-size:1.5rem;line-height:1.5rem;width:1.5rem;height:1.5rem;opacity:0;transition:all .2s}.custom-html-window .custom-wrapper .close-but:hover{opacity:.9}.custom-html-window .custom-wrapper:hover .close-but{opacity:.7}.custom-html-window.custom-html-window-lb{left:0;z-index:99}.custom-html-window.custom-html-window-lb>*{align-self:flex-end}.custom-html-window.custom-html-window-rb{right:80px;z-index:10;justify-content:flex-end}.custom-html-window.custom-html-window-rb>*{align-self:flex-end}.money-deleted[data-v-67468174]{position:relative;text-decoration:none}.money-deleted[data-v-67468174]:before{content:"";position:absolute;left:0;bottom:35%;width:100%;height:1px;background-color:#000}.money-deleted[data-v-1f93763b]{position:relative;text-decoration:none}.money-deleted[data-v-1f93763b]:before{content:"";position:absolute;left:0;bottom:35%;width:100%;height:1px;background-color:#000}.bottom-content[data-v-26d92649]{opacity:.35;transition:opacity .45s cubic-bezier(.175,.885,.42,1.31)}.bottom-content[data-v-26d92649]:hover{opacity:1}.line-numbers-mode{overflow:hidden;transition:height .3s;margin-top:.85rem}.line-numbers-mode:before{content:attr(data-language)}.expand{font-size:12px;cursor:pointer;position:absolute;z-index:3;top:.8em;right:.5em;color:rgba(238,255,255,.8);font-weight:900;transition:transform .3s}div[class*=language-].line-numbers-mode pre{margin:30px 0 .85rem}.highlight-lines,div[class*=language-].line-numbers-mode .line-numbers-wrapper{margin-top:30px}.closed{transform:rotate(90deg) translateY(-3px);transition:all .3s}li .closed{transform:rotate(90deg) translate(5px,-8px)}div[class*=language-]:before{position:absolute;z-index:3;top:.7em;left:4.7rem;font-size:.9em;color:rgba(238,255,255,.8);text-transform:uppercase;font-weight:700;width:-moz-fit-content;width:fit-content}li .expand,li div[class*=language-]:before{margin-top:-4px}div[class*=language-].line-numbers-mode:after{margin-top:35px}.circle{position:absolute;top:.9em;left:.9rem;width:10px;height:10px;border-radius:50%;background:#fc625d;box-shadow:20px 0 #fdbc40,40px 0 #35cd4b}.code-copy{position:absolute;top:.6rem;right:1.5rem;fill:rgba(238,255,255,.8);opacity:1}.code-copy svg{margin:0}.theme-mode-light .expand,.theme-mode-light div[class*=language-]:before{color:#666}.theme-mode-light .code-copy{fill:#666}.theme-mode-light[data-v-6cdc36a9]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-6cdc36a9]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-6cdc36a9]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-6cdc36a9]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-6cdc36a9],.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-6cdc36a9]::-moz-selection,.theme-mode-light code[class*=language-][data-v-6cdc36a9] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-6cdc36a9]::selection,.theme-mode-light code[class*=language-][data-v-6cdc36a9] ::selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9]::selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-6cdc36a9],.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-6cdc36a9],.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-6cdc36a9]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-6cdc36a9],.theme-mode-light .token.comment[data-v-6cdc36a9],.theme-mode-light .token.doctype[data-v-6cdc36a9],.theme-mode-light .token.prolog[data-v-6cdc36a9]{color:#708090}.theme-mode-light .token.punctuation[data-v-6cdc36a9]{color:#999}.theme-mode-light .namespace[data-v-6cdc36a9]{opacity:.7}.theme-mode-light .token.boolean[data-v-6cdc36a9],.theme-mode-light .token.constant[data-v-6cdc36a9],.theme-mode-light .token.deleted[data-v-6cdc36a9],.theme-mode-light .token.number[data-v-6cdc36a9],.theme-mode-light .token.property[data-v-6cdc36a9],.theme-mode-light .token.symbol[data-v-6cdc36a9],.theme-mode-light .token.tag[data-v-6cdc36a9]{color:#905}.theme-mode-light .token.attr-name[data-v-6cdc36a9],.theme-mode-light .token.builtin[data-v-6cdc36a9],.theme-mode-light .token.char[data-v-6cdc36a9],.theme-mode-light .token.inserted[data-v-6cdc36a9],.theme-mode-light .token.selector[data-v-6cdc36a9],.theme-mode-light .token.string[data-v-6cdc36a9]{color:#690}.theme-mode-light .language-css .token.string[data-v-6cdc36a9],.theme-mode-light .style .token.string[data-v-6cdc36a9],.theme-mode-light .token.entity[data-v-6cdc36a9],.theme-mode-light .token.operator[data-v-6cdc36a9],.theme-mode-light .token.url[data-v-6cdc36a9]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-6cdc36a9],.theme-mode-light .token.attr-value[data-v-6cdc36a9],.theme-mode-light .token.keyword[data-v-6cdc36a9]{color:#07a}.theme-mode-light .token.class-name[data-v-6cdc36a9],.theme-mode-light .token.function[data-v-6cdc36a9]{color:#dd4a68}.theme-mode-light .token.important[data-v-6cdc36a9],.theme-mode-light .token.regex[data-v-6cdc36a9],.theme-mode-light .token.variable[data-v-6cdc36a9]{color:#e90}.theme-mode-light .token.bold[data-v-6cdc36a9],.theme-mode-light .token.important[data-v-6cdc36a9]{font-weight:700}.theme-mode-light .token.italic[data-v-6cdc36a9]{font-style:italic}.theme-mode-light .token.entity[data-v-6cdc36a9]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-6cdc36a9],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-6cdc36a9]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-6cdc36a9]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-6cdc36a9],.theme-mode-dark pre[class*=language-][data-v-6cdc36a9]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-6cdc36a9]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-6cdc36a9],.theme-mode-dark pre[class*=language-][data-v-6cdc36a9]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-6cdc36a9]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-6cdc36a9],.theme-mode-dark .token.cdata[data-v-6cdc36a9],.theme-mode-dark .token.comment[data-v-6cdc36a9],.theme-mode-dark .token.doctype[data-v-6cdc36a9],.theme-mode-dark .token.prolog[data-v-6cdc36a9]{color:#999}.theme-mode-dark .token.punctuation[data-v-6cdc36a9]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-6cdc36a9],.theme-mode-dark .token.deleted[data-v-6cdc36a9],.theme-mode-dark .token.namespace[data-v-6cdc36a9],.theme-mode-dark .token.tag[data-v-6cdc36a9]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-6cdc36a9]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-6cdc36a9],.theme-mode-dark .token.function[data-v-6cdc36a9],.theme-mode-dark .token.number[data-v-6cdc36a9]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-6cdc36a9],.theme-mode-dark .token.constant[data-v-6cdc36a9],.theme-mode-dark .token.property[data-v-6cdc36a9],.theme-mode-dark .token.symbol[data-v-6cdc36a9]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-6cdc36a9],.theme-mode-dark .token.builtin[data-v-6cdc36a9],.theme-mode-dark .token.important[data-v-6cdc36a9],.theme-mode-dark .token.keyword[data-v-6cdc36a9],.theme-mode-dark .token.selector[data-v-6cdc36a9]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-6cdc36a9],.theme-mode-dark .token.char[data-v-6cdc36a9],.theme-mode-dark .token.regex[data-v-6cdc36a9],.theme-mode-dark .token.string[data-v-6cdc36a9],.theme-mode-dark .token.variable[data-v-6cdc36a9]{color:#7ec699}.theme-mode-dark .token.entity[data-v-6cdc36a9],.theme-mode-dark .token.operator[data-v-6cdc36a9],.theme-mode-dark .token.url[data-v-6cdc36a9]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-6cdc36a9],.theme-mode-dark .style .token.string[data-v-6cdc36a9],.theme-mode-dark .token.entity[data-v-6cdc36a9],.theme-mode-dark .token.operator[data-v-6cdc36a9],.theme-mode-dark .token.url[data-v-6cdc36a9]{background:none}.theme-mode-dark .token.bold[data-v-6cdc36a9],.theme-mode-dark .token.important[data-v-6cdc36a9]{font-weight:700}.theme-mode-dark .token.italic[data-v-6cdc36a9]{font-style:italic}.theme-mode-dark .token.entity[data-v-6cdc36a9]{cursor:help}.theme-mode-dark .token.inserted[data-v-6cdc36a9]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-6cdc36a9]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-6cdc36a9]{background-color:transparent}.theme-mode-dark blockquote[data-v-6cdc36a9]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-6cdc36a9]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-6cdc36a9]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-6cdc36a9]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-6cdc36a9]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-6cdc36a9]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-6cdc36a9]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-6cdc36a9],.theme-mode-dark .custom-block.note[data-v-6cdc36a9],.theme-mode-dark .custom-block.tip[data-v-6cdc36a9],.theme-mode-dark .custom-block.warning[data-v-6cdc36a9]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-6cdc36a9],.theme-mode-dark .custom-block.danger[data-v-6cdc36a9]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-6cdc36a9]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-6cdc36a9]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-6cdc36a9],.theme-mode-dark .nav-item .dropdown-title a[data-v-6cdc36a9]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-6cdc36a9],.theme-mode-dark .nav-item>a[data-v-6cdc36a9]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-6cdc36a9]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-6cdc36a9]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-6cdc36a9]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-6cdc36a9],.theme-mode-dark .buttons .button .select-box li[data-v-6cdc36a9]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-6cdc36a9]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-6cdc36a9]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-6cdc36a9],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-6cdc36a9]:hover,.theme-mode-dark .pagination span[data-v-6cdc36a9]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-6cdc36a9]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-6cdc36a9],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-6cdc36a9]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-6cdc36a9]:hover,.theme-mode-dark a.sidebar-link[data-v-6cdc36a9]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-6cdc36a9]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-6cdc36a9],.theme-mode-dark .search-box input[data-v-6cdc36a9]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-6cdc36a9]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-6cdc36a9],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-6cdc36a9]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-6cdc36a9],.theme-mode-dark .tabs-component-tab[data-v-6cdc36a9]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-6cdc36a9]{color:#b160ea}.theme-mode-read[data-v-6cdc36a9]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-6cdc36a9],.theme-mode-read pre[class*=language-][data-v-6cdc36a9]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-6cdc36a9]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-6cdc36a9],.theme-mode-read pre[class*=language-][data-v-6cdc36a9]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-6cdc36a9]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-6cdc36a9],.theme-mode-read .token.cdata[data-v-6cdc36a9],.theme-mode-read .token.comment[data-v-6cdc36a9],.theme-mode-read .token.doctype[data-v-6cdc36a9],.theme-mode-read .token.prolog[data-v-6cdc36a9]{color:#999}.theme-mode-read .token.punctuation[data-v-6cdc36a9]{color:#ccc}.theme-mode-read .token.attr-name[data-v-6cdc36a9],.theme-mode-read .token.deleted[data-v-6cdc36a9],.theme-mode-read .token.namespace[data-v-6cdc36a9],.theme-mode-read .token.tag[data-v-6cdc36a9]{color:#e2777a}.theme-mode-read .token.function-name[data-v-6cdc36a9]{color:#6196cc}.theme-mode-read .token.boolean[data-v-6cdc36a9],.theme-mode-read .token.function[data-v-6cdc36a9],.theme-mode-read .token.number[data-v-6cdc36a9]{color:#f08d49}.theme-mode-read .token.class-name[data-v-6cdc36a9],.theme-mode-read .token.constant[data-v-6cdc36a9],.theme-mode-read .token.property[data-v-6cdc36a9],.theme-mode-read .token.symbol[data-v-6cdc36a9]{color:#f8c555}.theme-mode-read .token.atrule[data-v-6cdc36a9],.theme-mode-read .token.builtin[data-v-6cdc36a9],.theme-mode-read .token.important[data-v-6cdc36a9],.theme-mode-read .token.keyword[data-v-6cdc36a9],.theme-mode-read .token.selector[data-v-6cdc36a9]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-6cdc36a9],.theme-mode-read .token.char[data-v-6cdc36a9],.theme-mode-read .token.regex[data-v-6cdc36a9],.theme-mode-read .token.string[data-v-6cdc36a9],.theme-mode-read .token.variable[data-v-6cdc36a9]{color:#7ec699}.theme-mode-read .token.entity[data-v-6cdc36a9],.theme-mode-read .token.operator[data-v-6cdc36a9],.theme-mode-read .token.url[data-v-6cdc36a9]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-6cdc36a9],.theme-mode-read .style .token.string[data-v-6cdc36a9],.theme-mode-read .token.entity[data-v-6cdc36a9],.theme-mode-read .token.operator[data-v-6cdc36a9],.theme-mode-read .token.url[data-v-6cdc36a9]{background:none}.theme-mode-read .token.bold[data-v-6cdc36a9],.theme-mode-read .token.important[data-v-6cdc36a9]{font-weight:700}.theme-mode-read .token.italic[data-v-6cdc36a9]{font-style:italic}.theme-mode-read .token.entity[data-v-6cdc36a9]{cursor:help}.theme-mode-read .token.inserted[data-v-6cdc36a9]{color:green}.badge[data-v-6cdc36a9]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-6cdc36a9],.badge.tip[data-v-6cdc36a9],.badge[data-v-6cdc36a9]{background-color:#42b983}.badge.error[data-v-6cdc36a9]{background-color:#da5961}.badge.warn[data-v-6cdc36a9],.badge.warning[data-v-6cdc36a9],.badge.yellow[data-v-6cdc36a9]{background-color:#e7c000}.badge+.badge[data-v-6cdc36a9]{margin-left:5px} \ No newline at end of file +@import url(//at.alicdn.com/t/font_1678482_4tbhmh589x.css);.code-copy{color:#aaa;fill:#aaa;font-size:14px;display:inline-block;cursor:pointer}div[class*=aside-code] aside .code-copy,div[class*=language-] pre .code-copy{position:absolute;z-index:1000;top:7px;right:35px;opacity:0;font-size:16px}div[class*=aside-code] aside:hover .code-copy,div[class*=language-] pre:hover .code-copy{opacity:1}.content pre,.content pre[class*=language-]{overflow-y:hidden}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{position:static!important}div[class~=language-text]:before{content:"text"}div[class~=language-yml]:before{content:"yml"}div[class*=language-] pre{-webkit-user-select:text;-moz-user-select:text;user-select:text}p code{-webkit-user-select:all;-moz-user-select:all;user-select:all}@keyframes message-move-in{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}#message-container .message.move-in{animation:message-move-in .3s ease-in-out}@keyframes message-move-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}#message-container .message.move-out{animation:message-move-out .3s ease-in-out;animation-fill-mode:forwards}#message-container .message{background:#fff;margin:10px 0;padding:0 10px;height:40px;box-shadow:0 0 10px 0 #ccc;font-size:14px;border-radius:3px;display:flex;align-items:center;transition:height .2s ease-in-out,margin .2s ease-in-out}#message-container{position:fixed;left:0;top:100px;right:0;display:flex;flex-direction:column;align-items:center}#message-container .message .text{color:#333;padding:0 20px 0 5px}.theme-code-block[data-v-b7295a7e]{display:none}.theme-code-block__active[data-v-b7295a7e]{display:block}.theme-code-block>pre[data-v-b7295a7e]{background-color:orange}@media (max-width:419px){.theme-code-group div[class*=language-][data-v-b7295a7e]{margin:0}}.theme-mode-light[data-v-d560d5e8]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-d560d5e8]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-d560d5e8]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-d560d5e8]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-d560d5e8],.theme-mode-light pre[class*=language-][data-v-d560d5e8]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-d560d5e8]::-moz-selection,.theme-mode-light code[class*=language-][data-v-d560d5e8] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-d560d5e8]::selection,.theme-mode-light code[class*=language-][data-v-d560d5e8] ::selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8]::selection,.theme-mode-light pre[class*=language-][data-v-d560d5e8] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-d560d5e8],.theme-mode-light pre[class*=language-][data-v-d560d5e8]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-d560d5e8]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-d560d5e8],.theme-mode-light pre[class*=language-][data-v-d560d5e8]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-d560d5e8]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-d560d5e8],.theme-mode-light .token.comment[data-v-d560d5e8],.theme-mode-light .token.doctype[data-v-d560d5e8],.theme-mode-light .token.prolog[data-v-d560d5e8]{color:#708090}.theme-mode-light .token.punctuation[data-v-d560d5e8]{color:#999}.theme-mode-light .namespace[data-v-d560d5e8]{opacity:.7}.theme-mode-light .token.boolean[data-v-d560d5e8],.theme-mode-light .token.constant[data-v-d560d5e8],.theme-mode-light .token.deleted[data-v-d560d5e8],.theme-mode-light .token.number[data-v-d560d5e8],.theme-mode-light .token.property[data-v-d560d5e8],.theme-mode-light .token.symbol[data-v-d560d5e8],.theme-mode-light .token.tag[data-v-d560d5e8]{color:#905}.theme-mode-light .token.attr-name[data-v-d560d5e8],.theme-mode-light .token.builtin[data-v-d560d5e8],.theme-mode-light .token.char[data-v-d560d5e8],.theme-mode-light .token.inserted[data-v-d560d5e8],.theme-mode-light .token.selector[data-v-d560d5e8],.theme-mode-light .token.string[data-v-d560d5e8]{color:#690}.theme-mode-light .language-css .token.string[data-v-d560d5e8],.theme-mode-light .style .token.string[data-v-d560d5e8],.theme-mode-light .token.entity[data-v-d560d5e8],.theme-mode-light .token.operator[data-v-d560d5e8],.theme-mode-light .token.url[data-v-d560d5e8]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-d560d5e8],.theme-mode-light .token.attr-value[data-v-d560d5e8],.theme-mode-light .token.keyword[data-v-d560d5e8]{color:#07a}.theme-mode-light .token.class-name[data-v-d560d5e8],.theme-mode-light .token.function[data-v-d560d5e8]{color:#dd4a68}.theme-mode-light .token.important[data-v-d560d5e8],.theme-mode-light .token.regex[data-v-d560d5e8],.theme-mode-light .token.variable[data-v-d560d5e8]{color:#e90}.theme-mode-light .token.bold[data-v-d560d5e8],.theme-mode-light .token.important[data-v-d560d5e8]{font-weight:700}.theme-mode-light .token.italic[data-v-d560d5e8]{font-style:italic}.theme-mode-light .token.entity[data-v-d560d5e8]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-d560d5e8],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-d560d5e8]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-d560d5e8]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-d560d5e8],.theme-mode-dark pre[class*=language-][data-v-d560d5e8]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-d560d5e8]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-d560d5e8],.theme-mode-dark pre[class*=language-][data-v-d560d5e8]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-d560d5e8]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-d560d5e8],.theme-mode-dark .token.cdata[data-v-d560d5e8],.theme-mode-dark .token.comment[data-v-d560d5e8],.theme-mode-dark .token.doctype[data-v-d560d5e8],.theme-mode-dark .token.prolog[data-v-d560d5e8]{color:#999}.theme-mode-dark .token.punctuation[data-v-d560d5e8]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-d560d5e8],.theme-mode-dark .token.deleted[data-v-d560d5e8],.theme-mode-dark .token.namespace[data-v-d560d5e8],.theme-mode-dark .token.tag[data-v-d560d5e8]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-d560d5e8]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-d560d5e8],.theme-mode-dark .token.function[data-v-d560d5e8],.theme-mode-dark .token.number[data-v-d560d5e8]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-d560d5e8],.theme-mode-dark .token.constant[data-v-d560d5e8],.theme-mode-dark .token.property[data-v-d560d5e8],.theme-mode-dark .token.symbol[data-v-d560d5e8]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-d560d5e8],.theme-mode-dark .token.builtin[data-v-d560d5e8],.theme-mode-dark .token.important[data-v-d560d5e8],.theme-mode-dark .token.keyword[data-v-d560d5e8],.theme-mode-dark .token.selector[data-v-d560d5e8]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-d560d5e8],.theme-mode-dark .token.char[data-v-d560d5e8],.theme-mode-dark .token.regex[data-v-d560d5e8],.theme-mode-dark .token.string[data-v-d560d5e8],.theme-mode-dark .token.variable[data-v-d560d5e8]{color:#7ec699}.theme-mode-dark .token.entity[data-v-d560d5e8],.theme-mode-dark .token.operator[data-v-d560d5e8],.theme-mode-dark .token.url[data-v-d560d5e8]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-d560d5e8],.theme-mode-dark .style .token.string[data-v-d560d5e8],.theme-mode-dark .token.entity[data-v-d560d5e8],.theme-mode-dark .token.operator[data-v-d560d5e8],.theme-mode-dark .token.url[data-v-d560d5e8]{background:none}.theme-mode-dark .token.bold[data-v-d560d5e8],.theme-mode-dark .token.important[data-v-d560d5e8]{font-weight:700}.theme-mode-dark .token.italic[data-v-d560d5e8]{font-style:italic}.theme-mode-dark .token.entity[data-v-d560d5e8]{cursor:help}.theme-mode-dark .token.inserted[data-v-d560d5e8]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-d560d5e8]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-d560d5e8]{background-color:transparent}.theme-mode-dark blockquote[data-v-d560d5e8]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-d560d5e8]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-d560d5e8]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-d560d5e8]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-d560d5e8]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-d560d5e8]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-d560d5e8]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-d560d5e8],.theme-mode-dark .custom-block.note[data-v-d560d5e8],.theme-mode-dark .custom-block.tip[data-v-d560d5e8],.theme-mode-dark .custom-block.warning[data-v-d560d5e8]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-d560d5e8],.theme-mode-dark .custom-block.danger[data-v-d560d5e8]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-d560d5e8]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-d560d5e8]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-d560d5e8],.theme-mode-dark .nav-item .dropdown-title a[data-v-d560d5e8]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-d560d5e8],.theme-mode-dark .nav-item>a[data-v-d560d5e8]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-d560d5e8]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-d560d5e8]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-d560d5e8]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-d560d5e8],.theme-mode-dark .buttons .button .select-box li[data-v-d560d5e8]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-d560d5e8]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-d560d5e8]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-d560d5e8],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-d560d5e8]:hover,.theme-mode-dark .pagination span[data-v-d560d5e8]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-d560d5e8]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-d560d5e8],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-d560d5e8]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-d560d5e8]:hover,.theme-mode-dark a.sidebar-link[data-v-d560d5e8]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-d560d5e8]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-d560d5e8],.theme-mode-dark .search-box input[data-v-d560d5e8]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-d560d5e8]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-d560d5e8],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-d560d5e8]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-d560d5e8],.theme-mode-dark .tabs-component-tab[data-v-d560d5e8]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-d560d5e8]{color:#b160ea}.theme-mode-read[data-v-d560d5e8]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-d560d5e8],.theme-mode-read pre[class*=language-][data-v-d560d5e8]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-d560d5e8]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-d560d5e8],.theme-mode-read pre[class*=language-][data-v-d560d5e8]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-d560d5e8]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-d560d5e8],.theme-mode-read .token.cdata[data-v-d560d5e8],.theme-mode-read .token.comment[data-v-d560d5e8],.theme-mode-read .token.doctype[data-v-d560d5e8],.theme-mode-read .token.prolog[data-v-d560d5e8]{color:#999}.theme-mode-read .token.punctuation[data-v-d560d5e8]{color:#ccc}.theme-mode-read .token.attr-name[data-v-d560d5e8],.theme-mode-read .token.deleted[data-v-d560d5e8],.theme-mode-read .token.namespace[data-v-d560d5e8],.theme-mode-read .token.tag[data-v-d560d5e8]{color:#e2777a}.theme-mode-read .token.function-name[data-v-d560d5e8]{color:#6196cc}.theme-mode-read .token.boolean[data-v-d560d5e8],.theme-mode-read .token.function[data-v-d560d5e8],.theme-mode-read .token.number[data-v-d560d5e8]{color:#f08d49}.theme-mode-read .token.class-name[data-v-d560d5e8],.theme-mode-read .token.constant[data-v-d560d5e8],.theme-mode-read .token.property[data-v-d560d5e8],.theme-mode-read .token.symbol[data-v-d560d5e8]{color:#f8c555}.theme-mode-read .token.atrule[data-v-d560d5e8],.theme-mode-read .token.builtin[data-v-d560d5e8],.theme-mode-read .token.important[data-v-d560d5e8],.theme-mode-read .token.keyword[data-v-d560d5e8],.theme-mode-read .token.selector[data-v-d560d5e8]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-d560d5e8],.theme-mode-read .token.char[data-v-d560d5e8],.theme-mode-read .token.regex[data-v-d560d5e8],.theme-mode-read .token.string[data-v-d560d5e8],.theme-mode-read .token.variable[data-v-d560d5e8]{color:#7ec699}.theme-mode-read .token.entity[data-v-d560d5e8],.theme-mode-read .token.operator[data-v-d560d5e8],.theme-mode-read .token.url[data-v-d560d5e8]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-d560d5e8],.theme-mode-read .style .token.string[data-v-d560d5e8],.theme-mode-read .token.entity[data-v-d560d5e8],.theme-mode-read .token.operator[data-v-d560d5e8],.theme-mode-read .token.url[data-v-d560d5e8]{background:none}.theme-mode-read .token.bold[data-v-d560d5e8],.theme-mode-read .token.important[data-v-d560d5e8]{font-weight:700}.theme-mode-read .token.italic[data-v-d560d5e8]{font-style:italic}.theme-mode-read .token.entity[data-v-d560d5e8]{cursor:help}.theme-mode-read .token.inserted[data-v-d560d5e8]{color:green}.theme-code-group[data-v-d560d5e8],.theme-code-group__nav[data-v-d560d5e8]{background-color:var(--codeBg);padding-bottom:22px;border-radius:6px;padding-left:10px;padding-top:10px}.theme-code-group__nav[data-v-d560d5e8]{margin-bottom:-35px}.theme-code-group__ul[data-v-d560d5e8]{margin:auto 0;padding-left:0;display:inline-flex;list-style:none}.theme-code-group__li[data-v-d560d5e8],.theme-code-group__nav-tab[data-v-d560d5e8]{border:0;padding:5px;cursor:pointer;background-color:transparent;font-size:.85em;line-height:1.4;color:var(--codeColor);font-weight:600;opacity:.85}.theme-code-group__nav-tab-active[data-v-d560d5e8]{border-bottom:1px solid #426feb;opacity:1}.pre-blank[data-v-d560d5e8]{color:#426feb}body .theme-vdoing-content code{color:var(--textLightenColor);padding:.25rem .5rem;margin:0;font-size:.9em;background-color:hsla(0,0%,39.2%,.08);border-radius:3px}body .theme-vdoing-content code .token.deleted{color:#ec5975}body .theme-vdoing-content code .token.inserted{color:#426feb}body .theme-vdoing-content pre,body .theme-vdoing-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}body .theme-vdoing-content pre[class*=language-] code,body .theme-vdoing-content pre code{color:var(--codeColor);padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:var(--codeBg);border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.3)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative!important;z-index:1}div[class*=language-]:before{top:.8em;right:1em;font-size:.8rem;color:hsla(0,0%,58.8%,.7)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:2.5rem;height:100%;background-color:rgba(0,0,0,.3)}div[class*=language-].line-numbers-mode pre{padding-left:3.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:2.5rem;text-align:center;color:hsla(0,0%,49.8%,.5);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;-webkit-user-select:none;user-select:none;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:2.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid var(--borderColor);background-color:var(--codeBg)}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:.2rem}.custom-block p{margin:0}.custom-block.danger,.custom-block.note,.custom-block.tip,.custom-block.warning{padding:.5rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983;color:#215d42}.custom-block.warning{background-color:#fff7d0;border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:var(--textColor)}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:var(--textColor)}.custom-block.note{background-color:#e8f5fa;border-color:#157bae;color:#0d4a68}.custom-block.right{color:var(--textColor);font-size:.9rem;text-align:right}.custom-block.theorem{margin:1rem 0;padding:.8rem 1.5rem;border-radius:2px;background-color:var(--customBlockBg)}.custom-block.theorem .title{font-weight:700;margin:.5rem 0}.custom-block.details{display:block;position:relative;border-radius:2px;margin:1em 0;padding:1.6em;background-color:var(--customBlockBg)}.custom-block.details p{margin:.8rem 0}.custom-block.details h4{margin-top:0}.custom-block.details figure:last-child,.custom-block.details p:last-child{margin-bottom:0;padding-bottom:0}.custom-block.details summary{outline:none;cursor:pointer}.custom-block.details summary:hover{color:#426feb}.theme-mode-dark .custom-block.warning{background-color:rgba(255,247,208,.2);color:#e7c000}.theme-mode-dark .custom-block.warning .custom-block-title{color:#ffdc2f}.theme-mode-dark .custom-block.tip{background-color:rgba(243,245,247,.2);color:#42b983}.theme-mode-dark .custom-block.danger{background-color:rgba(255,230,230,.4);color:maroon}.theme-mode-dark .custom-block.danger a{color:#426feb}.theme-mode-dark .custom-block.note{background-color:rgba(243,245,247,.2);color:#157bae}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-vdoing-content:not(.custom){max-width:860px}.table-of-contents .badge{vertical-align:middle}.center-container{text-align:center}.center-container>h1,.center-container>h2,.center-container>h3,.center-container>h4,.center-container>h5,.center-container>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.center-container>h1 a.header-anchor,.center-container>h2 a.header-anchor,.center-container>h3 a.header-anchor,.center-container>h4 a.header-anchor,.center-container>h5 a.header-anchor,.center-container>h6 a.header-anchor{float:none;padding-right:0;margin-left:-.9rem}.cardListContainer{margin:.7rem 0}.cardListContainer>:not(.card-list){display:none}.cardListContainer .card-list{margin:-.35rem;display:flex;flex-wrap:wrap;align-items:flex-start}.cardListContainer .card-list .card-item{width:calc(33.33333% - .7rem);margin:.35rem;background:var(--bodyBg);border-radius:3px;color:var(--textColor);display:flex;box-shadow:1px 1px 2px 0 rgba(0,0,0,.06);transition:all .4s}.cardListContainer .card-list .card-item:hover{text-decoration:none;box-shadow:0 10px 20px -10px var(--randomColor,rgba(0,0,0,.15));transform:translateY(-3px) scale(1.01)}.cardListContainer .card-list .card-item:hover img{box-shadow:3px 2px 7px rgba(0,0,0,.15)}.cardListContainer .card-list .card-item:hover div p{text-shadow:3px 2px 5px rgba(0,0,0,.15)}.cardListContainer .card-list .card-item img{width:60px;height:60px;border-radius:50%;border:2px solid #fff;margin:1rem 0 1rem 1rem;box-shadow:3px 2px 5px rgba(0,0,0,.08);transition:all .4s}.cardListContainer .card-list .card-item div{flex:1;display:inline-block;float:right;padding:1rem 0}.cardListContainer .card-list .card-item div p{margin:0;padding:0 1rem;transition:text-shadow .4s;text-align:center}.cardListContainer .card-list .card-item div .name{margin:.2rem 0 .3rem}.cardListContainer .card-list .card-item div .desc{font-size:.8rem;line-height:1.1rem;opacity:.8;margin-bottom:.2rem}.cardListContainer .card-list .card-item.row-1{width:calc(100% - .7rem)}.cardListContainer .card-list .card-item.row-1 img{margin-left:2rem}.cardListContainer .card-list .card-item.row-2{width:calc(50% - .7rem)}.cardListContainer .card-list .card-item.row-2 img{margin-left:1.5rem}.cardListContainer .card-list .card-item.row-3{width:calc(33.33333% - .7rem)}.cardListContainer .card-list .card-item.row-4{width:calc(25% - .7rem)}.cardImgListContainer{margin:1rem 0}.cardImgListContainer>:not(.card-list){display:none}.cardImgListContainer .card-list{margin:-.5rem;display:flex;flex-wrap:wrap;align-items:flex-start}.cardImgListContainer .card-list .card-item{width:calc(33.33333% - 1rem);margin:.5rem;background:var(--mainBg);border:1px solid rgba(0,0,0,.1);box-sizing:border-box;border-radius:3px;overflow:hidden;color:var(--textColor);box-shadow:2px 2px 10px rgba(0,0,0,.04);display:flex;flex-direction:column;justify-content:flex-start;align-items:stretch;align-content:stretch;transition:all .4s}.cardImgListContainer .card-list .card-item:hover{box-shadow:1px 1px 20px rgba(0,0,0,.1);transform:translateY(-3px)}.cardImgListContainer .card-list .card-item .box-img{overflow:hidden;position:relative;background:#eee}.cardImgListContainer .card-list .card-item .box-img img{display:block;width:100%;height:100%;transition:all .3s}.cardImgListContainer .card-list .card-item a{color:var(--textColor);transition:color .3s}.cardImgListContainer .card-list .card-item a:hover{text-decoration:none}.cardImgListContainer .card-list .card-item .box-info{padding:.8rem 1rem}.cardImgListContainer .card-list .card-item .box-info p{margin:0}.cardImgListContainer .card-list .card-item .box-info .desc{margin-top:.3rem;opacity:.8;font-size:.9rem;line-height:1.1rem;overflow:hidden;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical}.cardImgListContainer .card-list .card-item .box-footer{overflow:hidden;padding:.8rem 1rem;border-top:1px solid rgba(0,0,0,.1)}.cardImgListContainer .card-list .card-item .box-footer img{width:1.8rem;height:1.8rem;border-radius:50%;float:left}.cardImgListContainer .card-list .card-item .box-footer span{line-height:1.8rem;float:left;margin-left:.6rem;font-size:.8rem}.cardImgListContainer .card-list .card-item.row-1{width:calc(100% - 1rem)}.cardImgListContainer .card-list .card-item.row-2{width:calc(50% - 1rem)}.cardImgListContainer .card-list .card-item.row-3{width:calc(33.33333% - 1rem)}.cardImgListContainer .card-list .card-item.row-4{width:calc(25% - 1rem)}.theme-mode-dark .cardImgListContainer .card-list .card-item,.theme-mode-dark .cardImgListContainer .card-list .card-item .box-footer{border-color:var(--borderColor)}@media (max-width:900px){.cardListContainer .card-list .card-item.row-4{width:calc(33.33333% - .7rem)}.cardImgListContainer .card-list .card-item.row-4{width:calc(33.33333% - 1rem)}}@media (max-width:720px){.cardListContainer .card-list .card-item.row-3,.cardListContainer .card-list .card-item.row-4{width:calc(50% - .7rem)}.cardListContainer .card-list .card-item.row-3 img,.cardListContainer .card-list .card-item.row-4 img{margin-left:1.5rem}.cardImgListContainer .card-list .card-item.row-3,.cardImgListContainer .card-list .card-item.row-4{width:calc(50% - 1rem)}}@media (max-width:500px){.cardListContainer .card-list .card-item.row-1,.cardListContainer .card-list .card-item.row-2,.cardListContainer .card-list .card-item.row-3,.cardListContainer .card-list .card-item.row-4{width:calc(100% - .7rem)}.cardListContainer .card-list .card-item.row-1 img,.cardListContainer .card-list .card-item.row-2 img,.cardListContainer .card-list .card-item.row-3 img,.cardListContainer .card-list .card-item.row-4 img{margin-left:1.5rem}.cardImgListContainer .card-list .card-item.row-1,.cardImgListContainer .card-list .card-item.row-2,.cardImgListContainer .card-list .card-item.row-3,.cardImgListContainer .card-list .card-item.row-4{width:calc(100% - 1rem)}}body,html{padding:0;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;font-size:16px;color:#2c3e50;background:var(--bodyBg)}a,button,input{outline:none;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-focus-ring-color:transparent}@media (min-width:719px){::-webkit-scrollbar{width:6px;height:5px}::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.15);-webkit-border-radius:3px}::-webkit-scrollbar-thumb:vertical{height:5px;background-color:rgba(0,0,0,.28);-webkit-border-radius:3px}::-webkit-scrollbar-thumb:horizontal{width:5px;background-color:rgba(0,0,0,.28);-webkit-border-radius:3px}}.card-box{border-radius:5px;background:var(--mainBg);box-shadow:0 0 4px 0 rgba(0,0,0,.1);transition:box-shadow .5s}.card-box:hover{box-shadow:0 1px 15px 0 rgba(0,0,0,.1)}@media (max-width:719px){.theme-style-line{margin-left:-1px;margin-right:-1px}}.theme-style-line .card-box{box-shadow:0 0;border:1px solid var(--borderColor)}.blur{-webkit-backdrop-filter:saturate(200%) blur(20px);backdrop-filter:saturate(200%) blur(20px)}.custom-page{min-height:calc(100vh - 3.6rem);padding-top:3.6rem;padding-bottom:.9rem}.custom-page .theme-vdoing-wrapper{margin:0 auto}body .search-box input{background-color:transparent;color:var(--textColor);border:1px solid var(--borderColor,#ccc)}@media (max-width:959px){body .search-box input{border-color:transparent}}.page{transition:padding .2s ease;padding-left:.8rem}.navbar{position:fixed;z-index:20;top:0;left:0;right:0;height:3.6rem;background-color:var(--blurBg);box-sizing:border-box;box-shadow:0 2px 5px rgba(0,0,0,.06)}.sidebar-mask{top:0;width:100vw;height:100vh}.sidebar-hover-trigger,.sidebar-mask{position:fixed;z-index:12;left:0;display:none}.sidebar-hover-trigger{top:8.1rem;bottom:0;width:24px}.sidebar{font-size:16px;background-color:var(--sidebarBg);width:18rem;position:fixed;z-index:13;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid var(--borderColor);overflow-y:auto;transform:translateX(-100%);transition:transform .2s}@media (max-width:719px){.sidebar{background-color:var(--mainBg)}}.theme-vdoing-content:not(.custom){word-wrap:break-word}.theme-vdoing-content:not(.custom) a:hover{text-decoration:underline}.theme-vdoing-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-vdoing-content:not(.custom) img{max-width:100%}.theme-vdoing-content.custom{padding:0;margin:0}.theme-vdoing-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#426feb}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;opacity:.75;border-left:.2rem solid hsla(0,0%,39.2%,.3);margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-vdoing-content:not(.custom)>h1,.theme-vdoing-content:not(.custom)>h2,.theme-vdoing-content:not(.custom)>h3,.theme-vdoing-content:not(.custom)>h4,.theme-vdoing-content:not(.custom)>h5,.theme-vdoing-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-vdoing-content:not(.custom)>h1:first-child,.theme-vdoing-content:not(.custom)>h2:first-child,.theme-vdoing-content:not(.custom)>h3:first-child,.theme-vdoing-content:not(.custom)>h4:first-child,.theme-vdoing-content:not(.custom)>h5:first-child,.theme-vdoing-content:not(.custom)>h6:first-child{margin-bottom:1rem}.theme-vdoing-content:not(.custom)>h1:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h1:first-child+p,.theme-vdoing-content:not(.custom)>h1:first-child+pre,.theme-vdoing-content:not(.custom)>h2:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h2:first-child+p,.theme-vdoing-content:not(.custom)>h2:first-child+pre,.theme-vdoing-content:not(.custom)>h3:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h3:first-child+p,.theme-vdoing-content:not(.custom)>h3:first-child+pre,.theme-vdoing-content:not(.custom)>h4:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h4:first-child+p,.theme-vdoing-content:not(.custom)>h4:first-child+pre,.theme-vdoing-content:not(.custom)>h5:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h5:first-child+p,.theme-vdoing-content:not(.custom)>h5:first-child+pre,.theme-vdoing-content:not(.custom)>h6:first-child+.custom-block,.theme-vdoing-content:not(.custom)>h6:first-child+p,.theme-vdoing-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:focus .header-anchor,h1:hover .header-anchor,h2:focus .header-anchor,h2:hover .header-anchor,h3:focus .header-anchor,h3:hover .header-anchor,h4:focus .header-anchor,h4:hover .header-anchor,h5:focus .header-anchor,h5:hover .header-anchor,h6:focus .header-anchor,h6:hover .header-anchor{opacity:1}.theme-vdoing-content:not(.custom)>.custom-block:first-child,.theme-vdoing-content:not(.custom)>p:first-child,.theme-vdoing-content:not(.custom)>pre:first-child{margin-top:2rem}h1{font-size:1.9rem}.theme-vdoing-content:not(.custom)>h1:first-child{display:none}h2{font-size:1.5rem;padding-bottom:.3rem;border-bottom:1px solid var(--borderColor)}h3{font-size:1.35rem}.page h4{font-size:1.25rem}.page h5{font-size:1.15rem}.page h6{font-size:1.05rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:focus,a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid var(--borderColor)}table{border-collapse:collapse;margin:1rem 0;overflow-x:auto;width:100%;display:inline-table}@media (max-width:719px){table{display:block}}tr{border-top:1px solid var(--borderColor)}tr:nth-child(2n){background-color:hsla(0,0%,58.8%,.1)}td,th{border:1px solid var(--borderColor);padding:.6em 1em}@media (max-width:719px){td,th{padding:.3em .5em}}td a,th a{word-break:break-all}.theme-container{color:var(--textColor)}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-vdoing-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px}}@media (max-width:719px){.sidebar{width:17.099999999999998rem}}@media (min-width:720px) and (max-width:959px){.sidebar{width:16.2rem}.theme-container.sidebar-open .page{padding-left:17rem!important}}@media (max-width:719px){.sidebar{top:0;height:100vh;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-vdoing-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}@media (min-width:720px){.theme-container .sidebar-hover-trigger{display:block}.theme-container .sidebar-hover-trigger:hover~.sidebar,.theme-container:not(.sidebar-open) .sidebar-hover-trigger~.sidebar:hover{transform:translateX(0);z-index:100}.theme-container.sidebar-open .sidebar-mask{display:none}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.sidebar-open .sidebar-button{left:18rem}.theme-container.sidebar-open .page{padding-left:18.8rem;padding-right:.8rem}.theme-container.sidebar-open .sidebar-hover-trigger{display:none}.theme-container.have-rightmenu .page{padding-right:250px}.theme-container.no-sidebar .page{padding-left:0!important}.theme-container.no-sidebar .sidebar-hover-trigger{display:none}.theme-container.hide-navbar .sidebar-hover-trigger{top:4.5rem}.theme-container.hide-navbar .sidebar{top:0}.theme-container.no-sidebar .sidebar-button{display:none}}@media print{.buttons,.navbar,.sidebar{display:none}.page{padding-top:0!important}}@media (min-width:720px) and (max-width:959px){.theme-container.sidebar-open:not(.on-sidebar) .sidebar-button{left:12.6rem}}table{width:auto}.card-box,.page>:not(.footer){box-shadow:none!important}@media (min-width:940px){.page{padding-top:3.6rem!important}}.home-wrapper .banner .banner-conent{padding:0 2.9rem;box-sizing:border-box}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a h2{margin-top:2rem;font-size:1.2rem!important}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a p{padding:0 1rem}.gt-container .gt-ico-tip:after{content:"。( Win + . ) or ( ⌃ + ⌘ + ␣ ) open Emoji";color:#999}.gt-container .gt-meta{border-color:var(--borderColor)!important}.gt-container .gt-comments-null{color:var(--textColor);opacity:.5}.gt-container .gt-header-textarea{color:var(--textColor);background:hsla(0,0%,70.6%,.1)!important}.gt-container .gt-btn{border-color:#426feb!important;background-color:#426feb!important}.gt-container .gt-btn-preview{background-color:hsla(0,0%,100%,0)!important;color:#426feb!important}.gt-container a{color:#426feb!important}.gt-container .gt-svg svg{fill:#426feb!important}.gt-container .gt-comment-admin .gt-comment-content,.gt-container .gt-comment-content{background-color:hsla(0,0%,58.8%,.1)!important}.gt-container .gt-comment-admin .gt-comment-content:hover,.gt-container .gt-comment-content:hover{box-shadow:0 0 25px hsla(0,0%,58.8%,.5)!important}.gt-container .gt-comment-admin .gt-comment-content .gt-comment-body,.gt-container .gt-comment-content .gt-comment-body{color:var(--textColor)!important}.qq{position:relative}.qq:after{content:"可撩";background:#426feb;color:#fff;padding:0 5px;border-radius:10px;font-size:12px;position:absolute;top:-4px;right:-35px;transform:scale(.85)}body .vuepress-plugin-demo-block__wrapper,body .vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__display{border-color:hsla(0,0%,62.7%,.3)}body .vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover .vuepress-plugin-demo-block__expand:before{border-top-color:#426feb!important;border-bottom-color:#426feb!important}body .vuepress-plugin-demo-block__wrapper .vuepress-plugin-demo-block__footer:hover svg{fill:#426feb!important}#nprogress{pointer-events:none}#nprogress .bar{background:#426feb;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #426feb,0 0 5px #426feb;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#426feb transparent transparent #426feb;border-style:solid;border-width:2px;border-radius:50%;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.theme-mode-light[data-v-2839e1cb]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-2839e1cb]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-2839e1cb]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-2839e1cb]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-2839e1cb],.theme-mode-light pre[class*=language-][data-v-2839e1cb]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-2839e1cb]::-moz-selection,.theme-mode-light code[class*=language-][data-v-2839e1cb] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-2839e1cb]::selection,.theme-mode-light code[class*=language-][data-v-2839e1cb] ::selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb]::selection,.theme-mode-light pre[class*=language-][data-v-2839e1cb] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-2839e1cb],.theme-mode-light pre[class*=language-][data-v-2839e1cb]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-2839e1cb]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-2839e1cb],.theme-mode-light pre[class*=language-][data-v-2839e1cb]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-2839e1cb]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-2839e1cb],.theme-mode-light .token.comment[data-v-2839e1cb],.theme-mode-light .token.doctype[data-v-2839e1cb],.theme-mode-light .token.prolog[data-v-2839e1cb]{color:#708090}.theme-mode-light .token.punctuation[data-v-2839e1cb]{color:#999}.theme-mode-light .namespace[data-v-2839e1cb]{opacity:.7}.theme-mode-light .token.boolean[data-v-2839e1cb],.theme-mode-light .token.constant[data-v-2839e1cb],.theme-mode-light .token.deleted[data-v-2839e1cb],.theme-mode-light .token.number[data-v-2839e1cb],.theme-mode-light .token.property[data-v-2839e1cb],.theme-mode-light .token.symbol[data-v-2839e1cb],.theme-mode-light .token.tag[data-v-2839e1cb]{color:#905}.theme-mode-light .token.attr-name[data-v-2839e1cb],.theme-mode-light .token.builtin[data-v-2839e1cb],.theme-mode-light .token.char[data-v-2839e1cb],.theme-mode-light .token.inserted[data-v-2839e1cb],.theme-mode-light .token.selector[data-v-2839e1cb],.theme-mode-light .token.string[data-v-2839e1cb]{color:#690}.theme-mode-light .language-css .token.string[data-v-2839e1cb],.theme-mode-light .style .token.string[data-v-2839e1cb],.theme-mode-light .token.entity[data-v-2839e1cb],.theme-mode-light .token.operator[data-v-2839e1cb],.theme-mode-light .token.url[data-v-2839e1cb]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-2839e1cb],.theme-mode-light .token.attr-value[data-v-2839e1cb],.theme-mode-light .token.keyword[data-v-2839e1cb]{color:#07a}.theme-mode-light .token.class-name[data-v-2839e1cb],.theme-mode-light .token.function[data-v-2839e1cb]{color:#dd4a68}.theme-mode-light .token.important[data-v-2839e1cb],.theme-mode-light .token.regex[data-v-2839e1cb],.theme-mode-light .token.variable[data-v-2839e1cb]{color:#e90}.theme-mode-light .token.bold[data-v-2839e1cb],.theme-mode-light .token.important[data-v-2839e1cb]{font-weight:700}.theme-mode-light .token.italic[data-v-2839e1cb]{font-style:italic}.theme-mode-light .token.entity[data-v-2839e1cb]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-2839e1cb],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-2839e1cb]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-2839e1cb]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-2839e1cb],.theme-mode-dark pre[class*=language-][data-v-2839e1cb]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-2839e1cb]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-2839e1cb],.theme-mode-dark pre[class*=language-][data-v-2839e1cb]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-2839e1cb]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-2839e1cb],.theme-mode-dark .token.cdata[data-v-2839e1cb],.theme-mode-dark .token.comment[data-v-2839e1cb],.theme-mode-dark .token.doctype[data-v-2839e1cb],.theme-mode-dark .token.prolog[data-v-2839e1cb]{color:#999}.theme-mode-dark .token.punctuation[data-v-2839e1cb]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-2839e1cb],.theme-mode-dark .token.deleted[data-v-2839e1cb],.theme-mode-dark .token.namespace[data-v-2839e1cb],.theme-mode-dark .token.tag[data-v-2839e1cb]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-2839e1cb]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-2839e1cb],.theme-mode-dark .token.function[data-v-2839e1cb],.theme-mode-dark .token.number[data-v-2839e1cb]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-2839e1cb],.theme-mode-dark .token.constant[data-v-2839e1cb],.theme-mode-dark .token.property[data-v-2839e1cb],.theme-mode-dark .token.symbol[data-v-2839e1cb]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-2839e1cb],.theme-mode-dark .token.builtin[data-v-2839e1cb],.theme-mode-dark .token.important[data-v-2839e1cb],.theme-mode-dark .token.keyword[data-v-2839e1cb],.theme-mode-dark .token.selector[data-v-2839e1cb]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-2839e1cb],.theme-mode-dark .token.char[data-v-2839e1cb],.theme-mode-dark .token.regex[data-v-2839e1cb],.theme-mode-dark .token.string[data-v-2839e1cb],.theme-mode-dark .token.variable[data-v-2839e1cb]{color:#7ec699}.theme-mode-dark .token.entity[data-v-2839e1cb],.theme-mode-dark .token.operator[data-v-2839e1cb],.theme-mode-dark .token.url[data-v-2839e1cb]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-2839e1cb],.theme-mode-dark .style .token.string[data-v-2839e1cb],.theme-mode-dark .token.entity[data-v-2839e1cb],.theme-mode-dark .token.operator[data-v-2839e1cb],.theme-mode-dark .token.url[data-v-2839e1cb]{background:none}.theme-mode-dark .token.bold[data-v-2839e1cb],.theme-mode-dark .token.important[data-v-2839e1cb]{font-weight:700}.theme-mode-dark .token.italic[data-v-2839e1cb]{font-style:italic}.theme-mode-dark .token.entity[data-v-2839e1cb]{cursor:help}.theme-mode-dark .token.inserted[data-v-2839e1cb]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-2839e1cb]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-2839e1cb]{background-color:transparent}.theme-mode-dark blockquote[data-v-2839e1cb]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-2839e1cb]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-2839e1cb]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-2839e1cb]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-2839e1cb]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-2839e1cb]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-2839e1cb]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-2839e1cb],.theme-mode-dark .custom-block.note[data-v-2839e1cb],.theme-mode-dark .custom-block.tip[data-v-2839e1cb],.theme-mode-dark .custom-block.warning[data-v-2839e1cb]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-2839e1cb],.theme-mode-dark .custom-block.danger[data-v-2839e1cb]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-2839e1cb]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-2839e1cb]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-2839e1cb],.theme-mode-dark .nav-item .dropdown-title a[data-v-2839e1cb]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-2839e1cb],.theme-mode-dark .nav-item>a[data-v-2839e1cb]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-2839e1cb]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-2839e1cb]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-2839e1cb]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-2839e1cb],.theme-mode-dark .buttons .button .select-box li[data-v-2839e1cb]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-2839e1cb]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-2839e1cb]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-2839e1cb],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-2839e1cb]:hover,.theme-mode-dark .pagination span[data-v-2839e1cb]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-2839e1cb]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-2839e1cb],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-2839e1cb]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-2839e1cb]:hover,.theme-mode-dark a.sidebar-link[data-v-2839e1cb]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-2839e1cb]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-2839e1cb],.theme-mode-dark .search-box input[data-v-2839e1cb]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-2839e1cb]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-2839e1cb],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-2839e1cb]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-2839e1cb],.theme-mode-dark .tabs-component-tab[data-v-2839e1cb]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-2839e1cb]{color:#b160ea}.theme-mode-read[data-v-2839e1cb]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-2839e1cb],.theme-mode-read pre[class*=language-][data-v-2839e1cb]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-2839e1cb]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-2839e1cb],.theme-mode-read pre[class*=language-][data-v-2839e1cb]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-2839e1cb]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-2839e1cb],.theme-mode-read .token.cdata[data-v-2839e1cb],.theme-mode-read .token.comment[data-v-2839e1cb],.theme-mode-read .token.doctype[data-v-2839e1cb],.theme-mode-read .token.prolog[data-v-2839e1cb]{color:#999}.theme-mode-read .token.punctuation[data-v-2839e1cb]{color:#ccc}.theme-mode-read .token.attr-name[data-v-2839e1cb],.theme-mode-read .token.deleted[data-v-2839e1cb],.theme-mode-read .token.namespace[data-v-2839e1cb],.theme-mode-read .token.tag[data-v-2839e1cb]{color:#e2777a}.theme-mode-read .token.function-name[data-v-2839e1cb]{color:#6196cc}.theme-mode-read .token.boolean[data-v-2839e1cb],.theme-mode-read .token.function[data-v-2839e1cb],.theme-mode-read .token.number[data-v-2839e1cb]{color:#f08d49}.theme-mode-read .token.class-name[data-v-2839e1cb],.theme-mode-read .token.constant[data-v-2839e1cb],.theme-mode-read .token.property[data-v-2839e1cb],.theme-mode-read .token.symbol[data-v-2839e1cb]{color:#f8c555}.theme-mode-read .token.atrule[data-v-2839e1cb],.theme-mode-read .token.builtin[data-v-2839e1cb],.theme-mode-read .token.important[data-v-2839e1cb],.theme-mode-read .token.keyword[data-v-2839e1cb],.theme-mode-read .token.selector[data-v-2839e1cb]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-2839e1cb],.theme-mode-read .token.char[data-v-2839e1cb],.theme-mode-read .token.regex[data-v-2839e1cb],.theme-mode-read .token.string[data-v-2839e1cb],.theme-mode-read .token.variable[data-v-2839e1cb]{color:#7ec699}.theme-mode-read .token.entity[data-v-2839e1cb],.theme-mode-read .token.operator[data-v-2839e1cb],.theme-mode-read .token.url[data-v-2839e1cb]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-2839e1cb],.theme-mode-read .style .token.string[data-v-2839e1cb],.theme-mode-read .token.entity[data-v-2839e1cb],.theme-mode-read .token.operator[data-v-2839e1cb],.theme-mode-read .token.url[data-v-2839e1cb]{background:none}.theme-mode-read .token.bold[data-v-2839e1cb],.theme-mode-read .token.important[data-v-2839e1cb]{font-weight:700}.theme-mode-read .token.italic[data-v-2839e1cb]{font-style:italic}.theme-mode-read .token.entity[data-v-2839e1cb]{cursor:help}.theme-mode-read .token.inserted[data-v-2839e1cb]{color:green}.reading-progress[data-v-2839e1cb]{position:fixed;z-index:1000;background:transparent;overflow:hidden}.reading-progress .progress[data-v-2839e1cb]{width:100%;height:100%;background:#b160ea;background-image:none;transform-origin:0 0;transition:transform .2s ease-out}.top[data-v-2839e1cb]{top:0;left:0;right:0;width:100%;height:3px}.bottom[data-v-2839e1cb]{bottom:0;left:0;right:0;width:100%;height:3px}.left[data-v-2839e1cb]{left:0;top:0;bottom:0;width:3px;height:100%}.right[data-v-2839e1cb]{right:0;top:0;bottom:0;width:3px;height:100%}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.theme-mode-light[data-v-8f4262da]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-8f4262da]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-8f4262da]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-8f4262da]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-8f4262da],.theme-mode-light pre[class*=language-][data-v-8f4262da]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-8f4262da]::-moz-selection,.theme-mode-light code[class*=language-][data-v-8f4262da] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-8f4262da]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-8f4262da] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-8f4262da]::selection,.theme-mode-light code[class*=language-][data-v-8f4262da] ::selection,.theme-mode-light pre[class*=language-][data-v-8f4262da]::selection,.theme-mode-light pre[class*=language-][data-v-8f4262da] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-8f4262da],.theme-mode-light pre[class*=language-][data-v-8f4262da]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-8f4262da]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-8f4262da],.theme-mode-light pre[class*=language-][data-v-8f4262da]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-8f4262da]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-8f4262da],.theme-mode-light .token.comment[data-v-8f4262da],.theme-mode-light .token.doctype[data-v-8f4262da],.theme-mode-light .token.prolog[data-v-8f4262da]{color:#708090}.theme-mode-light .token.punctuation[data-v-8f4262da]{color:#999}.theme-mode-light .namespace[data-v-8f4262da]{opacity:.7}.theme-mode-light .token.boolean[data-v-8f4262da],.theme-mode-light .token.constant[data-v-8f4262da],.theme-mode-light .token.deleted[data-v-8f4262da],.theme-mode-light .token.number[data-v-8f4262da],.theme-mode-light .token.property[data-v-8f4262da],.theme-mode-light .token.symbol[data-v-8f4262da],.theme-mode-light .token.tag[data-v-8f4262da]{color:#905}.theme-mode-light .token.attr-name[data-v-8f4262da],.theme-mode-light .token.builtin[data-v-8f4262da],.theme-mode-light .token.char[data-v-8f4262da],.theme-mode-light .token.inserted[data-v-8f4262da],.theme-mode-light .token.selector[data-v-8f4262da],.theme-mode-light .token.string[data-v-8f4262da]{color:#690}.theme-mode-light .language-css .token.string[data-v-8f4262da],.theme-mode-light .style .token.string[data-v-8f4262da],.theme-mode-light .token.entity[data-v-8f4262da],.theme-mode-light .token.operator[data-v-8f4262da],.theme-mode-light .token.url[data-v-8f4262da]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-8f4262da],.theme-mode-light .token.attr-value[data-v-8f4262da],.theme-mode-light .token.keyword[data-v-8f4262da]{color:#07a}.theme-mode-light .token.class-name[data-v-8f4262da],.theme-mode-light .token.function[data-v-8f4262da]{color:#dd4a68}.theme-mode-light .token.important[data-v-8f4262da],.theme-mode-light .token.regex[data-v-8f4262da],.theme-mode-light .token.variable[data-v-8f4262da]{color:#e90}.theme-mode-light .token.bold[data-v-8f4262da],.theme-mode-light .token.important[data-v-8f4262da]{font-weight:700}.theme-mode-light .token.italic[data-v-8f4262da]{font-style:italic}.theme-mode-light .token.entity[data-v-8f4262da]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-8f4262da],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-8f4262da]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-8f4262da]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-8f4262da],.theme-mode-dark pre[class*=language-][data-v-8f4262da]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-8f4262da]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-8f4262da],.theme-mode-dark pre[class*=language-][data-v-8f4262da]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-8f4262da]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-8f4262da],.theme-mode-dark .token.cdata[data-v-8f4262da],.theme-mode-dark .token.comment[data-v-8f4262da],.theme-mode-dark .token.doctype[data-v-8f4262da],.theme-mode-dark .token.prolog[data-v-8f4262da]{color:#999}.theme-mode-dark .token.punctuation[data-v-8f4262da]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-8f4262da],.theme-mode-dark .token.deleted[data-v-8f4262da],.theme-mode-dark .token.namespace[data-v-8f4262da],.theme-mode-dark .token.tag[data-v-8f4262da]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-8f4262da]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-8f4262da],.theme-mode-dark .token.function[data-v-8f4262da],.theme-mode-dark .token.number[data-v-8f4262da]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-8f4262da],.theme-mode-dark .token.constant[data-v-8f4262da],.theme-mode-dark .token.property[data-v-8f4262da],.theme-mode-dark .token.symbol[data-v-8f4262da]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-8f4262da],.theme-mode-dark .token.builtin[data-v-8f4262da],.theme-mode-dark .token.important[data-v-8f4262da],.theme-mode-dark .token.keyword[data-v-8f4262da],.theme-mode-dark .token.selector[data-v-8f4262da]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-8f4262da],.theme-mode-dark .token.char[data-v-8f4262da],.theme-mode-dark .token.regex[data-v-8f4262da],.theme-mode-dark .token.string[data-v-8f4262da],.theme-mode-dark .token.variable[data-v-8f4262da]{color:#7ec699}.theme-mode-dark .token.entity[data-v-8f4262da],.theme-mode-dark .token.operator[data-v-8f4262da],.theme-mode-dark .token.url[data-v-8f4262da]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-8f4262da],.theme-mode-dark .style .token.string[data-v-8f4262da],.theme-mode-dark .token.entity[data-v-8f4262da],.theme-mode-dark .token.operator[data-v-8f4262da],.theme-mode-dark .token.url[data-v-8f4262da]{background:none}.theme-mode-dark .token.bold[data-v-8f4262da],.theme-mode-dark .token.important[data-v-8f4262da]{font-weight:700}.theme-mode-dark .token.italic[data-v-8f4262da]{font-style:italic}.theme-mode-dark .token.entity[data-v-8f4262da]{cursor:help}.theme-mode-dark .token.inserted[data-v-8f4262da]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-8f4262da]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-8f4262da]{background-color:transparent}.theme-mode-dark blockquote[data-v-8f4262da]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-8f4262da]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-8f4262da]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-8f4262da]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-8f4262da]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-8f4262da]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-8f4262da]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-8f4262da],.theme-mode-dark .custom-block.note[data-v-8f4262da],.theme-mode-dark .custom-block.tip[data-v-8f4262da],.theme-mode-dark .custom-block.warning[data-v-8f4262da]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-8f4262da],.theme-mode-dark .custom-block.danger[data-v-8f4262da]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-8f4262da]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-8f4262da]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-8f4262da],.theme-mode-dark .nav-item .dropdown-title a[data-v-8f4262da]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-8f4262da],.theme-mode-dark .nav-item>a[data-v-8f4262da]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-8f4262da]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-8f4262da]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-8f4262da]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-8f4262da],.theme-mode-dark .buttons .button .select-box li[data-v-8f4262da]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-8f4262da]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-8f4262da]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-8f4262da],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-8f4262da]:hover,.theme-mode-dark .pagination span[data-v-8f4262da]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-8f4262da]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-8f4262da],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-8f4262da]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-8f4262da]:hover,.theme-mode-dark a.sidebar-link[data-v-8f4262da]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-8f4262da]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-8f4262da],.theme-mode-dark .search-box input[data-v-8f4262da]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-8f4262da]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-8f4262da],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-8f4262da]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-8f4262da],.theme-mode-dark .tabs-component-tab[data-v-8f4262da]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-8f4262da]{color:#b160ea}.theme-mode-read[data-v-8f4262da]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-8f4262da],.theme-mode-read pre[class*=language-][data-v-8f4262da]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-8f4262da]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-8f4262da],.theme-mode-read pre[class*=language-][data-v-8f4262da]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-8f4262da]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-8f4262da],.theme-mode-read .token.cdata[data-v-8f4262da],.theme-mode-read .token.comment[data-v-8f4262da],.theme-mode-read .token.doctype[data-v-8f4262da],.theme-mode-read .token.prolog[data-v-8f4262da]{color:#999}.theme-mode-read .token.punctuation[data-v-8f4262da]{color:#ccc}.theme-mode-read .token.attr-name[data-v-8f4262da],.theme-mode-read .token.deleted[data-v-8f4262da],.theme-mode-read .token.namespace[data-v-8f4262da],.theme-mode-read .token.tag[data-v-8f4262da]{color:#e2777a}.theme-mode-read .token.function-name[data-v-8f4262da]{color:#6196cc}.theme-mode-read .token.boolean[data-v-8f4262da],.theme-mode-read .token.function[data-v-8f4262da],.theme-mode-read .token.number[data-v-8f4262da]{color:#f08d49}.theme-mode-read .token.class-name[data-v-8f4262da],.theme-mode-read .token.constant[data-v-8f4262da],.theme-mode-read .token.property[data-v-8f4262da],.theme-mode-read .token.symbol[data-v-8f4262da]{color:#f8c555}.theme-mode-read .token.atrule[data-v-8f4262da],.theme-mode-read .token.builtin[data-v-8f4262da],.theme-mode-read .token.important[data-v-8f4262da],.theme-mode-read .token.keyword[data-v-8f4262da],.theme-mode-read .token.selector[data-v-8f4262da]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-8f4262da],.theme-mode-read .token.char[data-v-8f4262da],.theme-mode-read .token.regex[data-v-8f4262da],.theme-mode-read .token.string[data-v-8f4262da],.theme-mode-read .token.variable[data-v-8f4262da]{color:#7ec699}.theme-mode-read .token.entity[data-v-8f4262da],.theme-mode-read .token.operator[data-v-8f4262da],.theme-mode-read .token.url[data-v-8f4262da]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-8f4262da],.theme-mode-read .style .token.string[data-v-8f4262da],.theme-mode-read .token.entity[data-v-8f4262da],.theme-mode-read .token.operator[data-v-8f4262da],.theme-mode-read .token.url[data-v-8f4262da]{background:none}.theme-mode-read .token.bold[data-v-8f4262da],.theme-mode-read .token.important[data-v-8f4262da]{font-weight:700}.theme-mode-read .token.italic[data-v-8f4262da]{font-style:italic}.theme-mode-read .token.entity[data-v-8f4262da]{cursor:help}.theme-mode-read .token.inserted[data-v-8f4262da]{color:green}.theme-vdoing-content[data-v-8f4262da]{margin:3rem auto;padding:1.5rem}.theme-vdoing-content span[data-v-8f4262da]{font-size:6rem;color:#426feb}.theme-mode-light[data-v-617c663d]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-617c663d]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-617c663d]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-617c663d]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-617c663d],.theme-mode-light pre[class*=language-][data-v-617c663d]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-617c663d]::-moz-selection,.theme-mode-light code[class*=language-][data-v-617c663d] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-617c663d]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-617c663d] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-617c663d]::selection,.theme-mode-light code[class*=language-][data-v-617c663d] ::selection,.theme-mode-light pre[class*=language-][data-v-617c663d]::selection,.theme-mode-light pre[class*=language-][data-v-617c663d] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-617c663d],.theme-mode-light pre[class*=language-][data-v-617c663d]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-617c663d]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-617c663d],.theme-mode-light pre[class*=language-][data-v-617c663d]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-617c663d]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-617c663d],.theme-mode-light .token.comment[data-v-617c663d],.theme-mode-light .token.doctype[data-v-617c663d],.theme-mode-light .token.prolog[data-v-617c663d]{color:#708090}.theme-mode-light .token.punctuation[data-v-617c663d]{color:#999}.theme-mode-light .namespace[data-v-617c663d]{opacity:.7}.theme-mode-light .token.boolean[data-v-617c663d],.theme-mode-light .token.constant[data-v-617c663d],.theme-mode-light .token.deleted[data-v-617c663d],.theme-mode-light .token.number[data-v-617c663d],.theme-mode-light .token.property[data-v-617c663d],.theme-mode-light .token.symbol[data-v-617c663d],.theme-mode-light .token.tag[data-v-617c663d]{color:#905}.theme-mode-light .token.attr-name[data-v-617c663d],.theme-mode-light .token.builtin[data-v-617c663d],.theme-mode-light .token.char[data-v-617c663d],.theme-mode-light .token.inserted[data-v-617c663d],.theme-mode-light .token.selector[data-v-617c663d],.theme-mode-light .token.string[data-v-617c663d]{color:#690}.theme-mode-light .language-css .token.string[data-v-617c663d],.theme-mode-light .style .token.string[data-v-617c663d],.theme-mode-light .token.entity[data-v-617c663d],.theme-mode-light .token.operator[data-v-617c663d],.theme-mode-light .token.url[data-v-617c663d]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-617c663d],.theme-mode-light .token.attr-value[data-v-617c663d],.theme-mode-light .token.keyword[data-v-617c663d]{color:#07a}.theme-mode-light .token.class-name[data-v-617c663d],.theme-mode-light .token.function[data-v-617c663d]{color:#dd4a68}.theme-mode-light .token.important[data-v-617c663d],.theme-mode-light .token.regex[data-v-617c663d],.theme-mode-light .token.variable[data-v-617c663d]{color:#e90}.theme-mode-light .token.bold[data-v-617c663d],.theme-mode-light .token.important[data-v-617c663d]{font-weight:700}.theme-mode-light .token.italic[data-v-617c663d]{font-style:italic}.theme-mode-light .token.entity[data-v-617c663d]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-617c663d],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-617c663d]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-617c663d]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-617c663d],.theme-mode-dark pre[class*=language-][data-v-617c663d]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-617c663d]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-617c663d],.theme-mode-dark pre[class*=language-][data-v-617c663d]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-617c663d]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-617c663d],.theme-mode-dark .token.cdata[data-v-617c663d],.theme-mode-dark .token.comment[data-v-617c663d],.theme-mode-dark .token.doctype[data-v-617c663d],.theme-mode-dark .token.prolog[data-v-617c663d]{color:#999}.theme-mode-dark .token.punctuation[data-v-617c663d]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-617c663d],.theme-mode-dark .token.deleted[data-v-617c663d],.theme-mode-dark .token.namespace[data-v-617c663d],.theme-mode-dark .token.tag[data-v-617c663d]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-617c663d]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-617c663d],.theme-mode-dark .token.function[data-v-617c663d],.theme-mode-dark .token.number[data-v-617c663d]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-617c663d],.theme-mode-dark .token.constant[data-v-617c663d],.theme-mode-dark .token.property[data-v-617c663d],.theme-mode-dark .token.symbol[data-v-617c663d]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-617c663d],.theme-mode-dark .token.builtin[data-v-617c663d],.theme-mode-dark .token.important[data-v-617c663d],.theme-mode-dark .token.keyword[data-v-617c663d],.theme-mode-dark .token.selector[data-v-617c663d]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-617c663d],.theme-mode-dark .token.char[data-v-617c663d],.theme-mode-dark .token.regex[data-v-617c663d],.theme-mode-dark .token.string[data-v-617c663d],.theme-mode-dark .token.variable[data-v-617c663d]{color:#7ec699}.theme-mode-dark .token.entity[data-v-617c663d],.theme-mode-dark .token.operator[data-v-617c663d],.theme-mode-dark .token.url[data-v-617c663d]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-617c663d],.theme-mode-dark .style .token.string[data-v-617c663d],.theme-mode-dark .token.entity[data-v-617c663d],.theme-mode-dark .token.operator[data-v-617c663d],.theme-mode-dark .token.url[data-v-617c663d]{background:none}.theme-mode-dark .token.bold[data-v-617c663d],.theme-mode-dark .token.important[data-v-617c663d]{font-weight:700}.theme-mode-dark .token.italic[data-v-617c663d]{font-style:italic}.theme-mode-dark .token.entity[data-v-617c663d]{cursor:help}.theme-mode-dark .token.inserted[data-v-617c663d]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-617c663d]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-617c663d]{background-color:transparent}.theme-mode-dark blockquote[data-v-617c663d]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-617c663d]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-617c663d]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-617c663d]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-617c663d]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-617c663d]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-617c663d]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-617c663d],.theme-mode-dark .custom-block.note[data-v-617c663d],.theme-mode-dark .custom-block.tip[data-v-617c663d],.theme-mode-dark .custom-block.warning[data-v-617c663d]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-617c663d],.theme-mode-dark .custom-block.danger[data-v-617c663d]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-617c663d]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-617c663d]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-617c663d],.theme-mode-dark .nav-item .dropdown-title a[data-v-617c663d]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-617c663d],.theme-mode-dark .nav-item>a[data-v-617c663d]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-617c663d]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-617c663d]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-617c663d]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-617c663d],.theme-mode-dark .buttons .button .select-box li[data-v-617c663d]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-617c663d]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-617c663d]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-617c663d],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-617c663d]:hover,.theme-mode-dark .pagination span[data-v-617c663d]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-617c663d]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-617c663d],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-617c663d]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-617c663d]:hover,.theme-mode-dark a.sidebar-link[data-v-617c663d]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-617c663d]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-617c663d],.theme-mode-dark .search-box input[data-v-617c663d]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-617c663d]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-617c663d],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-617c663d]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-617c663d],.theme-mode-dark .tabs-component-tab[data-v-617c663d]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-617c663d]{color:#b160ea}.theme-mode-read[data-v-617c663d]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-617c663d],.theme-mode-read pre[class*=language-][data-v-617c663d]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-617c663d]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-617c663d],.theme-mode-read pre[class*=language-][data-v-617c663d]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-617c663d]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-617c663d],.theme-mode-read .token.cdata[data-v-617c663d],.theme-mode-read .token.comment[data-v-617c663d],.theme-mode-read .token.doctype[data-v-617c663d],.theme-mode-read .token.prolog[data-v-617c663d]{color:#999}.theme-mode-read .token.punctuation[data-v-617c663d]{color:#ccc}.theme-mode-read .token.attr-name[data-v-617c663d],.theme-mode-read .token.deleted[data-v-617c663d],.theme-mode-read .token.namespace[data-v-617c663d],.theme-mode-read .token.tag[data-v-617c663d]{color:#e2777a}.theme-mode-read .token.function-name[data-v-617c663d]{color:#6196cc}.theme-mode-read .token.boolean[data-v-617c663d],.theme-mode-read .token.function[data-v-617c663d],.theme-mode-read .token.number[data-v-617c663d]{color:#f08d49}.theme-mode-read .token.class-name[data-v-617c663d],.theme-mode-read .token.constant[data-v-617c663d],.theme-mode-read .token.property[data-v-617c663d],.theme-mode-read .token.symbol[data-v-617c663d]{color:#f8c555}.theme-mode-read .token.atrule[data-v-617c663d],.theme-mode-read .token.builtin[data-v-617c663d],.theme-mode-read .token.important[data-v-617c663d],.theme-mode-read .token.keyword[data-v-617c663d],.theme-mode-read .token.selector[data-v-617c663d]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-617c663d],.theme-mode-read .token.char[data-v-617c663d],.theme-mode-read .token.regex[data-v-617c663d],.theme-mode-read .token.string[data-v-617c663d],.theme-mode-read .token.variable[data-v-617c663d]{color:#7ec699}.theme-mode-read .token.entity[data-v-617c663d],.theme-mode-read .token.operator[data-v-617c663d],.theme-mode-read .token.url[data-v-617c663d]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-617c663d],.theme-mode-read .style .token.string[data-v-617c663d],.theme-mode-read .token.entity[data-v-617c663d],.theme-mode-read .token.operator[data-v-617c663d],.theme-mode-read .token.url[data-v-617c663d]{background:none}.theme-mode-read .token.bold[data-v-617c663d],.theme-mode-read .token.important[data-v-617c663d]{font-weight:700}.theme-mode-read .token.italic[data-v-617c663d]{font-style:italic}.theme-mode-read .token.entity[data-v-617c663d]{cursor:help}.theme-mode-read .token.inserted[data-v-617c663d]{color:green}[data-v-617c663d] .icon.outbound{color:var(--previewColor)!important}.main-wrapper{margin:1.5rem auto 0;max-width:1100px;padding:0 .9rem;box-sizing:border-box;position:relative;display:flex}.main-wrapper .main-left{flex:1}.main-wrapper .main-left .theme-vdoing-content.card-box{padding:1rem 1.5rem;margin-bottom:.9rem}.main-wrapper .main-left .home-content{padding:1rem 1.5rem 0}.main-wrapper .main-right>*{width:245px;box-sizing:border-box}@media (max-width:900px){.main-wrapper .main-right>*{width:235px}}.main-wrapper .main-right .card-box{margin:0 0 .9rem .9rem;padding-top:.95rem;padding-bottom:.95rem}@media (max-width:719px){.main-wrapper{margin:.9rem 0;padding:0;display:block}.main-wrapper .main-left{width:100%}.main-wrapper .main-left .post-list{margin-bottom:3rem}.main-wrapper .main-left .post-list .post{border-radius:0}.main-wrapper .main-left .pagination{margin-bottom:3rem}.main-wrapper .main-right .blogger-wrapper{display:none}.main-wrapper .main-right .card-box{margin:0 0 .9rem;border-radius:0;width:100%}}.post-list{margin-bottom:3rem}.post-list .post{position:relative;padding:1rem 1.5rem;margin-bottom:.8rem;transition:all .3s}.post-list .post:last-child{border-bottom:none}.post-list .post.post-leave-active{display:none}.post-list .post.post-enter{opacity:0;transform:translateX(-20px)}.post-list .post:before{position:absolute;top:-1px;right:0;font-size:2.5rem;color:#ff5722;opacity:.85}.post-list .post .title-wrapper a{color:var(--textColor)}.post-list .post .title-wrapper a:hover{color:#426feb}.post-list .post .title-wrapper h2{margin:.5rem 0;font-size:1.4rem;border:none}.post-list .post .title-wrapper h2 .title-tag{height:1.2rem;line-height:1.2rem;border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.15rem);display:inline-block}.post-list .post .title-wrapper h2 a{display:block}@media (max-width:719px){.post-list .post .title-wrapper h2 a{font-weight:400}}.post-list .post .title-wrapper .article-info>a,.post-list .post .title-wrapper .article-info>span{opacity:.7;font-size:.8rem;margin-right:1rem;cursor:pointer}.post-list .post .title-wrapper .article-info>a:before,.post-list .post .title-wrapper .article-info>span:before{margin-right:.3rem}.post-list .post .title-wrapper .article-info>a a,.post-list .post .title-wrapper .article-info>span a{margin:0}.post-list .post .title-wrapper .article-info>a a:not(:first-child):before,.post-list .post .title-wrapper .article-info>span a:not(:first-child):before{content:"/"}.post-list .post .title-wrapper .article-info .tags a:not(:first-child):before{content:"、"}.post-list .post .excerpt-wrapper{border-top:1px solid var(--borderColor);margin:.5rem 0;overflow:hidden}.post-list .post .excerpt-wrapper .excerpt{margin-bottom:.3rem;font-size:.92rem}.post-list .post .excerpt-wrapper .excerpt h1,.post-list .post .excerpt-wrapper .excerpt h2,.post-list .post .excerpt-wrapper .excerpt h3{display:none}.post-list .post .excerpt-wrapper .excerpt img{max-height:280px;max-width:100%!important;margin:0 auto}.post-list .post .excerpt-wrapper .readmore{float:right;margin-right:1rem;line-height:1rem}.post-list .post .excerpt-wrapper .readmore:before{float:right;font-size:.8rem;margin:.1rem 0 0 .2rem}.theme-style-line .post-list{border:1px solid var(--borderColor);border-bottom:none;border-radius:5px;overflow:hidden}.theme-style-line .post-list .post{margin-bottom:0;border:none;border-bottom:1px solid var(--borderColor);border-radius:0}.article-list{padding:1rem 2rem}@media (max-width:959px){.article-list{padding:1rem 1.5rem}}.article-list.no-article-list{display:none}.article-list .article-title{border-bottom:1px solid var(--borderColor);font-size:1.3rem;padding:1rem}.article-list .article-title a{font-size:1.2rem;color:var(--textColor);opacity:.9}.article-list .article-title a:before{margin-right:.4rem;font-size:1.1rem}.article-list .article-wrapper{overflow:hidden}.article-list .article-wrapper dl{border-bottom:1px dotted var(--borderColor);float:left;display:flex;padding:8px 0;margin:0;height:45px;width:100%}.article-list .article-wrapper dl dd{font-size:1.1rem;color:#f17229;width:50px;text-align:center;margin:0;line-height:45px}.article-list .article-wrapper dl dt{flex:1;display:flex}.article-list .article-wrapper dl dt a{color:var(--textColor);flex:1;display:flex;height:45px;align-items:center;font-weight:400}.article-list .article-wrapper dl dt a div{overflow:hidden;white-space:normal;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.article-list .article-wrapper dl dt a div .title-tag{border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.05rem);display:inline-block}.article-list .article-wrapper dl dt a:hover{text-decoration:underline}.article-list .article-wrapper dl dt a.more{color:#426feb}.article-list .article-wrapper dl dt .date{width:50px;margin-right:15px;color:#999;text-align:right;font-size:.9rem;line-height:45px}.pagination{position:relative;height:60px;text-align:center}@media (max-width:720px){.pagination{margin-left:1px;margin-right:1px}}.pagination span{line-height:1rem;opacity:.9;cursor:pointer}.pagination span:hover{color:#426feb}.pagination span.ellipsis{opacity:.5}.pagination span.ellipsis:before{content:"...";font-size:1.2rem}@media (any-hover:hover){.pagination span.ellipsis.ell-two:hover:before{content:"«"}.pagination span.ellipsis.ell-four:hover:before{content:"»"}}.pagination>span{position:absolute;top:0;padding:1rem 1.2rem;font-size:.95rem}.pagination>span:before{font-size:.4rem}.pagination>span.disabled{color:hsla(0,0%,49%,.5)}.pagination>span.prev{left:0}.pagination>span.prev:before{margin-right:.3rem}.pagination>span.next{right:0}.pagination>span.next:before{float:right;margin-left:.3rem}.pagination>span p{display:inline;line-height:.95rem}.pagination .pagination-list span{display:inline-block;width:2.5rem;height:2.5rem;line-height:2.5rem;margin:.3rem}.pagination .pagination-list span.active{background:#426feb;color:var(--mainBg)}@media (max-width:800px){.pagination>span{padding:1rem 1.5rem}.pagination>span p{display:none}}@media (max-width:719px){.pagination>span{padding:.9rem 1.5rem}.pagination .pagination-list span{width:2.3rem;height:2.3rem;line-height:2.3rem;margin:.25rem}}@media (max-width:390px){.pagination>span{padding:.8rem 1.3rem}.pagination .pagination-list span{width:2rem;height:2rem;line-height:2rem;margin:.3rem .1rem .1rem}}.blogger-wrapper{height:auto;display:inline-table;padding-top:0!important;overflow:hidden}.blogger-wrapper .avatar{width:100%;overflow:hidden}.blogger-wrapper .avatar img{width:100%;height:100%}.blogger-wrapper .icons{border-top:none;height:35px;line-height:35px}.blogger-wrapper .icons a{font-size:20px;width:33%;color:var(--textColor);display:block;float:left;text-align:center;opacity:.8}.blogger-wrapper .icons a:hover{color:#426feb}.blogger-wrapper .blogger{padding:.3rem .95rem 0}.blogger-wrapper .blogger .name{font-size:1.3rem;display:block;margin-bottom:6px}.blogger-wrapper .blogger .slogan{color:var(--textColor)}.categories-wrapper .title{color:var(--textColor);opacity:.9;font-size:1.2rem;padding:0 .95rem}.categories-wrapper .title:before{margin-right:.3rem}.categories-wrapper .categories{margin-top:.6rem}.categories-wrapper .categories a{display:block;padding:8px 2.4rem 7px .95rem;color:var(--textColor);opacity:.8;font-size:.95rem;line-height:.95rem;position:relative;transition:all .2s;border-left:2px solid transparent;margin-top:-1px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (max-width:719px){.categories-wrapper .categories a{font-weight:400}}.categories-wrapper .categories a:not(.active):hover{color:#426feb;background:#f8f8f8;border-color:#426feb}.categories-wrapper .categories a:not(.active):hover span{opacity:.8}.categories-wrapper .categories a span{background-color:var(--textColor);color:var(--mainBg);border-radius:8px;padding:0 .13rem;min-width:1rem;height:1rem;line-height:1rem;font-size:12px;text-align:center;opacity:.6;transition:opacity .3s;position:absolute;right:.95rem;top:8px}.categories-wrapper .categories a.active{background:#426feb;color:var(--mainBg);padding-left:.8rem;border-radius:1px;border-color:transparent}.theme-mode-dark .categories-wrapper .categories a:not(.active):hover,.theme-mode-read .categories-wrapper .categories a:not(.active):hover{background:var(--customBlockBg)}.tags-wrapper{padding:0 .95rem}.tags-wrapper .title{color:var(--textColor);opacity:.9;font-size:1.2rem}.tags-wrapper .title:before{margin-right:.3rem}.tags-wrapper .tags{text-align:justify;padding:.8rem .5rem .5rem;margin:0 -.5rem -.5rem}.tags-wrapper .tags a{opacity:.8;display:inline-block;padding:.2rem .4rem;transition:all .4s;background-color:var(--textColor);color:var(--mainBg);border-radius:3px;margin:0 .3rem .5rem 0;min-width:2rem;height:1rem;line-height:1rem;font-size:.8rem;text-align:center}@media (max-width:719px){.tags-wrapper .tags a{font-weight:400}}.tags-wrapper .tags a:hover{opacity:1;transform:scale(1.1)}.tags-wrapper .tags a.active{box-shadow:0 5px 10px -5px var(--randomColor,rgba(0,0,0,.15));transform:scale(1.22);opacity:1}.tags-wrapper .tags a.active:hover{text-decoration:none}#special-sponsor[data-v-a0f9ce1c]{border-top:1px solid rgba(60,60,60,.12);border-bottom:1px solid rgba(60,60,60,.12);padding-bottom:12px}#special-sponsor-container[data-v-a0f9ce1c]{display:flex;justify-content:center;align-items:center}#special-sponsor h3[data-v-a0f9ce1c]{text-align:center;font-size:18px}#special-sponsor .logo[data-v-a0f9ce1c]{display:flex;justify-content:center;padding:0 10px}.theme-mode-light[data-v-a0f9ce1c]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-a0f9ce1c]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-a0f9ce1c]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-a0f9ce1c]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-a0f9ce1c],.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-a0f9ce1c]::-moz-selection,.theme-mode-light code[class*=language-][data-v-a0f9ce1c] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-a0f9ce1c]::selection,.theme-mode-light code[class*=language-][data-v-a0f9ce1c] ::selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]::selection,.theme-mode-light pre[class*=language-][data-v-a0f9ce1c] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-a0f9ce1c],.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-a0f9ce1c],.theme-mode-light pre[class*=language-][data-v-a0f9ce1c]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-a0f9ce1c]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-a0f9ce1c],.theme-mode-light .token.comment[data-v-a0f9ce1c],.theme-mode-light .token.doctype[data-v-a0f9ce1c],.theme-mode-light .token.prolog[data-v-a0f9ce1c]{color:#708090}.theme-mode-light .token.punctuation[data-v-a0f9ce1c]{color:#999}.theme-mode-light .namespace[data-v-a0f9ce1c]{opacity:.7}.theme-mode-light .token.boolean[data-v-a0f9ce1c],.theme-mode-light .token.constant[data-v-a0f9ce1c],.theme-mode-light .token.deleted[data-v-a0f9ce1c],.theme-mode-light .token.number[data-v-a0f9ce1c],.theme-mode-light .token.property[data-v-a0f9ce1c],.theme-mode-light .token.symbol[data-v-a0f9ce1c],.theme-mode-light .token.tag[data-v-a0f9ce1c]{color:#905}.theme-mode-light .token.attr-name[data-v-a0f9ce1c],.theme-mode-light .token.builtin[data-v-a0f9ce1c],.theme-mode-light .token.char[data-v-a0f9ce1c],.theme-mode-light .token.inserted[data-v-a0f9ce1c],.theme-mode-light .token.selector[data-v-a0f9ce1c],.theme-mode-light .token.string[data-v-a0f9ce1c]{color:#690}.theme-mode-light .language-css .token.string[data-v-a0f9ce1c],.theme-mode-light .style .token.string[data-v-a0f9ce1c],.theme-mode-light .token.entity[data-v-a0f9ce1c],.theme-mode-light .token.operator[data-v-a0f9ce1c],.theme-mode-light .token.url[data-v-a0f9ce1c]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-a0f9ce1c],.theme-mode-light .token.attr-value[data-v-a0f9ce1c],.theme-mode-light .token.keyword[data-v-a0f9ce1c]{color:#07a}.theme-mode-light .token.class-name[data-v-a0f9ce1c],.theme-mode-light .token.function[data-v-a0f9ce1c]{color:#dd4a68}.theme-mode-light .token.important[data-v-a0f9ce1c],.theme-mode-light .token.regex[data-v-a0f9ce1c],.theme-mode-light .token.variable[data-v-a0f9ce1c]{color:#e90}.theme-mode-light .token.bold[data-v-a0f9ce1c],.theme-mode-light .token.important[data-v-a0f9ce1c]{font-weight:700}.theme-mode-light .token.italic[data-v-a0f9ce1c]{font-style:italic}.theme-mode-light .token.entity[data-v-a0f9ce1c]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-a0f9ce1c],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-a0f9ce1c]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-a0f9ce1c]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-a0f9ce1c],.theme-mode-dark pre[class*=language-][data-v-a0f9ce1c]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-a0f9ce1c]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-a0f9ce1c],.theme-mode-dark pre[class*=language-][data-v-a0f9ce1c]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-a0f9ce1c]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-a0f9ce1c],.theme-mode-dark .token.cdata[data-v-a0f9ce1c],.theme-mode-dark .token.comment[data-v-a0f9ce1c],.theme-mode-dark .token.doctype[data-v-a0f9ce1c],.theme-mode-dark .token.prolog[data-v-a0f9ce1c]{color:#999}.theme-mode-dark .token.punctuation[data-v-a0f9ce1c]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-a0f9ce1c],.theme-mode-dark .token.deleted[data-v-a0f9ce1c],.theme-mode-dark .token.namespace[data-v-a0f9ce1c],.theme-mode-dark .token.tag[data-v-a0f9ce1c]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-a0f9ce1c]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-a0f9ce1c],.theme-mode-dark .token.function[data-v-a0f9ce1c],.theme-mode-dark .token.number[data-v-a0f9ce1c]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-a0f9ce1c],.theme-mode-dark .token.constant[data-v-a0f9ce1c],.theme-mode-dark .token.property[data-v-a0f9ce1c],.theme-mode-dark .token.symbol[data-v-a0f9ce1c]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-a0f9ce1c],.theme-mode-dark .token.builtin[data-v-a0f9ce1c],.theme-mode-dark .token.important[data-v-a0f9ce1c],.theme-mode-dark .token.keyword[data-v-a0f9ce1c],.theme-mode-dark .token.selector[data-v-a0f9ce1c]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-a0f9ce1c],.theme-mode-dark .token.char[data-v-a0f9ce1c],.theme-mode-dark .token.regex[data-v-a0f9ce1c],.theme-mode-dark .token.string[data-v-a0f9ce1c],.theme-mode-dark .token.variable[data-v-a0f9ce1c]{color:#7ec699}.theme-mode-dark .token.entity[data-v-a0f9ce1c],.theme-mode-dark .token.operator[data-v-a0f9ce1c],.theme-mode-dark .token.url[data-v-a0f9ce1c]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-a0f9ce1c],.theme-mode-dark .style .token.string[data-v-a0f9ce1c],.theme-mode-dark .token.entity[data-v-a0f9ce1c],.theme-mode-dark .token.operator[data-v-a0f9ce1c],.theme-mode-dark .token.url[data-v-a0f9ce1c]{background:none}.theme-mode-dark .token.bold[data-v-a0f9ce1c],.theme-mode-dark .token.important[data-v-a0f9ce1c]{font-weight:700}.theme-mode-dark .token.italic[data-v-a0f9ce1c]{font-style:italic}.theme-mode-dark .token.entity[data-v-a0f9ce1c]{cursor:help}.theme-mode-dark .token.inserted[data-v-a0f9ce1c]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-a0f9ce1c]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-a0f9ce1c]{background-color:transparent}.theme-mode-dark blockquote[data-v-a0f9ce1c]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-a0f9ce1c]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-a0f9ce1c]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-a0f9ce1c]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-a0f9ce1c]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-a0f9ce1c]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-a0f9ce1c]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-a0f9ce1c],.theme-mode-dark .custom-block.note[data-v-a0f9ce1c],.theme-mode-dark .custom-block.tip[data-v-a0f9ce1c],.theme-mode-dark .custom-block.warning[data-v-a0f9ce1c]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-a0f9ce1c],.theme-mode-dark .custom-block.danger[data-v-a0f9ce1c]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-a0f9ce1c]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-a0f9ce1c]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-a0f9ce1c],.theme-mode-dark .nav-item .dropdown-title a[data-v-a0f9ce1c]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-a0f9ce1c],.theme-mode-dark .nav-item>a[data-v-a0f9ce1c]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-a0f9ce1c]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-a0f9ce1c]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-a0f9ce1c]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-a0f9ce1c],.theme-mode-dark .buttons .button .select-box li[data-v-a0f9ce1c]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-a0f9ce1c]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-a0f9ce1c]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-a0f9ce1c],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-a0f9ce1c]:hover,.theme-mode-dark .pagination span[data-v-a0f9ce1c]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-a0f9ce1c]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-a0f9ce1c],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-a0f9ce1c]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-a0f9ce1c]:hover,.theme-mode-dark a.sidebar-link[data-v-a0f9ce1c]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-a0f9ce1c]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-a0f9ce1c],.theme-mode-dark .search-box input[data-v-a0f9ce1c]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-a0f9ce1c]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-a0f9ce1c],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-a0f9ce1c]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-a0f9ce1c],.theme-mode-dark .tabs-component-tab[data-v-a0f9ce1c]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-a0f9ce1c]{color:#b160ea}.theme-mode-read[data-v-a0f9ce1c]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-a0f9ce1c],.theme-mode-read pre[class*=language-][data-v-a0f9ce1c]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-a0f9ce1c]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-a0f9ce1c],.theme-mode-read pre[class*=language-][data-v-a0f9ce1c]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-a0f9ce1c]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-a0f9ce1c],.theme-mode-read .token.cdata[data-v-a0f9ce1c],.theme-mode-read .token.comment[data-v-a0f9ce1c],.theme-mode-read .token.doctype[data-v-a0f9ce1c],.theme-mode-read .token.prolog[data-v-a0f9ce1c]{color:#999}.theme-mode-read .token.punctuation[data-v-a0f9ce1c]{color:#ccc}.theme-mode-read .token.attr-name[data-v-a0f9ce1c],.theme-mode-read .token.deleted[data-v-a0f9ce1c],.theme-mode-read .token.namespace[data-v-a0f9ce1c],.theme-mode-read .token.tag[data-v-a0f9ce1c]{color:#e2777a}.theme-mode-read .token.function-name[data-v-a0f9ce1c]{color:#6196cc}.theme-mode-read .token.boolean[data-v-a0f9ce1c],.theme-mode-read .token.function[data-v-a0f9ce1c],.theme-mode-read .token.number[data-v-a0f9ce1c]{color:#f08d49}.theme-mode-read .token.class-name[data-v-a0f9ce1c],.theme-mode-read .token.constant[data-v-a0f9ce1c],.theme-mode-read .token.property[data-v-a0f9ce1c],.theme-mode-read .token.symbol[data-v-a0f9ce1c]{color:#f8c555}.theme-mode-read .token.atrule[data-v-a0f9ce1c],.theme-mode-read .token.builtin[data-v-a0f9ce1c],.theme-mode-read .token.important[data-v-a0f9ce1c],.theme-mode-read .token.keyword[data-v-a0f9ce1c],.theme-mode-read .token.selector[data-v-a0f9ce1c]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-a0f9ce1c],.theme-mode-read .token.char[data-v-a0f9ce1c],.theme-mode-read .token.regex[data-v-a0f9ce1c],.theme-mode-read .token.string[data-v-a0f9ce1c],.theme-mode-read .token.variable[data-v-a0f9ce1c]{color:#7ec699}.theme-mode-read .token.entity[data-v-a0f9ce1c],.theme-mode-read .token.operator[data-v-a0f9ce1c],.theme-mode-read .token.url[data-v-a0f9ce1c]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-a0f9ce1c],.theme-mode-read .style .token.string[data-v-a0f9ce1c],.theme-mode-read .token.entity[data-v-a0f9ce1c],.theme-mode-read .token.operator[data-v-a0f9ce1c],.theme-mode-read .token.url[data-v-a0f9ce1c]{background:none}.theme-mode-read .token.bold[data-v-a0f9ce1c],.theme-mode-read .token.important[data-v-a0f9ce1c]{font-weight:700}.theme-mode-read .token.italic[data-v-a0f9ce1c]{font-style:italic}.theme-mode-read .token.entity[data-v-a0f9ce1c]{cursor:help}.theme-mode-read .token.inserted[data-v-a0f9ce1c]{color:green}.home-wrapper[data-v-a0f9ce1c]{height:calc(100vh - 58px)}.home-wrapper .banner[data-v-a0f9ce1c]{width:100%;min-height:450px;margin-top:3.6rem;color:#fff;position:relative;overflow:hidden}.home-wrapper .banner .banner-conent[data-v-a0f9ce1c]{max-width:1100px;margin:0 auto;position:relative;z-index:1;overflow:hidden}.home-wrapper .banner .banner-conent .hero[data-v-a0f9ce1c]{text-align:center;margin-top:3rem}.home-wrapper .banner .banner-conent .hero img[data-v-a0f9ce1c]{max-width:100%;max-height:160px;display:block;margin:2rem auto 1.5rem}.home-wrapper .banner .banner-conent .hero h1[data-v-a0f9ce1c]{margin:0;font-size:2.8rem}.home-wrapper .banner .banner-conent .hero .action[data-v-a0f9ce1c],.home-wrapper .banner .banner-conent .hero .description[data-v-a0f9ce1c]{margin:1.5rem auto}.home-wrapper .banner .banner-conent .hero .description[data-v-a0f9ce1c]{max-width:40rem;font-size:1.1rem;line-height:1.3;opacity:.9}.home-wrapper .banner .banner-conent .hero .action-button[data-v-a0f9ce1c]{display:inline-block;font-size:1.2rem;background-color:#426feb;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out;box-sizing:border-box;border-bottom:1px solid #275ae8;color:#fff}.home-wrapper .banner .banner-conent .hero .action-button[data-v-a0f9ce1c]:hover{background-color:#557ded}.home-wrapper .banner .banner-conent .hero .preview-button[data-v-a0f9ce1c]{display:inline-block;font-size:1.2rem;padding:.68rem 1.6rem;border-radius:4px;margin-left:.6rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,color .15s ease-in-out;box-sizing:border-box;border:2px solid #275ae8;color:var(--previewColor)}.home-wrapper .banner .banner-conent .hero .preview-button[data-v-a0f9ce1c]:hover{color:#fff;background-color:#426feb}.home-wrapper .banner .banner-conent .hero .preview-button[data-v-a0f9ce1c]:hover .icon.outbound{color:#fff!important}.home-wrapper .banner .banner-conent .features[data-v-a0f9ce1c]{padding:1.6rem 0;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home-wrapper .banner .banner-conent .feature[data-v-a0f9ce1c]{flex-grow:1;flex-basis:30%;max-width:30%;text-align:center}.home-wrapper .banner .banner-conent .feature a[data-v-a0f9ce1c]{color:inherit}.home-wrapper .banner .banner-conent .feature a .feature-img[data-v-a0f9ce1c]{width:10rem;height:10rem;animation:heart-a0f9ce1c 1.2s ease-in-out 0s infinite alternate;animation-play-state:paused}.home-wrapper .banner .banner-conent .feature a h2[data-v-a0f9ce1c]{font-weight:500;font-size:1.2rem;border-bottom:none;padding-bottom:0}.home-wrapper .banner .banner-conent .feature a p[data-v-a0f9ce1c]{opacity:.8;padding:0 .8rem;font-size:.94rem}.home-wrapper .banner .banner-conent .feature:hover .feature-img[data-v-a0f9ce1c]{animation-play-state:running}.home-wrapper .banner .banner-conent .feature:hover h2[data-v-a0f9ce1c],.home-wrapper .banner .banner-conent .feature:hover p[data-v-a0f9ce1c]{color:#426feb}.home-wrapper .banner .slide-banner .banner-wrapper[data-v-a0f9ce1c]{position:relative}.home-wrapper .banner .slide-banner .slide-banner-scroll[data-v-a0f9ce1c]{min-height:1px;overflow:hidden}.home-wrapper .banner .slide-banner .slide-banner-wrapper[data-v-a0f9ce1c]{height:300px}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item[data-v-a0f9ce1c]{display:inline-block;height:300px;width:100%;text-align:center}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a[data-v-a0f9ce1c]{color:inherit}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a .feature-img[data-v-a0f9ce1c]{width:10rem;height:10rem}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a h2[data-v-a0f9ce1c]{font-size:1.1rem;font-weight:500;border-bottom:none;padding-bottom:0}.home-wrapper .banner .slide-banner .slide-banner-wrapper .slide-item a p[data-v-a0f9ce1c]{opacity:.8;padding:0 .8rem}.home-wrapper .banner .slide-banner .docs-wrapper[data-v-a0f9ce1c]{position:absolute;bottom:25px;left:50%;transform:translateX(-50%)}.home-wrapper .banner .slide-banner .docs-wrapper .doc[data-v-a0f9ce1c]{display:inline-block;margin:0 4px;width:8px;height:8px;border-radius:50%;background:var(--textColor);opacity:.9}.home-wrapper .banner .slide-banner .docs-wrapper .doc.active[data-v-a0f9ce1c]{opacity:.5}.home-wrapper .banner.hide-banner[data-v-a0f9ce1c]{display:none}.home-wrapper .banner.hide-banner+.main-wrapper[data-v-a0f9ce1c]{margin-top:4.5rem}.home-wrapper .main-wrapper[data-v-a0f9ce1c]{margin-top:2rem}.home-wrapper .main-wrapper .main-left .card-box[data-v-a0f9ce1c]{margin-bottom:.9rem}.home-wrapper .main-wrapper .main-left .pagination[data-v-a0f9ce1c]{margin-bottom:4rem}.home-wrapper .main-wrapper .main-left .theme-vdoing-content[data-v-a0f9ce1c]{padding:0 2rem;overflow:hidden}.home-wrapper .main-wrapper .main-left .theme-vdoing-content[data-v-a0f9ce1c]>:first-child{padding-top:2rem}.home-wrapper .main-wrapper .main-left .theme-vdoing-content[data-v-a0f9ce1c]>:last-child{padding-bottom:2rem}.home-wrapper .main-wrapper .main-right .custom-html-box[data-v-a0f9ce1c]{padding:0;overflow:hidden}@media (max-width:1025px){.home-wrapper .banner .banner-conent .hero h1[data-v-a0f9ce1c]{font-size:2.5rem}.home-wrapper .banner .banner-conent .hero .description[data-v-a0f9ce1c]{font-size:1rem}.home-wrapper .banner .banner-conent .feature a h2[data-v-a0f9ce1c]{font-size:1.1rem}.home-wrapper .banner .banner-conent .feature a .feature-img[data-v-a0f9ce1c]{width:9rem;height:9rem}}@media (max-width:719px){.home-wrapper .banner .banner-conent .features[data-v-a0f9ce1c]{display:none!important}}@media (max-width:419px){.home-wrapper .banner-conent[data-v-a0f9ce1c]{padding-left:1.5rem;padding-right:1.5rem}.home-wrapper .banner-conent .hero img[data-v-a0f9ce1c]{max-height:210px;margin:2rem auto 1.2rem}.home-wrapper .banner-conent .hero h1[data-v-a0f9ce1c]{font-size:2rem}.home-wrapper .banner-conent .hero .action[data-v-a0f9ce1c],.home-wrapper .banner-conent .hero .description[data-v-a0f9ce1c],.home-wrapper .banner-conent .hero h1[data-v-a0f9ce1c]{margin:1.2rem auto}.home-wrapper .banner-conent .hero .description[data-v-a0f9ce1c]{font-size:1.2rem}.home-wrapper .banner-conent .hero .action-button[data-v-a0f9ce1c]{font-size:1rem;padding:.6rem 1.2rem}.home-wrapper .banner-conent .feature h2[data-v-a0f9ce1c]{font-size:1.25rem}}@keyframes heart-a0f9ce1c{0%{transform:translate(0)}to{transform:translateY(8px)}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:var(--textColor);display:inline-block;border:1px solid var(--borderColor,#ccc);border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:width .2s ease;background:url(/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#426feb}.search-box .suggestions{background:var(--mainBg,#fff);width:20rem;position:absolute;top:1.5rem;border:1px solid var(--borderColor,#ccc);border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:var(--textColor);opacity:.75}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused,.search-box .suggestion:hover{background-color:hsla(0,0%,58.8%,.2)}.search-box .suggestion.focused a{color:#426feb}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}@media (max-width:719px){.sidebar-button{display:block}}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (min-width:720px){.sidebar-button{width:40px;height:40px;display:inline-block;position:fixed;left:0;top:4.6rem;text-align:center;line-height:44px;margin:5px 8px;color:#888;border-radius:50%;padding:0;transition:all .2s}.sidebar-button:hover{background:#426feb;color:#fff;box-shadow:0 0 6px #426feb}.sidebar-button .icon{display:inline;width:1rem;height:1rem}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block;font-size:.9rem;font-family:inherit;cursor:inherit;padding:inherit;line-height:1.4rem;background:transparent;border:none;font-weight:500;color:var(--textColor)}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid var(--borderColor);padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#426feb}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #426feb;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .dropdown-title{font-weight:600;font-size:inherit}.dropdown-wrapper .dropdown-title:hover{color:#426feb}.dropdown-wrapper .dropdown-title .link-title{display:none}.dropdown-wrapper .dropdown-title .title{display:inline-block!important}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper.open .nav-dropdown,.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper.open:blur{display:none}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:var(--mainBg);padding:.6rem 0;border-bottom-color:var(--borderColor);border:1px solid var(--borderColor);text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}.nav-item .dropdown-title a.router-link-active,.nav-item .dropdown-title a:hover{margin-bottom:-2px;border-bottom:2px solid #517bed}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#426feb}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:959px){.nav-links .nav-item{margin-left:1.2rem}}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:var(--textColor)}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #517bed}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem;transition:transform .3s;background-image:radial-gradient(transparent 1px,var(--blurBg) 0);background-size:4px 4px;backdrop-filter:saturate(50%) blur(4px);-webkit-backdrop-filter:saturate(50%) blur(4px)}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:1.8rem;min-width:1.8rem;vertical-align:top}.navbar .site-name{font-size:1rem;font-weight:600;color:var(--textColor);position:relative}.navbar .links{box-sizing:border-box;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:1.2px;display:flex;padding:.5rem;background:var(--blurBg);box-shadow:-15px 0 5px 0 var(--blurBg)}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}.hide-navbar .navbar{transform:translateY(-100%)}@media (max-width:959px){.navbar .site-name{display:none}}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}.navbar .site-name{width:calc(100vw - 9.4rem);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}.page-edit{max-width:860px;padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block;float:left;margin:0 2rem .5rem 0}.page-edit .edit-link a{margin-right:.25rem}.page-edit .tags{float:left}.page-edit .tags a{margin:0 .8rem .5rem 0;display:inline-block;color:var(--textLightenColor);padding:.2rem .7rem;font-size:.9em;background-color:hsla(0,0%,50.2%,.08);border-radius:3px;opacity:.8}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:var(--textColor);opacity:.8}.page-edit .last-updated .time{font-weight:400;color:#aaa}@media (max-width:719px){.page-edit .edit-link,.page-edit .tags{margin-bottom:.5rem}.page-edit .last-updated{width:100%;font-size:.8em;text-align:left}}.page-nav{max-width:860px;padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid var(--borderColor);padding-top:1rem;overflow:auto}.page-nav .next{float:right}.page-nav-centre-wrap .page-nav-centre{position:fixed;top:50%;width:80px;height:70px;margin-top:-35px;outline:0;transition:all .2s;border-radius:3px;opacity:.55;z-index:99}@media (max-width:1340px){.page-nav-centre-wrap .page-nav-centre{width:50px}}@media (max-width:960px){.page-nav-centre-wrap .page-nav-centre{display:none}}.page-nav-centre-wrap .page-nav-centre:hover{background:hsla(0,0%,60%,.15);opacity:1}.page-nav-centre-wrap .page-nav-centre:hover .tooltip{display:block}.page-nav-centre-wrap .page-nav-centre:before{content:"";display:block;width:10px;height:10px;border-top:2px solid #999;border-right:2px solid #999;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.page-nav-centre-wrap .page-nav-centre .tooltip{display:none;background:rgba(0,0,0,.5);color:#fff;padding:4px 8px;font-size:13px;border-radius:3px;position:fixed;max-width:200px;z-index:99}.page-nav-centre-wrap .page-nav-centre-prev{left:0}.page-nav-centre-wrap .page-nav-centre-prev:before{transform:rotate(-135deg)}.page-nav-centre-wrap .page-nav-centre-next{right:0}.page-nav-centre-wrap .page-nav-centre-next:before{transform:rotate(45deg)}.sidebar-open .page-nav-centre-wrap .page-nav-centre-prev{left:18rem}.no-sidebar .page-nav-centre-wrap .page-nav-centre-prev{left:0}.theme-mode-light[data-v-51e47508]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-51e47508]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-51e47508]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-51e47508]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-51e47508],.theme-mode-light pre[class*=language-][data-v-51e47508]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-51e47508]::-moz-selection,.theme-mode-light code[class*=language-][data-v-51e47508] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-51e47508]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-51e47508] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-51e47508]::selection,.theme-mode-light code[class*=language-][data-v-51e47508] ::selection,.theme-mode-light pre[class*=language-][data-v-51e47508]::selection,.theme-mode-light pre[class*=language-][data-v-51e47508] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-51e47508],.theme-mode-light pre[class*=language-][data-v-51e47508]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-51e47508]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-51e47508],.theme-mode-light pre[class*=language-][data-v-51e47508]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-51e47508]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-51e47508],.theme-mode-light .token.comment[data-v-51e47508],.theme-mode-light .token.doctype[data-v-51e47508],.theme-mode-light .token.prolog[data-v-51e47508]{color:#708090}.theme-mode-light .token.punctuation[data-v-51e47508]{color:#999}.theme-mode-light .namespace[data-v-51e47508]{opacity:.7}.theme-mode-light .token.boolean[data-v-51e47508],.theme-mode-light .token.constant[data-v-51e47508],.theme-mode-light .token.deleted[data-v-51e47508],.theme-mode-light .token.number[data-v-51e47508],.theme-mode-light .token.property[data-v-51e47508],.theme-mode-light .token.symbol[data-v-51e47508],.theme-mode-light .token.tag[data-v-51e47508]{color:#905}.theme-mode-light .token.attr-name[data-v-51e47508],.theme-mode-light .token.builtin[data-v-51e47508],.theme-mode-light .token.char[data-v-51e47508],.theme-mode-light .token.inserted[data-v-51e47508],.theme-mode-light .token.selector[data-v-51e47508],.theme-mode-light .token.string[data-v-51e47508]{color:#690}.theme-mode-light .language-css .token.string[data-v-51e47508],.theme-mode-light .style .token.string[data-v-51e47508],.theme-mode-light .token.entity[data-v-51e47508],.theme-mode-light .token.operator[data-v-51e47508],.theme-mode-light .token.url[data-v-51e47508]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-51e47508],.theme-mode-light .token.attr-value[data-v-51e47508],.theme-mode-light .token.keyword[data-v-51e47508]{color:#07a}.theme-mode-light .token.class-name[data-v-51e47508],.theme-mode-light .token.function[data-v-51e47508]{color:#dd4a68}.theme-mode-light .token.important[data-v-51e47508],.theme-mode-light .token.regex[data-v-51e47508],.theme-mode-light .token.variable[data-v-51e47508]{color:#e90}.theme-mode-light .token.bold[data-v-51e47508],.theme-mode-light .token.important[data-v-51e47508]{font-weight:700}.theme-mode-light .token.italic[data-v-51e47508]{font-style:italic}.theme-mode-light .token.entity[data-v-51e47508]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-51e47508],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-51e47508]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-51e47508]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-51e47508],.theme-mode-dark pre[class*=language-][data-v-51e47508]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-51e47508]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-51e47508],.theme-mode-dark pre[class*=language-][data-v-51e47508]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-51e47508]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-51e47508],.theme-mode-dark .token.cdata[data-v-51e47508],.theme-mode-dark .token.comment[data-v-51e47508],.theme-mode-dark .token.doctype[data-v-51e47508],.theme-mode-dark .token.prolog[data-v-51e47508]{color:#999}.theme-mode-dark .token.punctuation[data-v-51e47508]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-51e47508],.theme-mode-dark .token.deleted[data-v-51e47508],.theme-mode-dark .token.namespace[data-v-51e47508],.theme-mode-dark .token.tag[data-v-51e47508]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-51e47508]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-51e47508],.theme-mode-dark .token.function[data-v-51e47508],.theme-mode-dark .token.number[data-v-51e47508]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-51e47508],.theme-mode-dark .token.constant[data-v-51e47508],.theme-mode-dark .token.property[data-v-51e47508],.theme-mode-dark .token.symbol[data-v-51e47508]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-51e47508],.theme-mode-dark .token.builtin[data-v-51e47508],.theme-mode-dark .token.important[data-v-51e47508],.theme-mode-dark .token.keyword[data-v-51e47508],.theme-mode-dark .token.selector[data-v-51e47508]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-51e47508],.theme-mode-dark .token.char[data-v-51e47508],.theme-mode-dark .token.regex[data-v-51e47508],.theme-mode-dark .token.string[data-v-51e47508],.theme-mode-dark .token.variable[data-v-51e47508]{color:#7ec699}.theme-mode-dark .token.entity[data-v-51e47508],.theme-mode-dark .token.operator[data-v-51e47508],.theme-mode-dark .token.url[data-v-51e47508]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-51e47508],.theme-mode-dark .style .token.string[data-v-51e47508],.theme-mode-dark .token.entity[data-v-51e47508],.theme-mode-dark .token.operator[data-v-51e47508],.theme-mode-dark .token.url[data-v-51e47508]{background:none}.theme-mode-dark .token.bold[data-v-51e47508],.theme-mode-dark .token.important[data-v-51e47508]{font-weight:700}.theme-mode-dark .token.italic[data-v-51e47508]{font-style:italic}.theme-mode-dark .token.entity[data-v-51e47508]{cursor:help}.theme-mode-dark .token.inserted[data-v-51e47508]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-51e47508]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-51e47508]{background-color:transparent}.theme-mode-dark blockquote[data-v-51e47508]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-51e47508]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-51e47508]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-51e47508]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-51e47508]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-51e47508]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-51e47508]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-51e47508],.theme-mode-dark .custom-block.note[data-v-51e47508],.theme-mode-dark .custom-block.tip[data-v-51e47508],.theme-mode-dark .custom-block.warning[data-v-51e47508]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-51e47508],.theme-mode-dark .custom-block.danger[data-v-51e47508]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-51e47508]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-51e47508]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-51e47508],.theme-mode-dark .nav-item .dropdown-title a[data-v-51e47508]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-51e47508],.theme-mode-dark .nav-item>a[data-v-51e47508]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-51e47508]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-51e47508]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-51e47508]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-51e47508],.theme-mode-dark .buttons .button .select-box li[data-v-51e47508]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-51e47508]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-51e47508]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-51e47508],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-51e47508]:hover,.theme-mode-dark .pagination span[data-v-51e47508]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-51e47508]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-51e47508],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-51e47508]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-51e47508]:hover,.theme-mode-dark a.sidebar-link[data-v-51e47508]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-51e47508]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-51e47508],.theme-mode-dark .search-box input[data-v-51e47508]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-51e47508]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-51e47508],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-51e47508]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-51e47508],.theme-mode-dark .tabs-component-tab[data-v-51e47508]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-51e47508]{color:#b160ea}.theme-mode-read[data-v-51e47508]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-51e47508],.theme-mode-read pre[class*=language-][data-v-51e47508]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-51e47508]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-51e47508],.theme-mode-read pre[class*=language-][data-v-51e47508]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-51e47508]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-51e47508],.theme-mode-read .token.cdata[data-v-51e47508],.theme-mode-read .token.comment[data-v-51e47508],.theme-mode-read .token.doctype[data-v-51e47508],.theme-mode-read .token.prolog[data-v-51e47508]{color:#999}.theme-mode-read .token.punctuation[data-v-51e47508]{color:#ccc}.theme-mode-read .token.attr-name[data-v-51e47508],.theme-mode-read .token.deleted[data-v-51e47508],.theme-mode-read .token.namespace[data-v-51e47508],.theme-mode-read .token.tag[data-v-51e47508]{color:#e2777a}.theme-mode-read .token.function-name[data-v-51e47508]{color:#6196cc}.theme-mode-read .token.boolean[data-v-51e47508],.theme-mode-read .token.function[data-v-51e47508],.theme-mode-read .token.number[data-v-51e47508]{color:#f08d49}.theme-mode-read .token.class-name[data-v-51e47508],.theme-mode-read .token.constant[data-v-51e47508],.theme-mode-read .token.property[data-v-51e47508],.theme-mode-read .token.symbol[data-v-51e47508]{color:#f8c555}.theme-mode-read .token.atrule[data-v-51e47508],.theme-mode-read .token.builtin[data-v-51e47508],.theme-mode-read .token.important[data-v-51e47508],.theme-mode-read .token.keyword[data-v-51e47508],.theme-mode-read .token.selector[data-v-51e47508]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-51e47508],.theme-mode-read .token.char[data-v-51e47508],.theme-mode-read .token.regex[data-v-51e47508],.theme-mode-read .token.string[data-v-51e47508],.theme-mode-read .token.variable[data-v-51e47508]{color:#7ec699}.theme-mode-read .token.entity[data-v-51e47508],.theme-mode-read .token.operator[data-v-51e47508],.theme-mode-read .token.url[data-v-51e47508]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-51e47508],.theme-mode-read .style .token.string[data-v-51e47508],.theme-mode-read .token.entity[data-v-51e47508],.theme-mode-read .token.operator[data-v-51e47508],.theme-mode-read .token.url[data-v-51e47508]{background:none}.theme-mode-read .token.bold[data-v-51e47508],.theme-mode-read .token.important[data-v-51e47508]{font-weight:700}.theme-mode-read .token.italic[data-v-51e47508]{font-style:italic}.theme-mode-read .token.entity[data-v-51e47508]{cursor:help}.theme-mode-read .token.inserted[data-v-51e47508]{color:green}.articleInfo-wrap[data-v-51e47508]{max-width:860px}.theme-style-line .articleInfo-wrap .articleInfo[data-v-51e47508]{padding-top:.5rem}.articleInfo-wrap[data-v-51e47508]{position:relative;z-index:1;color:#888}.articleInfo-wrap .articleInfo[data-v-51e47508]{overflow:hidden;font-size:.92rem}.articleInfo-wrap .articleInfo .breadcrumbs[data-v-51e47508]{margin:0;padding:0;overflow:hidden;display:inline-block;line-height:2rem}@media (max-width:960px){.articleInfo-wrap .articleInfo .breadcrumbs[data-v-51e47508]{width:100%}}.articleInfo-wrap .articleInfo .breadcrumbs li[data-v-51e47508]{list-style-type:none;float:left;padding-right:5px}.articleInfo-wrap .articleInfo .breadcrumbs li[data-v-51e47508]:after{content:"/";margin-left:5px;color:#999}.articleInfo-wrap .articleInfo .breadcrumbs li[data-v-51e47508]:last-child:after{content:""}.articleInfo-wrap .articleInfo .breadcrumbs li a[data-v-51e47508]{color:#888}.articleInfo-wrap .articleInfo .breadcrumbs li a[data-v-51e47508]:before{font-size:.92rem}.articleInfo-wrap .articleInfo .breadcrumbs li a[data-v-51e47508]:hover{color:#426feb}.articleInfo-wrap .articleInfo .breadcrumbs li .icon-home[data-v-51e47508]{text-decoration:none}.articleInfo-wrap .articleInfo .info[data-v-51e47508]{float:right;line-height:32px}@media (max-width:960px){.articleInfo-wrap .articleInfo .info[data-v-51e47508]{float:left}}.articleInfo-wrap .articleInfo .info div[data-v-51e47508]{float:left;margin-left:20px;font-size:.8rem}@media (max-width:960px){.articleInfo-wrap .articleInfo .info div[data-v-51e47508]{margin:0 20px 0 0}}.articleInfo-wrap .articleInfo .info div[data-v-51e47508]:before{margin-right:3px}.articleInfo-wrap .articleInfo .info div a[data-v-51e47508]{color:#888}.articleInfo-wrap .articleInfo .info div a[data-v-51e47508]:hover{text-decoration:none}.articleInfo-wrap .articleInfo .info div a.beLink[data-v-51e47508]:hover{color:#426feb;text-decoration:underline}.theme-mode-light[data-v-c1edc922]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-c1edc922]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-c1edc922]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-c1edc922]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-c1edc922],.theme-mode-light pre[class*=language-][data-v-c1edc922]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-c1edc922]::-moz-selection,.theme-mode-light code[class*=language-][data-v-c1edc922] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-c1edc922]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-c1edc922] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-c1edc922]::selection,.theme-mode-light code[class*=language-][data-v-c1edc922] ::selection,.theme-mode-light pre[class*=language-][data-v-c1edc922]::selection,.theme-mode-light pre[class*=language-][data-v-c1edc922] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-c1edc922],.theme-mode-light pre[class*=language-][data-v-c1edc922]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-c1edc922]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-c1edc922],.theme-mode-light pre[class*=language-][data-v-c1edc922]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-c1edc922]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-c1edc922],.theme-mode-light .token.comment[data-v-c1edc922],.theme-mode-light .token.doctype[data-v-c1edc922],.theme-mode-light .token.prolog[data-v-c1edc922]{color:#708090}.theme-mode-light .token.punctuation[data-v-c1edc922]{color:#999}.theme-mode-light .namespace[data-v-c1edc922]{opacity:.7}.theme-mode-light .token.boolean[data-v-c1edc922],.theme-mode-light .token.constant[data-v-c1edc922],.theme-mode-light .token.deleted[data-v-c1edc922],.theme-mode-light .token.number[data-v-c1edc922],.theme-mode-light .token.property[data-v-c1edc922],.theme-mode-light .token.symbol[data-v-c1edc922],.theme-mode-light .token.tag[data-v-c1edc922]{color:#905}.theme-mode-light .token.attr-name[data-v-c1edc922],.theme-mode-light .token.builtin[data-v-c1edc922],.theme-mode-light .token.char[data-v-c1edc922],.theme-mode-light .token.inserted[data-v-c1edc922],.theme-mode-light .token.selector[data-v-c1edc922],.theme-mode-light .token.string[data-v-c1edc922]{color:#690}.theme-mode-light .language-css .token.string[data-v-c1edc922],.theme-mode-light .style .token.string[data-v-c1edc922],.theme-mode-light .token.entity[data-v-c1edc922],.theme-mode-light .token.operator[data-v-c1edc922],.theme-mode-light .token.url[data-v-c1edc922]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-c1edc922],.theme-mode-light .token.attr-value[data-v-c1edc922],.theme-mode-light .token.keyword[data-v-c1edc922]{color:#07a}.theme-mode-light .token.class-name[data-v-c1edc922],.theme-mode-light .token.function[data-v-c1edc922]{color:#dd4a68}.theme-mode-light .token.important[data-v-c1edc922],.theme-mode-light .token.regex[data-v-c1edc922],.theme-mode-light .token.variable[data-v-c1edc922]{color:#e90}.theme-mode-light .token.bold[data-v-c1edc922],.theme-mode-light .token.important[data-v-c1edc922]{font-weight:700}.theme-mode-light .token.italic[data-v-c1edc922]{font-style:italic}.theme-mode-light .token.entity[data-v-c1edc922]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-c1edc922],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-c1edc922]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-c1edc922]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-c1edc922],.theme-mode-dark pre[class*=language-][data-v-c1edc922]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-c1edc922]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-c1edc922],.theme-mode-dark pre[class*=language-][data-v-c1edc922]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-c1edc922]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-c1edc922],.theme-mode-dark .token.cdata[data-v-c1edc922],.theme-mode-dark .token.comment[data-v-c1edc922],.theme-mode-dark .token.doctype[data-v-c1edc922],.theme-mode-dark .token.prolog[data-v-c1edc922]{color:#999}.theme-mode-dark .token.punctuation[data-v-c1edc922]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-c1edc922],.theme-mode-dark .token.deleted[data-v-c1edc922],.theme-mode-dark .token.namespace[data-v-c1edc922],.theme-mode-dark .token.tag[data-v-c1edc922]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-c1edc922]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-c1edc922],.theme-mode-dark .token.function[data-v-c1edc922],.theme-mode-dark .token.number[data-v-c1edc922]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-c1edc922],.theme-mode-dark .token.constant[data-v-c1edc922],.theme-mode-dark .token.property[data-v-c1edc922],.theme-mode-dark .token.symbol[data-v-c1edc922]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-c1edc922],.theme-mode-dark .token.builtin[data-v-c1edc922],.theme-mode-dark .token.important[data-v-c1edc922],.theme-mode-dark .token.keyword[data-v-c1edc922],.theme-mode-dark .token.selector[data-v-c1edc922]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-c1edc922],.theme-mode-dark .token.char[data-v-c1edc922],.theme-mode-dark .token.regex[data-v-c1edc922],.theme-mode-dark .token.string[data-v-c1edc922],.theme-mode-dark .token.variable[data-v-c1edc922]{color:#7ec699}.theme-mode-dark .token.entity[data-v-c1edc922],.theme-mode-dark .token.operator[data-v-c1edc922],.theme-mode-dark .token.url[data-v-c1edc922]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-c1edc922],.theme-mode-dark .style .token.string[data-v-c1edc922],.theme-mode-dark .token.entity[data-v-c1edc922],.theme-mode-dark .token.operator[data-v-c1edc922],.theme-mode-dark .token.url[data-v-c1edc922]{background:none}.theme-mode-dark .token.bold[data-v-c1edc922],.theme-mode-dark .token.important[data-v-c1edc922]{font-weight:700}.theme-mode-dark .token.italic[data-v-c1edc922]{font-style:italic}.theme-mode-dark .token.entity[data-v-c1edc922]{cursor:help}.theme-mode-dark .token.inserted[data-v-c1edc922]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-c1edc922]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-c1edc922]{background-color:transparent}.theme-mode-dark blockquote[data-v-c1edc922]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-c1edc922]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-c1edc922]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-c1edc922]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-c1edc922]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-c1edc922]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-c1edc922]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-c1edc922],.theme-mode-dark .custom-block.note[data-v-c1edc922],.theme-mode-dark .custom-block.tip[data-v-c1edc922],.theme-mode-dark .custom-block.warning[data-v-c1edc922]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-c1edc922],.theme-mode-dark .custom-block.danger[data-v-c1edc922]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-c1edc922]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-c1edc922]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-c1edc922],.theme-mode-dark .nav-item .dropdown-title a[data-v-c1edc922]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-c1edc922],.theme-mode-dark .nav-item>a[data-v-c1edc922]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-c1edc922]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-c1edc922]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-c1edc922]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-c1edc922],.theme-mode-dark .buttons .button .select-box li[data-v-c1edc922]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-c1edc922]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-c1edc922]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-c1edc922],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-c1edc922]:hover,.theme-mode-dark .pagination span[data-v-c1edc922]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-c1edc922]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-c1edc922],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-c1edc922]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-c1edc922]:hover,.theme-mode-dark a.sidebar-link[data-v-c1edc922]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-c1edc922]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-c1edc922],.theme-mode-dark .search-box input[data-v-c1edc922]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-c1edc922]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-c1edc922],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-c1edc922]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-c1edc922],.theme-mode-dark .tabs-component-tab[data-v-c1edc922]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-c1edc922]{color:#b160ea}.theme-mode-read[data-v-c1edc922]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-c1edc922],.theme-mode-read pre[class*=language-][data-v-c1edc922]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-c1edc922]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-c1edc922],.theme-mode-read pre[class*=language-][data-v-c1edc922]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-c1edc922]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-c1edc922],.theme-mode-read .token.cdata[data-v-c1edc922],.theme-mode-read .token.comment[data-v-c1edc922],.theme-mode-read .token.doctype[data-v-c1edc922],.theme-mode-read .token.prolog[data-v-c1edc922]{color:#999}.theme-mode-read .token.punctuation[data-v-c1edc922]{color:#ccc}.theme-mode-read .token.attr-name[data-v-c1edc922],.theme-mode-read .token.deleted[data-v-c1edc922],.theme-mode-read .token.namespace[data-v-c1edc922],.theme-mode-read .token.tag[data-v-c1edc922]{color:#e2777a}.theme-mode-read .token.function-name[data-v-c1edc922]{color:#6196cc}.theme-mode-read .token.boolean[data-v-c1edc922],.theme-mode-read .token.function[data-v-c1edc922],.theme-mode-read .token.number[data-v-c1edc922]{color:#f08d49}.theme-mode-read .token.class-name[data-v-c1edc922],.theme-mode-read .token.constant[data-v-c1edc922],.theme-mode-read .token.property[data-v-c1edc922],.theme-mode-read .token.symbol[data-v-c1edc922]{color:#f8c555}.theme-mode-read .token.atrule[data-v-c1edc922],.theme-mode-read .token.builtin[data-v-c1edc922],.theme-mode-read .token.important[data-v-c1edc922],.theme-mode-read .token.keyword[data-v-c1edc922],.theme-mode-read .token.selector[data-v-c1edc922]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-c1edc922],.theme-mode-read .token.char[data-v-c1edc922],.theme-mode-read .token.regex[data-v-c1edc922],.theme-mode-read .token.string[data-v-c1edc922],.theme-mode-read .token.variable[data-v-c1edc922]{color:#7ec699}.theme-mode-read .token.entity[data-v-c1edc922],.theme-mode-read .token.operator[data-v-c1edc922],.theme-mode-read .token.url[data-v-c1edc922]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-c1edc922],.theme-mode-read .style .token.string[data-v-c1edc922],.theme-mode-read .token.entity[data-v-c1edc922],.theme-mode-read .token.operator[data-v-c1edc922],.theme-mode-read .token.url[data-v-c1edc922]{background:none}.theme-mode-read .token.bold[data-v-c1edc922],.theme-mode-read .token.important[data-v-c1edc922]{font-weight:700}.theme-mode-read .token.italic[data-v-c1edc922]{font-style:italic}.theme-mode-read .token.entity[data-v-c1edc922]{cursor:help}.theme-mode-read .token.inserted[data-v-c1edc922]{color:green}.theme-vdoing-content[data-v-c1edc922]{margin-bottom:3.6rem}.title-tag[data-v-c1edc922]{border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.05rem);display:inline-block}dd[data-v-c1edc922],dl[data-v-c1edc922]{margin:0}.column-wrapper[data-v-c1edc922]{margin-top:1rem;display:flex;padding-bottom:2rem;border-bottom:1px solid var(--borderColor)}.column-wrapper img[data-v-c1edc922]{width:80px;height:80px;border-radius:2px;margin-right:1rem}.column-wrapper .column-info .title[data-v-c1edc922]{font-size:1.6rem}.column-wrapper .column-info .description[data-v-c1edc922]{color:var(--textColor);opacity:.8;margin:.5rem 0}.catalogue-wrapper .catalogue-title[data-v-c1edc922]{font-size:1.45rem;margin:2rem 0}.catalogue-wrapper .catalogue-content dl[data-v-c1edc922]{margin-bottom:1.8rem}.catalogue-wrapper .catalogue-content dl.inline[data-v-c1edc922]{display:inline-block;width:50%;margin-bottom:1rem}@media (max-width:419px){.catalogue-wrapper .catalogue-content dl.inline[data-v-c1edc922]{width:100%}}.catalogue-wrapper .catalogue-content dl.inline a[data-v-c1edc922]{width:100%}.catalogue-wrapper .catalogue-content dl:not(.inline) dt[data-v-c1edc922]{margin-top:-3.6rem;padding-top:3.6rem}.catalogue-wrapper .catalogue-content dl dt[data-v-c1edc922]{font-size:1.1rem}.catalogue-wrapper .catalogue-content dl dt:hover .header-anchor[data-v-c1edc922]{opacity:1}.catalogue-wrapper .catalogue-content dl dd[data-v-c1edc922]{margin-top:.7rem;margin-left:1rem}.catalogue-wrapper .catalogue-content dl dd a[data-v-c1edc922]:not(.header-anchor){margin-bottom:.5rem;display:inline-block;width:50%}.catalogue-wrapper .catalogue-content dl dd a[data-v-c1edc922]:not(.header-anchor):hover{color:#ff5722;text-decoration:none}@media (max-width:720px){.catalogue-wrapper .catalogue-content dl dd a[data-v-c1edc922]:not(.header-anchor){width:100%}}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap[data-v-c1edc922]{margin:5px 0 8px;font-size:.95rem}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap>a[data-v-c1edc922]{padding-left:1rem;box-sizing:border-box}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap .sub-title[data-v-c1edc922]{margin-top:-3.6rem;padding-top:3.6rem;margin-bottom:6px;font-size:1rem}.catalogue-wrapper .catalogue-content dl .sub-cat-wrap:hover .header-anchor[data-v-c1edc922]{opacity:1}#special-sponsor[data-v-52e54980]{padding-bottom:12px}#special-sponsor-container[data-v-52e54980]{display:flex;justify-content:center;align-items:center}#special-sponsor h3[data-v-52e54980]{font-size:17px}#special-sponsor .logo[data-v-52e54980]{display:flex;justify-content:center;padding:0 10px}.theme-style-line .right-menu-wrapper .right-menu-margin{border-left:1px solid var(--borderColor)}.right-menu-wrapper{width:230px;float:right;margin-right:-285px;position:sticky;top:0;font-size:.8rem}.right-menu-wrapper .right-menu-margin{margin-top:4.6rem;border-radius:3px;overflow:hidden}.right-menu-wrapper .right-menu-title{padding:10px 15px 0;background:var(--mainBg);font-size:1.3rem}.right-menu-wrapper .right-menu-title:after{content:"";display:block;width:100%;height:1px;background:var(--borderColor);margin-top:10px}.right-menu-wrapper .right-menu-content{max-height:80vh;position:relative;overflow:hidden;background:var(--mainBg);padding:4px 3px 4px 0}.right-menu-wrapper .right-menu-content::-webkit-scrollbar{width:3px;height:3px}.right-menu-wrapper .right-menu-content::-webkit-scrollbar-track-piece{background:none}.right-menu-wrapper .right-menu-content::-webkit-scrollbar-thumb:vertical{background-color:hsla(0,0%,49%,.3)}.right-menu-wrapper .right-menu-content:hover{overflow-y:auto;padding-right:0}.right-menu-wrapper .right-menu-content .right-menu-item{padding:4px 15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative}.right-menu-wrapper .right-menu-content .right-menu-item.level2{font-size:.8rem}.right-menu-wrapper .right-menu-content .right-menu-item.level3{padding-left:27px}.right-menu-wrapper .right-menu-content .right-menu-item.level4{padding-left:37px}.right-menu-wrapper .right-menu-content .right-menu-item.level5{padding-left:47px}.right-menu-wrapper .right-menu-content .right-menu-item.level6{padding-left:57px}.right-menu-wrapper .right-menu-content .right-menu-item.active:before{content:"";position:absolute;top:5px;left:0;width:3px;height:14px;background:#426feb;border-radius:0 4px 4px 0}.right-menu-wrapper .right-menu-content .right-menu-item.active a{color:#426feb;opacity:1}.right-menu-wrapper .right-menu-content .right-menu-item a{color:var(--textColor);opacity:.75;display:inline-block;width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.right-menu-wrapper .right-menu-content .right-menu-item a:hover{opacity:1}.right-menu-wrapper .right-menu-content:hover{color:#426feb}.page>*{max-width:860px;margin:0 auto;padding:1rem 2.5rem 2rem}.page>:not(.footer){background:var(--mainBg);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);margin-bottom:1rem}@media (min-width:940px){.page>:not(.footer){border-radius:2px}}@media (max-width:959px){.page>*{padding:1rem 2rem}}@media (max-width:419px){.page>*{padding:1rem 1.5rem}}.page{padding-bottom:2rem;display:block}@media (max-width:719px){.page{padding-top:3.6rem}}@media (min-width:719px){.page{padding-top:5.1rem}}@media (min-width:719px){.theme-style-line .page{padding-top:3.6rem}}.theme-style-line .page>:not(.footer){box-shadow:0 0}@media (min-width:720px){.theme-style-line .page .placeholder{height:1.2rem}}.theme-vdoing-wrapper .content-wrapper{position:relative}.theme-vdoing-wrapper h1 .title-tag{height:1.5rem;line-height:1.5rem;border:1px solid #ff5722;color:#ff5722;font-size:1rem;padding:0 .4rem;border-radius:.2rem;margin-left:.5rem;transform:translateY(-.25rem);display:inline-block}.theme-vdoing-wrapper h1 img{margin-bottom:-.2rem;margin-right:.2rem;max-width:2.2rem;max-height:2.2rem}.theme-vdoing-wrapper{--linesColor:rgba(50,0,0,0.05)}.theme-vdoing-wrapper.bg-style-1{background-image:linear-gradient(90deg,var(--linesColor) 3%,transparent 0),linear-gradient(0deg,var(--linesColor) 3%,transparent 0);background-position:50%;background-size:20px 20px}.theme-vdoing-wrapper.bg-style-2{background-image:repeating-linear-gradient(0,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:30px 30px}.theme-vdoing-wrapper.bg-style-3{background-image:repeating-linear-gradient(90deg,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:30px 30px}.theme-vdoing-wrapper.bg-style-4{background-image:repeating-linear-gradient(-45deg,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:20px 20px}.theme-vdoing-wrapper.bg-style-5{background-image:repeating-linear-gradient(45deg,var(--linesColor),var(--linesColor) 1px,transparent 0,transparent 50%);background-size:20px 20px}.theme-vdoing-wrapper.bg-style-6{background-image:radial-gradient(var(--linesColor) 1px,transparent 0);background-size:10px 10px}.theme-mode-dark .theme-vdoing-wrapper{--linesColor:hsla(0,0%,49%,0.05)}@media (min-width:720px) and (max-width:1279px){.have-rightmenu .page{padding-right:.8rem!important}}@media (max-width:1279px){.have-rightmenu .right-menu-wrapper{display:none}}@media (min-width:1280px){.have-rightmenu .sidebar .sidebar-sub-headers{display:none}}.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar,.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar-button{display:none}@media (min-width:720px){.theme-container.only-sidebarItem:not(.have-rightmenu) .page{padding-left:.8rem!important}}@media (max-width:719px){.theme-container.only-sidebarItem:not(.have-rightmenu) .page{padding-left:0!important}.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar,.theme-container.only-sidebarItem:not(.have-rightmenu) .sidebar-button{display:block}}@media (min-width:720px) and (max-width:1279px){.theme-container.only-sidebarItem.have-rightmenu .sidebar,.theme-container.only-sidebarItem.have-rightmenu .sidebar-button{display:block}}@media (min-width:1280px){.theme-container.only-sidebarItem.have-rightmenu .sidebar,.theme-container.only-sidebarItem.have-rightmenu .sidebar-button{display:none}}.categories-page .categories-wrapper{position:sticky;top:4.5rem;max-height:calc(100vh - 10rem);min-height:4.2rem}@media (max-width:719px){.categories-page .categories-wrapper{display:none}}.categories-page .categories-wrapper .categories{max-height:calc(100vh - 14rem);min-height:2.2rem;overflow-y:auto;transition:all .2s;position:relative}.categories-page .categories-wrapper .categories a{padding-right:1.8rem}.categories-page .categories-wrapper .categories a span{right:.4rem}.categories-page .categories-wrapper .categories::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.05)}.categories-page .categories-wrapper .categories::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.15)}.categories-page .categories-wrapper .categories:hover::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.1)}.categories-page .categories-wrapper .categories:hover::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.25)}.categories-page .main-left .categories-wrapper{position:relative;top:0;padding:.9rem 1.5rem;margin-bottom:.9rem;max-height:15rem;border-radius:0;display:none}@media (max-width:719px){.categories-page .main-left .categories-wrapper{display:block}}.categories-page .main-left .categories-wrapper .categories{max-height:12.3rem}@media (max-width:719px){.theme-style-line .categories-page .main-left .categories-wrapper{margin-top:-.91rem;margin-bottom:-1px;padding:.9rem .2rem .5rem}}.tags-page .tags-wrapper{position:sticky;top:4.5rem;max-height:calc(100vh - 10rem);min-height:4.2rem}@media (max-width:719px){.tags-page .tags-wrapper{display:none}}.tags-page .tags-wrapper .tags{max-height:calc(100vh - 14rem);min-height:2.2rem;overflow-x:hidden;overflow-y:auto;transition:all .2s}.tags-page .tags-wrapper .tags::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.05)}.tags-page .tags-wrapper .tags::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.15)}.tags-page .tags-wrapper .tags:hover::-webkit-scrollbar-track-piece{background-color:rgba(0,0,0,.1)}.tags-page .tags-wrapper .tags:hover::-webkit-scrollbar-thumb:vertical{background-color:rgba(0,0,0,.25)}.tags-page .main-left .tags-wrapper{position:relative;top:0;padding:.9rem 1.5rem;margin-bottom:.9rem;max-height:15rem;border-radius:0;display:none}@media (max-width:719px){.tags-page .main-left .tags-wrapper{display:block}}.tags-page .main-left .tags-wrapper .tags{max-height:11.5rem}@media (max-width:719px){.theme-style-line .tags-page .main-left .tags-wrapper{margin-top:-.91rem;margin-bottom:-1px}}.archives-page .theme-vdoing-wrapper{max-width:860px;margin:0 auto;padding:1rem 2.5rem 2rem}.archives-page .theme-vdoing-wrapper:not(.footer){background:var(--mainBg);box-shadow:0 1px 2px 0 rgba(0,0,0,.1);margin-bottom:1rem}@media (min-width:940px){.archives-page .theme-vdoing-wrapper:not(.footer){border-radius:2px}}@media (max-width:959px){.archives-page .theme-vdoing-wrapper{padding:1rem 2rem}}@media (max-width:419px){.archives-page .theme-vdoing-wrapper{padding:1rem 1.5rem}}.theme-style-line .archives-page .theme-vdoing-wrapper{box-shadow:0 0}.archives-page .theme-vdoing-wrapper{position:relative}@media (min-width:940px){.archives-page .theme-vdoing-wrapper{margin-top:1.5rem!important}}.archives-page .theme-vdoing-wrapper .count{text-align:right;margin-top:-2.5rem;font-size:.85rem;opacity:.8}.archives-page .theme-vdoing-wrapper li,.archives-page .theme-vdoing-wrapper ul{margin:0;padding:0}.archives-page .theme-vdoing-wrapper ul{margin-top:2rem}.archives-page .theme-vdoing-wrapper li{list-style:none}.archives-page .theme-vdoing-wrapper li.year{position:sticky;top:3.6rem;background:var(--mainBg);z-index:1}.archives-page .theme-vdoing-wrapper li.year:not(:first-child){margin-top:3.5rem}.archives-page .theme-vdoing-wrapper li h2{margin-bottom:.8rem;font-weight:400;padding:.5rem 0}.archives-page .theme-vdoing-wrapper li h2 span{font-size:.85rem;font-weight:300;float:right;margin-top:1rem}.archives-page .theme-vdoing-wrapper li a{display:block;color:var(--textColor);transition:padding .3s;padding:.5rem 2rem;line-height:1.2rem}.archives-page .theme-vdoing-wrapper li a:hover{padding-left:2.5rem;color:#426feb;background:#f9f9f9}@media (max-width:940px){.archives-page .theme-vdoing-wrapper li a{padding:.5rem 1rem;font-weight:400}.archives-page .theme-vdoing-wrapper li a:hover{padding-left:1.5rem}}.archives-page .theme-vdoing-wrapper li a span.date{opacity:.6;font-size:.85rem;font-weight:400;margin-right:.3rem}.archives-page .theme-vdoing-wrapper li a .title-tag{border:1px solid #ff5722;color:#ff5722;font-size:.8rem;padding:0 .35rem;border-radius:.2rem;margin-left:0;transform:translateY(-.05rem);display:inline-block}.archives-page .theme-vdoing-wrapper .loadmore{text-align:center;margin-top:1rem;opacity:.5}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a:hover,.theme-mode-read .archives-page .theme-vdoing-wrapper li a:hover{background:var(--customBlockBg)}.hide-navbar .archives-page .theme-vdoing-wrapper li.year{top:0}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:1.01em;line-height:1.4;font-weight:700;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.98em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:var(--textColor);transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#426feb;border-left-color:#426feb}.sidebar-heading.clickable:hover{color:#426feb}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}.sidebar .sidebar-sub-headers .level4{padding-left:.2rem}.sidebar .sidebar-sub-headers .level5{padding-left:.4rem}.sidebar .sidebar-sub-headers .level6{padding-left:.6rem}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:var(--textColor);border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#426feb}a.sidebar-link.active{font-weight:600;color:#426feb;border-left-color:#426feb}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .pure-video:hover{transition:all .6s;transform:scale(.9)}.sidebar .nav-links{display:none;border-bottom:1px solid var(--borderColor);padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}.sidebar .blogger{display:none;border-bottom:1px solid var(--borderColor)}.sidebar .blogger img{width:60px;height:60px;border-radius:5px;margin:.75rem 1rem}.sidebar .blogger .blogger-info{flex:1}.sidebar .blogger .blogger-info h3{margin:.95rem 0 .7rem;font-size:1.1rem}.sidebar .blogger .blogger-info .icons .iconfont{font-size:1.2rem;padding-right:.6rem;color:#777}.sidebar .sidebar-slot{margin-bottom:-.5rem;font-size:.85rem}.sidebar .sidebar-slot.sidebar-slot-top{padding:1.5rem 1.5rem 0}.sidebar .sidebar-slot.sidebar-slot-bottom{padding:0 1.5rem 1.5rem}@media (max-width:719px){.sidebar .blogger{display:flex}.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}.yellowBorder{border-radius:5px;box-shadow:0 0 15px #ffe089!important}.buttons{position:fixed;right:2rem;bottom:2.5rem;z-index:11}@media (max-width:959px){.buttons{right:1rem;bottom:1.5rem}}.buttons .button{width:2.2rem;height:2.2rem;line-height:2.2rem;border-radius:50%;box-shadow:0 2px 6px rgba(0,0,0,.15);margin-top:.9rem;text-align:center;cursor:pointer;transition:all .5s;background:var(--blurBg)}.buttons .button.hover{background:#426feb;box-shadow:0 0 15px #426feb}.buttons .button.hover:before{color:#fff}@media (any-hover:hover){.buttons .button:hover{background:#426feb;box-shadow:0 0 15px #426feb}.buttons .button:hover:before{color:#fff}}.buttons .button .select-box{margin:0;padding:.8rem 0;position:absolute;bottom:0;right:1.5rem;background:var(--mainBg);border:1px solid var(--borderColor);width:120px;border-radius:6px;box-shadow:0 0 15px hsla(0,0%,100%,.2)}.buttons .button .select-box li{list-style:none;line-height:2rem;font-size:.95rem}.buttons .button .select-box li:hover{color:#426feb}.buttons .button .select-box li.active{background-color:hsla(0,0%,58.8%,.2);color:#426feb}.mode-enter-active,.mode-leave-active{transition:all .3s}.mode-enter,.mode-leave-to{opacity:0;transform:scale(.8)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter,.fade-leave-to{opacity:0}.footer{margin-top:-3.5rem;text-align:center;color:#666;box-sizing:border-box;font-size:.85rem;transition:all .2s ease}.footer .sponsor{padding:8px 20px;display:inline-block;color:#426feb;border-radius:30px;box-sizing:border-box;border:1px solid #426feb}.footer .icons,.footer .sponsor{margin-bottom:16px}.footer .icons .iconfont{padding:0 10px;font-size:1.3rem}.footer a{color:inherit}.footer a:hover{color:#426feb}@media (min-width:720px){.sidebar-open .footer{width:auto;padding-left:19.5rem}}@media (min-width:1520px){.have-rightmenu .footer{padding-right:231.5px}}.no-sidebar .footer{width:auto;padding-left:1.5rem}.body-bg{position:fixed;left:0;top:0;z-index:-999999;height:100vh;width:100vw;transition:background .5s}.theme-mode-light{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-],.theme-mode-light pre[class*=language-]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-]::-moz-selection,.theme-mode-light code[class*=language-] ::-moz-selection,.theme-mode-light pre[class*=language-]::-moz-selection,.theme-mode-light pre[class*=language-] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-]::selection,.theme-mode-light code[class*=language-] ::selection,.theme-mode-light pre[class*=language-]::selection,.theme-mode-light pre[class*=language-] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-],.theme-mode-light pre[class*=language-]{text-shadow:none}}.theme-mode-light pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-],.theme-mode-light pre[class*=language-]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata,.theme-mode-light .token.comment,.theme-mode-light .token.doctype,.theme-mode-light .token.prolog{color:#708090}.theme-mode-light .token.punctuation{color:#999}.theme-mode-light .namespace{opacity:.7}.theme-mode-light .token.boolean,.theme-mode-light .token.constant,.theme-mode-light .token.deleted,.theme-mode-light .token.number,.theme-mode-light .token.property,.theme-mode-light .token.symbol,.theme-mode-light .token.tag{color:#905}.theme-mode-light .token.attr-name,.theme-mode-light .token.builtin,.theme-mode-light .token.char,.theme-mode-light .token.inserted,.theme-mode-light .token.selector,.theme-mode-light .token.string{color:#690}.theme-mode-light .language-css .token.string,.theme-mode-light .style .token.string,.theme-mode-light .token.entity,.theme-mode-light .token.operator,.theme-mode-light .token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule,.theme-mode-light .token.attr-value,.theme-mode-light .token.keyword{color:#07a}.theme-mode-light .token.class-name,.theme-mode-light .token.function{color:#dd4a68}.theme-mode-light .token.important,.theme-mode-light .token.regex,.theme-mode-light .token.variable{color:#e90}.theme-mode-light .token.bold,.theme-mode-light .token.important{font-weight:700}.theme-mode-light .token.italic{font-style:italic}.theme-mode-light .token.entity{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted,.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-],.theme-mode-dark pre[class*=language-]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-],.theme-mode-dark pre[class*=language-]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment,.theme-mode-dark .token.cdata,.theme-mode-dark .token.comment,.theme-mode-dark .token.doctype,.theme-mode-dark .token.prolog{color:#999}.theme-mode-dark .token.punctuation{color:#ccc}.theme-mode-dark .token.attr-name,.theme-mode-dark .token.deleted,.theme-mode-dark .token.namespace,.theme-mode-dark .token.tag{color:#e2777a}.theme-mode-dark .token.function-name{color:#6196cc}.theme-mode-dark .token.boolean,.theme-mode-dark .token.function,.theme-mode-dark .token.number{color:#f08d49}.theme-mode-dark .token.class-name,.theme-mode-dark .token.constant,.theme-mode-dark .token.property,.theme-mode-dark .token.symbol{color:#f8c555}.theme-mode-dark .token.atrule,.theme-mode-dark .token.builtin,.theme-mode-dark .token.important,.theme-mode-dark .token.keyword,.theme-mode-dark .token.selector{color:#cc99cd}.theme-mode-dark .token.attr-value,.theme-mode-dark .token.char,.theme-mode-dark .token.regex,.theme-mode-dark .token.string,.theme-mode-dark .token.variable{color:#7ec699}.theme-mode-dark .token.entity,.theme-mode-dark .token.operator,.theme-mode-dark .token.url{color:#67cdcc}.theme-mode-dark .language-css .token.string,.theme-mode-dark .style .token.string,.theme-mode-dark .token.entity,.theme-mode-dark .token.operator,.theme-mode-dark .token.url{background:none}.theme-mode-dark .token.bold,.theme-mode-dark .token.important{font-weight:700}.theme-mode-dark .token.italic{font-style:italic}.theme-mode-dark .token.entity{cursor:help}.theme-mode-dark .token.inserted{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code{background-color:transparent}.theme-mode-dark blockquote{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table{border-color:#1d1d26}.theme-mode-dark table thead{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger,.theme-mode-dark .custom-block.note,.theme-mode-dark .custom-block.tip,.theme-mode-dark .custom-block.warning{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger,.theme-mode-dark .custom-block.danger .custom-block-title{color:#ff4545}.theme-mode-dark .custom-block.note{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active,.theme-mode-dark .nav-item .dropdown-title a:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active,.theme-mode-dark .nav-item>a:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a:hover,.theme-mode-dark .blogger-wrapper .icons a:hover,.theme-mode-dark .buttons .button .select-box li.active,.theme-mode-dark .buttons .button .select-box li:hover,.theme-mode-dark .categories-wrapper .categories a:not(.active):hover,.theme-mode-dark .custom-block.details summary:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a:hover,.theme-mode-dark .pagination span:hover,.theme-mode-dark .post-list .post .title-wrapper a:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a:hover,.theme-mode-dark .search-box .suggestions .focused a:hover,.theme-mode-dark a.sidebar-link:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active,.theme-mode-dark .search-box input:focus{border-color:#b160ea}.theme-mode-dark .buttons .button:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active,.theme-mode-dark .search-box .suggestions .parent-page-title{background:#904ac2}.theme-mode-dark .tabs-component-panels,.theme-mode-dark .tabs-component-tab{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active{color:#b160ea}.theme-mode-read{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-],.theme-mode-read pre[class*=language-]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-],.theme-mode-read pre[class*=language-]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment,.theme-mode-read .token.cdata,.theme-mode-read .token.comment,.theme-mode-read .token.doctype,.theme-mode-read .token.prolog{color:#999}.theme-mode-read .token.punctuation{color:#ccc}.theme-mode-read .token.attr-name,.theme-mode-read .token.deleted,.theme-mode-read .token.namespace,.theme-mode-read .token.tag{color:#e2777a}.theme-mode-read .token.function-name{color:#6196cc}.theme-mode-read .token.boolean,.theme-mode-read .token.function,.theme-mode-read .token.number{color:#f08d49}.theme-mode-read .token.class-name,.theme-mode-read .token.constant,.theme-mode-read .token.property,.theme-mode-read .token.symbol{color:#f8c555}.theme-mode-read .token.atrule,.theme-mode-read .token.builtin,.theme-mode-read .token.important,.theme-mode-read .token.keyword,.theme-mode-read .token.selector{color:#cc99cd}.theme-mode-read .token.attr-value,.theme-mode-read .token.char,.theme-mode-read .token.regex,.theme-mode-read .token.string,.theme-mode-read .token.variable{color:#7ec699}.theme-mode-read .token.entity,.theme-mode-read .token.operator,.theme-mode-read .token.url{color:#67cdcc}.theme-mode-read .language-css .token.string,.theme-mode-read .style .token.string,.theme-mode-read .token.entity,.theme-mode-read .token.operator,.theme-mode-read .token.url{background:none}.theme-mode-read .token.bold,.theme-mode-read .token.important{font-weight:700}.theme-mode-read .token.italic{font-style:italic}.theme-mode-read .token.entity{cursor:help}.theme-mode-read .token.inserted{color:green}.custom-html-window{position:fixed;bottom:0;display:flex;overflow:hidden;font-weight:350}@media (max-width:960px){.custom-html-window{display:none}}.custom-html-window .custom-wrapper{position:relative;max-width:200px;max-height:400px}.custom-html-window .custom-wrapper .close-but{cursor:pointer;position:absolute;right:0;top:0;font-size:1.5rem;line-height:1.5rem;width:1.5rem;height:1.5rem;opacity:0;transition:all .2s}.custom-html-window .custom-wrapper .close-but:hover{opacity:.9}.custom-html-window .custom-wrapper:hover .close-but{opacity:.7}.custom-html-window.custom-html-window-lb{left:0;z-index:99}.custom-html-window.custom-html-window-lb>*{align-self:flex-end}.custom-html-window.custom-html-window-rb{right:80px;z-index:10;justify-content:flex-end}.custom-html-window.custom-html-window-rb>*{align-self:flex-end}.money-deleted[data-v-30f01871]{position:relative;text-decoration:none}.money-deleted[data-v-30f01871]:before{content:"";position:absolute;left:0;bottom:35%;width:100%;height:1px;background-color:#000}.money-deleted[data-v-1f93763b]{position:relative;text-decoration:none}.money-deleted[data-v-1f93763b]:before{content:"";position:absolute;left:0;bottom:35%;width:100%;height:1px;background-color:#000}.bottom-content[data-v-26d92649]{opacity:.35;transition:opacity .45s cubic-bezier(.175,.885,.42,1.31)}.bottom-content[data-v-26d92649]:hover{opacity:1}.line-numbers-mode{overflow:hidden;transition:height .3s;margin-top:.85rem}.line-numbers-mode:before{content:attr(data-language)}.expand{font-size:12px;cursor:pointer;position:absolute;z-index:3;top:.8em;right:.5em;color:rgba(238,255,255,.8);font-weight:900;transition:transform .3s}div[class*=language-].line-numbers-mode pre{margin:30px 0 .85rem}.highlight-lines,div[class*=language-].line-numbers-mode .line-numbers-wrapper{margin-top:30px}.closed{transform:rotate(90deg) translateY(-3px);transition:all .3s}li .closed{transform:rotate(90deg) translate(5px,-8px)}div[class*=language-]:before{position:absolute;z-index:3;top:.7em;left:4.7rem;font-size:.9em;color:rgba(238,255,255,.8);text-transform:uppercase;font-weight:700;width:-moz-fit-content;width:fit-content}li .expand,li div[class*=language-]:before{margin-top:-4px}div[class*=language-].line-numbers-mode:after{margin-top:35px}.circle{position:absolute;top:.9em;left:.9rem;width:10px;height:10px;border-radius:50%;background:#fc625d;box-shadow:20px 0 #fdbc40,40px 0 #35cd4b}.code-copy{position:absolute;top:.6rem;right:1.5rem;fill:rgba(238,255,255,.8);opacity:1}.code-copy svg{margin:0}.theme-mode-light .expand,.theme-mode-light div[class*=language-]:before{color:#666}.theme-mode-light .code-copy{fill:#666}.theme-mode-light[data-v-6cdc36a9]{--bodyBg:#f4f4f4;--customBlockBg:#f1f1f1;--textColor:#00323c;--previewColor:#000;--videoBgColor:#f4f4f4;--videoTextColor:#426feb}.theme-mode-dark[data-v-6cdc36a9]{--bodyBg:#27272b;--mainBg:#1e1e22;--sidebarBg:rgba(30,30,34,0.8);--blurBg:rgba(30,30,34,0.8);--customBlockBg:#27272b;--textColor:#9b9baa;--textLightenColor:#0085ad;--borderColor:#2c2c3a;--codeBg:#252526;--codeColor:#fff;--previewColor:#fff;--videoBgColor:transparent;--videoTextColor:#b160ea}.theme-mode-read[data-v-6cdc36a9]{--bodyBg:#ececcc;--customBlockBg:#ececcc;--textColor:#704214;--textLightenColor:#963;--previewColor:#000;--videoBgColor:transparent;--videoTextColor:#426feb}.theme-mode-light[data-v-6cdc36a9]{--bodyBg:#fff;--mainBg:#fff;--sidebarBg:hsla(0,0%,100%,0.8);--blurBg:hsla(0,0%,100%,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#f6f6f6;--codeColor:#525252;--previewIconColor:#fff}.theme-mode-light code[class*=language-][data-v-6cdc36a9],.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{color:#000;background:none;text-shadow:0 1px #fff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-light code[class*=language-][data-v-6cdc36a9]::-moz-selection,.theme-mode-light code[class*=language-][data-v-6cdc36a9] ::-moz-selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9]::-moz-selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9] ::-moz-selection{text-shadow:none;background:#b3d4fc}.theme-mode-light code[class*=language-][data-v-6cdc36a9]::selection,.theme-mode-light code[class*=language-][data-v-6cdc36a9] ::selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9]::selection,.theme-mode-light pre[class*=language-][data-v-6cdc36a9] ::selection{text-shadow:none;background:#b3d4fc}@media print{.theme-mode-light code[class*=language-][data-v-6cdc36a9],.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{text-shadow:none}}.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-light :not(pre)>code[class*=language-][data-v-6cdc36a9],.theme-mode-light pre[class*=language-][data-v-6cdc36a9]{background:#f5f2f0}.theme-mode-light :not(pre)>code[class*=language-][data-v-6cdc36a9]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-light .token.cdata[data-v-6cdc36a9],.theme-mode-light .token.comment[data-v-6cdc36a9],.theme-mode-light .token.doctype[data-v-6cdc36a9],.theme-mode-light .token.prolog[data-v-6cdc36a9]{color:#708090}.theme-mode-light .token.punctuation[data-v-6cdc36a9]{color:#999}.theme-mode-light .namespace[data-v-6cdc36a9]{opacity:.7}.theme-mode-light .token.boolean[data-v-6cdc36a9],.theme-mode-light .token.constant[data-v-6cdc36a9],.theme-mode-light .token.deleted[data-v-6cdc36a9],.theme-mode-light .token.number[data-v-6cdc36a9],.theme-mode-light .token.property[data-v-6cdc36a9],.theme-mode-light .token.symbol[data-v-6cdc36a9],.theme-mode-light .token.tag[data-v-6cdc36a9]{color:#905}.theme-mode-light .token.attr-name[data-v-6cdc36a9],.theme-mode-light .token.builtin[data-v-6cdc36a9],.theme-mode-light .token.char[data-v-6cdc36a9],.theme-mode-light .token.inserted[data-v-6cdc36a9],.theme-mode-light .token.selector[data-v-6cdc36a9],.theme-mode-light .token.string[data-v-6cdc36a9]{color:#690}.theme-mode-light .language-css .token.string[data-v-6cdc36a9],.theme-mode-light .style .token.string[data-v-6cdc36a9],.theme-mode-light .token.entity[data-v-6cdc36a9],.theme-mode-light .token.operator[data-v-6cdc36a9],.theme-mode-light .token.url[data-v-6cdc36a9]{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.theme-mode-light .token.atrule[data-v-6cdc36a9],.theme-mode-light .token.attr-value[data-v-6cdc36a9],.theme-mode-light .token.keyword[data-v-6cdc36a9]{color:#07a}.theme-mode-light .token.class-name[data-v-6cdc36a9],.theme-mode-light .token.function[data-v-6cdc36a9]{color:#dd4a68}.theme-mode-light .token.important[data-v-6cdc36a9],.theme-mode-light .token.regex[data-v-6cdc36a9],.theme-mode-light .token.variable[data-v-6cdc36a9]{color:#e90}.theme-mode-light .token.bold[data-v-6cdc36a9],.theme-mode-light .token.important[data-v-6cdc36a9]{font-weight:700}.theme-mode-light .token.italic[data-v-6cdc36a9]{font-style:italic}.theme-mode-light .token.entity[data-v-6cdc36a9]{cursor:help}.theme-mode-light div[class*=language-] .highlight-lines .highlighted[data-v-6cdc36a9],.theme-mode-light div[class*=language-].line-numbers-mode .highlight-lines .highlighted[data-v-6cdc36a9]:before{background-color:hsla(0,0%,78.4%,.4)}.theme-mode-dark[data-v-6cdc36a9]{--bodyBg:#282838;--mainBg:#282838;--sidebarBg:rgba(40,40,56,0.8);--blurBg:rgba(40,40,56,0.9);--customBlockBg:rgba(25,25,49,0.53);--textColor:#acb7c4;--textLightenColor:#b160ea;--borderColor:#1d1d26;--codeBg:#1d1d26;--codeColor:#a9b7c6}.theme-mode-dark code[class*=language-][data-v-6cdc36a9],.theme-mode-dark pre[class*=language-][data-v-6cdc36a9]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-dark pre[class*=language-][data-v-6cdc36a9]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-dark :not(pre)>code[class*=language-][data-v-6cdc36a9],.theme-mode-dark pre[class*=language-][data-v-6cdc36a9]{background:#2d2d2d}.theme-mode-dark :not(pre)>code[class*=language-][data-v-6cdc36a9]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-dark .token.block-comment[data-v-6cdc36a9],.theme-mode-dark .token.cdata[data-v-6cdc36a9],.theme-mode-dark .token.comment[data-v-6cdc36a9],.theme-mode-dark .token.doctype[data-v-6cdc36a9],.theme-mode-dark .token.prolog[data-v-6cdc36a9]{color:#999}.theme-mode-dark .token.punctuation[data-v-6cdc36a9]{color:#ccc}.theme-mode-dark .token.attr-name[data-v-6cdc36a9],.theme-mode-dark .token.deleted[data-v-6cdc36a9],.theme-mode-dark .token.namespace[data-v-6cdc36a9],.theme-mode-dark .token.tag[data-v-6cdc36a9]{color:#e2777a}.theme-mode-dark .token.function-name[data-v-6cdc36a9]{color:#6196cc}.theme-mode-dark .token.boolean[data-v-6cdc36a9],.theme-mode-dark .token.function[data-v-6cdc36a9],.theme-mode-dark .token.number[data-v-6cdc36a9]{color:#f08d49}.theme-mode-dark .token.class-name[data-v-6cdc36a9],.theme-mode-dark .token.constant[data-v-6cdc36a9],.theme-mode-dark .token.property[data-v-6cdc36a9],.theme-mode-dark .token.symbol[data-v-6cdc36a9]{color:#f8c555}.theme-mode-dark .token.atrule[data-v-6cdc36a9],.theme-mode-dark .token.builtin[data-v-6cdc36a9],.theme-mode-dark .token.important[data-v-6cdc36a9],.theme-mode-dark .token.keyword[data-v-6cdc36a9],.theme-mode-dark .token.selector[data-v-6cdc36a9]{color:#cc99cd}.theme-mode-dark .token.attr-value[data-v-6cdc36a9],.theme-mode-dark .token.char[data-v-6cdc36a9],.theme-mode-dark .token.regex[data-v-6cdc36a9],.theme-mode-dark .token.string[data-v-6cdc36a9],.theme-mode-dark .token.variable[data-v-6cdc36a9]{color:#7ec699}.theme-mode-dark .token.entity[data-v-6cdc36a9],.theme-mode-dark .token.operator[data-v-6cdc36a9],.theme-mode-dark .token.url[data-v-6cdc36a9]{color:#67cdcc}.theme-mode-dark .language-css .token.string[data-v-6cdc36a9],.theme-mode-dark .style .token.string[data-v-6cdc36a9],.theme-mode-dark .token.entity[data-v-6cdc36a9],.theme-mode-dark .token.operator[data-v-6cdc36a9],.theme-mode-dark .token.url[data-v-6cdc36a9]{background:none}.theme-mode-dark .token.bold[data-v-6cdc36a9],.theme-mode-dark .token.important[data-v-6cdc36a9]{font-weight:700}.theme-mode-dark .token.italic[data-v-6cdc36a9]{font-style:italic}.theme-mode-dark .token.entity[data-v-6cdc36a9]{cursor:help}.theme-mode-dark .token.inserted[data-v-6cdc36a9]{color:green}.theme-mode-dark div[class*=language-].line-numbers-mode[data-v-6cdc36a9]:after{border-right:1px solid rgba(0,0,0,.66)}.theme-mode-dark .theme-vdoing-content code[data-v-6cdc36a9]{background-color:transparent}.theme-mode-dark blockquote[data-v-6cdc36a9]{background-color:rgba(25,25,49,.53);border-left:.25rem solid #904ac2;padding:10px 16px}.theme-mode-dark .card-box[data-v-6cdc36a9]{border-radius:5px;background:var(--mainBg);box-shadow:0 2px 10px 0 rgba(0,0,0,.2);transition:box-shadow .5s}.theme-mode-dark .card-box[data-v-6cdc36a9]:hover{box-shadow:2px 2px 15px 2px rgba(0,0,0,.4)}.theme-mode-dark mark[data-v-6cdc36a9]{color:#b160ea;border:.1em solid #b160ea;background-color:transparent;padding:.1rem .5rem;border-radius:2rem;margin:0 .2rem;font-size:.95rem}.theme-mode-dark table[data-v-6cdc36a9]{border-color:#1d1d26}.theme-mode-dark table thead[data-v-6cdc36a9]{background-color:#2c2c47;font-size:1.02rem}.theme-mode-dark tr[data-v-6cdc36a9]:nth-child(2n){background-color:#2c2c47}.theme-mode-dark .custom-block.danger[data-v-6cdc36a9],.theme-mode-dark .custom-block.note[data-v-6cdc36a9],.theme-mode-dark .custom-block.tip[data-v-6cdc36a9],.theme-mode-dark .custom-block.warning[data-v-6cdc36a9]{background-color:rgba(25,25,49,.53)}.theme-mode-dark .custom-block.danger .custom-block-title[data-v-6cdc36a9],.theme-mode-dark .custom-block.danger[data-v-6cdc36a9]{color:#ff4545}.theme-mode-dark .custom-block.note[data-v-6cdc36a9]{color:#28a1de}.theme-mode-dark .dropdown-wrapper .dropdown-title .title[data-v-6cdc36a9]:hover,.theme-mode-dark .nav-item .dropdown-title a.router-link-active[data-v-6cdc36a9],.theme-mode-dark .nav-item .dropdown-title a[data-v-6cdc36a9]:hover,.theme-mode-dark .nav-item>a:not(.external).router-link-active[data-v-6cdc36a9],.theme-mode-dark .nav-item>a[data-v-6cdc36a9]:not(.external):hover{border-bottom:2px solid #b160ea}.theme-mode-dark a.sidebar-link.active[data-v-6cdc36a9]{color:#b160ea;border-left-color:#b160ea}.theme-mode-dark .archives-page .theme-vdoing-wrapper li a[data-v-6cdc36a9]:hover,.theme-mode-dark .blogger-wrapper .icons a[data-v-6cdc36a9]:hover,.theme-mode-dark .buttons .button .select-box li.active[data-v-6cdc36a9],.theme-mode-dark .buttons .button .select-box li[data-v-6cdc36a9]:hover,.theme-mode-dark .categories-wrapper .categories a[data-v-6cdc36a9]:not(.active):hover,.theme-mode-dark .custom-block.details summary[data-v-6cdc36a9]:hover,.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active[data-v-6cdc36a9],.theme-mode-dark .dropdown-wrapper .nav-dropdown .dropdown-item a[data-v-6cdc36a9]:hover,.theme-mode-dark .pagination span[data-v-6cdc36a9]:hover,.theme-mode-dark .post-list .post .title-wrapper a[data-v-6cdc36a9]:hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active a[data-v-6cdc36a9],.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item a[data-v-6cdc36a9]:hover,.theme-mode-dark .search-box .suggestions .focused a[data-v-6cdc36a9]:hover,.theme-mode-dark a.sidebar-link[data-v-6cdc36a9]:hover{color:#b160ea}.theme-mode-dark .categories-wrapper .categories a[data-v-6cdc36a9]:not(.active):hover,.theme-mode-dark .right-menu-wrapper .right-menu-content .right-menu-item.active[data-v-6cdc36a9],.theme-mode-dark .search-box input[data-v-6cdc36a9]:focus{border-color:#b160ea}.theme-mode-dark .buttons .button[data-v-6cdc36a9]:hover{background:#904ac2;box-shadow:0 0 15px #904ac2}.theme-mode-dark .pagination .pagination-list span.active[data-v-6cdc36a9],.theme-mode-dark .search-box .suggestions .parent-page-title[data-v-6cdc36a9]{background:#904ac2}.theme-mode-dark .tabs-component-panels[data-v-6cdc36a9],.theme-mode-dark .tabs-component-tab[data-v-6cdc36a9]{background-color:rgba(25,25,49,.53);border:none}.theme-mode-dark .tabs-component-tab.is-active[data-v-6cdc36a9]{color:#b160ea}.theme-mode-read[data-v-6cdc36a9]{--bodyBg:#f5f5d5;--mainBg:#f5f5d5;--sidebarBg:rgba(245,245,213,0.8);--blurBg:rgba(245,245,213,0.9);--textColor:#004050;--textLightenColor:#0085ad;--borderColor:rgba(0,0,0,0.15);--codeBg:#282c34;--codeColor:#fff;--previewIconColor:#000}.theme-mode-read code[class*=language-][data-v-6cdc36a9],.theme-mode-read pre[class*=language-][data-v-6cdc36a9]{color:#ccc;background:none;text-shadow:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;hyphens:none}.theme-mode-read pre[class*=language-][data-v-6cdc36a9]{padding:1em;margin:.5em 0;overflow:auto}.theme-mode-read :not(pre)>code[class*=language-][data-v-6cdc36a9],.theme-mode-read pre[class*=language-][data-v-6cdc36a9]{background:#2d2d2d}.theme-mode-read :not(pre)>code[class*=language-][data-v-6cdc36a9]{padding:.1em;border-radius:.3em;white-space:normal}.theme-mode-read .token.block-comment[data-v-6cdc36a9],.theme-mode-read .token.cdata[data-v-6cdc36a9],.theme-mode-read .token.comment[data-v-6cdc36a9],.theme-mode-read .token.doctype[data-v-6cdc36a9],.theme-mode-read .token.prolog[data-v-6cdc36a9]{color:#999}.theme-mode-read .token.punctuation[data-v-6cdc36a9]{color:#ccc}.theme-mode-read .token.attr-name[data-v-6cdc36a9],.theme-mode-read .token.deleted[data-v-6cdc36a9],.theme-mode-read .token.namespace[data-v-6cdc36a9],.theme-mode-read .token.tag[data-v-6cdc36a9]{color:#e2777a}.theme-mode-read .token.function-name[data-v-6cdc36a9]{color:#6196cc}.theme-mode-read .token.boolean[data-v-6cdc36a9],.theme-mode-read .token.function[data-v-6cdc36a9],.theme-mode-read .token.number[data-v-6cdc36a9]{color:#f08d49}.theme-mode-read .token.class-name[data-v-6cdc36a9],.theme-mode-read .token.constant[data-v-6cdc36a9],.theme-mode-read .token.property[data-v-6cdc36a9],.theme-mode-read .token.symbol[data-v-6cdc36a9]{color:#f8c555}.theme-mode-read .token.atrule[data-v-6cdc36a9],.theme-mode-read .token.builtin[data-v-6cdc36a9],.theme-mode-read .token.important[data-v-6cdc36a9],.theme-mode-read .token.keyword[data-v-6cdc36a9],.theme-mode-read .token.selector[data-v-6cdc36a9]{color:#cc99cd}.theme-mode-read .token.attr-value[data-v-6cdc36a9],.theme-mode-read .token.char[data-v-6cdc36a9],.theme-mode-read .token.regex[data-v-6cdc36a9],.theme-mode-read .token.string[data-v-6cdc36a9],.theme-mode-read .token.variable[data-v-6cdc36a9]{color:#7ec699}.theme-mode-read .token.entity[data-v-6cdc36a9],.theme-mode-read .token.operator[data-v-6cdc36a9],.theme-mode-read .token.url[data-v-6cdc36a9]{color:#67cdcc}.theme-mode-read .language-css .token.string[data-v-6cdc36a9],.theme-mode-read .style .token.string[data-v-6cdc36a9],.theme-mode-read .token.entity[data-v-6cdc36a9],.theme-mode-read .token.operator[data-v-6cdc36a9],.theme-mode-read .token.url[data-v-6cdc36a9]{background:none}.theme-mode-read .token.bold[data-v-6cdc36a9],.theme-mode-read .token.important[data-v-6cdc36a9]{font-weight:700}.theme-mode-read .token.italic[data-v-6cdc36a9]{font-style:italic}.theme-mode-read .token.entity[data-v-6cdc36a9]{cursor:help}.theme-mode-read .token.inserted[data-v-6cdc36a9]{color:green}.badge[data-v-6cdc36a9]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-6cdc36a9],.badge.tip[data-v-6cdc36a9],.badge[data-v-6cdc36a9]{background-color:#42b983}.badge.error[data-v-6cdc36a9]{background-color:#da5961}.badge.warn[data-v-6cdc36a9],.badge.warning[data-v-6cdc36a9],.badge.yellow[data-v-6cdc36a9]{background-color:#e7c000}.badge+.badge[data-v-6cdc36a9]{margin-left:5px} \ No newline at end of file diff --git a/assets/js/11.d2aee323.js b/assets/js/11.c51e1014.js similarity index 65% rename from assets/js/11.d2aee323.js rename to assets/js/11.c51e1014.js index 373cf93af..0491db905 100644 --- a/assets/js/11.d2aee323.js +++ b/assets/js/11.c51e1014.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{413:function(a,t,s){a.exports=s.p+"assets/img/vertical.c3595dbf.jpg"},414:function(a,t,s){a.exports=s.p+"assets/img/vertical-detail.6798924b.jpg"},415:function(a,t,s){a.exports=s.p+"assets/img/horizontal.1b2d999f.jpg"},416:function(a,t,s){a.exports=s.p+"assets/img/horizontal-detail.ffab1d66.jpg"},417:function(a,t,s){a.exports=s.p+"assets/img/mixNav.3e8ec1ba.jpg"},418:function(a,t,s){a.exports=s.p+"assets/img/mixNav-detail.a5429f92.jpg"},419:function(a,t,s){a.exports=s.p+"assets/img/double.461f37a3.jpg"},546:function(a,t,s){"use strict";s.r(t);var i=s(8),l=Object(i.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h2",{attrs:{id:"左侧菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#左侧菜单模式"}},[a._v("#")]),a._v(" 左侧菜单模式")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(413),loading:"lazy"}})]),a._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[a._v("查看介绍")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(414),loading:"lazy"}})])]),a._v(" "),t("h2",{attrs:{id:"顶部菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#顶部菜单模式"}},[a._v("#")]),a._v(" 顶部菜单模式")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(415),loading:"lazy"}})]),a._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[a._v("查看介绍")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(416),loading:"lazy"}})])]),a._v(" "),t("h2",{attrs:{id:"混合菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#混合菜单模式"}},[a._v("#")]),a._v(" 混合菜单模式")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(417),loading:"lazy"}})]),a._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[a._v("查看介绍")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(418),loading:"lazy"}})])]),a._v(" "),t("h2",{attrs:{id:"双栏菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#双栏菜单模式"}},[a._v("#")]),a._v(" 双栏菜单模式")]),a._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin-max?tab=readme-ov-file#vue-pure-admin-max-%E4%B8%8E-vue-pure-admin-%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E5%A6%82%E4%BD%95%E6%8B%A5%E6%9C%89-max-%E7%89%88%E6%9C%AC",target:"_blank",rel:"noopener noreferrer"}},[a._v("仅 max 版支持"),t("OutboundLink")],1)]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(419),loading:"lazy"}})])])}),[],!1,null,null,null);t.default=l.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{414:function(a,t,s){a.exports=s.p+"assets/img/vertical.c3595dbf.jpg"},415:function(a,t,s){a.exports=s.p+"assets/img/vertical-detail.6798924b.jpg"},416:function(a,t,s){a.exports=s.p+"assets/img/horizontal.1b2d999f.jpg"},417:function(a,t,s){a.exports=s.p+"assets/img/horizontal-detail.ffab1d66.jpg"},418:function(a,t,s){a.exports=s.p+"assets/img/mixNav.3e8ec1ba.jpg"},419:function(a,t,s){a.exports=s.p+"assets/img/mixNav-detail.a5429f92.jpg"},420:function(a,t,s){a.exports=s.p+"assets/img/double.461f37a3.jpg"},547:function(a,t,s){"use strict";s.r(t);var i=s(8),l=Object(i.a)({},(function(){var a=this,t=a._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":a.$parent.slotKey}},[t("h2",{attrs:{id:"左侧菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#左侧菜单模式"}},[a._v("#")]),a._v(" 左侧菜单模式")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(414),loading:"lazy"}})]),a._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[a._v("查看介绍")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(415),loading:"lazy"}})])]),a._v(" "),t("h2",{attrs:{id:"顶部菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#顶部菜单模式"}},[a._v("#")]),a._v(" 顶部菜单模式")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(416),loading:"lazy"}})]),a._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[a._v("查看介绍")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(417),loading:"lazy"}})])]),a._v(" "),t("h2",{attrs:{id:"混合菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#混合菜单模式"}},[a._v("#")]),a._v(" 混合菜单模式")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(418),loading:"lazy"}})]),a._v(" "),t("details",{staticClass:"custom-block details"},[t("summary",[a._v("查看介绍")]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(419),loading:"lazy"}})])]),a._v(" "),t("h2",{attrs:{id:"双栏菜单模式"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#双栏菜单模式"}},[a._v("#")]),a._v(" 双栏菜单模式")]),a._v(" "),t("p",[t("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin-max?tab=readme-ov-file#vue-pure-admin-max-%E4%B8%8E-vue-pure-admin-%E7%9A%84%E5%8C%BA%E5%88%AB%E6%98%AF%E5%A6%82%E4%BD%95%E6%8B%A5%E6%9C%89-max-%E7%89%88%E6%9C%AC",target:"_blank",rel:"noopener noreferrer"}},[a._v("仅 max 版支持"),t("OutboundLink")],1)]),a._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":s(420),loading:"lazy"}})])])}),[],!1,null,null,null);t.default=l.exports}}]); \ No newline at end of file diff --git a/assets/js/22.078dd68a.js b/assets/js/22.5cfb2459.js similarity index 99% rename from assets/js/22.078dd68a.js rename to assets/js/22.5cfb2459.js index 6ae11dd97..ceb69ce83 100644 --- a/assets/js/22.078dd68a.js +++ b/assets/js/22.5cfb2459.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{443:function(t,s,a){t.exports=a.p+"assets/img/type.a2cd1559.jpg"},549:function(t,s,a){"use strict";a.r(s);var n=a(8),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h2",{attrs:{id:"mock"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#mock"}},[t._v("#")]),t._v(" Mock")]),t._v(" "),s("p",[t._v("平台使用 "),s("a",{attrs:{href:"https://github.com/condorheroblog/vite-plugin-fake-server",target:"_blank",rel:"noopener noreferrer"}},[t._v("vite-plugin-fake-server"),s("OutboundLink")],1),t._v(" 插件并集成了 "),s("a",{attrs:{href:"https://www.npmjs.com/package/@faker-js/faker",target:"_blank",rel:"noopener noreferrer"}},[t._v("@faker-js/faker"),s("OutboundLink")],1),t._v(",支持常用的 "),s("code",[t._v("post")]),t._v("、"),s("code",[t._v("get")]),t._v(" 请求方式,仅用于本地开发,生产环境请务必删除 "),s("code",[t._v("mock")])]),t._v(" "),s("h3",{attrs:{id:"基础用法"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#基础用法"}},[t._v("#")]),t._v(" 基础用法")]),t._v(" "),s("p",[t._v("① 来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/mock",target:"_blank",rel:"noopener noreferrer"}},[t._v("mock"),s("OutboundLink")],1),t._v(" 文件存放目录,比如添加 "),s("code",[t._v("login")]),t._v(" 接口,采用 "),s("code",[t._v("post")]),t._v(" 请求,参考下面代码。")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" MockMethod "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vite-plugin-mock"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n method"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("response")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" body "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n success"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" MockMethod"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br")])])]),t._v(" "),s("p",[t._v("② 上面我们添加了 "),s("code",[t._v("login")]),t._v(" 接口,接着来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/api",target:"_blank",rel:"noopener noreferrer"}},[t._v("api"),s("OutboundLink")],1),t._v(" 目录,比如添加 "),s("code",[t._v("user.ts")]),t._v(" 文件,参考下面代码")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这里定义返回值类型,使接口拥有良好的类型推导")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("UserResult")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 是否请求成功 */")]),t._v("\n success"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用户名 */")]),t._v("\n username"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 当前登陆用户的角色 */")]),t._v("\n roles"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Array")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `token` */")]),t._v("\n accessToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用于调用刷新`accessToken`的接口时所需的`token` */")]),t._v("\n refreshToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx') */")]),t._v("\n expires"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 登录接口 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getLogin")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("UserResult"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br"),s("span",{staticClass:"line-number"},[t._v("21")]),s("br"),s("span",{staticClass:"line-number"},[t._v("22")]),s("br"),s("span",{staticClass:"line-number"},[t._v("23")]),s("br"),s("span",{staticClass:"line-number"},[t._v("24")]),s("br")])])]),t._v(" "),s("p",[t._v("③ 上面导出了 "),s("code",[t._v("getLogin")]),t._v(" 接口,接下来我们来到需要使用这个接口的地方导入,参考下面代码")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("script setup lang"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ts"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" getLogin "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/api/user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onLogin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" result "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLogin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" username"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" password"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin123"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("result"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("success"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("result"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("script"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("template"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("el"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("button "),s("span",{pre:!0,attrs:{class:"token decorator"}},[s("span",{pre:!0,attrs:{class:"token at operator"}},[t._v("@")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("click")])]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"onLogin"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("点击登录"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("el"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("button"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("template"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br")])])]),t._v(" "),s("p",[t._v("您可以注意到我们在上面 "),s("code",[t._v("②")]),t._v(" 步骤中定义了接口返回值类型 "),s("code",[t._v("UserResult")]),t._v(",在使用时就会获得良好的类型推导,如下图")]),t._v(" "),s("p",[s("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(443),loading:"lazy"}})]),t._v(" "),s("h3",{attrs:{id:"如何快速删除-mock"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#如何快速删除-mock"}},[t._v("#")]),t._v(" 如何快速删除 "),s("code",[t._v("mock")])]),t._v(" "),s("p",[t._v("来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/build/plugins.ts#L17",target:"_blank",rel:"noopener noreferrer"}},[t._v("build/plugins.ts"),s("OutboundLink")],1),t._v(" 文件,将 "),s("code",[t._v('import { vitePluginFakeServer } from "vite-plugin-fake-server";')]),t._v(" 注释,最后把 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/build/plugins.ts#L52-#L57",target:"_blank",rel:"noopener noreferrer"}},[t._v("这里选中"),s("OutboundLink")],1),t._v(" 的都注释即可")]),t._v(" "),s("h2",{attrs:{id:"axios"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#axios"}},[t._v("#")]),t._v(" Axios")]),t._v(" "),s("h4",{attrs:{id:"中文文档"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#中文文档"}},[t._v("#")]),t._v(" 中文文档")]),t._v(" "),s("p",[s("a",{attrs:{href:"https://www.axios-http.cn/",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击查看中文文档"),s("OutboundLink")],1)]),t._v(" "),s("h4",{attrs:{id:"基本请求方式"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#基本请求方式"}},[t._v("#")]),t._v(" 基本请求方式")]),t._v(" "),s("p",[t._v("平台封装了 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http",target:"_blank",rel:"noopener noreferrer"}},[t._v("axios"),s("OutboundLink")],1),t._v(",支持的请求方式请看 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/types.d.ts#L14",target:"_blank",rel:"noopener noreferrer"}},[t._v("具体参考"),s("OutboundLink")],1),t._v(",下面举例常用的四种请求方式")]),t._v(" "),s("h5",{attrs:{id:"get-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("get")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"get"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// url拼接传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"get"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx?message="')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" params"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"post-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#post-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("post")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"delete-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#delete-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("delete")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"delete"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"delete"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"put-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#put-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("put")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"put"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"put"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"http-request-传参解析"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#http-request-传参解析"}},[t._v("#")]),t._v(" "),s("code",[t._v("http.request")]),t._v(" 传参解析")]),t._v(" "),s("p",[s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/index.ts#L149",target:"_blank",rel:"noopener noreferrer"}},[t._v("http.request 源码"),s("OutboundLink")],1),t._v(",参数解析如下")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[s("strong",[t._v("参数属性")])]),t._v(" "),s("th",[s("strong",[t._v("说明")])]),t._v(" "),s("th",[s("strong",[t._v("类型")])])])]),t._v(" "),s("tbody",[s("tr",[s("td",[s("code",[t._v("method")])]),t._v(" "),s("td",[t._v("请求方式")]),t._v(" "),s("td",[s("code",[t._v("RequestMethods")])])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("url")])]),t._v(" "),s("td",[t._v("请求地址")]),t._v(" "),s("td",[s("code",[t._v("string")])])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("param")])]),t._v(" "),s("td",[t._v("请求参数")]),t._v(" "),s("td",[s("code",[t._v("AxiosRequestConfig")])])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("axiosConfig")])]),t._v(" "),s("td",[t._v("自定义"),s("code",[t._v("axios")]),t._v("配置")]),t._v(" "),s("td",[s("code",[t._v("PureHttpRequestConfig")])])])])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("提示")]),t._v(" "),s("p",[t._v("当然平台不仅提供了 "),s("code",[t._v("http.request")]),t._v(" 方法让您发送请求,还提供两种额外的请求方式 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/index.ts#L176",target:"_blank",rel:"noopener noreferrer"}},[t._v("http.post"),s("OutboundLink")],1),t._v("、"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/index.ts#L185",target:"_blank",rel:"noopener noreferrer"}},[t._v("http.get"),s("OutboundLink")],1),t._v(",当然这两种也是基于 "),s("code",[t._v("http.request")]),t._v(" 封装的,也会走请求拦截和响应拦截,如果您需要脱离平台封装的请求,可以直接使用 "),s("code",[t._v("axios")]),t._v(",类似参考 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/views/components/upload/index.vue#L92-L98",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/views/components/upload/index.vue"),s("OutboundLink")],1)])]),t._v(" "),s("h4",{attrs:{id:"如何与后台联调"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#如何与后台联调"}},[t._v("#")]),t._v(" 如何与后台联调")]),t._v(" "),s("h5",{attrs:{id:"跨域与解决办法"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#跨域与解决办法"}},[t._v("#")]),t._v(" 跨域与解决办法")]),t._v(" "),s("h6",{attrs:{id:"什么是跨域"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#什么是跨域"}},[t._v("#")]),t._v(" 什么是跨域")]),t._v(" "),s("p",[t._v("跨域本质是浏览器基于同源策略的一种安全手段。同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能。当协议(protocol)、主机(host)、端口(port)其中一项不相同的时候就会产生跨域。跨域只产生在浏览器,这也是为什么您用 "),s("code",[t._v("postman")]),t._v(" 请求接口时不会有跨域问题的原因")]),t._v(" "),s("h6",{attrs:{id:"解决办法"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#解决办法"}},[t._v("#")]),t._v(" 解决办法")]),t._v(" "),s("p",[t._v("① 本地开发的话,我们来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/vite.config.ts#L27",target:"_blank",rel:"noopener noreferrer"}},[t._v("vite.config.ts"),s("OutboundLink")],1),t._v(",参考下面代码配置本地跨域代理即可")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[t._v("proxy"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"/api"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这里填写后端地址")]),t._v("\n target"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://127.0.0.1:3000"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n changeOrigin"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("rewrite")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" path "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" path"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("replace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token regex"}},[s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token regex-source language-regex"}},[t._v("^\\/api")]),s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br")])]),s("p",[t._v("② 配置好上面的跨域代理后,来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/api",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/api"),s("OutboundLink")],1),t._v(" 目录,这里我们先新建一个 "),s("code",[t._v("utils.ts")]),t._v(" 文件用来配置环境,参考下面代码")]),t._v(" "),s("p",[t._v("注意:这里又分两种写法")]),t._v(" "),s("p",[t._v("第一种(也是最常用的一种,满足大多数场景,首选这种写法哦):比如后端使用 "),s("code",[t._v("spring cloud")]),t._v(" 微服务架构,不同服务可能会部署在不同机器上,这时候前端必定产生跨域,推荐部署前端项目首选 "),s("a",{attrs:{href:"https://www.nginx.com/resources/wiki/",target:"_blank",rel:"noopener noreferrer"}},[t._v("nginx"),s("OutboundLink")],1),t._v(",可以利用 "),s("code",[t._v("nginx")]),t._v(" 的代理转发功能来解决跨域问题")]),t._v(" "),s("p",[t._v("utils.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/api/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br")])]),s("p",[t._v("第二种:前端打包直接丢给后端,放到后端项目里一起部署,协议、主机、端口都相同了,就没有跨域问题")]),t._v(" "),s("p",[t._v("utils.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n process"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("env"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NODE_ENV")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"development"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/api/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("http://127.0.0.1:3000/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br")])]),s("p",[t._v("③ 写完上面的 "),s("code",[t._v("utils.ts")]),t._v(" 后,继续在 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/api",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/api"),s("OutboundLink")],1),t._v(" 目录,我们再建一个 "),s("code",[t._v("user.ts")]),t._v(" 文件,导出这个接口,供页面调用,参考下面代码")]),t._v(" "),s("p",[t._v("user.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 登录 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getLogin")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br")])]),s("p",[t._v("④ 上面都完成后,我们在需要调用该接口的地方调用即可,参考 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/store/modules/user.ts#L82",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/store/modules/user.ts"),s("OutboundLink")],1)]),t._v(" "),s("h5",{attrs:{id:"多个后端地址如何联调"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#多个后端地址如何联调"}},[t._v("#")]),t._v(" 多个后端地址如何联调")]),t._v(" "),s("p",[t._v("大致步骤和上面差不多,这里我们就简单写一下,具体对比上面的就行")]),t._v(" "),s("p",[t._v("① 在 "),s("code",[t._v("vite.config.ts")]),t._v(" 写入下面代码")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[t._v("proxy"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第一个代理后端地址")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"/api"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n target"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://127.0.0.1:3000"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n changeOrigin"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("rewrite")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" path "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" path"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("replace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token regex"}},[s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token regex-source language-regex"}},[t._v("^\\/api")]),s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第二个代理后端地址")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"/otherApi"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n target"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://127.0.0.1:3290"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n changeOrigin"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("rewrite")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" path "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" path"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("replace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token regex"}},[s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token regex-source language-regex"}},[t._v("^\\/otherApi")]),s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// websocket地址(知识点:wss只能在https安全协议下使用)")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// "/wsApi": {')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// target: "ws://localhost:3000",')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ws: true,")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// },")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...依此类推,有几个后端地址就写几个后端地址")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br")])]),s("p",[t._v("② 在 "),s("code",[t._v("utils.ts")]),t._v(" 里我们采用第一种写法,参考下面代码")]),t._v(" "),s("p",[t._v("utils.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第一个代理后端地址")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/api/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第二个代理后端地址")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlOtherApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/otherApi/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br")])]),s("p",[t._v("③ 第一个代理后端地址上面建的是 "),s("code",[t._v("user.ts")]),t._v(" 文件,那么第二个代理后端地址我们就建个 "),s("code",[t._v("other.ts")]),t._v(" 文件吧,参考下面代码")]),t._v(" "),s("p",[t._v("other.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlOtherApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 该接口采用 http://127.0.0.1:3290 后端地址 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getOther")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"get"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlOtherApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"other"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br")])]),s("p",[t._v("最后,需要在哪里调用,引入使用即可")]),t._v(" "),s("h4",{attrs:{id:"如何声明接口返回值类型"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#如何声明接口返回值类型"}},[t._v("#")]),t._v(" 如何声明接口返回值类型")]),t._v(" "),s("p",[t._v("可以看到上面的写法 "),s("code",[t._v("http.request")]),t._v(" 后面跟的都是 "),s("code",[t._v("any")]),t._v(",这很不友好,参考下面友好类型写法即可")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 定义 login 接口返回值类型为 UserResult")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("UserResult")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 是否请求成功 */")]),t._v("\n success"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用户名 */")]),t._v("\n username"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 当前登陆用户的角色 */")]),t._v("\n roles"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Array")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `token` */")]),t._v("\n accessToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用于调用刷新`accessToken`的接口时所需的`token` */")]),t._v("\n refreshToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx') */")]),t._v("\n expires"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 登录 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getLogin")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("UserResult"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br"),s("span",{staticClass:"line-number"},[t._v("21")]),s("br"),s("span",{staticClass:"line-number"},[t._v("22")]),s("br"),s("span",{staticClass:"line-number"},[t._v("23")]),s("br"),s("span",{staticClass:"line-number"},[t._v("24")]),s("br"),s("span",{staticClass:"line-number"},[t._v("25")]),s("br")])]),s("h4",{attrs:{id:"平台封装的请求可以设置额外的-axios-配置吗"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#平台封装的请求可以设置额外的-axios-配置吗"}},[t._v("#")]),t._v(" 平台封装的请求可以设置额外的 axios 配置吗")]),t._v(" "),s("p",[t._v("当然可以。"),s("a",{attrs:{href:"#http-request-%E4%BC%A0%E5%8F%82%E8%A7%A3%E6%9E%90"}},[t._v("点击查看这里")]),t._v(",可以看到自定义 "),s("code",[t._v("axios")]),t._v(" 配置中 "),s("code",[t._v("axiosConfig")]),t._v(" 作为最后一个参数")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("testRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 自定义的axios配置在下面对象填写即可")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n headers"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"Content-Type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"application/x-www-form-urlencoded"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br")])]),s("h4",{attrs:{id:"jwt-token-内置无感刷新-token-解决方案"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#jwt-token-内置无感刷新-token-解决方案"}},[t._v("#")]),t._v(" "),s("code",[t._v("JWT Token")]),t._v("(内置无感刷新 "),s("code",[t._v("token")]),t._v(" 解决方案)")]),t._v(" "),s("p",[t._v("实现原理:后端返回两个 "),s("code",[t._v("token")]),t._v("(一个用来请求,一个用来刷新)和过期时间,前端将其进行本地存储,每当接口请求时,把本地存储的过期时间与本地当前时间对比,如果 "),s("code",[t._v("token")]),t._v(" 过期就把当前请求暂存,然后去请求刷新 "),s("code",[t._v("token")]),t._v(" 接口,获取到新 "),s("code",[t._v("token")]),t._v(" 后,再 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L51",target:"_blank",rel:"noopener noreferrer"}},[t._v("触发"),s("OutboundLink")],1),t._v(" 暂存的请求")]),t._v(" "),s("h5",{attrs:{id:"信息存储"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#信息存储"}},[t._v("#")]),t._v(" 信息存储")]),t._v(" "),s("p",[t._v("具体看 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/auth.ts",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/utils/auth"),s("OutboundLink")],1),t._v(" 文件,里面有很详细的备注")]),t._v(" "),s("h5",{attrs:{id:"细节处理"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#细节处理"}},[t._v("#")]),t._v(" 细节处理")]),t._v(" "),s("p",[t._v("① 不需要携带 "),s("code",[t._v("token")]),t._v(" 的接口我们设置了 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L76",target:"_blank",rel:"noopener noreferrer"}},[t._v("请求白名单"),s("OutboundLink")],1)]),t._v(" "),s("p",[t._v("② 当 "),s("code",[t._v("token")]),t._v(" 过期后,平台会暂存请求,直到拿到新 "),s("code",[t._v("token")]),t._v(" 才会请求,避免了当页面有多个请求会重复刷新 "),s("code",[t._v("token")]),t._v(" 的问题。核心代码有三处:"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L51",target:"_blank",rel:"noopener noreferrer"}},[t._v("一"),s("OutboundLink")],1),t._v("、"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L93",target:"_blank",rel:"noopener noreferrer"}},[t._v("二"),s("OutboundLink")],1),t._v("、"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L100",target:"_blank",rel:"noopener noreferrer"}},[t._v("三"),s("OutboundLink")],1)]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("生产环境 Mock 可以和真实接口共存吗?")]),t._v(" "),s("p",[t._v("当然可以共存,不过可能会遇到 "),s("code",[t._v("Mock")]),t._v(" 干扰真实接口的问题。如果您在开发环境接口没问题,但是到生产环境出问题了,在排除后端问题前提下可以尝试 "),s("a",{attrs:{href:"#%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%88%A0%E9%99%A4-mock"}},[t._v("删除 Mock")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{413:function(t,s,a){t.exports=a.p+"assets/img/type.a2cd1559.jpg"},546:function(t,s,a){"use strict";a.r(s);var n=a(8),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h2",{attrs:{id:"mock"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#mock"}},[t._v("#")]),t._v(" Mock")]),t._v(" "),s("p",[t._v("平台使用 "),s("a",{attrs:{href:"https://github.com/condorheroblog/vite-plugin-fake-server",target:"_blank",rel:"noopener noreferrer"}},[t._v("vite-plugin-fake-server"),s("OutboundLink")],1),t._v(" 插件并集成了 "),s("a",{attrs:{href:"https://www.npmjs.com/package/@faker-js/faker",target:"_blank",rel:"noopener noreferrer"}},[t._v("@faker-js/faker"),s("OutboundLink")],1),t._v(",支持常用的 "),s("code",[t._v("post")]),t._v("、"),s("code",[t._v("get")]),t._v(" 请求方式,仅用于本地开发,生产环境请务必删除 "),s("code",[t._v("mock")])]),t._v(" "),s("h3",{attrs:{id:"基础用法"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#基础用法"}},[t._v("#")]),t._v(" 基础用法")]),t._v(" "),s("p",[t._v("① 来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/mock",target:"_blank",rel:"noopener noreferrer"}},[t._v("mock"),s("OutboundLink")],1),t._v(" 文件存放目录,比如添加 "),s("code",[t._v("login")]),t._v(" 接口,采用 "),s("code",[t._v("post")]),t._v(" 请求,参考下面代码。")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" MockMethod "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"vite-plugin-mock"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("default")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n method"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("response")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" body "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n success"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("as")]),t._v(" MockMethod"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br")])])]),t._v(" "),s("p",[t._v("② 上面我们添加了 "),s("code",[t._v("login")]),t._v(" 接口,接着来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/api",target:"_blank",rel:"noopener noreferrer"}},[t._v("api"),s("OutboundLink")],1),t._v(" 目录,比如添加 "),s("code",[t._v("user.ts")]),t._v(" 文件,参考下面代码")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这里定义返回值类型,使接口拥有良好的类型推导")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("UserResult")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 是否请求成功 */")]),t._v("\n success"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用户名 */")]),t._v("\n username"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 当前登陆用户的角色 */")]),t._v("\n roles"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Array")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `token` */")]),t._v("\n accessToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用于调用刷新`accessToken`的接口时所需的`token` */")]),t._v("\n refreshToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx') */")]),t._v("\n expires"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 登录接口 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getLogin")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("UserResult"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br"),s("span",{staticClass:"line-number"},[t._v("21")]),s("br"),s("span",{staticClass:"line-number"},[t._v("22")]),s("br"),s("span",{staticClass:"line-number"},[t._v("23")]),s("br"),s("span",{staticClass:"line-number"},[t._v("24")]),s("br")])])]),t._v(" "),s("p",[t._v("③ 上面导出了 "),s("code",[t._v("getLogin")]),t._v(" 接口,接下来我们来到需要使用这个接口的地方导入,参考下面代码")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("script setup lang"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"ts"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" getLogin "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/api/user"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("async")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("onLogin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("let")]),t._v(" result "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("await")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getLogin")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" username"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" password"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"admin123"')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("result"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("success"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("console")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("log")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("result"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("script"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("template"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("el"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("button "),s("span",{pre:!0,attrs:{class:"token decorator"}},[s("span",{pre:!0,attrs:{class:"token at operator"}},[t._v("@")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("click")])]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"onLogin"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("点击登录"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("el"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),t._v("button"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("template"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br")])])]),t._v(" "),s("p",[t._v("您可以注意到我们在上面 "),s("code",[t._v("②")]),t._v(" 步骤中定义了接口返回值类型 "),s("code",[t._v("UserResult")]),t._v(",在使用时就会获得良好的类型推导,如下图")]),t._v(" "),s("p",[s("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(413),loading:"lazy"}})]),t._v(" "),s("h3",{attrs:{id:"如何快速删除-mock"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#如何快速删除-mock"}},[t._v("#")]),t._v(" 如何快速删除 "),s("code",[t._v("mock")])]),t._v(" "),s("p",[t._v("来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/build/plugins.ts#L17",target:"_blank",rel:"noopener noreferrer"}},[t._v("build/plugins.ts"),s("OutboundLink")],1),t._v(" 文件,将 "),s("code",[t._v('import { vitePluginFakeServer } from "vite-plugin-fake-server";')]),t._v(" 注释,最后把 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/build/plugins.ts#L52-#L57",target:"_blank",rel:"noopener noreferrer"}},[t._v("这里选中"),s("OutboundLink")],1),t._v(" 的都注释即可")]),t._v(" "),s("h2",{attrs:{id:"axios"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#axios"}},[t._v("#")]),t._v(" Axios")]),t._v(" "),s("h4",{attrs:{id:"中文文档"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#中文文档"}},[t._v("#")]),t._v(" 中文文档")]),t._v(" "),s("p",[s("a",{attrs:{href:"https://www.axios-http.cn/",target:"_blank",rel:"noopener noreferrer"}},[t._v("点击查看中文文档"),s("OutboundLink")],1)]),t._v(" "),s("h4",{attrs:{id:"基本请求方式"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#基本请求方式"}},[t._v("#")]),t._v(" 基本请求方式")]),t._v(" "),s("p",[t._v("平台封装了 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http",target:"_blank",rel:"noopener noreferrer"}},[t._v("axios"),s("OutboundLink")],1),t._v(",支持的请求方式请看 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/types.d.ts#L14",target:"_blank",rel:"noopener noreferrer"}},[t._v("具体参考"),s("OutboundLink")],1),t._v(",下面举例常用的四种请求方式")]),t._v(" "),s("h5",{attrs:{id:"get-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#get-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("get")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"get"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// url拼接传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"get"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx?message="')]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("+")]),t._v(" params"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"post-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#post-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("post")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"delete-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#delete-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("delete")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"delete"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"delete"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"put-请求"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#put-请求"}},[t._v("#")]),t._v(" "),s("code",[t._v("put")]),t._v(" 请求")]),t._v(" "),s("details",{staticClass:"custom-block details"},[s("summary",[t._v("点击查看")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// params传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("params"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"put"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" params "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// data传参")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("textRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"put"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"/xxx"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])])]),t._v(" "),s("h5",{attrs:{id:"http-request-传参解析"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#http-request-传参解析"}},[t._v("#")]),t._v(" "),s("code",[t._v("http.request")]),t._v(" 传参解析")]),t._v(" "),s("p",[s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/index.ts#L149",target:"_blank",rel:"noopener noreferrer"}},[t._v("http.request 源码"),s("OutboundLink")],1),t._v(",参数解析如下")]),t._v(" "),s("table",[s("thead",[s("tr",[s("th",[s("strong",[t._v("参数属性")])]),t._v(" "),s("th",[s("strong",[t._v("说明")])]),t._v(" "),s("th",[s("strong",[t._v("类型")])])])]),t._v(" "),s("tbody",[s("tr",[s("td",[s("code",[t._v("method")])]),t._v(" "),s("td",[t._v("请求方式")]),t._v(" "),s("td",[s("code",[t._v("RequestMethods")])])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("url")])]),t._v(" "),s("td",[t._v("请求地址")]),t._v(" "),s("td",[s("code",[t._v("string")])])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("param")])]),t._v(" "),s("td",[t._v("请求参数")]),t._v(" "),s("td",[s("code",[t._v("AxiosRequestConfig")])])]),t._v(" "),s("tr",[s("td",[s("code",[t._v("axiosConfig")])]),t._v(" "),s("td",[t._v("自定义"),s("code",[t._v("axios")]),t._v("配置")]),t._v(" "),s("td",[s("code",[t._v("PureHttpRequestConfig")])])])])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("提示")]),t._v(" "),s("p",[t._v("当然平台不仅提供了 "),s("code",[t._v("http.request")]),t._v(" 方法让您发送请求,还提供两种额外的请求方式 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/index.ts#L176",target:"_blank",rel:"noopener noreferrer"}},[t._v("http.post"),s("OutboundLink")],1),t._v("、"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/utils/http/index.ts#L185",target:"_blank",rel:"noopener noreferrer"}},[t._v("http.get"),s("OutboundLink")],1),t._v(",当然这两种也是基于 "),s("code",[t._v("http.request")]),t._v(" 封装的,也会走请求拦截和响应拦截,如果您需要脱离平台封装的请求,可以直接使用 "),s("code",[t._v("axios")]),t._v(",类似参考 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/views/components/upload/index.vue#L92-L98",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/views/components/upload/index.vue"),s("OutboundLink")],1)])]),t._v(" "),s("h4",{attrs:{id:"如何与后台联调"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#如何与后台联调"}},[t._v("#")]),t._v(" 如何与后台联调")]),t._v(" "),s("h5",{attrs:{id:"跨域与解决办法"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#跨域与解决办法"}},[t._v("#")]),t._v(" 跨域与解决办法")]),t._v(" "),s("h6",{attrs:{id:"什么是跨域"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#什么是跨域"}},[t._v("#")]),t._v(" 什么是跨域")]),t._v(" "),s("p",[t._v("跨域本质是浏览器基于同源策略的一种安全手段。同源策略(Sameoriginpolicy),是一种约定,它是浏览器最核心也最基本的安全功能。当协议(protocol)、主机(host)、端口(port)其中一项不相同的时候就会产生跨域。跨域只产生在浏览器,这也是为什么您用 "),s("code",[t._v("postman")]),t._v(" 请求接口时不会有跨域问题的原因")]),t._v(" "),s("h6",{attrs:{id:"解决办法"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#解决办法"}},[t._v("#")]),t._v(" 解决办法")]),t._v(" "),s("p",[t._v("① 本地开发的话,我们来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/vite.config.ts#L27",target:"_blank",rel:"noopener noreferrer"}},[t._v("vite.config.ts"),s("OutboundLink")],1),t._v(",参考下面代码配置本地跨域代理即可")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[t._v("proxy"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"/api"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 这里填写后端地址")]),t._v("\n target"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://127.0.0.1:3000"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n changeOrigin"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("rewrite")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" path "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" path"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("replace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token regex"}},[s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token regex-source language-regex"}},[t._v("^\\/api")]),s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br")])]),s("p",[t._v("② 配置好上面的跨域代理后,来到 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/api",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/api"),s("OutboundLink")],1),t._v(" 目录,这里我们先新建一个 "),s("code",[t._v("utils.ts")]),t._v(" 文件用来配置环境,参考下面代码")]),t._v(" "),s("p",[t._v("注意:这里又分两种写法")]),t._v(" "),s("p",[t._v("第一种(也是最常用的一种,满足大多数场景,首选这种写法哦):比如后端使用 "),s("code",[t._v("spring cloud")]),t._v(" 微服务架构,不同服务可能会部署在不同机器上,这时候前端必定产生跨域,推荐部署前端项目首选 "),s("a",{attrs:{href:"https://www.nginx.com/resources/wiki/",target:"_blank",rel:"noopener noreferrer"}},[t._v("nginx"),s("OutboundLink")],1),t._v(",可以利用 "),s("code",[t._v("nginx")]),t._v(" 的代理转发功能来解决跨域问题")]),t._v(" "),s("p",[t._v("utils.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/api/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br")])]),s("p",[t._v("第二种:前端打包直接丢给后端,放到后端项目里一起部署,协议、主机、端口都相同了,就没有跨域问题")]),t._v(" "),s("p",[t._v("utils.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v("\n process"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("env"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("NODE_ENV")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("===")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"development"')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/api/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("http://127.0.0.1:3000/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br")])]),s("p",[t._v("③ 写完上面的 "),s("code",[t._v("utils.ts")]),t._v(" 后,继续在 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/tree/main/src/api",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/api"),s("OutboundLink")],1),t._v(" 目录,我们再建一个 "),s("code",[t._v("user.ts")]),t._v(" 文件,导出这个接口,供页面调用,参考下面代码")]),t._v(" "),s("p",[t._v("user.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 登录 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getLogin")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br")])]),s("p",[t._v("④ 上面都完成后,我们在需要调用该接口的地方调用即可,参考 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/store/modules/user.ts#L82",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/store/modules/user.ts"),s("OutboundLink")],1)]),t._v(" "),s("h5",{attrs:{id:"多个后端地址如何联调"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#多个后端地址如何联调"}},[t._v("#")]),t._v(" 多个后端地址如何联调")]),t._v(" "),s("p",[t._v("大致步骤和上面差不多,这里我们就简单写一下,具体对比上面的就行")]),t._v(" "),s("p",[t._v("① 在 "),s("code",[t._v("vite.config.ts")]),t._v(" 写入下面代码")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[t._v("proxy"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第一个代理后端地址")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"/api"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n target"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://127.0.0.1:3000"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n changeOrigin"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("rewrite")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" path "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" path"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("replace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token regex"}},[s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token regex-source language-regex"}},[t._v("^\\/api")]),s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第二个代理后端地址")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"/otherApi"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n target"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"http://127.0.0.1:3290"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n changeOrigin"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token boolean"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("rewrite")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" path "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" path"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("replace")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token regex"}},[s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")]),s("span",{pre:!0,attrs:{class:"token regex-source language-regex"}},[t._v("^\\/otherApi")]),s("span",{pre:!0,attrs:{class:"token regex-delimiter"}},[t._v("/")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('""')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// websocket地址(知识点:wss只能在https安全协议下使用)")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// "/wsApi": {')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// target: "ws://localhost:3000",')]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ws: true,")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// },")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// ...依此类推,有几个后端地址就写几个后端地址")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br")])]),s("p",[t._v("② 在 "),s("code",[t._v("utils.ts")]),t._v(" 里我们采用第一种写法,参考下面代码")]),t._v(" "),s("p",[t._v("utils.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第一个代理后端地址")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/api/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 第二个代理后端地址")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("baseUrlOtherApi")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token template-string"}},[s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v("/otherApi/")]),s("span",{pre:!0,attrs:{class:"token interpolation"}},[s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("${")]),t._v("url"),s("span",{pre:!0,attrs:{class:"token interpolation-punctuation punctuation"}},[t._v("}")])]),s("span",{pre:!0,attrs:{class:"token template-punctuation string"}},[t._v("`")])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br")])]),s("p",[t._v("③ 第一个代理后端地址上面建的是 "),s("code",[t._v("user.ts")]),t._v(" 文件,那么第二个代理后端地址我们就建个 "),s("code",[t._v("other.ts")]),t._v(" 文件吧,参考下面代码")]),t._v(" "),s("p",[t._v("other.ts")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlOtherApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 该接口采用 http://127.0.0.1:3290 后端地址 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getOther")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"get"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlOtherApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"other"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br")])]),s("p",[t._v("最后,需要在哪里调用,引入使用即可")]),t._v(" "),s("h4",{attrs:{id:"如何声明接口返回值类型"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#如何声明接口返回值类型"}},[t._v("#")]),t._v(" 如何声明接口返回值类型")]),t._v(" "),s("p",[t._v("可以看到上面的写法 "),s("code",[t._v("http.request")]),t._v(" 后面跟的都是 "),s("code",[t._v("any")]),t._v(",这很不友好,参考下面友好类型写法即可")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 定义 login 接口返回值类型为 UserResult")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("type")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("UserResult")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 是否请求成功 */")]),t._v("\n success"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("boolean")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用户名 */")]),t._v("\n username"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 当前登陆用户的角色 */")]),t._v("\n roles"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("Array")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `token` */")]),t._v("\n accessToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 用于调用刷新`accessToken`的接口时所需的`token` */")]),t._v("\n refreshToken"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("string")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** `accessToken`的过期时间(格式'xxxx/xx/xx xx:xx:xx') */")]),t._v("\n expires"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" Date"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** 登录 */")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("getLogin")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),t._v("UserResult"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br"),s("span",{staticClass:"line-number"},[t._v("21")]),s("br"),s("span",{staticClass:"line-number"},[t._v("22")]),s("br"),s("span",{staticClass:"line-number"},[t._v("23")]),s("br"),s("span",{staticClass:"line-number"},[t._v("24")]),s("br"),s("span",{staticClass:"line-number"},[t._v("25")]),s("br")])]),s("h4",{attrs:{id:"平台封装的请求可以设置额外的-axios-配置吗"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#平台封装的请求可以设置额外的-axios-配置吗"}},[t._v("#")]),t._v(" 平台封装的请求可以设置额外的 axios 配置吗")]),t._v(" "),s("p",[t._v("当然可以。"),s("a",{attrs:{href:"#http-request-%E4%BC%A0%E5%8F%82%E8%A7%A3%E6%9E%90"}},[t._v("点击查看这里")]),t._v(",可以看到自定义 "),s("code",[t._v("axios")]),t._v(" 配置中 "),s("code",[t._v("axiosConfig")]),t._v(" 作为最后一个参数")]),t._v(" "),s("div",{staticClass:"language-ts line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-ts"}},[s("code",[s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" http "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"@/utils/http"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("import")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" baseUrlApi "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("from")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"./utils"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("export")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("const")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-variable function"}},[t._v("testRequest")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("data"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" object"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" http"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),s("span",{pre:!0,attrs:{class:"token generic-function"}},[s("span",{pre:!0,attrs:{class:"token function"}},[t._v("request")]),s("span",{pre:!0,attrs:{class:"token generic class-name"}},[s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("<")]),s("span",{pre:!0,attrs:{class:"token builtin"}},[t._v("any")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")])])]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"post"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("baseUrlApi")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"login"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v(" data "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 自定义的axios配置在下面对象填写即可")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n headers"),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token string-property property"}},[t._v('"Content-Type"')]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string"}},[t._v('"application/x-www-form-urlencoded"')]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br")])]),s("h4",{attrs:{id:"jwt-token-内置无感刷新-token-解决方案"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#jwt-token-内置无感刷新-token-解决方案"}},[t._v("#")]),t._v(" "),s("code",[t._v("JWT Token")]),t._v("(内置无感刷新 "),s("code",[t._v("token")]),t._v(" 解决方案)")]),t._v(" "),s("p",[t._v("实现原理:后端返回两个 "),s("code",[t._v("token")]),t._v("(一个用来请求,一个用来刷新)和过期时间,前端将其进行本地存储,每当接口请求时,把本地存储的过期时间与本地当前时间对比,如果 "),s("code",[t._v("token")]),t._v(" 过期就把当前请求暂存,然后去请求刷新 "),s("code",[t._v("token")]),t._v(" 接口,获取到新 "),s("code",[t._v("token")]),t._v(" 后,再 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L51",target:"_blank",rel:"noopener noreferrer"}},[t._v("触发"),s("OutboundLink")],1),t._v(" 暂存的请求")]),t._v(" "),s("h5",{attrs:{id:"信息存储"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#信息存储"}},[t._v("#")]),t._v(" 信息存储")]),t._v(" "),s("p",[t._v("具体看 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/auth.ts",target:"_blank",rel:"noopener noreferrer"}},[t._v("src/utils/auth"),s("OutboundLink")],1),t._v(" 文件,里面有很详细的备注")]),t._v(" "),s("h5",{attrs:{id:"细节处理"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#细节处理"}},[t._v("#")]),t._v(" 细节处理")]),t._v(" "),s("p",[t._v("① 不需要携带 "),s("code",[t._v("token")]),t._v(" 的接口我们设置了 "),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L76",target:"_blank",rel:"noopener noreferrer"}},[t._v("请求白名单"),s("OutboundLink")],1)]),t._v(" "),s("p",[t._v("② 当 "),s("code",[t._v("token")]),t._v(" 过期后,平台会暂存请求,直到拿到新 "),s("code",[t._v("token")]),t._v(" 才会请求,避免了当页面有多个请求会重复刷新 "),s("code",[t._v("token")]),t._v(" 的问题。核心代码有三处:"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L51",target:"_blank",rel:"noopener noreferrer"}},[t._v("一"),s("OutboundLink")],1),t._v("、"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L93",target:"_blank",rel:"noopener noreferrer"}},[t._v("二"),s("OutboundLink")],1),t._v("、"),s("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/src/utils/http/index.ts#L100",target:"_blank",rel:"noopener noreferrer"}},[t._v("三"),s("OutboundLink")],1)]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("生产环境 Mock 可以和真实接口共存吗?")]),t._v(" "),s("p",[t._v("当然可以共存,不过可能会遇到 "),s("code",[t._v("Mock")]),t._v(" 干扰真实接口的问题。如果您在开发环境接口没问题,但是到生产环境出问题了,在排除后端问题前提下可以尝试 "),s("a",{attrs:{href:"#%E5%A6%82%E4%BD%95%E5%BF%AB%E9%80%9F%E5%88%A0%E9%99%A4-mock"}},[t._v("删除 Mock")])])])])}),[],!1,null,null,null);s.default=e.exports}}]); \ No newline at end of file diff --git a/assets/js/27.fca6ae8c.js b/assets/js/27.87016ad6.js similarity index 98% rename from assets/js/27.fca6ae8c.js rename to assets/js/27.87016ad6.js index 5c92c32b4..0a3955bf9 100644 --- a/assets/js/27.fca6ae8c.js +++ b/assets/js/27.87016ad6.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{289:function(e,r,t){e.exports=t.p+"assets/img/pure-admin-cli.5451f3a1.gif"},559:function(e,r,t){"use strict";t.r(r);var a=t(8),s=Object(a.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("由 "),r("code",[e._v("pure-admin")]),e._v(" 平台开发的函数工具库,持续维护,请放心使用")]),e._v(" "),r("h2",{attrs:{id:"pure-admin-utils"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pure-admin-utils"}},[e._v("#")]),e._v(" pure-admin-utils")]),e._v(" "),r("ul",[r("li",[e._v("封装一些常用的工具函数( "),r("code",[e._v("utils")]),e._v("、"),r("code",[e._v("hooks")]),e._v(" ),支持在 "),r("code",[e._v("Node.js")]),e._v("、浏览器以及任意 "),r("code",[e._v("JavaScript")]),e._v(" 框架中使用")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://pure-admin-utils.netlify.app",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看文档"),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://github.com/pure-admin/pure-admin-utils-docs",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看文档源码"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"pure-admin-cli"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pure-admin-cli"}},[e._v("#")]),e._v(" pure-admin-cli")]),e._v(" "),r("ul",[r("li",[e._v("快速构建 "),r("code",[e._v("pure-admin")]),e._v(" 相关项目的命令行工具")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/pure-admin/pure-admin-cli",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)]),e._v(" "),r("p",[r("img",{staticClass:"lazy",attrs:{alt:"img","data-src":t(289),loading:"lazy"}})]),e._v(" "),r("h2",{attrs:{id:"pure-admin-release"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pure-admin-release"}},[e._v("#")]),e._v(" pure-admin-release")]),e._v(" "),r("ul",[r("li",[e._v("超简单的发包工具(修改版本号并提交 "),r("code",[e._v("git")]),e._v("、自动打包、发布 "),r("code",[e._v("npm")]),e._v("、计算并显示打包后文件大小)")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/pure-admin/pure-admin-release",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"responsive-storage"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#responsive-storage"}},[e._v("#")]),e._v(" responsive-storage")]),e._v(" "),r("ul",[r("li",[e._v("响应式本地存储,同时支持 "),r("code",[e._v("vue2")]),e._v(" 和 "),r("code",[e._v("vue3")])])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/xiaoxian521/responsive-storage",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"esmjs-geo"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#esmjs-geo"}},[e._v("#")]),e._v(" @esmjs/geo")]),e._v(" "),r("ul",[r("li",[e._v("使用 "),r("code",[e._v("rust")]),e._v(" 和 "),r("code",[e._v("typescript")]),e._v(" 开发的中国地理信息 "),r("code",[e._v("GeoJSON")]),e._v(",常搭配 "),r("code",[e._v("ECharts5")]),e._v(" 地图组件")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/esmjs/geo",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[27],{289:function(e,r,t){e.exports=t.p+"assets/img/pure-admin-cli.5451f3a1.gif"},560:function(e,r,t){"use strict";t.r(r);var a=t(8),s=Object(a.a)({},(function(){var e=this,r=e._self._c;return r("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[r("p",[e._v("由 "),r("code",[e._v("pure-admin")]),e._v(" 平台开发的函数工具库,持续维护,请放心使用")]),e._v(" "),r("h2",{attrs:{id:"pure-admin-utils"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pure-admin-utils"}},[e._v("#")]),e._v(" pure-admin-utils")]),e._v(" "),r("ul",[r("li",[e._v("封装一些常用的工具函数( "),r("code",[e._v("utils")]),e._v("、"),r("code",[e._v("hooks")]),e._v(" ),支持在 "),r("code",[e._v("Node.js")]),e._v("、浏览器以及任意 "),r("code",[e._v("JavaScript")]),e._v(" 框架中使用")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://pure-admin-utils.netlify.app",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看文档"),r("OutboundLink")],1),e._v(" "),r("a",{attrs:{href:"https://github.com/pure-admin/pure-admin-utils-docs",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看文档源码"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"pure-admin-cli"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pure-admin-cli"}},[e._v("#")]),e._v(" pure-admin-cli")]),e._v(" "),r("ul",[r("li",[e._v("快速构建 "),r("code",[e._v("pure-admin")]),e._v(" 相关项目的命令行工具")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/pure-admin/pure-admin-cli",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)]),e._v(" "),r("p",[r("img",{staticClass:"lazy",attrs:{alt:"img","data-src":t(289),loading:"lazy"}})]),e._v(" "),r("h2",{attrs:{id:"pure-admin-release"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#pure-admin-release"}},[e._v("#")]),e._v(" pure-admin-release")]),e._v(" "),r("ul",[r("li",[e._v("超简单的发包工具(修改版本号并提交 "),r("code",[e._v("git")]),e._v("、自动打包、发布 "),r("code",[e._v("npm")]),e._v("、计算并显示打包后文件大小)")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/pure-admin/pure-admin-release",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"responsive-storage"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#responsive-storage"}},[e._v("#")]),e._v(" responsive-storage")]),e._v(" "),r("ul",[r("li",[e._v("响应式本地存储,同时支持 "),r("code",[e._v("vue2")]),e._v(" 和 "),r("code",[e._v("vue3")])])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/xiaoxian521/responsive-storage",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)]),e._v(" "),r("h2",{attrs:{id:"esmjs-geo"}},[r("a",{staticClass:"header-anchor",attrs:{href:"#esmjs-geo"}},[e._v("#")]),e._v(" @esmjs/geo")]),e._v(" "),r("ul",[r("li",[e._v("使用 "),r("code",[e._v("rust")]),e._v(" 和 "),r("code",[e._v("typescript")]),e._v(" 开发的中国地理信息 "),r("code",[e._v("GeoJSON")]),e._v(",常搭配 "),r("code",[e._v("ECharts5")]),e._v(" 地图组件")])]),e._v(" "),r("p",[r("a",{attrs:{href:"https://github.com/esmjs/geo",target:"_blank",rel:"noopener noreferrer"}},[e._v("查看源码"),r("OutboundLink")],1)])])}),[],!1,null,null,null);r.default=s.exports}}]); \ No newline at end of file diff --git a/assets/js/3.1a95ab97.js b/assets/js/3.cde9428e.js similarity index 99% rename from assets/js/3.1a95ab97.js rename to assets/js/3.cde9428e.js index 1db3c657f..dc188bd9b 100644 --- a/assets/js/3.1a95ab97.js +++ b/assets/js/3.cde9428e.js @@ -1 +1 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{468:function(s,t,a){s.exports=a.p+"assets/img/package.87674ebf.jpg"},469:function(s,t,a){s.exports=a.p+"assets/img/error1.ab521e6b.png"},470:function(s,t,a){s.exports=a.p+"assets/img/sass.9620e491.png"},471:function(s,t){s.exports="data:image/png;base64,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"},472:function(s,t,a){s.exports=a.p+"assets/img/lodash.c0dc4ad5.png"},473:function(s,t,a){s.exports=a.p+"assets/img/optimized.6a8e5a33.png"},474:function(s,t,a){s.exports=a.p+"assets/img/vite.8e5d23a7.png"},475:function(s,t,a){s.exports=a.p+"assets/img/ep1.ce2c04be.png"},476:function(s,t,a){s.exports=a.p+"assets/img/ep2.3da63a30.png"},477:function(s,t,a){s.exports=a.p+"assets/img/ep3.c79de1fd.png"},478:function(s,t,a){s.exports=a.p+"assets/img/ep4.3b87096e.png"},479:function(s,t,a){s.exports=a.p+"assets/img/mac.48a1e54e.png"},480:function(s,t,a){s.exports=a.p+"assets/img/log.b04d7f89.png"},481:function(s,t,a){s.exports=a.p+"assets/img/hotlog.e79ec58e.png"},482:function(s,t,a){s.exports=a.p+"assets/img/namespace.1bcb6094.jpg"},483:function(s,t,a){s.exports=a.p+"assets/img/unexpected.768982e6.jpg"},484:function(s,t,a){s.exports=a.p+"assets/img/npm1.4adac956.jpg"},485:function(s,t,a){s.exports=a.p+"assets/img/npm2.ae934786.jpg"},486:function(s,t,a){s.exports=a.p+"assets/img/npm3.0c92b8b3.jpg"},487:function(s,t,a){s.exports=a.p+"assets/img/grey.be2d222b.jpg"},488:function(s,t,a){s.exports=a.p+"assets/img/dialog.2561f9b1.jpg"},489:function(s,t,a){s.exports=a.p+"assets/img/dialog-dark.2f6c70a3.jpg"},490:function(s,t){s.exports="data:image/jpeg;base64,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"},491:function(s,t){s.exports="data:image/jpeg;base64,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"},492:function(s,t,a){s.exports=a.p+"assets/img/messagebox.a8406047.jpg"},493:function(s,t,a){s.exports=a.p+"assets/img/messagebox-dark.165a24ed.jpg"},494:function(s,t){s.exports="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD/2wBDABsSFBcUERsXFhceHBsgKEIrKCUlKFE6PTBCYFVlZF9VXVtqeJmBanGQc1tdhbWGkJ6jq62rZ4C8ybqmx5moq6T/2wBDARweHigjKE4rK06kbl1upKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKT/wgARCADCAqwDASIAAhEBAxEB/8QAGQABAAMBAQAAAAAAAAAAAAAAAAECAwQF/8QAFwEBAQEBAAAAAAAAAAAAAAAAAAECA//aAAwDAQACEAMQAAAB9IEFiqwqsKrCqwqsKrCqwqsKrCqwqsKrCqwqsKrCqwqsMKdSXnr1DHPqGGtllVhVYVWFVhVYVWFctx51u8UmwqsKrCqwqsKrCqwqsKrCqwrF4Dk6iYmCZiQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADi68NyYmCZiQAAihozkuQSrYAyw2b55OtLjOuJKBTp4emzWtq43h08vVrIrnVkSsUvyaz2ZaJc7zmmO1N9TDZObJE1KtgQSrKTW2VWvz7phskkialWwIJRCWCgAEQWVFlRZEgFQTEwTMSAAU8/0+Qw015i140Kac1D0NfN9Ixicd8+pgl6MrVULIy2ukufomufp5trnCzpOTbTkNuft5K2bY5rPS1nP0Z9C8vRz9BnlHWnO6cl05eqsuNOrG51w0lcOnLoOXo5+gzyjrTmnp5Tq4urmLx0zLz9HH2AZ2BWJgMZNWOxNq2AKgRaCZiQABz9Awx7RzZ9o48/QHJ1hiV3z6GbO9MdM0DUbY7ZvO35NZtrl0GW/H0y349qWdHJ18h2Y65Z0tW1mfRz9C8vRz9FnL2cuqaqc2ddXNvjrN6dHOXtW8ufRzdBzdHP0Vy9nLqmvNtzL083XyJ2DHTj7OPs3gMbArEwV4+rQrbPQm1bAFYkTEwTMSAAAAAAAUy6FzzuhWc3S0XRS4K2GWoUx6VmG0lY7IxvdVJsjPQMtJEY7q59rEY7F59NCUtKXn00WZaSljDoVz7WIx2SguOzAvzRvjrtJvlFbwVWFVgkAKgmJgmYkAAIwToYXNCi3AUuAAAAAFZJAVFgAAAAAAAAAAAAAAAK2ylyvtKhcgAAAAAZ2rYmJgmYkAAYb86b8u4pSNEjo5OtcaTVNrUqtN+XrTOloImlys2CJFbKlb1irTFo1sNAAAAAAAAAAAAAAAAAAAAAAAVBMTBMxIAAAABEgiQBEgBEgAAiQiQAAAAAAAAAAAAAAAAAAAAAAAABUFYtBeYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApEwSCbUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF1BdQXUF4qAJiRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgB/8QALRAAAgIBBAIABQMEAwAAAAAAAQIAEQMQEjEyEyEEIDBAQiJQYBQzQ4AjRHD/2gAIAQEAAQUC/ZmSz4oEqeKbPXiipR+s6s0/ponw5Rq+1uv4u7sh/iufn+K5UL/aZPQtp+ufriXMnoJxk9BG96HhCb+YMDo5qIbB9C2YoCI7EEex9EmoDejsQRx+x71m9ZuGoIPyZOMfGuTjH1ycV6RrEPGPtpY+RO2r9cehrW5Y+Sxq/XHoa1uWPlsfdsNy5cQRceEOmQYxPiHgcNh+F6tmRSjh9MnGPixLGmTjH1ycY+vVgbB4x9ozbp44VKxGuMlkCyq0cnGPqyxV3RV2zJ2Xq7VApaeMxG0JLHxyipU2GSoq7oooZOw4dqgUmHGYrafltLQoRMbfd/E/2/h/7XxPf4nr/wBfEaw4jQQN5pk4C3PGZ4zFFDJxj65OMfDCwhonjH2frjGq+midpk4x9X64tMnZep9toUsygJYjkEY+H64tMnYcctpkHtePy0Hf53BB8i7EBJ+wzKWTCpVM6MzZkLqoybMOMhAuXFMavumTjHxrk4x9cnGPiZFit+nH2ydceo7xO0ycY+r9cWmTsvUd9SaHtz44y0MfD9cWmTsOF7aZOU6/np+fzswUbGtWDD7nJwhAG4TcICDMnGPrk4x8aMNpx9j7AO07hGeYxovppk4x9X64tMnZerj2rzcJ2Z+qGpYjtcx8P1xnTJ2HDiirgwsBOzT89Pz+fbbTbTfcsN08c8c8cVdsYboooMN0UbdSLCpRhUGeODHqyXFWiw3RRQIsKu3RlsjiHHPHAK0OOeOFfSjboccUUGSzOYcc8cArTZ702e45oeVj/FHyBYFZ4uPa38RJqFmeLjA+uSL+kXYTe0DWYD70Jr6hNDUmgPY/YSln7Aj39LL1iAsEJm4+Kjpf/J7ZluHg2AptchoHcsNgMx2PuUNu2sTTE+T2rElmcEQn9V7Wti4FD96b3lc0i+kH9q9g9b4vcsjDHe3Lw2zaOG95Ms/RP8j+zl6/5U9tzlB2Ne/J6DrtLY/9Mz/5ncuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXLly5cuXL/0I/8QAJhEAAgIBBAICAQUAAAAAAAAAAAECETEQEiFBMkIiQFEgMFBgcP/aAAgBAwEBPwH6e5m5lsu/6S+ZG0fCPUi+tI41bGYRFdnf6WJ2hfXfkW/wPB6lWhO0RwJXyzxZJcjVIr4kV2LLPJm2sDVjSMoiuxZZ5DVcokbUR+l7FoeD1I4HxyR8SLHyyWUSwepHAssjxwORLI0kepHAssjxwSfRLrSH0qTNqKK1qhxTEqGrKK0oasSSGrNq0pFDViSRWkY/g+Mc/wASjd0v3XqtV/vH/8QAJREAAgEDBAEEAwAAAAAAAAAAAAERAiExEBIyQkAgIkFRUGCA/9oACAECAQE/Af19YNwrs7FS0qzqkIyyr69SGoH464kIWTsTcahlWRuLI5IpdhOWT7ipjwcTd9icCbMMqY8HETmzKTcVeF1IFk7FWRXsPJUhWRSU5OxVkeCq9xIWBNnYqyPBVe5Svkp+dKvClm5kk+iWNyTBOsicDbZMG56SyROBtsnRsu/xUfwX/8QALBAAAQIEBAYBBAMAAAAAAAAAAQARAhAhMRIgMFEiMkBBYIFQE2GCoTNxkP/aAAgBAQAGPwL4e8rplfoOZlzfpPj8ttw+LQvyvXxYB6d+l7ruu6rkr0NflOYLmCuJ0Oo8zkvmrMyrkvkvkMq5L5b9Wyd07qERPZYRcIjuIUVuqZLq+gdR8gyMZ3m+VhNjNzJur9oIIL8VGv48SfAQNU6pmM98h1Pehih9hYlii9DoWCYoMFRGEjtRERC64ahYoz61HREzpGYz3yHQC9z96DlfUb8U46y6vqXVE+czCdVV8l9X3P3oYjLEOrurq+jed1XO2aivOiumnSV50V5u83edh4p905T+JVXDZb67afJ+1yftEbSNJ2fU3yP8G56F9Nt5EuzqIEuydPDE8gERiZcSonMdUCqJya7J8dUGuU+JYsSh3KYIcTusIomd3WEFkOJwUQFd/m4QigojuoaUQwe5RlcV1VDbuuEShCB7LhhcqEbKEJt0PsFEV/QUWLuhsjjCpDTdE7n/AE5//8QAKRAAAgIBAwMDBQEBAQAAAAAAAAERITEQIHFBUbFhgaEwQGCR8FDxgP/aAAgBAQABPyHZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZYyaYP4gezvpB/EC7D2P4gbNMlllllllllllllllIoO0DdkgJ8BMiyyyyyyyyyyyyyyyyyy9GmTjavxFqUJ7aOeeor1WPxOgoisarH4kwoT2Fj7BmmHFibhtqt7t7jNEOLHbu5sZohxY2jZ1z8D1297SFo9FHUfYNIzASIGICqHhb+khJYvHSAqh5Rv7l52LG5tJS3CP+qf9UaYlU+ujcKWYAfGzHyZ+dmPk8xj5JFQPK0+MeDWLoE08OdG13MJKfUcRgKIodSsirEySdHvq0WWkJ2E2em/Ymnh6OpWOlYyeg99Wiy0hOwmsruNpZJuj6Ekkkk7XnYsbpx+pC7O4FB2ROmagoE5GmWLDOQfLIRLb0E0v7aY+Rkml9T0B6ATTwY+TzGPkSWT7jTJEiPjHg0Y0LAm6uCw+UQYeUOmkiEPmkx8nmHqZFi8ER2eI+AYCyXnyxoVORqfQ0hS/RIMKyGI5Fi8FceAx8HqgvRBU5Hp9DRuJ9mK2QLJTkZMvbc9y2POxY+gvIPiiqSLkSSlAY8sjntZsiiKyyo0x8j1lNHqI9RD4mY+TzGPkz8nPFM8HxjwDwxc320alQyr+tMOmPk8xn1PEfAP22KloiSWRKhivpQemKy5sz8mfU8Bj4PnesHMaVZEx9daJuPTJL5DrFGCXwaLY86X3L7ixvizLkQUwxqTJLuKKzTkxvUEA4OGkTi2Hu0x8mfnZj5PMY+TPzp0PuSMZSPBoY6rJzph0x8nmM+p4j4BT3bJhiWZpLmkzcmfU8Bj4KLzri0S1lunqM6DmZ/nfUYtjyX31WPsMfI8S9dsI5MfJ5jHyZ+deMPAJIh1/uJvQKiGlluhoJJTwzHyeYz6niPgEfaYhq0MaegvmEl4Fs0+p6Q6HCM3JnFJtPrp4DHwXPRiC3DEWS+YShQLWW6ejVLJjC7aJWsicrvotjzsWPsIUTB/UH9Qf1BeuSFEwU0yQomCFEzquJllbTM5JBHVIqxolpTgfM2QomCmmdKXLmdLaYEhF2Gk1DO4E3ULWtFPKBdwS4qIUTI7O4K4sqCUJIaSQzuBN1C1rT95ONf3k40t5XuJhJSPV7lsedix+B0CsN8C7sRwNkEEEEbXnYsfgKEloRQrHcX7t9dBWdvGxY3pJcEE1SiqbloxocEuvfV0Isf6+o5rS4CtLprN9g8LiJ/wkTrfZGPsENWVrGxY34u5BhFUBprqKOwMiTbbf6FCuDejaI6SlibA0XSRGmrRh9yaaEsVnghzDLQ9PU3A+SNS6DqCnToPNzDulOOgis0GrhEJThikZR8VY82ToYyNgssVKVK2PcAqyxMh0QbFwks9h0Db1P/Qedixv4BZMPQWJ6DR3Jjgnhtl2ZzhiNJNHpSKBjiUfIbuWwHk95xghCMQcAsTMpR2ht6VxDVHCSc3cmDuQO0eoe54HSCUqSlMxKpfI1jR4ZiqAuv8ARx52LH4k87Fj8SedIXYhdhY/EsiF21WPxJ52J/i8kskSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiRIkSJEiWS/8AwN//2gAMAwEAAgADAAAAEKOIAAAAAAAAAAAAAAAAM80wQAAAAAAAAAAAAAAAAAMDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABDBCAEsgaq04wQNAN1JwABA0J1wAACwAACAACAFAAAAJBKFIBsqKM4Ea1nIeaKJgINpKFFom2ywAPMNKAFEAAAAIIMIATAqA/xzh+Q66KCxh0upVA1HwKAAPDHKAFAAAAAAAAAE8AAgww08EoAwwgAwA08wkAwgAM4FPPAAFAAAADRRACAAAAAAABAAAAAAAAAAAAAAAAFmQAAAAAAPAAAABvkgqst1xtl/3KgAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAIEAIAIAAEEAAAAAAAAAAAAAAAAAAAAAAAAAFPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADKgDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDGBkrjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjvgnvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvogv//EACERAQACAwADAAIDAAAAAAAAAAEAERAhMUBBYTBxYHCx/9oACAEDAQE/EPDAKGfSBRWz/CQ0XP3gtJcP1HkdxdYcQILNOCzZ3ARN4u8WRUXNwwIreLvFnhpNMZq7x1U7hHV8cqiuMCn2AoSjtCowwWLyNly2nqGLOxNrCrDBZXmKOwSatxqU+Etbz6R28eEK6QWiFVMdAYnWH+JzxlZUA0bmwHkK1CHpjKyoSUgoGPbwlls+cpVSlVAAoiXpgBROhA4gCmBCpSqgAUQA3B6nEgdQD1AAogTZADZB6nEiHuLGhKCtn8i1LPMpe4quB+XiO2esGXqdR9uE7n9Q3/eP/8QAIxEBAQEAAwEAAgAHAAAAAAAAAQARECExQUBhMFBRYHBxsf/aAAgBAgEBPxD8PCwsIM/slZvL/WWNk+pHscmbwSK3R74FnQlEDOM4xhrlswkIGcZxj+GB7X77B14dGPnADc8Y3TfSTX6kFbR0m1LzlwB7GjIXb7KcYekm3LzlwB7wQ4u2/kQdPwg2a/pHBw9J41PCybpHRbw3hP8A1el5wwCV7bqk9mvcwzzhgEw6lquPn8IIwv2Wt21uy66w53KvbBeSeoXYlLtruyq6ykyTxepC8SkquyxjKTJPF6kI84+ranXn8pd+R9P8U5ePs/54/8QALBABAAIBAgQFBAIDAQAAAAAAAQARMSFREEFhcSCBscHwYJGh0eHxMEBQcP/aAAgBAQABPxDgs1cErZK2StkrZK2StkrZK2StkrZK2StkrZK2StkrZK2StkrZK2StkrZK2StkrZK2StkrZK2StkrZK2StkrZNtaqq5b5fuKmu1h/Mt8v3EGnUVYp89Zb5fuAcblVStkrZK2StkrZK2StkrZK2StkrZK2StkrZBWxlItfncyHy84wbTJzn3mAZWyVslbJWyVslbJWyVslbJWyVslbJWyVslbJWyVslbJWyU7QiyF1bp4GC2/pEGEsZVDoTu84gCNjqMY/SZX9Ncv5ml06NKxUYzB9JA4DY83avzAAAKCMZg/0FBlsgNkdLZf8AQy/6GJYetIWmWyO1lzMUmWyapkwXk8UijSKUNRTovjGs29OGLttWJ3WjV7wUcBc0pW2GggQ3XGty+dAvGY4alP8AEzxkt7umbOC1aHTMQxSlv+zk4MZg8TIQZVoJ/RZ/RYOqBZYLOAIgBqrygqgmVX4PmdHxVGTu9p8jpMDgaek1o944fnPSeu4rqRe8FsOx4CEQNc2IFWjX0gigPZhdNB3ldK0bSlgvTS+sVhBjL3gMEe0DFGmNEKrTHD8nDEqQ7X4EmmYCwTo8HEBbOc1gDGXvBBYj2gaUaY0Qxpw/N4xKkO18daqXtcAtAbrB1CvfxrRLS28tvLby0GzwZODGYPELRA0pDi6lGoseVKK3ilKWh1DeMqzSmmlfzGsSNR0nwekYMDNbqJ7KZWicPmdGHQHUz+4J/cEAtCdHhGTu9p8jpAOWOr7TS3LUdyEsTPznpPXRaLcTVvqoDnHlitsxsLpC26l1iEkKxENaXnFTDpWnCsnd7QVwl3Xdj6ANGYwENt6TB2erPwHpHPP89pqVofMlwBbYgNlWhfKKArgmsSl0gr1A7VCzdbJzlLi4TrEYUvEfQBozEZI23pPTT8FG1mrLtB7tDzecsAdGGE0VaW8uFlW9X8xLQHFxAAmd5qNY/Z4uXxc/gycGMwePB2e8/K9U+H1hDAWtrV0jgAXUhnSOOgdE5aRYTfJ6YY+Z6sUD5b8PmdGNgAa1nz2fPYyQVb04Rk7vafI6T5nSDXyajFfTTT0Z+c9J66aO56QFvQcCfAlRIuto4Z63041k7vaeh9Z7Pvwwdnqz8B6SynQgAAoNDg+qLtEJqCUxxIqq1iWfvwoGjk4V+YT2ffh6afgpv/wQAKNA4Becl+ct7KRtrDX8zHAUjlT8+Ll4WfWFK6Hpsz7L1zvat5Z9aULoeu7w5/Bk4JsfaJsfaYPGZ0fasNNd5R8VssefSaP+Foc+srYdMWrlXYHqFrtmUbixY6V0iz6sv9XGs7Y6PsacPmdHxVGTu9p8jpPmdOHIPjnLNamupU9dDfakehzseOuHO/5jhnrfTjWTu9p6H1ns+/DB2erPwHpNFfL3+AndaiC7Vm8EBzXkQeEt1rw78wns+/D00/BTP8qcXp7EFdiYPjPHB8Z8XLwYPQcua7E+3Nct4IPY8uY7PDn8F8GvKVsfaMZg/wBD5nRhoYrOmnTRFCpnhGTu9p8jpPmdOCCI6jE0bthnrobvMiGmNBCbPMagXcNLMEZvNDQ7x1IT9ANMMAezwrJ3e09D6z2ffhg7PVn4D0jVP5IXAHfDDbU6DbOX0t9iODk1j40YMRLaO8wS3Z3eHC6OVMRwNFXBHCM9NPwUWvksesABc2+ctCXoNzz6+xAAYCiYPjPHB8Z8XLwehXr4W/fg9CvTwt+/Dn8GTgxmD/QrcBu6ufH+0+P9p8f7Sws3SpW4DeLl9mN3VStwG8XL3IbxXFlpbO06FKqq4G6K5EjdoE6kE32RpAABQcuCO8cnKKiOlaStwG8XLrnLuql7ar51OyTlXCuxiqq5qTdAuMgseUFbpNklrQroSmHuuXghfYcot6FdCDXpd3V3L3IbxUAESx0Zq3o7MZ0irek6FKqrmsl0VHA2MG7pNklrQroSmHuuXgU8scRTyx3cEcimDm6R6hKNH9wui88Dp4jp4MnBjMH0HaV7XI7yxqnwCV0qGi9+fgptKbSm0ptKbeHJwYzB9ApyBzYksxr0uUPdXB5f5xYF9HnWfXgxmDxp3hlp+oCQiWNP1KMqUNWXg/FtC4ni9Aa5N/8AIyVGBljVJZLTbiaRdLreKnYBq8f8KmhMuCAAAAMB/oDwb7PK6v04MZg8bUeRgAjAECDdsNf4RAQ0lmLrnSKXS6gU2vVCn9cGpBobxXLVorN+sLQJVsImtJ0HeJlCXRKvapgZCy7iHFZhpZPJBf1A0kF6i3SpoDCKIAttWk+yOANotDp1i8YI2rWUYxdODrCfZUYVkzjt7Et7Y3BuVLiX57E1L5a0UZW5AVqdXeEkH/QMnBjMHj6aK/nlPIIeekNDSivvFdyz7tRb20KrpqXctsBO5wQhbTvEw0tEtY9Jz7etc1coxYh62yVI101WjuzN7op6TpYr9vSW2ulW0rUDBYDvDTAXUwTzouxGocnBD8N92n6nlQfKaPyZ82XYDQCiRqULypXdNahbcU7QWTa9hNek77E7f9HJwYzB/kAMFcaLui+NFVWngAMHjQc8EvP/AE8nBjMH0lk4O0jtJg+kiOoudJGMxfSszlP0itEdXwiPpCAAAAAAAAAAAAAAAAAAAAAAAAAKVfFUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUqVKlSpUr/wAw/9k="},495:function(s,t){s.exports="data:image/jpeg;base64,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zzzzzzzzzzzzzzzzzzzy3zzwT777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777/xAAjEQEAAgICAgICAwAAAAAAAAABABEhMRBBQFAgUTBhcJGx/9oACAEDAQE/EPCFNcS2LecRA4mDDNmaDw1r5IWx1iJTMQs1LwVj5ELJeCseMqK8VEThsubJUud5a9CWuckDu4CDbOxhasZbCIwO+7iVcIl3BbjELu5bCIgd93NwlFd1EbHrwtRHTymk1M7mlTomqOvhHFkUC2Pg7Rqt+COLIqU0w14WvXfAEFLMJKlRLKeO5WqhlauVKiBSypUrVxNruWdrhiWdpUqIsOOJas3LO1ypUJSn79tT0KKj8P2zVcMNxR1HcYz9xzO59vEesVq+pw9Vx/t/nqhTX8B//8QAIBEAAwACAwADAQEAAAAAAAAAAAERITEQQEEgMFBgcP/aAAgBAgEBPxDpQiIiLvOJt8HlgQoRsLhUTljRC2Ik8CCPZMnvyojJk96yVlxVB8MIeiyHkic7InGGOtDabUR4A6saIsxCAtUgixia5BpSY61CLMQgLXIajK6SiFGujvKxb5babMYb3i3C38IZqJNuIXm+CphfCGas1GwezX0ZpOI0bqRSiyicdXGWEao8IlCijRupFFLLwNLwhaDWJWkWUSmVngRx4QtCijHSS/Wn4LaSr+5fQ+qJRfyZr+U1f8D/AP/EACwQAQACAQIGAgAGAwEBAAAAAAEAEfAhMRBBUWGhsSBxMGCBkcHRQFDx4YD/2gAIAQEAAT8QgK0TtCYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSYSDzOt3tKdPMBLqsTeU6eYBValWNMp08w023zmEmEmEmEmEmEmEmEmEmEmEmEmEmEh59vVIg/wDmVytNyt5WuwDqeJhJhJhJhJhJhJhJhJhJhJhJhJhJhJhJhJhJhJhJhIL/AGHEVdX8oorGOyKV4N7/AAV3UqJ3P3zufvnc/fNJBupi7iVFwLpFrRi7qVEWEg3p+AwOpzOX4KEFroEJGked3wEoDqhakHImowzQYfxdVBN+007H/IadVd+bcN//AAfB+5ScW61n/Mf7n/Mf7gkJuof7nj5j9meL9xBESxi1HWX8ccHt8yhKu39Y7s0eu20GgW2vBYINIPUaIVyqExENa3ITEA0vd/CFgesC8Cqf1OF6TRtuQTQAovf/ACNTFouR14b/APg+D9zZ+nw8fMfszxfuOLqH0zSfPU7opKg08MHtwoJ9rsQRqHbSPNc76ygm+ybMAkovSGAqczBWiF2httCq4rW1NZVCSlEBhQeZLaTdUxmwFtITYG2sBWgtYQfQN416B+p/URNXv1OFS0hutiHNe7aRJoH9UWFSR8k3sQWFDmITammsVBQvSFdEq7YCgC12COB8ojXoP6kRNXv1OFWpuqJbtgBrVpmn/If1Ll9fqfj+7w3/AJAlJsBaz/pZ/wBLFxYKaTTwQAVdAOcVBF2BXx8H7l4kLvSYpMUgZhaazx8x+zPF+54n0zUTqdu80l0Ne5wwe3C68hZ1YuUOQOhCyqc06M0PyX2MENKPaNUW2n3EqNX3PDTD7M0QQdmNGFHTb7IkpSd2YvcnhfbBEXs+02Km43+oDQT1uE4DmLuRxRtZTBpclpTqxot7XoRDpakYbz5T9IIBBewxowo6bfZElI/bMDvNn6Q1BtpF8obhusoBPUYia3mIe+GpN37S7RoFObKUT1GVwithO5BPhYnYnanananYlj4e7w3/AJKUFdgx4OtYuDDgG2+kEtS1Oi9Ia6NLa63/AOQpADQ95m94QKW16uB6I7DUePg/cFLKmo1P+gn/AEENojotzx8x+zPF+54n08NZdD9RNLuh2ekwe0Fg8x7iSjmhxak6KGjOT9zwn3Hdnhph9mG89D2cMXuTwvthod1Eoer38BLvfecBe6EZjSdL556U86eh7OGB3mz9Ia76+41d3VwaV6qHX7M3ftPP++G59/4nn/fw5/ly/D3eG/8APd+38TwPSYfaIcqaS9DWGEkNAu2sE8Uajz1hgifq99yD2e6Fqf8AnHwfubP0+Hj5j9meL9zxPp4GWoNjNRc9E6MvZ1aPEVA3G5XNdP5OPJFB7EuzmWeE+47s8NMPsw3noezhi9yeF9sJ52z9GPpdFTgItE0uruDycgtVFVoQA7RG0q81iADYL9E9KedPQ9nDA7zZ+kBed+GONNFs+uDqTQKfcAHl1+5u/aef98Nz7/xPP+/hz8NEYW6tV37T93r5V1vpNEYG6tV27cOX4e7F6H95v/Nzq+XS66dJb8QppOXeav8AgLPLtLUDXAupdeo6DQddpZuDek1vvBX1TX91CF7q9X7uvHwfuUesu953f7p3f7o34BprPHzH7M8X7nifTxe536CMWNiqf04Ab/QjtGl5u8YsqnN6EBEv9xwZYBNB5krCKGk8NMPsw3noezhi9yeF9sM63JOpCla7Nkgbap0smkRGw5fcREtW1mjPTSc4qwJ0uaEUAu9az0uFXW6UOZAbbUpmB3mz9IDOpsnUmm1PBIGyp0uaSkaA5fcZktW1m79p5/3w3Pv/ABPP+/hz8BoWv7B1n75Bz/qLQpP2Trw5fhTVOvDf/wBBuAfTN0H7fhoVpdL/AAdtooUsffwVKaul/AUbFHtBqR9vwGmyLFLH3+Hz8FQlmluOn1wFCWa246fXDl+Hu8N/8kPVOvyeodPh7vDf/JPenenenene+Pu8N/8AKV0juul8N/5iLKwiomyNateSuAIArudOJagoX9/iEKAebEpQbOvGj6mXIbpq/wDV1E6BofcCi0T53SGy61w3/mdT2Rmq92NC0DXYjCyHaLaFAbdWNiXoTlwA01aEQolLVLg6BNTowoCrmYyhW1fOEBsMNtFBesOxdR5mIiotL1uGDWLNlAre9YkAB0tvLWli1AIruhC8ohYkKBaBlWG9OcMtmtCIXzTTZgE7V26wLADof6g6yhUQ0SiaPf5+7w3/AJ/cEVHvHc6ukF8qSFkUvY6zSNKrdvfCiOg6pqDb53pNZprnXWAaK07usNLX0tvL35r1n3aooqoNGA2sXO4LZbWFs+h0/eaE9kZqPOqfpO39Yar2oqtVKS9oXCltNOUW6mhLjppbwmh/1OeRFae/z93hv/ib8b/3br7fwPd4b/5KVZ8vwPdneZv/AJKVfR/H4CStrfhvfkp19R+B7vCr/JQCO9K+YX9Tb9jQ4CjY0w6R8TAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAzAw2tjof/U3/9k="},496:function(s,t,a){s.exports=a.p+"assets/img/github.c7b5c59a.png"},497:function(s,t,a){s.exports=a.p+"assets/img/xrk1.896d2be1.jpg"},498:function(s,t,a){s.exports=a.p+"assets/img/xrk2.005224e0.jpg"},499:function(s,t,a){s.exports=a.p+"assets/img/eslint.4aa52dda.jpg"},500:function(s,t,a){s.exports=a.p+"assets/img/eslint1.120c4f15.jpg"},562:function(s,t,a){"use strict";a.r(t);var n=a(8),e=Object(n.a)({},(function(){var s=this,t=s._self._c;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h2",{attrs:{id:"是否支持-ie"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#是否支持-ie"}},[s._v("#")]),s._v(" 是否支持 "),t("code",[s._v("IE")]),s._v(" ?")]),s._v(" "),t("p",[s._v("答:"),t("code",[s._v("vue3")]),s._v(" 官方说过不支持 "),t("code",[s._v("IE")]),s._v(",具体看 "),t("a",{attrs:{href:"https://github.com/vuejs/rfcs/blob/master/active-rfcs/0038-vue3-ie11-support.md",target:"_blank",rel:"noopener noreferrer"}},[s._v("rfcs"),t("OutboundLink")],1),s._v(" 和 "),t("a",{attrs:{href:"https://cn.vuejs.org/about/faq.html#what-browsers-does-vue-support",target:"_blank",rel:"noopener noreferrer"}},[s._v("cn.vuejs"),t("OutboundLink")],1),s._v("。当然有人会说 "),t("a",{attrs:{href:"https://cn.vitejs.dev/plugins/#vitejsplugin-legacy",target:"_blank",rel:"noopener noreferrer"}},[s._v("@vitejs/plugin-legacy"),t("OutboundLink")],1),s._v(" 会支持 "),t("code",[s._v("IE")]),s._v(",它的确会,但是它是一款 "),t("code",[s._v("vite")]),s._v(" 插件,只对非 "),t("code",[s._v("vue3")]),s._v(" 的框架进行支持,目前没有任何一款工具可以使 "),t("code",[s._v("vue3")]),s._v(" 支持 "),t("code",[s._v("IE")]),s._v(" 浏览器,如果您项目需要支持 "),t("code",[s._v("IE")]),s._v(",请慎重考虑使用本平台。如果您既要使用最新技术并且又想稳定又要兼容 "),t("code",[s._v("IE")]),s._v(" 浏览器的话可以选择 "),t("code",[s._v("vue2.7")]),s._v(" 的某个版本搭配 "),t("code",[s._v("vue-cli")]),s._v(" 最新版本")]),s._v(" "),t("h2",{attrs:{id:"精简版是干啥的"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#精简版是干啥的"}},[s._v("#")]),s._v(" 精简版是干啥的?")]),s._v(" "),t("ul",[t("li",[s._v("答:实际项目开发请使用精简版,精简版是基于 "),t("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin",target:"_blank",rel:"noopener noreferrer"}},[s._v("vue-pure-admin"),t("OutboundLink")],1),s._v(" 提炼出的架子,包含主体功能,更适合实际项目开发,打包后的大小在全局引入 "),t("a",{attrs:{href:"https://element-plus.org",target:"_blank",rel:"noopener noreferrer"}},[s._v("element-plus"),t("OutboundLink")],1),s._v(" 的情况下仍然低于 "),t("code",[s._v("2.3MB")]),s._v(",并且会永久同步完整版的代码。开启 "),t("code",[s._v("brotli")]),s._v(" 压缩和 "),t("code",[s._v("cdn")]),s._v(" 替换本地库模式后,打包大小低于 "),t("code",[s._v("350kb")])])]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(468),loading:"lazy"}})]),s._v(" "),t("h2",{attrs:{id:"husky-是什么-可以删除-husky-提交前校验吗-如何彻底删除"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#husky-是什么-可以删除-husky-提交前校验吗-如何彻底删除"}},[s._v("#")]),s._v(" "),t("code",[s._v("husky")]),s._v(" 是什么?可以删除 "),t("code",[s._v("husky")]),s._v(" 提交前校验吗?如何彻底删除?")]),s._v(" "),t("ul",[t("li",[t("p",[t("code",[s._v("husky")]),s._v(" 是什么?"),t("br"),s._v("\n答:"),t("a",{attrs:{href:"https://typicode.github.io/husky/#/",target:"_blank",rel:"noopener noreferrer"}},[s._v("官方文档"),t("OutboundLink")],1)])]),s._v(" "),t("li",[t("p",[s._v("可以删除 "),t("code",[s._v("husky")]),s._v(" 提交前校验吗?"),t("br"),s._v("\n答:如果您们提交代码不需要严格的提交前校验,这当然可以删除")])]),s._v(" "),t("li",[t("p",[s._v("如何彻底删除?"),t("br"),s._v("\n① 删除根目录 "),t("code",[s._v(".husky")]),s._v(" 文件夹以及里面所有文件"),t("br"),s._v("\n② 删除根目录 "),t("code",[s._v("commitlint.config.js")]),s._v(" 文件"),t("br"),s._v("\n③ 来到 "),t("code",[s._v("package.json")]),s._v(" 下的 "),t("code",[s._v("devDependencies")]),s._v(" ,删除 "),t("code",[s._v("@commitlint/cli")]),s._v(" 、 "),t("code",[s._v("@commitlint/config-conventional")]),s._v(" 、 "),t("code",[s._v("@commitlint/types")]),s._v(" 、 "),t("code",[s._v("husky")]),s._v(" 、 "),t("code",[s._v("lint-staged")]),s._v(" 这些依赖"),t("br"),s._v("\n④ 最后来到 "),t("code",[s._v("package.json")]),s._v(" 下的 "),t("code",[s._v("scripts")]),s._v(" ,删除 "),t("code",[s._v('"prepare": "husky"')]),s._v(" 命令即可")])])]),s._v(" "),t("h2",{attrs:{id:"为什么使用-pnpm-pnpm-天生支持-monorepo-为什么平台不采用这种模式呢"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#为什么使用-pnpm-pnpm-天生支持-monorepo-为什么平台不采用这种模式呢"}},[s._v("#")]),s._v(" 为什么使用 "),t("code",[s._v("pnpm")]),s._v(" ? "),t("code",[s._v("pnpm")]),s._v(" 天生支持 "),t("code",[s._v("monorepo")]),s._v(",为什么平台不采用这种模式呢?")]),s._v(" "),t("ul",[t("li",[t("p",[s._v("为什么使用 "),t("code",[s._v("pnpm")]),s._v("?"),t("br"),s._v("\n① 节约磁盘空间并提升安装速度"),t("br"),s._v("\n当使用 "),t("code",[s._v("npm")]),s._v(" 或 "),t("code",[s._v("Yarn")]),s._v(" 时,如果您有 "),t("code",[s._v("100")]),s._v(" 个项目使用了某个依赖,就会有 "),t("code",[s._v("100")]),s._v(" 份该依赖的副本保存在硬盘上。 对于 "),t("code",[s._v("pnpm")]),s._v(" ,依赖项将存储在一个内容可寻址的仓库中,因此:如果您用到了某依赖项的不同版本,那么只会将有差异的文件添加到仓库。例如,如果它有 "),t("code",[s._v("100")]),s._v(" 个文件,而新版本只改变了其中 "),t("code",[s._v("1")]),s._v(" 个文件。那么 "),t("code",[s._v("pnpm update")]),s._v(" 只会向存储中心添加 "),t("code",[s._v("1")]),s._v(" 个新文件,不会仅因为单一的改变而克隆整个依赖。所有文件都会存储在硬盘上的同一位置。 当多个包("),t("code",[s._v("package")]),s._v(")被安装时,所有文件都会从同一位置创建硬链接,不会占用额外的磁盘空间。 这允许您跨项目地共享同一版本的依赖。最终您节省了大量与项目和依赖成比例的硬盘空间,并且拥有更快的安装速度!"),t("br"),s._v("\n② 创建非扁平化的 "),t("code",[s._v("node_modules")]),s._v(" 文件夹"),t("br"),s._v("\n当使用 "),t("code",[s._v("npm")]),s._v(" 安装依赖时,所有的依赖都会被提升到模块的根目录。 因此,项目可以访问到未被添加进 当前 项目的依赖。"),t("code",[s._v("pnpm")]),s._v(" 使用软链的方式将项目的直接依赖添加进模块文件夹的根目录。")])]),s._v(" "),t("li",[t("p",[t("code",[s._v("pnpm")]),s._v(" 天生支持 "),t("code",[s._v("monorepo")]),s._v(",为什么平台不采用这种模式呢?"),t("br"),s._v("\n答:我们先来简单介绍一下什么是 "),t("code",[s._v("monorepo")]),s._v(" ,"),t("code",[s._v("monorepos")]),s._v(" 指单一代码库,在版本控制系统的单个代码库里包含了许多项目的代码,与它对应的是 "),t("code",[s._v("multirepos")]),s._v(" 多代码库,每个项目都储存在一个完全独立的、版本控制的代码库中。"),t("code",[s._v("monorepo")]),s._v(" 可能并不适合大多数项目,毕竟大家习惯了多代码库开发,所以平台不采用这种模式。"),t("br"),s._v(" "),t("a",{attrs:{href:"https://baijiahao.baidu.com/s?id=1663844045880515134&wfr=spider&for=pc",target:"_blank",rel:"noopener noreferrer"}},[s._v("推荐文章:Monorepo 可能没您想象中那么香"),t("OutboundLink")],1)])])]),s._v(" "),t("h2",{attrs:{id:"平台出现报错-cannot-find-module-zougt-some-loader-utils"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#平台出现报错-cannot-find-module-zougt-some-loader-utils"}},[s._v("#")]),s._v(" 平台出现报错 "),t("code",[s._v("Cannot find module '@zougt/some-loader-utils'")])]),s._v(" "),t("ul",[t("li",[s._v("为什么会出现 "),t("code",[s._v("Cannot find module '@zougt/some-loader-utils'")]),t("br"),s._v("\n答:平台路径请不要使用中文命名!!!会造成解析乱码!!!请使用全英文路径!!!")])]),s._v(" "),t("h2",{attrs:{id:"平台出现报错-access-is-denied-windows-常见"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#平台出现报错-access-is-denied-windows-常见"}},[s._v("#")]),s._v(" 平台出现报错 "),t("code",[s._v("Access is denied")]),s._v("("),t("code",[s._v("windows")]),s._v(" 常见)")]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(469),loading:"lazy"}})]),s._v(" "),t("ul",[t("li",[s._v("解决办法:请遵循平台要求,安装对应的 "),t("code",[s._v("node")]),s._v(" 和 "),t("code",[s._v("pnpm")]),s._v(" 版本 ( "),t("code",[s._v("node")]),s._v(" 18.18.0 版本及以上、"),t("code",[s._v("pnpm")]),s._v(" 9 版本及以上)")])]),s._v(" "),t("h2",{attrs:{id:"安装依赖时出现报错-cannot-find-module-sass"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#安装依赖时出现报错-cannot-find-module-sass"}},[s._v("#")]),s._v(" 安装依赖时出现报错 "),t("code",[s._v("Cannot find module 'sass'")])]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(470),loading:"lazy"}})]),s._v(" "),t("p",[s._v("答:删除平台的 "),t("code",[s._v("pnpm-lock.yaml")]),s._v(" 和 "),t("code",[s._v("node_modules")]),s._v(" ,重新执行命令 "),t("code",[s._v("pnpm install")]),s._v(" 安装依赖即可。(重点:"),t("code",[s._v("文件存放路径不要带有中文")]),s._v(")")]),s._v(" "),t("h2",{attrs:{id:"动态路由刷新出现警告-⚠️"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#动态路由刷新出现警告-⚠️"}},[s._v("#")]),s._v(" 动态路由刷新出现警告 ⚠️")]),s._v(" "),t("ul",[t("li",[s._v("为什么会出现警告?会不会影响使用?"),t("br"),s._v("\n答:这个警告是 "),t("code",[s._v("vue-router")]),s._v(" 作者故意留下的,咱也不知道为啥,详情看 "),t("a",{attrs:{href:"https://github.com/vuejs/router/issues/521#issuecomment-706680593",target:"_blank",rel:"noopener noreferrer"}},[s._v("issues"),t("OutboundLink")],1),s._v("。不会影响使用,功能一切表现正常,平台打包部署到生产环境就不会出现警告了。\n已通过 "),t("a",{attrs:{href:"https://www.npmjs.com/package/vite-plugin-router-warn",target:"_blank",rel:"noopener noreferrer"}},[s._v("vite-plugin-router-warn"),t("OutboundLink")],1),s._v(" 解决。"),t("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/commit/b9e6556409a755655bf7f769ad1c340d33c66c59#commitcomment-134220309",target:"_blank",rel:"noopener noreferrer"}},[s._v("点击查看具体解决代码"),t("OutboundLink")],1)])]),s._v(" "),t("h2",{attrs:{id:"平台出现警告-rank-only-the-home-page-can-be-0-⚠️"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#平台出现警告-rank-only-the-home-page-can-be-0-⚠️"}},[s._v("#")]),s._v(" 平台出现警告 "),t("code",[s._v("rank only the home page can be 0")]),s._v(" ⚠️")]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(471),loading:"lazy"}})]),s._v(" "),t("p",[s._v("答:路由 "),t("code",[s._v("meta")]),s._v(" 里的 "),t("code",[s._v("rank")]),s._v(" 字段只有 "),t("code",[s._v("home")]),s._v(" 路由才能是 "),t("code",[s._v("0")]),s._v(" ,其他均不能为 "),t("code",[s._v("0")]),s._v(" 。作为一种规范,"),t("code",[s._v("rank")]),s._v(" 字段最好唯一。"),t("code",[s._v("rank")]),s._v(" 字段代表菜单的排序,而且只能是顶级菜单进行排序,也就是最外层的菜单,为什么这么设计呢。详见"),t("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/issues/154#issuecomment-996571156",target:"_blank",rel:"noopener noreferrer"}},[s._v("issues/154"),t("OutboundLink")],1),s._v("。")]),s._v(" "),t("h2",{attrs:{id:"为什么平台使用-lodash-unified-而不是使用-lodash-es-呢"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#为什么平台使用-lodash-unified-而不是使用-lodash-es-呢"}},[s._v("#")]),s._v(" 为什么平台使用 "),t("code",[s._v("lodash-unified")]),s._v(" ,而不是使用 "),t("code",[s._v("lodash-es")]),s._v(" 呢?")]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(472),loading:"lazy"}})]),s._v(" "),t("p",[s._v("答:其实 "),t("code",[s._v("lodash-unified")]),s._v(" 只是对 "),t("code",[s._v("lodash-es")]),s._v(" 做了 "),t("code",[s._v("ESM")]),s._v(" (ESModule)格式支持并兼容 "),t("code",[s._v("CJS")]),s._v(" (CommonJS)格式,"),t("code",[s._v("vite")]),s._v(" 又是使用原生 "),t("code",[s._v("ESM")]),s._v(" 文件快速启动。这里需要注意的是 "),t("code",[s._v("lodash-unified")]),s._v(" 和 "),t("code",[s._v("lodash-es")]),s._v(" 需要同时安装。"),t("br"),s._v("\n用法:"),t("code",[s._v('import { sum } from "lodash-unified"')]),s._v(" 目前均已被 "),t("a",{attrs:{href:"https://pure-admin-utils.netlify.app/",target:"_blank",rel:"noopener noreferrer"}},[s._v("@pureadmin/utils"),t("OutboundLink")],1),s._v(" 代替。")]),s._v(" "),t("h2",{attrs:{id:"为什么平台使用手动按需引入-而不是使用-unplugin-vue-components-插件自动按需引入呢"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#为什么平台使用手动按需引入-而不是使用-unplugin-vue-components-插件自动按需引入呢"}},[s._v("#")]),s._v(" 为什么平台使用手动按需引入,而不是使用 "),t("code",[s._v("unplugin-vue-components")]),s._v(" 插件自动按需引入呢?")]),s._v(" "),t("p",[s._v("答:我尝试将 "),t("code",[s._v("unplugin-element-plus")]),s._v(" 替换成 "),t("code",[s._v("unplugin-vue-components")]),s._v(" ,但似乎 "),t("code",[s._v("unplugin-vue-components")]),s._v(" 表现不是太好,整体来说有些问题,可以看看 "),t("a",{attrs:{href:"https://github.com/antfu/unplugin-vue-components/issues",target:"_blank",rel:"noopener noreferrer"}},[s._v("unplugin-vue-components/issues"),t("OutboundLink")],1),s._v(" 了解一下,而且 "),t("code",[s._v("unplugin-vue-components")]),s._v(" 不是为 "),t("code",[s._v("element-plus")]),s._v(" 特供的产物,毕竟 "),t("code",[s._v("vite")]),s._v(" 等工具还在高速发展,可能会出现一些莫名的问题影响项目,我之前碰到过开发环境没事,打包就凉了(这里是 vite 某个版本的问题),这很坑,所以我感觉手动按需引入更有安全感,毕竟迭代了这么多版本,"),t("code",[s._v("unplugin-element-plus")]),s._v(" 没出过问题。所以整体来说平台都把很多坑都踩过了,毕竟提供很多人使用,平台应该有这个责任在使用最新技术前进行调研,并在综合考虑下保留相对稳定的东西,给平台带来稳定。当然您也可自行替换成 "),t("code",[s._v("unplugin-vue-components")]),s._v(" 插件自动按需引入。")]),s._v(" "),t("h2",{attrs:{id:"为什么平台采用全局引入-element-plus-而不是按需引入呢-全局引入带来打包冗余-如何处理-如何改成按需引入"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#为什么平台采用全局引入-element-plus-而不是按需引入呢-全局引入带来打包冗余-如何处理-如何改成按需引入"}},[s._v("#")]),s._v(" 为什么平台采用全局引入 "),t("code",[s._v("element-plus")]),s._v(" ,而不是按需引入呢? 全局引入带来打包冗余,如何处理? 如何改成按需引入?")]),s._v(" "),t("ul",[t("li",[s._v("为什么平台采用全局引入 "),t("code",[s._v("element-plus")]),s._v(" ,而不是按需引入呢?"),t("br"),s._v("\n答:① 经过多次实践,按需引入一个组件库的话,"),t("code",[s._v("vite")]),s._v(" 的预编译的时间有点长(尤其是性能低的电脑或者您开了很多程序导致 "),t("code",[s._v("cpu")]),s._v(" 占用过高),所以我们采用了全局引入的方式,不再让它预编译,而是直接加载整个包。② 按需引入会出现 "),t("code",[s._v("new dependencies optimized")]),s._v(" 的情况,这个情况一旦出现就会使得页面重新加载,如下图,开发体验不好。")])]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(473),loading:"lazy"}}),s._v("\n上图的问题,估计是 "),t("code",[s._v("vite")]),s._v(" 还需进行优化,下图是来自 "),t("code",[s._v("vite")]),s._v(" 官方开发者的回复"),t("a",{attrs:{href:"https://github.com/vitejs/vite/issues/7608#issuecomment-1087877492",target:"_blank",rel:"noopener noreferrer"}},[s._v("issues"),t("OutboundLink")],1),s._v(" "),t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(474),loading:"lazy"}})]),s._v(" "),t("ul",[t("li",[t("p",[s._v("全局引入带来打包冗余,如何处理?"),t("br"),s._v("\n答:全局引入,打包不会在进行 "),t("code",[s._v("tree shanking")]),s._v(" ,带来未引用的代码也打包进来,造成冗余问题。如何解决呢。目前来说只能在打包时,平台改用 "),t("code",[s._v("unplugin-element-plus")]),s._v(" 插件按需引入模式,开发时,再换成全局引入。")])]),s._v(" "),t("li",[t("p",[s._v("如何改成按需引入?"),t("br"),s._v("\n答:以 "),t("a",{attrs:{href:"https://github.com/pure-admin/pure-admin-thin",target:"_blank",rel:"noopener noreferrer"}},[s._v("精简版"),t("OutboundLink")],1),s._v(" 为例。"),t("br"),s._v("\n① 安装 "),t("code",[s._v("unplugin-element-plus")]),s._v(" ,执行命令:")]),s._v(" "),t("div",{staticClass:"language-sh line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-sh"}},[t("code",[s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("pnpm")]),s._v(" "),t("span",{pre:!0,attrs:{class:"token function"}},[s._v("add")]),s._v(" unplugin-element-plus "),t("span",{pre:!0,attrs:{class:"token parameter variable"}},[s._v("-D")]),s._v("\n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br")])]),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(475),loading:"lazy"}}),s._v("\n② 来到根目录 "),t("code",[s._v("build/plugins.ts")]),s._v(" 文件,去掉 "),t("code",[s._v('import ElementPlus from "unplugin-element-plus/vite";')]),s._v(" 和 "),t("code",[s._v("ElementPlus({}),")]),s._v(" 的代码注释"),t("br"),s._v(" "),t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(476),loading:"lazy"}}),s._v("\n③ 来到根目录 "),t("code",[s._v("src/main.ts")]),s._v(" 文件,注释 "),t("code",[s._v('import ElementPlus from "element-plus";')]),s._v(" ,添加 "),t("code",[s._v('import { useElementPlus } from "/@/plugins/element-plus";')]),s._v(" ,将 "),t("code",[s._v("use(ElementPlus)")]),s._v(" 替换成 "),t("code",[s._v("use(useElementPlus)")]),s._v(" "),t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(477),loading:"lazy"}}),s._v("\n④ 千万别忘记,把用到的 "),t("code",[s._v("element-plus")]),s._v(" 组件引入到根目录 "),t("code",[s._v("src/plugins/element-plus/index.ts")]),s._v(" 文件中\n"),t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(478),loading:"lazy"}})])])]),s._v(" "),t("h2",{attrs:{id:"vertical-模式下左侧菜单卡顿-如何解决-菜单切换卡顿"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#vertical-模式下左侧菜单卡顿-如何解决-菜单切换卡顿"}},[s._v("#")]),s._v(" "),t("code",[s._v("vertical")]),s._v(" 模式下左侧菜单卡顿,如何解决?菜单切换卡顿?")]),s._v(" "),t("ul",[t("li",[t("code",[s._v("vertical")]),s._v(" 模式下左侧菜单卡顿,如何解决?"),t("br"),s._v("\n答:这个问题大多数出现在 "),t("code",[s._v("windows")]),s._v(" 上,特别是电脑性能低或者双屏的模式下。我的电脑从未出现过卡顿的情况。下图是我的电脑信息")])]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(479),loading:"lazy"}})]),s._v(" "),t("p",[t("code",[s._v("element-plus")]),s._v(" 的 "),t("code",[s._v("menu")]),s._v(" 在上述的情况可能会出现卡顿。")]),s._v(" "),t("p",[s._v("两种解决办法:")]),s._v(" "),t("p",[s._v("① 从软件上解决:来到 "),t("a",{attrs:{href:"https://github.com/pure-admin/vue-pure-admin/blob/main/public/platform-config.json#L22",target:"_blank",rel:"noopener noreferrer"}},[s._v("public/platform-config.json"),t("OutboundLink")],1),s._v(" 设置 "),t("code",[s._v("MenuArrowIconNoTransition")]),s._v(" 为 "),t("code",[s._v("true")]),s._v(" 即可以解决。菜单经过测试在谷歌浏览器 "),t("code",[s._v("92")]),s._v(" 到 "),t("code",[s._v("94")]),s._v(" 版本是不卡顿的,谷歌浏览器版本下载地址 "),t("a",{attrs:{href:"https://www.chromedownloads.net/chrome64osx/",target:"_blank",rel:"noopener noreferrer"}},[s._v("chromedownloads"),t("OutboundLink")],1),s._v(",卡顿是这个 "),t("a",{attrs:{href:"https://github.com/element-plus/element-plus/blob/dev/packages/components/menu/src/sub-menu.ts#L320",target:"_blank",rel:"noopener noreferrer"}},[s._v("transform: rotateZ(180deg)"),t("OutboundLink")],1),s._v(" 造成的,貌似是谷歌的 "),t("a",{attrs:{href:"https://bugs.chromium.org/p/chromium/issues/detail?id=1384444",target:"_blank",rel:"noopener noreferrer"}},[s._v("bug"),t("OutboundLink")],1),s._v(" 吧"),t("br"),s._v("\n② 从硬件上解决:运行 window + x 打开计算机管理界面,找到设备管理器(或者英文 Device Manager),打开显示适配器(或者英文 Display Adapters),如果列表内展示的有 Inter(R) HD Graphics,则说明此电脑具有集成显卡,禁用掉此项(集成显卡),将独立显卡开启满载状态。"),t("a",{attrs:{href:"https://jingyan.baidu.com/article/fd8044fae944b61131137ab1.html",target:"_blank",rel:"noopener noreferrer"}},[s._v("Windows 怎么禁用集成显卡"),t("OutboundLink")],1)]),s._v(" "),t("ul",[t("li",[s._v("菜单切换卡顿?"),t("br"),s._v("\n答:有人问平台演示环境菜单切换卡顿,是什么问题?"),t("br"),s._v("\n① 首先,平台的演示环境使用的是 "),t("a",{attrs:{href:"https://github.com/",target:"_blank",rel:"noopener noreferrer"}},[s._v("github"),t("OutboundLink")],1),s._v(" ,一个免费的静态网站部署服务,切换菜单的时候,需要加载网络资源,走了请求,响应越慢,页面显示的越慢。"),t("br"),s._v("\n② 其次,本地运行平台的完整版,有的菜单切换卡顿,因为也要加载资源啊,比如地图什么的,当前页面加载资源越大,正常情况下响应就越慢,这是最基本的知识哦。")])]),s._v(" "),t("h2",{attrs:{id:"浏览器控制台打印一些重复信息-很影响开发体验-如何解决"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#浏览器控制台打印一些重复信息-很影响开发体验-如何解决"}},[s._v("#")]),s._v(" 浏览器控制台打印一些重复信息,很影响开发体验,如何解决?")]),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(480),loading:"lazy"}})]),s._v(" "),t("p",[s._v("答:如下图所示,触发了 "),t("code",[s._v("vite")]),s._v(" 的 "),t("code",[s._v("hmr update")]),s._v(" 就会在控制台输出相对应的信息 "),t("a",{attrs:{href:"https://github.com/vitejs/vite/issues/1785",target:"_blank",rel:"noopener noreferrer"}},[s._v("issues"),t("OutboundLink")],1),s._v(" ,有时候输出的信息对于我们来说并没有用,是否可以屏蔽掉这些信息呢?当然可以,在浏览器控制台过滤框中输入您不需要的信息并在最前面加上 "),t("code",[s._v("-")]),s._v(" 即可。"),t("a",{attrs:{href:"https://blog.csdn.net/qq_33674300/article/details/114764718",target:"_blank",rel:"noopener noreferrer"}},[s._v("浏览器控制台过滤无用的提示和报错"),t("OutboundLink")],1),s._v(" "),t("Badge",{attrs:{text:"推荐文章"}})],1),s._v(" "),t("p",[t("img",{staticClass:"lazy",attrs:{alt:"img","data-src":a(481),loading:"lazy"}})]),s._v(" "),t("h2",{attrs:{id:"vue3-的-script-setup-写法-虽然会依据它的文件名来自动推断组件名称-name-但这也约束了我们的写法-不算灵活-有没有解决方案呢"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#vue3-的-script-setup-写法-虽然会依据它的文件名来自动推断组件名称-name-但这也约束了我们的写法-不算灵活-有没有解决方案呢"}},[s._v("#")]),s._v(" "),t("code",[s._v("vue3")]),s._v(" 的 "),t("code",[s._v(" + diff --git a/pages/FAQ/index.html b/pages/FAQ/index.html index f3fb1cbeb..82c021982 100644 --- a/pages/FAQ/index.html +++ b/pages/FAQ/index.html @@ -11,8 +11,8 @@ - - + +