refactor: add msfu and lerna

This commit is contained in:
mokinzhao 2021-09-30 15:54:23 +08:00
parent 0718f048b5
commit 0f272f6c72
419 changed files with 30891 additions and 24396 deletions

BIN
.DS_Store vendored

Binary file not shown.

View File

@ -1,20 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/17.e2c644fa.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/16.ebc27227.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/2.693230f5.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="router-link-active">
Take me home.
</a></div></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/17.e2c644fa.js" defer></script>
</body>
</html>

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 404 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 KiB

View File

@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13"><g stroke-width="2" stroke="#aaa" fill="none"><path d="M11.29 11.71l-4-4"/><circle cx="5" cy="5" r="4"/></g></svg>

Before

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 KiB

View File

@ -1,72 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[10],
{
359: function(t, r, a) {
t.exports = a.p + 'assets/img/dynamic.15a5303a.png';
},
387: function(t, r, a) {
'use strict';
a.r(r);
var n = a(42),
i = Object(n.a)(
{},
function() {
var t = this,
r = t.$createElement,
n = t._self._c || r;
return n('ContentSlotsDistributor', { attrs: { 'slot-key': t.$parent.slotKey } }, [
n('h1', { attrs: { id: '组件动态加载' } }, [
n('a', { staticClass: 'header-anchor', attrs: { href: '#组件动态加载' } }, [
t._v('#'),
]),
t._v(' 组件动态加载'),
]),
t._v(' '),
n('p', [
t._v(
'目前H5-Dooring的组件都是通过动态加载的方式引入好处是我们在页面中只会加载我们需要的组件不需要的组件不会被加载这样可以提高页面加载的速度这样做也会出现一些问题比如一个长页面配置了很多组件那么一个页面加载过程可以会触发多次请求目前还没有遇到性能问题但后续会逐渐优化这个问题。',
),
]),
t._v(' '),
n('h2', { attrs: { id: 'umi3提供的dynamic' } }, [
n('a', { staticClass: 'header-anchor', attrs: { href: '#umi3提供的dynamic' } }, [
t._v('#'),
]),
t._v(' umi3提供的dynamic'),
]),
t._v(' '),
n('p', [
t._v(
'目前组件的动态加载我们采用的umi的dynamic方案基于它我们上层封装了一个组件动态加载器原理如下',
),
]),
t._v(' '),
n('img', { attrs: { src: a(359), alt: 'foo' } }),
t._v(' '),
n('p', [
t._v('具体代码可以参考Dooring的Github地址'),
n(
'a',
{
attrs: {
href: 'https://github.com/MrXujiang/h5-Dooring',
target: '_blank',
rel: 'noopener noreferrer',
},
},
[t._v('https://github.com/MrXujiang/h5-Dooring'), n('OutboundLink')],
1,
),
]),
]);
},
[],
!1,
null,
null,
null,
);
r.default = i.exports;
},
},
]);

View File

@ -1,107 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[11],
{
360: function(e, t, v) {
e.exports = v.p + 'assets/img/deploy.d1b1d698.png';
},
389: function(e, t, v) {
'use strict';
v.r(t);
var _ = v(42),
r = Object(_.a)(
{},
function() {
var e = this,
t = e.$createElement,
_ = e._self._c || t;
return _('ContentSlotsDistributor', { attrs: { 'slot-key': e.$parent.slotKey } }, [
_('p', [e._v('私有化部署需要获取4个核心项目包, 包括')]),
e._v(' '),
_('ul', [
_('li', [e._v('H5编辑器(h5_plus)')]),
e._v(' '),
_('li', [e._v('H5基座(h5)')]),
e._v(' '),
_('li', [e._v('Dooring管理后台(Dooring-Admin)')]),
e._v(' '),
_('li', [e._v('服务端项目(Server)')]),
]),
e._v(' '),
_('p', [
e._v('获取以上四个核心源码工程需要满足商业授权协议, 具体可联系'),
_(
'a',
{
attrs: {
href: 'http://h5.dooring.cn/uploads/WechatIMG3_1758e9753e2.jpeg',
target: '_blank',
rel: 'noopener noreferrer',
},
},
[e._v('徐小夕'), _('OutboundLink')],
1,
),
]),
e._v(' '),
_('h3', { attrs: { id: '部署架构图' } }, [
_('a', { staticClass: 'header-anchor', attrs: { href: '#部署架构图' } }, [
e._v('#'),
]),
e._v(' 部署架构图'),
]),
e._v(' '),
_('img', { attrs: { src: v(360), alt: 'H5-dooring部署' } }),
e._v(' '),
_('p', [e._v('部署流程如下:')]),
e._v(' '),
_('ol', [
_('li', [e._v('下载4个源码工程, 安装依赖(npm install 或 yarn)')]),
e._v(' '),
_('li', [
e._v('打包3个前端工程至'),
_('code', [e._v('server')]),
e._v('的static目录下'),
]),
e._v(' '),
_('li', [
e._v('在'),
_('code', [e._v('server')]),
e._v('下本地运行 '),
_('code', [e._v('yarn start')]),
e._v(' 或 '),
_('code', [e._v('npm start')]),
e._v(' 启动服务端进行本地测试'),
]),
e._v(' '),
_('li', [
e._v('打包服务端代码, '),
_('code', [e._v('yarn build')]),
e._v(' 生成 '),
_('code', [e._v('dist')]),
e._v(' 目录, 建议使用 '),
_('code', [e._v('pm2')]),
e._v(' 做'),
_('code', [e._v('nodejs')]),
e._v('服务的负载均衡, 运行 '),
_('code', [e._v('pm2 start dist/index.js')]),
e._v('启动生产环境代码'),
]),
]),
e._v(' '),
_('p', [
e._v('也可以将以上步骤集成到gitlab等CI, CD服务中, 进行自动化打包发布, 或者采用'),
_('code', [e._v('docker')]),
e._v('进行容器化部署.'),
]),
]);
},
[],
!1,
null,
null,
null,
);
t.default = r.exports;
},
},
]);

View File

@ -1,39 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[12],
{
361: function(t, e, s) {
t.exports = s.p + 'assets/img/preview-machine.895a0711.png';
},
392: function(t, e, s) {
'use strict';
s.r(e);
var a = s(42),
n = Object(a.a)(
{},
function() {
var t = this,
e = t.$createElement,
a = t._self._c || e;
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', [t._v('真机预览和网页预览的流程类似,工作流程如下:')]),
t._v(' '),
a('img', { attrs: { src: s(361), alt: 'foo' } }),
t._v(' '),
a('p', [t._v('由于不同机型预览的效果有些许不同,最终效果以实际看到的为主。')]),
]);
},
[],
!1,
null,
null,
null,
);
e.default = n.exports;
},
},
]);

View File

@ -1,42 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[13],
{
364: function(t, s, e) {
t.exports = e.p + 'assets/img/screenshot.daeecedd.png';
},
395: function(t, s, e) {
'use strict';
e.r(s);
var a = e(42),
i = Object(a.a)(
{},
function() {
var t = this.$createElement,
s = this._self._c || t;
return s('ContentSlotsDistributor', { attrs: { 'slot-key': this.$parent.slotKey } }, [
s('h1', { attrs: { id: '截图功能' } }, [
s('a', { staticClass: 'header-anchor', attrs: { href: '#截图功能' } }, [
this._v('#'),
]),
this._v(' 截图功能'),
]),
this._v(' '),
s('p', [
this._v(
'截图功能这里我们主要使用了dom-to-image这个库来将html转化为图片并进行分享。',
),
]),
this._v(' '),
s('img', { attrs: { src: e(364), alt: 'foo' } }),
]);
},
[],
!1,
null,
null,
null,
);
s.default = i.exports;
},
},
]);

View File

@ -1,31 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[14],
{
367: function(t, s, e) {
t.exports = e.p + 'assets/img/framework.1c9c696b.png';
},
399: function(t, s, e) {
'use strict';
e.r(s);
var n = e(42),
o = Object(n.a)(
{},
function() {
var t = this.$createElement,
s = this._self._c || t;
return s('ContentSlotsDistributor', { attrs: { 'slot-key': this.$parent.slotKey } }, [
s('img', { attrs: { src: e(367), alt: 'foo' } }),
this._v(' '),
s('p', [this._v('注:灰色部分还未实现,正在更新中...')]),
]);
},
[],
!1,
null,
null,
null,
);
s.default = o.exports;
},
},
]);

View File

@ -1,93 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[15],
{
368: function(t, a, s) {
t.exports = s.p + 'assets/img/home.f76105db.png';
},
400: function(t, a, s) {
'use strict';
s.r(a);
var e = s(42),
r = Object(e.a)(
{},
function() {
var t = this,
a = t.$createElement,
e = t._self._c || a;
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('h2', { attrs: { id: '环境准备' } }, [
e('a', { staticClass: 'header-anchor', attrs: { href: '#环境准备' } }, [t._v('#')]),
t._v(' 环境准备'),
]),
t._v(' '),
e('p', [
t._v('首先得有 node并确保 node 版本是 '),
e('code', [t._v('10.13')]),
t._v(' 或以上mac/win 下推荐使用 n 来管理 node 版本)'),
]),
t._v(' '),
e('div', { staticClass: 'language- extra-class' }, [
e('pre', { pre: !0, attrs: { class: 'language-text' } }, [
e('code', [t._v('$ node-v\nv10.13.0\n')]),
]),
]),
e('p', [t._v('注:推荐使用 yarn 管理 npm 依赖')]),
t._v(' '),
e('h2', { attrs: { id: '源码工程' } }, [
e('a', { staticClass: 'header-anchor', attrs: { href: '#源码工程' } }, [t._v('#')]),
t._v(' 源码工程'),
]),
t._v(' '),
e('table', [
e('thead', [
e('tr', [
e('th', [t._v('h5_plus(编辑器项目)')]),
t._v(' '),
e('th', [t._v('admin(管理后台)')]),
t._v(' '),
e('th', [t._v('Server(服务端项目)')]),
]),
]),
t._v(' '),
e('tbody'),
]),
t._v(' '),
e('p', [
t._v(
'本地拿到源码工程之后先安装对应依赖,在对应工程目录里执行 yarn 命令,等待依赖安装完成。',
),
]),
t._v(' '),
e('h2', { attrs: { id: '本地运行' } }, [
e('a', { staticClass: 'header-anchor', attrs: { href: '#本地运行' } }, [t._v('#')]),
t._v(' 本地运行'),
]),
t._v(' '),
e('p', [
t._v(
'1.首先本地启动 server在 src 目录的 index.js 中修改跨域白名单,改为本地的 ip+端口如http://192.167.0.3:8000',
),
]),
t._v(' '),
e('p', [
t._v('2.其次本地启动 h5_plus,启动完毕在浏览器打开对应的启动地址即可查看,如下:'),
]),
t._v(' '),
e('img', { attrs: { src: s(368), alt: 'foo' } }),
]);
},
[],
!1,
null,
null,
null,
);
a.default = r.exports;
},
},
]);

View File

@ -1,161 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[16],
{
378: function(t, e, a) {
'use strict';
a.r(e);
var o = a(374),
n = a(375),
i = a(376),
s = a(308),
r = {
name: 'Layout',
components: { Page: n.a, Sidebar: i.a, Navbar: o.a },
data: function() {
return { isSidebarOpen: !1 };
},
computed: {
shouldShowNavbar: function() {
var t = this.$site.themeConfig;
return (
!1 !== this.$page.frontmatter.navbar &&
!1 !== t.navbar &&
(this.$title || t.logo || t.repo || t.nav || this.$themeLocaleConfig.nav)
);
},
shouldShowSidebar: function() {
var t = this.$page.frontmatter;
return !t.home && !1 !== t.sidebar && this.sidebarItems.length;
},
sidebarItems: function() {
return Object(s.l)(this.$page, this.$page.regularPath, this.$site, this.$localePath);
},
pageClasses: function() {
var t = this.$page.frontmatter.pageClass;
return [
{
'no-navbar': !this.shouldShowNavbar,
'sidebar-open': this.isSidebarOpen,
'no-sidebar': !this.shouldShowSidebar,
},
t,
];
},
},
mounted: function() {
var t = this;
this.$router.afterEach(function() {
t.isSidebarOpen = !1;
});
},
methods: {
toggleSidebar: function(t) {
(this.isSidebarOpen = 'boolean' == typeof t ? t : !this.isSidebarOpen),
this.$emit('toggle-sidebar', this.isSidebarOpen);
},
onTouchStart: function(t) {
this.touchStart = { x: t.changedTouches[0].clientX, y: t.changedTouches[0].clientY };
},
onTouchEnd: function(t) {
var e = t.changedTouches[0].clientX - this.touchStart.x,
a = t.changedTouches[0].clientY - this.touchStart.y;
Math.abs(e) > Math.abs(a) &&
Math.abs(e) > 40 &&
(e > 0 && this.touchStart.x <= 80
? this.toggleSidebar(!0)
: this.toggleSidebar(!1));
},
},
},
h = a(42),
u = Object(h.a)(
r,
function() {
var t = this,
e = t.$createElement,
a = t._self._c || e;
return a(
'div',
{
staticClass: 'theme-container',
class: t.pageClasses,
on: { touchstart: t.onTouchStart, touchend: t.onTouchEnd },
},
[
t.shouldShowNavbar
? a('Navbar', { on: { 'toggle-sidebar': t.toggleSidebar } })
: t._e(),
t._v(' '),
a('div', {
staticClass: 'sidebar-mask',
on: {
click: function(e) {
return t.toggleSidebar(!1);
},
},
}),
t._v(' '),
a('Sidebar', {
attrs: { items: t.sidebarItems },
on: { 'toggle-sidebar': t.toggleSidebar },
scopedSlots: t._u(
[
{
key: 'top',
fn: function() {
return [t._t('sidebar-top')];
},
proxy: !0,
},
{
key: 'bottom',
fn: function() {
return [t._t('sidebar-bottom')];
},
proxy: !0,
},
],
null,
!0,
),
}),
t._v(' '),
t.$page.frontmatter.home
? a('Home')
: a('Page', {
attrs: { 'sidebar-items': t.sidebarItems },
scopedSlots: t._u(
[
{
key: 'top',
fn: function() {
return [t._t('page-top')];
},
proxy: !0,
},
{
key: 'bottom',
fn: function() {
return [t._t('page-bottom')];
},
proxy: !0,
},
],
null,
!0,
),
}),
],
1,
);
},
[],
!1,
null,
null,
null,
);
e.default = u.exports;
},
},
]);

View File

@ -1,50 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[17],
{
377: function(t, e, s) {
'use strict';
s.r(e);
var n = [
"There's nothing here.",
'How did we get here?',
"That's a Four-Oh-Four.",
"Looks like we've got some broken links.",
],
o = {
methods: {
getMsg: function() {
return n[Math.floor(Math.random() * n.length)];
},
},
},
i = s(42),
h = Object(i.a)(
o,
function() {
var t = this.$createElement,
e = this._self._c || t;
return e('div', { staticClass: 'theme-container' }, [
e(
'div',
{ staticClass: 'theme-default-content' },
[
e('h1', [this._v('404')]),
this._v(' '),
e('blockquote', [this._v(this._s(this.getMsg()))]),
this._v(' '),
e('RouterLink', { attrs: { to: '/' } }, [this._v('\n Take me home.\n ')]),
],
1,
),
]);
},
[],
!1,
null,
null,
null,
);
e.default = h.exports;
},
},
]);

View File

@ -1,25 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[18],
{
384: function(t, e, n) {
'use strict';
n.r(e);
var s = n(42),
l = Object(s.a)(
{},
function() {
var t = this.$createElement;
return (this._self._c || t)('ContentSlotsDistributor', {
attrs: { 'slot-key': this.$parent.slotKey },
});
},
[],
!1,
null,
null,
null,
);
e.default = l.exports;
},
},
]);

View File

@ -1,26 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[19],
{
383: function(t, e, n) {
'use strict';
n.r(e);
var s = n(42),
l = Object(s.a)(
{},
function() {
var t = this.$createElement,
e = this._self._c || t;
return e('ContentSlotsDistributor', { attrs: { 'slot-key': this.$parent.slotKey } }, [
e('p', [this._v('正在建设中...')]),
]);
},
[],
!1,
null,
null,
null,
);
e.default = l.exports;
},
},
]);

File diff suppressed because it is too large Load Diff

View File

@ -1,311 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[20],
{
385: function(t, s, a) {
'use strict';
a.r(s);
var n = a(42),
r = Object(n.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: 'dsl设计' } }, [
a('a', { staticClass: 'header-anchor', attrs: { href: '#dsl设计' } }, [t._v('#')]),
t._v(' DSL设计'),
]),
t._v(' '),
a('p', [
t._v(
'DSL层主要约定了Dooring组件的数据协议包括组件的可编辑属性、编辑类型、初始值等之所以定义一致的协议层主要是方便后期的组件扩展配置后移有助于不同后端语言开发和数据存储接下来我们看看header组件的schema。',
),
]),
t._v(' '),
a('p', [t._v('1.editData 可编辑的属性类型DSL')]),
t._v(' '),
a('p', [t._v('2.config 可编辑组件的默认属性')]),
t._v(' '),
a('div', { staticClass: 'language-js extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-js' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' Header'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' IHeaderSchema '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n editData'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('[')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n key'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'bgColor'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'背景色'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n type'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'Color'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n key'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'height'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'高度'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n type'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'Number'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n key'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'logo'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'logo'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n type'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'Upload'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n isCrop'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token boolean' } }, [t._v('true')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n cropRate'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('1000')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('/')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('618')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n key'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'logoText'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'logo文字'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n type'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'Text'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n key'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'color'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'文字颜色'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n type'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'Color'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n key'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'fontSize'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'文字大小'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n type'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'Number'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(']')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n config'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n bgColor'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'rgba(245,245,245,1)'"),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n logo'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('[')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n uid'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'001'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'image.png'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n status'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'done'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n url'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token template-string' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token template-punctuation string' } },
[t._v('`')],
),
a('span', { pre: !0, attrs: { class: 'token interpolation' } }, [
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('${')],
),
t._v('serverUrl'),
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('}')],
),
]),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v('/uploads/3_1740be8a482.png'),
]),
a(
'span',
{ pre: !0, attrs: { class: 'token template-punctuation string' } },
[t._v('`')],
),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(']')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n logoText'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'页头Header'"),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n fontSize'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('20')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n color'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'rgba(47,84,235,1)'"),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n height'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('50')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
]),
]),
]),
a('p', [
t._v(
'由以上代码可知我们可以在editData属性中给组件添加可编辑的属性比如背景图然后再component中接受属性从而设置样式。',
),
]),
t._v(' '),
a('p', [
t._v(
'在config属性中我们可以设置组件默认属性值和editData中每一项的key一一对应。',
),
]),
]);
},
[],
!1,
null,
null,
null,
);
s.default = r.exports;
},
},
]);

View File

@ -1,380 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[21],
{
386: function(t, s, a) {
'use strict';
a.r(s);
var n = a(42),
p = Object(n.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', [t._v('dooring的组件设计包含以下3个部分组件')]),
t._v(' '),
a('p', [t._v('1、component 组件主体')]),
t._v(' '),
a('p', [t._v('2、schema 组件的DSL结构协议层')]),
t._v(' '),
a('p', [t._v('3、template 定义了组件的类型、外观、从属关系后期考虑纳入schema')]),
t._v(' '),
a('p', [
t._v(
'接下来我会介绍一个基本的组件主体设计以为template设计在下一章会具体介绍schema部分。',
),
]),
t._v(' '),
a('h2', { attrs: { id: '组件设计' } }, [
a('a', { staticClass: 'header-anchor', attrs: { href: '#组件设计' } }, [t._v('#')]),
t._v(' 组件设计'),
]),
t._v(' '),
a('p', [t._v('我们这里拿基本的header组件来举例如下是header组件的代码')]),
t._v(' '),
a('div', { staticClass: 'language-jsx extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-jsx' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('interface')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token class-name' } }, [
t._v('HeaderPropTypes'),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('extends')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token class-name' } }, [
t._v('IHeaderConfig'),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n isTpl'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' boolean'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v('\n\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' Header '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('memo')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token parameter' } }, [
t._v('props'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' HeaderPropTypes'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=>')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' bgColor'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' logo'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' logoText'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' fontSize'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' color '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' props'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('return')]),
t._v(' props'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('isTpl '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('?')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('<')]),
t._v('div'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v('\n < img style='),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('width'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'100%'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [t._v(' src=')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('logos'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v(' alt="" />\n '),
]),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('</')]),
t._v('div'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('<')]),
t._v('header'),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token attr-name' } }, [
t._v('className'),
]),
a('span', { pre: !0, attrs: { class: 'token script language-javascript' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token script-punctuation punctuation' } },
[t._v('=')],
),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('styles'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('header'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token attr-name' } }, [t._v('style')]),
a('span', { pre: !0, attrs: { class: 'token script language-javascript' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token script-punctuation punctuation' } },
[t._v('=')],
),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' backgroundColor'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' bgColor '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v('\n '),
]),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('<')]),
t._v('div'),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token attr-name' } }, [
t._v('className'),
]),
a('span', { pre: !0, attrs: { class: 'token script language-javascript' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token script-punctuation punctuation' } },
[t._v('=')],
),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('styles'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('logo'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v('\n < img src='),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('logo '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('&&')]),
t._v(' logo'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('[')]),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('0')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(']')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('url'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [t._v(' alt=')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('logoText'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v(' />\n '),
]),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('</')]),
t._v('div'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v('\n '),
]),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('<')]),
t._v('div'),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token attr-name' } }, [
t._v('className'),
]),
a('span', { pre: !0, attrs: { class: 'token script language-javascript' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token script-punctuation punctuation' } },
[t._v('=')],
),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('styles'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('title'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token attr-name' } }, [t._v('style')]),
a('span', { pre: !0, attrs: { class: 'token script language-javascript' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token script-punctuation punctuation' } },
[t._v('=')],
),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' fontSize'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' color '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v('\n '),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('logoText'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [
t._v('\n '),
]),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('</')]),
t._v('div'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
a('span', { pre: !0, attrs: { class: 'token plain-text' } }, [t._v('\n ')]),
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('</')]),
t._v('header'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
]),
]),
]),
a('p', [
t._v(
'我们只需要按照上面的方式编写组件即可props是DSL定义的数据层用来控制组件的shape也就是组件的表现。我们看看header对应的template。',
),
]),
t._v(' '),
a('h2', { attrs: { id: 'template设计' } }, [
a('a', { staticClass: 'header-anchor', attrs: { href: '#template设计' } }, [
t._v('#'),
]),
t._v(' template设计'),
]),
t._v(' '),
a('div', { staticClass: 'language-js extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-js' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' template '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n type'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'Header'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n h'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('28')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n displayName'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'页头组件'")]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('export')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('default')]),
t._v(' template'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
]),
]),
]),
a('p', [
t._v(
'以上就是我们template的结构type用来定义组件的类型方便渲染器动态查找h代表组件的初始化高度我们可以自由设置。displayName是组件的中文名用来在左侧组件面板中展示方便用户理解我们可以在template中自定义更多辅助信息方便使用者更高效的使用我们的编辑器。',
),
]),
]);
},
[],
!1,
null,
null,
null,
);
s.default = p.exports;
},
},
]);

File diff suppressed because it is too large Load Diff

View File

@ -1,354 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[23],
{
390: function(t, s, a) {
'use strict';
a.r(s);
var n = a(42),
e = Object(n.a)(
{},
function() {
var t = this,
s = t.$createElement,
a = t._self._c || s;
return a('ContentSlotsDistributor', { attrs: { 'slot-key': t.$parent.slotKey } }, [
a('p', [
t._v('目前'),
a('strong', [t._v('H5-Dooring')]),
t._v('全面支持https部署, 具体方式方案如下.'),
]),
t._v(' '),
a('h3', { attrs: { id: '前端工程' } }, [
a('a', { staticClass: 'header-anchor', attrs: { href: '#前端工程' } }, [t._v('#')]),
t._v(' 前端工程'),
]),
t._v(' '),
a('p', [
t._v('我们需要在前端工程中的'),
a('code', [t._v('src/pages/document.ejs')]),
t._v('中的'),
a('code', [t._v('head')]),
t._v('中添加如下代码:'),
]),
t._v(' '),
a('div', { staticClass: 'language-html extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-html' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token tag' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('<')]),
t._v('meta'),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token attr-name' } }, [
t._v('http-equiv'),
]),
a('span', { pre: !0, attrs: { class: 'token attr-value' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation attr-equals' } }, [
t._v('='),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('"')]),
t._v('Content-Security-Policy'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('"')]),
]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token attr-name' } }, [
t._v('content'),
]),
a('span', { pre: !0, attrs: { class: 'token attr-value' } }, [
a('span', { pre: !0, attrs: { class: 'token punctuation attr-equals' } }, [
t._v('='),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('"')]),
t._v('upgrade-insecure-requests'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('"')]),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('>')]),
]),
t._v('\n'),
]),
]),
]),
a('p', [t._v('目的是强制将页面中HTTP请求转换为HTTPS.')]),
t._v(' '),
a('h3', { attrs: { id: '服务器工程' } }, [
a('a', { staticClass: 'header-anchor', attrs: { href: '#服务器工程' } }, [
t._v('#'),
]),
t._v(' 服务器工程'),
]),
t._v(' '),
a('h4', { attrs: { id: '_1-申请ssl证书' } }, [
a('a', { staticClass: 'header-anchor', attrs: { href: '#_1-申请ssl证书' } }, [
t._v('#'),
]),
t._v(' 1. 申请SSL证书'),
]),
t._v(' '),
a('h4', { attrs: { id: '_2-生成-server-csr-server-key' } }, [
a(
'a',
{
staticClass: 'header-anchor',
attrs: { href: '#_2-生成-server-csr-server-key' },
},
[t._v('#')],
),
t._v(' 2. 生成 server.csr+server.key'),
]),
t._v(' '),
a('h4', { attrs: { id: '_3-通过证书链生成-pem文件' } }, [
a(
'a',
{ staticClass: 'header-anchor', attrs: { href: '#_3-通过证书链生成-pem文件' } },
[t._v('#')],
),
t._v(' 3. 通过证书链生成.pem文件'),
]),
t._v(' '),
a('h4', { attrs: { id: '在server中的src-index-js按如下方式修改' } }, [
a(
'a',
{
staticClass: 'header-anchor',
attrs: { href: '#在server中的src-index-js按如下方式修改' },
},
[t._v('#')],
),
t._v(' 在'),
a('code', [t._v('server')]),
t._v('中的'),
a('code', [t._v('src/index.js')]),
t._v('按如下方式修改'),
]),
t._v(' '),
a('div', { staticClass: 'language-js extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-js' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// 忽略部分无影响代码'),
]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('import')]),
t._v(' https '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('from')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'https'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n\n'),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// 你的ssl存放路径, 建议直接放在server目录下'),
]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' filePath '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' path'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('join')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('__dirname'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'../ssl'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v('\n\n'),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// 启动逻辑'),
]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('async')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('function')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('start')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// https配置'),
]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' httpsOptions '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n key'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' fs'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [
t._v('readFileSync'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('path'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('join')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('filePath'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'3536084__doctopia.com.cn.key'"),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('//ssl文件路径'),
]),
t._v('\n cert'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' fs'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [
t._v('readFileSync'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('path'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('join')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('filePath'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'3536084__doctopia.com.cn.pem'"),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('//ssl文件路径'),
]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n\t\n\t'),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// https服务'),
]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' server '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' https'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [
t._v('createServer'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('httpsOptions'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' app'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('callback')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' io '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('require')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'socket.io'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('server'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n\t\n\t'),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// 忽略其他无影响代码'),
]),
t._v('\n\t\n\t'),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// https默认443, 这里我们可以走公共配置'),
]),
t._v('\n\tserver'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('listen')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('443')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=>')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n\t console'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('log')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token template-string' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token template-punctuation string' } },
[t._v('`')],
),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v('服务器地址:'),
]),
a('span', { pre: !0, attrs: { class: 'token interpolation' } }, [
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('${')],
),
t._v('config'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('staticPath'),
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('}')],
),
]),
a(
'span',
{ pre: !0, attrs: { class: 'token template-punctuation string' } },
[t._v('`')],
),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v('\n\t'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v('\n\n'),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('start')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v('\n'),
]),
]),
]),
]);
},
[],
!1,
null,
null,
null,
);
s.default = e.exports;
},
},
]);

View File

@ -1,330 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[24],
{
391: function(t, s, a) {
'use strict';
a.r(s);
var n = a(42),
e = Object(n.a)(
{},
function() {
var t = this,
s = t.$createElement,
a = t._self._c || s;
return a('ContentSlotsDistributor', { attrs: { 'slot-key': t.$parent.slotKey } }, [
a('p', [
a('strong', [t._v('H5-Dooring')]),
t._v('全面支持第三方对象存储服务, 我们以七牛云对象存储为例.'),
]),
t._v(' '),
a('h3', { attrs: { id: '前端上传文件到oss' } }, [
a('a', { staticClass: 'header-anchor', attrs: { href: '#前端上传文件到oss' } }, [
t._v('#'),
]),
t._v(' 前端上传文件到oss'),
]),
t._v(' '),
a('p', [
t._v(
'首先我们需要在第三方对象储存服务中配置对应的服务和域名. 其次安装对应的sdk, 如七牛云sdk:',
),
]),
t._v(' '),
a('div', { staticClass: 'language-js extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-js' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('import')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('*')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('as')]),
t._v(' qiniu '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('from')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'qiniu-js'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
]),
]),
]),
a('p', [
t._v('其次我们修改'),
a('code', [t._v('h5_plus')]),
t._v('工程的'),
a('code', [t._v('Upload')]),
t._v('组件, 详细地址为'),
a('code', [t._v('src/core/FormComponents/Upload')]),
t._v('.'),
]),
t._v(' '),
a('p', [t._v('修改内容如下:')]),
t._v(' '),
a('div', { staticClass: 'language-js extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-js' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' fileName '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' file'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('name\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' suffix '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'自定义文件后缀'"),
]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' putExtra '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n fname'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' fileName'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n params'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' uid '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('+')]),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('new')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token class-name' } }, [t._v('Date')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('+')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('uuid')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('16')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('8')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('+')]),
t._v(' suffix\n'),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v(
'// 使用七牛云上传api, 前提是提前在前端拿到对应的ticket, 可以通过请求的方式获取',
),
]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' observe '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' qiniu'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('upload')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('file'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' uid'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('this')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('state'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('qnToken'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('ticket'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' putExtra'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v('\nobserve'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('subscribe')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=>')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('null')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token parameter' } }, [t._v('res')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=>')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [
t._v('// 拼接路径'),
]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' url '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token template-string' } }, [
a(
'span',
{ pre: !0, attrs: { class: 'token template-punctuation string' } },
[t._v('`')],
),
a('span', { pre: !0, attrs: { class: 'token interpolation' } }, [
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('${')],
),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('this')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('state'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('qnToken'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('domain'),
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('}')],
),
]),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v('/')]),
a('span', { pre: !0, attrs: { class: 'token interpolation' } }, [
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('${')],
),
t._v('res'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('key'),
a(
'span',
{
pre: !0,
attrs: { class: 'token interpolation-punctuation punctuation' },
},
[t._v('}')],
),
]),
a(
'span',
{ pre: !0, attrs: { class: 'token template-punctuation string' } },
[t._v('`')],
),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token comment' } }, [t._v('// 存库')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' fileList '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('[')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' uid'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' name'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' fileName'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' status'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'done'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' url '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(']')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('this')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('setState')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n curImgUrl'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' url'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n fileList\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('this')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('props'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('onChange '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('&&')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('this')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('props'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('onChange')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('fileList'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v('\n'),
]),
]),
]),
a('p', [
t._v('其他oss服务类似, 如果不清楚如何配置, 可以在'),
a(
'a',
{
attrs: {
href: 'http://h5.dooring.cn/',
target: '_blank',
rel: 'noopener noreferrer',
},
},
[t._v('H5-Dooring官网'), a('OutboundLink')],
1,
),
t._v('中找到我们.'),
]),
]);
},
[],
!1,
null,
null,
null,
);
s.default = e.exports;
},
},
]);

File diff suppressed because one or more lines are too long

View File

@ -1,262 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[26],
{
394: function(t, s, a) {
'use strict';
a.r(s);
var n = a(42),
r = Object(n.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', [
t._v(
'撤销重做我们主要使用了redux-undo这个库配合Dva使用具体使用方法参考如下操作',
),
]),
t._v(' '),
a('div', { staticClass: 'language-js extra-class' }, [
a('pre', { pre: !0, attrs: { class: 'language-js' } }, [
a('code', [
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('import')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' createLogger '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('from')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'redux-logger'"),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('import')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' message '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('from')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'antd'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('import')]),
t._v(' undoable'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' StateWithHistory '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('from')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [
t._v("'redux-undo'"),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('import')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' Reducer'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' AnyAction '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('from')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token string' } }, [t._v("'redux'")]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n\n'),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('export')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('const')]),
t._v(' dva '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n config'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n onAction'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [
t._v('createLogger'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('onError')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token parameter' } }, [
t._v('e'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' Error'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n message'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('error')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('e'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('message'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token number' } }, [t._v('3')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token function-variable function' } }, [
t._v('onReducer'),
]),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token parameter' } }, [
t._v('reducer'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' Reducer'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('<')]),
t._v('any'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' AnyAction'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('>')]),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=>')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('let')]),
t._v(' undoReducer '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [t._v('undoable')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('reducer'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('return')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('function')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
a('span', { pre: !0, attrs: { class: 'token parameter' } }, [
t._v('state'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' StateWithHistory'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('<')]),
t._v('any'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('>')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' action'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' AnyAction'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('let')]),
t._v(' newState '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token function' } }, [
t._v('undoReducer'),
]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('(')]),
t._v('state'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' action'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(')')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('let')]),
t._v(' router '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('=')]),
t._v(' newState'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('present'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('router '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('?')]),
t._v(' newState'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('present'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('router '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' newState'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('present'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('.')]),
t._v('routing'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token keyword' } }, [t._v('return')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('{')]),
t._v(' '),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v('...')]),
t._v('newState'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v(' router'),
a('span', { pre: !0, attrs: { class: 'token operator' } }, [t._v(':')]),
t._v(' router '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n '),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(',')]),
t._v('\n'),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v('}')]),
a('span', { pre: !0, attrs: { class: 'token punctuation' } }, [t._v(';')]),
t._v('\n'),
]),
]),
]),
a('p', [
t._v(
'以上我们就实现了全局配置redux-undo在撤销重做按钮中我们就可以触发对应的方法来实现撤销重做的功能其次我们还使用了redux-logger来实现redux的日志输出。',
),
]),
]);
},
[],
!1,
null,
null,
null,
);
s.default = r.exports;
},
},
]);

View File

@ -1,55 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[27],
{
396: function(t, n, e) {
'use strict';
e.r(n);
var o = e(42),
r = Object(o.a)(
{},
function() {
var t = this,
n = t.$createElement,
e = t._self._c || n;
return e('ContentSlotsDistributor', { attrs: { 'slot-key': t.$parent.slotKey } }, [
e('h1', { attrs: { id: '保存json' } }, [
e('a', { staticClass: 'header-anchor', attrs: { href: '#保存json' } }, [t._v('#')]),
t._v(' 保存json'),
]),
t._v(' '),
e('p', [
t._v(
'我们配置好H5页面之后如果希望其他人观看我们可以保存页面并发送链接。但是如果有多人协作的需求比如一个H5页面可能由多个人完成这个时候该怎么实现呢基于已有的方案我们可以采用socket实现多人协同编辑但是成本比较大所有这里我们提供了保存json的功能。',
),
]),
t._v(' '),
e('p', [
t._v(
'我们可以将配置好的页面导出为json发送给另一个人这样另一个人通过导入该json文件可以实时看到当前的页面这里还是依靠我们的页面渲染引擎viewEngine。实现思路也很简单可以在github[',
),
e(
'a',
{
attrs: {
href: 'https://github.com/MrXujiang/h5-Dooring',
target: '_blank',
rel: 'noopener noreferrer',
},
},
[t._v('https://github.com/MrXujiang/h5-Dooring'), e('OutboundLink')],
1,
),
t._v(']上参考体验。'),
]),
]);
},
[],
!1,
null,
null,
null,
);
n.default = r.exports;
},
},
]);

View File

@ -1,557 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[3],
{
308: function(t, n, e) {
'use strict';
e.d(n, 'd', function() {
return r;
}),
e.d(n, 'a', function() {
return a;
}),
e.d(n, 'i', function() {
return u;
}),
e.d(n, 'f', function() {
return l;
}),
e.d(n, 'g', function() {
return o;
}),
e.d(n, 'h', function() {
return c;
}),
e.d(n, 'b', function() {
return f;
}),
e.d(n, 'e', function() {
return h;
}),
e.d(n, 'k', function() {
return d;
}),
e.d(n, 'l', function() {
return p;
}),
e.d(n, 'c', function() {
return g;
}),
e.d(n, 'j', function() {
return m;
});
e(23), e(93), e(170), e(96), e(172), e(65), e(43), e(309), e(66), e(310), e(95);
var r = /#.*$/,
i = /\.(md|html)$/,
a = /\/$/,
u = /^[a-z]+:/i;
function s(t) {
return decodeURI(t)
.replace(r, '')
.replace(i, '');
}
function l(t) {
return u.test(t);
}
function o(t) {
return /^mailto:/.test(t);
}
function c(t) {
return /^tel:/.test(t);
}
function f(t) {
if (l(t)) return t;
var n = t.match(r),
e = n ? n[0] : '',
i = s(t);
return a.test(i) ? t : i + '.html' + e;
}
function h(t, n) {
var e = decodeURIComponent(t.hash),
i = (function(t) {
var n = t.match(r);
if (n) return n[0];
})(n);
return (!i || e === i) && s(t.path) === s(n);
}
function d(t, n, e) {
if (l(n)) return { type: 'external', path: n };
e &&
(n = (function(t, n, e) {
var r = t.charAt(0);
if ('/' === r) return t;
if ('?' === r || '#' === r) return n + t;
var i = n.split('/');
(e && i[i.length - 1]) || i.pop();
for (var a = t.replace(/^\//, '').split('/'), u = 0; u < a.length; u++) {
var s = a[u];
'..' === s ? i.pop() : '.' !== s && i.push(s);
}
'' !== i[0] && i.unshift('');
return i.join('/');
})(n, e));
for (var r = s(n), i = 0; i < t.length; i++)
if (s(t[i].regularPath) === r)
return Object.assign({}, t[i], { type: 'page', path: f(t[i].path) });
return (
console.error('[vuepress] No matching page found for sidebar item "'.concat(n, '"')), {}
);
}
function p(t, n, e, r) {
var i = e.pages,
a = e.themeConfig,
u = (r && a.locales && a.locales[r]) || a;
if ('auto' === (t.frontmatter.sidebar || u.sidebar || a.sidebar)) return v(t);
var s = u.sidebar || a.sidebar;
if (s) {
var l = (function(t, n) {
if (Array.isArray(n)) return { base: '/', config: n };
for (var e in n)
if (0 === ((r = t), /(\.html|\/)$/.test(r) ? r : r + '/').indexOf(encodeURI(e)))
return { base: e, config: n[e] };
var r;
return {};
})(n, s),
o = l.base,
c = l.config;
return 'auto' === c
? v(t)
: c
? c.map(function(t) {
return (function t(n, e, r) {
var i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 1;
if ('string' == typeof n) return d(e, n, r);
if (Array.isArray(n)) return Object.assign(d(e, n[0], r), { title: n[1] });
var a = n.children || [];
return 0 === a.length && n.path
? Object.assign(d(e, n.path, r), { title: n.title })
: {
type: 'group',
path: n.path,
title: n.title,
sidebarDepth: n.sidebarDepth,
initialOpenGroupIndex: n.initialOpenGroupIndex,
children: a.map(function(n) {
return t(n, e, r, i + 1);
}),
collapsable: !1 !== n.collapsable,
};
})(t, i, o);
})
: [];
}
return [];
}
function v(t) {
var n = g(t.headers || []);
return [
{
type: 'group',
collapsable: !1,
title: t.title,
path: null,
children: n.map(function(n) {
return {
type: 'auto',
title: n.title,
basePath: t.path,
path: t.path + '#' + n.slug,
children: n.children || [],
};
}),
},
];
}
function g(t) {
var n;
return (
(t = t.map(function(t) {
return Object.assign({}, t);
})).forEach(function(t) {
2 === t.level ? (n = t) : n && (n.children || (n.children = [])).push(t);
}),
t.filter(function(t) {
return 2 === t.level;
})
);
}
function m(t) {
return Object.assign(t, { type: t.items && t.items.length ? 'links' : 'link' });
}
},
309: function(t, n, e) {
'use strict';
var r = e(167),
i = e(5),
a = e(13),
u = e(22),
s = e(168),
l = e(169);
r('match', 1, function(t, n, e) {
return [
function(n) {
var e = u(this),
r = null == n ? void 0 : n[t];
return void 0 !== r ? r.call(n, e) : new RegExp(n)[t](String(e));
},
function(t) {
var r = e(n, t, this);
if (r.done) return r.value;
var u = i(t),
o = String(this);
if (!u.global) return l(u, o);
var c = u.unicode;
u.lastIndex = 0;
for (var f, h = [], d = 0; null !== (f = l(u, o)); ) {
var p = String(f[0]);
(h[d] = p), '' === p && (u.lastIndex = s(o, a(u.lastIndex), c)), d++;
}
return 0 === d ? null : h;
},
];
});
},
310: function(t, n, e) {
'use strict';
var r = e(167),
i = e(171),
a = e(5),
u = e(22),
s = e(97),
l = e(168),
o = e(13),
c = e(169),
f = e(67),
h = e(1),
d = [].push,
p = Math.min,
v = !h(function() {
return !RegExp(4294967295, 'y');
});
r(
'split',
2,
function(t, n, e) {
var r;
return (
(r =
'c' == 'abbc'.split(/(b)*/)[1] ||
4 != 'test'.split(/(?:)/, -1).length ||
2 != 'ab'.split(/(?:ab)*/).length ||
4 != '.'.split(/(.?)(.?)/).length ||
'.'.split(/()()/).length > 1 ||
''.split(/.?/).length
? function(t, e) {
var r = String(u(this)),
a = void 0 === e ? 4294967295 : e >>> 0;
if (0 === a) return [];
if (void 0 === t) return [r];
if (!i(t)) return n.call(r, t, a);
for (
var s,
l,
o,
c = [],
h =
(t.ignoreCase ? 'i' : '') +
(t.multiline ? 'm' : '') +
(t.unicode ? 'u' : '') +
(t.sticky ? 'y' : ''),
p = 0,
v = new RegExp(t.source, h + 'g');
(s = f.call(v, r)) &&
!(
(l = v.lastIndex) > p &&
(c.push(r.slice(p, s.index)),
s.length > 1 && s.index < r.length && d.apply(c, s.slice(1)),
(o = s[0].length),
(p = l),
c.length >= a)
);
)
v.lastIndex === s.index && v.lastIndex++;
return (
p === r.length ? (!o && v.test('')) || c.push('') : c.push(r.slice(p)),
c.length > a ? c.slice(0, a) : c
);
}
: '0'.split(void 0, 0).length
? function(t, e) {
return void 0 === t && 0 === e ? [] : n.call(this, t, e);
}
: n),
[
function(n, e) {
var i = u(this),
a = null == n ? void 0 : n[t];
return void 0 !== a ? a.call(n, i, e) : r.call(String(i), n, e);
},
function(t, i) {
var u = e(r, t, this, i, r !== n);
if (u.done) return u.value;
var f = a(t),
h = String(this),
d = s(f, RegExp),
g = f.unicode,
m =
(f.ignoreCase ? 'i' : '') +
(f.multiline ? 'm' : '') +
(f.unicode ? 'u' : '') +
(v ? 'y' : 'g'),
b = new d(v ? f : '^(?:' + f.source + ')', m),
k = void 0 === i ? 4294967295 : i >>> 0;
if (0 === k) return [];
if (0 === h.length) return null === c(b, h) ? [h] : [];
for (var x = 0, _ = 0, y = []; _ < h.length; ) {
b.lastIndex = v ? _ : 0;
var C,
I = c(b, v ? h : h.slice(_));
if (null === I || (C = p(o(b.lastIndex + (v ? 0 : _)), h.length)) === x)
_ = l(h, _, g);
else {
if ((y.push(h.slice(x, _)), y.length === k)) return y;
for (var O = 1; O <= I.length - 1; O++)
if ((y.push(I[O]), y.length === k)) return y;
_ = x = C;
}
}
return y.push(h.slice(x)), y;
},
]
);
},
!v,
);
},
311: function(t, n, e) {
'use strict';
e(166), e(94), e(313);
var r = e(308),
i = {
name: 'NavLink',
props: { item: { required: !0 } },
computed: {
link: function() {
return Object(r.b)(this.item.link);
},
exact: function() {
var t = this;
return this.$site.locales
? Object.keys(this.$site.locales).some(function(n) {
return n === t.link;
})
: '/' === this.link;
},
isNonHttpURI: function() {
return Object(r.g)(this.link) || Object(r.h)(this.link);
},
isBlankTarget: function() {
return '_blank' === this.target;
},
isInternal: function() {
return !Object(r.f)(this.link) && !this.isBlankTarget;
},
target: function() {
return this.isNonHttpURI
? null
: this.item.target
? this.item.target
: Object(r.f)(this.link)
? '_blank'
: '';
},
rel: function() {
return this.isNonHttpURI || !1 === this.item.rel
? null
: this.item.rel
? this.item.rel
: this.isBlankTarget
? 'noopener noreferrer'
: null;
},
},
methods: {
focusoutAction: function() {
this.$emit('focusout');
},
},
},
a = e(42),
u = Object(a.a)(
i,
function() {
var t = this,
n = t.$createElement,
e = t._self._c || n;
return t.isInternal
? e(
'RouterLink',
{
staticClass: 'nav-link',
attrs: { to: t.link, exact: t.exact },
nativeOn: {
focusout: function(n) {
return t.focusoutAction(n);
},
},
},
[t._v('\n ' + t._s(t.item.text) + '\n')],
)
: e(
'a',
{
staticClass: 'nav-link external',
attrs: { href: t.link, target: t.target, rel: t.rel },
on: { focusout: t.focusoutAction },
},
[
t._v('\n ' + t._s(t.item.text) + '\n '),
t.isBlankTarget ? e('OutboundLink') : t._e(),
],
1,
);
},
[],
!1,
null,
null,
null,
);
n.a = u.exports;
},
313: function(t, n, e) {
'use strict';
var r = e(0),
i = e(314);
r(
{ target: 'String', proto: !0, forced: e(315)('link') },
{
link: function(t) {
return i(this, 'a', 'href', t);
},
},
);
},
314: function(t, n, e) {
var r = e(22),
i = /"/g;
t.exports = function(t, n, e, a) {
var u = String(r(t)),
s = '<' + n;
return (
'' !== e && (s += ' ' + e + '="' + String(a).replace(i, '&quot;') + '"'),
s + '>' + u + '</' + n + '>'
);
};
},
315: function(t, n, e) {
var r = e(1);
t.exports = function(t) {
return r(function() {
var n = ''[t]('"');
return n !== n.toLowerCase() || n.split('"').length > 3;
});
};
},
332: function(t, n, e) {},
369: function(t, n, e) {
t.exports = e.p + 'assets/img/logo.001d04e6.svg';
},
370: function(t, n, e) {
'use strict';
e(332);
},
379: function(t, n, e) {
'use strict';
e.r(n);
var r = {
name: 'Home',
components: { NavLink: e(311).a },
computed: {
data: function() {
return this.$page.frontmatter;
},
actionLink: function() {
return { link: this.data.actionLink, text: this.data.actionText };
},
},
},
i = (e(370), e(42)),
a = Object(i.a)(
r,
function() {
var t = this,
n = t.$createElement,
r = t._self._c || n;
return r(
'main',
{
staticClass: 'home',
attrs: { 'aria-labelledby': null !== t.data.heroText ? 'main-title' : null },
},
[
r('header', { staticClass: 'hero' }, [
null !== t.data.heroText
? r('h1', { attrs: { id: 'main-title' } }, [
r('img', { attrs: { src: e(369), alt: t.data.heroAlt || 'hero' } }),
r('span', [t._v(t._s(t.data.heroText || t.$title || 'Hello'))]),
])
: t._e(),
]),
t._v(' '),
t.data.features && t.data.features.length
? r('div', { staticClass: 'features' }, [
r(
'div',
{ staticClass: 'container' },
t._l(t.data.features, function(n, e) {
return r('div', { key: e, staticClass: 'feature' }, [
r('div', { staticClass: 'feature-index' }, [t._v(t._s(e + 1))]),
t._v(' '),
r('h2', [t._v(t._s(n.title))]),
t._v(' '),
r('p', [t._v(t._s(n.details))]),
]);
}),
0,
),
])
: t._e(),
t._v(' '),
r('Content', { staticClass: 'theme-default-content custom' }),
t._v(' '),
r('div', { staticClass: 'hero' }, [
t.data.actionText && t.data.actionLink
? r(
'p',
{ staticClass: 'action' },
[
r('NavLink', {
staticClass: 'action-button',
attrs: { item: t.actionLink },
}),
],
1,
)
: t._e(),
]),
t._v(' '),
t.data.footer
? r('div', { staticClass: 'footer' }, [
t._v('\n ' + t._s(t.data.footer) + '\n '),
])
: t._e(),
],
1,
);
},
[],
!1,
null,
null,
null,
);
n.default = a.exports;
},
},
]);

