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
| | |
| | | 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; |
| | | background-color: #f8f8f9; |
| | | color: #515a6e; |
| | | height: 40px; |
| | | font-size: 13px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** 表单布局 **/ |
| | | .form-header { |
| | |
| | | this.show = false |
| | | }, |
| | | change(val) { |
| | | if(this.ishttp(val.path)) { |
| | | // http(s):// 路径新窗口打开 |
| | | window.open(val.path, "_blank"); |
| | | } else { |
| | | this.$router.push(val.path) |
| | | } |
| | | this.search = '' |
| | | this.options = [] |
| | | this.$nextTick(() => { |
| | |
| | | if (router.hidden) { continue } |
| | | |
| | | const data = { |
| | | path: path.resolve(basePath, router.path), |
| | | path: !this.ishttp(router.path) ? path.resolve(basePath, router.path) : router.path, |
| | | title: [...prefixTitle] |
| | | } |
| | | |
| | |
| | | } else { |
| | | this.options = [] |
| | | } |
| | | }, |
| | | ishttp(url) { |
| | | return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1 |
| | | } |
| | | } |
| | | } |
| | |
| | | }, |
| | | methods: { |
| | | filterIcons() { |
| | | this.iconList = icons |
| | | if (this.name) { |
| | | this.iconList = this.iconList.filter(item => item.includes(this.name)) |
| | | } else { |
| | | this.iconList = icons |
| | | } |
| | | }, |
| | | selectedIcon(name) { |
| | |
| | | // 在免登录白名单,直接进入 |
| | | next() |
| | | } else { |
| | | next(`/login?redirect=${to.path}`) // 否则全部重定向到登录页 |
| | | next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 |
| | | NProgress.done() |
| | | } |
| | | } |
| | |
| | | |
| | | <!-- 添加或修改定时任务对话框 --> |
| | | <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-col :span="12"> |
| | | <el-form-item label="任务名称" prop="jobName"> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <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-col> |
| | | <el-col :span="12"> |
| | |
| | | */ |
| | | public static final String DATA_SCOPE_SELF = "5"; |
| | | |
| | | /** |
| | | * 数据权限过滤关键字 |
| | | */ |
| | | public static final String DATA_SCOPE = "dataScope"; |
| | | |
| | | // 配置织入点 |
| | | @Pointcut("@annotation(com.ruoyi.framework.aspectj.lang.annotation.DataScope)") |
| | | public void dataScopePointCut() |
| | |
| | | if (StringUtils.isNotBlank(sqlString.toString())) |
| | | { |
| | | BaseEntity baseEntity = (BaseEntity) joinPoint.getArgs()[0]; |
| | | baseEntity.setDataScope(" AND (" + sqlString.substring(4) + ")"); |
| | | baseEntity.getParams().put(DATA_SCOPE, " AND (" + sqlString.substring(4) + ")"); |
| | | } |
| | | } |
| | | |
| | |
| | | /** 备注 */ |
| | | private String remark; |
| | | |
| | | /** 数据权限 */ |
| | | private String dataScope; |
| | | |
| | | /** 开始时间 */ |
| | | @JsonIgnore |
| | | private String beginTime; |
| | |
| | | public void setRemark(String remark) |
| | | { |
| | | this.remark = remark; |
| | | } |
| | | |
| | | public String getDataScope() |
| | | { |
| | | return dataScope; |
| | | } |
| | | |
| | | public void setDataScope(String dataScope) |
| | | { |
| | | this.dataScope = dataScope; |
| | | } |
| | | |
| | | public String getBeginTime() |
| | |
| | | } |
| | | |
| | | @Log(title = "岗位管理", businessType = BusinessType.EXPORT) |
| | | @PreAuthorize("@ss.hasPermi('system:config:export')") |
| | | @PreAuthorize("@ss.hasPermi('system:post:export')") |
| | | @GetMapping("/export") |
| | | public AjaxResult export(SysPost post) |
| | | { |
| | |
| | | AND status = #{status} |
| | | </if> |
| | | <!-- 数据范围过滤 --> |
| | | ${dataScope} |
| | | ${params.dataScope} |
| | | order by d.parent_id, d.order_num |
| | | </select> |
| | | |
| | |
| | | AND status = #{status} |
| | | </if> |
| | | </where> |
| | | order by dict_sort asc |
| | | </select> |
| | | |
| | | <select id="selectDictDataByType" parameterType="SysDictData" resultMap="SysDictDataResult"> |
| | |
| | | <update id="updateDictData" parameterType="SysDictData"> |
| | | update sys_dict_data |
| | | <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="dictValue != null and dictValue != ''">dict_value = #{dictValue},</if> |
| | | <if test="dictType != null and dictType != ''">dict_type = #{dictType},</if> |
| | |
| | | |
| | | <insert id="insertDictData" parameterType="SysDictData"> |
| | | 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="dictValue != null and dictValue != ''">dict_value,</if> |
| | | <if test="dictType != null and dictType != ''">dict_type,</if> |
| | |
| | | <if test="createBy != null and createBy != ''">create_by,</if> |
| | | create_time |
| | | )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="dictValue != null and dictValue != ''">#{dictValue},</if> |
| | | <if test="dictType != null and dictType != ''">#{dictType},</if> |
| | |
| | | and date_format(r.create_time,'%y%m%d') <= date_format(#{endTime},'%y%m%d') |
| | | </if> |
| | | <!-- 数据范围过滤 --> |
| | | ${dataScope} |
| | | ${params.dataScope} |
| | | order by r.role_sort |
| | | </select> |
| | | |
| | |
| | | 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> |
| | | <!-- 数据范围过滤 --> |
| | | ${dataScope} |
| | | ${params.dataScope} |
| | | </select> |
| | | |
| | | <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult"> |
| | |
| | | v-for="dict in ${field}Options"
|
| | | :key="dict.dictValue"
|
| | | :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-select>
|
| | |
| | | <el-radio
|
| | | v-for="dict in ${field}Options"
|
| | | :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>
|
| | | </el-radio-group>
|
| | |
| | | v-for="dict in ${field}Options" |
| | | :key="dict.dictValue" |
| | | :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-select> |
| | |
| | | <el-radio |
| | | v-for="dict in ${field}Options" |
| | | :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> |
| | | </el-radio-group> |