《可视化搭建系统》“星空” 搭建后台(五)

本篇聊一下星空搭建后台部分。先回顾一下《可视化搭建系统》"星空"整体架构(一)的这张图。

从上图右侧搭建后台部分可以发现,主要做了下面几件事

  • 拉取物料资源
    • 运营在搭建页面的时候,可以根据具体场景对物料进行选择
  • 被运营选择的物料,会转换成 webcomponents 在编辑区域进行渲染展示
  • 表单配置物料数据
    • 比如选择了一个轮播图物料,可以对轮播图图片进行自定义等相关数据配置
  • 提供预览页面供运营在手机端查看
  • 发布页面

然后再看搭建后台的主页面,就会十分清晰。

拉取物料资源

左侧区域主要是运营对物料的索引,选择。默认分页拉取,支持关键字搜索。

这里有一个细节是,默认物料都是拉取最新版本的(比如 2.0)。之前在 《可视化搭建系统》"星空" nodejs server 端(三) 有说到,物料是有版本号的。只是物料搜索这里默认是拉取最新的,搭建页面中是可以存在历史版本号物料的(比如 1.0)。

那么有可能会出现一个场景就是,某个搭建页面,同一个物料,是不同的版本。是否更新,取决于运营。所以,可以看到上图中物料管理区域,有更新的功能,并且支持回滚到更新之前的版本。

转换物料资源并渲染

点击左侧区域中物料 '+' 号, 此时会去物料服务端,拉取物料的 es 模块包资源。并且对拉取到的资源进行 webcomponents 转换,渲染到搭建页实时预览区域。转换部分可以参考《可视化搭建系统》"星空" webcomponents 从0到1(二)

表单配置物料数据

回顾一下《可视化搭建系统》"星空" cli 脚手架端(四) 中的模板设计部分。

注意这里的 schema 字段,就是给搭建后台表单渲染使用的。一种方式是自己写一套动态 schema 动态表单渲染。

但基于 JSON Schema 规范开源的动态表单其实很多,也很成熟,就没必要自己写了,除非你有很多定制化的需求。这里选择了 form-render, 最近业务上有做一个促销活动页,也用到了。

接入简单, 快捷。只用把模板中的 schema 数据传入 FormRender 即可。

使用的时候,遇到过两个问题。提 issue 反馈还是蛮快的, 这个必须好评。

预览页面

前端实现部分很常规, iframe 嵌入预览地址即可。

后端预览渲染部分, 可以参考之前server 端细说预览部分

发布页面

搭建页面搭建完成, 数据填充好以后, 可以对页面进行发布。可参考 server 端实现页面发布。最终其实就是一个 html 被推入了 nginx 静态服务下, 通过代理进行访问。

小结

搭建后台部分,逻辑其实比较清晰,主要就是把整个星空的链路串起来,有很多地方都是参考之前的系列。这部分, 应该更加注重系统交互, 让运营觉得好用, 使用起来心智负担小。

最后, 到这里差不多整个系列就写完了, 写的过程中发现, 要把一个东西很简单的写明白还挺难得。下一篇就是此系列的结尾篇了。结尾篇会把源代码仓库给出来, 感兴趣的小伙伴, 到时候可以一起交流。

相关推荐
繁依Fanyi40 分钟前
用 CodeBuddy 实现「IdeaSpark 每日灵感卡」:一场 UI 与灵感的极简之旅
开发语言·前端·游戏·ui·编辑器·codebuddy首席试玩官
来自星星的坤3 小时前
【Vue 3 + Vue Router 4】如何正确重置路由实例(resetRouter)——避免“VueRouter is not defined”错误
前端·javascript·vue.js
无名小组7 小时前
【架构篇】项目架构设计思路
架构
985小水博一枚呀7 小时前
【AI大模型学习路线】第二阶段之RAG基础与架构——第七章(【项目实战】基于RAG的PDF文档助手)技术方案与架构设计?
人工智能·学习·语言模型·架构·大模型
香蕉可乐荷包蛋7 小时前
浅入ES5、ES6(ES2015)、ES2023(ES14)版本对比,及使用建议---ES6就够用(个人觉得)
前端·javascript·es6
未来之窗软件服务7 小时前
资源管理器必要性———仙盟创梦IDE
前端·javascript·ide·仙盟创梦ide
掘金-我是哪吒7 小时前
分布式微服务系统架构第132集:Python大模型,fastapi项目-Jeskson文档-微服务分布式系统架构
分布式·python·微服务·架构·系统架构
liuyang___8 小时前
第一次经历项目上线
前端·typescript
西哥写代码9 小时前
基于cornerstone3D的dicom影像浏览器 第十八章 自定义序列自动播放条
前端·javascript·vue
清风细雨_林木木9 小时前
Vue 中生成源码映射文件,配置 map
前端·javascript·vue.js