增加qdoj的题目导入
This commit is contained in:
parent
5581ec931e
commit
bd5e692e3b
|
@ -8,13 +8,13 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/6.f86b5401.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/2.3e9bf4c9.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/6.f86b5401.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/2.3e9bf4c9.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>How did we get here?</blockquote> <a href="/docs/" class="router-link-active">
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>Looks like we've got some broken links.</blockquote> <a href="/docs/" class="router-link-active">
|
||||
Take me home.
|
||||
</a></div></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/6.f86b5401.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/6.f86b5401.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{360:function(s,a,t){"use strict";t.r(a);var e=t(41),r=Object(e.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"redis部署"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#redis部署"}},[s._v("#")]),s._v(" Redis部署")]),s._v(" "),t("h2",{attrs:{id:"docker部署"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#docker部署"}},[s._v("#")]),s._v(" docker部署")]),s._v(" "),t("div",{staticClass:"language-shell line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[s._v("docker run -d --name redis -p "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("6379")]),s._v(":6379 \n-v /hoj/data/redis/data:/data "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("\\")]),s._v("\n--restart"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"always"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("\\")]),s._v("\nredis "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("\\")]),s._v("\n--requirepass "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"redis_password"')]),s._v(" \n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br")])]),t("h2",{attrs:{id:"常规部署"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#常规部署"}},[s._v("#")]),s._v(" 常规部署")]),s._v(" "),t("p",[s._v("请自行百度。。")])])}),[],!1,null,null,null);a.default=r.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{361:function(s,a,t){"use strict";t.r(a);var e=t(41),r=Object(e.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[t("h1",{attrs:{id:"redis部署"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#redis部署"}},[s._v("#")]),s._v(" Redis部署")]),s._v(" "),t("h2",{attrs:{id:"docker部署"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#docker部署"}},[s._v("#")]),s._v(" docker部署")]),s._v(" "),t("div",{staticClass:"language-shell line-numbers-mode"},[t("pre",{pre:!0,attrs:{class:"language-shell"}},[t("code",[s._v("docker run -d --name redis -p "),t("span",{pre:!0,attrs:{class:"token number"}},[s._v("6379")]),s._v(":6379 \n-v /hoj/data/redis/data:/data "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("\\")]),s._v("\n--restart"),t("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"always"')]),s._v(" "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("\\")]),s._v("\nredis "),t("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("\\")]),s._v("\n--requirepass "),t("span",{pre:!0,attrs:{class:"token string"}},[s._v('"redis_password"')]),s._v(" \n")])]),s._v(" "),t("div",{staticClass:"line-numbers-wrapper"},[t("span",{staticClass:"line-number"},[s._v("1")]),t("br"),t("span",{staticClass:"line-number"},[s._v("2")]),t("br"),t("span",{staticClass:"line-number"},[s._v("3")]),t("br"),t("span",{staticClass:"line-number"},[s._v("4")]),t("br"),t("span",{staticClass:"line-number"},[s._v("5")]),t("br")])]),t("h2",{attrs:{id:"常规部署"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#常规部署"}},[s._v("#")]),s._v(" 常规部署")]),s._v(" "),t("p",[s._v("请自行百度。。")])])}),[],!1,null,null,null);a.default=r.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{368:function(t,l,e){"use strict";e.r(l);var s=e(41),v=Object(s.a)({},(function(){var t=this,l=t.$createElement,e=t._self._c||l;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"使用简介"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#使用简介"}},[t._v("#")]),t._v(" 使用简介")]),t._v(" "),e("ul",[e("li",[t._v("测试数据的介绍")]),t._v(" "),e("li",[t._v("比赛的介绍")]),t._v(" "),e("li",[t._v("导入题目的介绍")]),t._v(" "),e("li",[t._v("导入用户的介绍")]),t._v(" "),e("li",[t._v("讨论管理的介绍")]),t._v(" "),e("li",[t._v("特殊判题的程序例子")]),t._v(" "),e("li",[t._v("其它待续......")])])])}),[],!1,null,null,null);l.default=v.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{369:function(t,l,e){"use strict";e.r(l);var s=e(41),v=Object(s.a)({},(function(){var t=this,l=t.$createElement,e=t._self._c||l;return e("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[e("h1",{attrs:{id:"使用简介"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#使用简介"}},[t._v("#")]),t._v(" 使用简介")]),t._v(" "),e("ul",[e("li",[t._v("测试数据的介绍")]),t._v(" "),e("li",[t._v("比赛的介绍")]),t._v(" "),e("li",[t._v("导入题目的介绍")]),t._v(" "),e("li",[t._v("导入用户的介绍")]),t._v(" "),e("li",[t._v("讨论管理的介绍")]),t._v(" "),e("li",[t._v("特殊判题的程序例子")]),t._v(" "),e("li",[t._v("其它待续......")])])])}),[],!1,null,null,null);l.default=v.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{369:function(t,s,a){"use strict";a.r(s);var e=a(41),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"评论管理"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#评论管理"}},[t._v("#")]),t._v(" 评论管理")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://img-blog.csdnimg.cn/20210523223605573.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70#pic_center",alt:"在这里插入图片描述"}})]),t._v(" "),a("ul",[a("li",[a("p",[t._v("后台管理员可以查看所有的讨论帖,并且可以选择是否置顶,是否正常显示,删除,查看等")])]),t._v(" "),a("li",[a("p",[t._v("后台管理员可以查看对应讨论帖的举报内容")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://img-blog.csdnimg.cn/20210523221321418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70",alt:"在这里插入图片描述"}})])])])])}),[],!1,null,null,null);s.default=r.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{371:function(t,s,a){"use strict";a.r(s);var e=a(41),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"评论管理"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#评论管理"}},[t._v("#")]),t._v(" 评论管理")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://img-blog.csdnimg.cn/20210523223605573.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70#pic_center",alt:"在这里插入图片描述"}})]),t._v(" "),a("ul",[a("li",[a("p",[t._v("后台管理员可以查看所有的讨论帖,并且可以选择是否置顶,是否正常显示,删除,查看等")])]),t._v(" "),a("li",[a("p",[t._v("后台管理员可以查看对应讨论帖的举报内容")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://img-blog.csdnimg.cn/20210523221321418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70",alt:"在这里插入图片描述"}})])])])])}),[],!1,null,null,null);s.default=r.exports}}]);
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{372:function(t,s,a){"use strict";a.r(s);var e=a(41),l=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h2",{attrs:{id:"导入用户"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#导入用户"}},[t._v("#")]),t._v(" 导入用户")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://img-blog.csdnimg.cn/2021052322072728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70",alt:"在这里插入图片描述"}})]),t._v(" "),a("p",[t._v("要求如下:")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("用户数据导入仅支持csv格式的用户数据。")])]),t._v(" "),a("li",[a("p",[t._v("共三列数据: 用户名,密码,邮箱,任一列不能为空,否则该行数据可能导入失败。")])]),t._v(" "),a("li",[a("p",[t._v("第一行不必写(“用户名”,“密码”,“邮箱”)这三个列名。")])]),t._v(" "),a("li",[a("p",[t._v("请导入保存为UTF-8编码的文件,否则中文可能会乱码。")])])])])}),[],!1,null,null,null);s.default=l.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{373:function(t,s,a){"use strict";a.r(s);var e=a(41),l=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h2",{attrs:{id:"导入用户"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#导入用户"}},[t._v("#")]),t._v(" 导入用户")]),t._v(" "),a("p",[a("img",{attrs:{src:"https://img-blog.csdnimg.cn/2021052322072728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70",alt:"在这里插入图片描述"}})]),t._v(" "),a("p",[t._v("要求如下:")]),t._v(" "),a("ol",[a("li",[a("p",[t._v("用户数据导入仅支持csv格式的用户数据。")])]),t._v(" "),a("li",[a("p",[t._v("共三列数据: 用户名,密码,邮箱,任一列不能为空,否则该行数据可能导入失败。")])]),t._v(" "),a("li",[a("p",[t._v("第一行不必写(“用户名”,“密码”,“邮箱”)这三个列名。")])]),t._v(" "),a("li",[a("p",[t._v("请导入保存为UTF-8编码的文件,否则中文可能会乱码。")])])])])}),[],!1,null,null,null);s.default=l.exports}}]);
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{319:function(t,e,n){},347:function(t,e,n){"use strict";n(319)},375:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(347),n(41)),p=Object(r.a)(i,void 0,void 0,!1,null,"69367c83",null);e.default=p.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{318:function(t,e,n){},346:function(t,e,n){"use strict";n(318)},375:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(346),n(41)),p=Object(r.a)(i,void 0,void 0,!1,null,"69367c83",null);e.default=p.exports}}]);
|
|
@ -1 +1 @@
|
|||
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{318:function(t,e,n){},346:function(t,e,n){"use strict";n(318)},351:function(t,e,n){"use strict";n.r(e);var a={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted:function(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},c=(n(346),n(41)),i=Object(c.a)(a,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"c265c668",null);e.default=i.exports}}]);
|
||||
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{319:function(t,e,n){},347:function(t,e,n){"use strict";n(319)},351:function(t,e,n){"use strict";n.r(e);var a={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted:function(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},c=(n(347),n(41)),i=Object(c.a)(a,(function(){var t=this.$createElement;return(this._self._c||t)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"c265c668",null);e.default=i.exports}}]);
|
File diff suppressed because one or more lines are too long
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/9.f68a10a9.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/9.f68a10a9.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -184,6 +184,6 @@ java -Djava.security.egd<span class="token operator">=</span>file:/dev/./urandom
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/9.f68a10a9.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/9.f68a10a9.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/10.4c55a21d.js" as="script"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/10.ec70d570.js" as="script"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -154,6 +154,9 @@ Password: 开启SMTP服务后生成的随机授权码
|
|||
<span class="token key atrule">volumes</span><span class="token punctuation">:</span>
|
||||
<span class="token punctuation">-</span> ./server.crt<span class="token punctuation">:</span>/etc/nginx/etc/crt/server.crt
|
||||
<span class="token punctuation">-</span> ./server.key<span class="token punctuation">:</span>/etc/nginx/etc/crt/server.key
|
||||
<span class="token comment"># 修改前端logo</span>
|
||||
<span class="token comment"># - ./logo.a0924d7d.png:/usr/share/nginx/html/assets/img/logo.a0924d7d.png</span>
|
||||
<span class="token comment"># - ./backstage.8bce8c6e.png:/usr/share/nginx/html/assets/img/backstage.8bce8c6e.png</span>
|
||||
<span class="token key atrule">environment</span><span class="token punctuation">:</span>
|
||||
<span class="token punctuation">-</span> SERVER_NAME=localhost <span class="token comment"># 提供你的域名!!!!</span>
|
||||
<span class="token punctuation">-</span> BACKEND_SERVER_HOST=$<span class="token punctuation">{</span>BACKEND_HOST<span class="token punctuation">:</span><span class="token punctuation">-</span>172.20.0.5<span class="token punctuation">}</span> <span class="token comment"># backend后端服务地址</span>
|
||||
|
@ -165,7 +168,7 @@ Password: 开启SMTP服务后生成的随机授权码
|
|||
<span class="token key atrule">networks</span><span class="token punctuation">:</span>
|
||||
<span class="token key atrule">hoj-network</span><span class="token punctuation">:</span>
|
||||
<span class="token key atrule">ipv4_address</span><span class="token punctuation">:</span> 172.20.0.6
|
||||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br></div></div></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br></div></div></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||||
←
|
||||
<a href="/docs/deploy/" class="prev router-link-active">
|
||||
环境配置
|
||||
|
@ -174,6 +177,6 @@ Password: 开启SMTP服务后生成的随机授权码
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/10.4c55a21d.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/10.ec70d570.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/11.4861d789.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/11.3c715d4b.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -216,6 +216,6 @@ hoj-frontend
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/11.4861d789.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/11.3c715d4b.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/8.d67efa58.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/8.d67efa58.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -50,6 +50,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/8.d67efa58.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/8.d67efa58.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/12.d8b05b7c.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/12.f5d67101.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -171,6 +171,6 @@ java -XX:+UseG1GC -Djava.security.egd<span class="token operator">=</span>file:/
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/12.d8b05b7c.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/12.f5d67101.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/13.a5d0a23f.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/13.ca97dea5.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -163,6 +163,6 @@ EOF</span>
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/13.a5d0a23f.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/13.ca97dea5.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/14.8ee17087.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/14.33cb85fe.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -49,6 +49,6 @@ nacos/nacos-server:1.4.2
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/14.8ee17087.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/14.33cb85fe.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/15.618bada7.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/15.4e37b949.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -38,6 +38,6 @@ redis <span class="token punctuation">\</span>
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/15.618bada7.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/15.4e37b949.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/16.f1865f2e.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/16.f1865f2e.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -150,6 +150,6 @@ secrets <span class="token function">file</span> <span class="token operator">=<
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/16.f1865f2e.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/16.f1865f2e.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/18.1d51026e.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/18.1d51026e.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -73,6 +73,6 @@ BEFORE <span class="token keyword">INSERT</span> <span class="token keyword">ON<
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/18.1d51026e.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/18.1d51026e.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/17.c2e36571.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/17.c2e36571.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -33,6 +33,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/17.c2e36571.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/17.c2e36571.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/19.28b0b6dd.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/19.393c9a56.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -246,6 +246,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/19.28b0b6dd.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/19.393c9a56.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/7.120c22d9.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/7.120c22d9.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" aria-current="page" class="home-link router-link-exact-active router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -33,6 +33,6 @@
|
|||
</a></p></header> <div class="features"><div class="feature"><h2>分布式</h2> <p>支持多台判题服务随时增减</p></div><div class="feature"><h2>高效化</h2> <p>采用前后端分离,开发迅速,使用高性能可复用判题沙盒</p></div><div class="feature"><h2>定制化</h2> <p>网站高度集中配置,支持定制化修改</p></div><div class="feature"><h2>安全化</h2> <p>判题使用 cgroup 隔离用户程序,网站权限控制完善</p></div><div class="feature"><h2>多样化</h2> <p>独有自身判题服务,同时支持其它知名OJ题目的提交判题</p></div></div> <div class="theme-default-content custom content__default"></div> <div class="footer">
|
||||
MIT Licensed | Copyright © 2021.05.28 @Author Himit_ZH Email:oj.hcode@qq.com
|
||||
</div></main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/7.120c22d9.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/7.120c22d9.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/21.3710e210.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/21.3710e210.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -34,6 +34,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/21.3710e210.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/21.3710e210.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/20.26b3a223.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/20.534de8b6.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -29,6 +29,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/20.26b3a223.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/20.534de8b6.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/23.6fc11064.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/23.6fc11064.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -33,6 +33,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/23.6fc11064.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/23.6fc11064.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/24.541271c6.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/24.a70541b6.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -33,6 +33,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/24.541271c6.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/24.a70541b6.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/25.abbf0e9e.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/25.e000908d.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -24,7 +24,7 @@
|
|||
Gitee首页
|
||||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://blog.csdn.net/weixin_43853097" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
作者首页
|
||||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>开始介绍</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>部署文档</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>开发文档</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>使用文档</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/use/" aria-current="page" class="sidebar-link">使用简介</a></li><li><a href="/docs/use/testcase.html" class="sidebar-link">测试用例</a></li><li><a href="/docs/use/contest.html" class="sidebar-link">比赛介绍</a></li><li><a href="/docs/use/import-problem.html" aria-current="page" class="active sidebar-link">题目管理</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/docs/use/import-problem.html#一、hoj题目" class="sidebar-link">一、HOJ题目</a></li><li class="sidebar-sub-header"><a href="/docs/use/import-problem.html#二、导入其它oj题目" class="sidebar-link">二、导入其它OJ题目</a></li></ul></li><li><a href="/docs/use/import-user.html" class="sidebar-link">导入用户</a></li><li><a href="/docs/use/discussion-admin.html" class="sidebar-link">评论管理</a></li><li><a href="/docs/use/spj.html" class="sidebar-link">特殊判题</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="题目管理"><a href="#题目管理" class="header-anchor">#</a> 题目管理</h1> <h2 id="一、hoj题目"><a href="#一、hoj题目" class="header-anchor">#</a> 一、HOJ题目</h2> <p><img src="https://img-blog.csdnimg.cn/20210528205738445.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"></p> <h4 id="_1-导出题目"><a href="#_1-导出题目" class="header-anchor">#</a> 1. 导出题目</h4> <p>点击选择需要的题目,便可以批量导出成一个zip压缩包,分别对应一个json格式的题目数据,一个对应名字的文件夹存放评测数据文件,具体的文件结构如下:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>+-- problem_1000.json
|
||||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>开始介绍</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>部署文档</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>开发文档</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>使用文档</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/use/" aria-current="page" class="sidebar-link">使用简介</a></li><li><a href="/docs/use/testcase.html" class="sidebar-link">测试用例</a></li><li><a href="/docs/use/contest.html" class="sidebar-link">比赛介绍</a></li><li><a href="/docs/use/import-problem.html" aria-current="page" class="active sidebar-link">题目管理</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/docs/use/import-problem.html#一、hoj题目" class="sidebar-link">一、HOJ题目</a></li><li class="sidebar-sub-header"><a href="/docs/use/import-problem.html#二、导入qdoj的题目" class="sidebar-link">二、导入qdoj的题目</a></li><li class="sidebar-sub-header"><a href="/docs/use/import-problem.html#三、导入其它oj题目" class="sidebar-link">三、导入其它OJ题目</a></li></ul></li><li><a href="/docs/use/import-user.html" class="sidebar-link">导入用户</a></li><li><a href="/docs/use/discussion-admin.html" class="sidebar-link">评论管理</a></li><li><a href="/docs/use/spj.html" class="sidebar-link">特殊判题</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="题目管理"><a href="#题目管理" class="header-anchor">#</a> 题目管理</h1> <h2 id="一、hoj题目"><a href="#一、hoj题目" class="header-anchor">#</a> 一、HOJ题目</h2> <p><img src="https://img-blog.csdnimg.cn/20210530214011773.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"></p> <h4 id="_1-导出题目"><a href="#_1-导出题目" class="header-anchor">#</a> 1. 导出题目</h4> <p>点击选择需要的题目,便可以批量导出成一个zip压缩包,分别对应一个json格式的题目数据,一个对应名字的文件夹存放评测数据文件,具体的文件结构如下:</p> <div class="language- line-numbers-mode"><pre class="language-text"><code>+-- problem_1000.json
|
||||
+-- problem_1000
|
||||
| +-- 1.in
|
||||
| +-- 1.out
|
||||
|
@ -61,7 +61,7 @@
|
|||
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"tags"</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">"测试题"</span><span class="token punctuation">,</span><span class="token string">"测试"</span><span class="token punctuation">]</span><span class="token punctuation">,</span> <span class="token comment">// 题目标签,一般不超过三个 </span>
|
||||
<span class="token property">"problem"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"auth"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"auth"</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token comment">// 1 公开赛</span>
|
||||
<span class="token property">"author"</span><span class="token operator">:</span> <span class="token string">"admin"</span><span class="token punctuation">,</span> <span class="token comment">// 题目上传的作者,请使用用户名</span>
|
||||
<span class="token property">"isRemote"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span> <span class="token comment">// 均为非VJ题目,不用修改</span>
|
||||
<span class="token property">"problemId"</span><span class="token operator">:</span> <span class="token string">"HOJ-1010"</span><span class="token punctuation">,</span> <span class="token comment">// 题目的展示id</span>
|
||||
|
@ -95,7 +95,7 @@
|
|||
<span class="token punctuation">}</span>
|
||||
<span class="token punctuation">]</span>
|
||||
<span class="token punctuation">}</span>
|
||||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br><span class="line-number">38</span><br><span class="line-number">39</span><br><span class="line-number">40</span><br><span class="line-number">41</span><br><span class="line-number">42</span><br><span class="line-number">43</span><br><span class="line-number">44</span><br><span class="line-number">45</span><br><span class="line-number">46</span><br><span class="line-number">47</span><br><span class="line-number">48</span><br><span class="line-number">49</span><br><span class="line-number">50</span><br><span class="line-number">51</span><br></div></div><h2 id="二、导入其它oj题目"><a href="#二、导入其它oj题目" class="header-anchor">#</a> 二、导入其它OJ题目</h2> <p>导入HDU、Codeforces题目,只需提供该题目的题号便可一键导入</p> <p><strong>管理员进入后台,点击题目列表</strong></p> <p><img src="https://img-blog.csdnimg.cn/20210523223454472.png#pic_center" alt="在这里插入图片描述"></p> <p>然后添加上方的添加按钮</p> <p><img src="https://img-blog.csdnimg.cn/20210523222914722.png" alt="在这里插入图片描述"></p> <p><strong>在弹出窗中选择OJ名字及题号,便可导入</strong></p> <p><img src="https://img-blog.csdnimg.cn/20210523223042100.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"></p> <p><strong>注意:</strong></p> <ul><li>HDU的题号一般是 1000以上的数字</li> <li>Codeforces的题号是1000A、1000B、这种数字加大写英文字母的格式</li></ul></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||||
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br><span class="line-number">34</span><br><span class="line-number">35</span><br><span class="line-number">36</span><br><span class="line-number">37</span><br><span class="line-number">38</span><br><span class="line-number">39</span><br><span class="line-number">40</span><br><span class="line-number">41</span><br><span class="line-number">42</span><br><span class="line-number">43</span><br><span class="line-number">44</span><br><span class="line-number">45</span><br><span class="line-number">46</span><br><span class="line-number">47</span><br><span class="line-number">48</span><br><span class="line-number">49</span><br><span class="line-number">50</span><br><span class="line-number">51</span><br></div></div><h2 id="二、导入qdoj的题目"><a href="#二、导入qdoj的题目" class="header-anchor">#</a> 二、导入qdoj的题目</h2> <p>请严格按照青岛oj的后台导出的压缩文件来上传。</p> <p><img src="https://img-blog.csdnimg.cn/20210530212411781.png" alt="在这里插入图片描述"></p> <h2 id="三、导入其它oj题目"><a href="#三、导入其它oj题目" class="header-anchor">#</a> 三、导入其它OJ题目</h2> <p>导入HDU、Codeforces题目,只需提供该题目的题号便可一键导入</p> <p><strong>管理员进入后台,点击题目列表</strong></p> <p><img src="https://img-blog.csdnimg.cn/20210523223454472.png#pic_center" alt="在这里插入图片描述"></p> <p>然后添加上方的添加按钮</p> <p><img src="https://img-blog.csdnimg.cn/20210523222914722.png" alt="在这里插入图片描述"></p> <p><strong>在弹出窗中选择OJ名字及题号,便可导入</strong></p> <p><img src="https://img-blog.csdnimg.cn/20210523223042100.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70" alt="在这里插入图片描述"></p> <p><strong>注意:</strong></p> <ul><li>HDU的题号一般是 1000以上的数字</li> <li>Codeforces的题号是1000A、1000B、这种数字加大写英文字母的格式</li></ul></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||||
←
|
||||
<a href="/docs/use/contest.html" class="prev">
|
||||
比赛介绍
|
||||
|
@ -104,6 +104,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/25.abbf0e9e.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/25.e000908d.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/26.2bf4f42a.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/26.5dd72228.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -33,6 +33,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/26.2bf4f42a.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/26.5dd72228.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/22.5a29a611.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/22.2e9ffb3f.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -33,6 +33,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/22.5a29a611.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/22.2e9ffb3f.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/27.f0189890.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/27.7f689554.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/28.2e81fb40.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -82,6 +82,6 @@
|
|||
<a href="/docs/use/discussion-admin.html" class="prev">
|
||||
评论管理
|
||||
</a></span> <!----></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/27.f0189890.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/27.7f689554.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
<link rel="icon" href="/docs/img/favicon.ico">
|
||||
<meta name="description" content="HOJ 的开发与使用文档">
|
||||
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.a456a50a.css" as="style"><link rel="preload" href="/docs/assets/js/app.2b24ff06.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/28.2e81fb40.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.4c55a21d.js"><link rel="prefetch" href="/docs/assets/js/11.4861d789.js"><link rel="prefetch" href="/docs/assets/js/12.d8b05b7c.js"><link rel="prefetch" href="/docs/assets/js/13.a5d0a23f.js"><link rel="prefetch" href="/docs/assets/js/14.8ee17087.js"><link rel="prefetch" href="/docs/assets/js/15.618bada7.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.28b0b6dd.js"><link rel="prefetch" href="/docs/assets/js/20.26b3a223.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.5a29a611.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.541271c6.js"><link rel="prefetch" href="/docs/assets/js/25.abbf0e9e.js"><link rel="prefetch" href="/docs/assets/js/26.2bf4f42a.js"><link rel="prefetch" href="/docs/assets/js/27.f0189890.js"><link rel="prefetch" href="/docs/assets/js/3.807ef1c0.js"><link rel="prefetch" href="/docs/assets/js/4.18e98edc.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.a456a50a.css">
|
||||
<link rel="preload" href="/docs/assets/css/0.styles.0538ca31.css" as="style"><link rel="preload" href="/docs/assets/js/app.a50ec468.js" as="script"><link rel="preload" href="/docs/assets/js/2.3e9bf4c9.js" as="script"><link rel="preload" href="/docs/assets/js/28.2e81fb40.js" as="script"><link rel="prefetch" href="/docs/assets/js/10.ec70d570.js"><link rel="prefetch" href="/docs/assets/js/11.3c715d4b.js"><link rel="prefetch" href="/docs/assets/js/12.f5d67101.js"><link rel="prefetch" href="/docs/assets/js/13.ca97dea5.js"><link rel="prefetch" href="/docs/assets/js/14.33cb85fe.js"><link rel="prefetch" href="/docs/assets/js/15.4e37b949.js"><link rel="prefetch" href="/docs/assets/js/16.f1865f2e.js"><link rel="prefetch" href="/docs/assets/js/17.c2e36571.js"><link rel="prefetch" href="/docs/assets/js/18.1d51026e.js"><link rel="prefetch" href="/docs/assets/js/19.393c9a56.js"><link rel="prefetch" href="/docs/assets/js/20.534de8b6.js"><link rel="prefetch" href="/docs/assets/js/21.3710e210.js"><link rel="prefetch" href="/docs/assets/js/22.2e9ffb3f.js"><link rel="prefetch" href="/docs/assets/js/23.6fc11064.js"><link rel="prefetch" href="/docs/assets/js/24.a70541b6.js"><link rel="prefetch" href="/docs/assets/js/25.e000908d.js"><link rel="prefetch" href="/docs/assets/js/26.5dd72228.js"><link rel="prefetch" href="/docs/assets/js/27.7f689554.js"><link rel="prefetch" href="/docs/assets/js/3.068e2e40.js"><link rel="prefetch" href="/docs/assets/js/4.3f3da556.js"><link rel="prefetch" href="/docs/assets/js/5.abc1b238.js"><link rel="prefetch" href="/docs/assets/js/6.f86b5401.js"><link rel="prefetch" href="/docs/assets/js/7.120c22d9.js"><link rel="prefetch" href="/docs/assets/js/8.d67efa58.js"><link rel="prefetch" href="/docs/assets/js/9.f68a10a9.js">
|
||||
<link rel="stylesheet" href="/docs/assets/css/0.styles.0538ca31.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/" class="home-link router-link-active"><!----> <span class="site-name">HOJ 文档</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.hcode.top" target="_blank" rel="noopener noreferrer" class="nav-link external">
|
||||
|
@ -41,6 +41,6 @@
|
|||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/docs/assets/js/app.2b24ff06.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/28.2e81fb40.js" defer></script>
|
||||
<script src="/docs/assets/js/app.a50ec468.js" defer></script><script src="/docs/assets/js/2.3e9bf4c9.js" defer></script><script src="/docs/assets/js/28.2e81fb40.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -276,6 +276,9 @@ hoj-frontend:
|
|||
volumes:
|
||||
- ./server.crt:/etc/nginx/etc/crt/server.crt
|
||||
- ./server.key:/etc/nginx/etc/crt/server.key
|
||||
# 修改前端logo
|
||||
# - ./logo.a0924d7d.png:/usr/share/nginx/html/assets/img/logo.a0924d7d.png
|
||||
# - ./backstage.8bce8c6e.png:/usr/share/nginx/html/assets/img/backstage.8bce8c6e.png
|
||||
environment:
|
||||
- SERVER_NAME=localhost # 提供你的域名!!!!
|
||||
- BACKEND_SERVER_HOST=${BACKEND_HOST:-172.20.0.5} # backend后端服务地址
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## 一、HOJ题目
|
||||
|
||||
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210528205738445.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70)
|
||||
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210530214011773.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70)
|
||||
|
||||
#### 1. 导出题目
|
||||
|
||||
|
@ -60,7 +60,7 @@
|
|||
],
|
||||
"tags": ["测试题","测试"], // 题目标签,一般不超过三个
|
||||
"problem": {
|
||||
"auth": 1,
|
||||
"auth": 1, // 1 公开赛
|
||||
"author": "admin", // 题目上传的作者,请使用用户名
|
||||
"isRemote": false, // 均为非VJ题目,不用修改
|
||||
"problemId": "HOJ-1010", // 题目的展示id
|
||||
|
@ -96,14 +96,16 @@
|
|||
}
|
||||
```
|
||||
|
||||
## 二、导入qdoj的题目
|
||||
|
||||
请严格按照青岛oj的后台导出的压缩文件来上传。
|
||||
|
||||
## 二、导入其它OJ题目
|
||||
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210530212411781.png)
|
||||
|
||||
## 三、导入其它OJ题目
|
||||
|
||||
导入HDU、Codeforces题目,只需提供该题目的题号便可一键导入
|
||||
|
||||
|
||||
|
||||
**管理员进入后台,点击题目列表**
|
||||
|
||||
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210523223454472.png#pic_center)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
{"code":"(window.webpackJsonp=window.webpackJsonp||[]).push([[26],{373:function(t,s,a){\"use strict\";a.r(s);var e=a(41),l=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a(\"ContentSlotsDistributor\",{attrs:{\"slot-key\":t.$parent.slotKey}},[a(\"h2\",{attrs:{id:\"导入用户\"}},[a(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#导入用户\"}},[t._v(\"#\")]),t._v(\" 导入用户\")]),t._v(\" \"),a(\"p\",[a(\"img\",{attrs:{src:\"https://img-blog.csdnimg.cn/2021052322072728.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70\",alt:\"在这里插入图片描述\"}})]),t._v(\" \"),a(\"p\",[t._v(\"要求如下:\")]),t._v(\" \"),a(\"ol\",[a(\"li\",[a(\"p\",[t._v(\"用户数据导入仅支持csv格式的用户数据。\")])]),t._v(\" \"),a(\"li\",[a(\"p\",[t._v(\"共三列数据: 用户名,密码,邮箱,任一列不能为空,否则该行数据可能导入失败。\")])]),t._v(\" \"),a(\"li\",[a(\"p\",[t._v(\"第一行不必写(“用户名”,“密码”,“邮箱”)这三个列名。\")])]),t._v(\" \"),a(\"li\",[a(\"p\",[t._v(\"请导入保存为UTF-8编码的文件,否则中文可能会乱码。\")])])])])}),[],!1,null,null,null);s.default=l.exports}}]);","extractedComments":[]}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
{"code":"(window.webpackJsonp=window.webpackJsonp||[]).push([[22],{369:function(t,l,e){\"use strict\";e.r(l);var s=e(41),v=Object(s.a)({},(function(){var t=this,l=t.$createElement,e=t._self._c||l;return e(\"ContentSlotsDistributor\",{attrs:{\"slot-key\":t.$parent.slotKey}},[e(\"h1\",{attrs:{id:\"使用简介\"}},[e(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#使用简介\"}},[t._v(\"#\")]),t._v(\" 使用简介\")]),t._v(\" \"),e(\"ul\",[e(\"li\",[t._v(\"测试数据的介绍\")]),t._v(\" \"),e(\"li\",[t._v(\"比赛的介绍\")]),t._v(\" \"),e(\"li\",[t._v(\"导入题目的介绍\")]),t._v(\" \"),e(\"li\",[t._v(\"导入用户的介绍\")]),t._v(\" \"),e(\"li\",[t._v(\"讨论管理的介绍\")]),t._v(\" \"),e(\"li\",[t._v(\"特殊判题的程序例子\")]),t._v(\" \"),e(\"li\",[t._v(\"其它待续......\")])])])}),[],!1,null,null,null);l.default=v.exports}}]);","extractedComments":[]}
|
|
@ -0,0 +1 @@
|
|||
{"code":"(window.webpackJsonp=window.webpackJsonp||[]).push([[24],{371:function(t,s,a){\"use strict\";a.r(s);var e=a(41),r=Object(e.a)({},(function(){var t=this,s=t.$createElement,a=t._self._c||s;return a(\"ContentSlotsDistributor\",{attrs:{\"slot-key\":t.$parent.slotKey}},[a(\"h1\",{attrs:{id:\"评论管理\"}},[a(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#评论管理\"}},[t._v(\"#\")]),t._v(\" 评论管理\")]),t._v(\" \"),a(\"p\",[a(\"img\",{attrs:{src:\"https://img-blog.csdnimg.cn/20210523223605573.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70#pic_center\",alt:\"在这里插入图片描述\"}})]),t._v(\" \"),a(\"ul\",[a(\"li\",[a(\"p\",[t._v(\"后台管理员可以查看所有的讨论帖,并且可以选择是否置顶,是否正常显示,删除,查看等\")])]),t._v(\" \"),a(\"li\",[a(\"p\",[t._v(\"后台管理员可以查看对应讨论帖的举报内容\")]),t._v(\" \"),a(\"p\",[a(\"img\",{attrs:{src:\"https://img-blog.csdnimg.cn/20210523221321418.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg1MzA5Nw==,size_16,color_FFFFFF,t_70\",alt:\"在这里插入图片描述\"}})])])])])}),[],!1,null,null,null);s.default=r.exports}}]);","extractedComments":[]}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
{"code":"(window.webpackJsonp=window.webpackJsonp||[]).push([[15],{361:function(s,a,t){\"use strict\";t.r(a);var e=t(41),r=Object(e.a)({},(function(){var s=this,a=s.$createElement,t=s._self._c||a;return t(\"ContentSlotsDistributor\",{attrs:{\"slot-key\":s.$parent.slotKey}},[t(\"h1\",{attrs:{id:\"redis部署\"}},[t(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#redis部署\"}},[s._v(\"#\")]),s._v(\" Redis部署\")]),s._v(\" \"),t(\"h2\",{attrs:{id:\"docker部署\"}},[t(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#docker部署\"}},[s._v(\"#\")]),s._v(\" docker部署\")]),s._v(\" \"),t(\"div\",{staticClass:\"language-shell line-numbers-mode\"},[t(\"pre\",{pre:!0,attrs:{class:\"language-shell\"}},[t(\"code\",[s._v(\"docker run -d --name redis -p \"),t(\"span\",{pre:!0,attrs:{class:\"token number\"}},[s._v(\"6379\")]),s._v(\":6379 \\n-v /hoj/data/redis/data:/data \"),t(\"span\",{pre:!0,attrs:{class:\"token punctuation\"}},[s._v(\"\\\\\")]),s._v(\"\\n--restart\"),t(\"span\",{pre:!0,attrs:{class:\"token operator\"}},[s._v(\"=\")]),t(\"span\",{pre:!0,attrs:{class:\"token string\"}},[s._v('\"always\"')]),s._v(\" \"),t(\"span\",{pre:!0,attrs:{class:\"token punctuation\"}},[s._v(\"\\\\\")]),s._v(\"\\nredis \"),t(\"span\",{pre:!0,attrs:{class:\"token punctuation\"}},[s._v(\"\\\\\")]),s._v(\"\\n--requirepass \"),t(\"span\",{pre:!0,attrs:{class:\"token string\"}},[s._v('\"redis_password\"')]),s._v(\" \\n\")])]),s._v(\" \"),t(\"div\",{staticClass:\"line-numbers-wrapper\"},[t(\"span\",{staticClass:\"line-number\"},[s._v(\"1\")]),t(\"br\"),t(\"span\",{staticClass:\"line-number\"},[s._v(\"2\")]),t(\"br\"),t(\"span\",{staticClass:\"line-number\"},[s._v(\"3\")]),t(\"br\"),t(\"span\",{staticClass:\"line-number\"},[s._v(\"4\")]),t(\"br\"),t(\"span\",{staticClass:\"line-number\"},[s._v(\"5\")]),t(\"br\")])]),t(\"h2\",{attrs:{id:\"常规部署\"}},[t(\"a\",{staticClass:\"header-anchor\",attrs:{href:\"#常规部署\"}},[s._v(\"#\")]),s._v(\" 常规部署\")]),s._v(\" \"),t(\"p\",[s._v(\"请自行百度。。\")])])}),[],!1,null,null,null);a.default=r.exports}}]);","extractedComments":[]}
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/0b/c7/49a15998c1594632da8d3747b9575ef780cb0f386b86f02d2c2317f61016
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/0b/c7/49a15998c1594632da8d3747b9575ef780cb0f386b86f02d2c2317f61016
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
9337c77a7c63706344082fe0256aaad179778ae0 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"4b12eb0f2170bbf798c6a298afcd1ae4\"}","integrity":"sha512-dKypdvON4wbpRdQ3LGv1e/SLtMCpwhRf5Msve4N4WwllyaictNVWdm28HCE5E8YCUbK2CMpmGyETE0WpVO49fw==","time":1622382211109,"size":205025}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/1b/99/9da6dbc353ec16ce5190046f8846bbe52b36d9235924fe40259c28e4437a
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/1b/99/9da6dbc353ec16ce5190046f8846bbe52b36d9235924fe40259c28e4437a
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
320a58efc513167df1a2001cd25fea02bf53044b {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"63912d5bf7eb440b06f6e2196185734c\"}","integrity":"sha512-n/FkdsUEua4EmG8WNGljyeqk9k/BnRN5riYVFNCBJ3C5FJDsqGhhZqugHpkXB289xADtzTGPCKR4NyacWmFTkA==","time":1622382209416,"size":65546}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/33/e4/29e05b733b06477caec70276ad9461d3d61451dd91ba0043c507bec39245
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/33/e4/29e05b733b06477caec70276ad9461d3d61451dd91ba0043c507bec39245
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
ff99c1ef26b824c1a9a0d4776f8ddd851863f464 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"4aaf0e8a7a0d744753618953ad40d13d\"}","integrity":"sha512-DUlHQW6EHEVZMa6oBKJRL3koom73n5VQofZRhvMd5OmLWc0eCSmTchLXXOAFfyeOoJbdWDKvTqJnveMnCVTQcQ==","time":1622382208688,"size":1095}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/38/ee/845ef868793b33cdf944658c87b6f70d70f923981adcb7ab63893d5b592f
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/38/ee/845ef868793b33cdf944658c87b6f70d70f923981adcb7ab63893d5b592f
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
da843ae7134c1974cebcb9beb0e23935ac6301f2 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"24ec5fc09f61351875463a79658be1ee\"}","integrity":"sha512-TCoN7+2RtXEeFjinMZmkjbkIJ1MALt1BLDP+a7TqfCHg8Y0yGPaoqvPSDCK9msWDVv3uBhWw9pRiGFf56YuNgQ==","time":1622382208577,"size":1190}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/56/ee/062f01a3a76e87dfba3522341ed927c9fa5f531e39075d7a24bfc2b25b90
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/56/ee/062f01a3a76e87dfba3522341ed927c9fa5f531e39075d7a24bfc2b25b90
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
1be3ab22013414241bbad71828c215bde6f1b995 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"f373845bf39e012eb3970e4a22da1d4d\"}","integrity":"sha512-L0I4WoKw54T8CFQ0lngfCDrdZkigpwj2Bbisbg8fvfCTTUSbzZhcZfcKpDQqiBghx92wTrrBBSb2cPZwG0qcRA==","time":1622382208574,"size":787}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/5f/ce/8736353aac036c7e0eb333af4b672902f3b63649dc05482c647e3b450fff
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/5f/ce/8736353aac036c7e0eb333af4b672902f3b63649dc05482c647e3b450fff
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
f835fe463bd53f6cf631fecf8ff9bb56a46fc40d {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"a3392254f46a4d2974ae09d8df108504\"}","integrity":"sha512-xqs44ojfaWzxYLHio2XYg0+7RuDZ8IJWEQRt0gAdPi8v1qfuPinPmk1mNc1emq6KDNJq3l/9RRYKFIi+9ha7ZQ==","time":1622382209224,"size":34511}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/69/23/3a53596c2743e17e315e2990e3b7936321dab2a4cb0b0aefe2abf5ff1b02
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/69/23/3a53596c2743e17e315e2990e3b7936321dab2a4cb0b0aefe2abf5ff1b02
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
172b5acbdece410f338362db412d35421133bfed {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"aed24cd048e1fc12ea4bd788a2857722\"}","integrity":"sha512-im+0v6SxoY8OvomjSLg3KwFRyHHBC3Wv9k3FykOWrz8hqA00cBUiOV/67lxzwal8csdvYFcmVPEjeK1vVI/MEw==","time":1622382209285,"size":43127}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/8e/3c/3e865950f693f4557f7d768a55d528bb5524b04a3acb5ac12250523922bf
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/8e/3c/3e865950f693f4557f7d768a55d528bb5524b04a3acb5ac12250523922bf
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
9de70d5abed4b813ffea1980e4b026e2b802b616 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"e242c1ed687749cba9612ca244b2aba4\"}","integrity":"sha512-Y9bR0itT/HYli1Bw93+NtlUV1BJANZa4l0r/4i3BhZbjvBum/WF6IeCbDvSexGA5CfHMgYIho70n7RZEmDrzvw==","time":1622382208633,"size":7479}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/9d/c3/3523d219bfcbff63c6b4a61bf5c806d8ecf7e9da69f50e43db0ab016a09e
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/9d/c3/3523d219bfcbff63c6b4a61bf5c806d8ecf7e9da69f50e43db0ab016a09e
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
94351e6012badfaa738b8cdb7d809e79844fe6e4 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"f1099b6087b7caed766fce7f153ac499\"}","integrity":"sha512-jBYj2Frua8jf4PwpHTIXAB6ayut9cWQjR9+/6EubUS1naxPgsmBqopGi3q3iGWtrQDAlgYRUYkFI7mHLbDMi6g==","time":1622382208581,"size":2049}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/a5/a8/3ce42c1465ea2ac552000408da77cc7e92a5048980c26dcebbd1771ddbbd
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/a5/a8/3ce42c1465ea2ac552000408da77cc7e92a5048980c26dcebbd1771ddbbd
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
64bce4a5a61200fd5b16b3a6becd6bdef54f9624 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"5bc9a2da79a7fdbbde1695f1a3caedc4\"}","integrity":"sha512-vul5Vk6Qupm3VTiCZ6XHgzm0+XPlFa70FnmwCewh6aCH0RJMUKQJvST/K5CEx9Pkk6EjA8hJED9S/ed+kSp2FA==","time":1622382209124,"size":18120}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/dc/a6/75c7b0e7a5c59d9f97c5720442617cfe4606023342e16b2e6ac75dfb62f2
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/dc/a6/75c7b0e7a5c59d9f97c5720442617cfe4606023342e16b2e6ac75dfb62f2
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
6deadd14cc725c0d65ed23e5d53f32aba65fc627 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"4c9b127494d107feedaa5982f16b051e\"}","integrity":"sha512-Gcve4WY1BJ6z0OxUN1n9qPV9jvqDq3TGhesFmxugQjj50IPR8Xg3IFCHFPi+2LqeHjwNV+bc19+wAm0YVFJVTQ==","time":1622382209126,"size":24776}
|
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/de/f9/770f41b2a17339a16167e8898d110fa04bd9ac24a5e989e514b009b2f28c
generated
vendored
Normal file
2
docs/node_modules/.cache/terser-webpack-plugin/index-v5/de/f9/770f41b2a17339a16167e8898d110fa04bd9ac24a5e989e514b009b2f28c
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
|
||||
9de4f776fc41dd2601b461dff919b4762523ec38 {"key":"{\"terser\":\"4.8.0\",\"node_version\":\"v12.18.1\",\"terser-webpack-plugin\":\"1.4.5\",\"terser-webpack-plugin-options\":{\"test\":new RegExp(\"\\\\.m?js(\\\\?.*)?$\", \"i\"),\"chunkFilter\":() => true,\"warningsFilter\":() => true,\"extractComments\":false,\"sourceMap\":false,\"cache\":true,\"cacheKeys\":defaultCacheKeys => defaultCacheKeys,\"parallel\":true,\"include\":undefined,\"exclude\":undefined,\"minify\":undefined,\"terserOptions\":{\"output\":{\"comments\":new RegExp(\"^\\\\**!|@preserve|@license|@cc_on\", \"i\")}}},\"hash\":\"b7b16b758bb016a8ac08d7aaf51308a9\"}","integrity":"sha512-vTjwRIABKwSVDtD8+0MbXr4qo0pL8M/K8e7g7Lafz/QVgKSBzkQ2829sJ7ZvL9zdoULDHiJTI+zCyWEBC1amwA==","time":1622382208678,"size":5749}
|
|
@ -19,6 +19,7 @@ import top.hcode.hoj.pojo.dto.ProblemDto;
|
|||
import top.hcode.hoj.pojo.entity.*;
|
||||
import top.hcode.hoj.pojo.vo.UserRolesVo;
|
||||
import top.hcode.hoj.service.impl.*;
|
||||
import top.hcode.hoj.utils.Constants;
|
||||
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
@ -63,9 +64,11 @@ public class AdminProblemController {
|
|||
|
||||
QueryWrapper<Problem> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.orderByDesc("gmt_create");
|
||||
if (!StringUtils.isEmpty(oj)) {
|
||||
queryWrapper.like("problem_id", oj.toUpperCase());
|
||||
|
||||
if (oj != null && oj.equals("Mine")) {
|
||||
queryWrapper.eq("is_remote", false);
|
||||
}
|
||||
|
||||
if (!StringUtils.isEmpty(keyword)) {
|
||||
final String key = keyword.trim();
|
||||
queryWrapper.and(wrapper -> wrapper.like("title", key).or()
|
||||
|
|
|
@ -50,13 +50,14 @@ public class AdminUserController {
|
|||
@RequiresPermissions("announcement_admin")
|
||||
public CommonResult getUserList(@RequestParam(value = "limit", required = false) Integer limit,
|
||||
@RequestParam(value = "currentPage", required = false) Integer currentPage,
|
||||
@RequestParam(value = "onlyAdmin", defaultValue = "false") Boolean onlyAdmin,
|
||||
@RequestParam(value = "keyword", required = false) String keyword) {
|
||||
if (currentPage == null || currentPage < 1) currentPage = 1;
|
||||
if (limit == null || limit < 1) limit = 10;
|
||||
if (keyword != null) {
|
||||
keyword = keyword.trim();
|
||||
}
|
||||
IPage<UserRolesVo> userList = userRoleService.getUserList(limit, currentPage, keyword);
|
||||
IPage<UserRolesVo> userList = userRoleService.getUserList(limit, currentPage, keyword, onlyAdmin);
|
||||
if (userList.getTotal() == 0) { // 未查询到一条数据
|
||||
return CommonResult.successResponse(userList, "暂无数据");
|
||||
} else {
|
||||
|
|
|
@ -58,7 +58,7 @@ public class ConfigController {
|
|||
return CommonResult.successResponse(configService.getJudgeServiceInfo());
|
||||
}
|
||||
|
||||
@RequiresPermissions("announcement_admin")
|
||||
@RequiresPermissions("system_info_admin")
|
||||
@RequestMapping("/get-web-config")
|
||||
public CommonResult getWebConfig() {
|
||||
|
||||
|
@ -66,6 +66,7 @@ public class ConfigController {
|
|||
MapUtil.builder().put("baseUrl", configVo.getBaseUrl())
|
||||
.put("name", configVo.getName())
|
||||
.put("shortName", configVo.getShortName())
|
||||
.put("description", configVo.getDescription())
|
||||
.put("register", configVo.getRegister())
|
||||
.put("recordName", configVo.getRecordName())
|
||||
.put("recordUrl", configVo.getRecordUrl())
|
||||
|
@ -74,7 +75,7 @@ public class ConfigController {
|
|||
);
|
||||
}
|
||||
|
||||
@RequiresPermissions("announcement_admin")
|
||||
@RequiresPermissions("system_info_admin")
|
||||
@RequestMapping(value = "/set-web-config",method = RequestMethod.PUT)
|
||||
public CommonResult setWebConfig(@RequestBody HashMap<String,Object> params){
|
||||
|
||||
|
@ -86,7 +87,7 @@ public class ConfigController {
|
|||
}
|
||||
}
|
||||
|
||||
@RequiresPermissions("announcement_admin")
|
||||
@RequiresPermissions("system_info_admin")
|
||||
@RequestMapping("/get-email-config")
|
||||
public CommonResult getEmailConfig() {
|
||||
return CommonResult.successResponse(
|
||||
|
@ -99,7 +100,7 @@ public class ConfigController {
|
|||
);
|
||||
}
|
||||
|
||||
@RequiresPermissions("announcement_admin")
|
||||
@RequiresPermissions("system_info_admin")
|
||||
@PutMapping("/set-email-config")
|
||||
public CommonResult setEmailConfig(@RequestBody HashMap<String,Object> params) {
|
||||
|
||||
|
@ -111,7 +112,7 @@ public class ConfigController {
|
|||
}
|
||||
}
|
||||
|
||||
@RequiresPermissions("announcement_admin")
|
||||
@RequiresPermissions("system_info_admin")
|
||||
@PostMapping("/test-email")
|
||||
public CommonResult testEmail(@RequestBody HashMap<String,Object> params) throws MessagingException {
|
||||
String email = (String) params.get("email");
|
||||
|
@ -124,7 +125,7 @@ public class ConfigController {
|
|||
}
|
||||
}
|
||||
|
||||
@RequiresPermissions("announcement_admin")
|
||||
@RequiresPermissions("system_info_admin")
|
||||
@RequestMapping("/get-db-and-redis-config")
|
||||
public CommonResult getDBAndRedisConfig(){
|
||||
|
||||
|
@ -141,7 +142,7 @@ public class ConfigController {
|
|||
);
|
||||
}
|
||||
|
||||
@RequiresPermissions("announcement_admin")
|
||||
@RequiresPermissions("system_info_admin")
|
||||
@PutMapping("/set-db-and-redis-config")
|
||||
public CommonResult setDBAndRedisConfig(@RequestBody HashMap<String,Object> params){
|
||||
boolean result = configService.setDBAndRedisConfig(params);
|
||||
|
|
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
|||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.io.file.FileReader;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.text.UnicodeUtil;
|
||||
import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ZipUtil;
|
||||
import cn.hutool.core.io.file.FileWriter;
|
||||
|
@ -14,6 +15,7 @@ import com.alibaba.excel.EasyExcel;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.apache.shiro.authz.annotation.Logical;
|
||||
import org.apache.shiro.authz.annotation.RequiresAuthentication;
|
||||
|
@ -30,6 +32,7 @@ import org.yaml.snakeyaml.constructor.Constructor;
|
|||
import org.yaml.snakeyaml.error.YAMLException;
|
||||
import top.hcode.hoj.common.result.CommonResult;
|
||||
import top.hcode.hoj.pojo.dto.ProblemDto;
|
||||
import top.hcode.hoj.pojo.dto.QDOJProblemDto;
|
||||
import top.hcode.hoj.pojo.entity.*;
|
||||
import top.hcode.hoj.pojo.vo.*;
|
||||
import top.hcode.hoj.service.impl.*;
|
||||
|
@ -675,7 +678,6 @@ public class FileController {
|
|||
HashMap<String, File> problemInfo = new HashMap<>();
|
||||
HashMap<String, File> testcaseInfo = new HashMap<>();
|
||||
|
||||
// 遍历读取与检查是否in和out文件一一对应,否则报错
|
||||
for (File tmp : files) {
|
||||
if (tmp.isFile()) {
|
||||
// 检查文件是否时json文件
|
||||
|
@ -723,6 +725,11 @@ public class FileController {
|
|||
UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo");
|
||||
|
||||
List<ProblemDto> problemDtos = new LinkedList<>();
|
||||
List<Tag> tagList = tagService.list();
|
||||
HashMap<String, Long> tagMap = new HashMap<>();
|
||||
for (Tag tag : tagList) {
|
||||
tagMap.put(tag.getName(), tag.getId());
|
||||
}
|
||||
for (String key : problemInfo.keySet()) {
|
||||
ImportProblemVo importProblemVo = problemVoMap.get(key);
|
||||
// 格式化题目语言
|
||||
|
@ -757,12 +764,6 @@ public class FileController {
|
|||
problemCaseList.add(BeanUtil.mapToBean(tmp, ProblemCase.class, true));
|
||||
}
|
||||
|
||||
List<Tag> tagList = tagService.list();
|
||||
HashMap<String, Long> tagMap = new HashMap<>();
|
||||
for (Tag tag : tagList) {
|
||||
tagMap.put(tag.getName(), tag.getId());
|
||||
}
|
||||
|
||||
ProblemDto problemDto = new ProblemDto();
|
||||
problemDto.setIsSpj(importProblemVo.getIsSpj())
|
||||
.setProblem(problem)
|
||||
|
@ -783,6 +784,203 @@ public class FileController {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param file
|
||||
* @MethodName importProblem
|
||||
* @Description zip文件导入题目
|
||||
* @Return
|
||||
* @Since 2021/5/27
|
||||
*/
|
||||
@RequiresRoles(value = {"root", "admin"}, logical = Logical.OR)
|
||||
@RequiresAuthentication
|
||||
@ResponseBody
|
||||
@Transactional
|
||||
@PostMapping("/import-qdoj-problem")
|
||||
public CommonResult importQDOJProblem(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
|
||||
|
||||
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".") + 1);
|
||||
if (!"zip".toUpperCase().contains(suffix.toUpperCase())) {
|
||||
return CommonResult.errorResponse("请上传zip格式的题目文件压缩包!");
|
||||
}
|
||||
|
||||
String fileDirId = IdUtil.simpleUUID();
|
||||
String fileDir = Constants.File.TESTCASE_TMP_FOLDER.getPath() + File.separator + fileDirId;
|
||||
String filePath = fileDir + File.separator + file.getOriginalFilename();
|
||||
// 文件夹不存在就新建
|
||||
FileUtil.mkdir(fileDir);
|
||||
try {
|
||||
file.transferTo(new File(filePath));
|
||||
} catch (IOException e) {
|
||||
FileUtil.del(fileDir);
|
||||
return CommonResult.errorResponse("服务器异常:评测数据上传失败!");
|
||||
}
|
||||
|
||||
// 将压缩包压缩到指定文件夹
|
||||
ZipUtil.unzip(filePath, fileDir);
|
||||
|
||||
// 删除zip文件
|
||||
FileUtil.del(filePath);
|
||||
|
||||
|
||||
// 检查文件是否存在
|
||||
File testCaseFileList = new File(fileDir);
|
||||
File[] files = testCaseFileList.listFiles();
|
||||
if (files == null || files.length == 0) {
|
||||
FileUtil.del(fileDir);
|
||||
return CommonResult.errorResponse("评测数据压缩包里文件不能为空!");
|
||||
}
|
||||
|
||||
|
||||
HashMap<String, File> problemInfo = new HashMap<>();
|
||||
for (File tmp : files) {
|
||||
if (tmp.isDirectory()) {
|
||||
File[] problemAndTestcase = tmp.listFiles();
|
||||
if (problemAndTestcase == null || problemAndTestcase.length == 0) {
|
||||
FileUtil.del(fileDir);
|
||||
return CommonResult.errorResponse("编号为:" + tmp.getName() + "的文件夹为空!");
|
||||
}
|
||||
for (File problemFile : problemAndTestcase) {
|
||||
if (problemFile.isFile()) {
|
||||
// 检查文件是否时json文件
|
||||
if (!problemFile.getName().endsWith("json")) {
|
||||
FileUtil.del(fileDir);
|
||||
return CommonResult.errorResponse("编号为:" + tmp.getName() + "的文件夹里面的题目数据格式错误,请使用json文件!");
|
||||
}
|
||||
problemInfo.put(tmp.getName(), problemFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 读取json文件生成对象
|
||||
HashMap<String, QDOJProblemDto> problemVoMap = new HashMap<>();
|
||||
for (String key : problemInfo.keySet()) {
|
||||
try {
|
||||
FileReader fileReader = new FileReader(problemInfo.get(key));
|
||||
JSONObject problemJson = JSONUtil.parseObj(fileReader.readString());
|
||||
QDOJProblemDto qdojProblemDto = QDOJProblemToProblemVo(problemJson);
|
||||
problemVoMap.put(key, qdojProblemDto);
|
||||
} catch (Exception e) {
|
||||
FileUtil.del(fileDir);
|
||||
return CommonResult.errorResponse("请检查编号为:" + key + "的题目json文件的格式:" + e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
|
||||
QueryWrapper<Language> languageQueryWrapper = new QueryWrapper<>();
|
||||
languageQueryWrapper.eq("oj", "ME");
|
||||
List<Language> languageList = languageService.list(languageQueryWrapper);
|
||||
|
||||
HashMap<String, Long> languageMap = new HashMap<>();
|
||||
for (Language language : languageList) {
|
||||
languageMap.put(language.getName(), language.getId());
|
||||
}
|
||||
|
||||
// 获取当前登录的用户
|
||||
HttpSession session = request.getSession();
|
||||
UserRolesVo userRolesVo = (UserRolesVo) session.getAttribute("userInfo");
|
||||
|
||||
List<Tag> tagList = tagService.list();
|
||||
HashMap<String, Long> tagMap = new HashMap<>();
|
||||
for (Tag tag : tagList) {
|
||||
tagMap.put(tag.getName(), tag.getId());
|
||||
}
|
||||
|
||||
List<ProblemDto> problemDtos = new LinkedList<>();
|
||||
for (String key : problemInfo.keySet()) {
|
||||
QDOJProblemDto qdojProblemDto = problemVoMap.get(key);
|
||||
// 格式化题目语言
|
||||
List<Language> languages = new LinkedList<>();
|
||||
for (String lang : qdojProblemDto.getLanguages()) {
|
||||
Long lid = languageMap.getOrDefault(lang, null);
|
||||
languages.add(new Language().setId(lid).setName(lang));
|
||||
}
|
||||
|
||||
Problem problem = qdojProblemDto.getProblem();
|
||||
if (problem.getAuthor() == null) {
|
||||
problem.setAuthor(userRolesVo.getUsername());
|
||||
}
|
||||
ProblemDto problemDto = new ProblemDto();
|
||||
problemDto.setIsSpj(qdojProblemDto.getIsSpj())
|
||||
.setProblem(problem)
|
||||
.setCodeTemplates(qdojProblemDto.getCodeTemplates())
|
||||
.setTags(qdojProblemDto.getTags().stream().map(tag -> new Tag().setName(tag).setId(tagMap.getOrDefault(tag, null))).collect(Collectors.toList()))
|
||||
.setLanguages(languages)
|
||||
.setUploadTestcaseDir(fileDir + File.separator + key + File.separator + "testcase")
|
||||
.setIsUploadTestCase(true)
|
||||
.setSamples(qdojProblemDto.getSamples());
|
||||
|
||||
problemDtos.add(problemDto);
|
||||
}
|
||||
for (ProblemDto problemDto : problemDtos) {
|
||||
problemService.adminAddProblem(problemDto);
|
||||
}
|
||||
FileUtil.del(fileDir);
|
||||
return CommonResult.successResponse(null, "导入题目成功");
|
||||
}
|
||||
|
||||
|
||||
private QDOJProblemDto QDOJProblemToProblemVo(JSONObject problemJson) {
|
||||
QDOJProblemDto qdojProblemDto = new QDOJProblemDto();
|
||||
List<String> tags = (List<String>) problemJson.get("tags");
|
||||
qdojProblemDto.setTags(tags.stream().map(UnicodeUtil::toString).collect(Collectors.toList()));
|
||||
qdojProblemDto.setLanguages(Arrays.asList("C", "C++", "Java", "Python3", "Python2", "Golang", "C#"));
|
||||
JSONObject spj = problemJson.getJSONObject("spj");
|
||||
qdojProblemDto.setIsSpj(spj != null);
|
||||
Problem problem = new Problem();
|
||||
problem.setAuth(1)
|
||||
.setSource(problemJson.getStr("source", null))
|
||||
.setDifficulty(1)
|
||||
.setProblemId(problemJson.getStr("display_id"))
|
||||
.setIsRemoveEndBlank(true)
|
||||
.setOpenCaseResult(true)
|
||||
.setCodeShare(false)
|
||||
.setType(problemJson.getStr("rule_type").equals("ACM") ? 0 : 1)
|
||||
.setTitle(problemJson.getStr("title"))
|
||||
.setDescription(UnicodeUtil.toString(problemJson.getJSONObject("description").getStr("value")))
|
||||
.setInput(UnicodeUtil.toString(problemJson.getJSONObject("input_description").getStr("value")))
|
||||
.setOutput(UnicodeUtil.toString(problemJson.getJSONObject("output_description").getStr("value")))
|
||||
.setHint(UnicodeUtil.toString(problemJson.getJSONObject("hint").getStr("value")))
|
||||
.setTimeLimit(problemJson.getInt("time_limit"))
|
||||
.setMemoryLimit(problemJson.getInt("memory_limit"));
|
||||
|
||||
if (qdojProblemDto.getIsSpj() && spj != null) {
|
||||
problem.setSpjCode(spj.getStr("code"))
|
||||
.setSpjLanguage(spj.getStr("language"));
|
||||
}
|
||||
|
||||
JSONArray samples = problemJson.getJSONArray("samples");
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < samples.size(); i++) {
|
||||
JSONObject sample = (JSONObject) samples.get(i);
|
||||
String input = sample.getStr("input");
|
||||
String output = sample.getStr("output");
|
||||
sb.append("<input>").append(input).append("</input>");
|
||||
sb.append("<output>").append(output).append("</output>");
|
||||
}
|
||||
problem.setExamples(sb.toString());
|
||||
|
||||
int sumScore = 0;
|
||||
JSONArray testcaseList = problemJson.getJSONArray("test_case_score");
|
||||
List<ProblemCase> problemSamples = new LinkedList<>();
|
||||
for (int i = 0; i < testcaseList.size(); i++) {
|
||||
JSONObject testcase = (JSONObject) testcaseList.get(i);
|
||||
String input = testcase.getStr("input_name");
|
||||
String output = testcase.getStr("output_name");
|
||||
Integer score = testcase.getInt("score", null);
|
||||
problemSamples.add(new ProblemCase().setInput(input).setOutput(output).setScore(score));
|
||||
if (score != null) {
|
||||
sumScore += score;
|
||||
}
|
||||
}
|
||||
problem.setIsRemote(false);
|
||||
problem.setIoScore(sumScore);
|
||||
qdojProblemDto.setSamples(problemSamples);
|
||||
qdojProblemDto.setProblem(problem);
|
||||
return qdojProblemDto;
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param pidList
|
||||
* @param response
|
||||
|
|
|
@ -137,6 +137,8 @@ public class HomeController {
|
|||
.put("register", configVo.getRegister())
|
||||
.put("recordName", configVo.getRecordName())
|
||||
.put("recordUrl", configVo.getRecordUrl())
|
||||
.put("description", configVo.getDescription())
|
||||
.put("email", configVo.getEmailUsername())
|
||||
.put("projectName", configVo.getProjectName())
|
||||
.put("projectUrl", configVo.getProjectUrl()).map()
|
||||
);
|
||||
|
|
|
@ -88,7 +88,9 @@ public class ProblemController {
|
|||
pid = Long.valueOf(keyword);
|
||||
}
|
||||
}
|
||||
|
||||
if (oj!=null && !Constants.RemoteOJ.isRemoteOJ(oj)) {
|
||||
oj = "Mine";
|
||||
}
|
||||
Page<ProblemVo> problemList = problemService.getProblemList(limit, currentPage, pid, keyword,
|
||||
difficulty, tagId, oj);
|
||||
if (problemList.getTotal() == 0) { // 未查询到一条数据
|
||||
|
|
|
@ -13,7 +13,7 @@ import java.util.List;
|
|||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author Himit_ZH
|
||||
|
@ -22,8 +22,13 @@ import java.util.List;
|
|||
@Mapper
|
||||
@Repository
|
||||
public interface UserRoleMapper extends BaseMapper<UserRole> {
|
||||
UserRolesVo getUserRoles(@Param("uid")String uid,@Param("username")String username);
|
||||
IPage<UserRolesVo> getUserList(Page<UserRolesVo> page, @Param("limit")int limit,
|
||||
@Param("currentPage")int currentPage,
|
||||
@Param("keyword")String keyword);
|
||||
UserRolesVo getUserRoles(@Param("uid") String uid, @Param("username") String username);
|
||||
|
||||
IPage<UserRolesVo> getUserList(Page<UserRolesVo> page, @Param("limit") int limit,
|
||||
@Param("currentPage") int currentPage,
|
||||
@Param("keyword") String keyword);
|
||||
|
||||
IPage<UserRolesVo> getAdminUserList(Page<UserRolesVo> page, @Param("limit") int limit,
|
||||
@Param("currentPage") int currentPage,
|
||||
@Param("keyword") String keyword);
|
||||
}
|
||||
|
|
|
@ -44,8 +44,11 @@
|
|||
<if test="tid != null">
|
||||
and pt.tid = #{tid}
|
||||
</if>
|
||||
<if test="oj != null">
|
||||
and p.problem_id like concat(#{oj},'%')
|
||||
<if test="oj != null and oj !='Mine'">
|
||||
and p.problem_id like concat(#{oj},'%') and p.is_remote=true
|
||||
</if>
|
||||
<if test="oj != null and oj =='Mine'">
|
||||
and p.is_remote=false
|
||||
</if>
|
||||
</where>
|
||||
order by length(p.problem_id) asc,p.problem_id asc
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
(SELECT COUNT( DISTINCT pid ) FROM user_acproblem WHERE uid =u.uuid) AS solved,
|
||||
(SELECT COUNT(pid) FROM user_acproblem WHERE uid =u.uuid) AS ac
|
||||
FROM user_info u,user_record ur WHERE u.uuid = ur.uid AND u.status = 0
|
||||
ORDER BY ac DESC,solved DESC
|
||||
ORDER BY solved DESC,ac DESC
|
||||
</select>
|
||||
|
||||
<select id="getRecent7ACRank" resultType="top.hcode.hoj.pojo.vo.ACMRankVo">
|
||||
|
@ -19,7 +19,7 @@
|
|||
and DATE(gmt_create) >= DATE_SUB(CURDATE(),INTERVAL 7 DAY)) AS ac
|
||||
|
||||
FROM user_info u,user_record ur WHERE u.uuid = ur.uid AND u.status = 0
|
||||
ORDER BY ac DESC,solved DESC LIMIT 10
|
||||
ORDER BY solved DESC,ac DESC LIMIT 10
|
||||
</select>
|
||||
|
||||
<select id="getOIRankList" resultType="top.hcode.hoj.pojo.vo.OIRankVo" useCache="true">
|
||||
|
|
|
@ -65,7 +65,8 @@
|
|||
<result column="avatar" property="avatar"></result>
|
||||
<result column="gmt_create" property="gmtCreate"></result>
|
||||
<result column="gmt_modified" property="gmtModified"></result>
|
||||
<collection property="roles" ofType="top.hcode.hoj.pojo.entity.Role" select="getUserListRoles" column="uuid">
|
||||
<collection property="roles" ofType="top.hcode.hoj.pojo.entity.Role" select="getUserListRoles"
|
||||
column="uuid=uuid">
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
|
@ -88,4 +89,18 @@
|
|||
select r.* from role r,user_role ur where ur.uid=#{uuid} and ur.role_id = r.id
|
||||
</select>
|
||||
|
||||
<!-- 主查询 -->
|
||||
<select id="getAdminUserList" resultMap="map_UserRolesList" resultType="list">
|
||||
SELECT u.* FROM user_info u, (SELECT DISTINCT ur.uid AS uid FROM user_role ur WHERE ur.role_id=1000 OR ur.role_id=1001) t
|
||||
<where>
|
||||
t.uid = u.uuid
|
||||
<if test="keyword!=null and keyword!=''">
|
||||
and (u.username like CONCAT("%",#{keyword},"%")
|
||||
or u.email like CONCAT("%",#{keyword},"%")
|
||||
or u.realname like CONCAT("%",#{keyword},"%"))
|
||||
</if>
|
||||
</where>
|
||||
order by u.gmt_create desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,80 @@
|
|||
package top.hcode.hoj.pojo.dto;
|
||||
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
import top.hcode.hoj.pojo.entity.CodeTemplate;
|
||||
import top.hcode.hoj.pojo.entity.Problem;
|
||||
import top.hcode.hoj.pojo.entity.ProblemCase;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: Himit_ZH
|
||||
* @Date: 2021/5/30 15:09
|
||||
* @Description:
|
||||
*/
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class QDOJProblemDto implements Serializable {
|
||||
private Problem problem;
|
||||
|
||||
private List<String> languages;
|
||||
|
||||
private List<ProblemCase> samples;
|
||||
|
||||
private List<String> tags;
|
||||
|
||||
private List<CodeTemplate> codeTemplates;
|
||||
|
||||
private Boolean isSpj;
|
||||
|
||||
public Problem getProblem() {
|
||||
return problem;
|
||||
}
|
||||
|
||||
public void setProblem(Problem problem) {
|
||||
this.problem = problem;
|
||||
}
|
||||
|
||||
public List<String> getLanguages() {
|
||||
return languages;
|
||||
}
|
||||
|
||||
public void setLanguages(List<String> languages) {
|
||||
this.languages = languages;
|
||||
}
|
||||
|
||||
public List<ProblemCase> getSamples() {
|
||||
return samples;
|
||||
}
|
||||
|
||||
public void setSamples(List<ProblemCase> samples) {
|
||||
this.samples = samples;
|
||||
}
|
||||
|
||||
public List<String> getTags() {
|
||||
return tags;
|
||||
}
|
||||
|
||||
public void setTags(List<String> tags) {
|
||||
this.tags = tags;
|
||||
}
|
||||
|
||||
public List<CodeTemplate> getCodeTemplates() {
|
||||
return codeTemplates;
|
||||
}
|
||||
|
||||
public void setCodeTemplates(List<CodeTemplate> codeTemplates) {
|
||||
this.codeTemplates = codeTemplates;
|
||||
}
|
||||
|
||||
public Boolean getIsSpj() {
|
||||
return isSpj;
|
||||
}
|
||||
|
||||
public void setIsSpj(Boolean spj) {
|
||||
isSpj = spj;
|
||||
}
|
||||
}
|
|
@ -89,6 +89,9 @@ public class ConfigVo {
|
|||
@Value("${hoj.web-config.short-name}")
|
||||
private String shortName;
|
||||
|
||||
@Value("${hoj.web-config.description}")
|
||||
private String description;
|
||||
|
||||
@Value("${hoj.web-config.register}")
|
||||
private Boolean register;
|
||||
|
||||
|
|
|
@ -14,5 +14,5 @@ import top.hcode.hoj.pojo.vo.UserRolesVo;
|
|||
* @since 2020-10-23
|
||||
*/
|
||||
public interface UserRoleService extends IService<UserRole> {
|
||||
IPage<UserRolesVo> getUserList(int limit, int currentPage, String keyword);
|
||||
IPage<UserRolesVo> getUserList(int limit, int currentPage, String keyword,Boolean onlyAdmin);
|
||||
}
|
||||
|
|
|
@ -156,6 +156,9 @@ public class ConfigServiceImpl implements ConfigService {
|
|||
if (!StringUtils.isEmpty(params.get("shortName"))) {
|
||||
configVo.setShortName((String) params.get("shortName"));
|
||||
}
|
||||
if (!StringUtils.isEmpty(params.get("description"))) {
|
||||
configVo.setDescription((String) params.get("description"));
|
||||
}
|
||||
if (params.get("register") != null) {
|
||||
configVo.setRegister((Boolean) params.get("register"));
|
||||
}
|
||||
|
|
|
@ -404,7 +404,11 @@ public class ProblemServiceImpl extends ServiceImpl<ProblemMapper, Problem> impl
|
|||
List<ProblemTag> problemTagList = new LinkedList<>();
|
||||
for (Tag tag : problemDto.getTags()) {
|
||||
if (tag.getId() == null) { //id为空 表示为原tag表中不存在的 插入后可以获取到对应的tagId
|
||||
tagService.save(tag);
|
||||
try {
|
||||
tagService.save(tag);
|
||||
} catch (Exception ignored) {
|
||||
tag = tagService.getOne(new QueryWrapper<Tag>().eq("name", tag.getName()));
|
||||
}
|
||||
}
|
||||
problemTagList.add(new ProblemTag().setTid(tag.getId()).setPid(pid));
|
||||
}
|
||||
|
@ -439,7 +443,7 @@ public class ProblemServiceImpl extends ServiceImpl<ProblemMapper, Problem> impl
|
|||
result.set("testCasesSize", problemCaseList.size());
|
||||
result.set("testCases", new JSONArray());
|
||||
|
||||
String testCasesDir = Constants.File.TESTCASE_BASE_FOLDER.getPath() +File.separator+ "problem_" + problemId;
|
||||
String testCasesDir = Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + problemId;
|
||||
|
||||
|
||||
for (ProblemCase problemCase : problemCaseList) {
|
||||
|
@ -485,7 +489,7 @@ public class ProblemServiceImpl extends ServiceImpl<ProblemMapper, Problem> impl
|
|||
result.set("testCasesSize", problemCaseList.size());
|
||||
result.set("testCases", new JSONArray());
|
||||
|
||||
String testCasesDir = Constants.File.TESTCASE_BASE_FOLDER.getPath()+File.separator + "problem_" + problemId;
|
||||
String testCasesDir = Constants.File.TESTCASE_BASE_FOLDER.getPath() + File.separator + "problem_" + problemId;
|
||||
FileUtil.del(testCasesDir);
|
||||
for (int index = 0; index < problemCaseList.size(); index++) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
|
@ -622,8 +626,8 @@ public class ProblemServiceImpl extends ServiceImpl<ProblemMapper, Problem> impl
|
|||
.setGmtCreate(null)
|
||||
.setId(null)
|
||||
.setGmtModified(null);
|
||||
HashMap<String,Object> problemMap = new HashMap<>();
|
||||
BeanUtil.beanToMap(problem,problemMap,false,true);
|
||||
HashMap<String, Object> problemMap = new HashMap<>();
|
||||
BeanUtil.beanToMap(problem, problemMap, false, true);
|
||||
importProblemVo.setProblem(problemMap);
|
||||
QueryWrapper<CodeTemplate> codeTemplateQueryWrapper = new QueryWrapper<>();
|
||||
codeTemplateQueryWrapper.eq("pid", pid).eq("status", true);
|
||||
|
|
|
@ -25,9 +25,13 @@ public class UserRoleServiceImpl extends ServiceImpl<UserRoleMapper, UserRole> i
|
|||
private UserRoleMapper userRoleMapper;
|
||||
|
||||
@Override
|
||||
public IPage<UserRolesVo> getUserList(int limit, int currentPage, String keyword) {
|
||||
public IPage<UserRolesVo> getUserList(int limit, int currentPage, String keyword,Boolean onlyAdmin) {
|
||||
//新建分页
|
||||
Page<UserRolesVo> page = new Page<>(currentPage, limit);
|
||||
return userRoleMapper.getUserList(page,limit, currentPage,keyword);
|
||||
if (onlyAdmin){
|
||||
return userRoleMapper.getAdminUserList(page,limit, currentPage,keyword);
|
||||
}else {
|
||||
return userRoleMapper.getUserList(page, limit, currentPage, keyword);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,6 +55,7 @@ public class ConfigUtils {
|
|||
" base-url: " + configVo.getBaseUrl() + "\n" +
|
||||
" name: " + configVo.getName() + "\n" +
|
||||
" short-name: " + configVo.getShortName() + "\n" +
|
||||
" description: " + configVo.getDescription() + "\n" +
|
||||
" register: " + configVo.getRegister() + "\n" +
|
||||
" footer:\n" +
|
||||
" record:\n" +
|
||||
|
|
|
@ -64,6 +64,31 @@ public class Constants {
|
|||
}
|
||||
}
|
||||
|
||||
public enum RemoteOJ {
|
||||
HDU("HDU"),
|
||||
CODEFORCES("CF");
|
||||
|
||||
private final String name;
|
||||
|
||||
private RemoteOJ(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public static Boolean isRemoteOJ(String name) {
|
||||
for (RemoteOJ remoteOJ : RemoteOJ.values()) {
|
||||
if (remoteOJ.getName().equals(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @Description 比赛相关的常量
|
||||
|
|
|
@ -45,7 +45,7 @@ public class JudgeServerApplicationTests {
|
|||
@Test
|
||||
public void test2() throws Exception {
|
||||
CodeForcesJudge codeForcesJudge = new CodeForcesJudge();
|
||||
Map<String, Object> result = codeForcesJudge.submit("Himit_ZH", "hoj123456", "750A", "GNU G++11 5.1.0", "#include <bits/stdc++.h>\n" +
|
||||
Map<String, Object> result = codeForcesJudge.submit("账号", "密码", "750A", "GNU G++11 5.1.0", "#include <bits/stdc++.h>\n" +
|
||||
"using namespace std;\n" +
|
||||
"const int maxn = 105;\n" +
|
||||
"struct node\n" +
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
<div class="mundb-footer">
|
||||
<el-row>
|
||||
<el-col :md="6" :xs="24">
|
||||
<h1>HOJ</h1>
|
||||
<p>
|
||||
Hcode Online Judge
|
||||
<h1>{{ toUpper(websiteConfig.shortName) }}</h1>
|
||||
<p style="line-height:25px">
|
||||
{{ websiteConfig.description }}
|
||||
</p>
|
||||
</el-col>
|
||||
<el-col class="hr-none">
|
||||
|
@ -48,7 +48,7 @@
|
|||
</p>
|
||||
<p>
|
||||
<i class="fa fa-envelope" aria-hidden="true"></i>
|
||||
oj.hcode@qq.com
|
||||
{{ websiteConfig.email }}
|
||||
</p>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -97,6 +97,11 @@ export default {
|
|||
path: path,
|
||||
});
|
||||
},
|
||||
toUpper(str) {
|
||||
if (str) {
|
||||
return str.toUpperCase();
|
||||
}
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
$route(newVal, oldVal) {
|
||||
|
|
|
@ -575,11 +575,12 @@ const adminApi = {
|
|||
},
|
||||
|
||||
// 获取用户列表
|
||||
admin_getUserList (currentPage, limit, keyword) {
|
||||
admin_getUserList (currentPage, limit, keyword,onlyAdmin) {
|
||||
let params = {currentPage, limit}
|
||||
if (keyword) {
|
||||
params.keyword = keyword
|
||||
}
|
||||
params.onlyAdmin = onlyAdmin
|
||||
return ajax('/api/admin/user/get-user-list', 'get', {
|
||||
params: params
|
||||
})
|
||||
|
|
|
@ -51,5 +51,5 @@ export default {
|
|||
fromNow: fromNow,
|
||||
parseContestType:parseContestType,
|
||||
parseRole:parseRole,
|
||||
parseProblemLevel:parseProblemLevel
|
||||
parseProblemLevel:parseProblemLevel,
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
@imgAdd="$imgAdd"
|
||||
@imgDel="$imgDel"
|
||||
:ishljs="true"
|
||||
:autofocus="false"
|
||||
v-model="currentValue"
|
||||
codeStyle="arduino-light"
|
||||
></mavon-editor>
|
||||
|
|
|
@ -12,6 +12,7 @@ const rootState = {
|
|||
websiteConfig:{
|
||||
recordName:'粤ICP备×××××××号-1',
|
||||
projectName:'HOJ',
|
||||
shortName:'HOJ',
|
||||
recordUrl:'#',
|
||||
projectUrl:'#'
|
||||
},
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
>
|
||||
<el-row :gutter="20">
|
||||
<el-col :md="8" :xs="24">
|
||||
<el-form-item label="Base Url" required>
|
||||
<el-form-item label="Base URL" required>
|
||||
<el-input
|
||||
v-model="websiteConfig.baseUrl"
|
||||
placeholder="Website Base Url"
|
||||
placeholder="Website Base URL"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -45,10 +45,10 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :xs="24">
|
||||
<el-form-item label="Record Url" required>
|
||||
<el-form-item label="Record URL" required>
|
||||
<el-input
|
||||
v-model="websiteConfig.recordUrl"
|
||||
placeholder="Website Record Url"
|
||||
placeholder="Website Record URL"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -61,13 +61,25 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :xs="24">
|
||||
<el-form-item label="Project Url" required>
|
||||
<el-form-item label="Project URL" required>
|
||||
<el-input
|
||||
v-model="websiteConfig.projectUrl"
|
||||
placeholder="Website Project Url"
|
||||
placeholder="Website Project URL"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="24" :xs="24">
|
||||
<el-form-item label="Website Desc" required>
|
||||
<el-input
|
||||
type="textarea"
|
||||
placeholder="Website Description"
|
||||
v-model="websiteConfig.description"
|
||||
maxlength="150"
|
||||
show-word-limit
|
||||
>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="24" :xs="24">
|
||||
<el-form-item label="Allow Register" label-width="120px">
|
||||
<el-switch
|
||||
|
|
|
@ -23,6 +23,16 @@
|
|||
@keyup.enter.native="filterByKeyword"
|
||||
></vxe-input>
|
||||
</span>
|
||||
<span>
|
||||
<el-switch
|
||||
v-model="onlyAdmin"
|
||||
active-text="OnlyAdmin"
|
||||
:width="40"
|
||||
@change="filterByAdmin"
|
||||
inactive-text="All"
|
||||
>
|
||||
</el-switch>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<vxe-table
|
||||
|
@ -448,6 +458,7 @@ export default {
|
|||
keyword: '',
|
||||
// 是否显示用户对话框
|
||||
showUserDialog: false,
|
||||
onlyAdmin: false,
|
||||
|
||||
// 当前用户model
|
||||
selectUser: {
|
||||
|
@ -555,7 +566,9 @@ export default {
|
|||
},
|
||||
filterByKeyword() {
|
||||
this.currentChange(1);
|
||||
this.keyword = '';
|
||||
},
|
||||
filterByAdmin() {
|
||||
this.currentChange(1);
|
||||
},
|
||||
getRole(roles) {
|
||||
return roles[0]['id'];
|
||||
|
@ -575,16 +588,18 @@ export default {
|
|||
// 获取用户列表
|
||||
getUserList(page) {
|
||||
this.loadingTable = true;
|
||||
api.admin_getUserList(page, this.pageSize, this.keyword).then(
|
||||
(res) => {
|
||||
this.loadingTable = false;
|
||||
this.total = res.data.data.total;
|
||||
this.userList = res.data.data.records;
|
||||
},
|
||||
(res) => {
|
||||
this.loadingTable = false;
|
||||
}
|
||||
);
|
||||
api
|
||||
.admin_getUserList(page, this.pageSize, this.keyword, this.onlyAdmin)
|
||||
.then(
|
||||
(res) => {
|
||||
this.loadingTable = false;
|
||||
this.total = res.data.data.total;
|
||||
this.userList = res.data.data.records;
|
||||
},
|
||||
(res) => {
|
||||
this.loadingTable = false;
|
||||
}
|
||||
);
|
||||
},
|
||||
deleteUsers(ids) {
|
||||
if (!ids) {
|
||||
|
|
|
@ -96,6 +96,41 @@
|
|||
>
|
||||
</el-upload>
|
||||
</el-card>
|
||||
|
||||
<el-card style="margin-top:15px">
|
||||
<div slot="header">
|
||||
<span class="panel-title home-title">Import QDOJ Problems</span>
|
||||
</div>
|
||||
<el-upload
|
||||
ref="QDOJ"
|
||||
action="/api/file/import-qdoj-problem"
|
||||
name="file"
|
||||
:file-list="fileList2"
|
||||
:show-file-list="true"
|
||||
:with-credentials="true"
|
||||
:limit="3"
|
||||
:on-change="onFile2Change"
|
||||
:auto-upload="false"
|
||||
:on-success="uploadSucceeded"
|
||||
:on-error="uploadFailed"
|
||||
>
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
slot="trigger"
|
||||
icon="el-icon-folder-opened"
|
||||
>Choose File</el-button
|
||||
>
|
||||
<el-button
|
||||
style="margin-left: 10px;"
|
||||
size="small"
|
||||
type="success"
|
||||
@click="submitUpload('QDOJ')"
|
||||
icon="el-icon-upload"
|
||||
>Upload</el-button
|
||||
>
|
||||
</el-upload>
|
||||
</el-card>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
@ -107,20 +142,14 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
fileList1: [],
|
||||
fileList2: [],
|
||||
page: 1,
|
||||
limit: 10,
|
||||
total: 0,
|
||||
loadingProblems: false,
|
||||
loadingImporting: false,
|
||||
keyword: '',
|
||||
problems: [
|
||||
{
|
||||
id: 1001,
|
||||
author: 'Himit_ZH',
|
||||
title: '测试题目',
|
||||
gmtCreate: '2020-11-11 11:11:11',
|
||||
},
|
||||
],
|
||||
problems: [],
|
||||
selected_problems: [],
|
||||
};
|
||||
},
|
||||
|
@ -143,7 +172,7 @@ export default {
|
|||
keyword: this.keyword,
|
||||
currentPage: page,
|
||||
limit: this.limit,
|
||||
oj: 'HOJ',
|
||||
oj: 'Mine',
|
||||
};
|
||||
this.loadingProblems = true;
|
||||
api.admin_getProblemList(params).then((res) => {
|
||||
|
|
|
@ -18,9 +18,6 @@
|
|||
placeholder="Enter the display id of problem"
|
||||
v-model="problem.problemId"
|
||||
>
|
||||
<template slot="prepend" v-if="mode == 'add'">{{
|
||||
problemIdPrex
|
||||
}}</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -531,7 +528,6 @@ import utils from '@/common/utils';
|
|||
import { mapGetters } from 'vuex';
|
||||
import api from '@/common/api';
|
||||
import myMessage from '@/common/message';
|
||||
import { OJ_NAME } from '@/common/constants';
|
||||
export default {
|
||||
name: 'Problem',
|
||||
components: {
|
||||
|
@ -562,7 +558,6 @@ export default {
|
|||
mode: '', // 该题目是编辑或者创建
|
||||
contest: {},
|
||||
codeTemplate: {},
|
||||
problemIdPrex: 'HOJ-',
|
||||
pid: null, // 题目id,如果为创建模式则为null
|
||||
contestID: null, // 比赛id
|
||||
contestProblem: {
|
||||
|
@ -625,11 +620,6 @@ export default {
|
|||
mounted() {
|
||||
this.routeName = this.$route.name;
|
||||
let contestID = this.$route.params.contestId;
|
||||
this.problemIdPrex = OJ_NAME + '-';
|
||||
// 比赛题目HOJ-C1000
|
||||
if (contestID) {
|
||||
this.problemIdPrex += 'C';
|
||||
}
|
||||
this.uploadFileUrl = '/api/file/upload-testcase-zip';
|
||||
if (
|
||||
this.routeName === 'admin-edit-problem' ||
|
||||
|
@ -1140,10 +1130,6 @@ export default {
|
|||
|
||||
let problemDto = {}; // 上传给后台的数据
|
||||
problemDto['problem'] = Object.assign({}, this.problem); // 深克隆
|
||||
if (this.mode == 'add') {
|
||||
problemDto.problem.problemId =
|
||||
this.problemIdPrex + this.problem.problemId;
|
||||
}
|
||||
problemDto.problem.examples = utils.examplesToString(
|
||||
this.problem.examples
|
||||
); // 需要转换格式
|
||||
|
|
|
@ -325,7 +325,6 @@ export default {
|
|||
},
|
||||
filterByKeyword() {
|
||||
this.currentChange(1);
|
||||
this.keyword = '';
|
||||
},
|
||||
addRemoteOJProblem() {
|
||||
this.addRemoteOJproblemLoading = true;
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
<el-card v-else>
|
||||
<div slot="header" class="content-center">
|
||||
<span class="panel-title home-title welcome-title"
|
||||
>Welcome to HOJ</span
|
||||
>Welcome to {{ toUpper(websiteConfig.shortName) }}</span
|
||||
>
|
||||
</div>
|
||||
<el-carousel
|
||||
|
@ -299,6 +299,11 @@ export default {
|
|||
getRankTagClass(rowIndex) {
|
||||
return 'rank-tag no' + (rowIndex + 1);
|
||||
},
|
||||
toUpper(str) {
|
||||
if (str) {
|
||||
return str.toUpperCase();
|
||||
}
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
...mapState(['websiteConfig']),
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
trigger="hover"
|
||||
>
|
||||
<span class="el-dropdown-link">
|
||||
{{ query.oj === 'HOJ' || query.oj === '' ? 'HOJ' : query.oj }}
|
||||
{{
|
||||
query.oj === 'Mine' || query.oj === '' ? 'Mine' : query.oj
|
||||
}}
|
||||
<i class="el-icon-caret-bottom"></i>
|
||||
</span>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
<el-dropdown-item command="All">All</el-dropdown-item>
|
||||
<el-dropdown-item :command="OJ_NAME">{{
|
||||
OJ_NAME
|
||||
}}</el-dropdown-item>
|
||||
<el-dropdown-item command="Mine">Mine</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:command="remoteOj.key"
|
||||
v-for="(remoteOj, index) in REMOTE_OJ"
|
||||
|
@ -217,14 +217,12 @@
|
|||
<script>
|
||||
import { mapGetters } from 'vuex';
|
||||
import api from '@/common/api';
|
||||
import utils from '@/common/utils';
|
||||
import {
|
||||
PROBLEM_LEVEL,
|
||||
PROBLEM_LEVEL_RESERVE,
|
||||
JUDGE_STATUS,
|
||||
JUDGE_STATUS_RESERVE,
|
||||
REMOTE_OJ,
|
||||
OJ_NAME,
|
||||
} from '@/common/constants';
|
||||
import Pagination from '@/components/oj/common/Pagination';
|
||||
import myMessage from '@/common/message';
|
||||
|
@ -241,7 +239,6 @@ export default {
|
|||
JUDGE_STATUS: {},
|
||||
JUDGE_STATUS_RESERVE: {},
|
||||
REMOTE_OJ: {},
|
||||
OJ_NAME: '',
|
||||
tagList: [],
|
||||
currentProblemTitle: '请触碰或鼠标悬浮到指定题目行即可查看提交情况',
|
||||
problemRecord: [],
|
||||
|
@ -275,7 +272,6 @@ export default {
|
|||
this.JUDGE_STATUS_RESERVE = Object.assign({}, JUDGE_STATUS_RESERVE);
|
||||
this.JUDGE_STATUS = Object.assign({}, JUDGE_STATUS);
|
||||
this.REMOTE_OJ = Object.assign({}, REMOTE_OJ);
|
||||
this.OJ_NAME = OJ_NAME;
|
||||
// 初始化
|
||||
this.problemRecord = [
|
||||
{ status: 0, count: 100 },
|
||||
|
@ -364,7 +360,7 @@ export default {
|
|||
if (queryParams.oj == 'All') {
|
||||
queryParams.oj = '';
|
||||
} else if (!queryParams.oj) {
|
||||
queryParams.oj = OJ_NAME;
|
||||
queryParams.oj = 'Mine';
|
||||
}
|
||||
api.getProblemList(this.limit, queryParams).then(
|
||||
(res) => {
|
||||
|
|
|
@ -59,7 +59,7 @@ module.exports={
|
|||
port: 8088, // 开发服务器运行端口号
|
||||
proxy: {
|
||||
'/api': { // 以'/api'开头的请求会被代理进行转发
|
||||
target: 'http://localhost:6688', // 要发向的后台服务器地址 如果后台服务跑在后台开发人员的机器上,就写成 `http://ip:port` 如 `http:192.168.12.213:8081` ip为后台服务器的ip
|
||||
target: 'https://www.hcode.top', // 要发向的后台服务器地址 如果后台服务跑在后台开发人员的机器上,就写成 `http://ip:port` 如 `http:192.168.12.213:8081` ip为后台服务器的ip
|
||||
changeOrigin: true
|
||||
}
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue