4.4. 前端开发
前端开发
ModStart框架使用了 jQuery 等基础前端技术,页面不限于使用 Vue、React 作为前端技术集成。
前端代码位置
- 源代码- ModStart基础前端代码位于 vendor/modstart/modstart/resources/asset/。
- 不同模块的前端代码位于 module/Xxx/resources/asset/
 
- ModStart基础前端代码位于 
- 编译后的代码- ModStart基础前端代码位于 vendor/modstart/modstart/asset/。
- 不同模块的前端代码位于 module/Xxx/Asset/
 
- ModStart基础前端代码位于 
前端代码需要使用 nodejs 构建,需要预先了解前端使用 webpack, gulp 打包的基础知识。
前端代码如何编译
Windows
- 安装 nodejs
进入官网 nodejs.cn/ ,下载对应的nodejs安装包下载,完成安装。
推荐安装 node 14 ,其他版本未完全测试验证
- 打开 nodejs 命令窗口
安装完成后,点击windows启动,打开 Node.js command prompt 命令窗口
- 安装 cnpm 和打包依赖
安装 cnpm 主要是为了解决国内访问 npm 速度太慢的问题,可根据自己的情况自行选择
安装cnpm
npm install -g cnpm --registry=https://registry.npmmirror.com安装webpack和gulp依赖
cnpm install -g webpack-cli@4 webpack@4 gulp@4- 编译前端代码
编译ModStart代码
通常情况下系统的前端代码无需修改
# 进入到系统静态资源根目录
cd c:\xxx\vendor\modstart\modstart\resources\asset\
# 安装依赖
cnpm install
# 打包前端CSS、图片等静态资源
gulp
# 调试模式:打包前端JS单页静态资源
webpack --env dev
# 生产模式:打包前端JS单页静态资源
webpack
# 开发模式:打包前端JS单页静态资源,边开发边刷新
webpack --env dev --watch编译模块代码
编译模块前端代码前,请确保ModStart的静态资源已经安装过依赖(cnpm install)
# 进入到模块静态资源根目录
cd c:\xxx\module\Xxx\resources\asset\
# 安装依赖
cnpm install
# 打包前端CSS、图片等静态资源
gulp
# 调试模式:打包前端JS单页静态资源
webpack --env dev
# 生产模式:打包前端JS单页静态资源
webpack
# 开发模式:打包前端JS单页静态资源,边开发边刷新
webpack --env dev --watchOSX / Linux
- 安装 nodejs
进入官网 nodejs.cn/ ,下载对应的nodejs安装包下载,完成安装。
推荐安装 node 14 以上版本
- 安装 cnpm 和打包依赖
安装 cnpm 主要是为了解决国内访问 npm 速度太慢的问题,可根据自己的情况自行选择
安装cnpm
npm install -g cnpm --registry=https://registry.npmmirror.com安装webpack和gulp依赖
cnpm install -g webpack-cli@4 webpack@4 gulp@4- 编译前端代码
编译ModStart代码
通常情况下系统的前端代码无需修改
# 进入到系统静态资源根目录
cd vendor/modstart/modstart/resources/asset/
# 安装依赖
cnpm install
# 打包前端CSS、图片等静态资源
gulp
# 调试模式:打包前端JS单页静态资源
webpack --env dev
# 生产模式:打包前端JS单页静态资源
webpack
# 开发模式:打包前端JS单页静态资源,边开发边刷新
webpack --env dev --watch编译模块代码
编译模块前端代码前,请确保ModStart的静态资源已经安装过依赖(cnpm install)
# 进入到模块静态资源根目录
cd module/Xxx/resources/asset
# 安装依赖
cnpm install
# 打包前端CSS、图片等静态资源
gulp
# 调试模式:打包前端JS单页静态资源
webpack --env dev
# 生产模式:打包前端JS单页静态资源
webpack
# 开发模式:打包前端JS单页静态资源,边开发边刷新
webpack --env dev --watch前端开发组件
弹窗功能
通过增加 data-dialog-request 可以快速创建一个弹窗( iframe 模式 )。
<a href="javascript:;" data-dialog-request="/path/to/dialog">弹窗</a>在弹窗页面通过调用
parent.layer.closeAll()可以关闭操作
具体实现方式可参考 源代码
Ajax请求
构造一个Ajax请求按钮,点击按钮时,会发送一个请求到接口。
<a href="javascript:;" data-ajax-request="/path/to/url" data-ajax-request-loading data-method="get" data-confirm="确定请求?">
    模拟发送一个请求
