Merge branch 'dev' of github.com:dataease/dataease into dev
This commit is contained in:
commit
4ad858d5dc
@ -4,6 +4,7 @@ import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import io.dataease.commons.utils.PageUtils;
|
||||
import io.dataease.commons.utils.Pager;
|
||||
import io.dataease.i18n.Translator;
|
||||
import io.dataease.plugins.common.entity.XpackConditionEntity;
|
||||
import io.dataease.plugins.common.entity.XpackGridRequest;
|
||||
import io.dataease.plugins.config.SpringContextUtil;
|
||||
@ -11,6 +12,7 @@ import io.dataease.plugins.xpack.auth.dto.request.DataSetRowPermissionsDTO;
|
||||
import io.dataease.plugins.xpack.auth.dto.request.DatasetRowPermissions;
|
||||
import io.dataease.plugins.xpack.auth.service.RowPermissionService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@ -24,6 +26,13 @@ public class RowPermissionsController {
|
||||
@PostMapping("save")
|
||||
public void save(@RequestBody DatasetRowPermissions datasetRowPermissions) throws Exception {
|
||||
RowPermissionService rowPermissionService = SpringContextUtil.getBean(RowPermissionService.class);
|
||||
DataSetRowPermissionsDTO request = new DataSetRowPermissionsDTO();
|
||||
request.setAuthTargetType(datasetRowPermissions.getAuthTargetType());
|
||||
request.setAuthTargetId(datasetRowPermissions.getAuthTargetId());
|
||||
request.setDatasetFieldId(datasetRowPermissions.getDatasetFieldId());
|
||||
if(!CollectionUtils.isEmpty(rowPermissionService.searchRowPermissions(request))){
|
||||
throw new Exception(Translator.get("i18n_rp_exist"));
|
||||
}
|
||||
rowPermissionService.save(datasetRowPermissions);
|
||||
}
|
||||
|
||||
|
||||
@ -504,6 +504,9 @@ public class DataSetTableService {
|
||||
List<ChartFieldCustomFilterDTO> customFilter = new ArrayList<>();
|
||||
for (DatasetRowPermissions datasetRowPermissions : rowPermissions(datasetTable.getId(), user)) {
|
||||
ChartFieldCustomFilterDTO dto = new ChartFieldCustomFilterDTO();
|
||||
if(StringUtils.isEmpty(datasetRowPermissions.getDatasetFieldId())){
|
||||
continue;
|
||||
}
|
||||
DatasetTableField field = getFieldById(fields, datasetRowPermissions.getDatasetFieldId());
|
||||
if (field == null) {
|
||||
continue;
|
||||
@ -512,6 +515,9 @@ public class DataSetTableService {
|
||||
dto.setId(field.getId());
|
||||
dto.setFilterType(datasetRowPermissions.getFilterType());
|
||||
if (datasetRowPermissions.getFilterType().equalsIgnoreCase("logic")) {
|
||||
if(StringUtils.isEmpty(datasetRowPermissions.getFilter())){
|
||||
continue;
|
||||
}
|
||||
List<ChartCustomFilterItemDTO> lists = JSONObject.parseArray(datasetRowPermissions.getFilter(), ChartCustomFilterItemDTO.class);
|
||||
lists.forEach(chartCustomFilterDTO -> {
|
||||
chartCustomFilterDTO.setFieldId(field.getId());
|
||||
@ -520,6 +526,9 @@ public class DataSetTableService {
|
||||
dto.setLogic(datasetRowPermissions.getLogic());
|
||||
customFilter.add(dto);
|
||||
} else {
|
||||
if(StringUtils.isEmpty(datasetRowPermissions.getEnumCheckField())){
|
||||
continue;
|
||||
}
|
||||
dto.setEnumCheckField(Arrays.asList(datasetRowPermissions.getEnumCheckField().split(",").clone()));
|
||||
customFilter.add(dto);
|
||||
}
|
||||
|
||||
@ -296,4 +296,5 @@ i18n_sql_error=SQL Error:
|
||||
i18n_invalid_ds=Invalid Datasource
|
||||
任务管理=Task Manager
|
||||
数据同步=Data Sync
|
||||
定时报告=Regular report
|
||||
定时报告=Regular report
|
||||
i18n_rp_exist=Row permission of the same type already exists
|
||||
@ -295,4 +295,5 @@ i18n_sql_error=SQL 错误:
|
||||
i18n_invalid_ds=无效数据源
|
||||
任务管理=任务管理
|
||||
数据同步=数据同步
|
||||
定时报告=定时报告
|
||||
定时报告=定时报告
|
||||
i18n_rp_exist=已有同类型的行权限存在
|
||||
@ -298,4 +298,5 @@ i18n_sql_error=SQL 錯誤:
|
||||
i18n_invalid_ds=無效數據源
|
||||
任务管理=任務管理
|
||||
数据同步=數據同步
|
||||
定时报告=定時報告
|
||||
定时报告=定時報告
|
||||
i18n_rp_exist=已有同類型餓行權限存在
|
||||
@ -3,19 +3,34 @@ import store from './store'
|
||||
// import { Message } from 'element-ui'
|
||||
import NProgress from 'nprogress' // progress bar
|
||||
import 'nprogress/nprogress.css' // progress bar style
|
||||
import { getToken } from '@/utils/auth' // get token from cookie
|
||||
import {
|
||||
getToken
|
||||
} from '@/utils/auth' // get token from cookie
|
||||
import getPageTitle from '@/utils/get-page-title'
|
||||
import { buildMenus } from '@/api/system/menu'
|
||||
import { filterAsyncRouter } from '@/store/modules/permission'
|
||||
import {
|
||||
buildMenus
|
||||
} from '@/api/system/menu'
|
||||
import {
|
||||
filterAsyncRouter
|
||||
} from '@/store/modules/permission'
|
||||
import {
|
||||
isMobile
|
||||
} from '@/utils/index'
|
||||
// import bus from './utils/bus'
|
||||
|
||||
NProgress.configure({ showSpinner: false }) // NProgress Configuration
|
||||
NProgress.configure({
|
||||
showSpinner: false
|
||||
}) // NProgress Configuration
|
||||
|
||||
const whiteList = ['/login', '/401', '/404', '/delink', '/nolic'] // no redirect whitelist
|
||||
|
||||
router.beforeEach(async(to, from, next) => {
|
||||
// start progress bar
|
||||
NProgress.start()
|
||||
if (isMobile()) {
|
||||
window.location.href = window.origin + '/app.html'
|
||||
NProgress.done()
|
||||
}
|
||||
|
||||
// set page title
|
||||
document.title = getPageTitle(to.meta.title)
|
||||
@ -25,7 +40,9 @@ router.beforeEach(async(to, from, next) => {
|
||||
if (hasToken) {
|
||||
if (to.path === '/login') {
|
||||
// if is logged in, redirect to the home page
|
||||
next({ path: '/' })
|
||||
next({
|
||||
path: '/'
|
||||
})
|
||||
NProgress.done()
|
||||
} else {
|
||||
const hasGetUserInfo = store.getters.name
|
||||
@ -77,11 +94,18 @@ export const loadMenus = (next, to) => {
|
||||
const datas = res.data
|
||||
const filterDatas = filterRouter(datas)
|
||||
const asyncRouter = filterAsyncRouter(filterDatas)
|
||||
asyncRouter.push({ path: '*', redirect: '/404', hidden: true })
|
||||
asyncRouter.push({
|
||||
path: '*',
|
||||
redirect: '/404',
|
||||
hidden: true
|
||||
})
|
||||
store.dispatch('permission/GenerateRoutes', asyncRouter).then(() => { // 存储路由
|
||||
router.addRoutes(asyncRouter)
|
||||
if (pathValid(to.path, asyncRouter)) {
|
||||
next({ ...to, replace: true })
|
||||
next({
|
||||
...to,
|
||||
replace: true
|
||||
})
|
||||
} else {
|
||||
next('/')
|
||||
}
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
|
||||
import Cookies from 'js-cookie'
|
||||
export function timeSection(date, type) {
|
||||
if (!date) {
|
||||
@ -98,7 +97,9 @@ export function parseTime(time, cFormat) {
|
||||
const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
|
||||
const value = formatObj[key]
|
||||
// Note: getDay() returns 0 on Sunday
|
||||
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
|
||||
if (key === 'a') {
|
||||
return ['日', '一', '二', '三', '四', '五', '六'][value]
|
||||
}
|
||||
return value.toString().padStart(2, '0')
|
||||
})
|
||||
return time_str
|
||||
@ -115,19 +116,19 @@ export function hasClass(ele, cls) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Add class to element
|
||||
* @param {HTMLElement} elm
|
||||
* @param {string} cls
|
||||
*/
|
||||
* Add class to element
|
||||
* @param {HTMLElement} elm
|
||||
* @param {string} cls
|
||||
*/
|
||||
export function addClass(ele, cls) {
|
||||
if (!hasClass(ele, cls)) ele.className += ' ' + cls
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove class from element
|
||||
* @param {HTMLElement} elm
|
||||
* @param {string} cls
|
||||
*/
|
||||
* Remove class from element
|
||||
* @param {HTMLElement} elm
|
||||
* @param {string} cls
|
||||
*/
|
||||
export function removeClass(ele, cls) {
|
||||
if (hasClass(ele, cls)) {
|
||||
const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)')
|
||||
@ -189,12 +190,12 @@ export function param2Obj(url) {
|
||||
}
|
||||
return JSON.parse(
|
||||
'{"' +
|
||||
decodeURIComponent(search)
|
||||
.replace(/"/g, '\\"')
|
||||
.replace(/&/g, '","')
|
||||
.replace(/=/g, '":"')
|
||||
.replace(/\+/g, ' ') +
|
||||
'"}'
|
||||
decodeURIComponent(search)
|
||||
.replace(/"/g, '\\"')
|
||||
.replace(/&/g, '","')
|
||||
.replace(/=/g, '":"')
|
||||
.replace(/\+/g, ' ') +
|
||||
'"}'
|
||||
)
|
||||
}
|
||||
|
||||
@ -216,7 +217,9 @@ export function formatCondition(param) {
|
||||
if (!param) {
|
||||
return null
|
||||
}
|
||||
const result = { conditions: [] }
|
||||
const result = {
|
||||
conditions: []
|
||||
}
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
for (const [key, value] of Object.entries(param)) {
|
||||
result.conditions.push(value)
|
||||
@ -273,13 +276,19 @@ export function getQueryVariable(variable) {
|
||||
if (!query) {
|
||||
query = Cookies.get(variable)
|
||||
}
|
||||
if (query !== undefined){
|
||||
if (query !== undefined) {
|
||||
const vars = query.split('&')
|
||||
for (var i = 0; i < vars.length; i++) {
|
||||
const pair = vars[i].split('=')
|
||||
if (pair[0] === variable) { return pair[1] }
|
||||
if (pair[0] === variable) {
|
||||
return pair[1]
|
||||
}
|
||||
}
|
||||
}
|
||||
return (false)
|
||||
}
|
||||
|
||||
export function isMobile() {
|
||||
const flag = navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)
|
||||
return flag
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user