From 4f9dbad52eb315e2f3d2fd76a8fe8f88ecdd0ae6 Mon Sep 17 00:00:00 2001 From: xujiang Date: Sat, 15 May 2021 20:32:35 +0800 Subject: [PATCH] =?UTF-8?q?:new:=20=E6=B7=BB=E5=8A=A0dooring=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc-dist/404.html | 6 +- .../js/{11.df257dc3.js => 11.c5f47d34.js} | 2 +- .../js/{12.584674f6.js => 12.f88d7615.js} | 2 +- .../js/{13.1b1b5748.js => 13.92f62c85.js} | 6 +- .../js/{14.ea0f3745.js => 14.0f62422c.js} | 2 +- .../js/{15.4eb9c19c.js => 15.32ecee4e.js} | 2 +- .../js/{16.1b7e6603.js => 16.35510801.js} | 2 +- .../js/{19.862b0c76.js => 19.90149f22.js} | 2 +- .../js/{20.4781e342.js => 20.fdb45864.js} | 2 +- .../js/{21.f426ff47.js => 21.d6a1c6a8.js} | 2 +- .../js/{22.49b6f904.js => 22.be7d4cd5.js} | 2 +- .../js/{24.919a8675.js => 24.0fb33088.js} | 2 +- doc-dist/assets/js/26.c490ea36.js | 85 +++ .../js/{26.1d9c2285.js => 27.8cd051f4.js} | 4 +- .../js/{27.7c57ff72.js => 28.a632ec96.js} | 4 +- .../js/{28.ead47ae7.js => 29.4deb4e94.js} | 4 +- .../js/{29.3a117db5.js => 30.78ee027a.js} | 4 +- .../js/{4.eddebdfd.js => 4.d6c5e12d.js} | 2 +- .../js/{7.189d38be.js => 7.b81baac3.js} | 10 +- .../js/{8.e0652172.js => 8.774e8d70.js} | 2 +- .../js/{9.7e1cf4d5.js => 9.5e6217e4.js} | 2 +- .../js/{app.4588b99c.js => app.6f018bb2.js} | 579 +++++++++--------- doc-dist/index.html | 6 +- doc-dist/zh/guide/building.html | 6 +- .../zh/guide/componentDev/DSLAnalysis.html | 6 +- .../componentDev/componentStructure.html | 6 +- .../zh/guide/componentDev/dynamicLoading.html | 6 +- doc-dist/zh/guide/deployDev/api.html | 12 +- doc-dist/zh/guide/deployDev/deploy.html | 6 +- doc-dist/zh/guide/deployDev/deploy_v6.html | 6 +- doc-dist/zh/guide/deployDev/dir.html | 8 +- doc-dist/zh/guide/deployDev/https.html | 6 +- doc-dist/zh/guide/deployDev/log.html | 38 ++ doc-dist/zh/guide/deployDev/oss.html | 6 +- doc-dist/zh/guide/directoryStructure.html | 6 +- .../functionRealization/machinePreview.html | 6 +- .../functionRealization/pagePreview.html | 6 +- .../guide/functionRealization/revocation.html | 6 +- .../guide/functionRealization/saveJson.html | 6 +- .../guide/functionRealization/screenshot.html | 6 +- .../functionRealization/templateLibrary.html | 6 +- doc-dist/zh/guide/index.html | 6 +- doc-dist/zh/guide/introduced.html | 6 +- doc-dist/zh/guide/startedQuickly.html | 6 +- doc/.vuepress/config.js | 6 + doc/zh/guide/deployDev/log.md | 39 ++ src/components/Zan/index.tsx | 5 +- 47 files changed, 574 insertions(+), 376 deletions(-) rename doc-dist/assets/js/{11.df257dc3.js => 11.c5f47d34.js} (99%) rename doc-dist/assets/js/{12.584674f6.js => 12.f88d7615.js} (99%) rename doc-dist/assets/js/{13.1b1b5748.js => 13.92f62c85.js} (90%) rename doc-dist/assets/js/{14.ea0f3745.js => 14.0f62422c.js} (97%) rename doc-dist/assets/js/{15.4eb9c19c.js => 15.32ecee4e.js} (96%) rename doc-dist/assets/js/{16.1b7e6603.js => 16.35510801.js} (99%) rename doc-dist/assets/js/{19.862b0c76.js => 19.90149f22.js} (94%) rename doc-dist/assets/js/{20.4781e342.js => 20.fdb45864.js} (95%) rename doc-dist/assets/js/{21.f426ff47.js => 21.d6a1c6a8.js} (99%) rename doc-dist/assets/js/{22.49b6f904.js => 22.be7d4cd5.js} (99%) rename doc-dist/assets/js/{24.919a8675.js => 24.0fb33088.js} (98%) create mode 100644 doc-dist/assets/js/26.c490ea36.js rename doc-dist/assets/js/{26.1d9c2285.js => 27.8cd051f4.js} (99%) rename doc-dist/assets/js/{27.7c57ff72.js => 28.a632ec96.js} (99%) rename doc-dist/assets/js/{28.ead47ae7.js => 29.4deb4e94.js} (99%) rename doc-dist/assets/js/{29.3a117db5.js => 30.78ee027a.js} (98%) rename doc-dist/assets/js/{4.eddebdfd.js => 4.d6c5e12d.js} (96%) rename doc-dist/assets/js/{7.189d38be.js => 7.b81baac3.js} (90%) rename doc-dist/assets/js/{8.e0652172.js => 8.774e8d70.js} (98%) rename doc-dist/assets/js/{9.7e1cf4d5.js => 9.5e6217e4.js} (99%) rename doc-dist/assets/js/{app.4588b99c.js => app.6f018bb2.js} (98%) create mode 100644 doc-dist/zh/guide/deployDev/log.html create mode 100644 doc/zh/guide/deployDev/log.md diff --git a/doc-dist/404.html b/doc-dist/404.html index a29317c0..4f4743ac 100644 --- a/doc-dist/404.html +++ b/doc-dist/404.html @@ -8,13 +8,13 @@ - + -

404