View File

@ -1,34 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[4],
{
335: function(t, e, n) {},
373: function(t, e, n) {
'use strict';
n(335);
},
401: 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(373), n(42)),
p = Object(r.a)(i, void 0, void 0, !1, null, '15b7b770', null);
e.default = p.exports;
},
},
]);

View File

@ -1,40 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[5],
{
333: function(e, t, c) {},
371: function(e, t, c) {
'use strict';
c(333);
},
380: function(e, t, c) {
'use strict';
c.r(t);
var i = {
name: 'CodeBlock',
props: { title: { type: String, required: !0 }, active: { type: Boolean, default: !1 } },
},
n = (c(371), c(42)),
s = Object(n.a)(
i,
function() {
var e = this.$createElement;
return (this._self._c || e)(
'div',
{
staticClass: 'theme-code-block',
class: { 'theme-code-block__active': this.active },
},
[this._t('default')],
2,
);
},
[],
!1,
null,
'6d04095e',
null,
);
t.default = s.exports;
},
},
]);

View File

@ -1,106 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[6],
{
334: function(e, t, o) {},
372: function(e, t, o) {
'use strict';
o(334);
},
381: function(e, t, o) {
'use strict';
o.r(t);
o(23), o(93), o(65), o(95);
var a = {
name: 'CodeGroup',
data: function() {
return { codeTabs: [], activeCodeTabIndex: -1 };
},
watch: {
activeCodeTabIndex: function(e) {
this.codeTabs.forEach(function(e) {
e.elm.classList.remove('theme-code-block__active');
}),
this.codeTabs[e].elm.classList.add('theme-code-block__active');
},
},
mounted: function() {
var e = this;
(this.codeTabs = (this.$slots.default || [])
.filter(function(e) {
return Boolean(e.componentOptions);
})
.map(function(t, o) {
return (
'' === t.componentOptions.propsData.active && (e.activeCodeTabIndex = o),
{ title: t.componentOptions.propsData.title, elm: t.elm }
);
})),
-1 === this.activeCodeTabIndex &&
this.codeTabs.length > 0 &&
(this.activeCodeTabIndex = 0);
},
methods: {
changeCodeTab: function(e) {
this.activeCodeTabIndex = e;
},
},
},
c = (o(372), o(42)),
n = Object(c.a)(
a,
function() {
var e = this,
t = e.$createElement,
o = e._self._c || t;
return o(
'div',
{ staticClass: 'theme-code-group' },
[
o('div', { staticClass: 'theme-code-group__nav' }, [
o(
'ul',
{ staticClass: 'theme-code-group__ul' },
e._l(e.codeTabs, function(t, a) {
return o('li', { key: t.title, staticClass: 'theme-code-group__li' }, [
o(
'button',
{
staticClass: 'theme-code-group__nav-tab',
class: {
'theme-code-group__nav-tab-active': a === e.activeCodeTabIndex,
},
on: {
click: function(t) {
return e.changeCodeTab(a);
},
},
},
[e._v('\n ' + e._s(t.title) + '\n ')],
),
]);
}),
0,
),
]),
e._v(' '),
e._t('default'),
e._v(' '),
e.codeTabs.length < 1
? o('pre', { staticClass: 'pre-blank' }, [
e._v('// Make sure to add code blocks to your code group'),
])
: e._e(),
],
2,
);
},
[],
!1,
null,
'32c2d7ed',
null,
);
t.default = n.exports;
},
},
]);

View File

@ -1,44 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[7],
{
362: function(t, s, e) {
t.exports = e.p + 'assets/img/preview-flow.b37c7798.png';
},
363: function(t, s, e) {
t.exports = e.p + 'assets/img/preview-page.3ec86df5.png';
},
393: function(t, s, e) {
'use strict';
e.r(s);
var r = e(42),
a = Object(r.a)(
{},
function() {
var t = this,
s = t.$createElement,
r = t._self._c || s;
return r('ContentSlotsDistributor', { attrs: { 'slot-key': t.$parent.slotKey } }, [
r('h1', { attrs: { id: '网页预览' } }, [
r('a', { staticClass: 'header-anchor', attrs: { href: '#网页预览' } }, [t._v('#')]),
t._v(' 网页预览'),
]),
t._v(' '),
r('p', [t._v('我们看看网页预览的工作流程:')]),
t._v(' '),
r('img', { attrs: { src: e(362), alt: 'foo' } }),
t._v(' '),
r('p', [t._v('前端预览界面:')]),
t._v(' '),
r('img', { attrs: { src: e(363), alt: 'foo' } }),
]);
},
[],
!1,
null,
null,
null,
);
s.default = a.exports;
},
},
]);

View File

@ -1,62 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[8],
{
365: function(t, s, a) {
t.exports = a.p + 'assets/img/template-ft.4f6e0d14.png';
},
366: function(t, s, a) {
t.exports = a.p + 'assets/img/template-bg.244b9ac7.png';
},
397: function(t, s, a) {
'use strict';
a.r(s);
var e = a(42),
r = Object(e.a)(
{},
function() {
var t = this,
s = t.$createElement,
e = t._self._c || s;
return e('ContentSlotsDistributor', { attrs: { 'slot-key': t.$parent.slotKey } }, [
e('h2', { attrs: { id: '模板库实现思路' } }, [
e('a', { staticClass: 'header-anchor', attrs: { href: '#模板库实现思路' } }, [
t._v('#'),
]),
t._v(' 模板库实现思路'),
]),
t._v(' '),
e('p', [
t._v(
'我们目前开放了模板库功能一方面我们会定期配置行业模板另一个方面Dooring还支持用户自己配置模板可以一键保存到云端供用户使用。我们也可以将模板变成自己的页面共享给其他人。实现方式本质上是保存用户的配置信息上传到服务器中做存储在后台提供了管理模板的模块可以修改删除模板。如下图所示',
),
]),
t._v(' '),
e('h3', { attrs: { id: '模板前台展示' } }, [
e('a', { staticClass: 'header-anchor', attrs: { href: '#模板前台展示' } }, [
t._v('#'),
]),
t._v(' 模板前台展示:'),
]),
t._v(' '),
e('img', { attrs: { src: a(365), alt: 'foo' } }),
t._v(' '),
e('h3', { attrs: { id: '模板后台展示' } }, [
e('a', { staticClass: 'header-anchor', attrs: { href: '#模板后台展示' } }, [
t._v('#'),
]),
t._v(' 模板后台展示:'),
]),
t._v(' '),
e('img', { attrs: { src: a(366), alt: 'foo' } }),
]);
},
[],
!1,
null,
null,
null,
);
s.default = r.exports;
},
},
]);

View File

@ -1,92 +0,0 @@
(window.webpackJsonp = window.webpackJsonp || []).push([
[9],
{
358: function(t, o, r) {
t.exports = r.p + 'assets/img/logo.001d04e6.svg';
},
382: function(t, o, r) {
'use strict';
r.r(o);
var s = r(42),
v = Object(s.a)(
{},
function() {
var t = this,
o = t.$createElement,
s = t._self._c || o;
return s('ContentSlotsDistributor', { attrs: { 'slot-key': t.$parent.slotKey } }, [
s('img', { attrs: { src: r(358), alt: 'foo' } }),
t._v(' '),
s('p', [
t._v(
'H5-Dooring 是一款功能强大,高可扩展的 H5 可视化页面配置解决方案,致力于提供一套简单方便、专业可靠、无限可能的 H5 落地页最佳实践。',
),
]),
t._v(' '),
s('h2', { attrs: { id: '功能特点' } }, [
s('a', { staticClass: 'header-anchor', attrs: { href: '#功能特点' } }, [t._v('#')]),
t._v(' 功能特点'),
]),
t._v(' '),
s('p', [
t._v('🎉 '),
s('strong', [t._v('可扩展,')]),
t._v(
' Dooring 实现了较为完整的业务闭环,并使其模块化,编辑器内部功能接口也全部可以对接不同服务端语言,实现了标准化接口。此外还支持自定义组件,二次开发,设计模板等能力,以满足功能和跨领域的分层需求。',
),
]),
t._v(' '),
s('p', [
t._v('📦 '),
s('strong', [t._v('开箱即用,')]),
t._v(' Dooring 内置了'),
s('strong', [t._v('表单渲染器、页面渲染器、动态加载内核')]),
t._v(
'等,仅需一套源码即可上手开发。并且还提供针对 React 的定制插件,内涵丰富的功能,可满足日常 80%的页面制作需求。',
),
]),
t._v(' '),
s('p', [
t._v('🚀 '),
s('strong', [t._v('大量自研,')]),
t._v(
' 包含整个编辑器架构、组件设计、文档、请求库封装,后台管理系统等,满足日常项目的周边需求。',
),
]),
t._v(' '),
s('p', [
t._v('🚄 '),
s('strong', [t._v('与时俱进,')]),
t._v(' 在满足需求的同时,我们也不会停止对新技术的探索。比如更多'),
s('strong', [
t._v('营销组件、业务功能后台管理可视化PC 页面编辑器,数据大屏定制'),
]),
t._v('等等。'),
]),
t._v(' '),
s('h2', { attrs: { id: '为什么选择-dooring' } }, [
s('a', { staticClass: 'header-anchor', attrs: { href: '#为什么选择-dooring' } }, [
t._v('#'),
]),
t._v(' 为什么选择 Dooring'),
]),
t._v(' '),
s('p', [
t._v('目前'),
s('strong', [t._v('github')]),
t._v(
'已超过 3000+star上线 2 个月累计 500+用户使用,解决完善了 100+问题,后续会持续迭代,更新,自研优秀,先进的 lowcode/nocode 解决方案。',
),
]),
]);
},
[],
!1,
null,
null,
null,
);
o.default = v.exports;
},
},
]);

File diff suppressed because it is too large Load Diff

View File

@ -1,38 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/3.0105453b.js" as="script"><link rel="preload" href="/doc/assets/js/18.8be51919.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" aria-current="page" class="home-link router-link-exact-active router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main aria-labelledby="main-title" class="home"><header class="hero"><h1 id="main-title"><img src="/doc/assets/img/logo.001d04e6.svg" alt="hero"><span>一款所见即所得的H5编辑器</span></h1></header> <div class="features"><div class="container"><div class="feature"><div class="feature-index">1</div> <h2>简洁方便</h2> <p>任何人只需傻瓜式拖拽或进行简单编辑即可生成精美的H5页面</p></div><div class="feature"><div class="feature-index">2</div> <h2>插拔式体验</h2> <p>产品以GPL协议开源, 授权后可植入任何系统,并支持二次开发</p></div><div class="feature"><div class="feature-index">3</div> <h2>持续迭代,无限可能</h2> <p>目前正在持续迭代中,后续可根据需求开发功能更强大的可视化系统</p></div></div></div> <div class="theme-default-content custom content__default"></div> <div class="hero"><p class="action"><a href="/doc/zh/guide/" class="nav-link action-button">
快速上手 →
</a></p></div> <div class="footer">
GPL Licensed | Copyright © 2020-present H5-Dooring
</div></main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/3.0105453b.js" defer></script><script src="/doc/assets/js/18.8be51919.js" defer></script>
</body>
</html>

View File

@ -1,34 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/19.5b05b8ec.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><p>正在建设中...</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 11:22:04 PM</span></div></footer> <!----> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/19.5b05b8ec.js" defer></script>
</body>
</html>

View File

