Merge branch 'master' of github.com:mokinzhao/h5-Dooring
# Conflicts: # packages/editor/src/pages/editor/Container.tsx # packages/ui/src/ui-component/ShopComponents/CardLabel/index.less # packages/ui/src/ui-component/ShopComponents/CardLabel/index.tsx # packages/ui/src/ui-component/ShopComponents/CardLabel/schema.ts # packages/ui/src/ui-component/ShopComponents/CardLabel/template.ts # packages/ui/src/ui-component/ShopComponents/Coupons/index.less # packages/ui/src/ui-component/ShopComponents/Coupons/index.tsx # packages/ui/src/ui-component/ShopComponents/Coupons/schema.ts # packages/ui/src/ui-component/ShopComponents/Coupons/template.ts # packages/ui/src/ui-component/ShopComponents/List/index.less # packages/ui/src/ui-component/ShopComponents/List/index.tsx # packages/ui/src/ui-component/ShopComponents/List/schema.ts # packages/ui/src/ui-component/ShopComponents/List/template.ts # packages/ui/src/ui-component/ShopComponents/Tab/index.less # packages/ui/src/ui-component/ShopComponents/Tab/index.tsx # packages/ui/src/ui-component/ShopComponents/Tab/schema.ts # packages/ui/src/ui-component/ShopComponents/Tab/template.ts # packages/ui/src/ui-component/ShopComponents/ZhuanLan/index.less # packages/ui/src/ui-component/ShopComponents/ZhuanLan/index.tsx # packages/ui/src/ui-component/ShopComponents/ZhuanLan/schema.ts # packages/ui/src/ui-component/ShopComponents/ZhuanLan/template.ts # packages/ui/src/ui-component/ShopComponents/schema.ts # packages/ui/src/ui-component/ShopComponents/template.ts # packages/ui/src/ui-component/shop/CardLabel/index.less # packages/ui/src/ui-component/shop/CardLabel/index.tsx # packages/ui/src/ui-component/shop/CardLabel/schema.ts # packages/ui/src/ui-component/shop/CardLabel/template.ts # packages/ui/src/ui-component/shop/Coupons/index.less # packages/ui/src/ui-component/shop/Coupons/index.tsx # packages/ui/src/ui-component/shop/Coupons/schema.ts # packages/ui/src/ui-component/shop/Coupons/template.ts # packages/ui/src/ui-component/shop/List/index.less # packages/ui/src/ui-component/shop/List/index.tsx # packages/ui/src/ui-component/shop/List/schema.ts # packages/ui/src/ui-component/shop/List/template.ts # packages/ui/src/ui-component/shop/Tab/index.less # packages/ui/src/ui-component/shop/Tab/index.tsx # packages/ui/src/ui-component/shop/Tab/schema.ts # packages/ui/src/ui-component/shop/Tab/template.ts # packages/ui/src/ui-component/shop/ZhuanLan/index.less # packages/ui/src/ui-component/shop/ZhuanLan/index.tsx # packages/ui/src/ui-component/shop/ZhuanLan/schema.ts # packages/ui/src/ui-component/shop/ZhuanLan/template.ts # packages/ui/src/ui-component/shop/schema.ts # packages/ui/src/ui-component/shop/template.ts # src/materials/shop/CardLabel/index.less # src/materials/shop/CardLabel/index.tsx # src/materials/shop/CardLabel/schema.ts # src/materials/shop/CardLabel/template.ts # src/materials/shop/Coupons/index.less # src/materials/shop/Coupons/index.tsx # src/materials/shop/Coupons/schema.ts # src/materials/shop/Coupons/template.ts # src/materials/shop/List/index.less # src/materials/shop/List/index.tsx # src/materials/shop/List/schema.ts # src/materials/shop/List/template.ts # src/materials/shop/Tab/index.less # src/materials/shop/Tab/index.tsx # src/materials/shop/Tab/schema.ts # src/materials/shop/Tab/template.ts # src/materials/shop/ZhuanLan/index.less # src/materials/shop/ZhuanLan/index.tsx # src/materials/shop/ZhuanLan/schema.ts # src/materials/shop/ZhuanLan/template.ts # src/materials/shop/schema.ts # src/materials/shop/template.ts
4
.gitignore
vendored
@ -103,4 +103,6 @@ typings/
|
||||
.tern-port
|
||||
|
||||
.umi/
|
||||
.umi-production/
|
||||
.umi-production/
|
||||
|
||||
dist
|
||||
@ -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>
|
||||
|
Before Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 404 KiB |
|
Before Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 159 KiB |
|
Before Width: | Height: | Size: 296 KiB |
@ -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 |
|
Before Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 259 KiB |
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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, '"') + '"'),
|
||||
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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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;
|
||||
},
|
||||
},
|
||||
]);
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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">=></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"><</span>div</span><span class="token punctuation">></span></span><span class="token plain-text">
|
||||
< 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="" />
|
||||
</span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></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"><</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">></span></span><span class="token plain-text">
|
||||
</span><span class="token tag"><span class="token tag"><span class="token punctuation"><</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">></span></span><span class="token plain-text">
|
||||
< img src=</span><span class="token punctuation">{</span>logo <span class="token operator">&&</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"> />
|
||||
</span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span><span class="token plain-text">
|
||||
</span><span class="token tag"><span class="token tag"><span class="token punctuation"><</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">></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"></</span>div</span><span class="token punctuation">></span></span><span class="token plain-text">
|
||||
</span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>header</span><span class="token punctuation">></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>
|
||||
@ -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>
|
||||
@ -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">"result"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"n"</span><span class="token operator">:</span> <span class="token string">"test"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"od"</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">"h5"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"t"</span><span class="token operator">:</span> <span class="token string">"23242ED"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"n"</span><span class="token operator">:</span> <span class="token string">"测试页面"</span>
|
||||
<span class="token punctuation">}</span>
|
||||
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"rp"</span><span class="token operator">:</span> <span class="token string">"AAAAA"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"maxage"</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">"result"</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"退出成功"</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">"id"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"n"</span><span class="token operator">:</span> <span class="token string">"test"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"co"</span><span class="token operator">:</span> <span class="token string">"123456"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"od"</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">"h5"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"t"</span><span class="token operator">:</span> <span class="token string">"23242ED"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"n"</span><span class="token operator">:</span> <span class="token string">"测试页面"</span>
|
||||
<span class="token punctuation">}</span>
|
||||
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"wx"</span><span class="token operator">:</span> <span class="token string">"Mr_xuxiaoxi"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"rp"</span><span class="token operator">:</span> <span class="token string">"AAAAA"</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">"id"</span><span class="token operator">:</span> <span class="token string">"3422EF"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"n"</span><span class="token operator">:</span> <span class="token string">"test"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"wx"</span><span class="token operator">:</span> <span class="token string">"Mr_xuxiaoxi"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"co"</span><span class="token operator">:</span> <span class="token string">"123456"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"od"</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">"h5"</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">"tpl"</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">"rp"</span><span class="token operator">:</span> <span class="token string">"AAAAA"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"h5Num"</span><span class="token operator">:</span> <span class="token number">10</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"tplNum"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"修改成功"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"删除成功"</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">"pageConfig"</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">"tpl"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"879742"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"item"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"Carousel"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"config"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"direction"</span><span class="token operator">:</span> <span class="token string">"left"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"swipeable"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"autoPlay"</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"imgList"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"1"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"趣谈小课1"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"desc"</span><span class="token operator">:</span> <span class="token string">"致力于打造优质小课程"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"link"</span><span class="token operator">:</span> <span class="token string">"xxxxx"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"imgUrl"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"uid"</span><span class="token operator">:</span> <span class="token string">"001"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"image.png"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"status"</span><span class="token operator">:</span> <span class="token string">"done"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://io.nainor.com/uploads/1_1740bd7c3dc.png"</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">"id"</span><span class="token operator">:</span> <span class="token string">"2"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"趣谈小课1"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"desc"</span><span class="token operator">:</span> <span class="token string">"致力于打造优质小课程"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"link"</span><span class="token operator">:</span> <span class="token string">"xxxxx"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"imgUrl"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"uid"</span><span class="token operator">:</span> <span class="token string">"001"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"image.png"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"status"</span><span class="token operator">:</span> <span class="token string">"done"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"url"</span><span class="token operator">:</span> <span class="token string">"http://io.nainor.com/uploads/2_1740bd8d525.png"</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">"tplImg"</span><span class="token operator">:</span> <span class="token string">"http://io.nainor.com/uploads/carousal_17442e1420f.png"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"h"</span><span class="token operator">:</span> <span class="token number">82</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"editableEl"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"key"</span><span class="token operator">:</span> <span class="token string">"direction"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"方向"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"Radio"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"range"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"key"</span><span class="token operator">:</span> <span class="token string">"down"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"text"</span><span class="token operator">:</span> <span class="token string">"从上到下"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"key"</span><span class="token operator">:</span> <span class="token string">"left"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"text"</span><span class="token operator">:</span> <span class="token string">"从左到右"</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">"key"</span><span class="token operator">:</span> <span class="token string">"swipeable"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"是否可拖拽"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"Switch"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"key"</span><span class="token operator">:</span> <span class="token string">"autoPlay"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"是否自动播放"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"Switch"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"key"</span><span class="token operator">:</span> <span class="token string">"imgList"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"图片列表"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"DataList"</span>
|
||||
<span class="token punctuation">}</span>
|
||||
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"category"</span><span class="token operator">:</span> <span class="token string">"base"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"point"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"i"</span><span class="token operator">:</span> <span class="token string">"x-0"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">13</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"w"</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"h"</span><span class="token operator">:</span> <span class="token number">82</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"isBounded"</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">"status"</span><span class="token operator">:</span> <span class="token string">"inToCanvas"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"481194"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"item"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"Form"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"config"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"title"</span><span class="token operator">:</span> <span class="token string">"表单定制组件"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"fontSize"</span><span class="token operator">:</span> <span class="token number">18</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"titColor"</span><span class="token operator">:</span> <span class="token string">"rgba(60,60,60,1)"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"titWeight"</span><span class="token operator">:</span> <span class="token string">"400"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"bgColor"</span><span class="token operator">:</span> <span class="token string">"rgba(255,255,255,1)"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"btnColor"</span><span class="token operator">:</span> <span class="token string">"rgba(20,54,226,100)"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"btnTextColor"</span><span class="token operator">:</span> <span class="token string">"rgba(255,255,255,1)"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"api"</span><span class="token operator">:</span> <span class="token string">""</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"formControls"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"1"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"Text"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"姓名"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"placeholder"</span><span class="token operator">:</span> <span class="token string">"请输入姓名"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"2"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"Number"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"年龄"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"placeholder"</span><span class="token operator">:</span> <span class="token string">" 请输入年龄"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"id"</span><span class="token operator">:</span> <span class="token string">"4"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"type"</span><span class="token operator">:</span> <span class="token string">"MySelect"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"爱好"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"options"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"选项一"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">"1"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"选项二"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">"2"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"label"</span><span class="token operator">:</span> <span class="token string">"选项三"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"value"</span><span class="token operator">:</span> <span class="token string">"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 punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"h"</span><span class="token operator">:</span> <span class="token number">172</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"category"</span><span class="token operator">:</span> <span class="token string">"base"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"point"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"i"</span><span class="token operator">:</span> <span class="token string">"x-1"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"x"</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"y"</span><span class="token operator">:</span> <span class="token number">98</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"w"</span><span class="token operator">:</span> <span class="token number">24</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"h"</span><span class="token operator">:</span> <span class="token number">172</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"isBounded"</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">"status"</span><span class="token operator">:</span> <span class="token string">"inToCanvas"</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">"pageConfig"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"bgColor"</span><span class="token operator">:</span><span class="token string">"rgba(151,25,25,1)"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"title"</span><span class="token operator">:</span><span class="token string">"医院宣传页"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"tpl"</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">"tid"</span><span class="token operator">:</span> <span class="token string">"EF123D3"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"tid"</span><span class="token operator">:</span> <span class="token string">"EF123D3"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"保存成功"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"tid"</span><span class="token operator">:</span> <span class="token string">"EF123D3"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"test页面"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"tid"</span><span class="token operator">:</span> <span class="token string">"EF123D6"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"test2页面"</span>
|
||||
<span class="token punctuation">}</span>
|
||||
<span class="token punctuation">]</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"删除成功"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"表单提交成功"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"批量导入成功"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"删除成功"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||||
<span class="token punctuation">{</span>
|
||||
<span class="token property">"img"</span><span class="token operator">:</span> <span class="token string">"http://xxx/uploads/tpl_175adabd8dd.jpg"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"合作模版"</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"tid"</span><span class="token operator">:</span> <span class="token string">"B73349B6"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token punctuation">{</span>
|
||||
<span class="token property">"tid"</span><span class="token operator">:</span> <span class="token string">"B73349B6"</span>
|
||||
<span class="token punctuation">}</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"保存成功"</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">"state"</span><span class="token operator">:</span> <span class="token number">200</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"result"</span><span class="token operator">:</span> <span class="token null keyword">null</span><span class="token punctuation">,</span>
|
||||
<span class="token property">"msg"</span><span class="token operator">:</span> <span class="token string">"删除成功"</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>
|
||||
@ -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>
|
||||
@ -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"><</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">"</span>Content-Security-Policy<span class="token punctuation">"</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">"</span>upgrade-insecure-requests<span class="token punctuation">"</span></span><span class="token punctuation">></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">=></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>
|
||||
@ -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">=></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">=></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">&&</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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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"><</span>any<span class="token punctuation">,</span> AnyAction<span class="token operator">></span></span><span class="token punctuation">)</span> <span class="token operator">=></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"><</span>any<span class="token operator">></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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
@ -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>
|
||||
|
Before Width: | Height: | Size: 8.7 KiB |
6
lerna.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"packages": [
|
||||
"packages/*"
|
||||
],
|
||||
"version": "0.0.0"
|
||||
}
|
||||
106
package.json
@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 94 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 404 KiB After Width: | Height: | Size: 404 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 102 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 159 KiB |
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 296 KiB |
|
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 155 KiB |
|
Before Width: | Height: | Size: 259 KiB After Width: | Height: | Size: 259 KiB |
11374
packages/doc/package-lock.json
generated
Normal file
27
packages/doc/package.json
Normal 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"
|
||||
}
|
||||
}
|
||||