temp = JSON.parseArray(info,SystemParameterDTO.class);
// System.out.println("===>");
- }
+ } */
}
diff --git a/backend/src/main/resources/db/migration/V26__de1.3.sql b/backend/src/main/resources/db/migration/V26__de1.3.sql
index 10be30149f..88d0df6a8c 100644
--- a/backend/src/main/resources/db/migration/V26__de1.3.sql
+++ b/backend/src/main/resources/db/migration/V26__de1.3.sql
@@ -29,12 +29,26 @@ ALTER TABLE `sys_user` ADD COLUMN `from` int(4) NOT NULL COMMENT '来源' AFTER
INSERT INTO `sys_menu` VALUES (60, 1, 0, 1, '导入LDAP用户', 'system-user-import', 'system/user/imp-ldap', 11, NULL, 'user-ldap', b'0', b'0', b'1', 'user:import', NULL, NULL, NULL, NULL);
+ALTER TABLE `datasource` ADD COLUMN `compute_type` VARCHAR(45) NULL DEFAULT 'ALL' COMMENT '数据计算模式' AFTER `status`;
+update datasource set compute_type='ALL';
+
BEGIN;
+INSERT INTO `system_parameter` VALUES ('ldap.url', NULL, 'text', 1);
INSERT INTO `system_parameter` VALUES ('ldap.dn', NULL, 'text', 2);
+INSERT INTO `system_parameter` VALUES ('ldap.password', NULL, 'password', 3);
+INSERT INTO `system_parameter` VALUES ('ldap.ou', NULL, 'text', 4);
INSERT INTO `system_parameter` VALUES ('ldap.mapping', NULL, 'text', 6);
INSERT INTO `system_parameter` VALUES ('ldap.open', NULL, 'text', 7);
-INSERT INTO `system_parameter` VALUES ('ldap.ou', NULL, 'text', 4);
-INSERT INTO `system_parameter` VALUES ('ldap.password', NULL, 'password', 3);
-INSERT INTO `system_parameter` VALUES ('ldap.url', NULL, 'text', 1);
+
+INSERT INTO `system_parameter` VALUES ('oidc.authEndpoint', NULL, 'text', 1);
+INSERT INTO `system_parameter` VALUES ('oidc.tokenEndpoint', NULL, 'text', 2);
+INSERT INTO `system_parameter` VALUES ('oidc.userinfoEndpoint', NULL, 'text', 3);
+INSERT INTO `system_parameter` VALUES ('oidc.logoutEndpoint', NULL, 'text', 4);
+INSERT INTO `system_parameter` VALUES ('oidc.clientId', NULL, 'text', 5);
+INSERT INTO `system_parameter` VALUES ('oidc.secret', NULL, 'password', 6);
+INSERT INTO `system_parameter` VALUES ('oidc.scope', NULL, 'text', 7);
+INSERT INTO `system_parameter` VALUES ('oidc.redirectUrl', NULL, 'text', 8);
+INSERT INTO `system_parameter` VALUES ('oidc.open', NULL, 'text', 9);
COMMIT;
+ALTER TABLE `sys_user` ADD COLUMN `sub` varchar(255) COMMENT 'oidc用户ID' AFTER `from`;
diff --git a/backend/src/main/resources/generatorConfig.xml b/backend/src/main/resources/generatorConfig.xml
index ade934dfaf..d33ea84c23 100644
--- a/backend/src/main/resources/generatorConfig.xml
+++ b/backend/src/main/resources/generatorConfig.xml
@@ -65,7 +65,7 @@
-
+
diff --git a/backend/src/main/resources/i18n/messages_en_US.properties b/backend/src/main/resources/i18n/messages_en_US.properties
index b51d009c13..4d2c2bc99d 100644
--- a/backend/src/main/resources/i18n/messages_en_US.properties
+++ b/backend/src/main/resources/i18n/messages_en_US.properties
@@ -198,6 +198,7 @@ authsource_configuration_is_null=Authentication source configuration cannot be e
删除角色=Delete Role
删除连接=Delete Connection
显示设置=Display
+系统参数=System Param
参数管理=Parameter
数据源=Data Source
数据源表单=Data source form
diff --git a/backend/src/main/resources/i18n/messages_zh_CN.properties b/backend/src/main/resources/i18n/messages_zh_CN.properties
index 3c92b2a6e4..2f6583122b 100644
--- a/backend/src/main/resources/i18n/messages_zh_CN.properties
+++ b/backend/src/main/resources/i18n/messages_zh_CN.properties
@@ -198,6 +198,7 @@ authsource_configuration_is_null=认证源配置不能为空
删除角色=删除角色
删除连接=删除连接
显示设置=显示设置
+系统参数=系统参数
数据源=数据源
数据源表单=数据源表单
数据集=数据集
diff --git a/backend/src/main/resources/i18n/messages_zh_TW.properties b/backend/src/main/resources/i18n/messages_zh_TW.properties
index bccc948bee..2449312ff4 100644
--- a/backend/src/main/resources/i18n/messages_zh_TW.properties
+++ b/backend/src/main/resources/i18n/messages_zh_TW.properties
@@ -200,6 +200,7 @@ authsource_configuration_is_null=認證源配置不能為空
删除角色=刪除角色
刪除连接=刪除鏈接
显示设置=顯示設置
+系统参数=系統參數
参数管理=參數管理
数据源=數據源
数据源表单=數據源表單
diff --git a/frontend/src/components/DeDrag/MoveInShadow.vue b/frontend/src/components/DeDrag/MoveInShadow.vue
new file mode 100644
index 0000000000..366436c3aa
--- /dev/null
+++ b/frontend/src/components/DeDrag/MoveInShadow.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
diff --git a/frontend/src/components/DeDrag/index.vue b/frontend/src/components/DeDrag/index.vue
index af6a34ce39..5828cae258 100644
--- a/frontend/src/components/DeDrag/index.vue
+++ b/frontend/src/components/DeDrag/index.vue
@@ -21,6 +21,7 @@
@mouseleave="leave"
>
+
-
+
+
+
@@ -49,7 +52,7 @@ import EditBar from '@/components/canvas/components/Editor/EditBar'
export default {
replace: true,
- name: 'VueDragResizeRotate',
+ name: 'Dedrag',
components: { EditBar },
props: {
className: {
@@ -440,6 +443,14 @@ export default {
...(this.dragging && this.disableUserSelect ? userSelectNone : userSelectAuto)
}
},
+ resizeShadowStyle() {
+ return {
+ width: this.computedWidth,
+ height: this.computedHeight,
+ opacity: 0.4,
+ background: 'gray'
+ }
+ },
// 控制柄显示与否
actualHandles() {
if (!this.resizable) return []
@@ -464,9 +475,48 @@ export default {
return this.height + 'px'
},
+ // 根据left right 算出元素的宽度
+ computedMainSlotWidth() {
+ if (this.w === 'auto') {
+ if (!this.widthTouched) {
+ return 'auto'
+ }
+ }
+ if (this.canvasStyleData.auxiliaryMatrix) {
+ const width = Math.round(this.width / this.curCanvasScale.matrixStyleWidth) * this.curCanvasScale.matrixStyleWidth
+ return width + 'px'
+ } else {
+ return this.width + 'px'
+ }
+ },
+ // 根据top bottom 算出元素的宽度
+ computedMainSlotHeight() {
+ if (this.h === 'auto') {
+ if (!this.heightTouched) {
+ return 'auto'
+ }
+ }
+ if (this.canvasStyleData.auxiliaryMatrix) {
+ const height = Math.round(this.height / this.curCanvasScale.matrixStyleHeight) * this.curCanvasScale.matrixStyleHeight
+ return height + 'px'
+ } else {
+ return this.height + 'px'
+ }
+ },
+
// private
+ mainSlotStyle() {
+ const style = {
+ width: this.computedMainSlotWidth,
+ height: this.computedMainSlotHeight
+ }
+ // console.log('style=>' + JSON.stringify(style))
+ return style
+ },
+ curComponent() {
+ return this.$store.state.curComponent
+ },
...mapState([
- 'curComponent',
'editor',
'curCanvasScale',
'canvasStyleData',
@@ -566,6 +616,18 @@ export default {
this.beforeDestroyFunction()
this.createdFunction()
this.mountedFunction()
+ },
+ // private 监控dragging resizing
+ dragging(val) {
+ if (this.enabled) {
+ this.curComponent.optStatus.dragging = val
+ }
+ },
+ // private 监控dragging resizing
+ resizing(val) {
+ if (this.enabled) {
+ this.curComponent.optStatus.resizing = val
+ }
}
},
created: function() {
@@ -610,7 +672,7 @@ export default {
const rect = this.$el.parentNode.getBoundingClientRect()
this.parentX = rect.x
this.parentY = rect.y
- return [Math.round(parseFloat(style.getPropertyValue('width'), 10)), Math.round(parseFloat(style.getPropertyValue('height'), 10))]
+ return [Math.round(parseFloat(style.getPropertyValue('width'), 10)), 100000]
}
if (typeof this.parent === 'string') {
const parentNode = document.querySelector(this.parent)
@@ -1490,7 +1552,7 @@ export default {
// resize
const self = this
setTimeout(function() {
- self.$emit('resizestop')
+ self.$emit('resizeView')
}, 200)
},
mountedFunction() {
@@ -1650,6 +1712,10 @@ export default {
opacity: 0.5;
}
+.gap_class{
+ padding:5px;
+}
+
/*.mouseOn >>> .icon-shezhi{*/
/* z-index: 2;*/
/* display:block!important;*/
diff --git a/frontend/src/components/DeDrag/shadow.vue b/frontend/src/components/DeDrag/shadow.vue
new file mode 100644
index 0000000000..f4c7796496
--- /dev/null
+++ b/frontend/src/components/DeDrag/shadow.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
diff --git a/frontend/src/components/Notification/index.vue b/frontend/src/components/Notification/index.vue
index fa07c8e79d..3a3051e057 100644
--- a/frontend/src/components/Notification/index.vue
+++ b/frontend/src/components/Notification/index.vue
@@ -199,6 +199,7 @@ export default {
query(currentPage, pageSize, param).then(response => {
this.data = response.data.listObject
this.paginationConfig.total = response.data.itemCount
+ this.count = this.paginationConfig.total
}).catch(() => {
const token = getToken()
if (!token || token === 'null' || token === 'undefined') {
diff --git a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue
index 51bc67d471..508622ff35 100644
--- a/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue
+++ b/frontend/src/components/canvas/components/Editor/ComponentWrapper.vue
@@ -127,7 +127,7 @@ export default {
box-shadow:0px 0px 7px #0a7be0;
}
.gap_class{
- padding:3px;
+ padding:5px;
}
.component-custom {
outline: none;
diff --git a/frontend/src/components/canvas/components/Editor/Preview.vue b/frontend/src/components/canvas/components/Editor/Preview.vue
index 05800834fe..1a36d8fc36 100644
--- a/frontend/src/components/canvas/components/Editor/Preview.vue
+++ b/frontend/src/components/canvas/components/Editor/Preview.vue
@@ -110,12 +110,16 @@ export default {
}
}
}
- if (this.canvasStyleData.selfAdaption) {
- style = {
- overflow: 'hidden',
- ...style
- }
- }
+ // if (this.canvasStyleData.selfAdaption) {
+ // style = {
+ // overflow: 'hidden',
+ // ...style
+ // }
+ // }
+ // style = {
+ // overflow-x :'hidden',
+ // ...style
+ // }
return style
},
// 此处单独计算componentData的值 不放入全局mapState中
@@ -168,10 +172,13 @@ export default {
const canvasWidth = document.getElementById('canvasInfoTemp').offsetWidth
this.scaleWidth = canvasWidth * 100 / parseInt(this.canvasStyleData.width)// 获取宽度比
this.scaleHeight = canvasHeight * 100 / parseInt(this.canvasStyleData.height)// 获取高度比
- if (this.showType === 'width') {
- this.scaleHeight = this.scaleWidth
- this.mainHeight = this.canvasStyleData.height * this.scaleHeight / 100 + 'px'
- }
+
+ this.scaleHeight = this.scaleWidth
+ // this.mainHeight = this.canvasStyleData.height * this.scaleHeight / 100 + 'px'
+ // if (this.showType === 'width') {
+ // this.scaleHeight = this.scaleWidth
+ // this.mainHeight = this.canvasStyleData.height * this.scaleHeight / 100 + 'px'
+ // }
this.handleScaleChange()
},
resetID(data) {
@@ -252,7 +259,7 @@ export default {
color: #9ea6b2;
}
.gap_class{
- padding:3px;
+ padding:5px;
}
.dialog-css>>>.el-dialog__title {
font-size: 14px;
diff --git a/frontend/src/components/canvas/components/Editor/index.vue b/frontend/src/components/canvas/components/Editor/index.vue
index ca686fc356..2c95f1da12 100644
--- a/frontend/src/components/canvas/components/Editor/index.vue
+++ b/frontend/src/components/canvas/components/Editor/index.vue
@@ -12,7 +12,7 @@
@mousedown="handleMouseDown"
>
-
+
@@ -32,7 +32,6 @@
:active="item === curComponent"
:element="item"
class-name-active="de-drag-active"
- :class="{'gap_class':canvasStyleData.panel.gap==='yes'}"
:snap="true"
:snap-tolerance="2"
:change-style="customStyle"
@@ -41,7 +40,7 @@
:linkage-active="linkageSettingStatus&&item===curLinkageView"
@refLineParams="getRefLineParams"
@showViewDetails="showViewDetails(index)"
- @resizestop="resizestop(index,item)"
+ @resizeView="resizeView(index,item)"
>
+
+
@@ -166,9 +167,10 @@ import { deepCopy } from '@/components/canvas/utils/utils'
import UserViewDialog from '@/components/canvas/custom-component/UserViewDialog'
import DeOutWidget from '@/components/dataease/DeOutWidget'
import CanvasOptBar from '@/components/canvas/components/Editor/CanvasOptBar'
+import DragShadow from '@/components/DeDrag/shadow'
export default {
- components: { Shape, ContextMenu, MarkLine, Area, Grid, DeDrag, UserViewDialog, DeOutWidget, CanvasOptBar },
+ components: { Shape, ContextMenu, MarkLine, Area, Grid, DeDrag, UserViewDialog, DeOutWidget, CanvasOptBar, DragShadow },
props: {
isEdit: {
type: Boolean,
@@ -216,10 +218,10 @@ export default {
width: 80,
height: 20
},
- // 矩阵数量 默认 12 * 24
+ // 矩阵数量 默认 128 * 72
matrixCount: {
- x: 24,
- y: 72
+ x: 36,
+ y: 18
},
customStyleHistory: null,
showDrag: true,
@@ -555,6 +557,9 @@ export default {
if (this.canvasStyleData.matrixCount) {
this.matrixCount = this.canvasStyleData.matrixCount
}
+ // 1.3 版本重新设计仪表板定位方式,基准画布宽高为 1600*900 宽度自适应当前画布获取缩放比例scaleWidth
+ // 高度缩放比例scaleHeight = scaleWidth 基础矩阵为128*72 矩阵原始宽度12.5*12.5 矩阵高度可以调整
+
if (this.outStyle.width && this.outStyle.height) {
// 矩阵计算
if (!this.canvasStyleData.selfAdaption) {
@@ -628,8 +633,9 @@ export default {
showViewDetails(index) {
this.$refs.wrapperChild[index].openChartDetailsDialog()
},
- resizestop(index, item) {
+ resizeView(index, item) {
if (item.type === 'view') {
+ // console.log('view:resizeView')
this.$refs.wrapperChild[index].chartResize()
}
}
@@ -642,6 +648,7 @@ export default {
position: relative;
/*background: #fff;*/
margin: auto;
+ overflow-x: hidden;
background-size:100% 100% !important;
/*transform-style:preserve-3d;*/
.lock {
diff --git a/frontend/src/components/canvas/components/Toolbar.vue b/frontend/src/components/canvas/components/Toolbar.vue
index e316e0a2f0..c87a5a95d3 100644
--- a/frontend/src/components/canvas/components/Toolbar.vue
+++ b/frontend/src/components/canvas/components/Toolbar.vue
@@ -17,18 +17,6 @@
{{ $t('panel.matrix_design') }}
-
-
-
- {{ $t('panel.canvas_self_adaption') }}
-
-
-
- {{ $t('panel.canvas_size') }}
-
- *
-
-
@@ -383,7 +371,7 @@ export default {
float: right;
height: 35px;
line-height: 35px;
- min-width: 900px;
+ min-width: 500px;
/*background: #fff;*/
/*border-bottom: 1px solid #ddd;*/
diff --git a/frontend/src/components/canvas/custom-component/UserView.vue b/frontend/src/components/canvas/custom-component/UserView.vue
index 4367d89d25..4aa962993b 100644
--- a/frontend/src/components/canvas/custom-component/UserView.vue
+++ b/frontend/src/components/canvas/custom-component/UserView.vue
@@ -264,6 +264,7 @@ export default {
this.chart.drillFields = this.chart.drillFields ? JSON.parse(this.chart.drillFields) : []
if (!response.data.drill) {
this.drillClickDimensionList.splice(this.drillClickDimensionList.length - 1, 1)
+ this.resetDrill()
}
this.drillFilters = JSON.parse(JSON.stringify(response.data.drillFilters))
this.drillFields = JSON.parse(JSON.stringify(response.data.drillFields))
@@ -434,7 +435,7 @@ export default {
this.$refs[this.element.propValue.id].chartResize()
}
this.destroyTimeMachine()
- }, 200)
+ }, 50)
}
},
diff --git a/frontend/src/components/canvas/custom-component/component-list.js b/frontend/src/components/canvas/custom-component/component-list.js
index 9a3ecfd7fc..391d1590ba 100644
--- a/frontend/src/components/canvas/custom-component/component-list.js
+++ b/frontend/src/components/canvas/custom-component/component-list.js
@@ -51,9 +51,9 @@ const list = [
icon: 'wenben',
type: 'v-text',
style: {
- width: 300,
+ width: 400,
height: 100,
- fontSize: 18,
+ fontSize: 22,
fontWeight: 400,
lineHeight: '',
letterSpacing: 0,
@@ -120,10 +120,10 @@ const list = [
icon: 'juxing',
type: 'rect-shape',
style: {
- width: 200,
- height: 200,
+ width: 400,
+ height: 300,
borderStyle: 'solid',
- borderWidth: 1,
+ borderWidth: 0,
borderColor: '#000000',
backgroundColor: '#ffffff',
borderRadius: 0
diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js
index c447c28717..17846bd595 100644
--- a/frontend/src/lang/en.js
+++ b/frontend/src/lang/en.js
@@ -433,6 +433,11 @@ export default {
fixedHeader: 'Fixed Header',
sidebarLogo: 'Sidebar Logo'
},
+ sysParams: {
+ display: 'Display Setting',
+ ldap: 'LDAP Setting',
+ oidc: 'OIDC Setting'
+ },
license: {
i18n_no_license_record: 'No License Record',
i18n_license_is_empty: 'License is empty.',
@@ -500,6 +505,47 @@ export default {
change_password: 'Change Password',
search_by_name: 'Search by name'
},
+ ldap: {
+ url: 'LDAP url',
+ dn: 'LDAP DN',
+ password: 'Password',
+ ou: 'OU',
+ filter: 'filter',
+ mapping: 'LDAP mapping',
+ open: 'Enable LDAP Authentication',
+ input_url: 'Please key LDAP url',
+ input_dn: 'Please key DN',
+ input_password: 'Please key password',
+ input_ou: 'Please key OU',
+ input_filter: 'Please key filter',
+ input_mapping: 'Please key LDAP mapping',
+ input_username: 'Please key username',
+ input_url_placeholder: 'Please key url (like ldap://localhost:389)',
+ input_ou_placeholder: 'Please key OU ',
+ input_filter_placeholder: 'Please key filter',
+ input_mapping_placeholder: 'like:{"username":"uid","name":"sn","email":"mail"}',
+ test_connect: 'Test connect',
+ edit: 'Edit',
+ login_success: 'Login success',
+ url_cannot_be_empty: 'LDAP url can not be empty',
+ dn_cannot_be_empty: 'LDAP DN can not be empty',
+ ou_cannot_be_empty: 'LDAP OU can not be empty',
+ filter_cannot_be_empty: 'LDAP filter can not be empty',
+ mapping_cannot_be_empty: 'LDAP mapping can not be empty',
+ password_cannot_be_empty: 'LDAP password can not be empty',
+ import_ldap: 'Import LDAP User'
+ },
+ oidc: {
+ auth_endpoint: 'Please key AuthEndpoint',
+ token_endpoint: 'Please key TokenEndpoint',
+ userinfo_endpoint: 'Please key UserinfoEndpoint',
+ logout_endpoint: 'Please key logoutEndpoint',
+ clientId: 'Please key ClientId',
+ secret: 'Please key Secret',
+ scope: 'Please key scope',
+ redirectUrl: 'Please key redirectUrl',
+ open: 'Enable OIDC Authentication'
+ },
role: {
menu_authorization: 'Menu Authorization',
data_authorization: 'Data Authorization',
@@ -1063,6 +1109,8 @@ export default {
password: 'Password',
host: 'Host name / IP address',
port: 'Port',
+ datasource_url: 'URL address',
+ please_input_datasource_url: 'Please enter Elasticsearch 地址,e.g: http://es_host:es_port',
please_input_data_base: 'Please enter the database name',
please_input_user_name: 'Please enter user name',
please_input_password: 'Please enter Password',
diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js
index 79382167c3..f41f8df150 100644
--- a/frontend/src/lang/tw.js
+++ b/frontend/src/lang/tw.js
@@ -45,7 +45,7 @@ export default {
dashboard: '首頁',
documentation: '文檔',
guide: '引導頁',
- permission: '全縣測試頁',
+ permission: '權限測試頁',
rolePermission: '角色權限',
pagePermission: '頁面權限',
directivePermission: '指令權限',
@@ -91,7 +91,7 @@ export default {
errorPages: '錯誤頁面',
page401: '401',
page404: '404',
- errorLog: '錯誤日誌',
+ errorLog: '錯誤日志',
excel: 'Excel',
exportExcel: '導出 Excel',
selectExcel: '導出 已選擇項',
@@ -109,36 +109,36 @@ export default {
navbar: {
dashboard: '首頁',
github: '項目地址',
- logOut: '退出登陸',
+ logOut: '退出登錄',
profile: '個人中心',
theme: '換膚',
- size: '佈局大小'
+ size: '布局大小'
},
login: {
- title: '系統登陸',
+ title: '系統登錄',
welcome: '歡迎使用',
- logIn: '登陸',
- username: '帳號',
+ logIn: '登錄',
+ username: '賬號',
password: '密碼',
- any: '任意字符',
- thirdparty: '第三方登陸',
+ any: '隨便填',
+ thirdparty: '第三方登錄',
thirdpartyTips: '本地不能模擬,請結合自己業務進行模擬!!!',
- expires: '登陸信息過期,請重新登陸',
- tokenError: '信息錯誤,請重新登陸',
+ expires: '登錄信息過期,請重新登錄',
+ tokenError: '登陸信息錯誤,請重新登錄',
username_error: '請輸入正確的 ID',
- password_error: '密碼不小於 8 位',
- re_login: '重新登陸'
+ password_error: '密碼不小于 8 位',
+ re_login: '重新登錄'
},
commons: {
search: '搜索',
- folder: '目录',
+ folder: '目錄',
no_target_permission: '沒有權限',
success: '成功',
switch_lang: '切換語言成功',
close: '關閉',
icon: '圖標',
all: '全部',
- enable: '啟用',
+ enable: '啓用',
disable: '禁用',
yes: '是',
no: '否',
@@ -155,30 +155,30 @@ export default {
not_cover: '不覆蓋',
import_mode: '導入模式',
import_module: '導入模塊',
- please_fill_in_the_template: '請填寫模板內容',
- cut_back_old_version: '切匯舊版',
- cut_back_new_version: '切匯新版',
+ please_fill_in_the_template: '請填寫模版內容',
+ cut_back_old_version: '切回舊版',
+ cut_back_new_version: '切回新版',
comment: '評論',
examples: '示例',
help_documentation: '幫助文檔',
api_help_documentation: 'API文檔',
delete_cancelled: '已取消刪除',
- workspace: '工作空開你',
+ workspace: '工作空間',
organization: '組織',
menu: '菜單',
setting: '設置',
project: '項目',
- about_us: '關於',
+ about_us: '關于',
current_project: '當前項目',
name: '名稱',
description: '描述',
- annotation: '註釋',
+ annotation: '注釋',
clear: '清空',
save: '保存',
update: '更新',
save_success: '保存成功',
delete_success: '刪除成功',
- copy_success: '複製成功',
+ copy_success: '複制成功',
modify_success: '修改成功',
delete_cancel: '已取消刪除',
confirm: '確定',
@@ -186,8 +186,8 @@ export default {
prompt: '提示',
operating: '操作',
input_limit: '長度在 {0} 到 {1} 個字符',
- login: '登陸',
- welcome: '一站式開源數據分析平臺',
+ login: '登錄',
+ welcome: '一站式開源數據分析平台',
username: '姓名',
password: '密碼',
input_username: '請輸入用戶姓名',
@@ -215,11 +215,11 @@ export default {
input_content: '請輸入內容',
create: '新建',
edit: '編輯',
- copy: '複製',
+ copy: '複制',
refresh: '刷新',
- remark: '備註',
+ remark: '備注',
delete: '刪除',
- reduction: '恢復',
+ reduction: '恢複',
not_filled: '未填寫',
please_select: '請選擇',
search_by_name: '根據名稱搜索',
@@ -227,7 +227,7 @@ export default {
exit_system: '退出系統',
verification: '驗證',
title: '標題',
- custom: '自動義',
+ custom: '自定義',
select_date: '選擇日期',
months_1: '一月',
months_2: '二月',
@@ -252,13 +252,13 @@ export default {
connection_successful: '連接成功',
connection_failed: '連接失敗',
save_failed: '保存失敗',
- host_cannot_be_empty: '主機不能為空',
- port_cannot_be_empty: '端口號不能為空',
- account_cannot_be_empty: '帳戶不能為空',
+ host_cannot_be_empty: '主機不能爲空',
+ port_cannot_be_empty: '端口號不能爲空',
+ account_cannot_be_empty: '帳戶不能爲空',
remove: '移除',
remove_cancel: '移除取消',
remove_success: '移除成功',
- tips: '認證信息已過期,請重新登陸',
+ tips: '認證信息已過期,請重新登錄',
not_performed_yet: '尚未執行',
incorrect_input: '輸入內容不正確',
delete_confirm: '請輸入以下內容,確認刪除:',
@@ -266,13 +266,13 @@ export default {
input_login_username: '請輸入用戶 ID 或 郵箱',
input_name: '請輸入名稱',
please_upload: '請上傳文件',
- please_fill_path: '請填寫url 路徑',
+ please_fill_path: '請填寫ur路徑',
formatErr: '格式錯誤',
please_save: '請先保存',
reference_documentation: '參考文檔',
id: 'ID',
millisecond: '毫秒',
- cannot_be_null: '不能為空',
+ cannot_be_null: '不能爲空',
required: '{0}是必填的',
already_exists: '名稱不能重複',
modifier: '修改人',
@@ -290,7 +290,7 @@ export default {
start_date_time: '開始日期時間',
end_date_time: '結束日期時間',
range_separator: '至',
- data_time_error: '開始日期不能大與結束日期'
+ data_time_error: '開始日期不能大于結束日期'
},
adv_search: {
title: '高級搜索',
@@ -306,14 +306,14 @@ export default {
is_not_empty: '非空',
like: '包含',
not_like: '不包含',
- in: '屬與',
- not_in: '不屬與',
- gt: '大與',
- ge: '大與等與',
- lt: '小與',
- le: '小與等與',
- equals: '等與',
- not_equals: '不等與',
+ in: '屬于',
+ not_in: '不屬于',
+ gt: '大于',
+ ge: '大于等于',
+ lt: '小于',
+ le: '小于等于',
+ equals: '等于',
+ not_equals: '不等于',
between: '之間',
current_user: '是當前用戶'
},
@@ -357,23 +357,23 @@ export default {
cancel: '取消'
},
guide: {
- description: '引導頁對與一些第一次進入項目的人很有用,你可以簡單介紹下項目的功能。本 Demo 是基與',
+ description: '引導頁對于一些第一次進入項目的人很有用,你可以簡單介紹下項目的功能。本 Demo 是基于',
button: '打開引導'
},
components: {
documentation: '文檔',
- tinymceTips: '富文本是管理後臺一個核心的功能,但同時又是一個有很多坑的地方。在選擇富文本的過程中我也走了不少的彎路,市面上常見的富文本都基本用過了,最終權衡了一下選擇了Tinymce。更詳細的富文本比較和介紹見',
- dropzoneTips: '由與我司業務有特殊需求,而且要傳七牛 所以沒用第三方,選擇了自己封裝。代碼非常的簡單,具體代碼你可以在這裏看到 @/components/Dropzone',
+ tinymceTips: '富文本是管理後台一個核心的功能,但同時又是一個有很多坑的地方。在選擇富文本的過程中我也走了不少的彎路,市面上常見的富文本都基本用過了,最終權衡了一下選擇了Tinymce。更詳細的富文本比較和介紹見',
+ dropzoneTips: '由于我司業務有特殊需求,而且要傳七牛 所以沒用第三方,選擇了自己封裝。代碼非常的簡單,具體代碼你可以在這裏看到 @/components/Dropzone',
stickyTips: '當頁面滾動到預設的位置會吸附在頂部',
backToTopTips1: '頁面滾動到指定位置會在右下角出現返回頂部按鈕',
backToTopTips2: '可自定義按鈕的樣式、show/hide、出現的高度、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素',
- imageUploadTips: '由與我在使用時它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的話,優先還是使用官方版本。'
+ imageUploadTips: '由于我在使用時它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的話,優先還是使用官方版本。'
},
table: {
- dynamicTips1: '固定標頭,按照表頭順序排序',
- dynamicTips2: '不固定標頭, 按照點擊順序排序',
- dragTips1: '默認排序',
- dragTips2: '拖拽後排序',
+ dynamicTips1: '固定表頭, 按照表頭順序排序',
+ dynamicTips2: '不固定表頭, 按照點擊順序排序',
+ dragTips1: '默認順序',
+ dragTips2: '拖拽後順序',
title: '標題',
importance: '重要性',
type: '類型',
@@ -392,15 +392,15 @@ export default {
publish: '發布',
draft: '草稿',
delete: '刪除',
- cancel: '取消',
- confirm: '確定'
+ cancel: '取 消',
+ confirm: '確 定'
},
example: {
- warning: '創建和編輯頁面是不能被 keep-alive 緩存的,因為keep-alive 的 include 目前不支持根據路由來緩存,所以目前都是基與 component name 來進行緩存的。如果你想類似的實現緩存效果,可以使用 localStorage 等瀏覽器緩存方案。或者不要使用 keep-alive 的 include,直接緩存所有頁面。詳情見'
+ warning: '創建和編輯頁面是不能被 keep-alive 緩存的,因爲keep-alive 的 include 目前不支持根據路由來緩存,所以目前都是基于 component name 來進行緩存的。如果你想類似的實現緩存效果,可以使用 localStorage 等浏覽器緩存方案。或者不要使用 keep-alive 的 include,直接緩存所有頁面。詳情見'
},
errorLog: {
tips: '請點擊右上角bug小圖標',
- description: '現在的管理後臺基本都是spa的形式了,它增強了用戶體驗,但同時也會增加頁面出問題的可能性,可能一個小小的疏忽就導致整個頁面的死鎖。好在 Vue 官網提供了一個方法來捕獲處理異常,你可以在其中進行錯誤處理或者異常上報。',
+ description: '現在的管理後台基本都是spa的形式了,它增強了用戶體驗,但同時也會增加頁面出問題的可能性,可能一個小小的疏忽就導致整個頁面的死鎖。好在 Vue 官網提供了一個方法來捕獲處理異常,你可以在其中進行錯誤處理或者異常上報。',
documentation: '文檔介紹'
},
excel: {
@@ -413,34 +413,39 @@ export default {
placeholder: '請輸入文件名(默認file)'
},
pdf: {
- tips: '這裏使用 window.print() 來實現下載pdf的功能'
+ tips: '這裏使用 window.print() 來實現下載pdf的功能'
},
theme: {
change: '換膚',
documentation: '換膚文檔',
- tips: 'Tips: 它區別於 navbar 上的 theme-pick, 是兩種不同的換膚方法,各自有不同的應用場景,具體請參考文檔。'
+ tips: 'Tips: 它區別于 navbar 上的 theme-pick, 是兩種不同的換膚方法,各自有不同的應用場景,具體請參考文檔。'
},
tagsView: {
refresh: '刷新',
close: '關閉',
- closeOthers: '關閉其他',
+ closeOthers: '關閉其它',
closeAll: '關閉所有'
},
settings: {
- title: '系統佈局配置',
+ title: '系統布局配置',
theme: '主題色',
- tagsView: '開啟 Tags-View',
+ tagsView: '開啓 Tags-View',
fixedHeader: '固定 Header',
sidebarLogo: '側邊欄 Logo'
},
+ sysParams: {
+ display: '顯示設置',
+ ldap: 'LDAP設置',
+ oidc: 'OIDC設置'
+ },
license: {
- i18n_no_license_record: '沒有 License 紀錄',
- i18n_license_is_empty: 'License 為空',
+ i18n_no_license_record: '沒有 License 記錄',
+ i18n_license_is_empty: 'License 爲空',
title: '授權管理',
corporation: '客戶名稱',
time: '授權時間',
- product: '產品名稱',
- edition: '產品版本',
+ product: '産品名稱',
+ edition: '産品版本',
licenseVersion: '授權版本',
count: '授權數量',
valid_license: '授權驗證',
@@ -471,7 +476,7 @@ export default {
repeat_password: '確認密碼',
inconsistent_passwords: '兩次輸入的密碼不一致',
remove_member: '確定要移除該成員嗎',
- org_remove_member: '確定要移除該成員嗎?',
+ org_remove_member: '將該用戶從組織中移除,將同時移除該組織下所有工作空間的權限,確定要移除該成員嗎?',
input_id_or_email: '請輸入用戶 ID, 或者 用戶郵箱',
no_such_user: '無此用戶信息, 請輸入正確的用戶 ID 或者 用戶郵箱!'
},
@@ -484,6 +489,7 @@ export default {
input_password: '請輸入密碼',
input_phone: '請輸入電話號碼',
input_roles: '請選擇角色',
+ select_users: '請選擇用戶',
special_characters_are_not_supported: '不支持特殊字符',
mobile_number_format_is_incorrect: '手機號碼格式不正確',
email_format_is_incorrect: '郵箱格式不正確',
@@ -498,7 +504,49 @@ export default {
new_passwd: '新密碼',
confirm_passwd: '確認密碼',
change_password: '修改密碼',
- search_by_name: '按姓名搜索'
+ search_by_name: '按姓名搜索',
+ import_ldap: '導入LDAP用戶'
+ },
+ ldap: {
+ url: 'LDAP地址',
+ dn: '綁定DN',
+ password: '密碼',
+ ou: '用戶OU',
+ filter: '用戶過濾器',
+ mapping: 'LDAP屬性映射',
+ open: '啓用LDAP認證',
+ input_url: '請輸入LDAP地址',
+ input_dn: '請輸入DN',
+ input_password: '請輸入密碼',
+ input_ou: '請輸入用戶OU',
+ input_filter: '請輸入用戶過濾器',
+ input_mapping: '請輸入LDAP屬性映射',
+ input_username: '請輸入用戶名',
+ input_url_placeholder: '請輸入LDAP地址 (如 ldap://localhost:389)',
+ input_ou_placeholder: '輸入用戶OU (使用|分隔各OU)',
+ input_filter_placeholder: '輸入過濾器 [可能的選項是cn或uid或sAMAccountName={0}, 如:(uid={0})]',
+ input_mapping_placeholder: '如:{"username":"uid","name":"sn","email":"mail"}, username映射的選項可能是cn或uid或sAMAccountName',
+ test_connect: '測試連接',
+ test_login: '測試登錄',
+ edit: '編輯',
+ login_success: '登錄成功',
+ url_cannot_be_empty: 'LDAP 地址不能爲空',
+ dn_cannot_be_empty: 'LDAP DN不能爲空',
+ ou_cannot_be_empty: 'LDAP OU不能爲空',
+ filter_cannot_be_empty: 'LDAP 用戶過濾器不能爲空',
+ mapping_cannot_be_empty: 'LDAP 用戶屬性映射不能爲空',
+ password_cannot_be_empty: 'LDAP 密碼不能爲空'
+ },
+ oidc: {
+ auth_endpoint: '請輸入AuthEndpoint',
+ token_endpoint: '請輸入TokenEndpoint',
+ userinfo_endpoint: '請輸入UserinfoEndpoint',
+ logout_endpoint: '請輸入logoutEndpoint',
+ clientId: '請輸入ClientId',
+ secret: '請輸入Secret',
+ scope: '請輸入scope',
+ redirectUrl: '請輸入redirectUrl',
+ open: '啓用OIDC認證'
},
role: {
menu_authorization: '菜單授權',
@@ -530,7 +578,7 @@ export default {
create: '創建菜單',
modify: '修改菜單',
delete: '刪除菜單',
- delete_confirm: '確定刪除菜單嗎?',
+ delete_confirm: '確定刪除菜單嗎',
menu_type: '菜單類型'
},
organization: {
@@ -553,19 +601,19 @@ export default {
},
system_parameter_setting: {
mailbox_service_settings: '郵件設置',
- test_connection: '測試鏈接',
+ test_connection: '測試連接',
SMTP_host: 'SMTP主機',
SMTP_port: 'SMTP端口',
- SMTP_account: 'SMTP帳號',
+ SMTP_account: 'SMTP賬戶',
SMTP_password: 'SMTP密碼',
- SSL: '開啟SSL(如果SMTP端口是465,通常需要啟用SSL)',
- TLS: '開啟TLS(如果SMTP端口是587,通常需要啟用TLS)',
+ SSL: '開啓SSL(如果SMTP端口是465,通常需要啓用SSL)',
+ TLS: '開啓TLS(如果SMTP端口是587,通常需要啓用TLS)',
SMTP: '是否免密 SMTP',
- host: '主機不能為空',
- port: '端口號不能為空',
- account: '帳戶不能為空',
+ host: '主機號不能爲空',
+ port: '端口號不能爲空',
+ account: '賬戶不能爲空',
test_recipients: '測試收件人',
- tip: ' 提示: 僅用來作為測試郵件收件人'
+ tip: '提示:僅用來作爲測試郵件收件人'
},
chart: {
save_snapshot: '保存縮略圖',
@@ -591,14 +639,14 @@ export default {
sql_data: 'SQL數據集',
excel_data: 'Excel數據集',
custom_data: '自定義數據集',
- pls_slc_tbl_left: '請從左側選擇視圖',
- add_db_table: '添加數據庫表',
+ pls_slc_tbl_left: '請從左側選視圖',
+ add_db_table: '添加數據庫數據集',
pls_slc_data_source: '請選擇數據源',
table: '表',
edit: '編輯',
- create_view: '創建視圖',
+ create_view: '創建試圖',
data_preview: '數據預覽',
- dimension: '緯度',
+ dimension: '維度',
quota: '指標',
title: '標題',
show: '顯示',
@@ -610,22 +658,22 @@ export default {
y_axis: '縱軸',
chart: '視圖',
close: '關閉',
- summary: '匯總方式',
+ summary: '彙總方式',
fast_calc: '快速計算',
sum: '求和',
- count: '記數',
+ count: '計數',
avg: '平均',
max: '最大值',
min: '最小值',
- stddev_pop: '標準差',
+ stddev_pop: '標准差',
var_pop: '方差',
quick_calc: '快速計算',
show_name_set: '顯示名設置',
- color: '顏色',
+ color: '顔色',
color_case: '配色方案',
- pls_slc_color_case: '請選餓配色方案',
+ pls_slc_color_case: '請選擇配色方案',
color_default: '默認',
- color_retro: '復古',
+ color_retro: '複古',
color_future: '未來',
color_gradual: '漸變',
color_business: '商務',
@@ -642,7 +690,7 @@ export default {
line_type: '線型',
line_symbol: '折點',
line_symbol_size: '折點大小',
- line_type_solid: '實現',
+ line_type_solid: '實線',
line_type_dashed: '虛線',
line_symbol_circle: '圓形',
line_symbol_emptyCircle: '空心圓',
@@ -654,13 +702,13 @@ export default {
line_symbol_arrow: '箭頭',
line_symbol_none: '無',
line_area: '面積',
- pie_inner_radius: '內經',
- pie_outer_radius: '外經',
+ pie_inner_radius: '內徑',
+ pie_outer_radius: '外徑',
funnel_width: '寬度',
line_smooth: '平滑折線',
- title_style: '標題格式',
+ title_style: '標題樣式',
text_fontsize: '字體大小',
- text_color: '字體顏色',
+ text_color: '字體顔色',
text_h_position: '水平位置',
text_v_position: '垂直位置',
text_pos_left: '左',
@@ -676,23 +724,23 @@ export default {
legend: '圖例',
shape: '形狀',
polygon: '多邊形',
- circle: '圖形',
- label: '標籤',
- label_position: '標籤位置',
+ circle: '圓形',
+ label: '標簽',
+ label_position: '標簽位置',
content_formatter: '內容格式',
inside: '內',
tooltip: '提示',
tooltip_item: '數據項',
- tooltip_axis: '座標軸',
- formatter_plc: '內痛格式為空時,顯示默認格式',
- xAxis: '橫洲',
+ tooltip_axis: '坐標軸',
+ formatter_plc: '內容格式爲空時,顯示默認格式',
+ xAxis: '橫軸',
yAxis: '縱軸',
position: '位置',
rotate: '角度',
name: '名稱',
- icon: '國際',
+ icon: '圖標',
trigger_position: '觸發位置',
- asc: '昇序',
+ asc: '升序',
desc: '降序',
sort: '排序',
filter: '過濾',
@@ -703,39 +751,39 @@ export default {
border_radius: '邊框半徑',
alpha: '透明度',
add_filter: '添加過濾',
- no_limit: '無顯示',
- filter_eq: '等於',
- filter_not_eq: '不等於',
- filter_lt: '小於',
- filter_le: '小於等於',
- filter_gt: '大於',
- filter_ge: '大於等於',
- filter_null: '為空',
- filter_not_null: '不為空',
+ no_limit: '無限制',
+ filter_eq: '等于',
+ filter_not_eq: '不等于',
+ filter_lt: '小于',
+ filter_le: '小于等于',
+ filter_gt: '大于',
+ filter_ge: '大于等于',
+ filter_null: '爲空',
+ filter_not_null: '不爲空',
filter_include: '包含',
filter_not_include: '不包含',
rose_type: '玫瑰圖模式',
radius_mode: '半徑',
area_mode: '面積',
- rose_radius: '園角',
+ rose_radius: '圓角',
view_name: '視圖標題',
belong_group: '所屬分組',
select_group: '選擇分組',
- name_can_not_empty: '名稱不能為空',
- template_can_not_empty: '請選擇儀表板',
+ name_can_not_empty: '名稱不能爲空',
+ template_can_not_empty: '請選擇儀表版',
custom_count: '記錄數',
table_title_fontsize: '表頭字體大小',
table_item_fontsize: '表格字體大小',
table_header_bg: '表頭背景',
table_item_bg: '表格背景',
- table_item_font_color: '字體顏色',
+ table_item_font_color: '字體顔色',
stripe: '斑馬紋',
start_angle: '起始角度',
end_angle: '結束角度',
style_priority: '樣式優先級',
dashboard: '儀表板',
- dimension_color: '名稱顏色',
- quota_color: '值顏色',
+ dimension_color: '名稱顔色',
+ quota_color: '值顔色',
dimension_font_size: '名稱字體大小',
quota_font_size: '值字體大小',
space_split: '名稱/值間隔',
@@ -743,11 +791,11 @@ export default {
only_one_result: '僅顯示第1個計算結果',
dimension_show: '名稱顯示',
quota_show: '值顯示',
- title_limit: '標題不能大於50個字符',
+ title_limit: '標題不能大于50個字符',
filter_condition: '過濾條件',
filter_field_can_null: '過濾字段必填',
preview_100_data: '預覽前100條記錄',
- chart_table_normal: '匯總表',
+ chart_table_normal: '彙總表',
chart_table_info: '明細表',
chart_card: '指標卡',
chart_bar: '基礎柱狀圖',
@@ -775,24 +823,24 @@ export default {
chartName: '新建視圖',
chart_show_error: '無法正常顯示',
chart_error_tips: '如有疑問請聯系管理員',
- title_cannot_empty: '標題不能為空',
+ title_cannot_empty: '標題不能爲空',
table_title_height: '表頭行高',
table_item_height: '表格行高',
axis_show: '軸線顯示',
- axis_color: '軸線顏色',
+ axis_color: '軸線顔色',
axis_width: '軸線寬度',
axis_type: '軸線類型',
axis_type_solid: '實線',
axis_type_dashed: '虛線',
axis_type_dotted: '點',
axis_label_show: '標簽顯示',
- axis_label_color: '標簽顏色',
+ axis_label_color: '標簽顔色',
axis_label_fontsize: '標簽大小',
text_style: '字體樣式',
bolder: '加粗',
change_ds: '更換數據集',
- change_ds_tip: '提示:更換數據集將導致字段發生變化,需重新製作視圖',
- axis_name_color: '名稱顏色',
+ change_ds_tip: '提示:更換數據集將導致字段發生變化,需重新制作視圖',
+ axis_name_color: '名稱顔色',
axis_name_fontsize: '名稱字體',
pie_label_line_show: '引導線',
outside: '外',
@@ -802,10 +850,10 @@ export default {
axis_label: '軸標簽',
label_fontsize: '標簽大小',
split_line: '分割線',
- split_color: '分割顏色',
+ split_color: '分割顔色',
shadow: '陰影',
condition: '過濾值',
- filter_value_can_null: '過濾值不能為空',
+ filter_value_can_null: '過濾值不能爲空',
filter_like: '包含',
filter_not_like: '不包含',
color_light: '明亮',
@@ -840,7 +888,7 @@ export default {
chart_scatter: '散點圖',
bubble_size: '氣泡大小',
chart_treemap: '矩形樹圖',
- drill: '鉆取',
+ drill: '鑽取',
drag_block_treemap_label: '色塊標簽',
drag_block_treemap_size: '色塊大小',
bubble_symbol: '圖形',
@@ -879,7 +927,7 @@ export default {
liquid_shape_rect: '矩形'
},
dataset: {
- sheet_warn: '有多個sheet頁面,默認抽取第一個',
+ sheet_warn: '有多個 Sheet 頁,默認抽取第一個',
datalist: '數據集',
name: '數據集名稱',
add_group: '添加分組',
@@ -920,7 +968,7 @@ export default {
time: '時間',
value: '數值',
mode: '模式',
- direct_connect: '直鏈',
+ direct_connect: '直連',
sync_data: '定時同步',
update_setting: '更新設置',
sync_now: '立即更新',
@@ -939,10 +987,10 @@ export default {
add_scope: '增量更新',
select_data_time: '選擇日期時間',
execute_rate: '執行頻率',
- simple_cron: '簡單重複',
execute_once: '立即執行',
- cron_config: '表達時設定',
- no_limit: '無限製',
+ simple_cron: '簡單重複',
+ cron_config: '表達式設定',
+ no_limit: '無限制',
set_end_time: '設定結束時間',
operate: '操作',
save_success: '保存成功',
@@ -952,7 +1000,7 @@ export default {
add_sql_table: '添加 SQL 數據集',
preview: '預覽',
pls_input_name: '請輸入名稱',
- connect_mode: '鏈接模式',
+ connect_mode: '連接模式',
incremental_update_type: '增量更新方式',
incremental_add: '增量添加',
incremental_delete: '增量刪除',
@@ -961,7 +1009,7 @@ export default {
param: '參數',
edit_sql: '編輯 SQL 數據集',
showRow: '顯示行',
- add_excel_table: ' 添加 Excel 數據集',
+ add_excel_table: '添加Excel數據集',
add_custom_table: '添加自定義數據集',
upload_file: '上傳文件',
detail: '詳情',
@@ -983,14 +1031,14 @@ export default {
source_field: '關聯字段',
target_table: '被關聯表',
target_field: '被關聯字段',
- union_relation: '關聯關係',
- pls_setting_union_success: '請正確設置關聯關係',
- invalid_dataset: ' Kettle 未運行,無效數據集',
- check_all: '銓選',
+ union_relation: '關聯關系',
+ pls_setting_union_success: '請正確設置關聯關系',
+ invalid_dataset: 'Kettle未運行,無效數據集',
+ check_all: '全選',
can_not_union_self: '被關聯表不能與關聯表相同',
float: '小數',
- edit_custom_table: '編輯自助數據集',
- edit_field: '編輯自斷',
+ edit_custom_table: '編輯自定義數據集',
+ edit_field: '編輯字段',
preview_100_data: '顯示前100行數據',
invalid_table_check: '非直連數據集請先完成數據同步',
parse_error: 'Excel解析失敗,請檢查格式、字段等信息。具體參考:https://dataease.io/docs/faq/dataset_faq/',
@@ -1008,7 +1056,7 @@ export default {
sync_latter: '稍後同步',
task: {
list: '任務列表',
- record: '執行紀錄',
+ record: '執行記錄',
create: '新建任務',
name: '任務名稱',
last_exec_time: '上次執行時間',
@@ -1044,10 +1092,10 @@ export default {
calc_field: '計算字段',
show_sql: '顯示SQL',
ple_select_excel: '請選擇要導入的 Excel',
- merge: '合併',
- no_merge: '不合併',
- merge_msg: '數據表中存在自斷一直的情況,是否合併到一個數據集中?',
- merge_title: '合併數據',
+ merge: '合並',
+ no_merge: '不合並',
+ merge_msg: '數據表中存在字段一致的情況,是否合並到一個數據集中?',
+ merge_title: '合並數據',
field_name_less_50: '字段名不能超過50個字符'
},
datasource: {
@@ -1062,17 +1110,20 @@ export default {
password: '密碼',
host: '主機名/IP地址',
port: '端口',
+ datasource_url: '地址',
+ please_input_datasource_url: '請輸入 Elasticsearch 地址,如: http://es_host:es_port',
please_input_data_base: '請輸入數據庫名稱',
+ please_select_oracle_type: '選擇連接類型',
please_input_user_name: '請輸入用戶名',
please_input_password: '請輸入密碼',
please_input_host: '請輸入主機',
please_input_url: '請輸入URL地址',
- please_input_port: '請輸入',
+ please_input_port: '請輸入端口',
modify: '編輯數據源',
validate_success: '校驗成功',
validate: '校驗',
search_by_name: '根據名稱搜索',
- delete_warning: '確認刪除?',
+ delete_warning: '確定要刪除嗎?',
input_name: '請輸入名稱',
input_limit_2_25: '2-25字符',
input_limit_0_50: '0-50字符',
@@ -1082,20 +1133,21 @@ export default {
get_schema: '獲取 Schema',
schema: '數據庫 Schema',
please_choose_schema: '請選擇數據庫 Schema',
+ edit_datasource_msg: '修改數據源信息,可能會導致改數據源下的數據集不可用,確認修改?',
in_valid: '無效數據源',
- initial_pool_size: '初始連結數',
- min_pool_size: '最小連結數',
- max_pool_size: '最大連結數',
- max_idle_time: '最大空閒(秒)',
+ initial_pool_size: '初始連接數',
+ min_pool_size: '最小連接數',
+ max_pool_size: '最大連接數',
+ max_idle_time: '最大空閑(秒)',
acquire_increment: '增長數',
connect_timeout: '連接超時(秒)',
- please_input_initial_pool_size: '請輸入初始連結數',
- please_input_min_pool_size: '請輸入最小連結數',
- please_input_max_pool_size: '請輸入最大連結數',
- please_input_max_idle_time: '請輸入最大空閒(秒)',
+ please_input_initial_pool_size: '請輸入初始連接數',
+ please_input_min_pool_size: '請輸入最小連接數',
+ please_input_max_pool_size: '請輸入最大連接數',
+ please_input_max_idle_time: '請輸入最大空閑(秒)',
please_input_acquire_increment: '請輸入增長數',
please_input_connect_timeout: '請輸入連接超時(秒)',
- no_less_then_0: '高級設置中的參數不能小於零',
+ no_less_then_0: '高級設置中的參數不能小于零',
priority: '高級設置'
},
pblink: {
@@ -1110,14 +1162,14 @@ export default {
auth_role: '已分享角色',
picture_limit: '只能插入圖片',
drag_here: '請將左側字段拖至此處',
- copy_link_passwd: '複製鏈接及密碼',
- copy_link: '複製鏈接',
- copy_short_link: '複製短鏈接',
- copy_short_link_passwd: '複製短鏈接及密碼',
+ copy_link_passwd: '複制鏈接及密碼',
+ copy_link: '複制鏈接',
+ copy_short_link: '複制短鏈接',
+ copy_short_link_passwd: '複制短鏈接及密碼',
passwd_protect: '密碼保護',
link: '鏈接',
link_share: '鏈接分享',
- link_share_desc: '開啟鏈接後,任何人可通過此鏈接訪問儀表板。',
+ link_share_desc: '開啓鏈接後,任何人可通過此鏈接訪問儀表板。',
share: '分享',
datalist: '視圖列表',
group: '目錄',
@@ -1139,7 +1191,7 @@ export default {
view: '視圖',
module: '組件',
filter_module: '過濾組件',
- select_by_module: '安組件選擇',
+ select_by_module: '按組件選擇',
edit: '編輯',
sys_template: '系統模板',
user_template: '用戶模板',
@@ -1153,12 +1205,12 @@ export default {
photo: '圖片',
default_panel: '默認儀表板',
create_public_links: '創建公共鏈接',
- to_default: '另存為默認',
- to_default_panel: '另存為默認儀表板',
+ to_default: '另存爲默認',
+ to_default_panel: '另存爲默認儀表板',
store: '收藏',
- save_to_panel: '保存為模板',
- export_to_panel: '導出為模板',
- export_to_pdf: '導出為PDF',
+ save_to_panel: '保存爲模板',
+ export_to_panel: '導出爲模板',
+ export_to_pdf: '導出爲PDF',
preview: '預覽',
fullscreen_preview: '全屏預覽',
new_tab_preview: '新Tab頁預覽',
@@ -1169,21 +1221,21 @@ export default {
all_org: '所有組織',
custom: '自定義',
import_template: '導入模板',
- copy_template: '復用模板',
+ copy_template: '複用模板',
upload_template: '上傳模板',
belong_to_category: '所屬類別',
pls_select_belong_to_category: '請選擇所屬類別',
- template_name_cannot_be_empty: '模板名稱不能為空',
- select_by_table: '列表選擇',
+ template_name_cannot_be_empty: '模板名稱不能爲空',
+ select_by_table: '按表選擇',
data_list: '數據列表',
component_list: '組件列表',
- custom_scope: '自定義控製範圍',
+ custom_scope: '自定義控制範圍',
multiple_choice: '多選',
single_choice: '單選',
field: '字段',
unshared_people: '未分享人員',
shared_people: '已分享人員',
- error_data: '獲取數據出錯,請聯繫管理員',
+ error_data: '獲取數據出錯,請聯系管理員',
canvas_size: '畫布大小',
canvas_scale: '畫布比例',
style: '樣式',
@@ -1192,7 +1244,7 @@ export default {
redo: '重做',
undo: '撤銷',
panelNull: '這是個空的儀表板,可以通過編輯來豐富內容',
- copy: '復製',
+ copy: '複制',
paste: '粘貼',
cut: '剪切',
lock: '鎖定',
@@ -1210,11 +1262,11 @@ export default {
top: 'y 坐標',
height: '高',
width: '寬',
- color: '顏色',
+ color: '顔色',
backgroundColor: '背景色',
borderStyle: '邊框風格',
borderWidth: '邊框寬度',
- borderColor: '邊框顏色',
+ borderColor: '邊框顔色',
borderRadius: '邊框半徑',
fontSize: '字體大小',
fontWeight: '字體粗細',
@@ -1267,12 +1319,21 @@ export default {
uninstall_cancel: '取消卸載插件'
},
display: {
- logo: '頭部系統 Logo',
- loginLogo: '登陸頁面頭部 Logo',
- loginImage: '登陸頁面右側圖片',
- loginTitle: '登陸頁面標題',
+ logo: '頭部系統logo',
+ loginLogo: '登錄頁面頭部logo',
+ loginImage: '登錄頁面右側圖片',
+ loginTitle: '登錄頁面標題',
title: '系統名稱',
- advice_size: '建議圖片大小'
+ advice_size: '建議圖片大小',
+ theme: '主題顔色',
+
+ topMenuColor: '頭部背景',
+ topMenuActiveColor: '頭部選中背景',
+
+ topMenuTextColor: '頭部字體顔色',
+
+ topMenuTextActiveColor: '頭部字體選中顔色'
+
},
auth: {
authConfig: '權限配置',
@@ -1292,6 +1353,7 @@ export default {
datasetAuthHead: '所有數據集',
chartAuthHead: '所有視圖',
panelAuthHead: '所有儀表板',
+ menuAuthHead: '所有菜單和操作',
view: '查看',
use: '使用',
export: '導出',
@@ -1306,13 +1368,13 @@ export default {
auth_num: '授權數量',
version: '版本',
version_num: '版本號',
- standard: '標準版',
+ standard: '標准版',
enterprise: '企業版',
suport: '獲取技術支持',
update_success: '更新成功'
},
template: {
- exit_same_template_check: '當前存在相同名稱模板,是否覆蓋?',
+ exit_same_template_check: '當前分類存在相同名稱模板,是否覆蓋?',
override: '覆蓋',
cancel: '取消',
confirm_upload: '上傳確認'
@@ -1328,8 +1390,8 @@ export default {
month: '月',
week: '周',
year: '年',
- d_w_cant_not_set: '日期與星期不可以同時為“不指定”',
- d_w_must_one_set: '日期與星期必須有一個為“不指定”',
+ d_w_cant_not_set: '日期與星期不可以同時爲“不指定”',
+ d_w_must_one_set: '日期與星期必須有一個爲“不指定”',
every_day: '每日',
cycle: '周期',
not_set: '不指定',
@@ -1357,15 +1419,15 @@ export default {
week_end: '至星期',
every_year: '每年',
week_tips: '說明:1-7 分別對應 周日-周六',
- minute_limit: '分鐘不能小於1,大於59',
- hour_limit: '小時不能小於1,大於523',
- day_limit: '天不能小於1,大於531'
+ minute_limit: '分鍾不能小于1,大于59',
+ hour_limit: '小時不能小于1,大于23',
+ day_limit: '天不能小于1,大于31'
},
dept: {
can_not_move_change_sort: '不能移動以改變排序',
can_not_move_parent_to_children: '父組織不能移動到自己的子節點下',
move_success: '移動成功',
- name_exist_pre: '下已存在名稱為【',
+ name_exist_pre: '下已存在名稱爲【',
name_exist_suf: '】的組織',
root_org: '頂層組織'
},
diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js
index a36a7ef9f0..d952758531 100644
--- a/frontend/src/lang/zh.js
+++ b/frontend/src/lang/zh.js
@@ -433,6 +433,11 @@ export default {
fixedHeader: '固定 Header',
sidebarLogo: '侧边栏 Logo'
},
+ sysParams: {
+ display: '显示设置',
+ ldap: 'LDAP设置',
+ oidc: 'OIDC设置'
+ },
license: {
i18n_no_license_record: '没有 License 记录',
i18n_license_is_empty: 'License 为空',
@@ -539,6 +544,8 @@ export default {
logout_endpoint: '请输入logoutEndpoint',
clientId: '请输入ClientId',
secret: '请输入Secret',
+ scope: '请输入scope',
+ redirectUrl: '请输入redirectUrl',
open: '启用OIDC认证'
},
role: {
@@ -1098,11 +1105,14 @@ export default {
create: '新建数据源',
type: '类型',
please_choose_type: '请选择数据源类型',
+ please_choose_data_type: '请选择计算模式',
data_base: '数据库名称',
user_name: '用户名',
password: '密码',
host: '主机名/IP地址',
port: '端口',
+ datasource_url: '地址',
+ please_input_datasource_url: '请输入 Elasticsearch 地址,如: http://es_host:es_port',
please_input_data_base: '请输入数据库名称',
please_select_oracle_type: '选择连接类型',
please_input_user_name: '请输入用户名',
@@ -1139,7 +1149,11 @@ export default {
please_input_acquire_increment: '请输入增长数',
please_input_connect_timeout: '请输入连接超时(秒)',
no_less_then_0: '高级设置中的参数不能小于零',
- priority: '高级设置'
+ priority: '高级设置',
+ data_mode: '数据模式',
+ direct: '直连模式',
+ extract: '抽取模式',
+ all_compute_mode: '直连、抽取模式'
},
pblink: {
key_pwd: '请输入密码打开链接',
diff --git a/frontend/src/settings.js b/frontend/src/settings.js
index cb801dc20c..10faf444f4 100644
--- a/frontend/src/settings.js
+++ b/frontend/src/settings.js
@@ -3,6 +3,9 @@ module.exports = {
RefreshTokenKey: 'refreshauthorization',
LinkTokenKey: 'LINK-PWD-TOKEN',
title: 'DataEase',
+ /* for sso */
+ IdTokenKey: 'IdToken',
+ AccessTokenKey: 'AccessToken',
/**
* @type {boolean} true | false
diff --git a/frontend/src/store/index.js b/frontend/src/store/index.js
index 46370c74d9..850cbfe545 100644
--- a/frontend/src/store/index.js
+++ b/frontend/src/store/index.js
@@ -58,7 +58,9 @@ const data = {
// 和当前组件联动的目标组件
targetLinkageInfo: [],
// 当前仪表板联动 下钻 上卷等信息
- nowPanelTrackInfo: {}
+ nowPanelTrackInfo: {},
+ // 拖拽的组件信息
+ dragComponentInfo: null
},
mutations: {
...animation.mutations,
@@ -79,10 +81,20 @@ const data = {
},
setCanvasStyle(state, style) {
+ if (style) {
+ style['selfAdaption'] = true
+ }
state.canvasStyleData = style
},
setCurComponent(state, { component, index }) {
+ // 当前视图操作状态置空
+ if (component) {
+ component['optStatus'] = {
+ dragging: false,
+ resizing: false
+ }
+ }
state.styleChangeTimes = 0
state.curComponent = component
state.curComponentIndex = index
@@ -244,6 +256,12 @@ const data = {
}
})
// state.styleChangeTimes++
+ },
+ setDragComponentInfo(state, dragComponentInfo) {
+ state.dragComponentInfo = dragComponentInfo
+ },
+ clearDragComponentInfo(state) {
+ state.dragComponentInfo = null
}
},
modules: {
diff --git a/frontend/src/utils/auth.js b/frontend/src/utils/auth.js
index fc3495d957..dbefb1bcb2 100644
--- a/frontend/src/utils/auth.js
+++ b/frontend/src/utils/auth.js
@@ -3,8 +3,16 @@ import Config from '@/settings'
const TokenKey = Config.TokenKey
+const IdTokenKey = Config.IdTokenKey
+
+const AccessTokenKey = Config.AccessTokenKey
+
const linkTokenKey = Config.LinkTokenKey
+export function getIdToken() {
+ return Cookies.get(IdTokenKey)
+}
+
export function getToken() {
return Cookies.get(TokenKey)
}
@@ -14,6 +22,8 @@ export function setToken(token) {
}
export function removeToken() {
+ Cookies.remove(IdTokenKey)
+ Cookies.remove(AccessTokenKey)
return Cookies.remove(TokenKey)
}
diff --git a/frontend/src/utils/request.js b/frontend/src/utils/request.js
index d71460fee2..7495787389 100644
--- a/frontend/src/utils/request.js
+++ b/frontend/src/utils/request.js
@@ -2,7 +2,7 @@ import axios from 'axios'
// import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import { $alert, $error } from './message'
-import { getToken } from '@/utils/auth'
+import { getToken, getIdToken } from '@/utils/auth'
import Config from '@/settings'
import i18n from '@/lang'
import { tryShowLoading, tryHideLoading } from './loading'
@@ -23,6 +23,10 @@ const service = axios.create({
service.interceptors.request.use(
config => {
// do something before request is sent
+ const idToken = getIdToken()
+ if (idToken) {
+ config.headers[Config.IdTokenKey] = idToken
+ }
if (store.getters.token) {
// let each request carry token
diff --git a/frontend/src/views/chart/components/drag-item/ChartDragItem.vue b/frontend/src/views/chart/components/drag-item/ChartDragItem.vue
index 0b5ba92f6f..400fadab32 100644
--- a/frontend/src/views/chart/components/drag-item/ChartDragItem.vue
+++ b/frontend/src/views/chart/components/drag-item/ChartDragItem.vue
@@ -49,7 +49,45 @@
-
+
+
+
+
+
+ {{ $t('chart.y') }}
+ {{ $t('chart.y_M') }}
+ {{ $t('chart.y_M_d') }}
+ {{ $t('chart.H_m_s') }}
+ {{ $t('chart.y_M_d_H_m') }}
+ {{ $t('chart.y_M_d_H_m_s') }}
+
+
+
+
+
+
+
+ {{ $t('chart.date_sub') }}(1990-01-01)
+ {{ $t('chart.date_split') }}(1990/01/01)
+
+
+
+
+