@ -1,93 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>DSL设计 | h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/20.3fd45382.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" aria-current="page" class="active sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="dsl设计"><a href="#dsl设计" class="header-anchor">#</a> DSL设计</h1> <p>DSL层主要约定了Dooring组件的数据协议包括组件的可编辑属性、编辑类型、初始值等之所以定义一致的协议层主要是方便后期的组件扩展配置后移有助于不同后端语言开发和数据存储接下来我们看看header组件的schema。</p> <p>1.editData 可编辑的属性类型DSL</p> <p>2.config 可编辑组件的默认属性</p> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> Header<span class="token operator">:</span> IHeaderSchema <span class="token operator">=</span> <span class="token punctuation">{</span>
editData<span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
key<span class="token operator">:</span> <span class="token string">'bgColor'</span><span class="token punctuation">,</span>
name<span class="token operator">:</span> <span class="token string">'背景色'</span><span class="token punctuation">,</span>
type<span class="token operator">:</span> <span class="token string">'Color'</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
key<span class="token operator">:</span> <span class="token string">'height'</span><span class="token punctuation">,</span>
name<span class="token operator">:</span> <span class="token string">'高度'</span><span class="token punctuation">,</span>
type<span class="token operator">:</span> <span class="token string">'Number'</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
key<span class="token operator">:</span> <span class="token string">'logo'</span><span class="token punctuation">,</span>
name<span class="token operator">:</span> <span class="token string">'logo'</span><span class="token punctuation">,</span>
type<span class="token operator">:</span> <span class="token string">'Upload'</span><span class="token punctuation">,</span>
isCrop<span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
cropRate<span class="token operator">:</span> <span class="token number">1000</span> <span class="token operator">/</span> <span class="token number">618</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
key<span class="token operator">:</span> <span class="token string">'logoText'</span><span class="token punctuation">,</span>
name<span class="token operator">:</span> <span class="token string">'logo文字'</span><span class="token punctuation">,</span>
type<span class="token operator">:</span> <span class="token string">'Text'</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
key<span class="token operator">:</span> <span class="token string">'color'</span><span class="token punctuation">,</span>
name<span class="token operator">:</span> <span class="token string">'文字颜色'</span><span class="token punctuation">,</span>
type<span class="token operator">:</span> <span class="token string">'Color'</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
key<span class="token operator">:</span> <span class="token string">'fontSize'</span><span class="token punctuation">,</span>
name<span class="token operator">:</span> <span class="token string">'文字大小'</span><span class="token punctuation">,</span>
type<span class="token operator">:</span> <span class="token string">'Number'</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
config<span class="token operator">:</span> <span class="token punctuation">{</span>
bgColor<span class="token operator">:</span> <span class="token string">'rgba(245,245,245,1)'</span><span class="token punctuation">,</span>
logo<span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
uid<span class="token operator">:</span> <span class="token string">'001'</span><span class="token punctuation">,</span>
name<span class="token operator">:</span> <span class="token string">'image.png'</span><span class="token punctuation">,</span>
status<span class="token operator">:</span> <span class="token string">'done'</span><span class="token punctuation">,</span>
url<span class="token operator">:</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>serverUrl<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">/uploads/3_1740be8a482.png</span><span class="token template-punctuation string">`</span></span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
logoText<span class="token operator">:</span> <span class="token string">'页头Header'</span><span class="token punctuation">,</span>
fontSize<span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span>
color<span class="token operator">:</span> <span class="token string">'rgba(47,84,235,1)'</span><span class="token punctuation">,</span>
height<span class="token operator">:</span> <span class="token number">50</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
</code></pre></div><p>由以上代码可知我们可以在editData属性中给组件添加可编辑的属性比如背景图然后再component中接受属性从而设置样式。</p> <p>在config属性中我们可以设置组件默认属性值和editData中每一项的key一一对应。</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/componentDev/componentStructure.html" class="prev">
组件结构
</a></span> <span class="next"><a href="/doc/zh/guide/componentDev/dynamicLoading.html">
动态加载
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/20.3fd45382.js" defer></script>
</body>
</html>

View File

@ -1,69 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/21.390bb49b.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" aria-current="page" class="active sidebar-link">组件结构</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/doc/zh/guide/componentDev/componentStructure.html#组件设计" class="sidebar-link">组件设计</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/componentDev/componentStructure.html#template设计" class="sidebar-link">template设计</a></li></ul></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</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> <p>dooring的组件设计包含以下3个部分组件</p> <p>1、component 组件主体</p> <p>2、schema 组件的DSL结构协议层</p> <p>3、template 定义了组件的类型、外观、从属关系后期考虑纳入schema</p> <p>接下来我会介绍一个基本的组件主体设计以为template设计在下一章会具体介绍schema部分。</p> <h2 id="组件设计"><a href="#组件设计" class="header-anchor">#</a> 组件设计</h2> <p>我们这里拿基本的header组件来举例如下是header组件的代码</p> <div class="language-jsx extra-class"><pre class="language-jsx"><code><span class="token keyword">interface</span> <span class="token class-name">HeaderPropTypes</span> <span class="token keyword">extends</span> <span class="token class-name">IHeaderConfig</span> <span class="token punctuation">{</span>
isTpl<span class="token operator">:</span> boolean<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token keyword">const</span> Header <span class="token operator">=</span> <span class="token function">memo</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">props<span class="token operator">:</span> HeaderPropTypes</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token keyword">const</span> <span class="token punctuation">{</span> bgColor<span class="token punctuation">,</span> logo<span class="token punctuation">,</span> logoText<span class="token punctuation">,</span> fontSize<span class="token punctuation">,</span> color <span class="token punctuation">}</span> <span class="token operator">=</span> props<span class="token punctuation">;</span>
<span class="token keyword">return</span> props<span class="token punctuation">.</span>isTpl <span class="token operator">?</span> <span class="token punctuation">(</span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span><span class="token punctuation">&gt;</span></span><span class="token plain-text">
&lt; img style=</span><span class="token punctuation">{</span><span class="token punctuation">{</span>width<span class="token operator">:</span> <span class="token string">'100%'</span><span class="token punctuation">}</span><span class="token punctuation">}</span><span class="token plain-text"> src=</span><span class="token punctuation">{</span>logos<span class="token punctuation">}</span><span class="token plain-text"> alt=&quot;&quot; /&gt;
</span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
<span class="token punctuation">)</span> <span class="token operator">:</span> <span class="token punctuation">(</span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>header</span> <span class="token attr-name">className</span><span class="token script language-javascript"><span class="token script-punctuation punctuation">=</span><span class="token punctuation">{</span>styles<span class="token punctuation">.</span>header<span class="token punctuation">}</span></span> <span class="token attr-name">style</span><span class="token script language-javascript"><span class="token script-punctuation punctuation">=</span><span class="token punctuation">{</span><span class="token punctuation">{</span> backgroundColor<span class="token operator">:</span> bgColor <span class="token punctuation">}</span><span class="token punctuation">}</span></span><span class="token punctuation">&gt;</span></span><span class="token plain-text">
</span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">className</span><span class="token script language-javascript"><span class="token script-punctuation punctuation">=</span><span class="token punctuation">{</span>styles<span class="token punctuation">.</span>logo<span class="token punctuation">}</span></span><span class="token punctuation">&gt;</span></span><span class="token plain-text">
&lt; img src=</span><span class="token punctuation">{</span>logo <span class="token operator">&amp;&amp;</span> logo<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>url<span class="token punctuation">}</span><span class="token plain-text"> alt=</span><span class="token punctuation">{</span>logoText<span class="token punctuation">}</span><span class="token plain-text"> /&gt;
</span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span><span class="token plain-text">
</span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">className</span><span class="token script language-javascript"><span class="token script-punctuation punctuation">=</span><span class="token punctuation">{</span>styles<span class="token punctuation">.</span>title<span class="token punctuation">}</span></span> <span class="token attr-name">style</span><span class="token script language-javascript"><span class="token script-punctuation punctuation">=</span><span class="token punctuation">{</span><span class="token punctuation">{</span> fontSize<span class="token punctuation">,</span> color <span class="token punctuation">}</span><span class="token punctuation">}</span></span><span class="token punctuation">&gt;</span></span><span class="token plain-text">
</span><span class="token punctuation">{</span>logoText<span class="token punctuation">}</span><span class="token plain-text">
</span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span><span class="token plain-text">
</span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>header</span><span class="token punctuation">&gt;</span></span>
<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><p>我们只需要按照上面的方式编写组件即可props是DSL定义的数据层用来控制组件的shape也就是组件的表现。我们看看header对应的template。</p> <h2 id="template设计"><a href="#template设计" class="header-anchor">#</a> template设计</h2> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> template <span class="token operator">=</span> <span class="token punctuation">{</span>
type<span class="token operator">:</span> <span class="token string">'Header'</span><span class="token punctuation">,</span>
h<span class="token operator">:</span> <span class="token number">28</span><span class="token punctuation">,</span>
displayName<span class="token operator">:</span> <span class="token string">'页头组件'</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token keyword">export</span> <span class="token keyword">default</span> template<span class="token punctuation">;</span>
</code></pre></div><p>以上就是我们template的结构type用来定义组件的类型方便渲染器动态查找h代表组件的初始化高度我们可以自由设置。displayName是组件的中文名用来在左侧组件面板中展示方便用户理解我们可以在template中自定义更多辅助信息方便使用者更高效的使用我们的编辑器。</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/directoryStructure.html" class="prev">
目录结构
</a></span> <span class="next"><a href="/doc/zh/guide/componentDev/DSLAnalysis.html">
DSL设计
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/21.390bb49b.js" defer></script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/10.b0d462d3.js" as="script"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" aria-current="page" class="active sidebar-link">动态加载</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/doc/zh/guide/componentDev/dynamicLoading.html#umi3提供的dynamic" class="sidebar-link">umi3提供的dynamic</a></li></ul></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</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> <p>目前H5-Dooring的组件都是通过动态加载的方式引入好处是我们在页面中只会加载我们需要的组件不需要的组件不会被加载这样可以提高页面加载的速度这样做也会出现一些问题比如一个长页面配置了很多组件那么一个页面加载过程可以会触发多次请求目前还没有遇到性能问题但后续会逐渐优化这个问题。</p> <h2 id="umi3提供的dynamic"><a href="#umi3提供的dynamic" class="header-anchor">#</a> umi3提供的dynamic</h2> <p>目前组件的动态加载我们采用的umi的dynamic方案基于它我们上层封装了一个组件动态加载器原理如下</p> <img src="/doc/assets/img/dynamic.15a5303a.png" alt="foo"> <p>具体代码可以参考Dooring的Github地址<a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer">https://github.com/MrXujiang/h5-Dooring<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></p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="prev">
DSL设计
</a></span> <span class="next"><a href="/doc/zh/guide/functionRealization/templateLibrary.html">
模板库
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/10.b0d462d3.js" defer></script>
</body>
</html>

View File

@ -1,313 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/22.dd7423cf.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" aria-current="page" class="active sidebar-link">API接口文档</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/doc/zh/guide/deployDev/api.html#用户相关" class="sidebar-link">用户相关</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/deployDev/api.html#h5页面管理" class="sidebar-link">H5页面管理</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/deployDev/api.html#h5表单数据管理" class="sidebar-link">H5表单数据管理</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/deployDev/api.html#模版管理" class="sidebar-link">模版管理</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/deployDev/api.html#文件上传" class="sidebar-link">文件上传</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/deployDev/api.html#数据统计" class="sidebar-link">数据统计</a></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><p><strong>H5-Dooring</strong>后端部分主要使用 <code>Nodejs</code> 开发, 为了满足更多定制化需求和服务的可移植性, 特意编写了API接口文档,
方便大家使用不同的后端语言实现服务接入.</p> <ul><li>注意: 接口统一前缀为<code>/api/v0</code></li></ul> <h2 id="用户相关"><a href="#用户相关" class="header-anchor">#</a> 用户相关</h2> <h3 id="登录"><a href="#登录" class="header-anchor">#</a> 登录</h3> <p>用户登录接口</p> <ul><li><code>POST</code> /vip/check</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>n</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">用户名</td></tr> <tr><td>co</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">密码</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;n&quot;</span><span class="token operator">:</span> <span class="token string">&quot;test&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;od&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;h5&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;t&quot;</span><span class="token operator">:</span> <span class="token string">&quot;23242ED&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;n&quot;</span><span class="token operator">:</span> <span class="token string">&quot;测试页面&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;rp&quot;</span><span class="token operator">:</span> <span class="token string">&quot;AAAAA&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;maxage&quot;</span><span class="token operator">:</span> <span class="token number">300000</span>
<span class="token punctuation">}</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="注销登录"><a href="#注销登录" class="header-anchor">#</a> 注销登录</h3> <p>注销接口</p> <ul><li><code>POST</code> /vip/checkout</li></ul> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;退出成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="权限控制"><a href="#权限控制" class="header-anchor">#</a> 权限控制</h3> <p>不同用户级别所访问的页面权限不同, 这块可结合服务端已有代码设计属于自己的权限字段, 地址为<code>server/src/router</code></p> <h3 id="用户列表"><a href="#用户列表" class="header-anchor">#</a> 用户列表</h3> <p>获取用户列表接口</p> <ul><li><code>GET</code> /vip/all</li></ul> <p>获取用户列表需要账号满足以下条件:</p> <ul><li>已登录</li> <li>为超级管理员</li></ul> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;n&quot;</span><span class="token operator">:</span> <span class="token string">&quot;test&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;co&quot;</span><span class="token operator">:</span> <span class="token string">&quot;123456&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;od&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;h5&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;t&quot;</span><span class="token operator">:</span> <span class="token string">&quot;23242ED&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;n&quot;</span><span class="token operator">:</span> <span class="token string">&quot;测试页面&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;wx&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Mr_xuxiaoxi&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;rp&quot;</span><span class="token operator">:</span> <span class="token string">&quot;AAAAA&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
</code></pre></div><h3 id="添加用户"><a href="#添加用户" class="header-anchor">#</a> 添加用户</h3> <p>添加用户接口</p> <ul><li><code>POST</code> /vip/add</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li> <li>为超级管理员</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>nickname</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">用户名</td></tr> <tr><td>wx</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">微信号</td></tr> <tr><td>co</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">密码</td></tr></tbody></table> <p>注: co是由笔者写的<code>加密算法</code>实现, 不需要手动填写, 详情见<code>dooirng</code>后台管理/用户管理页面.</p> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;3422EF&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;n&quot;</span><span class="token operator">:</span> <span class="token string">&quot;test&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;wx&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Mr_xuxiaoxi&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;co&quot;</span><span class="token operator">:</span> <span class="token string">&quot;123456&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;od&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;h5&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;tpl&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;rp&quot;</span><span class="token operator">:</span> <span class="token string">&quot;AAAAA&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;h5Num&quot;</span><span class="token operator">:</span> <span class="token number">10</span><span class="token punctuation">,</span>
<span class="token property">&quot;tplNum&quot;</span><span class="token operator">:</span> <span class="token number">3</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="修改用户信息"><a href="#修改用户信息" class="header-anchor">#</a> 修改用户信息</h3> <p>修改用户接口</p> <ul><li><code>POST</code> /vip/edit</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li> <li>为超级管理员</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>id</td> <td style="text-align:center;">false</td> <td style="text-align:center;">string</td> <td style="text-align:right;">用户ID</td></tr> <tr><td>nickname</td> <td style="text-align:center;">false</td> <td style="text-align:center;">string</td> <td style="text-align:right;">用户名</td></tr> <tr><td>co</td> <td style="text-align:center;">false</td> <td style="text-align:center;">string</td> <td style="text-align:right;">登录码</td></tr> <tr><td>wx</td> <td style="text-align:center;">false</td> <td style="text-align:center;">string</td> <td style="text-align:right;">微信号</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;修改成功&quot;</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="删除用户"><a href="#删除用户" class="header-anchor">#</a> 删除用户</h3> <p>删除用户接口</p> <ul><li><code>DELETE</code> /vip/del</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li> <li>为超级管理员</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>id</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">用户ID</td></tr> <tr><td>wx</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">微信号</td></tr> <tr><td>n</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">用户名</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;删除成功&quot;</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span>
</code></pre></div><h2 id="h5页面管理"><a href="#h5页面管理" class="header-anchor">#</a> H5页面管理</h2> <h3 id="获取h5数据"><a href="#获取h5数据" class="header-anchor">#</a> 获取H5数据</h3> <ul><li><code>GET</code> /visible/h5/get</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>tid</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5唯一id</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;pageConfig&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;tpl&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;879742&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;item&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Carousel&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;config&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;direction&quot;</span><span class="token operator">:</span> <span class="token string">&quot;left&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;swipeable&quot;</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
<span class="token property">&quot;autoPlay&quot;</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
<span class="token property">&quot;imgList&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;1&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;title&quot;</span><span class="token operator">:</span> <span class="token string">&quot;趣谈小课1&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;desc&quot;</span><span class="token operator">:</span> <span class="token string">&quot;致力于打造优质小课程&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;link&quot;</span><span class="token operator">:</span> <span class="token string">&quot;xxxxx&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;imgUrl&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;uid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;001&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;image.png&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;status&quot;</span><span class="token operator">:</span> <span class="token string">&quot;done&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;url&quot;</span><span class="token operator">:</span> <span class="token string">&quot;http://io.nainor.com/uploads/1_1740bd7c3dc.png&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;2&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;title&quot;</span><span class="token operator">:</span> <span class="token string">&quot;趣谈小课1&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;desc&quot;</span><span class="token operator">:</span> <span class="token string">&quot;致力于打造优质小课程&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;link&quot;</span><span class="token operator">:</span> <span class="token string">&quot;xxxxx&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;imgUrl&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;uid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;001&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;image.png&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;status&quot;</span><span class="token operator">:</span> <span class="token string">&quot;done&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;url&quot;</span><span class="token operator">:</span> <span class="token string">&quot;http://io.nainor.com/uploads/2_1740bd8d525.png&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;tplImg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;http://io.nainor.com/uploads/carousal_17442e1420f.png&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;h&quot;</span><span class="token operator">:</span> <span class="token number">82</span><span class="token punctuation">,</span>
<span class="token property">&quot;editableEl&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span> <span class="token string">&quot;direction&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;方向&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Radio&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;range&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span> <span class="token string">&quot;down&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;text&quot;</span><span class="token operator">:</span> <span class="token string">&quot;从上到下&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span> <span class="token string">&quot;left&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;text&quot;</span><span class="token operator">:</span> <span class="token string">&quot;从左到右&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span> <span class="token string">&quot;swipeable&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;是否可拖拽&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Switch&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span> <span class="token string">&quot;autoPlay&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;是否自动播放&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Switch&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;key&quot;</span><span class="token operator">:</span> <span class="token string">&quot;imgList&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;图片列表&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;DataList&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;category&quot;</span><span class="token operator">:</span> <span class="token string">&quot;base&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;point&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;i&quot;</span><span class="token operator">:</span> <span class="token string">&quot;x-0&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;x&quot;</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
<span class="token property">&quot;y&quot;</span><span class="token operator">:</span> <span class="token number">13</span><span class="token punctuation">,</span>
<span class="token property">&quot;w&quot;</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
<span class="token property">&quot;h&quot;</span><span class="token operator">:</span> <span class="token number">82</span><span class="token punctuation">,</span>
<span class="token property">&quot;isBounded&quot;</span><span class="token operator">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;status&quot;</span><span class="token operator">:</span> <span class="token string">&quot;inToCanvas&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;481194&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;item&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Form&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;config&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;title&quot;</span><span class="token operator">:</span> <span class="token string">&quot;表单定制组件&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;fontSize&quot;</span><span class="token operator">:</span> <span class="token number">18</span><span class="token punctuation">,</span>
<span class="token property">&quot;titColor&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rgba(60,60,60,1)&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;titWeight&quot;</span><span class="token operator">:</span> <span class="token string">&quot;400&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;bgColor&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rgba(255,255,255,1)&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;btnColor&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rgba(20,54,226,100)&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;btnTextColor&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rgba(255,255,255,1)&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;api&quot;</span><span class="token operator">:</span> <span class="token string">&quot;&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;formControls&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;1&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Text&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;label&quot;</span><span class="token operator">:</span> <span class="token string">&quot;姓名&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;placeholder&quot;</span><span class="token operator">:</span> <span class="token string">&quot;请输入姓名&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;2&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;Number&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;label&quot;</span><span class="token operator">:</span> <span class="token string">&quot;年龄&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;placeholder&quot;</span><span class="token operator">:</span> <span class="token string">&quot; 请输入年龄&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;id&quot;</span><span class="token operator">:</span> <span class="token string">&quot;4&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;type&quot;</span><span class="token operator">:</span> <span class="token string">&quot;MySelect&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;label&quot;</span><span class="token operator">:</span> <span class="token string">&quot;爱好&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;options&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;label&quot;</span><span class="token operator">:</span> <span class="token string">&quot;选项一&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;value&quot;</span><span class="token operator">:</span> <span class="token string">&quot;1&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;label&quot;</span><span class="token operator">:</span> <span class="token string">&quot;选项二&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;value&quot;</span><span class="token operator">:</span> <span class="token string">&quot;2&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;label&quot;</span><span class="token operator">:</span> <span class="token string">&quot;选项三&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;value&quot;</span><span class="token operator">:</span> <span class="token string">&quot;3&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;h&quot;</span><span class="token operator">:</span> <span class="token number">172</span><span class="token punctuation">,</span>
<span class="token property">&quot;category&quot;</span><span class="token operator">:</span> <span class="token string">&quot;base&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;point&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;i&quot;</span><span class="token operator">:</span> <span class="token string">&quot;x-1&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;x&quot;</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
<span class="token property">&quot;y&quot;</span><span class="token operator">:</span> <span class="token number">98</span><span class="token punctuation">,</span>
<span class="token property">&quot;w&quot;</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
<span class="token property">&quot;h&quot;</span><span class="token operator">:</span> <span class="token number">172</span><span class="token punctuation">,</span>
<span class="token property">&quot;isBounded&quot;</span><span class="token operator">:</span> <span class="token boolean">true</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;status&quot;</span><span class="token operator">:</span> <span class="token string">&quot;inToCanvas&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="保存h5数据"><a href="#保存h5数据" class="header-anchor">#</a> 保存H5数据</h3> <ul><li><code>POST</code> /visible/h5/save</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>pageConfig</td> <td style="text-align:center;">false</td> <td style="text-align:center;">object</td> <td style="text-align:right;">H5页面配置数据</td></tr> <tr><td>tpl</td> <td style="text-align:center;">true</td> <td style="text-align:center;">object</td> <td style="text-align:right;">H5页面组件配置数据</td></tr> <tr><td>tid</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5页面唯一id</td></tr></tbody></table> <p>参数示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;pageConfig&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;bgColor&quot;</span><span class="token operator">:</span><span class="token string">&quot;rgba(151,25,25,1)&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;title&quot;</span><span class="token operator">:</span><span class="token string">&quot;医院宣传页&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;tpl&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;tid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;EF123D3&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;tid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;EF123D3&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;保存成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="删除h5数据"><a href="#删除h5数据" class="header-anchor">#</a> 删除H5数据</h3> <ul><li><code>DELETE</code> /visible/h5/del</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>tid</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5页面唯一id</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;tid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;EF123D3&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;test页面&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;tid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;EF123D6&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;test2页面&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;删除成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h2 id="h5表单数据管理"><a href="#h5表单数据管理" class="header-anchor">#</a> H5表单数据管理</h2> <h3 id="保存表单数据"><a href="#保存表单数据" class="header-anchor">#</a> 保存表单数据</h3> <ul><li><code>POST</code> /vip/h5/form/post</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>tid(query)</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5页面唯一id</td></tr> <tr><td>formData(body)</td> <td style="text-align:center;">true</td> <td style="text-align:center;">array</td> <td style="text-align:right;">H5页面表单数据</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;表单提交成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="批量导入表单数据"><a href="#批量导入表单数据" class="header-anchor">#</a> 批量导入表单数据</h3> <ul><li><code>POST</code> /vip/h5/form/import</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>tid(query)</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5页面唯一id</td></tr> <tr><td>formData(body)</td> <td style="text-align:center;">true</td> <td style="text-align:center;">array</td> <td style="text-align:right;">H5页面表单数据集合</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;批量导入成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="删除表单数据"><a href="#删除表单数据" class="header-anchor">#</a> 删除表单数据</h3> <ul><li><code>DELETE</code> /vip/h5/form/del</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>tid</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5页面唯一id</td></tr> <tr><td>ID</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">表单专属id</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;删除成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h2 id="模版管理"><a href="#模版管理" class="header-anchor">#</a> 模版管理</h2> <h3 id="获取模版库"><a href="#获取模版库" class="header-anchor">#</a> 获取模版库</h3> <ul><li><code>GET</code> /visible/tpls/free</li></ul> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;img&quot;</span><span class="token operator">:</span> <span class="token string">&quot;http://xxx/uploads/tpl_175adabd8dd.jpg&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;合作模版&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;tid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;B73349B6&quot;</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="保存模版"><a href="#保存模版" class="header-anchor">#</a> 保存模版</h3> <ul><li><code>POST</code> /visible/tpl/save</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>name</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5模版名称</td></tr> <tr><td>cate</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5模版分类</td></tr> <tr><td>img</td> <td style="text-align:center;">false</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5模版封面图</td></tr> <tr><td>tpl</td> <td style="text-align:center;">true</td> <td style="text-align:center;">array</td> <td style="text-align:right;">H5模版数据</td></tr> <tr><td>pageConfig</td> <td style="text-align:center;">false</td> <td style="text-align:center;">object</td> <td style="text-align:right;">H5模版全局配置</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token punctuation">{</span>
<span class="token property">&quot;tid&quot;</span><span class="token operator">:</span> <span class="token string">&quot;B73349B6&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;保存成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="删除模版"><a href="#删除模版" class="header-anchor">#</a> 删除模版</h3> <ul><li><code>DELETE</code> /visible/tpl/del</li></ul> <p>先决条件:</p> <ul><li>用户已登陆</li></ul> <table><thead><tr><th>参数名</th> <th style="text-align:center;">是否必选</th> <th style="text-align:center;">类型</th> <th style="text-align:right;">说明</th></tr></thead> <tbody><tr><td>tid</td> <td style="text-align:center;">true</td> <td style="text-align:center;">string</td> <td style="text-align:right;">H5模版id</td></tr></tbody></table> <p>返回示例</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
<span class="token property">&quot;state&quot;</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
<span class="token property">&quot;result&quot;</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
<span class="token property">&quot;msg&quot;</span><span class="token operator">:</span> <span class="token string">&quot;删除成功&quot;</span>
<span class="token punctuation">}</span>
</code></pre></div><h2 id="文件上传"><a href="#文件上传" class="header-anchor">#</a> 文件上传</h2> <h2 id="数据统计"><a href="#数据统计" class="header-anchor">#</a> 数据统计</h2> <h3 id="数据大盘接口"><a href="#数据大盘接口" class="header-anchor">#</a> 数据大盘接口</h3> <h3 id="页面埋点"><a href="#页面埋点" class="header-anchor">#</a> 页面埋点</h3></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">2/15/2021, 12:27:31 AM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/deployDev/oss.html" class="prev">
接入第三方oss
</a></span> <!----></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/22.dd7423cf.js" defer></script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/11.a817ab83.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" aria-current="page" class="active sidebar-link">私有化部署</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><p>私有化部署需要获取4个核心项目包, 包括</p> <ul><li>H5编辑器(h5_plus)</li> <li>H5基座(h5)</li> <li>Dooring管理后台(Dooring-Admin)</li> <li>服务端项目(Server)</li></ul> <p>获取以上四个核心源码工程需要满足商业授权协议, 具体可联系<a href="http://h5.dooring.cn/uploads/WechatIMG3_1758e9753e2.jpeg" target="_blank" rel="noopener noreferrer">徐小夕<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></p> <h3 id="部署架构图"><a href="#部署架构图" class="header-anchor">#</a> 部署架构图</h3> <img src="/doc/assets/img/deploy.d1b1d698.png" alt="H5-dooring部署"> <p>部署流程如下:</p> <ol><li>下载4个源码工程, 安装依赖(npm install 或 yarn)</li> <li>打包3个前端工程至<code>server</code>的static目录下</li> <li><code>server</code>下本地运行 <code>yarn start</code><code>npm start</code> 启动服务端进行本地测试</li> <li>打包服务端代码, <code>yarn build</code> 生成 <code>dist</code> 目录, 建议使用 <code>pm2</code><code>nodejs</code>服务的负载均衡, 运行 <code>pm2 start dist/index.js</code>启动生产环境代码</li></ol> <p>也可以将以上步骤集成到gitlab等CI, CD服务中, 进行自动化打包发布, 或者采用<code>docker</code>进行容器化部署.</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/31/2021, 1:25:02 AM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/functionRealization/screenshot.html" class="prev">
截图功能
</a></span> <span class="next"><a href="/doc/zh/guide/deployDev/https.html">
支持https
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/11.a817ab83.js" defer></script>
</body>
</html>

