Merge branch 'master' of https://gitee.com/y_project/RuoYi-Vue
Conflicts: ruoyi-ui/src/assets/styles/ruoyi.scss ruoyi-ui/src/components/HeaderSearch/index.vue ruoyi-ui/src/components/IconSelect/index.vue ruoyi-ui/src/permission.js ruoyi-ui/src/views/monitor/job/index.vue ruoyi-ui/src/views/system/user/index.vue ruoyi/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java ruoyi/src/main/java/com/ruoyi/framework/web/domain/BaseEntity.java ruoyi/src/main/java/com/ruoyi/project/system/controller/SysPostController.java ruoyi/src/main/resources/mybatis/system/SysDeptMapper.xml ruoyi/src/main/resources/mybatis/system/SysDictDataMapper.xml ruoyi/src/main/resources/mybatis/system/SysRoleMapper.xml ruoyi/src/main/resources/mybatis/system/SysUserMapper.xml ruoyi/src/main/resources/vm/vue/index.vue.vm ruoyi/src/main/resources/vm/xml/mapper.xml.vm
This commit is contained in:
commit
6bb7db31aa
|
@ -57,13 +57,17 @@
|
||||||
margin-top: 6vh !important;
|
margin-top: 6vh !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-table .el-table__header-wrapper th {
|
.el-table {
|
||||||
|
.el-table__header-wrapper, .el-table__fixed-header-wrapper {
|
||||||
|
th {
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
background-color: #f8f8f9;
|
background-color: #f8f8f9;
|
||||||
color: #515a6e;
|
color: #515a6e;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** 表单布局 **/
|
/** 表单布局 **/
|
||||||
.form-header {
|
.form-header {
|
||||||
|
|
|
@ -70,7 +70,12 @@ export default {
|
||||||
this.show = false
|
this.show = false
|
||||||
},
|
},
|
||||||
change(val) {
|
change(val) {
|
||||||
|
if(this.ishttp(val.path)) {
|
||||||
|
// http(s):// 路径新窗口打开
|
||||||
|
window.open(val.path, "_blank");
|
||||||
|
} else {
|
||||||
this.$router.push(val.path)
|
this.$router.push(val.path)
|
||||||
|
}
|
||||||
this.search = ''
|
this.search = ''
|
||||||
this.options = []
|
this.options = []
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
|
@ -104,7 +109,7 @@ export default {
|
||||||
if (router.hidden) { continue }
|
if (router.hidden) { continue }
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
path: path.resolve(basePath, router.path),
|
path: !this.ishttp(router.path) ? path.resolve(basePath, router.path) : router.path,
|
||||||
title: [...prefixTitle]
|
title: [...prefixTitle]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,6 +139,9 @@ export default {
|
||||||
} else {
|
} else {
|
||||||
this.options = []
|
this.options = []
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
ishttp(url) {
|
||||||
|
return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,10 +25,9 @@ export default {
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
filterIcons() {
|
filterIcons() {
|
||||||
|
this.iconList = icons
|
||||||
if (this.name) {
|
if (this.name) {
|
||||||
this.iconList = this.iconList.filter(item => item.includes(this.name))
|
this.iconList = this.iconList.filter(item => item.includes(this.name))
|
||||||
} else {
|
|
||||||
this.iconList = icons
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
selectedIcon(name) {
|
selectedIcon(name) {
|
||||||
|
|
|
@ -53,7 +53,7 @@ router.beforeEach((to, from, next) => {
|
||||||
// 在免登录白名单,直接进入
|
// 在免登录白名单,直接进入
|
||||||
next()
|
next()
|
||||||
} else {
|
} else {
|
||||||
next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页
|
next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
|
||||||
NProgress.done()
|
NProgress.done()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -133,7 +133,7 @@
|
||||||
|
|
||||||
<!-- 添加或修改定时任务对话框 -->
|
<!-- 添加或修改定时任务对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="120px">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="任务名称" prop="jobName">
|
<el-form-item label="任务名称" prop="jobName">
|
||||||
|
|
|
@ -208,7 +208,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="归属部门" prop="deptId">
|
<el-form-item label="归属部门" prop="deptId">
|
||||||
<treeselect v-model="form.deptId" :options="deptOptions" placeholder="请选择归属部门" />
|
<treeselect v-model="form.deptId" :options="deptOptions" :disable-branch-nodes="true" :show-count="true" placeholder="请选择归属部门" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
|
|
|
@ -52,6 +52,11 @@ public class DataScopeAspect
|
||||||
*/
|
*/
|
||||||
public static final String DATA_SCOPE_SELF = "5";
|
public static final String DATA_SCOPE_SELF = "5";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据权限过滤关键字
|
||||||
|
*/
|
||||||
|
public static final String DATA_SCOPE = "dataScope";
|
||||||
|
|
||||||
// 配置织入点
|
// 配置织入点
|
||||||
@Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.DataScope)")
|
@Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.DataScope)")
|
||||||
public void dataScopePointCut()
|
public void dataScopePointCut()
|
||||||
|
@ -138,7 +143,7 @@ public class DataScopeAspect
|
||||||
if (StringUtils.isNotBlank(sqlString.toString()))
|
if (StringUtils.isNotBlank(sqlString.toString()))
|
||||||
{
|
{
|
||||||
BaseEntity baseEntity = (BaseEntity) joinPoint.getArgs()[0];
|
BaseEntity baseEntity = (BaseEntity) joinPoint.getArgs()[0];
|
||||||
baseEntity.setDataScope(" AND (" + sqlString.substring(4) + ")");
|
baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,9 +36,6 @@ public class BaseEntity implements Serializable
|
||||||
/** 备注 */
|
/** 备注 */
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
/** 数据权限 */
|
|
||||||
private String dataScope;
|
|
||||||
|
|
||||||
/** 开始时间 */
|
/** 开始时间 */
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
private String beginTime;
|
private String beginTime;
|
||||||
|
@ -110,16 +107,6 @@ public class BaseEntity implements Serializable
|
||||||
this.remark = remark;
|
this.remark = remark;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getDataScope()
|
|
||||||
{
|
|
||||||
return dataScope;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDataScope(String dataScope)
|
|
||||||
{
|
|
||||||
this.dataScope = dataScope;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getBeginTime()
|
public String getBeginTime()
|
||||||
{
|
{
|
||||||
return beginTime;
|
return beginTime;
|
||||||
|
|
|
@ -48,7 +48,7 @@ public class SysPostController extends BaseController
|
||||||
}
|
}
|
||||||
|
|
||||||
@Log(title = "岗位管理", businessType = BusinessType.EXPORT)
|
@Log(title = "岗位管理", businessType = BusinessType.EXPORT)
|
||||||
@PreAuthorize("@ss.hasPermi('system:config:export')")
|
@PreAuthorize("@ss.hasPermi('system:post:export')")
|
||||||
@GetMapping("/export")
|
@GetMapping("/export")
|
||||||
public AjaxResult export(SysPost post)
|
public AjaxResult export(SysPost post)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
AND status = #{status}
|
AND status = #{status}
|
||||||
</if>
|
</if>
|
||||||
<!-- 数据范围过滤 -->
|
<!-- 数据范围过滤 -->
|
||||||
${dataScope}
|
${params.dataScope}
|
||||||
order by d.parent_id, d.order_num
|
order by d.parent_id, d.order_num
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
AND status = #{status}
|
AND status = #{status}
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
|
order by dict_sort asc
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectDictDataByType" parameterType="SysDictData" resultMap="SysDictDataResult">
|
<select id="selectDictDataByType" parameterType="SysDictData" resultMap="SysDictDataResult">
|
||||||
|
@ -73,7 +74,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<update id="updateDictData" parameterType="SysDictData">
|
<update id="updateDictData" parameterType="SysDictData">
|
||||||
update sys_dict_data
|
update sys_dict_data
|
||||||
<set>
|
<set>
|
||||||
<if test="dictSort != null and dictSort != ''">dict_sort = #{dictSort},</if>
|
<if test="dictSort != null">dict_sort = #{dictSort},</if>
|
||||||
<if test="dictLabel != null and dictLabel != ''">dict_label = #{dictLabel},</if>
|
<if test="dictLabel != null and dictLabel != ''">dict_label = #{dictLabel},</if>
|
||||||
<if test="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if>
|
<if test="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if>
|
||||||
<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
|
<if test="dictType != null and dictType != ''">dict_type = #{dictType},</if>
|
||||||
|
@ -94,7 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
|
||||||
<insert id="insertDictData" parameterType="SysDictData">
|
<insert id="insertDictData" parameterType="SysDictData">
|
||||||
insert into sys_dict_data(
|
insert into sys_dict_data(
|
||||||
<if test="dictSort != null and dictSort != ''">dict_sort,</if>
|
<if test="dictSort != null">dict_sort,</if>
|
||||||
<if test="dictLabel != null and dictLabel != ''">dict_label,</if>
|
<if test="dictLabel != null and dictLabel != ''">dict_label,</if>
|
||||||
<if test="dictValue != null and dictValue != ''">dict_value,</if>
|
<if test="dictValue != null and dictValue != ''">dict_value,</if>
|
||||||
<if test="dictType != null and dictType != ''">dict_type,</if>
|
<if test="dictType != null and dictType != ''">dict_type,</if>
|
||||||
|
@ -106,7 +107,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
<if test="createBy != null and createBy != ''">create_by,</if>
|
||||||
create_time
|
create_time
|
||||||
)values(
|
)values(
|
||||||
<if test="dictSort != null and dictSort != ''">#{dictSort},</if>
|
<if test="dictSort != null">#{dictSort},</if>
|
||||||
<if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
|
<if test="dictLabel != null and dictLabel != ''">#{dictLabel},</if>
|
||||||
<if test="dictValue != null and dictValue != ''">#{dictValue},</if>
|
<if test="dictValue != null and dictValue != ''">#{dictValue},</if>
|
||||||
<if test="dictType != null and dictType != ''">#{dictType},</if>
|
<if test="dictType != null and dictType != ''">#{dictType},</if>
|
||||||
|
|
|
@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
and date_format(r.create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
|
and date_format(r.create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d')
|
||||||
</if>
|
</if>
|
||||||
<!-- 数据范围过滤 -->
|
<!-- 数据范围过滤 -->
|
||||||
${dataScope}
|
${params.dataScope}
|
||||||
order by r.role_sort
|
order by r.role_sort
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET (#{deptId},ancestors) ))
|
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET (#{deptId},ancestors) ))
|
||||||
</if>
|
</if>
|
||||||
<!-- 数据范围过滤 -->
|
<!-- 数据范围过滤 -->
|
||||||
${dataScope}
|
${params.dataScope}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
|
<select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
v-for="dict in ${field}Options"
|
v-for="dict in ${field}Options"
|
||||||
:key="dict.dictValue"
|
:key="dict.dictValue"
|
||||||
:label="dict.dictLabel"
|
:label="dict.dictLabel"
|
||||||
#if($column.javaType == "Integer"):value="parseInt(dict.dictValue)"#else:value="dict.dictValue"#end
|
#if($column.javaType == "Integer" || $column.javaType == "Long"):value="parseInt(dict.dictValue)"#else:value="dict.dictValue"#end
|
||||||
|
|
||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
@ -163,7 +163,7 @@
|
||||||
<el-radio
|
<el-radio
|
||||||
v-for="dict in ${field}Options"
|
v-for="dict in ${field}Options"
|
||||||
:key="dict.dictValue"
|
:key="dict.dictValue"
|
||||||
#if($column.javaType == "Integer"):label="parseInt(dict.dictValue)"#else:label="dict.dictValue"#end
|
#if($column.javaType == "Integer" || $column.javaType == "Long"):label="parseInt(dict.dictValue)"#else:label="dict.dictValue"#end
|
||||||
|
|
||||||
>{{dict.dictLabel}}</el-radio>
|
>{{dict.dictLabel}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
|
@ -174,7 +174,7 @@
|
||||||
v-for="dict in ${field}Options"
|
v-for="dict in ${field}Options"
|
||||||
:key="dict.dictValue"
|
:key="dict.dictValue"
|
||||||
:label="dict.dictLabel"
|
:label="dict.dictLabel"
|
||||||
#if($column.javaType == "Integer"):value="parseInt(dict.dictValue)"#else:value="dict.dictValue"#end
|
#if($column.javaType == "Integer" || $column.javaType == "Long"):value="parseInt(dict.dictValue)"#else:value="dict.dictValue"#end
|
||||||
|
|
||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
@ -191,7 +191,7 @@
|
||||||
<el-radio
|
<el-radio
|
||||||
v-for="dict in ${field}Options"
|
v-for="dict in ${field}Options"
|
||||||
:key="dict.dictValue"
|
:key="dict.dictValue"
|
||||||
#if($column.javaType == "Integer"):label="parseInt(dict.dictValue)"#else:label="dict.dictValue"#end
|
#if($column.javaType == "Integer" || $column.javaType == "Long"):label="parseInt(dict.dictValue)"#else:label="dict.dictValue"#end
|
||||||
|
|
||||||
>{{dict.dictLabel}}</el-radio>
|
>{{dict.dictLabel}}</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
Loading…
Reference in New Issue