|
|
@ -93,31 +93,40 @@
|
|
|
|
<el-tag>SpringBoot v2.1.2.RELEASE</el-tag>
|
|
|
|
<el-tag>SpringBoot v2.1.2.RELEASE</el-tag>
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>Freemarker v2.1.2.RELEASE</el-tag> Html模板引擎
|
|
|
|
<el-tag>Freemarker v2.1.2.RELEASE</el-tag>
|
|
|
|
|
|
|
|
Html模板引擎
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>pagehelper v1.2.5</el-tag> 分页插件、提供便捷的分页功能
|
|
|
|
<el-tag>pagehelper v1.2.5</el-tag>
|
|
|
|
|
|
|
|
分页插件、提供便捷的分页功能
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>dozer v5.5.1</el-tag> 对象复制拷贝
|
|
|
|
<el-tag>dozer v5.5.1</el-tag>
|
|
|
|
|
|
|
|
对象复制拷贝
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>logback v1.2.3</el-tag> 日志框架
|
|
|
|
<el-tag>logback v1.2.3</el-tag>
|
|
|
|
|
|
|
|
日志框架
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>jQuery v3.2.1</el-tag> 前端JavaScript框架(保留),打包进base.min.js,但请尽量勿使用jQuery直接操作Dom
|
|
|
|
<el-tag>jQuery v3.2.1</el-tag>
|
|
|
|
|
|
|
|
前端JavaScript框架(保留),打包进base.min.js,但请尽量勿使用jQuery直接操作Dom
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>Vue v2.5.17</el-tag> DOM渲染引擎
|
|
|
|
<el-tag>Vue v2.5.17</el-tag>
|
|
|
|
|
|
|
|
DOM渲染引擎
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>ElementUI v2.8.2</el-tag> 前端UI框架,提供统一风格控件
|
|
|
|
<el-tag>ElementUI v2.8.2</el-tag>
|
|
|
|
|
|
|
|
前端UI框架,提供统一风格控件
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>Maven</el-tag> 后端构建管理工具
|
|
|
|
<el-tag>Maven</el-tag>
|
|
|
|
|
|
|
|
后端构建管理工具
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<li>
|
|
|
|
<el-tag>JDK 8+</el-tag> SpringBoot2.x开始不再支持JDK 7及以下,所以请将JDk升级到8+
|
|
|
|
<el-tag>JDK 8+</el-tag>
|
|
|
|
|
|
|
|
SpringBoot2.x开始不再支持JDK 7及以下,所以请将JDk升级到8+
|
|
|
|
</li>
|
|
|
|
</li>
|
|
|
|
</ol>
|
|
|
|
</ol>
|
|
|
|
|
|
|
|
|
|
|
@ -133,11 +142,17 @@
|
|
|
|
<el-divider></el-divider>
|
|
|
|
<el-divider></el-divider>
|
|
|
|
|
|
|
|
|
|
|
|
<p>ajax.example({}).then(function (response) {</p>
|
|
|
|
<p>ajax.example({}).then(function (response) {</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 2em;">if (response.errors.length > 0) {</p>
|
|
|
|
<p style="text-indent: 2em;">if (response.errors.length > 0) {</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 4em;">nav.e(response.errors[0].message);</p>
|
|
|
|
<p style="text-indent: 4em;">nav.e(response.errors[0].message);</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 2em;">} else {</p>
|
|
|
|
<p style="text-indent: 2em;">} else {</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 4em;">nav.i("Ajax调用成功!");</p>
|
|
|
|
<p style="text-indent: 4em;">nav.i("Ajax调用成功!");</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 2em;">}</p>
|
|
|
|
<p style="text-indent: 2em;">}</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p>})</p>
|
|
|
|
<p>})</p>
|
|
|
|
|
|
|
|
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
@ -159,13 +174,21 @@
|
|
|
|
<el-divider></el-divider>
|
|
|
|
<el-divider></el-divider>
|
|
|
|
|
|
|
|
|
|
|
|
<p>ajax.fileUpload(req.file).then(function (response) {</p>
|
|
|
|
<p>ajax.fileUpload(req.file).then(function (response) {</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 2em;">if (response.errors.length > 0) {</p>
|
|
|
|
<p style="text-indent: 2em;">if (response.errors.length > 0) {</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 4em;">req.onError();</p>
|
|
|
|
<p style="text-indent: 4em;">req.onError();</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 4em;">nav.e(response.errors[0].message);</p>
|
|
|
|
<p style="text-indent: 4em;">nav.e(response.errors[0].message);</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 2em;">} else {</p>
|
|
|
|
<p style="text-indent: 2em;">} else {</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 4em;">req.onSuccess();</p>
|
|
|
|
<p style="text-indent: 4em;">req.onSuccess();</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 4em;">nav.i("文件上传成功!");</p>
|
|
|
|
<p style="text-indent: 4em;">nav.i("文件上传成功!");</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p style="text-indent: 2em;">}</p>
|
|
|
|
<p style="text-indent: 2em;">}</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p>})</p>
|
|
|
|
<p>})</p>
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
|
@ -837,14 +860,27 @@
|
|
|
|
<h3>4、权限问题</h3>
|
|
|
|
<h3>4、权限问题</h3>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<p>1、本系统启用自定义Token来控制权限,任何访问都会有一个全局Token,任何一处都可以通过<el-tag>LocalData.getToken()</el-tag>来获取
|
|
|
|
<p>1、本系统启用自定义Token来控制权限,任何访问都会有一个全局Token,任何一处都可以通过
|
|
|
|
当前访问对象的Token。其中Token充当着访问对象的通行证,其中包含访问对象的<el-tag>用户ID</el-tag>、<el-tag>用户名</el-tag>、
|
|
|
|
<el-tag>LocalData.getToken()</el-tag>
|
|
|
|
<el-tag>可访问资源</el-tag>等信息。
|
|
|
|
来获取
|
|
|
|
|
|
|
|
当前访问对象的Token。其中Token充当着访问对象的通行证,其中包含访问对象的
|
|
|
|
|
|
|
|
<el-tag>用户ID</el-tag>
|
|
|
|
|
|
|
|
、
|
|
|
|
|
|
|
|
<el-tag>用户名</el-tag>
|
|
|
|
|
|
|
|
、
|
|
|
|
|
|
|
|
<el-tag>可访问资源</el-tag>
|
|
|
|
|
|
|
|
等信息。
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p>2、对于未登录对象会提供临时(访客)<el-tag>LocalData.getTempToken()</el-tag>(有限的权限)来提供访问系统。</p>
|
|
|
|
<p>2、对于未登录对象会提供临时(访客)
|
|
|
|
|
|
|
|
<el-tag>LocalData.getTempToken()</el-tag>
|
|
|
|
|
|
|
|
(有限的权限)来提供访问系统。
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
<p>3、如果系统存在Task等定时任务时,是不存在访问对象,通过<el-tag>LocalData.getSystemToken()</el-tag>来获取系统层的Token来操作系统。</p>
|
|
|
|
<p>3、如果系统存在Task等定时任务时,是不存在访问对象,通过
|
|
|
|
|
|
|
|
<el-tag>LocalData.getSystemToken()</el-tag>
|
|
|
|
|
|
|
|
来获取系统层的Token来操作系统。
|
|
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
|
|
|
</el-card>
|
|
|
|
</el-card>
|
|
|
|
|
|
|
|
|
|
|
@ -853,7 +889,8 @@
|
|
|
|
<h3>5、Token配置</h3>
|
|
|
|
<h3>5、Token配置</h3>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<p>Springboot环境配置文件<b>application-*</b>中配置了系统中需要验证权限和不需要验证的url。而需要验证权限的URl会在<el-tag>SecurityConfig.getAuthorization()</el-tag>
|
|
|
|
<p>Springboot环境配置文件<b>application-*</b>中配置了系统中需要验证权限和不需要验证的url。而需要验证权限的URl会在
|
|
|
|
|
|
|
|
<el-tag>SecurityConfig.getAuthorization()</el-tag>
|
|
|
|
方法中通过Parameter或Cookies中获取当前访问对象的登录信息,从而为当前访问对象组装Token对象。
|
|
|
|
方法中通过Parameter或Cookies中获取当前访问对象的登录信息,从而为当前访问对象组装Token对象。
|
|
|
|
|
|
|
|
|
|
|
|
</p>
|
|
|
|
</p>
|
|
|
@ -885,7 +922,7 @@
|
|
|
|
field7: '',
|
|
|
|
field7: '',
|
|
|
|
field8: '',
|
|
|
|
field8: '',
|
|
|
|
field9: [],
|
|
|
|
field9: [],
|
|
|
|
field10: ''
|
|
|
|
field10: '自定义验证示例'
|
|
|
|
},
|
|
|
|
},
|
|
|
|
address: [{
|
|
|
|
address: [{
|
|
|
|
value: '10000',
|
|
|
|
value: '10000',
|
|
|
@ -897,7 +934,8 @@
|
|
|
|
value: '11100',
|
|
|
|
value: '11100',
|
|
|
|
label: '南京西路',
|
|
|
|
label: '南京西路',
|
|
|
|
}]
|
|
|
|
}]
|
|
|
|
}]}
|
|
|
|
}]
|
|
|
|
|
|
|
|
}
|
|
|
|
],
|
|
|
|
],
|
|
|
|
tableData: [{
|
|
|
|
tableData: [{
|
|
|
|
date: '2016-05-03',
|
|
|
|
date: '2016-05-03',
|
|
|
@ -940,9 +978,17 @@
|
|
|
|
field9: [
|
|
|
|
field9: [
|
|
|
|
{required: true, message: '请填写地址', trigger: 'blur'}
|
|
|
|
{required: true, message: '请填写地址', trigger: 'blur'}
|
|
|
|
],
|
|
|
|
],
|
|
|
|
field10: [
|
|
|
|
field10: [{
|
|
|
|
{required: true, message: '请填写活动形式', trigger: 'blur'}
|
|
|
|
validator: function (rule, value, callback) {
|
|
|
|
]
|
|
|
|
if (value === '') {
|
|
|
|
|
|
|
|
callback(new Error('请填写活动形式'));
|
|
|
|
|
|
|
|
} else if (value.length < 10) {
|
|
|
|
|
|
|
|
callback(new Error('内容太短!'));
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
callback();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}, trigger: 'blur'
|
|
|
|
|
|
|
|
}]
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
dialogVisible: false
|
|
|
|
dialogVisible: false
|
|
|
|