id: 8e41c4a7793a47f5be72a772f2db7929
parent_id: 
item_type: 1
item_id: f986b3e58ade4f99a90d28f4a01bfdf2
item_updated_time: 1764345553986
title_diff: "[{\"diffs\":[[1,\"我的低代码平台Marsview终于开源了\"]],\"start1\":0,\"start2\":0,\"length1\":0,\"length2\":20}]"
body_diff: "[{\"diffs\":[[1,\"<html>\\\r\\\n<head>\\\r\\\n  <title>我的低代码平台Marsview终于开源了</title>\\\r\\\n  <basefont face=\\\"微软雅黑\\\" size=\\\"2\\\" />\\\r\\\n  <meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html;charset=utf-8\\\" />\\\r\\\n  <meta name=\\\"exporter-version\\\" content=\\\"YXBJ Windows/608924 (zh-CN, DDL); Windows/10.0.0 (Win64); EDAMVersion=V2;\\\"/>\\\r\\\n  <meta name=\\\"content-class\\\" content=\\\"yinxiang.peso.superNote\\\"/>\\\r\\\n  <meta name=\\\"application-data:yinxiang.noteLayout\\\" content=\\\"{\\\"lineSpace\\\":\\\"recommend\\\",\\\"paragraphSpace\\\":\\\"recommend\\\"}\\\"/>\\\r\\\n  <style>\\\r\\\n\\tbody, td {\\\r\\\n\\t  font-family: 微软雅黑;\\\r\\\n\\t  font-size: 12pt;\\\r\\\n\\t}\\\r\\\n  </style>\\\r\\\n</head>\\\r\\\n<body>\\\r\\\n<a name=\\\"879\\\"></a>\\\r\\\n<h1>我的低代码平台Marsview终于开源了</h1>\\\r\\\n\\\r\\\n<div><span style=\\\"\\\"><div style=\\\"max-width: 700px;\\\"><p></p><div style=\\\"--en-blockquote: true; box-sizing: border-box; border-left: 3px solid #b4c0cc; background-position: initial initial; background-repeat: initial initial;\\\"><div>原文链接: <a href=\\\"http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650772411&amp;idx=1&amp;sn=83fe0b9b45b33f8dcedf3fa5bbf6dcb5&amp;chksm=898f326e47ed5b2b517513239a70d34d4220958897554d373ef1abd8de9e71836d1a75c94596&amp;mpshare=1&amp;scene=1&amp;srcid=10245m82gucbvI70NN4T3rg6&amp;sharer_shareinfo=726021caacc19b77c7a2fc6d5b2cd2cb&amp;sharer_shareinfo_first=726021caacc19b77c7a2fc6d5b2cd2cb#rd\\\"><span>http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650772...</span></a></div></div><p></p><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent;\\\"> 河畔一角 </span><span style=\\\"-webkit-tap-highlight-color: transparent;\\\"><a style=\\\"-webkit-tap-highlight-color: transparent;\\\"> 若川视野 </a></span><span style=\\\"-webkit-tap-highlight-color: transparent;\\\"><em style=\\\"-webkit-tap-highlight-color: transparent;\\\"></em></span></div><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"--en-blockquote: true; -webkit-tap-highlight-color: transparent; outline: 0; border-top: 3px none rgba(0,0,0,0.4); border-right: 3px none rgba(0,0,0,0.4); border-bottom: 3px none rgba(0,0,0,0.4); border-left-style: none; border-left-color: rgba(0,0,0,0.4); color: var(--weui-FG-1); letter-spacing: normal; text-align: left; text-wrap: wrap; border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgb(239,239,239); width: auto; height: auto; overflow: auto; __visibility: visible;\\\"><p style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; text-indent: 0; color: rgb(89,89,89); letter-spacing: 0; __visibility: visible;\\\"><a href=\\\"http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650760999&amp;idx=1&amp;sn=75809e13dfb7c87a8697930d5f22cc16&amp;chksm=886664abbf11edbdf2248215765aa5dec617ef569ccf9a5b04bfffde32f99e1fedfdccba47f4&amp;scene=21#wechat_redirect\\\" style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; color: rgb(60,112,198); cursor: default; letter-spacing: 0.32px; font-weight: bold; border-style: none none solid; border-width: 1px; border-color: rgb(30,107,184) rgb(30,107,184) rgb(60,112,198); border-radius: 0; __visibility: visible;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\">大家好，我是若川。</span></a><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\">目前建有</span><code style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all; __visibility: visible;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\">江西|湖南|湖北|河南</span></code><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\"> 籍 前端群，还有</span><code style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all; __visibility: visible;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\">北上广深杭</span></code><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\">等城市地区群，想进群的可以加我微信 </span><code style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all; __visibility: visible;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\">lxchuan12</span></code><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\"> 进群。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><strong style=\\\"-webkit-tap-highlight-color: transparent;\\\">另外，本文 marsview 作者建有交流群，也可以加我微信<span style=\\\"color: rgb(89,89,89); letter-spacing: normal; text-align: left; text-wrap: wrap; background-color: rgb(239,239,239); -webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\"></span><code style=\\\"letter-spacing: 0; text-align: left; text-wrap: wrap; -webkit-tap-highlight-color: transparent; outline: 0; color: rgb(60,112,198); background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all; __visibility: visible;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\">lxchuan12</span></code><span style=\\\"color: rgb(89,89,89); letter-spacing: normal; text-align: left; text-wrap: wrap; background-color: rgb(239,239,239); -webkit-tap-highlight-color: transparent; outline: 0; __visibility: visible;\\\"> 进群，记得注明加什么</span>群。</strong></span></p></div><div style=\\\"-webkit-tap-highlight-color: transparent; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; color: rgb(0,0,0); word-spacing: 0; letter-spacing: 0; word-break: break-word; text-align: left;\\\"><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">前言<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/></span><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\"><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/></span></h2><div style=\\\"--en-blockquote: true; -webkit-tap-highlight-color: transparent; outline: 0; border-top: 3px none rgba(0,0,0,0.4); border-right: 3px none rgba(0,0,0,0.4); border-bottom: 3px none rgba(0,0,0,0.4); border-left-style: none; border-left-color: rgba(0,0,0,0.4); color: rgb(0,0,0); letter-spacing: normal; text-align: left; text-wrap: wrap; cursor: pointer; border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgb(239,239,239); width: auto; height: auto; overflow: auto; __visibility: visible;\\\"><p style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; cursor: pointer; color: rgb(89,89,89); letter-spacing: 0; text-indent: 0; __visibility: visible;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent;\\\">本文作者@河畔一角<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>原文链接：https://juejin.cn/post/7401009128204894244<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0; text-indent: 0; word-spacing: 0; __visibility: visible;\\\">本文提到的低代码项目，前后端已开源，非常好的学习资源，欢迎大家参与贡献。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>github 地址：https://github.com/JackySoft/marsview<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>体验地址：http://www.marsview.cc/</span></span></p></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">前段时间写了<a href=\\\"http://mp.weixin.qq.com/s?__biz=MzA5MjQwMzQyNw==&amp;mid=2650772058&amp;idx=1&amp;sn=a3db0f450335deb8689a9d7e0c924e77&amp;chksm=886691d6bf1118c044780f66e4ad977f758f6724449f4ca652e067d3cc79fe3272187e7e8b28&amp;scene=21#wechat_redirect\\\" style=\\\"-webkit-tap-highlight-color: transparent;\\\" target=\\\"_blank\\\">一篇Mars低代码的文章</a>，反馈良好，但是开源的进度比较缓慢，主要涉及到服务器部署，环境搭建、域名解析、nginx配置、数据库安装等，所以让大家久等了。</p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">为了让大家能够有一个好的体验，我特意搭建了一套在线服务，大家可以直接在线体验，账号密码已经默认放在了登录页面，无需输入，直接登录即可。目前服务器性能比较弱，所以会出现页面加载缓慢的情况，后续也会不断优化性能。</p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">今天这篇文章将正式宣布低代码平台Marsview开源，并把服务器部署和代码核心功能做一下阐述。</p><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">名称来源</span></h2><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">起初叫<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">Mars</code>，主要是因为对马斯克的崇拜，因为他的火箭未来要送人类去火星，所以，火星会是最终的归属，由此我起名叫<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">Mars</code>。近期抖音发布了代码助手<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">MarsCode</code>，名字也非常好听，此时我开始觉得我的低代码不应该叫<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">Mars</code>，因为它比较泛化，没有场景支撑，想到前端很多框架实际上就是基于视图的操作，于是改名叫：<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">Marsview</code>，未来你看到的系统中所有的名称，都将会是<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">Marsview</code>。</p><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">开源介绍</span></h2><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">开源仓库</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">github.com/JackySoft/m…</span><sup style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">[1]</sup><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">希望喜欢的兄弟给个Star，不胜感激。</strong></p><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">技术框架</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">Pnpm + React18 + Vite5 + Zustand4 + Antd5</p><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">后端API服务</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">mars-api.marsview.cc/api</span><sup style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">[2]</sup></p><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">在线服务</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">编辑器端：<span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">www.marsview.cc</span><sup style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">[3]</sup> 用户端：<span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">admin.marsview.cc</span><sup style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">[4]</sup></p><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">账号密码</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">默认账号密码已放在了登录页面，所有人共用。如果想单独创建，请发邮件到<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">sunnyboysoft@163.com</code>申请，如果想要自定义密码，也请在邮箱提供密码给我，系统暂不支持个人注册。</p><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">代码贡献</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">代码体量还比较大，同时存在很多问题，感兴趣的兄弟们可以提PR成为<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">Contributor</code>。也欢迎大家加入微信技术交流群，一起沟通交流。</p><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">页面模板</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">为了指导大家快速使用，我给大家创建了几个页面模板，大家尽量别删除，别修改，可以先看看我是怎么配置事件流和交互的，如果有需要，可以直接复制一份出来做二次修改。</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/5c742165b2f04c83815dbdc28eb33385\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">服务部署</span></h2><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">我在百度云购买了一台服务器，三年大概2100块钱；又购买了域名；为了让上传服务更便捷，又购买了百度云存储；为了让资源加载更快，又购买了<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">cdn</code>，大家不要以为我有钱烧的慌，其实我也没钱，但是在自己喜欢的领域投入还是有必要的。</p><ul style=\\\"-webkit-tap-highlight-color: transparent;\\\"><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">服务器配置：1核/2GB/100GB/计算型c3</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">百度云存储</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">百度云CDN</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">百度云域名服务</div></li></ul><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">服务器购买完以后，就是做环境部署，比如：nginx安装、nodejs安装、mysql数据库安装，安装教程大家可以自行搜索，服务器部署的过程是比较复杂的，我本身对服务器也不是很熟悉，所以，我的语言组织不起来。</p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">这套项目，我一共用了三个域名，前端两个，后端一个，所以我在域名配置里面增加了三个<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">A</code>解析。</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/67a0a05659934cf6a6e860f390dbe95a\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">Nginx服务如何配置多域名呢？</strong></p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">Nginx安装成功后，一般在<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">/etc/nginx/</code>目录，这个目录有一个默认的配置<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">nginx.conf</code>，我建议不要把服务全部配置在这个里面，当前我们有三个服务：<span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">www.marsview.cc/admin.marsv…</span><sup style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); font-weight: bold;\\\">[5]</sup></p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">我们在<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">/etc/nginx/</code>目录创建一个文件夹：<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">vhost</code>，然后我们分别创建不同服务的配置即可，比如：</p><ul style=\\\"-webkit-tap-highlight-color: transparent;\\\"><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">服务A：www.marsview.conf<sup style=\\\"-webkit-tap-highlight-color: transparent;\\\">[6]</sup></div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">服务B：admin.marsview.conf</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">服务C：mars-api.marsview.conf</div></li></ul><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">然后我们再外面<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">nginx.conf</code>中去加载<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">vhost</code>下所有的配置即可：<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">include /etc/nginx/vhost/*.conf;</code></p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">这样做的好处是，干净、利索、容易维护，每个<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">conf</code>的配置都差不多，主要是针对服务定义、资源加载、接口代理等。</p><div style=\\\"--en-codeblock: true; --en-meta: {&quot;title&quot;:&quot;&quot;,&quot;lang&quot;:&quot;Plain Text&quot;,&quot;theme&quot;:&quot;default&quot;,&quot;showLine&quot;:true,&quot;lineWrap&quot;:true}; box-sizing: border-box; color: rgb(51, 51, 51); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; background-color: rgb(251, 250, 248); border: 1px solid rgba(0, 0, 0, 0.14902); background-position: initial initial; background-repeat: initial initial;\\\"><pre><span>server {</span><br/><span></span><br/><span>  listen 80;</span><br/><span></span><br/><span>  server_name www.marsview.cc;</span><br/><span></span><br/><span>  root /workspace/mars/xxx;</span><br/><span></span><br/><span>  index index.html index.htm login.html;</span><br/><span></span><br/><span>  </span><br/><span></span><br/><span>  location / {</span><br/><span></span><br/><span>    root /workspace/mars/xxx;</span><br/><span></span><br/><span>    try_files $uri $uri/ /index.html;</span><br/><span></span><br/><span>  }</span><br/><span></span><br/><span>  location ^~/api {</span><br/><span></span><br/><span>    proxy_pass http://xxxxx:80;</span><br/><span></span><br/><span>  }</span><br/><span></span><br/><span>  location ~ .*\\\\.(gif|jpg|jpeg|png|bmp|swf)$</span><br/><span></span><br/><span>  {</span><br/><span></span><br/><span>    root /workspace/mars/xxx;</span><br/><span></span><br/><span>  }</span><br/><span></span><br/><span>  </span><br/><span></span><br/><span></span><br/><span>  location ~ .*\\\\.(js|html|css)?$</span><br/><span></span><br/><span>  {</span><br/><span></span><br/><span>    root /workspace/mars/xxx;</span><br/><span></span><br/><span>    expires 30d;</span><br/><span></span><br/><span>  }</span><br/><span></span><br/><span>}</span><br/></pre></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">所以，我觉得只要前期把nginx搭建好以后，后面没增加一个域名，新建一个配置就好，每个配置也都非常简单，并不需要很多的运维知识，上面有几个细节需要注意：</p><ul style=\\\"-webkit-tap-highlight-color: transparent;\\\"><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\"><code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">try_files $uri $uri/ /index.html;</code>这个是针对前端<code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">history</code>来由做的。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\"><code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">location ^~/api</code> 这个是接口代理用的。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\"><code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">server_name www.marsview.cc;</code>这个就是用来定义服务跟前端域名匹配用的。</div></li></ul><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">云存储</strong></p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">不用云存储也可以，图片、文件直接使用<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">koa-body</code>插件上传到服务器云磁盘，最终用服务器域名去访问，但是总觉得差点意思，所以干脆直接上云，百度云存储接入也比较简单，可以按需付费。</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/ba0d9fa702c24eb69f58b4c5e15eeac2\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">打开云存储，找到Bucket列表菜单，创建一个存储桶即可，这里可以直接上传图片也可以使用<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">Node SDK</code>上传，同时可以一键开启<code style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">cdn</code>服务。</p><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">功能介绍</span></h2><ul style=\\\"-webkit-tap-highlight-color: transparent;\\\"><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">登录</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">欢迎页面</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">项目列表</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">页面列表（可单独创建，通过微服务集成到自己项目中）</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">组件库</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">编辑器(工具条、组件列表、组件配置、画布)</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">发布记录</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">编辑器支持组件复制、删除、排序、父子容器切换</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">支持事件流开发</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">支持接口配置</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">支持权限控制（菜单权限、按钮权限、页面开发者权限、页面编辑权限、项目配置权限）</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">支持常规的报表业务开发</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">支持静态网页布局开发</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">支持业务：后台管理系统、PC静态网页</div></li></ul><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">产品介绍</span></h2><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">欢迎页面</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/5b93e574805d45358f72f3cac36a2d4b\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">登录页面</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/9c853e4b8ef94ecdbe403d7c4391075b\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">首页</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/d82950019b2c4d7f9726676ddaa9f72c\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">编辑器</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/18a5115ce4b74b33923a8df40bd52ba9\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">预览页面</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/be689d4d7ec442b4934f746030b1a935\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">发布历史页面</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/ae536e8836cc42748c81b2b10a3c2dfd\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">自定义组件</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/0bde1e794e0b4c61a5fcf307a4c3728b\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">后台访问端</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/8e770c10f2bb4c899b4e1208eba9c228\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">数据列表</strong></p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/02677b7f221448b0a1f2af46a2e4ec00\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">重点功能介绍</span></h2><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">组件显隐</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">这个功能在开发中，经常使用，比如：当下拉框选择值为2时，隐藏日期组件。</p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">一、选中组件</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/e817c1c4b2ba4ae592464fe78692db77\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">二、点击右侧事件流</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/a85bb0eee6e44f198571ed34ec94daef\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">三、行为配置-选择组件显隐，显示类型选择表达式</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/d895e90b04c44a659ae528b114d0b4e0\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">四、配置表达式</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/a3a9ddcb9c034f97927c591ef870ae95\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(0,0,0); background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0;\\\">注意试下：</strong></p><ul style=\\\"-webkit-tap-highlight-color: transparent;\\\"><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">对于行为配置，比如显隐、打开弹框、组件刷新之类的，如果在外面能找到就直接点击即可，如果找不到就在组件方法里面，去那里找就行了。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">只要是文本框右侧有<code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">fx</code>标记的，说明都可以使用表达式来动态编程。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">表达式里面，大家可能会觉得是一个黑盒子，的确如此，因为，如何编译都是我自己控制的，大家只需要记住几个知识点就能摆脱黑盒，所有的数据都是挂载在context对象上的，比如：variable、表单值、逻辑函数等。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">表达式里面，<code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">eventParams</code> 是什么意思，就是事件参数，只要是涉及到传参的，在表达式里面一律使用 <code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">eventParams</code></div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">表达式里面可以直接写三元运算符、函数、常量等，如果是一个常量，系统会当做<code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">return</code> 处理，比如你写了一个100，系统最终会按照<code style=\\\"-webkit-tap-highlight-color: transparent; background: none 0 0/auto no-repeat scroll padding-box border-box rgba(27,31,35,0.05); width: auto; border-style: none; border-width: 3px; border-color: rgb(0,0,0) rgba(0,0,0,0.4) rgba(0,0,0,0.4); border-radius: 4px; word-break: break-all;\\\">return 100</code>处理。</div></li></ul><h4 style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; font-weight: bold; display: block;\\\">计数器</span></h4><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">定义两个按钮，一个按钮用来点击，另一个按钮用来显示值，每次点击加1.</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/8713ed0b983941e48615bd1257dfc724\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">一、定义一个变量。</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/ceea353888d9441cb58d41cd0e8f4ca4\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">二、给右侧按钮绑定变量</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/fa471ee7070e4a86bcad1992699a66d6\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">三、给左侧按钮添加事件流</p><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><img src=\\\":/756c57acfef44edc830dc062a8fbd1a8\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; display: block; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 4px; object-fit: fill; width: auto;\\\" width=\\\"auto\\\"/><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(136,136,136); letter-spacing: 0; text-align: center;\\\">image.png</div></div><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">注意，变量赋值有静态赋值和动态赋值两种，静态赋值指的是直接给一个变量设置一个静态值或者是通过变量动态计算一个值。动态赋值指的是通过事件流上游传递过来的值（一般是接口返回的值）。</p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">四、保存事件流</p><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">全部配置完成后，点击左侧按钮，就会发现右侧按钮值会跟随变化。</p><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">项目难点</span></h2><ul style=\\\"-webkit-tap-highlight-color: transparent;\\\"><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">权限控制：菜单按钮权限、项目开发权限、页面开发权限、编辑和只读权限、页面删除修改权限。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">事件流：数据结构转换比较复杂</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">逻辑表达式：支持各种场景的编程运行，这块应该还有优化空间。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">自定义组件库。代码编译比较复杂。</div></li><li style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(1,1,1); letter-spacing: 0;\\\">接口参数。参数有各种形式，比如模板参数，query参数等，需要做各种适配。</div></li></ul><h2 style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; background: url(https; width: auto; height: auto; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; display: flex; overflow: unset; text-shadow: none; transform: none; -webkit-box-reflect: unset;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(60,112,198); letter-spacing: 0; border-style: none; border-width: 1px; border-color: rgb(0,0,0); border-radius: 0; background: none 0 0/auto no-repeat scroll padding-box border-box transparent; font-weight: bold; height: 38px; overflow: unset; text-align: center; text-indent: 0; text-shadow: none; transform: none; width: auto; -webkit-box-reflect: unset;\\\">总结</span></h2><p style=\\\"-webkit-tap-highlight-color: transparent; color: rgb(74,74,74); letter-spacing: 0.02em; text-indent: 0;\\\">时间有限，不能把所有的功能点罗列出来，对低代码感兴趣的兄弟，可以自行克隆代码，如果发现问题可以提PR，让我们一起推进低代码的发展。</p><div style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; display: block; letter-spacing: 0; font-weight: bold;\\\">参考资料</span></div><div style=\\\"-webkit-tap-highlight-color: transparent; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; display: flex; letter-spacing: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; color: rgba(60,112,198,0.6); display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;\\\">[1]</span><p style=\\\"-webkit-tap-highlight-color: transparent; text-indent: 0; color: rgb(60,112,198); font-weight: bold; display: inline; word-break: break-all; letter-spacing: 0;\\\">https://github.com/JackySoft/marsview: <span style=\\\"-webkit-tap-highlight-color: transparent; font-weight: normal; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none none dashed; border-width: 3px 3px 1px; border-color: rgba(0,0,0,0.4) rgba(0,0,0,0.4) rgba(60,112,198,0.4); border-radius: 0;\\\">https://github.com/JackySoft/marsview</span></p></span><span style=\\\"-webkit-tap-highlight-color: transparent; display: flex; letter-spacing: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; color: rgba(60,112,198,0.6); display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;\\\">[2]</span><p style=\\\"-webkit-tap-highlight-color: transparent; text-indent: 0; color: rgb(60,112,198); font-weight: bold; display: inline; word-break: break-all; letter-spacing: 0;\\\">http://mars-api.marsview.cc/api: <span style=\\\"-webkit-tap-highlight-color: transparent; font-weight: normal; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none none dashed; border-width: 3px 3px 1px; border-color: rgba(0,0,0,0.4) rgba(0,0,0,0.4) rgba(60,112,198,0.4); border-radius: 0;\\\">http://mars-api.marsview.cc/api</span></p></span><span style=\\\"-webkit-tap-highlight-color: transparent; display: flex; letter-spacing: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; color: rgba(60,112,198,0.6); display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;\\\">[3]</span><p style=\\\"-webkit-tap-highlight-color: transparent; text-indent: 0; color: rgb(60,112,198); font-weight: bold; display: inline; word-break: break-all; letter-spacing: 0;\\\">http://www.marsview.cc: <span style=\\\"-webkit-tap-highlight-color: transparent; font-weight: normal; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none none dashed; border-width: 3px 3px 1px; border-color: rgba(0,0,0,0.4) rgba(0,0,0,0.4) rgba(60,112,198,0.4); border-radius: 0;\\\">http://www.marsview.cc</span></p></span><span style=\\\"-webkit-tap-highlight-color: transparent; display: flex; letter-spacing: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; color: rgba(60,112,198,0.6); display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;\\\">[4]</span><p style=\\\"-webkit-tap-highlight-color: transparent; text-indent: 0; color: rgb(60,112,198); font-weight: bold; display: inline; word-break: break-all; letter-spacing: 0;\\\">http://admin.marsview.cc: <span style=\\\"-webkit-tap-highlight-color: transparent; font-weight: normal; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none none dashed; border-width: 3px 3px 1px; border-color: rgba(0,0,0,0.4) rgba(0,0,0,0.4) rgba(60,112,198,0.4); border-radius: 0;\\\">http://admin.marsview.cc</span></p></span><span style=\\\"-webkit-tap-highlight-color: transparent; display: flex; letter-spacing: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; color: rgba(60,112,198,0.6); display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;\\\">[5]</span><p style=\\\"-webkit-tap-highlight-color: transparent; text-indent: 0; color: rgb(60,112,198); font-weight: bold; display: inline; word-break: break-all; letter-spacing: 0;\\\">http://www.marsview.cc/admin.marsview.cc/mars-api.marsview.cc%EF%BC%9B: <span style=\\\"-webkit-tap-highlight-color: transparent; font-weight: normal; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none none dashed; border-width: 3px 3px 1px; border-color: rgba(0,0,0,0.4) rgba(0,0,0,0.4) rgba(60,112,198,0.4); border-radius: 0;\\\">http://www.marsview.cc/admin.marsview.cc/mars-api.marsview.cc%EF%BC%9B</span></p></span><span style=\\\"-webkit-tap-highlight-color: transparent; display: flex; letter-spacing: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; letter-spacing: 0; color: rgba(60,112,198,0.6); display: inline; width: 10%; background-image: none; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;\\\">[6]</span><p style=\\\"-webkit-tap-highlight-color: transparent; text-indent: 0; color: rgb(60,112,198); font-weight: bold; display: inline; word-break: break-all; letter-spacing: 0;\\\">http://www.marsview.conf: <span style=\\\"-webkit-tap-highlight-color: transparent; font-weight: normal; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto; border-style: none none dashed; border-width: 3px 3px 1px; border-color: rgba(0,0,0,0.4) rgba(0,0,0,0.4) rgba(60,112,198,0.4); border-radius: 0;\\\">http://www.marsview.conf</span></p></span></div></div><div style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; color: rgb(0,0,0); word-spacing: 0; letter-spacing: 0; word-break: break-word; text-align: left;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(255,255,255); display: flex; transform: rotate(0);\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; color: rgb(255,255,255); height: 32px; background-color: rgb(0,64,128); letter-spacing: 1.5px;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; font-weight: bolder;\\\">今日话题</span></div></div><div style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0.544px; text-wrap: wrap; background-color: rgb(247,248,255);\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0.544px;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0.544px;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 1.5px;\\\">目前建有</span><strong style=\\\"-webkit-tap-highlight-color: transparent; outline: 0;\\\">江西|湖南|湖北|河南</strong><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 1.5px;\\\"> 籍 前端群，还有<strong style=\\\"-webkit-tap-highlight-color: transparent; outline: 0;\\\">北上广深杭</strong>等城市地区群，想进群的可以加我微信 lxchuan12 进群</span>。</span><strong style=\\\"-webkit-tap-highlight-color: transparent; outline: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0.544px;\\\">分享<span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 1.5px;\\\">、收藏、点赞、</span>在看</span></strong><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 1.5px;\\\">我的文章，<strong style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0.544px;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; letter-spacing: 0.544px;\\\">星标我的公众号：若川视野 </span></strong>就是对我最大的支持~</span></span></div><div style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; border-style: none; border-width: 3px; border-color: rgba(0,0,0,0.4); border-radius: 0; background-attachment: scroll; background-clip: border-box; background-image: none; background-origin: padding-box; background-position: 0 0; background-repeat: no-repeat; background-size: auto; width: auto; height: auto;\\\"><strong style=\\\"-webkit-tap-highlight-color: transparent; outline: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; display: flex; letter-spacing: 0;\\\"><p style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; text-indent: 0; color: rgb(60,112,198); display: inline; word-break: break-all; letter-spacing: 0;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent; outline: 0; color: rgb(74,74,74); letter-spacing: 0.32px; text-wrap: wrap;\\\"><img src=\\\":/a22e72d5a59a4c85961487c93ea0490c\\\" type=\\\"image/jpeg\\\" data-filename=\\\"640.jpg\\\" style=\\\"--en-marks: %7B%22align%22%3A%22center%22%7D; -webkit-tap-highlight-color: transparent; outline: 0; color: rgb(0,0,0); letter-spacing: 0.544px; __visibility: visible; width: auto;\\\" width=\\\"auto\\\"/></span></p></span></strong></div></div></div></div><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent; display: flex;\\\"><a style=\\\"-webkit-tap-highlight-color: transparent;\\\">阅读原文</a></div></div></div></div></div></div></div></span>\\\n</div></body></html>\\u0000\"]],\"start1\":0,\"start2\":0,\"length1\":0,\"length2\":71777}]"
metadata_diff: {"new":{"id":"f986b3e58ade4f99a90d28f4a01bfdf2","parent_id":"f67288c3a0be4374b5d532b5dcc3aabc","latitude":"0.00000000","longitude":"0.00000000","altitude":"0.0000","author":"","source_url":"","is_todo":0,"todo_due":0,"todo_completed":0,"source":"joplin-desktop","source_application":"net.cozic.joplin-desktop","application_data":"","order":1764348855205,"markup_language":2,"is_shared":0,"share_id":"","conflict_original_id":"","master_key_id":"","user_data":"","deleted_time":0},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2025-11-28T21:04:36.116Z
created_time: 2025-11-28T21:04:36.116Z
type_: 13