Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
D
dataease
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
njgzx
dataease
Commits
bfe902d3
提交
bfe902d3
authored
6月 02, 2021
作者:
wangjiahao
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'origin/main' into main
上级
5e277bfd
d6a42110
隐藏空白字符变更
内嵌
并排
正在显示
29 个修改的文件
包含
204 行增加
和
76 行删除
+204
-76
JWTFilter.java
backend/src/main/java/io/dataease/auth/filter/JWTFilter.java
+5
-1
DorisTableUtils.java
.../main/java/io/dataease/commons/utils/DorisTableUtils.java
+1
-1
BaseGridRequest.java
...java/io/dataease/controller/sys/base/BaseGridRequest.java
+12
-3
JdbcProvider.java
...in/java/io/dataease/datasource/provider/JdbcProvider.java
+1
-1
DatasourceService.java
...ava/io/dataease/datasource/service/DatasourceService.java
+1
-1
ScheduleManager.java
.../main/java/io/dataease/job/sechedule/ScheduleManager.java
+32
-2
DataSetTableService.java
...java/io/dataease/service/dataset/DataSetTableService.java
+1
-9
PanelLinkService.java
...main/java/io/dataease/service/panel/PanelLinkService.java
+1
-1
SysUserService.java
...src/main/java/io/dataease/service/sys/SysUserService.java
+8
-8
messages_en_US.properties
backend/src/main/resources/i18n/messages_en_US.properties
+3
-0
messages_zh_CN.properties
backend/src/main/resources/i18n/messages_zh_CN.properties
+6
-3
messages_zh_TW.properties
backend/src/main/resources/i18n/messages_zh_TW.properties
+3
-0
en.js
frontend/src/lang/en.js
+8
-4
tw.js
frontend/src/lang/tw.js
+10
-6
zh.js
frontend/src/lang/zh.js
+12
-8
index.scss
frontend/src/styles/index.scss
+6
-2
topbar.scss
frontend/src/styles/topbar.scss
+4
-0
index.js
frontend/src/utils/index.js
+29
-3
message.js
frontend/src/utils/message.js
+2
-2
Group.vue
frontend/src/views/chart/group/Group.vue
+1
-0
AddDB.vue
frontend/src/views/dataset/add/AddDB.vue
+9
-2
Group.vue
frontend/src/views/dataset/group/Group.vue
+1
-0
index.vue
frontend/src/views/login/index.vue
+6
-2
index.vue
frontend/src/views/panel/edit/index.vue
+1
-1
filterDialog.vue
frontend/src/views/panel/filter/filterDialog.vue
+17
-5
index.vue
frontend/src/views/panel/filter/index.vue
+1
-1
PanelList.vue
frontend/src/views/panel/list/PanelList.vue
+1
-1
form.vue
frontend/src/views/system/datasource/form.vue
+2
-2
index.vue
frontend/src/views/system/user/index.vue
+20
-7
没有找到文件。
backend/src/main/java/io/dataease/auth/filter/JWTFilter.java
浏览文件 @
bfe902d3
...
...
@@ -7,6 +7,7 @@ import io.dataease.auth.service.AuthUserService;
import
io.dataease.auth.util.JWTUtils
;
import
io.dataease.commons.utils.CommonBeanFactory
;
import
io.dataease.commons.utils.ServletUtils
;
import
io.dataease.i18n.Translator
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.shiro.authc.AuthenticationException
;
import
org.apache.shiro.subject.Subject
;
...
...
@@ -26,7 +27,7 @@ public class JWTFilter extends BasicHttpAuthenticationFilter {
private
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
this
.
getClass
());
public
final
static
String
expireMessage
=
"
login token is expire
"
;
public
final
static
String
expireMessage
=
"
Login token is expire.
"
;
/*@Autowired
private AuthUserService authUserService;*/
...
...
@@ -102,6 +103,9 @@ public class JWTFilter extends BasicHttpAuthenticationFilter {
TokenInfo
tokenInfo
=
JWTUtils
.
tokenInfoByToken
(
token
);
AuthUserService
authUserService
=
CommonBeanFactory
.
getBean
(
AuthUserService
.
class
);
SysUserEntity
user
=
authUserService
.
getUserById
(
tokenInfo
.
getUserId
());
if
(
user
==
null
){
throw
new
Exception
(
Translator
.
get
(
"i18n_not_find_user"
));
}
String
password
=
user
.
getPassword
();
// 删除老token操作时间
...
...
backend/src/main/java/io/dataease/commons/utils/DorisTableUtils.java
浏览文件 @
bfe902d3
...
...
@@ -18,7 +18,7 @@ public class DorisTableUtils {
return
"f_"
+
Md5Utils
.
md5
(
dorisName
);
}
public
static
String
excelC
olumnName
(
String
filedName
)
{
public
static
String
c
olumnName
(
String
filedName
)
{
return
"C_"
+
Md5Utils
.
md5
(
filedName
);
}
}
backend/src/main/java/io/dataease/controller/sys/base/BaseGridRequest.java
浏览文件 @
bfe902d3
...
...
@@ -3,6 +3,7 @@ package io.dataease.controller.sys.base;
import
io.dataease.base.mapper.ext.query.GridExample
;
import
lombok.Data
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
java.io.Serializable
;
import
java.util.List
;
...
...
@@ -13,12 +14,20 @@ public class BaseGridRequest implements Serializable {
private
List
<
ConditionEntity
>
conditions
;
private
List
<
String
>
orders
;
public
GridExample
convertExample
(){
GridExample
gridExample
=
new
GridExample
();
if
(
CollectionUtils
.
isEmpty
(
conditions
))
return
gridExample
;
if
(
CollectionUtils
.
isNotEmpty
(
conditions
))
{
GridExample
.
Criteria
criteria
=
gridExample
.
createCriteria
();
conditions
.
forEach
(
criteria:
:
addCondtion
);
}
if
(
CollectionUtils
.
isNotEmpty
(
orders
)){
String
orderByClause
=
String
.
join
(
", "
,
orders
);
gridExample
.
setOrderByClause
(
orderByClause
);
}
GridExample
.
Criteria
criteria
=
gridExample
.
createCriteria
();
conditions
.
forEach
(
criteria:
:
addCondtion
);
return
gridExample
;
}
}
backend/src/main/java/io/dataease/datasource/provider/JdbcProvider.java
浏览文件 @
bfe902d3
...
...
@@ -232,7 +232,7 @@ public class JdbcProvider extends DatasourceProvider {
}
catch
(
Exception
e
)
{
throw
new
Exception
(
"ERROR: "
+
e
.
getMessage
(),
e
);
}
finally
{
con
.
close
();
if
(
con
!=
null
){
con
.
close
();}
}
}
...
...
backend/src/main/java/io/dataease/datasource/service/DatasourceService.java
浏览文件 @
bfe902d3
...
...
@@ -144,7 +144,7 @@ public class DatasourceService {
datasourceRequest
.
setDatasource
(
datasource
);
datasourceProvider
.
initDataSource
(
datasourceRequest
);
LogUtil
.
info
(
"Succsss to init datasource connection pool: "
+
datasource
.
getName
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
"Failed to init datasource connection pool: "
+
datasource
.
getName
(),
e
);
}
});
...
...
backend/src/main/java/io/dataease/job/sechedule/ScheduleManager.java
浏览文件 @
bfe902d3
...
...
@@ -2,9 +2,16 @@ package io.dataease.job.sechedule;
import
io.dataease.commons.utils.LogUtil
;
import
org.quartz.*
;
import
org.quartz.impl.triggers.CronTriggerImpl
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.text.DateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDateTime
;
import
java.time.ZoneId
;
import
java.time.ZonedDateTime
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
...
...
@@ -73,7 +80,9 @@ public class ScheduleManager {
triggerBuilder
.
withIdentity
(
triggerKey
);
triggerBuilder
.
startAt
(
startTime
);
if
(
startTime
.
before
(
new
Date
()))
{
triggerBuilder
.
startAt
(
getNTimeByCron
(
cron
));
}
if
(
endTime
!=
null
)
{
triggerBuilder
.
endAt
(
endTime
);
...
...
@@ -149,7 +158,9 @@ public class ScheduleManager {
triggerBuilder
.
withIdentity
(
triggerKey
);
// 触发器名,触发器组
triggerBuilder
.
startAt
(
startTime
);
if
(
startTime
.
before
(
new
Date
()))
{
triggerBuilder
.
startAt
(
getNTimeByCron
(
cron
));
}
if
(
endTime
!=
null
)
{
triggerBuilder
.
endAt
(
endTime
);
...
...
@@ -395,4 +406,23 @@ public class ScheduleManager {
return
returnMap
;
}
public
static
Date
getNTimeByCron
(
String
cron
)
{
try
{
CronTriggerImpl
cronTriggerImpl
=
new
CronTriggerImpl
();
cronTriggerImpl
.
setCronExpression
(
cron
);
Calendar
calendar
=
Calendar
.
getInstance
();
Date
now
=
calendar
.
getTime
();
// calendar.add(java.util.Calendar.YEAR, 1);
calendar
.
add
(
Calendar
.
MONTH
,
2
);
List
<
Date
>
dates
=
TriggerUtils
.
computeFireTimesBetween
(
cronTriggerImpl
,
null
,
now
,
calendar
.
getTime
());
SimpleDateFormat
dateFormat
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
String
nextTime
=
dateFormat
.
format
(
dates
.
get
(
0
));
Date
date
=
dateFormat
.
parse
(
nextTime
);
return
date
;
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
}
}
backend/src/main/java/io/dataease/service/dataset/DataSetTableService.java
浏览文件 @
bfe902d3
...
...
@@ -102,10 +102,6 @@ public class DataSetTableService {
datasetTable
.
setCreateBy
(
AuthUtils
.
getUser
().
getUsername
());
datasetTable
.
setCreateTime
(
System
.
currentTimeMillis
());
DataTableInfoDTO
dataTableInfoDTO
=
new
DataTableInfoDTO
();
if
(
StringUtils
.
equalsIgnoreCase
(
"db"
,
datasetTable
.
getType
()))
{
dataTableInfoDTO
.
setTable
(
datasetTable
.
getName
());
datasetTable
.
setInfo
(
new
Gson
().
toJson
(
dataTableInfoDTO
));
}
int
insert
=
datasetTableMapper
.
insert
(
datasetTable
);
// 添加表成功后,获取当前表字段和类型,抽象到dataease数据库
if
(
insert
==
1
)
{
...
...
@@ -545,11 +541,7 @@ public class DataSetTableService {
datasetTableField
.
setTableId
(
datasetTable
.
getId
());
datasetTableField
.
setOriginName
(
filed
.
getFieldName
());
datasetTableField
.
setName
(
filed
.
getRemarks
());
if
(
StringUtils
.
equalsIgnoreCase
(
datasetTable
.
getType
(),
"excel"
))
{
datasetTableField
.
setDataeaseName
(
DorisTableUtils
.
excelColumnName
(
filed
.
getFieldName
()));
}
else
{
datasetTableField
.
setDataeaseName
(
filed
.
getFieldName
());
}
datasetTableField
.
setDataeaseName
(
DorisTableUtils
.
columnName
(
filed
.
getFieldName
()));
datasetTableField
.
setType
(
filed
.
getFieldType
());
if
(
ObjectUtils
.
isEmpty
(
ds
))
{
datasetTableField
.
setDeType
(
transFieldType
(
filed
.
getFieldType
()));
...
...
backend/src/main/java/io/dataease/service/panel/PanelLinkService.java
浏览文件 @
bfe902d3
...
...
@@ -119,7 +119,7 @@ public class PanelLinkService {
public
Boolean
validateHeads
(
PanelLink
panelLink
)
throws
Exception
{
HttpServletRequest
request
=
ServletUtils
.
request
();
String
token
=
request
.
getHeader
(
"LINK-PWD-TOKEN"
);
if
(
StringUtils
.
isEmpty
(
token
))
return
false
;
if
(
StringUtils
.
isEmpty
(
token
)
||
StringUtils
.
equals
(
"undefined"
,
token
)
||
StringUtils
.
equals
(
"null"
,
token
)
)
return
false
;
boolean
verify
=
JWTUtils
.
verifyLink
(
token
,
panelLink
.
getResourceId
(),
decryptParam
(
panelLink
.
getPwd
()));
return
verify
;
}
...
...
backend/src/main/java/io/dataease/service/sys/SysUserService.java
浏览文件 @
bfe902d3
...
...
@@ -51,16 +51,16 @@ public class SysUserService {
public
List
<
SysUserGridResponse
>
query
(
BaseGridRequest
request
)
{
List
<
SysUser
>
sysUsers
=
sysUserMapper
.
selectByExample
(
new
SysUserExample
());
/*
List<SysUser> sysUsers = sysUserMapper.selectByExample(new SysUserExample());
List<SysUserGridResponse> lists = sysUsers.stream().map(ele -> {
SysUserGridResponse response = new SysUserGridResponse();
BeanUtils.copyBean(response, ele);
return response;
}).
collect
(
Collectors
.
toList
());
}).collect(Collectors.toList());
*/
GridExample
gridExample
=
request
.
convertExample
();
List
<
SysUserGridResponse
>
query
=
extSysUserMapper
.
query
(
gridExample
);
List
<
SysUserGridResponse
>
lists
=
extSysUserMapper
.
query
(
gridExample
);
lists
.
forEach
(
item
->
{
for
(
SysUserGridResponse
response
:
query
)
{
/*
for (SysUserGridResponse response : query) {
if (item.getUserId().equals(response.getUserId())) {
item.setId(response.getId());
List<SysUserRole> roles = response.getRoles();
...
...
@@ -69,10 +69,10 @@ public class SysUserService {
item.setRoleIds(roleIds);
item.setDept(response.getDept());
}
}
//
List<SysUserRole> roles = item.getRoles();
//
List<Long> roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList());
//
item.setRoleIds(roleIds);
}
*/
List
<
SysUserRole
>
roles
=
item
.
getRoles
();
List
<
Long
>
roleIds
=
roles
.
stream
().
map
(
SysUserRole:
:
getRoleId
).
collect
(
Collectors
.
toList
());
item
.
setRoleIds
(
roleIds
);
});
return
lists
;
}
...
...
backend/src/main/resources/i18n/messages_en_US.properties
浏览文件 @
bfe902d3
...
...
@@ -243,3 +243,5 @@ i18n_auth_source_be_canceled=This Auth Resource Already Be Canceled
i18n_username_exists
=
ID is already exists
i18n_ds_name_exists
=
Datasource name exists
i18n_sync_job_exists
=
There is already a synchronization task running, please try again later
i18n_datasource_check_fail
=
Invalid,please check config
i18n_not_find_user
=
Can not find user.
\ No newline at end of file
backend/src/main/resources/i18n/messages_zh_CN.properties
浏览文件 @
bfe902d3
...
...
@@ -232,8 +232,8 @@ i18n_template_system=系统模板
i18n_template_self
=
用户模板
i18n_name_cant_repeat_same_group
=
同一分组下名称不能重复
i18n_chart_count
=
记录数*
i18n_excel_have_merge_region
=
Excel存在合并单元格
i18n_cron_expression_error
=
Cron表达式校验错误
i18n_excel_have_merge_region
=
Excel
存在合并单元格
i18n_cron_expression_error
=
Cron
表达式校验错误
i18n_same_folder_can_not_repeat
=
相同的目录下名称不能重复
i18n_default_panel
=
默认仪表板
i18n_panel_list
=
仪表板
...
...
@@ -242,6 +242,8 @@ i18n_union_already_exists=关联关系已存在
i18n_union_field_exists
=
两个数据集之间关联不能出现多次相同字段
i18n_cron_time_error
=
开始时间不能大于结束时间
i18n_auth_source_be_canceled
=
当前资源授权权限已经被取消
i18n_username_exists
=
用户
ID
已存在
i18n_username_exists
=
用户
ID
已存在
i18n_ds_name_exists
=
数据源名称已存在
i18n_sync_job_exists
=
已经有同步任务在运行,稍后重试
i18n_datasource_check_fail
=
校验失败,请检查配置信息
i18n_not_find_user
=
未找到用户
\ No newline at end of file
backend/src/main/resources/i18n/messages_zh_TW.properties
浏览文件 @
bfe902d3
...
...
@@ -245,3 +245,5 @@ i18n_auth_source_be_canceled=當前資源授權權限已經被取消
i18n_username_exists
=
用戶ID已存在
i18n_ds_name_exists
=
數據源名稱已存在
i18n_sync_job_exists
=
已經有同步任務在運行,稍後重試
i18n_datasource_check_fail
=
校驗失敗,請檢查配置信息
i18n_not_find_user
=
未找到用戶
\ No newline at end of file
frontend/src/lang/en.js
浏览文件 @
bfe902d3
...
...
@@ -268,6 +268,10 @@ export default {
not_equals
:
'Not equals'
,
between
:
'between'
,
current_user
:
'Current User'
},
message_box
:
{
alert
:
'Alert'
,
confirm
:
'Confirm'
}
},
monitor
:
'Monitor'
,
...
...
@@ -482,13 +486,12 @@ export default {
create
:
'Create'
,
modify
:
'Modify'
,
delete
:
'Delete'
,
delete_confirm
:
'
删除该组织会关联删除该组织下的所有资源(如:相关工作空间,项目,测试用例等),确定要删除吗
?'
,
delete_confirm
:
'
Deleting the organization will be associated with deleting the subordinate organization, Are you sure you want to delete it
?'
,
input_name
:
'Please enter name'
,
select_organization
:
'Please select organization'
,
search_by_name
:
'Search by name'
,
special_characters_are_not_supported
:
'Format error (special characters are not supported and cannot start and end with
\'
-
\'
)'
,
select
:
'Select organization'
,
delete_warning
:
'删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?'
select
:
'Select organization'
},
system_parameter_setting
:
{
mailbox_service_settings
:
'Mail Settings'
,
...
...
@@ -986,7 +989,8 @@ export default {
loginLogo
:
'Login page header logo'
,
loginImage
:
'Picture on the right side of the login page'
,
loginTitle
:
'Login page title'
,
title
:
'System name'
title
:
'System name'
,
advice_size
:
'Advice picture size'
},
auth
:
{
authConfig
:
'Auth Config'
,
...
...
frontend/src/lang/tw.js
浏览文件 @
bfe902d3
...
...
@@ -83,8 +83,8 @@ export default {
thirdpartyTips
:
'本地不能模拟,请结合自己业务进行模拟!!!'
,
expires
:
'登陸信息过期,请重新登陸'
,
tokenError
:
'信息错误,请重新登陸'
,
username_error
:
'請輸入正確的ID'
,
password_error
:
'密碼不小於
8
位'
username_error
:
'請輸入正確的
ID'
,
password_error
:
'密碼不小於
8
位'
},
commons
:
{
close
:
'关闭'
,
...
...
@@ -268,6 +268,10 @@ export default {
not_equals
:
'不等與'
,
between
:
'之间'
,
current_user
:
'是当前用戶'
},
message_box
:
{
alert
:
'警告'
,
confirm
:
'確認'
}
},
monitor
:
'监控'
,
...
...
@@ -482,13 +486,12 @@ export default {
create
:
'創建組織'
,
modify
:
'修改組織'
,
delete
:
'删除組織'
,
delete_confirm
:
'删除該組織會關聯刪除該組織的
所有資源
,確定要删除吗?'
,
delete_confirm
:
'删除該組織會關聯刪除該組織的
下屬組織
,確定要删除吗?'
,
input_name
:
'請輸入組織名稱'
,
select_organization
:
'请選擇組織'
,
search_by_name
:
'根据名稱搜索'
,
special_characters_are_not_supported
:
'格式錯誤(不支持特殊字符,且不能以
\'
-
\'
開頭結尾)'
,
select
:
'選擇組織'
,
delete_warning
:
'確定要删除組織吗?'
select
:
'選擇組織'
},
system_parameter_setting
:
{
mailbox_service_settings
:
'郵件設置'
,
...
...
@@ -986,7 +989,8 @@ export default {
loginLogo
:
'登陸頁面頭部 Logo'
,
loginImage
:
'登陸頁面右側圖片'
,
loginTitle
:
'登陸頁面標題'
,
title
:
'系統名稱'
title
:
'系統名稱'
,
advice_size
:
'建議圖片大小'
},
auth
:
{
authConfig
:
'權限配置'
,
...
...
frontend/src/lang/zh.js
浏览文件 @
bfe902d3
...
...
@@ -81,10 +81,10 @@ export default {
any
:
'随便填'
,
thirdparty
:
'第三方登录'
,
thirdpartyTips
:
'本地不能模拟,请结合自己业务进行模拟!!!'
,
expires
:
'登录
token
过期,请重新登录'
,
tokenError
:
'
token
错误,请重新登录'
,
username_error
:
'请输入正确的ID'
,
password_error
:
'密码不小于
8
位'
expires
:
'登录
信息
过期,请重新登录'
,
tokenError
:
'
登陆信息
错误,请重新登录'
,
username_error
:
'请输入正确的
ID'
,
password_error
:
'密码不小于
8
位'
},
commons
:
{
close
:
'关闭'
,
...
...
@@ -268,6 +268,10 @@ export default {
not_equals
:
'不等于'
,
between
:
'之间'
,
current_user
:
'是当前用户'
},
message_box
:
{
alert
:
'警告'
,
confirm
:
'确认'
}
},
monitor
:
'监控'
,
...
...
@@ -482,13 +486,12 @@ export default {
create
:
'创建组织'
,
modify
:
'修改组织'
,
delete
:
'删除组织'
,
delete_confirm
:
'删除该组织会关联删除该组织
下的所有资源(如:相关工作空间,项目,测试用例等)
,确定要删除吗?'
,
delete_confirm
:
'删除该组织会关联删除该组织
的下属组织
,确定要删除吗?'
,
input_name
:
'请输入组织名称'
,
select_organization
:
'请选择组织'
,
search_by_name
:
'根据名称搜索'
,
special_characters_are_not_supported
:
'格式错误(不支持特殊字符,且不能以
\'
-
\'
开头结尾)'
,
select
:
'选择组织'
,
delete_warning
:
'删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?'
select
:
'选择组织'
},
system_parameter_setting
:
{
mailbox_service_settings
:
'邮件设置'
,
...
...
@@ -986,7 +989,8 @@ export default {
loginLogo
:
'登录页面头部logo'
,
loginImage
:
'登录页面右侧图片'
,
loginTitle
:
'登录页面标题'
,
title
:
'系统名称'
title
:
'系统名称'
,
advice_size
:
'建议图片大小'
},
auth
:
{
authConfig
:
'权限配置'
,
...
...
frontend/src/styles/index.scss
浏览文件 @
bfe902d3
...
...
@@ -90,11 +90,15 @@ div:focus {
width
:
50%
!
important
;
.el-dialog__header
{
background-color
:
#f4f4f5
;
//
background-color: #f4f4f5;
padding
:
10px
20px
!
important
;
.el-dialog__headerbtn
{
top
:
15px
!
important
;
}
}
.el-dialog__body
{
padding
:
1px
20
px
!
important
;
padding
:
1px
15
px
!
important
;
}
}
...
...
frontend/src/styles/topbar.scss
浏览文件 @
bfe902d3
...
...
@@ -19,6 +19,10 @@
// color: rgb(191, 203, 217);
color
:
rgba
(
255
,
255
,
255
,
0
.87
);
float
:
left
;
img
{
width
:
auto
;
max-height
:
45px
;
}
}
.el-menu
{
float
:
left
;
...
...
frontend/src/utils/index.js
浏览文件 @
bfe902d3
/**
* Created by PanJiaChen on 16/11/18.
*/
export
function
timeSection
(
date
,
type
)
{
if
(
!
date
)
{
return
null
...
...
@@ -221,6 +218,35 @@ export function formatCondition(param) {
}
return
result
}
/**
* 驼峰转下划线
* @param {*} name
* @returns
*/
export
function
toLine
(
name
)
{
return
name
.
replace
(
/
([
A-Z
])
/g
,
'_$1'
).
toLowerCase
()
}
export
function
addOrder
(
order
,
orders
)
{
order
.
field
=
toLine
(
order
.
field
)
if
(
order
.
value
.
startsWith
(
'desc'
))
{
order
.
value
=
'desc'
}
else
{
order
.
value
=
'asc'
}
orders
=
orders
||
[]
for
(
let
index
=
0
;
index
<
orders
.
length
;
index
++
)
{
const
element
=
orders
[
index
]
if
(
order
.
field
===
element
.
field
)
{
orders
[
index
]
=
order
return
}
}
orders
.
push
(
order
)
}
export
function
formatOrders
(
orders
)
{
return
orders
.
map
(
order
=>
order
.
field
+
' '
+
order
.
value
)
}
export
function
formatQuickCondition
(
param
,
quickField
)
{
let
quickObj
=
null
...
...
frontend/src/utils/message.js
浏览文件 @
bfe902d3
import
{
MessageBox
,
Message
}
from
'element-ui'
import
i18n
from
'@/lang'
export
const
$alert
=
(
message
,
callback
,
options
)
=>
{
const
title
=
i18n
.
t
(
'common.message_box.alert'
)
const
title
=
i18n
.
t
(
'common
s
.message_box.alert'
)
MessageBox
.
alert
(
message
,
title
,
options
).
then
(()
=>
{
callback
()
})
...
...
@@ -14,7 +14,7 @@ export const $confirm = (message, callback, options = {}) => {
type
:
'warning'
,
...
options
}
const
title
=
i18n
.
t
(
'common.message_box.confirm'
)
const
title
=
i18n
.
t
(
'common
s
.message_box.confirm'
)
MessageBox
.
confirm
(
message
,
title
,
defaultOptions
).
then
(()
=>
{
callback
()
})
...
...
frontend/src/views/chart/group/Group.vue
浏览文件 @
bfe902d3
...
...
@@ -445,6 +445,7 @@ export default {
},
close
()
{
this
.
$refs
[
'groupForm'
].
resetFields
()
this
.
editGroup
=
false
this
.
groupForm
=
{
name
:
''
,
...
...
frontend/src/views/dataset/add/AddDB.vue
浏览文件 @
bfe902d3
...
...
@@ -120,17 +120,24 @@ export default {
save
()
{
// console.log(this.checkTableList);
// console.log(this.scene);
let
ds
=
{}
this
.
options
.
forEach
(
ele
=>
{
if
(
ele
.
id
===
this
.
dataSource
)
{
ds
=
ele
}
})
const
sceneId
=
this
.
param
.
id
const
dataSourceId
=
this
.
dataSource
const
tables
=
[]
const
mode
=
this
.
mode
this
.
checkTableList
.
forEach
(
function
(
name
)
{
tables
.
push
({
name
:
name
,
name
:
ds
.
name
+
'_'
+
name
,
sceneId
:
sceneId
,
dataSourceId
:
dataSourceId
,
type
:
'db'
,
mode
:
parseInt
(
mode
)
mode
:
parseInt
(
mode
),
info
:
JSON
.
stringify
({
table
:
name
})
})
})
post
(
'/dataset/table/batchAdd'
,
tables
).
then
(
response
=>
{
...
...
frontend/src/views/dataset/group/Group.vue
浏览文件 @
bfe902d3
...
...
@@ -458,6 +458,7 @@ export default {
},
close
()
{
this
.
$refs
[
'groupForm'
].
resetFields
()
this
.
editGroup
=
false
this
.
groupForm
=
{
name
:
''
,
...
...
frontend/src/views/login/index.vue
浏览文件 @
bfe902d3
...
...
@@ -180,9 +180,13 @@ export default {
margin-top
:
20px
;
}
img
{
width
:
240px
;
/*width: 240px;*/
width
:
auto
;
max-height
:
60px
;
@media
only
screen
and
(
max-width
:
1280px
)
{
width
:
200px
;
/*width: 200px;*/
width
:
auto
;
max-height
:
50px
;
}
}
}
...
...
frontend/src/views/panel/edit/index.vue
浏览文件 @
bfe902d3
...
...
@@ -127,7 +127,7 @@
:in-draw=
"false"
/>
</filter-dialog>
<div
style=
"text-align: end !important;margin: 0 15px !important;"
>
<div
style=
"text-align: end !important;margin: 0 15px
10px
!important;"
>
<span
slot=
"footer"
>
<el-button
size=
"mini"
@
click=
"cancelFilter"
>
{{
$t
(
'commons.cancel'
)
}}
</el-button>
<el-button
:disabled=
"!currentFilterCom.options.attrs.fieldId"
type=
"primary"
size=
"mini"
@
click=
"sureFilter"
>
{{
$t
(
'commons.confirm'
)
}}
</el-button>
...
...
frontend/src/views/panel/filter/filterDialog.vue
浏览文件 @
bfe902d3
...
...
@@ -401,7 +401,10 @@ export default {
},
loadTable
(
sceneId
)
{
loadTable
({
sceneId
:
sceneId
,
sort
:
'type asc,create_time desc,name asc'
}).
then
(
res
=>
{
this
.
sceneDatas
=
res
.
data
res
&&
res
.
data
&&
(
this
.
sceneDatas
=
res
.
data
.
map
(
tb
=>
{
tb
.
type
=
'db'
return
tb
}))
})
},
...
...
@@ -518,7 +521,7 @@ export default {
.ms-main-container
{
height
:
100%
;
min-height
:
400px
;
padding
:
5px
10px
;
}
.filter-field
{
...
...
@@ -585,23 +588,32 @@ export default {
}
.filter-content
{
height
:
calc
(
50vh
-
1
3
0px
);
height
:
calc
(
50vh
-
1
2
0px
);
top
:
160px
;
}
.filter-dialog-tabs
{
border
:
1px
solid
#E6E6E6
;
padding
:
10px
;
height
:
100%
;
>>>
div
.el-tabs__content
{
height
:
calc
(
100%
-
55px
);
}
}
.filter-common
{
margin
:
10px
10
px
;
margin
:
10px
5
px
;
}
.component-header
{
margin
:
20px
10px
!
important
;
margin
:
5px
5px
15px
;
}
.component-result-content
{
height
:
calc
(
50vh
-
150px
);
overflow-y
:
auto
;
}
.link-text
{
...
...
frontend/src/views/panel/filter/index.vue
浏览文件 @
bfe902d3
...
...
@@ -99,7 +99,7 @@ export default {
padding-top
:
0px
;
padding-bottom
:
0px
;
position
:
relative
;
height
:
940px
;
//
height: 940px;
max-height
:
976px
;
}
.filter-header
{
...
...
frontend/src/views/panel/list/PanelList.vue
浏览文件 @
bfe902d3
...
...
@@ -115,7 +115,7 @@
<el-dropdown-item
v-if=
"data.nodeType==='panel'"
icon=
"el-icon-paperclip"
:command=
"beforeClickMore('link',data,node)"
>
{{
$t
(
'panel.create_public_links'
)
}}
</el-dropdown-item>
<el-dropdown-item
v-if=
"data.nodeType==='panel'"
icon=
"el-icon-
paperclip
"
:command=
"beforeClickMore('toDefaultPanel',data,node)"
>
<el-dropdown-item
v-if=
"data.nodeType==='panel'"
icon=
"el-icon-
copy-document
"
:command=
"beforeClickMore('toDefaultPanel',data,node)"
>
{{
$t
(
'panel.to_default_panel'
)
}}
</el-dropdown-item>
<el-dropdown-item
icon=
"el-icon-edit-outline"
:command=
"beforeClickMore('rename',data,node)"
>
...
...
frontend/src/views/system/datasource/form.vue
浏览文件 @
bfe902d3
...
...
@@ -29,10 +29,10 @@
<el-input
v-model=
"form.configuration.username"
autocomplete=
"off"
:disabled=
"formType=='modify'"
/>
</el-form-item>
<el-form-item
v-if=
"form.configuration.dataSourceType=='jdbc'"
:label=
"$t('datasource.password')"
prop=
"configuration.password"
>
<el-input
v-model=
"form.configuration.password"
autocomplete=
"off"
show-password
/>
<el-input
v-model=
"form.configuration.password"
autocomplete=
"off"
show-password
/>
</el-form-item>
<el-form-item
v-if=
"form.configuration.dataSourceType=='jdbc'"
:label=
"$t('datasource.port')"
prop=
"configuration.port"
>
<el-input
v-model=
"form.configuration.port"
autocomplete=
"off"
/>
<el-input
v-model=
"form.configuration.port"
autocomplete=
"off"
/>
</el-form-item>
<el-form-item>
...
...
frontend/src/views/system/user/index.vue
浏览文件 @
bfe902d3
...
...
@@ -8,6 +8,7 @@
:pagination-config=
"paginationConfig"
@
select=
"select"
@
search=
"search"
@
sort-change=
"sortChange"
>
<template
#
toolbar
>
<el-button
v-permission=
"['user:add']"
icon=
"el-icon-circle-plus-outline"
@
click=
"create"
>
{{
$t
(
'user.create'
)
}}
</el-button>
...
...
@@ -15,12 +16,12 @@
</
template
>
<el-table-column
prop=
"username"
label=
"ID"
/>
<el-table-column
prop=
"nickName"
:label=
"$t('commons.nick_name')"
/>
<el-table-column
prop=
"nickName"
sortable=
"custom"
:label=
"$t('commons.nick_name')"
/>
<el-table-column
prop=
"gender"
:label=
"$t('commons.gender')"
/>
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"phone"
:label=
"$t('commons.phone')"
/>
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"email"
:label=
"$t('commons.email')"
/>
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"dept"
:label=
"$t('commons.organization')"
>
<el-table-column
:show-overflow-tooltip=
"true"
prop=
"dept"
sortable=
"custom"
:label=
"$t('commons.organization')"
>
<
template
slot-scope=
"scope"
>
<div>
{{
scope
.
row
.
dept
&&
scope
.
row
.
dept
.
deptName
}}
</div>
</
template
>
...
...
@@ -43,12 +44,12 @@
</div>
</
template
>
</el-table-column>
<el-table-column
prop=
"status"
:label=
"$t('commons.status')"
>
<el-table-column
prop=
"status"
sortable=
"custom"
:label=
"$t('commons.status')"
>
<
template
v-slot:default=
"scope"
>
<el-switch
v-model=
"scope.row.enabled"
:active-value=
"1"
:inactive-value=
"0"
inactive-color=
"#DCDFE6"
@
change=
"changeSwitch(scope.row)"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"createTime"
:label=
"$t('commons.create_time')"
>
<el-table-column
prop=
"createTime"
sortable=
"custom"
:label=
"$t('commons.create_time')"
>
<
template
v-slot:default=
"scope"
>
<span>
{{
scope
.
row
.
createTime
|
timestampFormatDate
}}
</span>
</
template
>
...
...
@@ -163,7 +164,7 @@ import LayoutContent from '@/components/business/LayoutContent'
import
ComplexTable
from
'@/components/business/complex-table'
// import { checkPermission } from '@/utils/permission'
import
{
formatCondition
,
formatQuickCondition
}
from
'@/utils/index'
import
{
formatCondition
,
formatQuickCondition
,
addOrder
,
formatOrders
}
from
'@/utils/index'
import
{
PHONE_REGEX
}
from
'@/utils/validate'
import
{
LOAD_CHILDREN_OPTIONS
,
LOAD_ROOT_OPTIONS
}
from
'@riophae/vue-treeselect'
import
Treeselect
from
'@riophae/vue-treeselect'
...
...
@@ -295,7 +296,9 @@ export default {
edit
:
[
'user:edit'
],
del
:
[
'user:del'
],
editPwd
:
[
'user:editPwd'
]
}
},
orderConditions
:
[],
last_condition
:
null
}
},
mounted
()
{
...
...
@@ -305,13 +308,23 @@ export default {
},
methods
:
{
sortChange
({
column
,
prop
,
order
})
{
if
(
prop
===
'dept'
)
{
prop
=
'deptId'
}
this
.
orderConditions
=
[]
addOrder
({
field
:
prop
,
value
:
order
},
this
.
orderConditions
)
this
.
search
(
this
.
last_condition
)
},
select
(
selection
)
{
},
search
(
condition
)
{
condition
=
formatQuickCondition
(
condition
,
'username'
)
this
.
last_condition
=
condition
condition
=
formatQuickCondition
(
condition
,
'nick_name'
)
const
temp
=
formatCondition
(
condition
)
const
param
=
temp
||
{}
param
[
'orders'
]
=
formatOrders
(
this
.
orderConditions
)
const
{
currentPage
,
pageSize
}
=
this
.
paginationConfig
userLists
(
currentPage
,
pageSize
,
param
).
then
(
response
=>
{
this
.
data
=
response
.
data
.
listObject
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论