View File

@ -1,71 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/23.3c312dd7.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" aria-current="page" class="active sidebar-link">支持https</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><p>目前<strong>H5-Dooring</strong>全面支持https部署, 具体方式方案如下.</p> <h3 id="前端工程"><a href="#前端工程" class="header-anchor">#</a> 前端工程</h3> <p>我们需要在前端工程中的<code>src/pages/document.ejs</code>中的<code>head</code>中添加如下代码:</p> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>meta</span> <span class="token attr-name">http-equiv</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>Content-Security-Policy<span class="token punctuation">&quot;</span></span> <span class="token attr-name">content</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>upgrade-insecure-requests<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
</code></pre></div><p>目的是强制将页面中HTTP请求转换为HTTPS.</p> <h3 id="服务器工程"><a href="#服务器工程" class="header-anchor">#</a> 服务器工程</h3> <h4 id="_1-申请ssl证书"><a href="#_1-申请ssl证书" class="header-anchor">#</a> 1. 申请SSL证书</h4> <h4 id="_2-生成-server-csr-server-key"><a href="#_2-生成-server-csr-server-key" class="header-anchor">#</a> 2. 生成 server.csr+server.key</h4> <h4 id="_3-通过证书链生成-pem文件"><a href="#_3-通过证书链生成-pem文件" class="header-anchor">#</a> 3. 通过证书链生成.pem文件</h4> <h4 id="在server中的src-index-js按如下方式修改"><a href="#在server中的src-index-js按如下方式修改" class="header-anchor">#</a><code>server</code>中的<code>src/index.js</code>按如下方式修改</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 忽略部分无影响代码</span>
<span class="token keyword">import</span> https <span class="token keyword">from</span> <span class="token string">'https'</span><span class="token punctuation">;</span>
<span class="token comment">// 你的ssl存放路径, 建议直接放在server目录下</span>
<span class="token keyword">const</span> filePath <span class="token operator">=</span> path<span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span>__dirname<span class="token punctuation">,</span> <span class="token string">'../ssl'</span><span class="token punctuation">)</span>
<span class="token comment">// 启动逻辑</span>
<span class="token keyword">async</span> <span class="token keyword">function</span> <span class="token function">start</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token comment">// https配置</span>
<span class="token keyword">const</span> httpsOptions <span class="token operator">=</span> <span class="token punctuation">{</span>
key<span class="token operator">:</span> fs<span class="token punctuation">.</span><span class="token function">readFileSync</span><span class="token punctuation">(</span>path<span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span>filePath<span class="token punctuation">,</span> <span class="token string">'3536084__doctopia.com.cn.key'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token comment">//ssl文件路径</span>
cert<span class="token operator">:</span> fs<span class="token punctuation">.</span><span class="token function">readFileSync</span><span class="token punctuation">(</span>path<span class="token punctuation">.</span><span class="token function">join</span><span class="token punctuation">(</span>filePath<span class="token punctuation">,</span> <span class="token string">'3536084__doctopia.com.cn.pem'</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token comment">//ssl文件路径</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token comment">// https服务</span>
<span class="token keyword">const</span> server <span class="token operator">=</span> https<span class="token punctuation">.</span><span class="token function">createServer</span><span class="token punctuation">(</span>httpsOptions<span class="token punctuation">,</span> app<span class="token punctuation">.</span><span class="token function">callback</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">const</span> io <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">'socket.io'</span><span class="token punctuation">)</span><span class="token punctuation">(</span>server<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token comment">// 忽略其他无影响代码</span>
<span class="token comment">// https默认443, 这里我们可以走公共配置</span>
server<span class="token punctuation">.</span><span class="token function">listen</span><span class="token punctuation">(</span><span class="token number">443</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">服务器地址:</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>config<span class="token punctuation">.</span>staticPath<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span>
<span class="token function">start</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
</code></pre></div></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/31/2021, 1:25:02 AM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/deployDev/deploy.html" class="prev">
私有化部署
</a></span> <span class="next"><a href="/doc/zh/guide/deployDev/oss.html">
接入第三方oss
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/23.3c312dd7.js" defer></script>
</body>
</html>

View File

@ -1,63 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/24.70cc97c3.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" aria-current="page" class="active sidebar-link">接入第三方oss</a><ul class="sidebar-sub-headers"></ul></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><p><strong>H5-Dooring</strong>全面支持第三方对象存储服务, 我们以七牛云对象存储为例.</p> <h3 id="前端上传文件到oss"><a href="#前端上传文件到oss" class="header-anchor">#</a> 前端上传文件到oss</h3> <p>首先我们需要在第三方对象储存服务中配置对应的服务和域名. 其次安装对应的sdk, 如七牛云sdk:</p> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">import</span> <span class="token operator">*</span> <span class="token keyword">as</span> qiniu <span class="token keyword">from</span> <span class="token string">'qiniu-js'</span><span class="token punctuation">;</span>
</code></pre></div><p>其次我们修改<code>h5_plus</code>工程的<code>Upload</code>组件, 详细地址为<code>src/core/FormComponents/Upload</code>.</p> <p>修改内容如下:</p> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">const</span> fileName <span class="token operator">=</span> file<span class="token punctuation">.</span>name
<span class="token keyword">const</span> suffix <span class="token operator">=</span> <span class="token string">'自定义文件后缀'</span>
<span class="token keyword">const</span> putExtra <span class="token operator">=</span> <span class="token punctuation">{</span>
fname<span class="token operator">:</span> fileName<span class="token punctuation">,</span>
params<span class="token operator">:</span> <span class="token punctuation">{</span><span class="token punctuation">}</span>
<span class="token punctuation">}</span>
<span class="token keyword">const</span> uid <span class="token operator">=</span> <span class="token operator">+</span><span class="token keyword">new</span> <span class="token class-name">Date</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">+</span> <span class="token function">uuid</span><span class="token punctuation">(</span><span class="token number">16</span><span class="token punctuation">,</span> <span class="token number">8</span><span class="token punctuation">)</span> <span class="token operator">+</span> suffix
<span class="token comment">// 使用七牛云上传api, 前提是提前在前端拿到对应的ticket, 可以通过请求的方式获取</span>
<span class="token keyword">const</span> observe <span class="token operator">=</span> qiniu<span class="token punctuation">.</span><span class="token function">upload</span><span class="token punctuation">(</span>file<span class="token punctuation">,</span> uid<span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>qnToken<span class="token punctuation">.</span>ticket<span class="token punctuation">,</span> putExtra<span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
observe<span class="token punctuation">.</span><span class="token function">subscribe</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token keyword">null</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">res</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token comment">// 拼接路径</span>
<span class="token keyword">const</span> url <span class="token operator">=</span> <span class="token template-string"><span class="token template-punctuation string">`</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span><span class="token keyword">this</span><span class="token punctuation">.</span>state<span class="token punctuation">.</span>qnToken<span class="token punctuation">.</span>domain<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">/</span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>res<span class="token punctuation">.</span>key<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">;</span>
<span class="token comment">// 存库</span>
<span class="token keyword">const</span> fileList <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">{</span> uid<span class="token punctuation">,</span> name<span class="token operator">:</span> fileName<span class="token punctuation">,</span> status<span class="token operator">:</span> <span class="token string">'done'</span><span class="token punctuation">,</span> url <span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">setState</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
curImgUrl<span class="token operator">:</span> url<span class="token punctuation">,</span>
fileList
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>props<span class="token punctuation">.</span>onChange <span class="token operator">&amp;&amp;</span> <span class="token keyword">this</span><span class="token punctuation">.</span>props<span class="token punctuation">.</span><span class="token function">onChange</span><span class="token punctuation">(</span>fileList<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><p>其他oss服务类似, 如果不清楚如何配置, 可以在<a href="http://h5.dooring.cn/" target="_blank" rel="noopener noreferrer">H5-Dooring官网<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>中找到我们.</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/31/2021, 1:25:02 AM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/deployDev/https.html" class="prev">
支持https
</a></span> <span class="next"><a href="/doc/zh/guide/deployDev/api.html">
API接口文档
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/24.70cc97c3.js" defer></script>
</body>
</html>

View File

@ -1,327 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/25.e47f5b3c.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" aria-current="page" class="active sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><div class="language- extra-class"><pre class="language-text"><code>src
├─ assets
│ ├─ header.png
│ ├─ form.png
│ ├─ footer.png
│ ├─ icon.png
│ ├─ picture.png
├─ components
│ ├─ BackTop
│ │ └─ index.js
│ ├─ BasicShop
│ │ ├─ BasicComponents
│ │ │ ├─ Card
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Carousel
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Footer
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Form
│ │ │ │ ├─ BaseForm.tsx
│ │ │ │ ├─ BasePopoverForm.tsx
│ │ │ │ ├─ baseForm.less
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Header
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Icon
│ │ │ │ ├─ icon.ts
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Image
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ LongText
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Nav
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Notice
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Qrcode
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ RichText
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Text
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ WhiteTpl
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ XButton
│ │ │ │ ├─ Modal.tsx
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ schema.ts
│ │ │ └─ template.ts
│ │ ├─ MediaComponents
│ │ │ ├─ Audio
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Calendar
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Map
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Video
│ │ │ │ ├─ index.css
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ schema.ts
│ │ │ └─ template.ts
│ │ ├─ ShopComponents
│ │ │ ├─ CardLabel
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Coupons
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ List
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Tab
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ ZhuanLan
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ schema.ts
│ │ │ └─ template.ts
│ │ ├─ VisualComponents
│ │ │ ├─ Area
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Chart
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Funnel
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Line
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Pie
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ Radar
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ WordCloud
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ XProgress
│ │ │ │ ├─ index.less
│ │ │ │ ├─ index.tsx
│ │ │ │ ├─ schema.ts
│ │ │ │ └─ template.ts
│ │ │ ├─ schema.ts
│ │ │ └─ template.ts
│ │ ├─ common.ts
│ │ └─ schema.ts
│ ├─ Calibration
│ │ ├─ index.less
│ │ └─ index.tsx
│ ├─ ErrorBundaries
│ │ └─ index.tsx
│ ├─ LoadingCp
│ │ └─ index.tsx
│ ├─ ModalTpl
│ │ ├─ cate.js
│ │ ├─ index.js
│ │ └─ index.less
│ └─ Zan
│ ├─ index.less
│ └─ index.tsx
├─ core
│ ├─ FormComponents
│ │ ├─ CardPicker
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ Color
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ DataList
│ │ │ ├─ editorModal.tsx
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ FormItems
│ │ │ ├─ EditorModal.tsx
│ │ │ ├─ FormItems.tsx
│ │ │ ├─ formItems.less
│ │ │ └─ index.tsx
│ │ ├─ InteractionData
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ MutiText
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ Pos
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ Table
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ Upload
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ ├─ XEditor
│ │ │ ├─ index.less
│ │ │ └─ index.tsx
│ │ └─ types.ts
│ ├─ DynamicEngine.tsx
│ ├─ FormRender.tsx
│ ├─ ViewRender.tsx
│ └─ viewRender.less
├─ layouts
│ ├─ __tests__
│ │ └─ index.test.js
│ ├─ index.less
│ └─ index.tsx
├─ pages
│ ├─ __tests__
│ │ └─ index.test.js
│ ├─ editor
│ │ ├─ components
│ │ │ ├─ AvatorGroup
│ │ │ │ └─ index.tsx
│ │ │ ├─ CanvasControl
│ │ │ │ ├─ index.less
│ │ │ │ └─ index.tsx
│ │ │ └─ Header
│ │ │ ├─ index.js
│ │ │ └─ index.less
│ │ ├─ models
│ │ │ └─ editorModal.js
│ │ ├─ services
│ │ │ └─ editorService.js
│ │ ├─ Container.js
│ │ ├─ SourceBox.tsx
│ │ ├─ TargetBox.js
│ │ ├─ index.js
│ │ ├─ index.less
│ │ └─ preview.tsx
│ ├─ help
│ │ ├─ index.less
│ │ └─ index.tsx
│ ├─ home
│ │ ├─ index.less
│ │ └─ index.tsx
│ ├─ ide
│ │ ├─ _draft.tsx
│ │ ├─ index.less
│ │ └─ index.tsx
│ ├─ login
│ │ ├─ index.less
│ │ └─ index.tsx
│ ├─ document.ejs
│ └─ mobileTip.js
├─ utils
│ ├─ req.ts
│ └─ tool.ts
├─ app.tsx
└─ global.css
</code></pre></div></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 7:12:02 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/startedQuickly.html" class="prev">
快速上手
</a></span> <span class="next"><a href="/doc/zh/guide/componentDev/componentStructure.html">
组件结构
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/25.e47f5b3c.js" defer></script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/12.7537ddc3.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" aria-current="page" class="active sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</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> <p>真机预览和网页预览的流程类似,工作流程如下:</p> <img src="/doc/assets/img/preview-machine.895a0711.png" alt="foo"> <p>由于不同机型预览的效果有些许不同,最终效果以实际看到的为主。</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/functionRealization/pagePreview.html" class="prev">
网页预览
</a></span> <span class="next"><a href="/doc/zh/guide/functionRealization/revocation.html">
撤销/重做
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/12.7537ddc3.js" defer></script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/7.1ca3fdb8.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" aria-current="page" class="active sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</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> <p>我们看看网页预览的工作流程:</p> <img src="/doc/assets/img/preview-flow.b37c7798.png" alt="foo"> <p>前端预览界面:</p> <img src="/doc/assets/img/preview-page.3ec86df5.png" alt="foo"></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/functionRealization/saveJson.html" class="prev">
保存json
</a></span> <span class="next"><a href="/doc/zh/guide/functionRealization/machinePreview.html">
真机预览
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/7.1ca3fdb8.js" defer></script>
</body>
</html>

View File

@ -1,63 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/26.bf8cc2c2.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" aria-current="page" class="active sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</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> <p>撤销重做我们主要使用了redux-undo这个库配合Dva使用具体使用方法参考如下操作</p> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">import</span> <span class="token punctuation">{</span> createLogger <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'redux-logger'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> message <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'antd'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> undoable<span class="token punctuation">,</span> <span class="token punctuation">{</span> StateWithHistory <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'redux-undo'</span><span class="token punctuation">;</span>
<span class="token keyword">import</span> <span class="token punctuation">{</span> Reducer<span class="token punctuation">,</span> AnyAction <span class="token punctuation">}</span> <span class="token keyword">from</span> <span class="token string">'redux'</span><span class="token punctuation">;</span>
<span class="token keyword">export</span> <span class="token keyword">const</span> dva <span class="token operator">=</span> <span class="token punctuation">{</span>
config<span class="token operator">:</span> <span class="token punctuation">{</span>
onAction<span class="token operator">:</span> <span class="token function">createLogger</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
<span class="token function">onError</span><span class="token punctuation">(</span><span class="token parameter">e<span class="token operator">:</span> Error</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
message<span class="token punctuation">.</span><span class="token function">error</span><span class="token punctuation">(</span>e<span class="token punctuation">.</span>message<span class="token punctuation">,</span> <span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token function-variable function">onReducer</span><span class="token operator">:</span> <span class="token punctuation">(</span><span class="token parameter">reducer<span class="token operator">:</span> Reducer<span class="token operator">&lt;</span>any<span class="token punctuation">,</span> AnyAction<span class="token operator">&gt;</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token keyword">let</span> undoReducer <span class="token operator">=</span> <span class="token function">undoable</span><span class="token punctuation">(</span>reducer<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter">state<span class="token operator">:</span> StateWithHistory<span class="token operator">&lt;</span>any<span class="token operator">&gt;</span><span class="token punctuation">,</span> action<span class="token operator">:</span> AnyAction</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
<span class="token keyword">let</span> newState <span class="token operator">=</span> <span class="token function">undoReducer</span><span class="token punctuation">(</span>state<span class="token punctuation">,</span> action<span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">let</span> router <span class="token operator">=</span> newState<span class="token punctuation">.</span>present<span class="token punctuation">.</span>router <span class="token operator">?</span> newState<span class="token punctuation">.</span>present<span class="token punctuation">.</span>router <span class="token operator">:</span> newState<span class="token punctuation">.</span>present<span class="token punctuation">.</span>routing<span class="token punctuation">;</span>
<span class="token keyword">return</span> <span class="token punctuation">{</span> <span class="token operator">...</span>newState<span class="token punctuation">,</span> router<span class="token operator">:</span> router <span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
</code></pre></div><p>以上我们就实现了全局配置redux-undo在撤销重做按钮中我们就可以触发对应的方法来实现撤销重做的功能其次我们还使用了redux-logger来实现redux的日志输出。</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/functionRealization/machinePreview.html" class="prev">
真机预览
</a></span> <span class="next"><a href="/doc/zh/guide/functionRealization/screenshot.html">
截图功能
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/26.bf8cc2c2.js" defer></script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/27.9151272d.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" aria-current="page" class="active sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="保存json"><a href="#保存json" class="header-anchor">#</a> 保存json</h1> <p>我们配置好H5页面之后如果希望其他人观看我们可以保存页面并发送链接。但是如果有多人协作的需求比如一个H5页面可能由多个人完成这个时候该怎么实现呢基于已有的方案我们可以采用socket实现多人协同编辑但是成本比较大所有这里我们提供了保存json的功能。</p> <p>我们可以将配置好的页面导出为json发送给另一个人这样另一个人通过导入该json文件可以实时看到当前的页面这里还是依靠我们的页面渲染引擎viewEngine。实现思路也很简单可以在github[<a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer">https://github.com/MrXujiang/h5-Dooring<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>]上参考体验。</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="prev">
模板库
</a></span> <span class="next"><a href="/doc/zh/guide/functionRealization/pagePreview.html">
网页预览
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/27.9151272d.js" defer></script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/13.c7b7a778.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" aria-current="page" class="active sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</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> <p>截图功能这里我们主要使用了dom-to-image这个库来将html转化为图片并进行分享。</p> <img src="/doc/assets/img/screenshot.daeecedd.png" alt="foo"></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/functionRealization/revocation.html" class="prev">
撤销/重做
</a></span> <span class="next"><a href="/doc/zh/guide/deployDev/deploy.html">
私有化部署
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/13.c7b7a778.js" defer></script>
</body>
</html>

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/8.83a09fe6.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" aria-current="page" class="active sidebar-link">模板库</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/doc/zh/guide/functionRealization/templateLibrary.html#模板库实现思路" class="sidebar-link">模板库实现思路</a></li></ul></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h2 id="模板库实现思路"><a href="#模板库实现思路" class="header-anchor">#</a> 模板库实现思路</h2> <p>我们目前开放了模板库功能一方面我们会定期配置行业模板另一个方面Dooring还支持用户自己配置模板可以一键保存到云端供用户使用。我们也可以将模板变成自己的页面共享给其他人。实现方式本质上是保存用户的配置信息上传到服务器中做存储在后台提供了管理模板的模块可以修改删除模板。如下图所示</p> <h3 id="模板前台展示"><a href="#模板前台展示" class="header-anchor">#</a> 模板前台展示:</h3> <img src="/doc/assets/img/template-ft.4f6e0d14.png" alt="foo"> <h3 id="模板后台展示"><a href="#模板后台展示" class="header-anchor">#</a> 模板后台展示:</h3> <img src="/doc/assets/img/template-bg.244b9ac7.png" alt="foo"></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 9:57:34 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="prev">
动态加载
</a></span> <span class="next"><a href="/doc/zh/guide/functionRealization/saveJson.html">
保存json
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/8.83a09fe6.js" defer></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -1,42 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/14.eff270f4.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/15.2cabc303.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" aria-current="page" class="active sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" class="sidebar-link">快速上手</a></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><img src="/doc/assets/img/framework.1c9c696b.png" alt="foo"> <p>注:灰色部分还未实现,正在更新中...</p></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 7:12:02 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/" class="prev router-link-active">
基本介绍
</a></span> <span class="next"><a href="/doc/zh/guide/startedQuickly.html">
快速上手
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/14.eff270f4.js" defer></script>
</body>
</html>

View File

@ -1,44 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>快速上手 | h5-dooring</title>
<meta name="generator" content="VuePress 1.8.0">
<meta name="description" content="">
<link rel="preload" href="/doc/assets/css/0.styles.05b20fd2.css" as="style"><link rel="preload" href="/doc/assets/js/app.1cec26f9.js" as="script"><link rel="preload" href="/doc/assets/js/16.ebc27227.js" as="script"><link rel="preload" href="/doc/assets/js/2.693230f5.js" as="script"><link rel="preload" href="/doc/assets/js/15.2cabc303.js" as="script"><link rel="prefetch" href="/doc/assets/js/10.b0d462d3.js"><link rel="prefetch" href="/doc/assets/js/11.a817ab83.js"><link rel="prefetch" href="/doc/assets/js/12.7537ddc3.js"><link rel="prefetch" href="/doc/assets/js/13.c7b7a778.js"><link rel="prefetch" href="/doc/assets/js/14.eff270f4.js"><link rel="prefetch" href="/doc/assets/js/17.e2c644fa.js"><link rel="prefetch" href="/doc/assets/js/18.8be51919.js"><link rel="prefetch" href="/doc/assets/js/19.5b05b8ec.js"><link rel="prefetch" href="/doc/assets/js/20.3fd45382.js"><link rel="prefetch" href="/doc/assets/js/21.390bb49b.js"><link rel="prefetch" href="/doc/assets/js/22.dd7423cf.js"><link rel="prefetch" href="/doc/assets/js/23.3c312dd7.js"><link rel="prefetch" href="/doc/assets/js/24.70cc97c3.js"><link rel="prefetch" href="/doc/assets/js/25.e47f5b3c.js"><link rel="prefetch" href="/doc/assets/js/26.bf8cc2c2.js"><link rel="prefetch" href="/doc/assets/js/27.9151272d.js"><link rel="prefetch" href="/doc/assets/js/3.0105453b.js"><link rel="prefetch" href="/doc/assets/js/4.7985c0ed.js"><link rel="prefetch" href="/doc/assets/js/5.82171d89.js"><link rel="prefetch" href="/doc/assets/js/6.133c066e.js"><link rel="prefetch" href="/doc/assets/js/7.1ca3fdb8.js"><link rel="prefetch" href="/doc/assets/js/8.83a09fe6.js"><link rel="prefetch" href="/doc/assets/js/9.90abe1c9.js">
<link rel="stylesheet" href="/doc/assets/css/0.styles.05b20fd2.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="/doc/" class="home-link router-link-active"><!----> <span class="site-name">h5-dooring</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/doc/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="/doc/zh/guide/" class="nav-link router-link-active">
文档
</a></div><div class="nav-item"><a href="http://h5.dooring.cn" 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><div class="nav-item"><a href="https://github.com/MrXujiang/h5-Dooring" target="_blank" rel="noopener noreferrer" class="nav-link external">
github
<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><a href="/doc/zh/guide/" aria-current="page" class="sidebar-link">基本介绍</a></li><li><a href="/doc/zh/guide/introduced.html" class="sidebar-link">doring如何工作</a></li><li><a href="/doc/zh/guide/startedQuickly.html" aria-current="page" class="active sidebar-link">快速上手</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/doc/zh/guide/startedQuickly.html#环境准备" class="sidebar-link">环境准备</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/startedQuickly.html#源码工程" class="sidebar-link">源码工程</a></li><li class="sidebar-sub-header"><a href="/doc/zh/guide/startedQuickly.html#本地运行" class="sidebar-link">本地运行</a></li></ul></li><li><a href="/doc/zh/guide/directoryStructure.html" class="sidebar-link">目录结构</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>组件开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/componentDev/componentStructure.html" class="sidebar-link">组件结构</a></li><li><a href="/doc/zh/guide/componentDev/DSLAnalysis.html" class="sidebar-link">DSL设计</a></li><li><a href="/doc/zh/guide/componentDev/dynamicLoading.html" class="sidebar-link">动态加载</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>功能实现</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/functionRealization/templateLibrary.html" class="sidebar-link">模板库</a></li><li><a href="/doc/zh/guide/functionRealization/saveJson.html" class="sidebar-link">保存json</a></li><li><a href="/doc/zh/guide/functionRealization/pagePreview.html" class="sidebar-link">网页预览</a></li><li><a href="/doc/zh/guide/functionRealization/machinePreview.html" class="sidebar-link">真机预览</a></li><li><a href="/doc/zh/guide/functionRealization/revocation.html" class="sidebar-link">撤销/重做</a></li><li><a href="/doc/zh/guide/functionRealization/screenshot.html" class="sidebar-link">截图功能</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>私有化部署和二次开发</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/doc/zh/guide/deployDev/deploy.html" class="sidebar-link">私有化部署</a></li><li><a href="/doc/zh/guide/deployDev/https.html" class="sidebar-link">支持https</a></li><li><a href="/doc/zh/guide/deployDev/oss.html" class="sidebar-link">接入第三方oss</a></li><li><a href="/doc/zh/guide/deployDev/api.html" class="sidebar-link">API接口文档</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="环境准备"><a href="#环境准备" class="header-anchor">#</a> 环境准备</h2> <p>首先得有 node并确保 node 版本是 <code>10.13</code> 或以上mac/win 下推荐使用 n 来管理 node 版本)</p> <div class="language- extra-class"><pre class="language-text"><code>$ node-v
v10.13.0
</code></pre></div><p>注:推荐使用 yarn 管理 npm 依赖</p> <h2 id="源码工程"><a href="#源码工程" class="header-anchor">#</a> 源码工程</h2> <table><thead><tr><th>h5_plus(编辑器项目)</th> <th>admin(管理后台)</th> <th>Server(服务端项目)</th></tr></thead> <tbody></tbody></table> <p>本地拿到源码工程之后先安装对应依赖,在对应工程目录里执行 yarn 命令,等待依赖安装完成。</p> <h2 id="本地运行"><a href="#本地运行" class="header-anchor">#</a> 本地运行</h2> <p>1.首先本地启动 server在 src 目录的 index.js 中修改跨域白名单,改为本地的 ip+端口如http://192.167.0.3:8000</p> <p>2.其次本地启动 h5_plus,启动完毕在浏览器打开对应的启动地址即可查看,如下:</p> <img src="/doc/assets/img/home.f76105db.png" alt="foo"></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">1/17/2021, 7:12:02 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/doc/zh/guide/introduced.html" class="prev">
doring如何工作
</a></span> <span class="next"><a href="/doc/zh/guide/directoryStructure.html">
目录结构
</a>
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/doc/assets/js/app.1cec26f9.js" defer></script><script src="/doc/assets/js/16.ebc27227.js" defer></script><script src="/doc/assets/js/2.693230f5.js" defer></script><script src="/doc/assets/js/15.2cabc303.js" defer></script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

6
lerna.json Normal file
View File

@ -0,0 +1,6 @@
{
"packages": [
"packages/*"
],
"version": "0.0.0"
}

View File

@ -1,6 +1,6 @@
{
"name": "h5-dooring",
"version": "1.3.0",
"name": "h5-dooring",
"version": "1.4.0",
"description": "H5-Dooring是一款功能强大开源免费的H5可视化页面配置解决方案致力于提供一套简单方便、专业可靠、无限可能的H5落地页最佳实践。技术栈以react为主 后台采用nodejs开发。",
"private": false,
"author": {
@ -18,15 +18,20 @@
],
"contributors": [
"徐小夕 <xujiang156@qq.com> (https://github.com/MrXujiang))",
"mokinzhao <37622852@qq.com> (https://github.com/mokinzhao))",
"yehuozhili <yehuozhili@outlook.com> (https://github.com/yehuozhili))"
],
"scripts": {
"start": "umi dev",
"build": "umi build",
"start": "npm run start:ui & npm run start:editor",
"start:editor": "npx lerna exec --scope @h5-dooring/editor -- npm run start",
"start:ui": "npx lerna exec --scope @h5-dooring/ui -- npm run start",
"build": "npm run build:ui && npm run build:editor",
"build:editor": "npx lerna exec --scope @h5-dooring/editor -- npm run build",
"build:ui": "npx lerna exec --scope @h5-dooring/ui -- npm run build",
"docs:dev": "npx lerna exec --scope @h5-dooring/doc -- npm run dev",
"docs:build": "npx lerna exec --scope @h5-dooring/doc -- npm run build",
"server": "node server.js",
"dev": "http-server dist",
"docs:dev": "vuepress dev doc",
"docs:build": "vuepress build doc",
"test-demo": "http-server dist",
"postinstall": "umi generate tmp",
"prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'",
@ -34,17 +39,8 @@
"test:coverage": "umi-test --coverage",
"nocompress": "cross-env RM_TMPDIR=none COMPRESS=none umi build"
},
"gitHooks": {
"pre-commit": "lint-staged"
},
"lint-staged": {
"*.{js,jsx,less,md,json}": [
"prettier --write"
],
"*.ts?(x)": [
"prettier --parser=typescript --write"
]
},
"homepage": "http://h5.dooring.cn",
"repository": {
"type": "git",
@ -53,81 +49,7 @@
"bugs": {
"url": "https://github.com/MrXujiang/h5-Dooring/issues"
},
"dependencies": {
"@ant-design/icons": "^4.2.1",
"@antv/f2": "^3.7.7",
"@uiw/react-baidu-map": "^1.17.3",
"@umijs/plugin-esbuild": "^1.0.1",
"@umijs/plugin-sass": "^1.1.1",
"@umijs/preset-react": "1.x",
"@umijs/test": "^3.2.19",
"antd": "^4.7.0",
"antd-img-crop": "^3.10.0",
"axios": "^0.19.2",
"braft-editor": "^2.3.9",
"chatbot-antd": "^0.6.0",
"codemirror": "^5.57.0",
"dom-to-image": "^2.6.0",
"file-saver": "^2.0.2",
"http-server": "^0.12.3",
"keymaster": "^1.6.2",
"qrcode.react": "^1.0.0",
"react": "^16.12.0",
"react-audio-player": "^0.14.0",
"react-codemirror2": "^7.2.1",
"react-color": "^2.18.1",
"react-contexify": "^4.1.1",
"react-dnd": "^11.1.3",
"react-dnd-html5-backend": "^11.1.3",
"react-dom": "^16.12.0",
"react-draggable": "^4.4.3",
"react-draggable-ball": "^0.1.0",
"react-grid-layout": "^1.0.0",
"react-hotkeys-hook": "^2.3.1",
"react-text-loop": "^2.3.0",
"redux-undo": "^1.0.1",
"socket.io-client": "^2.3.0",
"umi": "^3.2.19",
"video-react": "^0.14.1",
"xlsx": "^0.16.7",
"yh-react-popover": "^0.3.0",
"yorkie": "^2.0.0",
"zarm": "^2.5.1"
},
"license": "GPL-3.0",
"devDependencies": {
"@types/classnames": "^2.2.10",
"@types/codemirror": "^0.0.98",
"@types/events": "^3.0.0",
"@types/file-saver": "^2.0.1",
"@types/node": "^14.6.2",
"@types/qrcode.react": "^1.0.1",
"@types/react-color": "^3.0.4",
"@types/react-grid-layout": "^1.1.0",
"@types/redux-logger": "^3.0.8",
"@types/xlsx": "^0.0.36",
"@typescript-eslint/eslint-plugin": "4.1.1",
"@typescript-eslint/parser": "4.1.1",
"babel-eslint": "10.x",
"babel-plugin-import": "^1.13.0",
"cross-env": "^7.0.2",
"eslint": "6.x",
"eslint-config-react-app": "^5.2.1",
"eslint-plugin-flowtype": "4.x",
"eslint-plugin-import": "2.x",
"eslint-plugin-jsx-a11y": "6.x",
"eslint-plugin-react": "7.x",
"eslint-plugin-react-hooks": "2.x",
"koa": "^2.13.0",
"koa-body": "^4.2.0",
"koa-logger": "^3.2.1",
"koa-static": "^5.0.0",
"koa2-cors": "^2.0.6",
"lint-staged": "^10.0.7",
"prettier": "^1.19.1",
"redux-logger": "^3.0.6",
"sass-loader": "^9.0.3",
"typescript": "^4.0.2",
"vuepress": "^1.8.0"
"lerna": "^4.0.0"
}
}

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 94 KiB

View File

Before

Width:  |  Height:  |  Size: 164 KiB

After

Width:  |  Height:  |  Size: 164 KiB

View File

Before

Width:  |  Height:  |  Size: 404 KiB

After

Width:  |  Height:  |  Size: 404 KiB

View File

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

View File

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View File

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

View File

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

Before

Width:  |  Height:  |  Size: 159 KiB

After

Width:  |  Height:  |  Size: 159 KiB

View File

Before

Width:  |  Height:  |  Size: 296 KiB

After

Width:  |  Height:  |  Size: 296 KiB

View File

Before

Width:  |  Height:  |  Size: 155 KiB

After

Width:  |  Height:  |  Size: 155 KiB

View File

Before

Width:  |  Height:  |  Size: 259 KiB

After

Width:  |  Height:  |  Size: 259 KiB

11374
packages/doc/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

27
packages/doc/package.json Normal file
View File

@ -0,0 +1,27 @@
{
"name": "@h5-dooring/doc",
"version": "0.0.1",
"description": "文档",
"author": "mokinzhao <zhaoyl3@yonghui.cn>",
"homepage": "https://github.com/mokinzhao/h5-Dooring#readme",
"license": "ISC",
"main": "index.js",
"scripts": {
"dev": "vuepress dev doc",
"build": "vuepress build doc"
},
"devDependencies": {
"vuepress": "^1.8.2",
"vuepress-plugin-autobar": "github:boboidream/vuepress-bar"
},
"files": [
"lib"
],
"repository": {
"type": "git",
"url": "git+https://github.com/mokinzhao/h5-Dooring.git"
},
"bugs": {
"url": "https://github.com/mokinzhao/h5-Dooring/issues"
}
}

Some files were not shown because too many files have changed in this diff Show More