That's a Four-Oh-Four.
+ - + diff --git a/doc-dist/assets/js/11.df257dc3.js b/doc-dist/assets/js/11.c5f47d34.js similarity index 99% rename from doc-dist/assets/js/11.df257dc3.js rename to doc-dist/assets/js/11.c5f47d34.js index 08d30a81..ca99cee6 100644 --- a/doc-dist/assets/js/11.df257dc3.js +++ b/doc-dist/assets/js/11.c5f47d34.js @@ -4,7 +4,7 @@ 360: function(t, _, v) { t.exports = v.p + 'assets/img/deploy.d1b1d698.png'; }, - 391: function(t, _, v) { + 388: function(t, _, v) { 'use strict'; v.r(_); var a = v(42), diff --git a/doc-dist/assets/js/12.584674f6.js b/doc-dist/assets/js/12.f88d7615.js similarity index 99% rename from doc-dist/assets/js/12.584674f6.js rename to doc-dist/assets/js/12.f88d7615.js index 39f32bba..0346e785 100644 --- a/doc-dist/assets/js/12.584674f6.js +++ b/doc-dist/assets/js/12.f88d7615.js @@ -4,7 +4,7 @@ 361: function(t, v, _) { t.exports = _.p + 'assets/img/v6.deploy.43cbe0de.png'; }, - 395: function(t, v, _) { + 391: function(t, v, _) { 'use strict'; _.r(v); var e = _(42), diff --git a/doc-dist/assets/js/13.1b1b5748.js b/doc-dist/assets/js/13.92f62c85.js similarity index 90% rename from doc-dist/assets/js/13.1b1b5748.js rename to doc-dist/assets/js/13.92f62c85.js index 7dc1ee50..4a87d94a 100644 --- a/doc-dist/assets/js/13.1b1b5748.js +++ b/doc-dist/assets/js/13.92f62c85.js @@ -1,10 +1,10 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ [13], { - 364: function(t, e, s) { + 362: function(t, e, s) { t.exports = s.p + 'assets/img/preview-machine.895a0711.png'; }, - 397: function(t, e, s) { + 395: function(t, e, s) { 'use strict'; s.r(e); var a = s(42), @@ -22,7 +22,7 @@ t._v(' '), a('p', [t._v('真机预览和网页预览的流程类似,工作流程如下:')]), t._v(' '), - a('img', { attrs: { src: s(364), alt: 'foo' } }), + a('img', { attrs: { src: s(362), alt: 'foo' } }), t._v(' '), a('p', [t._v('由于不同机型预览的效果有些许不同,最终效果以实际看到的为主。')]), ]); diff --git a/doc-dist/assets/js/14.ea0f3745.js b/doc-dist/assets/js/14.0f62422c.js similarity index 97% rename from doc-dist/assets/js/14.ea0f3745.js rename to doc-dist/assets/js/14.0f62422c.js index 6510de51..fc8632f8 100644 --- a/doc-dist/assets/js/14.ea0f3745.js +++ b/doc-dist/assets/js/14.0f62422c.js @@ -4,7 +4,7 @@ 365: function(t, s, e) { t.exports = e.p + 'assets/img/screenshot.daeecedd.png'; }, - 398: function(t, s, e) { + 401: function(t, s, e) { 'use strict'; e.r(s); var a = e(42), diff --git a/doc-dist/assets/js/15.4eb9c19c.js b/doc-dist/assets/js/15.32ecee4e.js similarity index 96% rename from doc-dist/assets/js/15.4eb9c19c.js rename to doc-dist/assets/js/15.32ecee4e.js index 8a025e2c..4d9de4b3 100644 --- a/doc-dist/assets/js/15.4eb9c19c.js +++ b/doc-dist/assets/js/15.32ecee4e.js @@ -4,7 +4,7 @@ 368: function(t, s, e) { t.exports = e.p + 'assets/img/framework.1c9c696b.png'; }, - 402: function(t, s, e) { + 403: function(t, s, e) { 'use strict'; e.r(s); var n = e(42), diff --git a/doc-dist/assets/js/16.1b7e6603.js b/doc-dist/assets/js/16.35510801.js similarity index 99% rename from doc-dist/assets/js/16.1b7e6603.js rename to doc-dist/assets/js/16.35510801.js index 57c0e58a..0755ca39 100644 --- a/doc-dist/assets/js/16.1b7e6603.js +++ b/doc-dist/assets/js/16.35510801.js @@ -4,7 +4,7 @@ 369: function(t, a, r) { t.exports = r.p + 'assets/img/home.f76105db.png'; }, - 403: function(t, a, r) { + 404: function(t, a, r) { 'use strict'; r.r(a); var e = r(42), diff --git a/doc-dist/assets/js/19.862b0c76.js b/doc-dist/assets/js/19.90149f22.js similarity index 94% rename from doc-dist/assets/js/19.862b0c76.js rename to doc-dist/assets/js/19.90149f22.js index b8df32d3..07c6d00a 100644 --- a/doc-dist/assets/js/19.862b0c76.js +++ b/doc-dist/assets/js/19.90149f22.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ [19], { - 384: function(t, e, n) { + 385: function(t, e, n) { 'use strict'; n.r(e); var s = n(42), diff --git a/doc-dist/assets/js/20.4781e342.js b/doc-dist/assets/js/20.fdb45864.js similarity index 95% rename from doc-dist/assets/js/20.4781e342.js rename to doc-dist/assets/js/20.fdb45864.js index 0e6d50aa..20d65c28 100644 --- a/doc-dist/assets/js/20.4781e342.js +++ b/doc-dist/assets/js/20.fdb45864.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ [20], { - 386: function(t, e, n) { + 383: function(t, e, n) { 'use strict'; n.r(e); var s = n(42), diff --git a/doc-dist/assets/js/21.f426ff47.js b/doc-dist/assets/js/21.d6a1c6a8.js similarity index 99% rename from doc-dist/assets/js/21.f426ff47.js rename to doc-dist/assets/js/21.d6a1c6a8.js index 28e90dc6..55bfce29 100644 --- a/doc-dist/assets/js/21.f426ff47.js +++ b/doc-dist/assets/js/21.d6a1c6a8.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ [21], { - 383: function(t, s, a) { + 386: function(t, s, a) { 'use strict'; a.r(s); var n = a(42), diff --git a/doc-dist/assets/js/22.49b6f904.js b/doc-dist/assets/js/22.be7d4cd5.js similarity index 99% rename from doc-dist/assets/js/22.49b6f904.js rename to doc-dist/assets/js/22.be7d4cd5.js index da5d3ffa..598883e7 100644 --- a/doc-dist/assets/js/22.49b6f904.js +++ b/doc-dist/assets/js/22.be7d4cd5.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ [22], { - 388: function(t, s, a) { + 389: function(t, s, a) { 'use strict'; a.r(s); var n = a(42), diff --git a/doc-dist/assets/js/24.919a8675.js b/doc-dist/assets/js/24.0fb33088.js similarity index 98% rename from doc-dist/assets/js/24.919a8675.js rename to doc-dist/assets/js/24.0fb33088.js index d31b5107..2886fb5a 100644 --- a/doc-dist/assets/js/24.919a8675.js +++ b/doc-dist/assets/js/24.0fb33088.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ [24], { - 389: function(v, _, l) { + 397: function(v, _, l) { 'use strict'; l.r(_); var i = l(42), diff --git a/doc-dist/assets/js/26.c490ea36.js b/doc-dist/assets/js/26.c490ea36.js new file mode 100644 index 00000000..a251a016 --- /dev/null +++ b/doc-dist/assets/js/26.c490ea36.js @@ -0,0 +1,85 @@ +(window.webpackJsonp = window.webpackJsonp || []).push([ + [26], + { + 392: function(_, v, t) { + 'use strict'; + t.r(v); + var a = t(42), + l = Object(a.a)( + {}, + function() { + var _ = this, + v = _.$createElement, + t = _._self._c || v; + return t('ContentSlotsDistributor', { attrs: { 'slot-key': _.$parent.slotKey } }, [ + t('h3', { attrs: { id: '更新日志' } }, [ + t('a', { staticClass: 'header-anchor', attrs: { href: '#更新日志' } }, [_._v('#')]), + _._v(' 更新日志'), + ]), + _._v(' '), + t('h4', { attrs: { id: '_1-94' } }, [ + t('a', { staticClass: 'header-anchor', attrs: { href: '#_1-94' } }, [_._v('#')]), + _._v(' 1.94'), + ]), + _._v(' '), + t('ol', [ + t('li', [_._v('转盘组件支持转盘交互功能(跳转链接/打开弹窗/自定义代码)')]), + _._v(' '), + t('li', [_._v('添加网站拦截, 防止页面误关导致页面无法保存')]), + _._v(' '), + t('li', [_._v('优化页面控制条组件样式')]), + _._v(' '), + t('li', [_._v('按钮组件添加组件动画')]), + _._v(' '), + t('li', [_._v('图片组件添加组件动画')]), + _._v(' '), + t('li', [_._v('媒体组件icon优化')]), + _._v(' '), + t('li', [_._v('全局错误监控组件添加一键清除缓存功能')]), + ]), + _._v(' '), + t('h4', { attrs: { id: '_1-93' } }, [ + t('a', { staticClass: 'header-anchor', attrs: { href: '#_1-93' } }, [_._v('#')]), + _._v(' 1.93'), + ]), + _._v(' '), + t('ol', [ + t('li', [_._v('上线源码下载功能')]), + _._v(' '), + t('li', [_._v('服务端支持下载源码服务和下载次数限制')]), + _._v(' '), + t('li', [_._v('界面部分文案优化')]), + _._v(' '), + t('li', [_._v('出码基座优化')]), + _._v(' '), + t('li', [_._v('抽奖组件支持抽奖后自定义交互(弹窗/链接/自定义代码)')]), + ]), + _._v(' '), + t('h4', { attrs: { id: '_1-92' } }, [ + t('a', { staticClass: 'header-anchor', attrs: { href: '#_1-92' } }, [_._v('#')]), + _._v(' 1.92'), + ]), + _._v(' '), + t('ol', [ + t('li', [_._v('修复背景图预览适配问题')]), + _._v(' '), + t('li', [_._v('转盘组件支持中奖后自定义交互/弹窗/自定义代码')]), + _._v(' '), + t('li', [_._v('界面局部调整')]), + _._v(' '), + t('li', [_._v('后台管理表单数据支持多键查询')]), + _._v(' '), + t('li', [_._v('可视化大屏柱状图组件支持实时数据请求')]), + ]), + ]); + }, + [], + !1, + null, + null, + null, + ); + v.default = l.exports; + }, + }, +]); diff --git a/doc-dist/assets/js/26.1d9c2285.js b/doc-dist/assets/js/27.8cd051f4.js similarity index 99% rename from doc-dist/assets/js/26.1d9c2285.js rename to doc-dist/assets/js/27.8cd051f4.js index e2c4b24b..3d071dc7 100644 --- a/doc-dist/assets/js/26.1d9c2285.js +++ b/doc-dist/assets/js/27.8cd051f4.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ - [26], + [27], { - 392: function(t, s, a) { + 394: function(t, s, a) { 'use strict'; a.r(s); var n = a(42), diff --git a/doc-dist/assets/js/27.7c57ff72.js b/doc-dist/assets/js/28.a632ec96.js similarity index 99% rename from doc-dist/assets/js/27.7c57ff72.js rename to doc-dist/assets/js/28.a632ec96.js index ffcd9db5..56078117 100644 --- a/doc-dist/assets/js/27.7c57ff72.js +++ b/doc-dist/assets/js/28.a632ec96.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ - [27], + [28], { - 394: function(n, e, s) { + 396: function(n, e, s) { 'use strict'; s.r(e); var t = s(42), diff --git a/doc-dist/assets/js/28.ead47ae7.js b/doc-dist/assets/js/29.4deb4e94.js similarity index 99% rename from doc-dist/assets/js/28.ead47ae7.js rename to doc-dist/assets/js/29.4deb4e94.js index 04102db8..915f55d2 100644 --- a/doc-dist/assets/js/28.ead47ae7.js +++ b/doc-dist/assets/js/29.4deb4e94.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ - [28], + [29], { - 401: function(t, s, a) { + 399: function(t, s, a) { 'use strict'; a.r(s); var n = a(42), diff --git a/doc-dist/assets/js/29.3a117db5.js b/doc-dist/assets/js/30.78ee027a.js similarity index 98% rename from doc-dist/assets/js/29.3a117db5.js rename to doc-dist/assets/js/30.78ee027a.js index 40124d89..80e1587f 100644 --- a/doc-dist/assets/js/29.3a117db5.js +++ b/doc-dist/assets/js/30.78ee027a.js @@ -1,7 +1,7 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ - [29], + [30], { - 399: function(t, n, e) { + 400: function(t, n, e) { 'use strict'; e.r(n); var o = e(42), diff --git a/doc-dist/assets/js/4.eddebdfd.js b/doc-dist/assets/js/4.d6c5e12d.js similarity index 96% rename from doc-dist/assets/js/4.eddebdfd.js rename to doc-dist/assets/js/4.d6c5e12d.js index 46f6fd87..3199f48f 100644 --- a/doc-dist/assets/js/4.eddebdfd.js +++ b/doc-dist/assets/js/4.d6c5e12d.js @@ -6,7 +6,7 @@ 'use strict'; n(333); }, - 404: function(t, e, n) { + 405: function(t, e, n) { 'use strict'; n.r(e); var i = { diff --git a/doc-dist/assets/js/7.189d38be.js b/doc-dist/assets/js/7.b81baac3.js similarity index 90% rename from doc-dist/assets/js/7.189d38be.js rename to doc-dist/assets/js/7.b81baac3.js index b7ce3e69..e1771f64 100644 --- a/doc-dist/assets/js/7.189d38be.js +++ b/doc-dist/assets/js/7.b81baac3.js @@ -1,13 +1,13 @@ (window.webpackJsonp = window.webpackJsonp || []).push([ [7], { - 362: function(t, s, e) { + 363: function(t, s, e) { t.exports = e.p + 'assets/img/preview-flow.b37c7798.png'; }, - 363: function(t, s, e) { + 364: function(t, s, e) { t.exports = e.p + 'assets/img/preview-page.3ec86df5.png'; }, - 396: function(t, s, e) { + 398: function(t, s, e) { 'use strict'; e.r(s); var r = e(42), @@ -25,11 +25,11 @@ t._v(' '), r('p', [t._v('我们看看网页预览的工作流程:')]), t._v(' '), - r('img', { attrs: { src: e(362), alt: 'foo' } }), + r('img', { attrs: { src: e(363), alt: 'foo' } }), t._v(' '), r('p', [t._v('前端预览界面:')]), t._v(' '), - r('img', { attrs: { src: e(363), alt: 'foo' } }), + r('img', { attrs: { src: e(364), alt: 'foo' } }), ]); }, [], diff --git a/doc-dist/assets/js/8.e0652172.js b/doc-dist/assets/js/8.774e8d70.js similarity index 98% rename from doc-dist/assets/js/8.e0652172.js rename to doc-dist/assets/js/8.774e8d70.js index 05a3ec11..d29f36bb 100644 --- a/doc-dist/assets/js/8.e0652172.js +++ b/doc-dist/assets/js/8.774e8d70.js @@ -7,7 +7,7 @@ 367: function(t, s, a) { t.exports = a.p + 'assets/img/template-bg.244b9ac7.png'; }, - 400: function(t, s, a) { + 402: function(t, s, a) { 'use strict'; a.r(s); var e = a(42), diff --git a/doc-dist/assets/js/9.7e1cf4d5.js b/doc-dist/assets/js/9.5e6217e4.js similarity index 99% rename from doc-dist/assets/js/9.7e1cf4d5.js rename to doc-dist/assets/js/9.5e6217e4.js index 7154fc40..380c16d7 100644 --- a/doc-dist/assets/js/9.7e1cf4d5.js +++ b/doc-dist/assets/js/9.5e6217e4.js @@ -4,7 +4,7 @@ 358: function(t, o, r) { t.exports = r.p + 'assets/img/logo.001d04e6.svg'; }, - 385: function(t, o, r) { + 384: function(t, o, r) { 'use strict'; r.r(o); var s = r(42), diff --git a/doc-dist/assets/js/app.4588b99c.js b/doc-dist/assets/js/app.6f018bb2.js similarity index 98% rename from doc-dist/assets/js/app.4588b99c.js rename to doc-dist/assets/js/app.6f018bb2.js index 5d55c319..811e9a5a 100644 --- a/doc-dist/assets/js/app.4588b99c.js +++ b/doc-dist/assets/js/app.6f018bb2.js @@ -49,32 +49,33 @@ { 2: '917402d3', 3: 'd2d22c88', - 4: 'eddebdfd', + 4: 'd6c5e12d', 5: '262c1769', 6: '5f53f889', - 7: '189d38be', - 8: 'e0652172', - 9: '7e1cf4d5', + 7: 'b81baac3', + 8: '774e8d70', + 9: '5e6217e4', 10: 'b0d462d3', - 11: 'df257dc3', - 12: '584674f6', - 13: '1b1b5748', - 14: 'ea0f3745', - 15: '4eb9c19c', - 16: '1b7e6603', + 11: 'c5f47d34', + 12: 'f88d7615', + 13: '92f62c85', + 14: '0f62422c', + 15: '32ecee4e', + 16: '35510801', 17: 'c8b6849e', 18: 'e7ced042', - 19: '862b0c76', - 20: '4781e342', - 21: 'f426ff47', - 22: '49b6f904', + 19: '90149f22', + 20: 'fdb45864', + 21: 'd6a1c6a8', + 22: 'be7d4cd5', 23: '64cb6fc9', - 24: '919a8675', + 24: '0fb33088', 25: 'f099e2dd', - 26: '1d9c2285', - 27: '7c57ff72', - 28: 'ead47ae7', - 29: '3a117db5', + 26: 'c490ea36', + 27: '8cd051f4', + 28: 'a632ec96', + 29: '4deb4e94', + 30: '78ee027a', }[t] + '.js' ); @@ -560,12 +561,12 @@ O = a(x.length), S = 0, j = m || u, - A = e ? j(d, O) : n || p ? j(d, 0) : void 0; + E = e ? j(d, O) : n || p ? j(d, 0) : void 0; O > S; S++ ) if ((h || S in x) && ((b = w((g = x[S]), S, _)), t)) - if (e) A[S] = b; + if (e) E[S] = b; else if (b) switch (t) { case 3: @@ -575,16 +576,16 @@ case 6: return S; case 2: - c.call(A, g); + c.call(E, g); } else switch (t) { case 4: return !1; case 7: - c.call(A, g); + c.call(E, g); } - return l ? -1 : s || f ? f : A; + return l ? -1 : s || f ? f : E; }; }; t.exports = { @@ -1030,8 +1031,8 @@ O = n(78), S = n(24), j = n(8), - A = n(77), - E = n(11), + E = n(77), + A = n(11), k = n(10), C = n(69), $ = n(48), @@ -1053,7 +1054,7 @@ W = S.f, G = j.f, K = w.f, - J = A.f, + J = E.f, X = C('symbols'), Q = C('op-symbols'), Y = C('string-to-symbol-registry'), @@ -1173,7 +1174,7 @@ k(H, 'withoutSetter', function(t) { return ot(T(t), t); }), - (A.f = ct), + (E.f = ct), (j.f = at), (S.f = st), (x.f = w.f = ft), @@ -1270,7 +1271,7 @@ }, }, ); - H.prototype[U] || E(H.prototype, U, H.prototype.valueOf), z(H, 'Symbol'), (P[N] = !0); + H.prototype[U] || A(H.prototype, U, H.prototype.valueOf), z(H, 'Symbol'), (P[N] = !0); }, function(t, e, n) { 'use strict'; @@ -1665,21 +1666,21 @@ if ((x.push(w), !b)) break; '' === String(w[0]) && (y.lastIndex = c(m, i(y.lastIndex), _)); } - for (var O, S = '', j = 0, A = 0; A < x.length; A++) { - w = x[A]; + for (var O, S = '', j = 0, E = 0; E < x.length; E++) { + w = x[E]; for ( - var E = String(w[0]), k = l(p(a(w.index), m.length), 0), C = [], $ = 1; + var A = String(w[0]), k = l(p(a(w.index), m.length), 0), C = [], $ = 1; $ < w.length; $++ ) C.push(void 0 === (O = w[$]) ? O : String(O)); var P = w.groups; if (g) { - var T = [E].concat(C, k, m); + var T = [A].concat(C, k, m); void 0 !== P && T.push(P); var L = String(r.apply(void 0, T)); - } else L = s(E, m, k, C, P, r); - k >= j && ((S += m.slice(j, k) + L), (j = k + E.length)); + } else L = s(A, m, k, C, P, r); + k >= j && ((S += m.slice(j, k) + L), (j = k + A.length)); } return S + m.slice(j); }, @@ -2280,7 +2281,7 @@ w, O = function(t) { if (t === h && k) return k; - if (!v && t in A) return A[t]; + if (!v && t in E) return E[t]; switch (t) { case 'keys': case 'values': @@ -2295,10 +2296,10 @@ }, S = e + ' Iterator', j = !1, - A = t.prototype, - E = A[y] || A['@@iterator'] || (h && A[h]), - k = (!v && E) || O(h), - C = ('Array' == e && A.entries) || E; + E = t.prototype, + A = E[y] || E['@@iterator'] || (h && E[h]), + k = (!v && A) || O(h), + C = ('Array' == e && E.entries) || A; if ( (C && ((_ = i(C.call(new t()))), @@ -2308,18 +2309,18 @@ u(_, S, !0, !0), l && (p[S] = m))), 'values' == h && - E && - 'values' !== E.name && + A && + 'values' !== A.name && ((j = !0), (k = function() { - return E.call(this); + return A.call(this); })), - (l && !b) || A[y] === k || c(A, y, k), + (l && !b) || E[y] === k || c(E, y, k), (p[e] = k), h) ) if (((x = { values: O('values'), keys: g ? k : O('keys'), entries: O('entries') }), b)) - for (w in x) (v || j || !(w in A)) && s(A, w, x[w]); + for (w in x) (v || j || !(w in E)) && s(E, w, x[w]); else r({ target: e, proto: !0, forced: v || j }, x); return x; }; @@ -3900,8 +3901,8 @@ O = n(123).set, S = n(189), j = n(125), - A = n(191), - E = n(126), + E = n(191), + A = n(126), k = n(192), C = n(28), $ = n(100), @@ -3918,7 +3919,7 @@ F = s.document, B = s.process, V = f('fetch'), - H = E.f, + H = A.f, q = H, W = !!(F && F.createEvent && s.dispatchEvent), G = 'function' == typeof PromiseRejectionEvent, @@ -3989,7 +3990,7 @@ : (r = { promise: e, reason: n }), !G && (o = s['on' + t]) ? o(r) - : 'unhandledrejection' === t && A('Unhandled promise rejection', n); + : 'unhandledrejection' === t && E('Unhandled promise rejection', n); }, Z = function(t) { O.call(s, function() { @@ -4089,7 +4090,7 @@ e = z(t); (this.promise = t), (this.resolve = nt(ot, e)), (this.reject = nt(rt, e)); }), - (E.f = H = function(t) { + (A.f = H = function(t) { return t === N || t === i ? new o(t) : q(t); }), c || @@ -5065,8 +5066,8 @@ S = x && p.call(e, '__wrapped__'); if (O || S) { var j = O ? t.value() : t, - A = S ? e.value() : e; - return v || (v = new r()), d(j, A, n, h, v); + E = S ? e.value() : e; + return v || (v = new r()), d(j, E, n, h, v); } } return !!w && (v || (v = new r()), a(t, e, n, h, d, v)); @@ -5882,12 +5883,12 @@ return e ? e.toUpperCase() : ''; }); }), - A = O(function(t) { + E = O(function(t) { return t.charAt(0).toUpperCase() + t.slice(1); }), - E = /\B([A-Z])/g, + A = /\B([A-Z])/g, k = O(function(t) { - return t.replace(E, '-$1').toLowerCase(); + return t.replace(A, '-$1').toLowerCase(); }); var C = Function.prototype.bind ? function(t, e) { @@ -6175,7 +6176,7 @@ function jt(t) { St = t; } - var At = function(t) { + var Et = function(t) { (this.value = t), (this.dep = new pt()), (this.vmCount = 0), @@ -6194,18 +6195,18 @@ this.observeArray(t)) : this.walk(t); }; - function Et(t, e) { + function At(t, e) { var n; if (f(t) && !(t instanceof yt)) return ( - w(t, '__ob__') && t.__ob__ instanceof At + w(t, '__ob__') && t.__ob__ instanceof Et ? (n = t.__ob__) : St && !it() && (Array.isArray(t) || p(t)) && Object.isExtensible(t) && !t._isVue && - (n = new At(t)), + (n = new Et(t)), e && n && n.vmCount++, n ); @@ -6217,7 +6218,7 @@ var u = a && a.get, c = a && a.set; (u && !c) || 2 !== arguments.length || (n = t[e]); - var s = !o && Et(n); + var s = !o && At(n); Object.defineProperty(t, e, { enumerable: !0, configurable: !0, @@ -6230,7 +6231,7 @@ e === r || (e != e && r != r) || (u && !c) || - (c ? c.call(t, e) : (n = e), (s = !o && Et(e)), i.notify()); + (c ? c.call(t, e) : (n = e), (s = !o && At(e)), i.notify()); }, }); } @@ -6256,11 +6257,11 @@ for (var e = void 0, n = 0, r = t.length; n < r; n++) (e = t[n]) && e.__ob__ && e.__ob__.dep.depend(), Array.isArray(e) && Pt(e); } - (At.prototype.walk = function(t) { + (Et.prototype.walk = function(t) { for (var e = Object.keys(t), n = 0; n < e.length; n++) kt(t, e[n]); }), - (At.prototype.observeArray = function(t) { - for (var e = 0, n = t.length; e < n; e++) Et(t[e]); + (Et.prototype.observeArray = function(t) { + for (var e = 0, n = t.length; e < n; e++) At(t[e]); }); var Tt = F.optionMergeStrategies; function Lt(t, e) { @@ -6388,7 +6389,7 @@ if (w(o, n)) return o[n]; var i = j(n); if (w(o, i)) return o[i]; - var a = A(i); + var a = E(i); return w(o, a) ? o[a] : o[n] || o[i] || o[a]; } } @@ -6418,7 +6419,7 @@ return 'function' == typeof r && 'Function' !== Ft(e.type) ? r.call(t) : r; })(r, o, t); var s = St; - jt(!0), Et(a), jt(s); + jt(!0), At(a), jt(s); } return a; } @@ -6794,7 +6795,7 @@ r = n[t]; return ( (r && !e) || - Ee( + Ae( (r = n[t] = this.$options.staticRenderFns[t].call(this._renderProxy, null, this)), '__static__' + t, !1, @@ -6802,10 +6803,10 @@ r ); } - function Ae(t, e, n) { - return Ee(t, '__once__' + e + (n ? '_' + n : ''), !0), t; - } function Ee(t, e, n) { + return Ae(t, '__once__' + e + (n ? '_' + n : ''), !0), t; + } + function Ae(t, e, n) { if (Array.isArray(t)) for (var r = 0; r < t.length; r++) t[r] && 'string' != typeof t[r] && ke(t[r], e + '_' + r, n); @@ -6845,7 +6846,7 @@ return 'string' == typeof t ? e + t : t; } function Le(t) { - (t._o = Ae), + (t._o = Ee), (t._n = m), (t._s = y), (t._l = be), @@ -7467,9 +7468,9 @@ 36 !== (a = (i + '').charCodeAt(0)) && 95 !== a && yn(t, '_data', i)); } var a; - Et(e, !0); + At(e, !0); })(t) - : Et((t._data = {}), !0), + : At((t._data = {}), !0), e.computed && (function(t, e) { var n = (t._computedWatchers = Object.create(null)), @@ -7537,7 +7538,7 @@ function jn(t) { this._init(t); } - function An(t) { + function En(t) { t.cid = 0; var e = 1; t.extend = function(t) { @@ -7580,7 +7581,7 @@ ); }; } - function En(t) { + function An(t) { return t && (t.Ctor.options.name || t.tag); } function kn(t, e) { @@ -7597,7 +7598,7 @@ for (var i in n) { var a = n[i]; if (a) { - var u = En(a.componentOptions); + var u = An(a.componentOptions); u && !e(u) && $n(n, i, r, o); } } @@ -7853,7 +7854,7 @@ e = We(t), n = e && e.componentOptions; if (n) { - var r = En(n), + var r = An(n), o = this.include, i = this.exclude; if ((o && (!r || !kn(o, r))) || (i && r && kn(i, r))) return e; @@ -7883,7 +7884,7 @@ (t.delete = $t), (t.nextTick = re), (t.observable = function(t) { - return Et(t), t; + return At(t), t; }), (t.options = Object.create(null)), N.forEach(function(e) { @@ -7911,7 +7912,7 @@ return (this.options = Mt(this.options, t)), this; }; })(t), - An(t), + En(t), (function(t) { N.forEach(function(e) { t[e] = function(t, n) { @@ -8275,7 +8276,7 @@ } var Sr, jr = { create: Or, update: Or }; - function Ar(t, e) { + function Er(t, e) { if (!a(t.data.domProps) || !a(e.data.domProps)) { var n, r, @@ -8291,7 +8292,7 @@ if ('value' === n && 'PROGRESS' !== o.tagName) { o._value = r; var s = a(r) ? '' : String(r); - Er(o, s) && (o.value = s); + Ar(o, s) && (o.value = s); } else if ('innerHTML' === n && Kn(o.tagName) && a(o.innerHTML)) { (Sr = Sr || document.createElement('div')).innerHTML = '' + r + ''; for (var f = Sr.firstChild; o.firstChild; ) o.removeChild(o.firstChild); @@ -8303,7 +8304,7 @@ } } } - function Er(t, e) { + function Ar(t, e) { return ( !t.composing && ('OPTION' === t.tagName || @@ -8325,7 +8326,7 @@ })(t, e)) ); } - var kr = { create: Ar, update: Ar }, + var kr = { create: Er, update: Er }, Cr = O(function(t) { var e = {}, n = /:(.+)/; @@ -8562,20 +8563,20 @@ O = r.appearCancelled, S = r.duration, j = Qe, - A = Qe.$vnode; - A && A.parent; + E = Qe.$vnode; + E && E.parent; ) - (j = A.context), (A = A.parent); - var E = !j._isMounted || !t.isRootInsert; - if (!E || x || '' === x) { - var k = E && p ? p : c, - C = E && d ? d : l, - $ = E && h ? h : s, - P = (E && _) || v, - T = E && 'function' == typeof x ? x : y, - L = (E && w) || g, - R = (E && O) || b, + (j = E.context), (E = E.parent); + var A = !j._isMounted || !t.isRootInsert; + if (!A || x || '' === x) { + var k = A && p ? p : c, + C = A && d ? d : l, + $ = A && h ? h : s, + P = (A && _) || v, + T = A && 'function' == typeof x ? x : y, + L = (A && w) || g, + R = (A && O) || b, D = m(f(S) ? S.enter : S); 0; var z = !1 !== o && !Y, @@ -8804,7 +8805,7 @@ u(e.elm) && u(o) && (e = o[s] = _t(e)); var p = (e.elm = t.elm); if (c(t.isAsyncPlaceholder)) - u(e.asyncFactory.resolved) ? E(t.elm, e, n) : (e.isAsyncPlaceholder = !0); + u(e.asyncFactory.resolved) ? A(t.elm, e, n) : (e.isAsyncPlaceholder = !0); else if ( c(e.isStatic) && c(t.isStatic) && @@ -8884,8 +8885,8 @@ if (c(n) && u(t.parent)) t.parent.data.pendingInsert = e; else for (var r = 0; r < e.length; ++r) e[r].data.hook.insert(e[r]); } - var A = g('attrs,class,staticClass,staticStyle,key'); - function E(t, e, n, r) { + var E = g('attrs,class,staticClass,staticStyle,key'); + function A(t, e, n, r) { var o, i = e.tag, a = e.data, @@ -8901,7 +8902,7 @@ if (o !== t.innerHTML) return !1; } else { for (var f = !0, l = t.firstChild, h = 0; h < s.length; h++) { - if (!l || !E(l, s[h], n, r)) { + if (!l || !A(l, s[h], n, r)) { f = !1; break; } @@ -8913,7 +8914,7 @@ if (u(a)) { var v = !1; for (var m in a) - if (!A(m)) { + if (!E(m)) { (v = !0), y(e, n); break; } @@ -8937,7 +8938,7 @@ (1 === t.nodeType && t.hasAttribute('data-server-rendered') && (t.removeAttribute('data-server-rendered'), (n = !0)), - c(n) && E(t, e, p)) + c(n) && A(t, e, p)) ) return j(e, p, !0), t; (s = t), (t = new yt(i.tagName(s).toLowerCase(), {}, [], void 0, s)); @@ -8950,7 +8951,7 @@ if (((m.elm = e.elm), g)) { for (var w = 0; w < r.create.length; ++w) r.create[w](er, m); var O = m.data.hook.insert; - if (O.merged) for (var A = 1; A < O.fns.length; A++) O.fns[A](); + if (O.merged) for (var E = 1; E < O.fns.length; E++) O.fns[E](); } else tr(m); m = m.parent; } @@ -9126,10 +9127,10 @@ if (/\d-keep-alive$/.test(e.tag)) return t('keep-alive', { props: e.componentOptions.propsData }); } - var Ao = function(t) { + var Eo = function(t) { return t.tag || qe(t); }, - Eo = function(t) { + Ao = function(t) { return 'show' === t.name; }, ko = { @@ -9139,7 +9140,7 @@ render: function(t) { var e = this, n = this.$slots.default; - if (n && (n = n.filter(Ao)).length) { + if (n && (n = n.filter(Eo)).length) { 0; var r = this.mode; 0; @@ -9168,7 +9169,7 @@ c = this._vnode, f = Oo(c); if ( - (i.data.directives && i.data.directives.some(Eo) && (i.data.show = !0), + (i.data.directives && i.data.directives.some(Ao) && (i.data.show = !0), f && f.data && !(function(t, e) { @@ -9980,8 +9981,8 @@ O in g && (w.on[O] = Array.isArray(S) ? S : [S]); } for (var j in g) j in w.on ? w.on[j].push(g[j]) : (w.on[j] = m); - var A = (x.data.attrs = Do({}, x.data.attrs)); - (A.href = u), (A['aria-current'] = y); + var E = (x.data.attrs = Do({}, x.data.attrs)); + (E.href = u), (E['aria-current'] = y); } else b.on = g; } return t(this.tag, b, this.$slots.default); @@ -10005,8 +10006,8 @@ return t.preventDefault && t.preventDefault(), !0; } } - var Ai = 'undefined' != typeof window; - function Ei(t, e, n, r) { + var Ei = 'undefined' != typeof window; + function Ai(t, e, n, r) { var o = e || [], i = n || Object.create(null), a = r || Object.create(null); @@ -10060,7 +10061,7 @@ return oi(t, [], e); } function Ci(t, e) { - var n = Ei(t), + var n = Ai(t), r = n.pathList, o = n.pathMap, i = n.nameMap; @@ -10138,7 +10139,7 @@ return { match: a, addRoutes: function(t) { - Ei(t, r, o, i); + Ai(t, r, o, i); }, }; } @@ -10152,7 +10153,7 @@ } return !0; } - var Pi = Ai && window.performance && window.performance.now ? window.performance : Date; + var Pi = Ei && window.performance && window.performance.now ? window.performance : Date; function Ti() { return Pi.now().toFixed(3); } @@ -10241,7 +10242,7 @@ } var Wi, Gi = - Ai && + Ei && ((-1 === (Wi = window.navigator.userAgent).indexOf('Android 2.') && -1 === Wi.indexOf('Android 4.0')) || -1 === Wi.indexOf('Mobile Safari') || @@ -10383,7 +10384,7 @@ (this.router = t), (this.base = (function(t) { if (!t) - if (Ai) { + if (Ei) { var e = document.querySelector('base'); t = (t = (e && e.getAttribute('href')) || '/').replace(/^https?:\/\/[^\/]+/, ''); } else t = '/'; @@ -10824,7 +10825,7 @@ switch ( ((this.fallback = 'history' === e && !Gi && !1 !== t.fallback), this.fallback && (e = 'hash'), - Ai || (e = 'abstract'), + Ei || (e = 'abstract'), (this.mode = e), e) ) { @@ -11006,7 +11007,7 @@ (xa.version = '3.4.9'), (xa.isNavigationFailure = ra), (xa.NavigationFailureType = Qi), - Ai && window.Vue && window.Vue.use(xa); + Ei && window.Vue && window.Vue.use(xa); var Sa = xa; n(93), n(197), n(199), n(201), n(133), n(94), n(202), n(95); function ja(t) { @@ -11017,8 +11018,8 @@ Object.freeze(t); } n(174), n(134), n(43), n(176), n(66), n(56), n(57), n(82); - function Aa(t) { - return (Aa = + function Ea(t) { + return (Ea = 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator ? function(t) { return typeof t; @@ -11032,7 +11033,7 @@ : typeof t; })(t); } - var Ea = n(40), + var Aa = n(40), ka = { NotFound: function() { return n.e(18).then(n.bind(null, 378)); @@ -11042,68 +11043,71 @@ }, }, Ca = { - 'v-50357228': function() { - return n.e(21).then(n.bind(null, 383)); - }, - 'v-11d3734f': function() { - return n.e(19).then(n.bind(null, 384)); + 'v-27f2dbac': function() { + return n.e(20).then(n.bind(null, 383)); }, 'v-77cb6b9f': function() { - return n.e(9).then(n.bind(null, 385)); + return n.e(9).then(n.bind(null, 384)); }, - 'v-27f2dbac': function() { - return n.e(20).then(n.bind(null, 386)); + 'v-11d3734f': function() { + return n.e(19).then(n.bind(null, 385)); + }, + 'v-50357228': function() { + return n.e(21).then(n.bind(null, 386)); }, 'v-358de850': function() { return n.e(10).then(n.bind(null, 387)); }, - 'v-2c7961a6': function() { - return n.e(22).then(n.bind(null, 388)); + 'v-1c499b2c': function() { + return n.e(11).then(n.bind(null, 388)); }, - 'v-50c154a8': function() { - return n.e(24).then(n.bind(null, 389)); + 'v-2c7961a6': function() { + return n.e(22).then(n.bind(null, 389)); }, 'v-6be2680e': function() { return n.e(23).then(n.bind(null, 390)); }, - 'v-1c499b2c': function() { - return n.e(11).then(n.bind(null, 391)); + 'v-94956b5c': function() { + return n.e(12).then(n.bind(null, 391)); }, - 'v-25c71eb8': function() { + 'v-8736ca8c': function() { return n.e(26).then(n.bind(null, 392)); }, 'v-3e53f828': function() { return n.e(25).then(n.bind(null, 393)); }, - 'v-4574ee28': function() { + 'v-25c71eb8': function() { return n.e(27).then(n.bind(null, 394)); }, - 'v-94956b5c': function() { - return n.e(12).then(n.bind(null, 395)); + 'v-1995786c': function() { + return n.e(13).then(n.bind(null, 395)); }, - 'v-f3d01ce0': function() { - return n.e(7).then(n.bind(null, 396)); + 'v-4574ee28': function() { + return n.e(28).then(n.bind(null, 396)); }, - 'v-1995786c': function() { - return n.e(13).then(n.bind(null, 397)); + 'v-50c154a8': function() { + return n.e(24).then(n.bind(null, 397)); }, - 'v-31643a8c': function() { - return n.e(14).then(n.bind(null, 398)); + 'v-f3d01ce0': function() { + return n.e(7).then(n.bind(null, 398)); }, - 'v-0be2f96c': function() { + 'v-76fd0d8c': function() { return n.e(29).then(n.bind(null, 399)); }, - 'v-a9b10980': function() { - return n.e(8).then(n.bind(null, 400)); + 'v-0be2f96c': function() { + return n.e(30).then(n.bind(null, 400)); }, - 'v-76fd0d8c': function() { - return n.e(28).then(n.bind(null, 401)); + 'v-31643a8c': function() { + return n.e(14).then(n.bind(null, 401)); + }, + 'v-a9b10980': function() { + return n.e(8).then(n.bind(null, 402)); }, 'v-c2ed5468': function() { - return n.e(15).then(n.bind(null, 402)); + return n.e(15).then(n.bind(null, 403)); }, 'v-3f5a1068': function() { - return n.e(16).then(n.bind(null, 403)); + return n.e(16).then(n.bind(null, 404)); }, }; function $a(t) { @@ -11269,7 +11273,7 @@ var e; }, mounted: function() { - (this.currentMetaTags = Object(Ea.a)(document.querySelectorAll('meta'))), + (this.currentMetaTags = Object(Aa.a)(document.querySelectorAll('meta'))), this.updateMeta(), this.updateCanonicalLink(); }, @@ -11314,7 +11318,7 @@ function eu(t, e) { if ( (e && - Object(Ea.a)(e) + Object(Aa.a)(e) .filter(function(t) { return t.parentNode === document.head; }) @@ -11458,7 +11462,7 @@ t[e] || (t[e] = {}), Object.assign(t[e], n); break; case 'mixins': - t[e] || (t[e] = []), (r = t[e]).push.apply(r, Object(Ea.a)(n)); + t[e] || (t[e] = []), (r = t[e]).push.apply(r, Object(Aa.a)(n)); break; default: throw new Error('Unknown option name.'); @@ -11466,13 +11470,22 @@ })(fu, 'mixins', uu); var lu = [ { - name: 'v-50357228', - path: '/zh/guide/componentDev/DSLAnalysis.html', + name: 'v-27f2dbac', + path: '/zh/guide/building.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-50357228').then(n); + Wa('Layout', 'v-27f2dbac').then(n); + }, + }, + { + name: 'v-77cb6b9f', + path: '/zh/guide/', + component: fu, + beforeEnter: function(t, e, n) { + Wa('Layout', 'v-77cb6b9f').then(n); }, }, + { path: '/zh/guide/index.html', redirect: '/zh/guide/' }, { name: 'v-11d3734f', path: '/', @@ -11483,28 +11496,27 @@ }, { path: '/index.html', redirect: '/' }, { - name: 'v-77cb6b9f', - path: '/zh/guide/', + name: 'v-50357228', + path: '/zh/guide/componentDev/DSLAnalysis.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-77cb6b9f').then(n); + Wa('Layout', 'v-50357228').then(n); }, }, - { path: '/zh/guide/index.html', redirect: '/zh/guide/' }, { - name: 'v-27f2dbac', - path: '/zh/guide/building.html', + name: 'v-358de850', + path: '/zh/guide/componentDev/dynamicLoading.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-27f2dbac').then(n); + Wa('Layout', 'v-358de850').then(n); }, }, { - name: 'v-358de850', - path: '/zh/guide/componentDev/dynamicLoading.html', + name: 'v-1c499b2c', + path: '/zh/guide/deployDev/deploy.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-358de850').then(n); + Wa('Layout', 'v-1c499b2c').then(n); }, }, { @@ -11516,27 +11528,35 @@ }, }, { - name: 'v-50c154a8', - path: '/zh/guide/deployDev/dir.html', + name: 'v-6be2680e', + path: '/zh/guide/deployDev/api.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-50c154a8').then(n); + Wa('Layout', 'v-6be2680e').then(n); }, }, { - name: 'v-6be2680e', - path: '/zh/guide/deployDev/api.html', + name: 'v-94956b5c', + path: '/zh/guide/deployDev/deploy_v6.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-6be2680e').then(n); + Wa('Layout', 'v-94956b5c').then(n); }, }, { - name: 'v-1c499b2c', - path: '/zh/guide/deployDev/deploy.html', + name: 'v-8736ca8c', + path: '/zh/guide/deployDev/log.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-1c499b2c').then(n); + Wa('Layout', 'v-8736ca8c').then(n); + }, + }, + { + name: 'v-3e53f828', + path: '/zh/guide/deployDev/https.html', + component: fu, + beforeEnter: function(t, e, n) { + Wa('Layout', 'v-3e53f828').then(n); }, }, { @@ -11548,11 +11568,11 @@ }, }, { - name: 'v-3e53f828', - path: '/zh/guide/deployDev/https.html', + name: 'v-1995786c', + path: '/zh/guide/functionRealization/machinePreview.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-3e53f828').then(n); + Wa('Layout', 'v-1995786c').then(n); }, }, { @@ -11564,11 +11584,11 @@ }, }, { - name: 'v-94956b5c', - path: '/zh/guide/deployDev/deploy_v6.html', + name: 'v-50c154a8', + path: '/zh/guide/deployDev/dir.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-94956b5c').then(n); + Wa('Layout', 'v-50c154a8').then(n); }, }, { @@ -11580,19 +11600,11 @@ }, }, { - name: 'v-1995786c', - path: '/zh/guide/functionRealization/machinePreview.html', - component: fu, - beforeEnter: function(t, e, n) { - Wa('Layout', 'v-1995786c').then(n); - }, - }, - { - name: 'v-31643a8c', - path: '/zh/guide/functionRealization/screenshot.html', + name: 'v-76fd0d8c', + path: '/zh/guide/functionRealization/revocation.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-31643a8c').then(n); + Wa('Layout', 'v-76fd0d8c').then(n); }, }, { @@ -11604,19 +11616,19 @@ }, }, { - name: 'v-a9b10980', - path: '/zh/guide/functionRealization/templateLibrary.html', + name: 'v-31643a8c', + path: '/zh/guide/functionRealization/screenshot.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-a9b10980').then(n); + Wa('Layout', 'v-31643a8c').then(n); }, }, { - name: 'v-76fd0d8c', - path: '/zh/guide/functionRealization/revocation.html', + name: 'v-a9b10980', + path: '/zh/guide/functionRealization/templateLibrary.html', component: fu, beforeEnter: function(t, e, n) { - Wa('Layout', 'v-76fd0d8c').then(n); + Wa('Layout', 'v-a9b10980').then(n); }, }, { @@ -11644,13 +11656,24 @@ headTags: [], pages: [ { - title: 'DSL设计', frontmatter: {}, - regularPath: '/zh/guide/componentDev/DSLAnalysis.html', - relativePath: 'zh/guide/componentDev/DSLAnalysis.md', - key: 'v-50357228', - path: '/zh/guide/componentDev/DSLAnalysis.html', - lastUpdated: '1/17/2021, 9:57:34 PM', + regularPath: '/zh/guide/building.html', + relativePath: 'zh/guide/building.md', + key: 'v-27f2dbac', + path: '/zh/guide/building.html', + lastUpdated: '1/17/2021, 11:22:04 PM', + }, + { + frontmatter: {}, + regularPath: '/zh/guide/', + relativePath: 'zh/guide/README.md', + key: 'v-77cb6b9f', + path: '/zh/guide/', + headers: [ + { level: 2, title: '功能特点', slug: '功能特点' }, + { level: 2, title: '为什么选择 Dooring', slug: '为什么选择-dooring' }, + ], + lastUpdated: '3/22/2021, 10:16:35 AM', }, { title: 'Home', @@ -11683,24 +11706,13 @@ lastUpdated: '1/17/2021, 11:22:04 PM', }, { + title: 'DSL设计', frontmatter: {}, - regularPath: '/zh/guide/', - relativePath: 'zh/guide/README.md', - key: 'v-77cb6b9f', - path: '/zh/guide/', - headers: [ - { level: 2, title: '功能特点', slug: '功能特点' }, - { level: 2, title: '为什么选择 Dooring', slug: '为什么选择-dooring' }, - ], - lastUpdated: '3/22/2021, 10:16:35 AM', - }, - { - frontmatter: {}, - regularPath: '/zh/guide/building.html', - relativePath: 'zh/guide/building.md', - key: 'v-27f2dbac', - path: '/zh/guide/building.html', - lastUpdated: '1/17/2021, 11:22:04 PM', + regularPath: '/zh/guide/componentDev/DSLAnalysis.html', + relativePath: 'zh/guide/componentDev/DSLAnalysis.md', + key: 'v-50357228', + path: '/zh/guide/componentDev/DSLAnalysis.html', + lastUpdated: '1/17/2021, 9:57:34 PM', }, { frontmatter: {}, @@ -11711,6 +11723,18 @@ headers: [{ level: 2, title: 'umi3提供的dynamic', slug: 'umi3提供的dynamic' }], lastUpdated: '1/17/2021, 9:57:34 PM', }, + { + frontmatter: {}, + regularPath: '/zh/guide/deployDev/deploy.html', + relativePath: 'zh/guide/deployDev/deploy.md', + key: 'v-1c499b2c', + path: '/zh/guide/deployDev/deploy.html', + headers: [ + { level: 3, title: '部署架构图', slug: '部署架构图' }, + { level: 3, title: '步骤3.4详细流程', slug: '步骤3-4详细流程' }, + ], + lastUpdated: '4/20/2021, 10:19:10 PM', + }, { frontmatter: {}, regularPath: '/zh/guide/componentDev/componentStructure.html', @@ -11725,13 +11749,6 @@ ], lastUpdated: '4/27/2021, 1:17:02 AM', }, - { - frontmatter: {}, - regularPath: '/zh/guide/deployDev/dir.html', - relativePath: 'zh/guide/deployDev/dir.md', - key: 'v-50c154a8', - path: '/zh/guide/deployDev/dir.html', - }, { frontmatter: {}, regularPath: '/zh/guide/deployDev/api.html', @@ -11768,24 +11785,23 @@ }, { frontmatter: {}, - regularPath: '/zh/guide/deployDev/deploy.html', - relativePath: 'zh/guide/deployDev/deploy.md', - key: 'v-1c499b2c', - path: '/zh/guide/deployDev/deploy.html', + regularPath: '/zh/guide/deployDev/deploy_v6.html', + relativePath: 'zh/guide/deployDev/deploy_v6.md', + key: 'v-94956b5c', + path: '/zh/guide/deployDev/deploy_v6.html', headers: [ { level: 3, title: '部署架构图', slug: '部署架构图' }, { level: 3, title: '步骤3.4详细流程', slug: '步骤3-4详细流程' }, ], - lastUpdated: '4/20/2021, 10:19:10 PM', + lastUpdated: '5/8/2021, 12:34:13 AM', }, { frontmatter: {}, - regularPath: '/zh/guide/deployDev/oss.html', - relativePath: 'zh/guide/deployDev/oss.md', - key: 'v-25c71eb8', - path: '/zh/guide/deployDev/oss.html', - headers: [{ level: 3, title: '前端上传文件到oss', slug: '前端上传文件到oss' }], - lastUpdated: '1/31/2021, 1:25:02 AM', + regularPath: '/zh/guide/deployDev/log.html', + relativePath: 'zh/guide/deployDev/log.md', + key: 'v-8736ca8c', + path: '/zh/guide/deployDev/log.html', + headers: [{ level: 3, title: '更新日志', slug: '更新日志' }], }, { frontmatter: {}, @@ -11799,6 +11815,23 @@ ], lastUpdated: '1/31/2021, 1:25:02 AM', }, + { + frontmatter: {}, + regularPath: '/zh/guide/deployDev/oss.html', + relativePath: 'zh/guide/deployDev/oss.md', + key: 'v-25c71eb8', + path: '/zh/guide/deployDev/oss.html', + headers: [{ level: 3, title: '前端上传文件到oss', slug: '前端上传文件到oss' }], + lastUpdated: '1/31/2021, 1:25:02 AM', + }, + { + frontmatter: {}, + regularPath: '/zh/guide/functionRealization/machinePreview.html', + relativePath: 'zh/guide/functionRealization/machinePreview.md', + key: 'v-1995786c', + path: '/zh/guide/functionRealization/machinePreview.html', + lastUpdated: '1/17/2021, 9:57:34 PM', + }, { frontmatter: {}, regularPath: '/zh/guide/directoryStructure.html', @@ -11809,15 +11842,11 @@ }, { frontmatter: {}, - regularPath: '/zh/guide/deployDev/deploy_v6.html', - relativePath: 'zh/guide/deployDev/deploy_v6.md', - key: 'v-94956b5c', - path: '/zh/guide/deployDev/deploy_v6.html', - headers: [ - { level: 3, title: '部署架构图', slug: '部署架构图' }, - { level: 3, title: '步骤3.4详细流程', slug: '步骤3-4详细流程' }, - ], - lastUpdated: '5/8/2021, 12:34:13 AM', + regularPath: '/zh/guide/deployDev/dir.html', + relativePath: 'zh/guide/deployDev/dir.md', + key: 'v-50c154a8', + path: '/zh/guide/deployDev/dir.html', + lastUpdated: '5/13/2021, 9:56:54 PM', }, { frontmatter: {}, @@ -11829,18 +11858,10 @@ }, { frontmatter: {}, - regularPath: '/zh/guide/functionRealization/machinePreview.html', - relativePath: 'zh/guide/functionRealization/machinePreview.md', - key: 'v-1995786c', - path: '/zh/guide/functionRealization/machinePreview.html', - lastUpdated: '1/17/2021, 9:57:34 PM', - }, - { - frontmatter: {}, - regularPath: '/zh/guide/functionRealization/screenshot.html', - relativePath: 'zh/guide/functionRealization/screenshot.md', - key: 'v-31643a8c', - path: '/zh/guide/functionRealization/screenshot.html', + regularPath: '/zh/guide/functionRealization/revocation.html', + relativePath: 'zh/guide/functionRealization/revocation.md', + key: 'v-76fd0d8c', + path: '/zh/guide/functionRealization/revocation.html', lastUpdated: '1/17/2021, 9:57:34 PM', }, { @@ -11851,6 +11872,14 @@ path: '/zh/guide/functionRealization/saveJson.html', lastUpdated: '1/17/2021, 9:57:34 PM', }, + { + frontmatter: {}, + regularPath: '/zh/guide/functionRealization/screenshot.html', + relativePath: 'zh/guide/functionRealization/screenshot.md', + key: 'v-31643a8c', + path: '/zh/guide/functionRealization/screenshot.html', + lastUpdated: '1/17/2021, 9:57:34 PM', + }, { frontmatter: {}, regularPath: '/zh/guide/functionRealization/templateLibrary.html', @@ -11864,14 +11893,6 @@ ], lastUpdated: '1/17/2021, 9:57:34 PM', }, - { - frontmatter: {}, - regularPath: '/zh/guide/functionRealization/revocation.html', - relativePath: 'zh/guide/functionRealization/revocation.md', - key: 'v-76fd0d8c', - path: '/zh/guide/functionRealization/revocation.html', - lastUpdated: '1/17/2021, 9:57:34 PM', - }, { frontmatter: {}, regularPath: '/zh/guide/introduced.html', @@ -12041,6 +12062,12 @@ collapsable: !1, sidebarDepth: 1, }, + { + title: '更新日志', + path: '/zh/guide/deployDev/log', + collapsable: !1, + sidebarDepth: 1, + }, ], }, ], @@ -12051,7 +12078,7 @@ return Promise.all([n.e(0), n.e(3)]).then(n.bind(null, 380)); }), Ro.component('Badge', function() { - return Promise.all([n.e(0), n.e(4)]).then(n.bind(null, 404)); + return Promise.all([n.e(0), n.e(4)]).then(n.bind(null, 405)); }), Ro.component('CodeBlock', function() { return Promise.all([n.e(0), n.e(5)]).then(n.bind(null, 381)); @@ -12115,7 +12142,7 @@ } n(138), n(98); function _u(t, e) { - return !e || ('object' !== Aa(e) && 'function' != typeof e) + return !e || ('object' !== Ea(e) && 'function' != typeof e) ? (function(t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); @@ -12230,7 +12257,7 @@ }).length > 0 ); } - var Au = { + var Eu = { props: { pageKey: String, slotKey: { type: String, default: 'default' } }, render: function(t) { var e = this.pageKey || this.$parent.$page.key; @@ -12241,7 +12268,7 @@ ); }, }, - Eu = { + Au = { functional: !0, props: { slotKey: String, required: !0 }, render: function(t, e) { @@ -12534,8 +12561,8 @@ })(); }, pu), ), - Ro.component('Content', Au), - Ro.component('ContentSlotsDistributor', Eu), + Ro.component('Content', Eu), + Ro.component('ContentSlotsDistributor', Au), Ro.component('OutboundLink', Cu), Ro.component('ClientOnly', { functional: !0, @@ -12554,7 +12581,7 @@ var e = this.$site.base; return '/' === t.charAt(0) ? e + t.slice(1) : t; }), - (window.__VUEPRESS__ = { version: '1.8.0', hash: 'bcdb6c0' }), + (window.__VUEPRESS__ = { version: '1.8.0', hash: '3a9ae89' }), (function(t) { return $u.apply(this, arguments); })(!1).then(function(t) { diff --git a/doc-dist/index.html b/doc-dist/index.html index b20a92dc..5d60b7b7 100644 --- a/doc-dist/index.html +++ b/doc-dist/index.html @@ -8,7 +8,7 @@ - + @@ -28,11 +28,11 @@ 体验 (opens new window)

hero一款所见即所得的H5编辑器

1

简洁方便

任何人只需傻瓜式拖拽或进行简单编辑即可生成精美的H5页面

2

插拔式体验

产品以GPL协议开源, 授权后可植入任何系统,并支持二次开发

3

持续迭代,无限可能

目前正在持续迭代中,后续可根据需求开发功能更强大的可视化系统

hero一款所见即所得的H5编辑器

1

简洁方便

任何人只需傻瓜式拖拽或进行简单编辑即可生成精美的H5页面

2

插拔式体验

产品以GPL协议开源, 授权后可植入任何系统,并支持二次开发

3

持续迭代,无限可能

目前正在持续迭代中,后续可根据需求开发功能更强大的可视化系统

- + diff --git a/doc-dist/zh/guide/building.html b/doc-dist/zh/guide/building.html index b163c015..b78cc18f 100644 --- a/doc-dist/zh/guide/building.html +++ b/doc-dist/zh/guide/building.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

正在建设中...

Last Updated: 1/17/2021, 11:22:04 PM
- + (opens new window)

正在建设中...

Last Updated: 1/17/2021, 11:22:04 PM
+ diff --git a/doc-dist/zh/guide/componentDev/DSLAnalysis.html b/doc-dist/zh/guide/componentDev/DSLAnalysis.html index 7e9febee..5f23a2db 100644 --- a/doc-dist/zh/guide/componentDev/DSLAnalysis.html +++ b/doc-dist/zh/guide/componentDev/DSLAnalysis.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# DSL设计

DSL层主要约定了Dooring组件的数据协议,包括组件的可编辑属性、编辑类型、初始值等,之所以定义一致的协议层,主要是方便后期的组件扩展,配置后移,有助于不同后端语言开发和数据存储,接下来我们看看header组件的schema。

1.editData 可编辑的属性类型DSL

2.config 可编辑组件的默认属性

const Header: IHeaderSchema = {
+   (opens new window)

# DSL设计

DSL层主要约定了Dooring组件的数据协议,包括组件的可编辑属性、编辑类型、初始值等,之所以定义一致的协议层,主要是方便后期的组件扩展,配置后移,有助于不同后端语言开发和数据存储,接下来我们看看header组件的schema。

1.editData 可编辑的属性类型DSL

2.config 可编辑组件的默认属性

const Header: IHeaderSchema = {
   editData: [
     {
       key: 'bgColor',
@@ -88,6 +88,6 @@
       
       →
     

- + diff --git a/doc-dist/zh/guide/componentDev/componentStructure.html b/doc-dist/zh/guide/componentDev/componentStructure.html index dfdd9af8..fbf06341 100644 --- a/doc-dist/zh/guide/componentDev/componentStructure.html +++ b/doc-dist/zh/guide/componentDev/componentStructure.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 组件结构

dooring的组件设计包含以下3个部分组件:

1、component 组件主体

2、schema 组件的DSL,结构协议层

3、template 定义了组件的类型、外观、从属关系,后期考虑纳入schema

接下来我会介绍一个基本的组件主体设计,以为template设计,在下一章会具体介绍schema部分。

# 组件设计

我们这里拿基本的header组件来举例,如下是header组件的代码:

interface HeaderPropTypes extends IHeaderConfig {
+   (opens new window)

# 组件结构

dooring的组件设计包含以下3个部分组件:

1、component 组件主体

2、schema 组件的DSL,结构协议层

3、template 定义了组件的类型、外观、从属关系,后期考虑纳入schema

接下来我会介绍一个基本的组件主体设计,以为template设计,在下一章会具体介绍schema部分。

# 组件设计

我们这里拿基本的header组件来举例,如下是header组件的代码:

interface HeaderPropTypes extends IHeaderConfig {
   isTpl: boolean;
 }
 
@@ -148,6 +148,6 @@
       
       →
     

- + diff --git a/doc-dist/zh/guide/componentDev/dynamicLoading.html b/doc-dist/zh/guide/componentDev/dynamicLoading.html index 1e941207..4f6c78b8 100644 --- a/doc-dist/zh/guide/componentDev/dynamicLoading.html +++ b/doc-dist/zh/guide/componentDev/dynamicLoading.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 组件动态加载

目前H5-Dooring的组件都是通过动态加载的方式引入,好处是我们在页面中只会加载我们需要的组件,不需要的组件不会被加载,这样可以提高页面加载的速度,这样做也会出现一些问题,比如一个长页面,配置了很多组件,那么一个页面加载过程可以会触发多次请求,目前还没有遇到性能问题,但后续会逐渐优化这个问题。

# umi3提供的dynamic

目前组件的动态加载我们采用的umi的dynamic方案,基于它我们上层封装了一个组件动态加载器,原理如下:

foo

具体代码可以参考Dooring的Github地址:https://github.com/MrXujiang/h5-Dooring (opens new window)

Last Updated: 1/17/2021, 9:57:34 PM

# 组件动态加载

目前H5-Dooring的组件都是通过动态加载的方式引入,好处是我们在页面中只会加载我们需要的组件,不需要的组件不会被加载,这样可以提高页面加载的速度,这样做也会出现一些问题,比如一个长页面,配置了很多组件,那么一个页面加载过程可以会触发多次请求,目前还没有遇到性能问题,但后续会逐渐优化这个问题。

# umi3提供的dynamic

目前组件的动态加载我们采用的umi的dynamic方案,基于它我们上层封装了一个组件动态加载器,原理如下:

foo

具体代码可以参考Dooring的Github地址:https://github.com/MrXujiang/h5-Dooring (opens new window)

Last Updated: 1/17/2021, 9:57:34 PM
- + diff --git a/doc-dist/zh/guide/deployDev/api.html b/doc-dist/zh/guide/deployDev/api.html index 294de9b1..dbd58182 100644 --- a/doc-dist/zh/guide/deployDev/api.html +++ b/doc-dist/zh/guide/deployDev/api.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

H5-Dooring后端部分主要使用 Nodejs 开发, 为了满足更多定制化需求和服务的可移植性, 特意编写了API接口文档, + (opens new window)

H5-Dooring后端部分主要使用 Nodejs 开发, 为了满足更多定制化需求和服务的可移植性, 特意编写了API接口文档, 方便大家使用不同的后端语言实现服务接入.

  • 注意: 接口统一前缀为/api/v0

# 用户相关

# 登录

用户登录接口

  • POST /vip/check
参数名 是否必选 类型 说明
n true string 用户名
co true string 密码

返回示例

{
     "result": { 
         "n": "test", 
@@ -307,7 +307,11 @@
       ←
        

- + + 更新日志 + + → +

+ diff --git a/doc-dist/zh/guide/deployDev/deploy.html b/doc-dist/zh/guide/deployDev/deploy.html index c222bb80..50d73da6 100644 --- a/doc-dist/zh/guide/deployDev/deploy.html +++ b/doc-dist/zh/guide/deployDev/deploy.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

私有化部署需要获取4个核心项目包, 包括

  • H5编辑器(h5_plus)
  • H5基座(h5)
  • Dooring管理后台(Dooring-Admin)
  • 服务端项目(Server)

获取以上四个核心源码工程需要满足商业授权协议, 具体可参考商业授权方案 (opens new window)

# 部署架构图

H5-dooring部署

部署流程如下:

  1. 下载4个源码工程, 安装依赖(npm install 或 yarn)
  2. 打包3个前端工程至server的static目录下
  3. server下本地运行 yarn startnpm start 启动服务端进行本地测试
  4. 打包服务端代码, yarn build 生成 dist 目录, 建议使用 pm2nodejs服务的负载均衡, 运行 pm2 start dist/index.js启动生产环境代码

也可以将以上步骤集成到gitlab等CI, CD服务中, 进行自动化打包发布, 或者采用docker进行容器化部署.

# 步骤3.4详细流程

# 1. 安装项目环境

服务器需提前安装node和pm2, 将本项目上传至服务器指定的目录(如/www/activity), 进入项目目录, 执行:

npm install
+   (opens new window)

私有化部署需要获取4个核心项目包, 包括

  • H5编辑器(h5_plus)
  • H5基座(h5)
  • Dooring管理后台(Dooring-Admin)
  • 服务端项目(Server)

获取以上四个核心源码工程需要满足商业授权协议, 具体可参考商业授权方案 (opens new window)

# 部署架构图

H5-dooring部署

部署流程如下:

  1. 下载4个源码工程, 安装依赖(npm install 或 yarn)
  2. 打包3个前端工程至server的static目录下
  3. server下本地运行 yarn startnpm start 启动服务端进行本地测试
  4. 打包服务端代码, yarn build 生成 dist 目录, 建议使用 pm2nodejs服务的负载均衡, 运行 pm2 start dist/index.js启动生产环境代码

也可以将以上步骤集成到gitlab等CI, CD服务中, 进行自动化打包发布, 或者采用docker进行容器化部署.

# 步骤3.4详细流程

# 1. 安装项目环境

服务器需提前安装node和pm2, 将本项目上传至服务器指定的目录(如/www/activity), 进入项目目录, 执行:

npm install
 

# 2. 修改项目域名

进入./src/config/index.js, 修改staticPath变量为当前服务器域名/ip, 如http://xxx.comhttp://xxx.com:8080(如非80端口)

# 3. 编译项目

执行npm run build编译项目, 生成dist目录

# 4. 运行项目

在项目根目录执行 pm2 start dist/index.js启动项目

Last Updated: 4/20/2021, 10:19:10 PM
- + diff --git a/doc-dist/zh/guide/deployDev/deploy_v6.html b/doc-dist/zh/guide/deployDev/deploy_v6.html index 8a60e461..df49f8e0 100644 --- a/doc-dist/zh/guide/deployDev/deploy_v6.html +++ b/doc-dist/zh/guide/deployDev/deploy_v6.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

私有化部署需要获取3个核心项目包, 包括

  • 可视化大屏编辑器(v6.dooring/)
  • v6管理后台(v6.dooring/manage)
  • 服务端项目(v6.dooring/server)

获取以上三个核心源码工程需要满足商业授权协议, 具体可参考商业授权方案 (opens new window)

# 部署架构图

H5-dooring部署

部署流程如下:

  1. 下载3个源码工程, 安装依赖(npm install 或 yarn)
  2. 打包2个前端工程至server的static目录下
  3. server下本地运行 yarn startnpm start 启动服务端进行本地测试
  4. 打包服务端代码, yarn build 生成 dist 目录, 建议使用 pm2nodejs服务的负载均衡, 运行 pm2 start dist/index.js启动生产环境代码

也可以将以上步骤集成到gitlab等CI, CD服务中, 进行自动化打包发布, 或者采用docker进行容器化部署.

# 步骤3.4详细流程

# 1. 安装项目环境

服务器需提前安装node和pm2, 将本项目上传至服务器指定的目录(如/www/activity), 进入项目目录, 执行:

npm install
+   (opens new window)

私有化部署需要获取3个核心项目包, 包括

  • 可视化大屏编辑器(v6.dooring/)
  • v6管理后台(v6.dooring/manage)
  • 服务端项目(v6.dooring/server)

获取以上三个核心源码工程需要满足商业授权协议, 具体可参考商业授权方案 (opens new window)

# 部署架构图

H5-dooring部署

部署流程如下:

  1. 下载3个源码工程, 安装依赖(npm install 或 yarn)
  2. 打包2个前端工程至server的static目录下
  3. server下本地运行 yarn startnpm start 启动服务端进行本地测试
  4. 打包服务端代码, yarn build 生成 dist 目录, 建议使用 pm2nodejs服务的负载均衡, 运行 pm2 start dist/index.js启动生产环境代码

也可以将以上步骤集成到gitlab等CI, CD服务中, 进行自动化打包发布, 或者采用docker进行容器化部署.

# 步骤3.4详细流程

# 1. 安装项目环境

服务器需提前安装node和pm2, 将本项目上传至服务器指定的目录(如/www/activity), 进入项目目录, 执行:

npm install
 

# 2. 修改项目域名

进入./src/config/index.js, 修改staticPath变量为当前服务器域名/ip, 如http://xxx.comhttp://xxx.com:8080(如非80端口)

# 3. 编译项目

执行npm run build编译项目, 生成dist目录

# 4. 运行项目

在项目根目录执行 pm2 start dist/index.js启动项目

Last Updated: 5/8/2021, 12:34:13 AM
- + diff --git a/doc-dist/zh/guide/deployDev/dir.html b/doc-dist/zh/guide/deployDev/dir.html index b9fc7c12..73cfbf0f 100644 --- a/doc-dist/zh/guide/deployDev/dir.html +++ b/doc-dist/zh/guide/deployDev/dir.html @@ -8,7 +8,7 @@ - + @@ -28,9 +28,9 @@ 体验 (opens new window)

服务端主要是我们的server工程, 数据主要存放在server/public下, 具体数据指代含义我们接下来会详细介绍.

  • bed 存放图片库中的分类图片, 私有化部署的用户可以直接在此处扩充图片(更好的建议是直接存到第三方图床)
  • h5 用户保存的h5数据文件, 一个页面对应一个json文件
  • h5_tpl 平台保存的模版数据文件夹 + (opens new window)

服务端主要是我们的server工程, 数据主要存放在server/public下, 具体数据指代含义我们接下来会详细介绍.

  • bed 存放图片库中的分类图片, 私有化部署的用户可以直接在此处扩充图片(更好的建议是直接存到第三方图床)
  • h5 用户保存的h5数据文件, 一个页面对应一个json文件
  • h5_tpl 平台保存的模版数据文件夹
    • xxx.json 模版页面文件
    • tpls.json 模版库中的模版列表数据, 可以手动清空
  • h5_vip 会员数据目录 -
    • form 会员制作的含表单页面的表单收集数据
    • view.json 用户浏览量数据
    • vip.json 会员列表数据
    • vipCard.json 会员订单数据(暂时无用, 可删除)
  • image.json 图片库, 主要用来渲染页面的图片库数据
  • city.json 省市3级联动数据, 为表单组件提供数据支持
Last Updated: 5/13/2021, 9:56:54 PM
- + diff --git a/doc-dist/zh/guide/deployDev/https.html b/doc-dist/zh/guide/deployDev/https.html index d299d03b..e8616f4a 100644 --- a/doc-dist/zh/guide/deployDev/https.html +++ b/doc-dist/zh/guide/deployDev/https.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

目前H5-Dooring全面支持https部署, 具体方式方案如下.

# 前端工程

我们需要在前端工程中的src/pages/document.ejs中的head中添加如下代码:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
+   (opens new window)

目前H5-Dooring全面支持https部署, 具体方式方案如下.

# 前端工程

我们需要在前端工程中的src/pages/document.ejs中的head中添加如下代码:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
 

目的是强制将页面中HTTP请求转换为HTTPS.

# 服务器工程

# 1. 申请SSL证书

# 2. 生成 server.csr+server.key

# 3. 通过证书链生成.pem文件

#server中的src/index.js按如下方式修改

// 忽略部分无影响代码
 import https from 'https';
 
@@ -66,6 +66,6 @@
       
       →
     

- + diff --git a/doc-dist/zh/guide/deployDev/log.html b/doc-dist/zh/guide/deployDev/log.html new file mode 100644 index 00000000..a0b3049c --- /dev/null +++ b/doc-dist/zh/guide/deployDev/log.html @@ -0,0 +1,38 @@ + + + + + + h5-dooring + + + + + + + + +

# 更新日志

# 1.94

  1. 转盘组件支持转盘交互功能(跳转链接/打开弹窗/自定义代码)
  2. 添加网站拦截, 防止页面误关导致页面无法保存
  3. 优化页面控制条组件样式
  4. 按钮组件添加组件动画
  5. 图片组件添加组件动画
  6. 媒体组件icon优化
  7. 全局错误监控组件添加一键清除缓存功能

# 1.93

  1. 上线源码下载功能
  2. 服务端支持下载源码服务和下载次数限制
  3. 界面部分文案优化
  4. 出码基座优化
  5. 抽奖组件支持抽奖后自定义交互(弹窗/链接/自定义代码)

# 1.92

  1. 修复背景图预览适配问题
  2. 转盘组件支持中奖后自定义交互/弹窗/自定义代码
  3. 界面局部调整
  4. 后台管理表单数据支持多键查询
  5. 可视化大屏柱状图组件支持实时数据请求
+ + + diff --git a/doc-dist/zh/guide/deployDev/oss.html b/doc-dist/zh/guide/deployDev/oss.html index dc9a0c74..4b07db38 100644 --- a/doc-dist/zh/guide/deployDev/oss.html +++ b/doc-dist/zh/guide/deployDev/oss.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

H5-Dooring全面支持第三方对象存储服务, 我们以七牛云对象存储为例.

# 前端上传文件到oss

首先我们需要在第三方对象储存服务中配置对应的服务和域名. 其次安装对应的sdk, 如七牛云sdk:

import * as qiniu from 'qiniu-js';
+   (opens new window)

H5-Dooring全面支持第三方对象存储服务, 我们以七牛云对象存储为例.

# 前端上传文件到oss

首先我们需要在第三方对象储存服务中配置对应的服务和域名. 其次安装对应的sdk, 如七牛云sdk:

import * as qiniu from 'qiniu-js';
 

其次我们修改h5_plus工程的Upload组件, 详细地址为src/core/FormComponents/Upload.

修改内容如下:

const fileName = file.name
 const suffix = '自定义文件后缀'
 const putExtra = {
@@ -58,6 +58,6 @@
       
       →
     

- + diff --git a/doc-dist/zh/guide/directoryStructure.html b/doc-dist/zh/guide/directoryStructure.html index 679079b2..46e5215b 100644 --- a/doc-dist/zh/guide/directoryStructure.html +++ b/doc-dist/zh/guide/directoryStructure.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)
- + diff --git a/doc-dist/zh/guide/functionRealization/machinePreview.html b/doc-dist/zh/guide/functionRealization/machinePreview.html index 274192fe..f3f0a2b7 100644 --- a/doc-dist/zh/guide/functionRealization/machinePreview.html +++ b/doc-dist/zh/guide/functionRealization/machinePreview.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 真机预览

真机预览和网页预览的流程类似,工作流程如下:

foo

由于不同机型预览的效果有些许不同,最终效果以实际看到的为主。

Last Updated: 1/17/2021, 9:57:34 PM

# 真机预览

真机预览和网页预览的流程类似,工作流程如下:

foo

由于不同机型预览的效果有些许不同,最终效果以实际看到的为主。

Last Updated: 1/17/2021, 9:57:34 PM
- + diff --git a/doc-dist/zh/guide/functionRealization/pagePreview.html b/doc-dist/zh/guide/functionRealization/pagePreview.html index d605d8d1..bc79f69e 100644 --- a/doc-dist/zh/guide/functionRealization/pagePreview.html +++ b/doc-dist/zh/guide/functionRealization/pagePreview.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 网页预览

我们看看网页预览的工作流程:

foo

前端预览界面:

foo
Last Updated: 1/17/2021, 9:57:34 PM

# 网页预览

我们看看网页预览的工作流程:

foo

前端预览界面:

foo
Last Updated: 1/17/2021, 9:57:34 PM
- + diff --git a/doc-dist/zh/guide/functionRealization/revocation.html b/doc-dist/zh/guide/functionRealization/revocation.html index 2cae600b..7d115098 100644 --- a/doc-dist/zh/guide/functionRealization/revocation.html +++ b/doc-dist/zh/guide/functionRealization/revocation.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 撤销/重做

撤销重做我们主要使用了redux-undo这个库,配合Dva使用,具体使用方法参考如下操作:

import { createLogger } from 'redux-logger';
+   (opens new window)

# 撤销/重做

撤销重做我们主要使用了redux-undo这个库,配合Dva使用,具体使用方法参考如下操作:

import { createLogger } from 'redux-logger';
 import { message } from 'antd';
 import undoable, { StateWithHistory } from 'redux-undo';
 import { Reducer, AnyAction } from 'redux';
@@ -58,6 +58,6 @@
       
       →
     

- + diff --git a/doc-dist/zh/guide/functionRealization/saveJson.html b/doc-dist/zh/guide/functionRealization/saveJson.html index e7a4cb22..69b21011 100644 --- a/doc-dist/zh/guide/functionRealization/saveJson.html +++ b/doc-dist/zh/guide/functionRealization/saveJson.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 保存json

我们配置好H5页面之后,如果希望其他人观看,我们可以保存页面并发送链接。但是如果有多人协作的需求,比如一个H5页面可能由多个人完成,这个时候该怎么实现呢?基于已有的方案,我们可以采用socket实现多人协同编辑,但是成本比较大,所有这里我们提供了保存json的功能。

我们可以将配置好的页面导出为json,发送给另一个人,这样另一个人通过导入该json文件可以实时看到当前的页面,这里还是依靠我们的页面渲染引擎viewEngine。实现思路也很简单,可以在github[https://github.com/MrXujiang/h5-Dooring (opens new window)]上参考体验。

Last Updated: 1/17/2021, 9:57:34 PM

# 保存json

我们配置好H5页面之后,如果希望其他人观看,我们可以保存页面并发送链接。但是如果有多人协作的需求,比如一个H5页面可能由多个人完成,这个时候该怎么实现呢?基于已有的方案,我们可以采用socket实现多人协同编辑,但是成本比较大,所有这里我们提供了保存json的功能。

我们可以将配置好的页面导出为json,发送给另一个人,这样另一个人通过导入该json文件可以实时看到当前的页面,这里还是依靠我们的页面渲染引擎viewEngine。实现思路也很简单,可以在github[https://github.com/MrXujiang/h5-Dooring (opens new window)]上参考体验。

Last Updated: 1/17/2021, 9:57:34 PM
- + diff --git a/doc-dist/zh/guide/functionRealization/screenshot.html b/doc-dist/zh/guide/functionRealization/screenshot.html index 04a458ef..22c595ae 100644 --- a/doc-dist/zh/guide/functionRealization/screenshot.html +++ b/doc-dist/zh/guide/functionRealization/screenshot.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 截图功能

截图功能这里我们主要使用了dom-to-image这个库,来将html转化为图片,并进行分享。

foo
Last Updated: 1/17/2021, 9:57:34 PM

# 截图功能

截图功能这里我们主要使用了dom-to-image这个库,来将html转化为图片,并进行分享。

foo
Last Updated: 1/17/2021, 9:57:34 PM
- + diff --git a/doc-dist/zh/guide/functionRealization/templateLibrary.html b/doc-dist/zh/guide/functionRealization/templateLibrary.html index f60cd7c1..816caf44 100644 --- a/doc-dist/zh/guide/functionRealization/templateLibrary.html +++ b/doc-dist/zh/guide/functionRealization/templateLibrary.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 模板库实现思路

我们目前开放了模板库功能,一方面我们会定期配置行业模板,另一个方面Dooring还支持用户自己配置模板,可以一键保存到云端供用户使用。我们也可以将模板变成自己的页面共享给其他人。实现方式本质上是保存用户的配置信息,上传到服务器中做存储,在后台提供了管理模板的模块,可以修改,删除模板。如下图所示:

# 模板前台展示:

foo

# 模板后台展示:

foo
Last Updated: 1/17/2021, 9:57:34 PM

# 模板库实现思路

我们目前开放了模板库功能,一方面我们会定期配置行业模板,另一个方面Dooring还支持用户自己配置模板,可以一键保存到云端供用户使用。我们也可以将模板变成自己的页面共享给其他人。实现方式本质上是保存用户的配置信息,上传到服务器中做存储,在后台提供了管理模板的模块,可以修改,删除模板。如下图所示:

# 模板前台展示:

foo

# 模板后台展示:

foo
Last Updated: 1/17/2021, 9:57:34 PM
- + diff --git a/doc-dist/zh/guide/index.html b/doc-dist/zh/guide/index.html index c99fb4d9..e156a9af 100644 --- a/doc-dist/zh/guide/index.html +++ b/doc-dist/zh/guide/index.html @@ -8,7 +8,7 @@ - + @@ -28,11 +28,11 @@ 体验 (opens new window)
foo

H5-Dooring 是一款功能强大,高可扩展的 H5 可视化页面配置解决方案,致力于提供一套简单方便、专业可靠、无限可能的 H5 落地页最佳实践。

# 功能特点

🎉 可扩展, Dooring 实现了较为完整的业务闭环,并使其模块化,编辑器内部功能接口也全部可以对接不同服务端语言,实现了标准化接口。此外还支持自定义组件,二次开发,设计模板等能力,以满足功能和跨领域的分层需求。

📦 开箱即用, Dooring 内置了表单渲染器、页面渲染器、动态加载内核等,仅需一套源码即可上手开发。并且还提供针对 React 的定制插件,内涵丰富的功能,可满足日常 80%的页面制作需求。

🚀 大量自研, 包含整个编辑器架构、组件设计、文档、请求库封装,后台管理系统等,满足日常项目的周边需求。

🚄 与时俱进, 在满足需求的同时,我们也不会停止对新技术的探索。比如更多营销组件、业务功能,后台管理可视化,PC 页面编辑器,数据大屏定制等等。

# 为什么选择 Dooring

目前github已超过 3000+star,上线 2 个月累计 500+用户使用,解决完善了 100+问题,后续会持续迭代,更新,自研优秀,先进的 lowcode/nocode 解决方案。

Last Updated: 3/22/2021, 10:16:35 AM
foo

H5-Dooring 是一款功能强大,高可扩展的 H5 可视化页面配置解决方案,致力于提供一套简单方便、专业可靠、无限可能的 H5 落地页最佳实践。

# 功能特点

🎉 可扩展, Dooring 实现了较为完整的业务闭环,并使其模块化,编辑器内部功能接口也全部可以对接不同服务端语言,实现了标准化接口。此外还支持自定义组件,二次开发,设计模板等能力,以满足功能和跨领域的分层需求。

📦 开箱即用, Dooring 内置了表单渲染器、页面渲染器、动态加载内核等,仅需一套源码即可上手开发。并且还提供针对 React 的定制插件,内涵丰富的功能,可满足日常 80%的页面制作需求。

🚀 大量自研, 包含整个编辑器架构、组件设计、文档、请求库封装,后台管理系统等,满足日常项目的周边需求。

🚄 与时俱进, 在满足需求的同时,我们也不会停止对新技术的探索。比如更多营销组件、业务功能,后台管理可视化,PC 页面编辑器,数据大屏定制等等。

# 为什么选择 Dooring

目前github已超过 3000+star,上线 2 个月累计 500+用户使用,解决完善了 100+问题,后续会持续迭代,更新,自研优秀,先进的 lowcode/nocode 解决方案。

Last Updated: 3/22/2021, 10:16:35 AM
- + diff --git a/doc-dist/zh/guide/introduced.html b/doc-dist/zh/guide/introduced.html index c8003f58..89b9fe0c 100644 --- a/doc-dist/zh/guide/introduced.html +++ b/doc-dist/zh/guide/introduced.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)
foo

注:灰色部分还未实现,正在更新中...

Last Updated: 1/17/2021, 7:12:02 PM
foo

注:灰色部分还未实现,正在更新中...

Last Updated: 1/17/2021, 7:12:02 PM
- + diff --git a/doc-dist/zh/guide/startedQuickly.html b/doc-dist/zh/guide/startedQuickly.html index a065172b..61ac9694 100644 --- a/doc-dist/zh/guide/startedQuickly.html +++ b/doc-dist/zh/guide/startedQuickly.html @@ -8,7 +8,7 @@ - + @@ -28,7 +28,7 @@ 体验 (opens new window)

# 快速上手

# 从零搭建一个H5表单页面

# 环境准备

首先得有 node,并确保 node 版本是 10.13 或以上,(mac/win 下推荐使用 n 来管理 node 版本)

$ node-v
+   (opens new window)

# 快速上手

# 从零搭建一个H5表单页面

# 环境准备

首先得有 node,并确保 node 版本是 10.13 或以上,(mac/win 下推荐使用 n 来管理 node 版本)

$ node-v
 v10.13.0
 

注:推荐使用 yarn 管理 npm 依赖

# 源码工程

h5_plus(编辑器项目) admin(管理后台) Server(服务端项目)

本地拿到源码工程之后先安装对应依赖,在对应工程目录里执行 yarn 命令,等待依赖安装完成。

# 本地运行

1.首先本地启动 server,在 src 目录的 index.js 中修改跨域白名单,改为本地的 ip+端口,如http://192.167.0.3:8000

2.其次本地启动 h5_plus,启动完毕在浏览器打开对应的启动地址即可查看,如下:

foo
Last Updated: 5/8/2021, 12:34:13 AM
- + diff --git a/doc/.vuepress/config.js b/doc/.vuepress/config.js index 8d38ac77..0d1e9da3 100755 --- a/doc/.vuepress/config.js +++ b/doc/.vuepress/config.js @@ -154,6 +154,12 @@ module.exports = { collapsable: false, sidebarDepth: 1, }, + { + title: '更新日志', + path: '/zh/guide/deployDev/log', + collapsable: false, + sidebarDepth: 1, + }, ], }, ], diff --git a/doc/zh/guide/deployDev/log.md b/doc/zh/guide/deployDev/log.md new file mode 100644 index 00000000..1433d1a0 --- /dev/null +++ b/doc/zh/guide/deployDev/log.md @@ -0,0 +1,39 @@ + + +### 更新日志 + +#### 1.94 + +1. 转盘组件支持转盘交互功能(跳转链接/打开弹窗/自定义代码) +2. 添加网站拦截, 防止页面误关导致页面无法保存 +3. 优化页面控制条组件样式 +4. 按钮组件添加组件动画 +5. 图片组件添加组件动画 +6. 媒体组件icon优化 +7. 全局错误监控组件添加一键清除缓存功能 + +#### 1.93 + +1. 上线源码下载功能 +2. 服务端支持下载源码服务和下载次数限制 +3. 界面部分文案优化 +4. 出码基座优化 +5. 抽奖组件支持抽奖后自定义交互(弹窗/链接/自定义代码) + +#### 1.92 + +1. 修复背景图预览适配问题 +2. 转盘组件支持中奖后自定义交互/弹窗/自定义代码 +3. 界面局部调整 +4. 后台管理表单数据支持多键查询 +5. 可视化大屏柱状图组件支持实时数据请求 + + + + + diff --git a/src/components/Zan/index.tsx b/src/components/Zan/index.tsx index 9facc202..aeb682ea 100644 --- a/src/components/Zan/index.tsx +++ b/src/components/Zan/index.tsx @@ -1,6 +1,5 @@ -import React, { memo, ReactElement, ReactNode } from 'react'; +import React, { memo } from 'react'; import { Button, Popover } from 'antd'; -import { serverUrl } from '@/utils/tool'; import styles from './index.less'; interface IProps { @@ -10,7 +9,7 @@ interface IProps { ///这组件写的有问题 popover会重定位 const content = (
- sponsorship + sponsorship
);