1. 常见问题
1.1. 老版本(5.4.0以下,不包含5.4.0)MCms使用新版本代码生成器方法
1.1.1. 事先准备
head-file
<meta charset="utf-8">
<!--网络请求框架-->
<script src="${base}/static/plugins/axios/0.18.0/axios.min.js"></script>
<script src="${base}/static/plugins/qs/6.6.0/qs.min.js"></script>
<script type="text/javascript" src="${base}/static/plugins/vue/3.4.25/vue.global.js"></script>
<script src="${base}/static/plugins/vue-i18n/8.18.2/vue-i18n.js"></script>
<!-- 图标 -->
<link rel="stylesheet" type="text/css" href="${base}/static/plugins/iconfont/1.0.0/iconfont.css" />
<script src="${base}/static/plugins/iconfont/1.0.0/iconfont.js"></script>
<!-- element-plus引入 -->
<link rel="stylesheet" type="text/css" href="${base}/static/plugins/element-plus/2.7.1/index.css" />
<script src="${base}/static/plugins/element-plus/2.7.1/index.full.js"></script>
<script src="${base}/static/plugins/element-plus/2.7.1/zh-cn.js"></script>
<link rel="stylesheet" type="text/css" href="${base}/static/plugins/element-icons/icon.css" />
<!--金额转换-->
<script src="${base}/static/plugins/accounting/0.4.1/accounting.js"></script>
<!--时间转换-->
<script src="${base}/static/plugins/moment/2.24.0/moment.min.js"></script>
<!--百度编辑器-->
<script src="${base}/static/plugins/vue-ueditor-wrap/3.0/vue-ueditor-wrap.umd.js"></script>
<!--复制-->
<script src="${base}/static/plugins/clipboard/clipboard.js"></script>
<!--通用样式-->
<link rel="stylesheet" href="${base}/static/css/app.css"/>
<!--主题-->
<link rel="stylesheet" href="${base}/static/css/theme.css">
<!--代码编辑-->
<script src="${base}/static/plugins/codemirror/5.48.4/codemirror.js"></script>
<link href="${base}/static/plugins/codemirror/5.48.4/codemirror.css" rel="stylesheet">
<script src="${base}/static/plugins/codemirror/5.48.4/mode/css/css.js"></script>
<script src="${base}/static/plugins/codemirror/5.48.4/addon/scroll/annotatescrollbar.js"></script>
<script src="${base}/static/plugins/codemirror/5.48.4/mode/xml/xml.js"></script>
<script src="${base}/static/plugins/codemirror/5.48.4/mode/javascript/javascript.js"></script>
<script src="${base}/static/plugins/codemirror-editor-vue3/2.5.8/codemirror-editor-vue3.umd.js"></script>
<!--自定义-->
<script src="${base}/static/plugins/vue3-sfc-loader/0.9.5/vue3-sfc-loader.js"></script>
<script>
//必须先设置对象,否则自定义无法渲染
window.vue3SfcLoader = window["vue3-sfc-loader"];
</script>
<!--铭飞-->
<script src="${base}/static/plugins/ms/3.0/ms.umd.js"></script>
<script src="${base}/static/plugins/ms/3.0/ms-el-form.umd.js"></script>
<link rel="stylesheet" type="text/css" href="${base}/static/plugins/ms/3.0/ms-el-form.css" />
<script src="${base}/static/mdiy/index.js"></script>
<!-- 此部分是铭飞平台MStroe的客户端(MStore不在铭飞开源产品范围),如果不需要使用MStore可以删除掉 -->
<script src="${base}/static/plugins/ms/3.0/ms-store.umd.js"></script>
<link rel="stylesheet" type="text/css" href="${base}/static/plugins/ms/3.0/ms-store.css" />
<!--高德地图-->
<script src="${base}/static/plugins/vue-amap/2.0.0/index.min.js"></script>
<link rel="stylesheet" href="${base}/static/plugins/vue-amap/2.0.0/style.min.css">
<script >
window.VueAMap.initAMapApiLoader({
key: '33307e966f7ce225e2073fcea538553e',
securityJsCode:'701ae19d1eabdd830a68129d7415e4d0'
});
ms.base = "${base}";
ms.login = "${managerPath}/login.do";
ms.manager = "${managerPath}";
ms.web = ms.base;
ms.editorConfig= {
imageScaleEnabled :true,
autoHeightEnabled: true,
autoFloatEnabled: false,
scaleEnabled: true,
compressSide:0,
maxImageSideLength:1000,
maximumWords: 2000,
initialFrameWidth: '100%',
initialFrameHeight: 400,
serverUrl: ms.base + "/static/plugins/ueditor/1.4.3.3/jsp/editor.do?jsonConfig=%7BvideoUrlPrefix:\'\',fileManagerListPath:\'\',imageMaxSize:204800000,videoMaxSize:204800000,fileMaxSize:204800000,fileUrlPrefix:\'\',imageUrlPrefix:\'\',imagePathFormat:\'/${app.id}/editor/%7Btime%7D\',filePathFormat:\'/${app.id}/editor/%7Btime%7D\',videoPathFormat:\'/${app.id}/editor/%7Btime%7D\'%7D",
UEDITOR_HOME_URL: ms.base + '/static/plugins/ueditor/1.4.3.3/'
}
</script>
<script >
/**
* 封装vue创建过程,方便初始化组件
* @param obj
* @returns vue实例
* @private
*/
function _Vue(obj) {
var app = Vue.createApp(obj);
app.config.globalProperties.ms = ms;
app.use(ElementPlus,{
locale: ElementPlusLocaleZhCn
});
app.use(MsElForm);
app.use(MsStore);
app.use(VueAMap);
app.use(VueUeditorWrap);
app.use(InstallCodemirro, { componentName: "codemirror" });
app.config.globalProperties.moment = window.moment;
app.config.globalProperties.moneyFormatter = function (row, column, cellValue, index) {
if (cellValue != undefined) {
return accounting.formatMoney(cellValue, '¥')
} else {
return ''
}
}
app.component(obj.components);
return app.mount(obj.el);
}
</script>
<style>
.ms-admin-menu .is-active {
border: 0px !important;
}
</style>
其他资源文件
// 从开源最新版本获取下面的资源,并覆盖更新到当前版本src/main/webapp/static/plugins/目录下
src/main/webapp/static/plugins/element-icons
src/main/webapp/static/plugins/element-plus
src/main/webapp/static/plugins/vue-amap
src/main/webapp/static/plugins/ms
src/main/webapp/static/plugins/vue
src/main/webapp/static/plugins/vue3-sfc-loader
src/main/webapp/static/plugins/codemirror-editor-vue3
src/main/webapp/static/plugins/vue-ueditor-wrap
1.1.2. 下载源码使用
对于源代码的ftl文件,需要将include的路径换成上面head-file的路径
1.1.3. 自定义模型使用
推荐更新到最新版本
1.2. 后台页面国际化设置
[!tip]注意 已有页面不会直接设置成国际化,可以通过国际化模板下载代码后,参考添加
1.3. 代码生成器生成脚手架页面
使用mysql-vue模板组,拖拽组件后,下载代码的结构如下
- 下载后,将src文件夹覆盖到后端,views文件夹覆盖到脚手架;
- 通过代码生成器编辑菜单->初始化菜单->复制菜单,将菜单导入到系统中(权限管理->菜单管理处导入),完成脚手架路由的配置
1.4. 组件设置不可重复属性
- 设置不可重复表示该组件的值唯一
- 后台新增和更新都对组件值做了唯一校验
- 前端校验需要手动添加,下面给一个示例
// form.ftl 表单页 ... data:function() { var checkRepeat = function (rule, value, callback){ ms.http.get(ms.manager + "/norepeat/norepeatInput/verify.do",{ fieldName: "input_no_repeat", fieldValue: value, id: ms.util.getParameter("id"), idName: "id" }).then(function (res){ if (res.result) { if (!res.data) { callback("名称值已存在!"); } else { callback(); } } }) } return { //表单数据 form: { // 名称 inputA:'', }, rules:{ // 名称 inputA: [{validator:checkRepeat,trigger: ['change']}], } ...
1.5. 下载的代码放怎么使用?
代码是基于开源项目MCms,方便用户快速二次开发,使用的引用都在开源项目中,直接放在开源项目,导入菜单数据即可。
1.6. 生成的代码怎么看界面?
1.7. 导入菜单数据后图标显示不全?
确保开源项目代码是跟master分支同步,所引用的图标都在static目录中。
1.8. 导入菜单的入口在哪,菜单管理中没有这个功能?
导入菜单功能是基于basic1.0.17以上版本,在项目中使用最新的依赖即可。
<dependency>
<groupId>net.mingsoft</groupId>
<artifactId>ms-basic</artifactId>
<version>1.0.17</version>
</dependency>
1.9. 生成的代码城市数据没有怎么办?
使用该组件请下载mstore插件中城市数据,获取最新的city表获取对应的城市数据源。
1.10. 代码生成器数据库字段名为保留关键词怎么办?
- 先试用其他字段名保存业务表单
- 下载源码后,通过批量替换一下对应的sql和xml等相关涉及的地方