</a>- data-ajax-request:定义一个快速Ajax请求
- data-ajax-request-loading:请求时显示 Loading
- data-method:请求方式,默认为- post,可以显式定义为- get或- post
- data-confirm:弹出二次确认弹窗
具体实现方式可参考 源代码
Ajax表单
构造一个Ajax表单,在点击提交时,表单会以Ajax的方式请求到后台接口。
<form data-ajax-form action="/path/to/url" method="post">
  <input name="username" value="" />
  <button type="submit">提交</button>
</form>- data-ajax-form:表示当前表单是一个Ajax请求表单
具体实现方式可参考 源代码
图片预览
构造一个图片预览,点击预览后会弹出图片预览大图。
<a href="javascript:;" data-image-preview="图片地址">预览</a>具体实现方式可参考 源代码
实例参考
Vue单页应用集成:
Vue普通方式集成:
JS库-介绍
为方便使用,系统内置了部分函数,加速系统的开发。
内置函数默认绑定在全局变量 MS 上,有不同的模块。
JS库-基础
MS.ready
监听 JS 脚本加载完毕事件 (ready)
MS.ready(function () {
    // 页面加载完成
});JS库-弹窗 dialog
MS.dialog.loadingOn
页面遮罩显示
MS.dialog.loadingOn([msg])- msg显示文字,可选,默认为 Loading 图标
MS.dialog.loadingOff
页面遮罩关闭
MS.dialog.loadingOff()MS.dialog.tipSuccess
提示成功信息
MS.dialog.tipSuccess(msg)- msg提示文字
MS.dialog.tipError
提示错误信息
MS.dialog.tipError(msg)- msg提示文字
MS.dialog.alertSuccess
成功信息模态框
MS.dialog.alertSuccess(msg)- msg提示文字
MS.dialog.alertError
错误信息模态框
MS.dialog.alertError(msg)- msg提示文字
MS.dialog.confirm
确认信息框
MS.dialog.confirm(msg, callback)- msg提示文字
- callback回调函数
MS.dialog.dialogContent
弹出 HTML 内容
MS.dialog.dialogContent(content)- contentHTML内容
MS.dialog.dialog
弹出 URL 链接
MS.dialog.dialog(url)- url链接
JS库-接口 api
MS.api.post
发送 post 请求
MS.api.post( url , param, callback )- url- string请求地址
- param- object请求数据
- callback请求完成回调函数
发送请求实例
MS.api.post( '/login' , {username:'aa',password:'bb'}, function(res){
   // 请求完成
   MS.api.defaultCallback(res,{
     success:function(res){
       // 请求成功 (res.code===0)才会进入这里,如果请求失败自动按照默认规则处理(弹窗、跳转等)
     }
   })
})工具类-其他 util
MS.util.loadScript
动态加载 script
MS.util.loadScript(url, callback)- urljs 链接
- callback加载完成回调函数
MS.util.loadStylesheet
动态加载 CSS
MS.util.loadStylesheet(url, callback)- urlCSS 链接
- callback加载完成回调函数
MS.util.md5
计算字符串MD5值
MS.util.md5(str)- str字符串
MS.util.randomString
生成随机字符串
MS.util.randomString(len)- len随机 字符串长度
MS.util.urlencode
字符串URL编码
MS.util.urlencode(str)- str
MS.util.specialchars
字符串HTML转义
MS.util.specialchars(str)- str字符串
MS.util.scrollTo
页面滚动到元素位置
MS.util.scrollTo(target, container)- target元素选择器
- container父容器选择器,为空表示整个页面
JS库-组件
富文本 editor
默认使用了UEditor作为富文本编辑
引入JS
ModStart::js('asset/common/editor.js')初始化富文本
<script id="content" name="content" type="text/plain"><p>初始化HTML</p></script>
<script>
    // 全功能
    MS.editor.basic('content');
    // 精简
    MS.editor.simple('content');
</script>弹窗选择器 selectorDialog
使用示例
new MS.selectorDialog({
    server: "<弹窗URL>",
    callback: function (items) {
        console.log("选择了", items);
    }
}).show();在弹出的 Iframe 页面中需要通过以下方法来触发关闭并回调
parent.__selectorDialogItems = items;
parent.layer.closeAll(); 
           ModStart开发者文档
ModStart开发者文档 
         
                     
                     
             
             关于 LearnKu
                关于 LearnKu
               
                     
                     
                     粤公网安备 44030502004330号
 粤公网安备 44030502004330号 
 
推荐文章: