feat: 国际化

This commit is contained in:
taojinlong 2021-05-14 18:51:35 +08:00
parent e963e586f5
commit da8e447349
28 changed files with 902 additions and 421 deletions

View File

@ -80,12 +80,198 @@ export default {
password: 'Password',
any: 'any',
thirdparty: 'Or connect with',
thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !'
thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !',
expires: 'Login token expired, please login again',
tokenError: 'Token error, please login again'
},
commons: {
button: {
login: 'Login'
}
enable: 'Enable',
disable: 'Disable',
yes: 'Yes',
no: 'No',
reset: 'Reset',
gender: 'Gender',
catalogue: 'Catalogue',
button: 'Button',
man: 'Man',
woman: 'Woman',
nick_name: 'Nick Name',
upload: 'Upload',
cover: 'Cover',
not_cover: 'Not Cover',
import_mode: 'Import Mode',
import_module: 'Import module',
please_fill_in_the_template: 'Please fill in the template',
cut_back_old_version: 'Switch back to the old version',
cut_back_new_version: 'Switch back to the new version',
comment: 'Comments',
examples: 'Examples',
help_documentation: 'Help document',
api_help_documentation: 'API document',
delete_cancelled: 'Deletion canceled',
workspace: 'Workspace',
organization: 'Organization',
menu: 'Menu',
setting: 'Setting',
project: 'Project',
about_us: 'About Us',
current_project: 'Current Project',
name: 'Name',
description: 'Description',
annotation: 'Annotation',
clear: 'Clean',
save: 'Save',
update: 'Update',
save_success: 'Saved successfully',
delete_success: 'deleted successfully',
copy_success: 'Copy succeeded',
modify_success: 'Modified successfully',
delete_cancel: 'Deletion canceled',
confirm: 'Confirm',
cancel: 'Cancel',
prompt: 'Tips',
operating: 'Operation',
input_limit: 'The length is between {0} and {1} characters',
login: 'Login',
welcome: 'One stop open source data analysis platform',
username: 'User Name',
password: 'Pass word',
input_username: 'Please enter the user name',
input_password: 'Please input a password',
test: 'Test',
create_time: 'Create Time',
update_time: 'Update Time',
add: 'Add',
member: 'Member',
email: 'Email',
phone: 'Phone',
role: 'Role',
personal_info: 'Personal Info',
api_keys: 'API Keys',
quota: 'Quota',
status: 'Status',
show_all: 'Show All',
show: 'Show',
report: 'Report',
user: 'User',
system: 'System',
personal_setting: 'Personal Setting',
test_resource_pool: 'Test Resource Pool',
system_setting: 'System Setting',
input_content: 'Please input the content',
create: 'Create',
edit: 'Edit',
copy: 'Copy',
refresh: 'Refresh',
remark: 'Remark',
delete: 'Delete',
reduction: 'Recovery',
not_filled: 'Not Filled',
please_select: 'Please Select',
search_by_name: 'Search by name',
personal_information: 'Personal Information',
exit_system: 'Exit System',
verification: 'Verification',
title: 'Title',
custom: 'Custom',
select_date: 'Select Date',
months_1: 'January',
months_2: 'February',
months_3: 'March',
months_4: 'April',
months_5: 'May',
months_6: 'June',
months_7: 'July',
months_8: 'August',
months_9: 'September',
months_10: 'October',
months_11: 'November',
months_12: 'December',
weeks_0: 'Sunday',
weeks_1: 'Monday',
weeks_2: 'Tuesday',
weeks_3: 'Wednesday',
weeks_4: 'Thursday',
weeks_5: 'Friday',
weeks_6: 'Saturday',
system_parameter_setting: 'System Parameter Setting',
connection_successful: 'Connection Successful',
connection_failed: 'Connection Failed',
save_failed: 'Save Failed',
host_cannot_be_empty: 'Host cannot be empty',
port_cannot_be_empty: 'Port cannot be empty',
account_cannot_be_empty: 'Account cannot be empty',
remove: 'Remove',
remove_cancel: 'Remove Cancel',
remove_success: 'Remove Success',
tips: 'The authentication information has expired. Please login again.',
not_performed_yet: 'Not yet implemented',
incorrect_input: 'Incorrect Input',
delete_confirm: 'Please enter the following to confirm the deletion:',
login_username: 'ID or Email',
input_login_username: 'Please enter user ID or email',
input_name: 'Please enter user name',
please_upload: 'Please upload the file',
please_fill_path: 'Please fill in the URL path',
formatErr: 'Format Error',
please_save: 'Please Save',
reference_documentation: 'Reference documents',
id: 'ID',
millisecond: 'Millisecond',
cannot_be_null: 'Cannot be null',
required: '{0} is required',
already_exists: 'Already Exists',
modifier: 'Modifier',
validate: 'Validate',
batch_add: 'Batch Add',
tag_tip: 'Enter add label',
table: {
select_tip: '{0} data selected'
},
date: {
select_date: 'Select Date',
start_date: 'Start Date',
end_date: 'End Date',
select_date_time: 'Select date time',
start_date_time: 'Start date time',
end_date_time: 'End date time',
range_separator: 'to',
data_time_error: 'The start date cannot be greater than the end date.'
},
adv_search: {
title: 'Advanced search',
combine: 'Combined query',
test: 'Test',
project: 'Project',
search: 'Search',
reset: 'Reset',
and: 'All',
or: 'Any one',
operators: {
is_empty: 'Empty',
is_not_empty: 'Not empty',
like: 'Contain',
not_like: 'Not Contain',
in: 'In',
not_in: 'Not in',
gt: 'Greater Than',
ge: 'Greater than or equal to',
lt: 'Less Than',
le: 'Less than or equal to',
equals: 'equals',
not_equals: 'Not equals',
between: 'between',
current_user: 'Current User'
}
},
monitor: 'Monitor',
image: 'Image',
tag: 'Tag',
module: {
select_module: 'Select Module',
default_module: 'Default Module'
},
datasource: 'Datasource'
},
documentation: {
documentation: 'Documentation',
@ -177,5 +363,477 @@ export default {
tagsView: 'Open Tags-View',
fixedHeader: 'Fixed Header',
sidebarLogo: 'Sidebar Logo'
},
license: {
title: 'Authorization Management',
corporation: 'Customer Name',
time: 'Authorization Time',
product: 'Product',
edition: 'Edition',
licenseVersion: 'Authorized Version',
count: 'Authorized Count',
valid_license: 'Valid License',
show_license: 'Show License',
valid_license_error: 'Verification failed',
status: 'Authorization status',
valid: 'Valid',
invalid: 'Invalid',
expired: 'Expired'
},
member: {
create: 'Add members',
modify: 'Modify members',
delete_confirm: 'Comfirm to delete this user?',
please_choose_member: 'Please choose member',
search_by_name: 'Search by name',
modify_personal_info: 'Modify personal info',
edit_password: 'Edit Password',
edit_information: 'Edit Information',
input_name: 'Input Name',
input_email: 'Input Email',
special_characters_are_not_supported: 'Special characters are not supported',
mobile_number_format_is_incorrect: 'Incorrect format of mobile phone number',
email_format_is_incorrect: 'The mailbox format is incorrect',
password_format_is_incorrect: 'Valid password: 8-30 digits, English upper and lower case letters + numbers + special characters (optional)',
old_password: 'Old Password',
new_password: 'New Password',
repeat_password: 'Confirm Password',
inconsistent_passwords: 'The two passwords are inconsistent',
remove_member: 'Confirm to remove the member',
org_remove_member: 'Removing the user from the organization will remove the permissions of all workspaces in the organization. Confirm to remove the member?',
input_id_or_email: 'Please enter user ID or user email',
no_such_user: 'No such user information, please enter the correct user ID or user email.'
},
user: {
create: 'Create User',
modify: 'Modify User',
input_name: 'Please enter user name',
input_id: 'Please enter user ID',
input_email: 'Please input email',
input_password: 'Please input a password',
input_phone: 'Please enter the phone number',
input_roles: 'Please select role',
special_characters_are_not_supported: 'Special characters are not supported',
mobile_number_format_is_incorrect: 'Incorrect format of mobile phone number',
email_format_is_incorrect: 'The mailbox format is incorrect',
delete_confirm: 'Confirm to delete this user?',
apikey_delete_confirm: 'Confirm to delete this API key?',
input_id_placeholder: 'Please enter ID (Chinese is not supported)',
source: 'User Source',
choose_org: 'Choose Organization'
},
role: {
menu_authorization: 'Menu Authorization',
data_authorization: 'Data Authorization',
please_choose_role: 'Please select role',
admin: 'Administrator',
org_admin: 'Organization Administrator',
org_member: 'Organization Member',
add: 'Add Role',
delete: 'Delete Role',
modify: 'Modify Role'
},
menu: {
parent_category: 'Parent Category',
module_name: 'Module Name',
module_path: 'Module Path',
route_addr: 'Route Address',
menu_sort: 'Menu Sort',
authority_identification: 'Authority Identification',
button_name: 'Button Name',
select_icon: 'Click the select icon',
create_time: 'Create Time',
tile: 'Menu Title',
create: 'Create Menu',
modify: 'Modify Menu',
delete: 'Delete Menu',
delete_confirm: 'Confirm to delete Menu?'
},
organization: {
parent_org: 'Parent Organization',
select_parent_org: 'Select parent organization',
top_org: 'Top Organization',
name: 'Name',
sort: 'Sort',
sub_organizations: 'Sub Organizations',
create_time: 'Create Time',
create: 'Create',
modify: 'Modify',
delete: 'Delete',
delete_confirm: '删除该组织会关联删除该组织下的所有资源(如:相关工作空间,项目,测试用例等),确定要删除吗?',
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: '删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?'
},
system_parameter_setting: {
mailbox_service_settings: 'Mail Settings',
test_connection: 'Test connection',
SMTP_host: 'SMTP Host',
SMTP_port: 'SMTP Port',
SMTP_account: 'SMTP Account',
SMTP_password: 'SMTP Password',
SSL: 'Turn on SSL (if the SMTP port is 465, you usually need to enable SSL)',
TLS: 'Turn on TLS (if the SMTP port is 587, you usually need to enable TLS)',
SMTP: 'Secret free SMTP',
host: 'Host number cannot be empty',
port: 'Port number cannot be empty',
account: 'Account cannot be empty',
test_recipients: 'Test recipients',
tip: 'Tip: use as test mail recipient only'
},
chart: {
datalist: 'Chart',
add_group: 'Add Group',
add_scene: 'Add Scene',
group: 'Group',
scene: 'Scene',
delete: 'Delete',
move_to: 'Move',
rename: 'Rename',
tips: 'Tips',
confirm_delete: 'Confirm Delete',
delete_success: 'Delete Success',
confirm: 'Confirm',
cancel: 'Cancel',
search: 'Search',
back: 'Back',
add_table: 'Add Table',
process: 'Speed of progress',
add_chart: 'Add Chart',
db_data: 'Database Table',
sql_data: 'SQL data set',
excel_data: 'Excel data set',
custom_data: 'Custom data set',
pls_slc_tbl_left: 'Please select the chart from the left',
add_db_table: 'Add database table',
pls_slc_data_source: 'Please select data source',
table: 'Table',
edit: 'Edit',
create_view: 'Create Chart',
data_preview: 'Data preview',
dimension: 'Dimension',
quota: 'Index',
title: 'Title',
show: 'Show',
chart_type: 'Chart Type',
shape_attr: 'Chart properties',
module_style: 'Component Style',
result_filter: 'Results Filter',
x_axis: 'Horizontal axis',
y_axis: 'Longitudinal axis',
chart: 'Chart',
close: 'Close',
summary: 'Summary Method',
fast_calc: 'Fast Calculation',
sum: 'Sum',
count: 'Count',
avg: 'Avg',
max: 'Max',
min: 'Min',
stddev_pop: 'Standard Deviation',
var_pop: 'Variance',
quick_calc: 'Fast calculation',
show_name_set: 'Display name setting',
color: 'Color',
color_case: 'Color Scheme',
pls_slc_color_case: 'Please choose a color scheme',
color_default: 'Default',
color_retro: 'Retro',
color_future: 'Future',
color_gradual: 'Gradual',
color_business: 'Business',
color_gentle: 'Gentle',
color_elegant: 'Elegant',
color_technology: 'Technology',
color_simple: 'Simple',
not_alpha: 'Opacity',
size: 'Size',
bar_width: 'Column Width',
bar_gap: 'Column septum',
adapt: 'Self-adaption',
line_width: 'line_width',
line_type: 'line_type',
line_symbol: 'Break point',
line_symbol_size: 'Break point size',
line_type_solid: 'Solid line',
line_type_dashed: 'Dotted line',
line_symbol_circle: 'circular',
line_symbol_emptyCircle: 'Hollow circle',
line_symbol_rect: 'rectangle',
line_symbol_roundRect: 'Rounded rectangle',
line_symbol_triangle: 'triangle',
line_symbol_diamond: 'diamond',
line_symbol_pin: 'nail',
line_symbol_arrow: 'arrow',
line_symbol_none: 'None',
line_area: 'area',
pie_inner_radius: 'inner_radius',
pie_outer_radius: 'outer_radius',
funnel_width: 'width',
line_smooth: 'Smooth polyline',
title_style: 'Title Style',
text_fontsize: 'font size',
text_color: 'Font color',
text_h_position: 'Horizontal position',
text_v_position: 'Vertical position',
text_pos_left: 'Left',
text_pos_center: 'Center',
text_pos_right: 'Right',
text_pos_top: 'Top',
text_pos_bottom: 'Bottom',
text_italic: 'italic',
italic: 'italic',
orient: 'direction',
horizontal: 'horizontal',
vertical: 'vertical',
legend: 'legend',
shape: 'shape',
polygon: 'polygon',
circle: 'circular',
label: 'label',
label_position: 'Label location',
content_formatter: 'Content Format',
inside: 'Inside',
tooltip: 'Tips',
tooltip_item: 'Data Item',
tooltip_axis: 'Coordinate Axis',
formatter_plc: 'When the content format is empty, the default format is displayed',
xAxis: 'Horizontal axis',
yAxis: 'Longitudinal axis',
position: 'Position',
rotate: 'Angle',
name: 'Name',
icon: 'Icon',
trigger_position: 'Trigger Position',
asc: 'Ascending Order',
desc: 'Descending Order',
sort: 'Sort',
filter: 'Filter',
none: 'None',
background: 'Background',
alpha: 'Transparency',
add_filter: 'Add Filter',
no_limit: 'No limit',
filter_eq: 'Equal',
filter_not_eq: 'Not Equal',
filter_lt: 'Less Than',
filter_le: 'Less than or equal to',
filter_gt: 'Greater than',
filter_ge: 'Greater than or equal to',
filter_null: 'Empty',
filter_not_null: 'Not Empty',
filter_include: 'Contain',
filter_not_include: 'Not Contain',
rose_type: 'Rose pattern',
radius_mode: 'Radius',
area_mode: 'Area',
rose_radius: 'Fillet',
view_name: 'Chart Name',
name_can_not_empty: 'Name cannot be empty',
custom_count: 'Number of records',
table_title_fontsize: 'Font size of header',
table_item_fontsize: 'Table font size',
table_header_bg: 'Header Background',
table_item_bg: 'Table Background',
table_item_font_color: 'Font Color',
stripe: 'Zebra pattern'
},
dataset: {
datalist: 'Data Set',
add_group: 'Add Group',
add_scene: 'Add Scene',
group: 'Group',
scene: 'Scene',
delete: 'Delete',
move_to: 'Move',
rename: 'Rename',
tips: 'Tips',
confirm_delete: 'confirm_delete',
delete_success: 'delete_success',
confirm: 'confirm',
cancel: 'cancel',
search: 'search',
back: 'back',
add_table: 'Add Table',
process: 'Speed of progress',
update: 'update',
db_data: 'Database Table',
sql_data: 'SQL data set',
excel_data: 'Excel data set',
custom_data: 'Custom data set',
pls_slc_tbl_left: 'Please select the chart from the left',
add_db_table: 'Add database table',
pls_slc_data_source: 'Please select data source',
table: 'Table',
edit: 'Edit',
create_view: 'Create Chart',
data_preview: 'Data preview',
field_type: 'Field Type',
field_name: 'Field Name',
field_origin_name: 'Field Origin Name',
field_check: 'Selected',
update_info: 'Update Info',
join_view: 'Associated view',
text: 'Text',
time: 'Time',
value: 'Value',
mode: 'Mode',
direct_connect: 'Direct Link',
sync_data: 'Timing synchronization',
update_setting: 'Update Setting',
sync_now: 'Update Now',
add_task: 'Add Task',
task_name: 'Task Name',
start_time: 'Start Time',
end_time: 'End Time',
status: 'State',
error: 'Error',
completed: 'Completed',
underway: 'underway',
task_update: 'Regular update',
update_type: 'Update Type',
all_scope: 'Full update',
add_scope: 'Incremental update',
select_data_time: 'Select date time',
execute_rate: 'Execution frequency',
execute_once: 'Only once',
cron_config: 'Expression setting',
no_limit: 'No limit',
set_end_time: 'Set the end time',
operate: 'operation',
save_success: 'Saved Successfully',
close: 'Close',
required: 'Required',
input_content: 'Please input the content',
add_sql_table: 'Add SQL',
preview: 'Preview',
pls_input_name: 'Please enter a name',
connect_mode: 'Connection Mode',
incremental_update_type: 'Incremental update mode',
incremental_add: 'Incremental Addition',
incremental_delete: 'Incremental Deletion',
last_update_time: 'Last update time',
current_update_time: 'Current update time',
param: 'Parameter',
edit_sql: 'Edit SQL',
showRow: 'Display line',
add_excel_table: 'Add excel dataset',
add_custom_table: 'Add self help dataset',
upload_file: 'Upload File',
detail: 'Details',
type: 'Type',
create_by: 'Creator',
create_time: 'Create_time',
preview_show: 'Display',
preview_item: '条数据',
preview_total: '共',
pls_input_less_9: '请输入9位以内的正整数',
field_edit: '编辑字段',
table_already_add_to: '该表已添加至',
uploading: 'Uploading...',
add_union: 'Add Associations',
union_setting: 'Association Settings',
pls_slc_union_field: 'Please select associated field',
pls_slc_union_table: 'Please select association table',
source_table: 'Association table',
source_field: 'Associated fields',
target_table: 'Associated table',
target_field: 'Associated field',
union_relation: 'Relationship',
pls_setting_union_success: 'Please set the relationship correctly',
invalid_dataset: 'Kettle is not running, invalid dataset',
check_all: 'Select all',
can_not_union_self: 'The associated table cannot be the same as the associated table',
float: 'Decimal',
edit_custom_table: 'Edit self help dataset',
edit_field: 'Edit field'
},
datasource: {
datasource: 'Data Source',
create: 'Create Data Source',
type: 'Type',
please_choose_type: 'Please select data source type',
data_base: 'Database name',
user_name: 'User Name',
password: 'Password',
host: 'Host',
port: 'Port',
please_input_data_base: 'Please enter the database name',
please_input_user_name: 'Please enter user name',
please_input_password: 'Please enter Password',
please_input_host: 'Please enter host',
please_input_port: 'Please enter port',
modify: 'Edit data Source',
validate_success: 'Verification successful',
validate: 'Validate',
search_by_name: 'Search by name',
delete_warning: 'Deleting this data connection will delete all related data sets under this data connection synchronously. Confirm to delete?'
},
panel: {
share: 'Share',
datalist: 'Chart List',
group: 'Catalogue',
panel: 'Dashboard',
groupAdd: 'Create Catalogue',
panelAdd: 'Create Panle',
delete: 'Delete',
move_to: 'Move',
rename: 'Rename',
tips: 'Tips',
confirm_delete: 'Confirm Delete',
delete_success: 'Delete Success',
confirm: 'Confirm',
cancel: 'Cancle',
search: 'Search',
back: 'Back',
view: 'Chart',
edit: 'Edit',
panel_list: 'Panel List',
module: 'Component',
filter_module: 'Filter Component',
select_by_module: 'Select by Component',
sys_template: 'System Template',
user_template: 'User Template',
add_category: 'Add Category',
filter_keywords: 'Enter keywords to filter',
dashboard_theme: 'Panel Theme',
table: 'Table',
gap: 'Gap',
no_gap: 'No Gap',
component_gap: 'Component Gap',
photo: 'Photo',
default_panel: 'Default Panel',
create_public_links: 'Create public links',
store: 'Store',
save_to_panel: 'Save to template',
export_to_panel: 'Export to template',
preview: 'Preview',
select_panel_from_left: 'Please select panel from left',
template_nale: 'Template name'
},
plugin: {
local_install: 'Local installation',
remote_install: 'Remote installation',
name: 'Plugin name',
free: 'Free',
cost: 'Cost',
descript: 'Descript',
version: 'Version',
creator: 'Creator',
install_time: 'Install Time',
release_time: 'Time',
un_install: 'Uninstall',
uninstall_confirm: 'Comfirm to uninstall the plugin?',
uninstall_cancel: 'Cancel uninstall plugin'
},
display: {
logo: 'Head system logo',
loginLogo: 'Login page header logo',
loginImage: 'Picture on the right side of the login page',
loginTitle: 'Login page title',
title: 'System name'
}
}

View File

@ -85,6 +85,17 @@ export default {
tokenError: 'token错误请重新登录'
},
commons: {
enable: '启用',
disable: '停用',
yes: '是',
no: '否',
reset: '重置',
catalogue: '目录',
button: '按钮',
gender: '性别',
man: '男',
woman: '女',
nick_name: '昵称',
upload: '上传',
cover: '覆盖',
not_cover: '不覆盖',
@ -147,9 +158,6 @@ export default {
personal_setting: '个人设置',
test_resource_pool: '测试资源池',
system_setting: '系统设置',
api: '视图',
dataset: '数据',
functional: '功能测试',
input_content: '请输入内容',
create: '新建',
edit: '编辑',
@ -161,15 +169,12 @@ export default {
not_filled: '未填写',
please_select: '请选择',
search_by_name: '根据名称搜索',
search_by_name_or_id: '根据 ID/名称 搜索',
search_by_id_name_tag: '根据 ID/名称/标签 搜索',
personal_information: '个人信息',
exit_system: '退出系统',
verification: '验证',
title: '标题',
custom: '自定义',
select_date: '选择日期',
calendar_heatmap: '测试日历',
months_1: '一月',
months_2: '二月',
months_3: '三月',
@ -189,7 +194,6 @@ export default {
weeks_4: '周四',
weeks_5: '周五',
weeks_6: '周六',
test_unit: '测试',
system_parameter_setting: '系统参数设置',
connection_successful: '连接成功',
connection_failed: '连接失败',
@ -220,8 +224,6 @@ export default {
modifier: '修改人',
validate: '校验',
batch_add: '批量添加',
check_project_tip: '请先创建或选择项目',
auth_redirect_tip: '即将跳转到认证源页面进行认证',
tag_tip: '输入回车添加标签',
table: {
select_tip: '已选中 {0} 条数据'
@ -236,13 +238,6 @@ export default {
range_separator: '至',
data_time_error: '开始日期不能大于结束日期'
},
trigger_mode: {
name: '触发方式',
manual: '手动触发',
schedule: '定时任务',
api: 'API调用',
case: '用例触发'
},
adv_search: {
title: '高级搜索',
combine: '组合查询',
@ -270,20 +265,13 @@ export default {
}
},
monitor: '监控',
all_label: {
case: '全部用例',
review: '全部评审'
},
image: '镜像',
tag: '标签',
module: {
select_module: '选择模块',
default_module: '默认模块'
},
datasource: '数据连接',
button: {
login: '登录'
}
datasource: '数据连接'
},
documentation: {
documentation: '文档',
@ -431,27 +419,44 @@ export default {
delete_confirm: '这个用户确定要删除吗?',
apikey_delete_confirm: '这个 API Key 确定要删除吗?',
input_id_placeholder: '请输入ID (不支持中文)',
source: '用户来源'
source: '用户来源',
choose_org: '选择组织'
},
role: {
menu_authorization: '菜单授权',
data_authorization: '数据授权',
please_choose_role: '请选择角色',
admin: '系统管理员',
org_admin: '组织管理员',
org_member: '组织成员',
test_manager: '测试经理',
test_user: '测试人员',
test_viewer: '只读用户',
add: '添加角色',
delete: '删除角色',
modify: '修改角色'
},
menu: {
parent_category: '上级目录',
module_name: '组件名称',
module_path: '组件路径',
route_addr: '路由地址',
menu_sort: '菜单排序',
authority_identification: '权限标识',
button_name: '按钮名称',
select_icon: '选择图标',
create_time: '创建日期',
tile: '菜单标题',
create: '创建菜单',
modify: '修改菜单',
delete: '删除菜单',
delete_confirm: '确定删除菜单吗'
},
organization: {
parent_org: '上级组织',
select_parent_org: '选择上级组织',
top_org: '顶级组织',
name: '组织名称',
sort: '组织排序',
sub_organizations: '下属组织数',
create_time: '创建日期',
create: '创建组织',
modify: '修改组织',
delete: '删除组织',
@ -460,67 +465,11 @@ export default {
select_organization: '请选择组织',
search_by_name: '根据名称搜索',
special_characters_are_not_supported: '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)',
none: '无组织',
select: '选择组织',
delete_warning: '删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?',
service_integration: '服务集成',
defect_manage: '缺陷管理平台',
message_settings: '消息设置',
message: {
jenkins_task_notification: 'Jenkins接口调用任务通知',
test_plan_task_notification: '测试计划任务通知',
test_review_task_notice: '测试评审任务通知',
create_new_notification: '创建新通知',
mail_template_example: '邮件模版',
robot_template: '机器人模版',
select_events: '选择事件',
defect_task_notification: '缺陷任务通知',
select_receiving_method: '选择接收方式',
mail: '邮件',
nail_robot: '钉钉机器人',
enterprise_wechat_robot: '企业微信机器人',
notes: '1.钉钉和企业群里新建一个自定义机器人,然后复制 webhook 地址在我们平台上;\n' +
' 2.机器人选择为群机器人,安全验证选择“自定义关键词” "任务通知";\n' +
' 3.选择接收人时必须是你所建的群里包含的人,接收人手机号为必填项且为钉钉企业所使用的手机号,',
message: '事件,接收人,接收方式为必填项',
message_webhook: '接收方式为钉钉和企业机器人时webhook为必填项',
template: '模版'
},
integration: {
select_defect_platform: '请选择要集成的缺陷管理平台:',
basic_auth_info: 'Basic Auth 账号信息:',
api_account: 'API 账号',
api_password: 'API 口令',
app_name: '应用代号',
app_key: '密钥',
account: '账号',
password: '密码',
jira_url: 'JIRA 地址',
jira_issuetype: '问题类型',
input_api_account: '请输入账号',
input_api_password: '请输入密码',
input_jira_url: '请输入Jira地址https://metersphere.atlassian.net/',
input_jira_issuetype: '请输入问题类型',
zentao_url: 'Zentao 地址',
input_zentao_url: '请输入Zentao地址http://xx.xx.xx.xx/zentao/',
use_tip: '使用指引:',
use_tip_tapd: 'Tapd Basic Auth 账号信息在"公司管理-安全与集成-开放平台"中查询',
use_tip_jira: 'Jira software server 认证信息为 账号密码Jira software cloud 认证信息为 账号+令牌(账户设置-安全-创建API令牌)',
use_tip_zentao: '账号密码为具有相应权限的Zentao账号账号需要具有 超级model调用接口权限',
use_tip_two: '保存 Basic Auth 账号信息后,需要在 Metersphere 项目中手动关联 ID/key',
link_the_project_now: '马上关联项目',
cancel_edit: '取消编辑',
cancel_integration: '取消集成',
cancel_confirm: '确认取消集成 ',
successful_operation: '操作成功',
not_integrated: '未集成该平台',
choose_platform: '请选择集成的平台',
verified: '验证通过'
}
delete_warning: '删除该组织将同步删除该组织下所有相关工作空间和相关工作空间下的所有项目,以及项目中的所有用例、接口测试、性能测试等,确定要删除吗?'
},
system_parameter_setting: {
mailbox_service_settings: '邮件设置',
ldap_setting: 'LDAP设置',
test_connection: '测试连接',
SMTP_host: 'SMTP主机',
SMTP_port: 'SMTP端口',
@ -535,22 +484,6 @@ export default {
test_recipients: '测试收件人',
tip: '提示:仅用来作为测试邮件收件人'
},
variables: {
cvs_info: '只能上传CSV文件',
end: '结束',
start: '开始',
increment: '增量',
counter_info: '000产生至少3位数字。user_000输出形式为user_nnn',
config: '配置',
add_file: '添加文件',
delimiter: '分隔符',
format: '输出格式'
},
auth_source: {
delete_prompt: '此操作会删除认证源,是否继续?',
title: '认证设置',
auth_name_valid: '名称不支持特殊字符'
},
chart: {
datalist: '视图',
add_group: '添加分组',
@ -794,7 +727,6 @@ export default {
type: '类型',
create_by: '创建者',
create_time: '创建时间',
preview_100_data: '预览前100行数据',
preview_show: '显示',
preview_item: '条数据',
preview_total: '共',
@ -837,45 +769,15 @@ export default {
modify: '编辑数据连接',
validate_success: '校验成功',
validate: '校验',
delete: '删除组织',
delete_confirm: '删除该组织会关联删除该组织下的所有资源(如:相关工作空间,项目,测试用例等),确定要删除吗?',
input_name: '请输入名称',
input_desc: '请输入描述',
select_organization: '请选择组织',
search_by_name: '根据名称搜索',
special_characters_are_not_supported: '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)',
none: '无组织',
select: '选择组织',
delete_warning: '删除该数据连接将同步删除该数据连接下所有相关的数据集, 确定要删除吗?',
service_integration: '服务集成',
defect_manage: '缺陷管理平台',
message_settings: '消息设置',
message: {
jenkins_task_notification: 'Jenkins接口调用任务通知',
test_plan_task_notification: '测试计划任务通知',
test_review_task_notice: '测试评审任务通知',
create_new_notification: '创建新通知',
mail_template_example: '邮件模版',
robot_template: '机器人模版',
select_events: '选择事件',
defect_task_notification: '缺陷任务通知',
select_receiving_method: '选择接收方式',
mail: '邮件',
nail_robot: '钉钉机器人',
enterprise_wechat_robot: '企业微信机器人',
notes: '1.钉钉和企业群里新建一个自定义机器人,然后复制 webhook 地址在我们平台上;\n' +
' 2.机器人选择为群机器人,安全验证选择“自定义关键词” "任务通知";\n' +
' 3.选择接收人时必须是你所建的群里包含的人,接收人手机号为必填项且为钉钉企业所使用的手机号,',
message: '事件,接收人,接收方式为必填项',
message_webhook: '接收方式为钉钉和企业机器人时webhook为必填项',
template: '模版'
}
delete_warning: '删除该数据源将同步删除该数据源下所有相关的数据集, 确定要删除吗?'
},
panel: {
share: '分享',
datalist: '视图列表',
group: '目录',
panel: '仪表盘',
panel_list: '仪表盘列表',
groupAdd: '新建目录',
panelAdd: '新建仪表盘',
delete: '删除',
@ -889,7 +791,28 @@ export default {
search: '搜索',
back: '返回',
view: '视图',
edit: '编辑'
module: '组件',
filter_module: '过滤组件',
select_by_module: '按组件选择',
edit: '编辑',
sys_template: '系统模板',
user_template: '用户模板',
add_category: '添加分类',
filter_keywords: '输入关键字进行过滤',
dashboard_theme: '仪表盘主题',
table: '表格',
gap: '有间隙',
no_gap: '无间隙',
component_gap: '组件间隙',
photo: '图片',
default_panel: '默认仪表盘',
create_public_links: '创建公共链接',
store: '收藏',
save_to_panel: '保存为模板',
export_to_panel: '导出为模板',
preview: '预览',
select_panel_from_left: '请从左侧选择仪表盘',
template_nale: '模板名称'
},
plugin: {
local_install: '本地安装',

View File

@ -8,14 +8,14 @@
</div>
<el-tabs v-model="activeName" :class="{'de-search-header': showSearchInput}" @tab-click="handleClick">
<el-tab-pane :lazy="true" class="de-tab" label="部门" :name="tabNames[0]"><grant-dept :ref="tabNames[0]" :resource-id="resourceId" :key-word="key" /></el-tab-pane>
<el-tab-pane :lazy="true" class="de-tab" label="角色" :name="tabNames[1]"><grant-role :ref="tabNames[1]" :resource-id="resourceId" :key-word="key" /></el-tab-pane>
<el-tab-pane :lazy="true" class="de-tab" label="用户" :name="tabNames[2]"><grant-user :ref="tabNames[2]" :resource-id="resourceId" :key-word="key" /></el-tab-pane>
<el-tab-pane :lazy="true" class="de-tab" :label="$t('commons.organization')" :name="tabNames[0]"><grant-dept :ref="tabNames[0]" :resource-id="resourceId" :key-word="key" /></el-tab-pane>
<el-tab-pane :lazy="true" class="de-tab" :label="$t('commons.role')" :name="tabNames[1]"><grant-role :ref="tabNames[1]" :resource-id="resourceId" :key-word="key" /></el-tab-pane>
<el-tab-pane :lazy="true" class="de-tab" :label="$t('commons.user')" :name="tabNames[2]"><grant-user :ref="tabNames[2]" :resource-id="resourceId" :key-word="key" /></el-tab-pane>
</el-tabs>
<div class="auth-root-class">
<span slot="footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="save"> </el-button>
<el-button @click="cancel">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" @click="save">{{ $t('commons.confirm') }}</el-button>
</span>
</div>
</div>

View File

@ -8,7 +8,8 @@
:row-style="{height: '35px'}"
@filter-change="filterChange"
>
<el-table-column :column-key="fieldName" :label="columnLabel" :prop="fieldName" filter-placement="right-start" :filters="filter_options" :filter-multiple="false" :filter-method="filterHandler" />
<el-table-column :column-key="fieldName" :label="columnLabel" :prop="fieldName" filter-placement="right-start"
:filters="filter_options" :filter-multiple="false" :filter-method="filterHandler" />
<el-table-column type="selection" fixd />
</el-table>
</div>

View File

@ -9,7 +9,7 @@
<el-col>
<el-row>
<el-col :span="6">
<el-radio v-model="panel.backgroundType" label="color" @change="onChangeType">颜色</el-radio>
<el-radio v-model="panel.backgroundType" label="color" @change="onChangeType">{{$t('chart.color')}}</el-radio>
</el-col>
<el-col :span="18">
<colorPicker v-model="panel.color" style="margin-top: 6px;cursor: pointer;z-index: 1004;border: solid 1px black" />
@ -17,7 +17,7 @@
</el-row>
<el-row style="height: 60px;margin-top:10px;overflow: hidden">
<el-col :span="6">
<el-radio v-model="panel.backgroundType" label="image" @change="onChangeType">图片</el-radio>
<el-radio v-model="panel.backgroundType" label="image" @change="onChangeType">{{$t('panel.photo')}}</el-radio>
</el-col>
<el-col :span="18">
<el-upload
@ -40,7 +40,7 @@
</el-col>
</el-row>
</el-col>
<el-button slot="reference" size="mini" class="shape-item">背景<i class="el-icon-setting el-icon--right" /></el-button>
<el-button slot="reference" size="mini" class="shape-item">{{$t('chart.background')}} <i class="el-icon-setting el-icon--right" /></el-button>
</el-popover>
</div>
</div>

View File

@ -7,10 +7,10 @@
trigger="click"
>
<el-col>
<el-radio v-model="panelStyleForm.gap" label="yes" @change="onChangePanelStyle">有间隙</el-radio>
<el-radio v-model="panelStyleForm.gap" label="no" @change="onChangePanelStyle">无间隙</el-radio>
<el-radio v-model="panelStyleForm.gap" label="yes" @change="onChangePanelStyle">{{ $t('panel.gap') }} </el-radio>
<el-radio v-model="panelStyleForm.gap" label="no" @change="onChangePanelStyle">{{ $t('panel.no_gap') }}</el-radio>
</el-col>
<el-button slot="reference" size="mini" class="shape-item">组件间隙<i class="el-icon-setting el-icon--right" /></el-button>
<el-button slot="reference" size="mini" class="shape-item">{{ $t('panel.component_gap') }} <i class="el-icon-setting el-icon--right" /></el-button>
</el-popover>
</div>
</div>

View File

@ -70,7 +70,7 @@
</ul>
</el-col>
<el-col :span="7" style="margin: auto;height: 30px;font-size:12px;color:#3685f2">
<span><a @click="saveSelfSubject">保存个人主题</a></span>
<span><a @click="saveSelfSubject">{{ $t('commons.save') }}</a></span>
</el-col>
</el-row>
</el-row>

View File

@ -1,6 +1,6 @@
<template>
<el-row class="slider-container">
<div style="height: 40px; line-height: 40px; padding-left: 15px; text-align: left; white-space: pre; text-overflow: ellipsis; left: 0px; right: 0px; top: 0px; font-weight: 700">仪表盘主题</div>
<div style="height: 40px; line-height: 40px; padding-left: 15px; text-align: left; white-space: pre; text-overflow: ellipsis; left: 0px; right: 0px; top: 0px; font-weight: 700">{{ $t('panel.dashboard_theme') }} </div>
<div style="height: 1px; position: absolute; left: 15px; right: 15px; top: 40px; box-sizing:border-box;border-bottom: 1px solid #e8eaed" />
<div>
<slider />
@ -8,34 +8,28 @@
<!--折叠面板-->
<div style="margin: 10px;overflow-y: auto">
<el-collapse v-model="activeNames" @change="handleChange">
<el-collapse-item title="仪表盘" name="panel">
<el-collapse-item :title="$t('panel.panel')" name="panel">
<el-row style="background-color: #f7f8fa; margin: 5px">
<background-selector class="attr-selector" />
<component-gap class="attr-selector" />
</el-row>
</el-collapse-item>
<el-collapse-item title="组件样式" name="component">
<el-collapse-item :title="$t('chart.module_style')" name="component">
<el-row style="background-color: #f7f8fa; margin: 5px">
<title-selector class="attr-selector" :chart="chart" @onTextChange="onTextChange" />
<background-color-selector class="attr-selector" :chart="chart" @onChangeBackgroundForm="onChangeBackgroundForm" />
</el-row>
</el-collapse-item>
<el-collapse-item title="图形属性" name="graphical">
<el-collapse-item :title="$t('chart.shape_attr')" name="graphical">
<el-row style="background-color: #f7f8fa; margin: 5px">
<color-selector :source-type="'panelEchart'" class="attr-selector" :chart="chart" @onColorChange="onColorChange" />
</el-row>
</el-collapse-item>
<el-collapse-item title="表格" name="table">
<el-collapse-item :title="$t('panel.table')" name="table">
<el-row style="background-color: #f7f8fa; margin: 5px">
<color-selector :source-type="'panelTable'" class="attr-selector" :chart="chart" @onColorChange="onColorChange" />
</el-row>
</el-collapse-item>
<!-- <el-collapse-item title="过滤组件" name="filter">-->
<!-- <el-row style="background-color: #f7f8fa; margin: 5px">-->
<!-- <background-selector class="attr-selector" @onChangePanelStyle="onChangePanelStyle" />-->
<!-- <component-gap class="attr-selector" @onChangePanelStyle="onChangePanelStyle" />-->
<!-- </el-row>-->
<!-- </el-collapse-item>-->
</el-collapse>
</div>
</el-row>

View File

@ -4,7 +4,7 @@
<el-row style="margin-left: 5px;margin-right: 5px">
<el-input
v-model="templateFilterText"
placeholder="输入关键字进行过滤"
:placeholder="$t('panel.filter_keywords')"
size="mini"
clearable
prefix-icon="el-icon-search"

View File

@ -2,7 +2,7 @@
<el-row>
<el-row class="de-header">
<span style="float: left;line-height: 35px; color: gray">
名称{{ panelInfo.name || '测试仪表板' }}
{{ $t('commons.name') }} {{ panelInfo.name || '测试仪表板' }}
</span>
<!--横向工具栏-->
<Toolbar @showPanel="showPanel" @close-left-panel="closeLeftPanel" />
@ -19,7 +19,7 @@
<!-- 视图文字 -->
<div style="position: relative; margin: 18px auto 30px">
<div style="max-width: 100%;text-align: center;white-space: nowrap;text-overflow: ellipsis;position: relative;flex-shrink: 0;">
视图
{{ $t('panel.view') }}
</div>
</div>
<!-- 视图分割线 -->
@ -34,7 +34,7 @@
</div>
<div style=" position: absolute;left: 0px;right: 0px;bottom: 10px; height: 16px;">
<div style=" max-width: 100%;text-align: center;white-space: nowrap;text-overflow: ellipsis;position: relative;flex-shrink: 0;">
组件
{{ $t('panel.module') }}
</div>
</div>
</div>
@ -70,17 +70,11 @@
<el-dialog
v-if="filterVisible && panelInfo.id"
title="过滤组件"
:title="$t('panel.module')"
:visible.sync="filterVisible"
custom-class="de-filter-dialog"
>
<filter-dialog v-if="filterVisible && currentWidget" :widget-info="currentWidget" :component-info="currentFilterCom" @re-fresh-component="reFreshComponent">
<!-- <de-drawing-widget
v-if="filterVisible"
style="width: 100% !important;"
class="component"
:service-name="currentWidget.name"
/> -->
<component
:is="currentFilterCom.component"
:id="'component' + currentFilterCom.id"
@ -90,14 +84,10 @@
:in-draw="false"
/>
</filter-dialog>
<!-- <div slot="footer" class="dialog-footer">
<el-button type="text" @click="editPasswordVisible = false">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" @click="editUserPassword('editPasswordForm')">确认</el-button>
</div> -->
<div style="text-align: end !important;margin: 0 15px !important;">
<span slot="footer">
<el-button @click="cancelFilter"> </el-button>
<el-button :disabled="!currentFilterCom.options.attrs.fieldId" type="primary" @click="sureFilter"> </el-button>
<el-button @click="cancelFilter">{{ $t('commons.cancel') }}</el-button>
<el-button :disabled="!currentFilterCom.options.attrs.fieldId" type="primary" @click="sureFilter">{{ $t('commons.confirm') }}</el-button>
</span>
</div>
</el-dialog>

View File

@ -8,7 +8,7 @@
:highlight-current-row="true"
style="width: 100%"
>
<el-table-column prop="name" label="名称">
<el-table-column prop="name" :label="$t('commons.name')">
<template :id="scope.row.storeId" slot-scope="scope">
<div class="start-item">
<div class="filter-db-row star-item-content" @click="showPanel(scope.row)">

View File

@ -12,14 +12,6 @@
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<!-- <div class="component-search filter-common">
<el-input
placeholder="请输入内容"
prefix-icon="el-icon-search"
/>
</div> -->
<!-- <div class="component-result-content filter-common" @dragstart="handleDragStart" @dragend="handleDragEnd"> -->
<div class="component-result-content filter-common">
<el-tree
v-if="showDomType === 'tree'"
@ -38,7 +30,7 @@
:highlight-current-row="true"
style="width: 100%"
>
<el-table-column prop="name" label="名称">
<el-table-column prop="name" :label="$t('commons.name')">
<template v-if="showDomType === 'db'" :id="scope.row.id" slot-scope="scope">
<div class="filter-db-row" @click="showFieldDatas(scope.row)">
<i class="el-icon-s-data" />
@ -68,7 +60,7 @@
</div>
</div>
</el-tab-pane>
<el-tab-pane :lazy="true" class="de-tab" label="按组件选择" name="assembly">
<el-tab-pane :lazy="true" class="de-tab" :label="$t('panel.select_by_module')" name="assembly">
<div class="component-header filter-common">
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item v-for="bread in componentSetBreads" :key="bread.label">
@ -77,12 +69,7 @@
</el-breadcrumb-item>
</el-breadcrumb>
</div>
<!-- <div class="component-search filter-common">
<el-input
placeholder="请输入内容"
prefix-icon="el-icon-search"
/>
</div> -->
<div class="component-result-content filter-common">
<el-table
v-if="comShowDomType === 'view'"
@ -93,7 +80,7 @@
:highlight-current-row="true"
style="width: 100%"
>
<el-table-column prop="name" label="名称">
<el-table-column prop="name" :label="$t('commons.name')">
<template v-if="comShowDomType === 'view'" :id="scope.row.id" slot-scope="scope">
<div class="filter-db-row" @click="comShowFieldDatas(scope.row)">
<i class="el-icon-s-data" />

View File

@ -3,7 +3,7 @@
<!-- panel list -->
<el-col>
<el-row>
<span class="header-title">默认仪表盘</span>
<span class="header-title">{{ $t('panel.default_panel') }}</span>
<div class="block">
<el-tree
:default-expanded-keys="expandedArray"
@ -28,7 +28,7 @@
</el-row>
<el-row>
<span class="header-title">仪表盘列表</span>
<span class="header-title">{{ $t('panel.panel') }}</span>
</el-row>
<el-col class="custom-tree-container">
<div class="block">
@ -91,9 +91,8 @@
<el-dropdown-item v-if="data.nodeType==='panel'" icon="el-icon-edit" :command="beforeClickMore('edit',data,node)">
{{ $t('panel.edit') }}
</el-dropdown-item>
<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-menu>
</el-dropdown>
@ -132,9 +131,6 @@
@closed="removeLink"
>
<link-generate v-if="linkVisible" :resource-id="linkResourceId" />
<!-- <span slot="footer" class="dialog-footer">
<el-button @click="copyUri">复制链接</el-button>
</span> -->
</el-dialog>
<!--新建仪表盘dialog-->
<el-dialog :title="panelDialogTitle" :visible.sync="editPanel.visible" :show-close="true" width="600px">

View File

@ -3,15 +3,15 @@
<de-aside-container>
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane name="PanelList">
<span slot="label"><i class="el-icon-document" />列表</span>
<span slot="label"><i class="el-icon-document" />{{ $t('panel.panel_list')}}</span>
<panel-list />
</el-tab-pane>
<el-tab-pane name="panels_star" :lazy="true">
<span slot="label"><i class="el-icon-star-off" />收藏</span>
<span slot="label"><i class="el-icon-star-off" />{{ $t('panel.store')}}</span>
<enshrine v-if="showEnshrine" />
</el-tab-pane>
<el-tab-pane name="panels_share" :lazy="true">
<span slot="label"><i class="el-icon-share" />分享</span>
<span slot="label"><i class="el-icon-share" />{{ $t('panel.share')}}</span>
<share-tree v-if="showShare" />
</el-tab-pane>
</el-tabs>

View File

@ -5,29 +5,29 @@
<!--TODO 仪表盘头部区域-->
<span>{{ panelInfo.name || '测试仪表板' }}</span>
<span style="float: right;margin-right: 10px">
<el-tooltip content="保存为模板">
<el-tooltip :content="$t('panel.save_to_panel')">
<el-button class="el-icon-folder-checked" size="mini" circle @click="saveToTemplate" />
</el-tooltip>
</span>
<span style="float: right;margin-right: 10px">
<el-tooltip content="导出为模板">
<el-tooltip :content="$t('panel.export_to_panel')">
<el-button class="el-icon-download" size="mini" circle @click="downloadToTemplate" />
</el-tooltip>
</span>
<span style="float: right;margin-right: 10px">
<el-tooltip content="预览">
<el-tooltip :content="$t('panel.preview')">
<el-button class="el-icon-view" size="mini" circle @click="clickPreview" />
</el-tooltip>
</span>
<span v-if="!hasStar && panelInfo" style="float: right;margin-right: 10px">
<el-tooltip content="收藏">
<el-tooltip :content="$t('panel.store')">
<el-button class="el-icon-star-off" size="mini" circle @click="star" />
</el-tooltip>
</span>
<span v-if="hasStar && panelInfo" style="float: right;margin-right: 10px">
<el-tooltip content="取消">
<el-tooltip :content="$t('commons.cancle')">
<el-button class="el-icon-star-on" size="mini" circle @click="unstar" />
</el-tooltip>
</span>
@ -41,7 +41,7 @@
</el-col>
<el-col v-if="panelInfo.name.length===0" style="height: 100%;">
<el-row style="height: 100%;" class="custom-position">
请从左侧选择仪表盘
{{ $t('panle.select_panel_from_left') }}
</el-row>
</el-col>

View File

@ -1,7 +1,7 @@
<template>
<el-row>
<el-row>
<el-col :span="4">模板名称</el-col>
<el-col :span="4"> {{ $t('panel.template_nale')}}</el-col>
<el-col :span="20">
<el-input v-model="templateInfo.name" clearable size="mini" />
</el-col>
@ -18,9 +18,6 @@
>
<el-table-column :label="columnLabel" :column-key="fieldName" :prop="fieldName" />
<el-table-column align="right">
<!-- <template slot="header">-->
<!-- <el-input v-model="keyWordSearch" size="mini" placeholder="输入关键字搜索" />-->
<!-- </template>-->
<template slot-scope="scope">
<el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio>
</template>
@ -29,8 +26,8 @@
</div>
</el-row>
<el-row class="root-class">
<el-button @click="cancel()"> </el-button>
<el-button type="primary" @click="save()"> </el-button>
<el-button @click="cancel()">{{ $t('commons.cancle')}}</el-button>
<el-button type="primary" @click="save()">{{ $t('commons.save')}}</el-button>
</el-row>
</el-row>
</template>

View File

@ -3,7 +3,7 @@
<!-- <de-header>Header</de-header> -->
<span style="line-height: 35px; position: absolute; top:10px;right: 10px">
<el-button size="mini" @click="toDir">
关闭
{{ $t('commons.close') }}
</el-button>
</span>
<de-container>

View File

@ -2,14 +2,14 @@
<el-col>
<el-row>
<el-button icon="el-icon-folder-add" type="primary" size="mini" @click="add()">
添加分类
{{ $t('panel.add_category') }}
</el-button>
</el-row>
<el-row style="margin-top: 5px">
<el-row>
<el-input
v-model="templateFilterText"
placeholder="输入关键字进行过滤"
:placeholder="$t('panel.filter_keywords')"
size="mini"
clearable
prefix-icon="el-icon-search"
@ -48,10 +48,10 @@
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item icon="el-icon-edit" :command="beforeClickMore('edit',data,node)">
重命名
{{ $t('panel.rename') }}
</el-dropdown-item>
<el-dropdown-item icon="el-icon-delete" :command="beforeClickMore('delete',data,node)">
删除
{{ $t('panel.delete') }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>

View File

@ -3,13 +3,17 @@
<de-aside-container>
<el-tabs v-model="currentTemplateType" @tab-click="handleClick">
<el-tab-pane name="system">
<span slot="label"><i class="el-icon-document" />系统模板</span>
<template-list v-if="currentTemplateType==='system'" :template-type="currentTemplateType" :template-list="templateList" @templateDelete="templateDelete" @templateEdit="templateEdit" @showCurrentTemplate="showCurrentTemplate" @showTemplateEditDialog="showTemplateEditDialog" />
<span slot="label"><i class="el-icon-document" /> {{ $t('panel.sys_template') }}</span>
<template-list v-if="currentTemplateType==='system'" :template-type="currentTemplateType" :template-list="templateList"
@templateDelete="templateDelete" @templateEdit="templateEdit" @showCurrentTemplate="showCurrentTemplate"
@showTemplateEditDialog="showTemplateEditDialog" />
</el-tab-pane>
<el-tab-pane name="self">
<span slot="label"><i class="el-icon-star-off" />用户模板</span>
<span slot="label"><i class="el-icon-star-off" />{{ $t('panel.user_template') }}</span>
<!--v-if 重新渲染 强制刷新首行高亮属性-->
<template-list v-if="currentTemplateType==='self'" :template-type="currentTemplateType" :template-list="templateList" @templateDelete="templateDelete" @templateEdit="templateEdit" @showCurrentTemplate="showCurrentTemplate" @showTemplateEditDialog="showTemplateEditDialog" />
<template-list v-if="currentTemplateType==='self'" :template-type="currentTemplateType" :template-list="templateList"
@templateDelete="templateDelete" @templateEdit="templateEdit" @showCurrentTemplate="showCurrentTemplate"
@showTemplateEditDialog="showTemplateEditDialog" />
</el-tab-pane>
</el-tabs>
</de-aside-container>
@ -24,13 +28,13 @@
</de-main-container>
<el-dialog :title="dialogTitle" :visible="editTemplate" :show-close="false" width="30%">
<el-form ref="templateEditForm" :model="templateEditForm" :rules="templateEditFormRules">
<el-form-item label="名称" prop="name">
<el-form-item :label="$t('commons.name')" prop="name">
<el-input v-model="templateEditForm.name" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button size="mini" @click="close()">{{ $t('panel.cancel') }}</el-button>
<el-button type="primary" size="mini" @click="saveTemplateEdit(templateEditForm)">{{ $t('panel.confirm') }}
<el-button size="mini" @click="close()">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" size="mini" @click="saveTemplateEdit(templateEditForm)">{{ $t('commons.confirm') }}
</el-button>
</div>
</el-dialog>

View File

@ -9,7 +9,7 @@
<el-input v-model="form.desc" autocomplete="off" type="textarea" />
</el-form-item>
<el-form-item :label="$t('datasource.type')" prop="type">
<el-select v-model="form.type" :placeholder="$t('datasource.please_choose_type')" class="select-width" @change="changeType()" :disabled="formType=='modify'">
<el-select v-model="form.type" :placeholder="$t('datasource.please_choose_type')" class="select-width" :disabled="formType=='modify'" @change="changeType()">
<el-option
v-for="item in allTypes"
:key="item.name"
@ -23,23 +23,21 @@
<el-input v-model="form.configuration.dataBase" autocomplete="off" :disabled="formType=='modify'" />
</el-form-item>
<el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.user_name')" prop="configuration.username">
<el-input v-model="form.configuration.username" autocomplete="off" :disabled="formType=='modify'"/>
<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 :disabled="formType=='modify'"/>
<el-input v-model="form.configuration.password" autocomplete="off" show-password :disabled="formType=='modify'" />
</el-form-item>
<el-form-item v-if="form.configuration.dataSourceType=='jdbc'" :label="$t('datasource.host')" prop="configuration.host">
<el-input v-model="form.configuration.host" autocomplete="off" :disabled="formType=='modify'"/>
<el-input v-model="form.configuration.host" autocomplete="off" :disabled="formType=='modify'" />
</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" :disabled="formType=='modify'"/>
<el-input v-model="form.configuration.port" autocomplete="off" :disabled="formType=='modify'" />
</el-form-item>
<el-form-item>
<el-button @click="validaDatasource">{{ $t('commons.validate') }}</el-button>
<el-button type="primary" @click="save">保存</el-button>
<!-- <el-button @click="reset">重置</el-button>-->
<el-button type="primary" @click="save">{{ $t('commons.save') }}</el-button>
</el-form-item>
</el-form>

View File

@ -1,10 +1,10 @@
<template>
<layout-content :header="formType=='add' ? $t('organization.create') : $t('organization.modify')" back-name="组织管理">
<el-form ref="deptForm" :model="form" :rules="rule" size="small" label-width="auto" label-position="right">
<el-form-item label="组织名称" prop="name">
<el-form-item :label="$t('organization.name')" prop="name">
<el-input v-model="form.name" />
</el-form-item>
<el-form-item label="组织排序" prop="deptSort">
<el-form-item :label="$t('organization.sort')" prop="deptSort">
<el-input-number
v-model.number="form.deptSort"
@ -14,33 +14,25 @@
/>
</el-form-item>
<el-form-item label="顶级组织" prop="top">
<el-form-item :label="$t('organization.top_org')" prop="top">
<el-radio-group v-model="form.top" @change="topChange">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
<el-radio :label="true">{{ $t('commons.yes') }}</el-radio>
<el-radio :label="false">{{ $t('commons.no') }}</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="状态" prop="enabled">
<el-radio-group v-model="form.enabled" disabled>
<el-radio :label="true">启用</el-radio>
<el-radio :label="false">停用</el-radio>
</el-radio-group>
</el-form-item> -->
<el-form-item v-if="!form.top" label="上级组织" prop="pid">
<el-form-item v-if="!form.top" :label="$t('organization.parent_org')" prop="pid">
<treeselect
v-model="form.pid"
:auto-load-root-options="false"
:load-options="loadDepts"
:options="depts"
placeholder="选择上级类目"
:placeholder="$t('organization.select_parent_org')"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="save">保存</el-button>
<el-button @click="reset">重置</el-button>
<el-button type="primary" @click="save">{{ $t('commons.save') }}</el-button>
<el-button @click="reset">{{ $t('commons.reset') }}</el-button>
</el-form-item>
</el-form>

View File

@ -1,31 +1,13 @@
<template>
<layout-content v-loading="$store.getters.loadingMap[$store.getters.currentPath]">
<!-- <complex-table
ref="table"
:data="tableData"
:lazy="isLazy"
:load="loadExpandDatas"
:columns="columns"
:buttons="buttons"
:header="header"
:search-config="searchConfig"
:pagination-config="paginationConfig"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
:default-expand-all="isTableExpand"
row-key="deptId"
@search="search"
> -->
<tree-table
:columns="columns"
:search-config="searchConfig"
@search="search"
>
<template #toolbar>
<el-button v-permission="['dept:add']" icon="el-icon-circle-plus-outline" @click="create">{{ $t('organization.create') }}</el-button>
<!-- <fu-table-button v-permission="['dept:add']" icon="el-icon-circle-plus-outline" :label="$t('organization.create')" @click="create" /> -->
</template>
</template>
<el-table
ref="table"
:data="tableData"
@ -35,28 +17,15 @@
:tree-props="{children: 'children', hasChildren: 'hasChildren'}"
row-key="deptId"
>
<!-- <el-table-column type="selection" fix /> -->
<el-table-column label="名称" prop="name" />
<el-table-column label="下属组织数" prop="subCount" />
<!-- <el-table-column label="状态" align="center" prop="enabled">
<template slot-scope="scope">
<el-switch
v-model="scope.row.enabled"
:disabled="scope.row.id === 1"
active-color="#409EFF"
inactive-color="#F56C6C"
@change="changeEnabled(scope.row, scope.row.enabled,)"
/>
</template>
</el-table-column> -->
<el-table-column prop="createTime" label="创建日期">
<el-table-column :label="$t('organization.name')" prop="name" />
<el-table-column :label="$t('organization.sub_organizations')" prop="subCount" />
<el-table-column prop="createTime" :label="$t('organization.create_time')">
<template v-slot:default="scope">
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
</template>
</el-table-column>
<fu-table-operations :buttons="buttons" label="操作" fix />
<fu-table-operations :buttons="buttons" :label="$t('commons.operating')" fix />
</el-table>
</tree-table>
<!-- </complex-table> -->
@ -72,10 +41,10 @@
>
<el-form ref="createOrganization" inline :model="form" :rules="rule" size="small" label-width="80px">
<el-form-item label="组织名称" prop="name">
<el-form-item :label="$t('organization.name')" prop="name">
<el-input v-model="form.name" style="width: 370px;" />
</el-form-item>
<el-form-item label="组织排序" prop="deptSort">
<el-form-item :label="$t('organization.sort')" prop="deptSort">
<el-input-number
v-model.number="form.deptSort"
:min="0"
@ -85,36 +54,34 @@
/>
</el-form-item>
<el-form-item label="顶级组织" prop="top">
<el-form-item :label="$t('organization.top_org')" prop="top">
<el-radio-group v-model="form.top" style="width: 140px" @change="topChange">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
<el-radio :label="true">{{ $t('commons.yes') }}</el-radio>
<el-radio :label="false">{{ $t('commons.no') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态" prop="enabled">
<el-form-item label="$t('commons.status')" prop="enabled">
<el-radio-group v-model="form.enabled" style="width: 140px" disabled>
<el-radio :label="true">启用</el-radio>
<el-radio :label="false">停用</el-radio>
<el-radio :label="true">{{ $t('commons.enable') }}</el-radio>
<el-radio :label="false">{{ $t('commons.disable') }}</el-radio>
</el-radio-group>
<!-- <el-radio v-for="item in dict.dept_status" :key="item.id" v-model="form.enabled" :label="item.value">{{ item.label }}</el-radio> -->
</el-form-item>
<el-form-item v-if="!form.top" style="margin-bottom: 0;" label="上级组织" prop="pid">
<el-form-item v-if="!form.top" style="margin-bottom: 0;" :label="$t('organization.parent_org')" prop="pid">
<treeselect
v-model="form.pid"
:auto-load-root-options="false"
:load-options="loadDepts"
:options="depts"
style="width: 370px;"
placeholder="选择上级类目"
:placeholder="$t('organization.select_parent_org')"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="dialogOrgAddVisible = false">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" @click="createDept('createOrganization')">确认</el-button>
<el-button type="primary" @click="createDept('createOrganization')">{{ $t('commons.confirm') }}</el-button>
</div>
</el-dialog>

View File

@ -3,12 +3,12 @@
<el-form ref="menuForm" :model="form" :rules="rule" size="small" label-width="auto" label-position="right">
<el-form-item label="菜单类型" prop="type">
<el-radio-group v-model="form.type" size="mini" :disabled="formType!=='add'">
<el-radio-button label="0">目录</el-radio-button>
<el-radio-button label="1">菜单</el-radio-button>
<el-radio-button label="2">按钮</el-radio-button>
<el-radio-button label="0">{{ $t('commons.catalogue') }}</el-radio-button>
<el-radio-button label="1">{{ $t('commons.menu') }}</el-radio-button>
<el-radio-button label="2">{{ $t('commons.button') }}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.type=== 1 && form.icon" label="菜单图标" prop="icon">
<el-form-item v-if="form.type=== 1 && form.icon" :label="$t('commons.icon')" prop="icon">
<el-popover
placement="bottom-start"
width="425"
@ -16,47 +16,34 @@
@show="$refs['iconSelect'].reset()"
>
<IconSelect ref="iconSelect" @selected="selected" />
<el-input slot="reference" v-model="form.icon" placeholder="点击选择图标" readonly>
<el-input slot="reference" v-model="form.icon" :placeholder="$t('menu.select_icon')" readonly>
<svg-icon v-if="form.icon" slot="prefix" :icon-class="form.icon" class="el-input__icon" style="height: 32px;width: 16px;" />
<i v-else slot="prefix" class="el-icon-search el-input__icon" />
</el-input>
</el-popover>
</el-form-item>
<el-form-item v-if="form.type !== 2" label="菜单标题" prop="title">
<el-input v-model="form.title" placeholder="菜单标题" />
<el-form-item v-if="form.type !== 2" :label="$t('menu.tile')" prop="title">
<el-input v-model="form.title" :placeholder="$t('menu.tile')" />
</el-form-item>
<el-form-item v-if="form.type === 2" label="按钮名称" prop="title">
<el-input v-model="form.title" placeholder="按钮名称" />
<el-form-item v-if="form.type === 2" label="$t('menu.button_name')" prop="title">
<el-input v-model="form.title" :placeholder="$t('menu.button_name')" />
</el-form-item>
<!-- <el-form-item v-if="form.type !== 0" label="权限标识" prop="permission">
<el-input v-model="form.permission" :disabled="form.iframe || formType!=='add'" placeholder="权限标识" />
</el-form-item>
<el-form-item v-if="form.type !== 2" label="路由地址" prop="path">
<el-input v-model="form.path" placeholder="路由地址" :disabled="formType!=='add'" />
</el-form-item> -->
<el-form-item v-if="form.type !== 2" label="菜单排序" prop="menuSort">
<el-form-item v-if="form.type !== 2" label="$t('menu.menu_sort')" prop="menuSort">
<el-input-number v-model.number="form.menuSort" :min="0" :max="999" controls-position="right" />
</el-form-item>
<!-- <el-form-item v-if="!form.iframe && form.type === 1" label="组件名称" prop="componentName">
<el-input v-model="form.componentName" :disabled="formType!=='add'" placeholder="匹配组件内Name字段" />
</el-form-item>
<el-form-item v-if="!form.iframe && form.type === 1" label="组件路径" prop="component">
<el-input v-model="form.component" :disabled="formType!=='add'" placeholder="组件路径" />
</el-form-item> -->
<el-form-item label="上级类目" prop="pid">
<el-form-item :label="$t('menu.parent_category')" prop="pid">
<treeselect
v-model="form.pid"
:disabled="formType!=='add'"
:options="menus"
:load-options="loadMenus"
placeholder="选择上级类目"
:placeholder="$t('menu.parent_category')"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="save">保存</el-button>
<el-button @click="reset">重置</el-button>
<el-button type="primary" @click="save">{{ $t('commons.reset') }}</el-button>
<el-button @click="reset">{{ $t('commons.confirm') }}</el-button>
</el-form-item>
</el-form>

View File

@ -21,23 +21,19 @@
>
<!-- <el-table-column type="selection" fix /> -->
<el-table-column :show-overflow-tooltip="true" label="菜单标题" prop="title" />
<el-table-column prop="icon" label="图标" align="center">
<el-table-column :show-overflow-tooltip="true" :label="$t('menu.tile')" prop="title" />
<el-table-column prop="icon" :label="$t('commons.icon')" align="center">
<template slot-scope="scope">
<svg-icon :icon-class="scope.row.icon ? scope.row.icon : ''" />
</template>
</el-table-column>
<!-- <el-table-column :show-overflow-tooltip="true" prop="permission" label="权限标识" />
<el-table-column :show-overflow-tooltip="true" prop="component" label="组件路径" /> -->
<el-table-column prop="createTime" label="创建日期">
<el-table-column prop="createTime" :label="$t('menu.create_time')" >
<template v-slot:default="scope">
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
</template>
</el-table-column>
<fu-table-operations :buttons="buttons" label="操作" fix />
<fu-table-operations :buttons="buttons" :label="$t('commons.operating')" fix />
</el-table>
</tree-table>
@ -53,12 +49,12 @@
<el-form-item label="菜单类型" prop="type">
<el-radio-group v-model="form.type" size="mini" :disabled="formType!=='add'" style="width: 179px">
<el-radio-button label="0">目录</el-radio-button>
<el-radio-button label="1">菜单</el-radio-button>
<el-radio-button label="2">按钮</el-radio-button>
<el-radio-button label="0">{{ $t('commons.catalogue') }} </el-radio-button>
<el-radio-button label="1">{{ $t('commons.menu') }} </el-radio-button>
<el-radio-button label="2">{{ $t('commons.button') }}</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item v-show="form.type!== 2" label="菜单图标" prop="icon">
<el-form-item v-show="form.type!== 2" :label="$t('commons.icon')" prop="icon">
<el-popover
placement="bottom-start"
width="425"
@ -66,48 +62,48 @@
@show="$refs['iconSelect'].reset()"
>
<IconSelect ref="iconSelect" @selected="selected" />
<el-input slot="reference" v-model="form.icon" style="width: 450px;" placeholder="点击选择图标" readonly>
<el-input slot="reference" v-model="form.icon" style="width: 450px;" :placeholder="$t('menu.select_icon')" readonly>
<svg-icon v-if="form.icon" slot="prefix" :icon-class="form.icon" class="el-input__icon" style="height: 32px;width: 16px;" />
<i v-else slot="prefix" class="el-icon-search el-input__icon" />
</el-input>
</el-popover>
</el-form-item>
<el-form-item v-if="form.type !== 2" label="菜单标题" prop="title">
<el-input v-model="form.title" :style=" form.type === '0' ? 'width: 450px' : 'width: 179px'" placeholder="菜单标题" />
<el-form-item v-if="form.type !== 2" :label="$t('menu.tile')" prop="title">
<el-input v-model="form.title" :style=" form.type === '0' ? 'width: 450px' : 'width: 179px'" :placeholder="$t('menu.tile')" />
</el-form-item>
<el-form-item v-if="form.type === 2" label="按钮名称" prop="title">
<el-input v-model="form.title" placeholder="按钮名称" style="width: 179px;" />
<el-form-item v-if="form.type === 2" :label="$t('menu.button_name')" prop="title">
<el-input v-model="form.title" :placeholder="$t('menu.button_name')" style="width: 179px;" />
</el-form-item>
<el-form-item v-show="form.type !== 0" label="权限标识" prop="permission">
<el-input v-model="form.permission" :disabled="form.iframe || formType!=='add'" placeholder="权限标识" style="width: 179px;" />
<el-form-item v-show="form.type !== 0" :label="$t('menu.authority_identification')" prop="permission">
<el-input v-model="form.permission" :disabled="form.iframe || formType!=='add'" :placeholder="$t('menu.authority_identification')" style="width: 179px;" />
</el-form-item>
<el-form-item v-if="form.type !== 2" label="路由地址" prop="path">
<el-input v-model="form.path" placeholder="路由地址" :disabled="formType!=='add'" style="width: 179px;" />
<el-form-item v-if="form.type !== 2" label="$t('menu.route_addr')" prop="path">
<el-input v-model="form.path" :placeholder="$t('menu.route_addr')" :disabled="formType!=='add'" style="width: 179px;" />
</el-form-item>
<el-form-item label="菜单排序" prop="menuSort">
<el-form-item :label="$t('menu.menu_sort')" prop="menuSort">
<el-input-number v-model.number="form.menuSort" :min="0" :max="999" controls-position="right" style="width: 179px;" />
</el-form-item>
<el-form-item v-show="!form.iframe && form.type === 1" label="组件名称" prop="componentName">
<el-input v-model="form.componentName" :disabled="formType!=='add'" style="width: 179px;" placeholder="匹配组件内Name字段" />
<el-form-item v-show="!form.iframe && form.type === 1" :label="$t('menu.module_name')" prop="componentName">
<el-input v-model="form.componentName" :disabled="formType!=='add'" style="width: 179px;" :placeholder="匹配组件内Name字段" />
</el-form-item>
<el-form-item v-show="!form.iframe && form.type === 1" label="组件路径" prop="component">
<el-input v-model="form.component" :disabled="formType!=='add'" style="width: 179px;" placeholder="组件路径" />
<el-form-item v-show="!form.iframe && form.type === 1" label="$t('menu.path')" prop="component">
<el-input v-model="form.component" :disabled="formType!=='add'" style="width: 179px;" :placeholder="$t('menu.path')" />
</el-form-item>
<el-form-item label="上级类目" prop="pid">
<el-form-item :label="$t('menu.parent_category')" prop="pid">
<treeselect
v-model="form.pid"
:disabled="formType!=='add'"
:options="menus"
:load-options="loadMenus"
style="width: 450px;"
placeholder="选择上级类目"
:placeholder="$t('menu.parent_category')"
/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="dialogVisible = false">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" @click="createMenu('menuForm')">确认</el-button>
<el-button type="primary" @click="createMenu('menuForm')">{{ $t('commons.confirm') }}</el-button>
</div>
</el-dialog>

View File

@ -1,20 +1,15 @@
<template>
<layout-content :header="formType=='add' ? $t('role.add') : $t('role.modify')" back-name="角色管理">
<el-form ref="roleForm" :model="form" :rules="rule" size="small" label-width="auto" label-position="right">
<el-form-item label="角色名称" prop="name">
<el-form-item :label="$t('commons.name')" prop="name">
<el-input v-model="form.name" />
</el-form-item>
<!-- <el-form-item label="角色代码" prop="code">
<el-input v-model="form.code" :disabled="formType !== 'add'" />
</el-form-item> -->
<el-form-item label="描述信息" prop="description">
<el-form-item :label="$t('commons.description')" prop="description">
<el-input v-model="form.description" type="textarea" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="save">保存</el-button>
<el-button @click="reset">重置</el-button>
<el-button type="primary" @click="save">{{ $t('commons.save') }}</el-button>
<el-button @click="reset">{{ $t('commons.reset') }}</el-button>
</el-form-item>
</el-form>

View File

@ -14,23 +14,21 @@
@row-click="rowClick"
>
<template #toolbar>
<!-- <fu-table-button icon="el-icon-circle-plus-outline" :label="$t('role.add')" @click="create" /> -->
<el-button v-permission="['role:add']" icon="el-icon-circle-plus-outline" @click="create">{{ $t('role.add') }}</el-button>
</template>
<el-table-column prop="name" label="名称" />
<!-- <el-table-column prop="code" label="代码" /> -->
<el-table-column :show-overflow-tooltip="true" prop="createTime" label="创建日期">
<el-table-column prop="name" :label="$t('commons.name')" />
<el-table-column :show-overflow-tooltip="true" prop="createTime" :label="$t('commons.create_time')">
<template v-slot:default="scope">
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
</template>
</el-table-column>
<fu-table-operations :buttons="buttons" label="操作" fix />
<fu-table-operations :buttons="buttons" :label="$t('commons.operating')" fix />
</complex-table>
</el-aside>
<el-main style="padding: 8px 20px;">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="菜单授权" name="first">
<el-tab-pane :label="$t('role.menu_authorization')" name="first">
<el-tree
ref="menu"
lazy
@ -44,7 +42,7 @@
@check="menuChange"
/>
</el-tab-pane>
<el-tab-pane label="数据授权" name="second">玩命开发中...</el-tab-pane>
<el-tab-pane :label="$t('role.data_authorization')" name="second">玩命开发中...</el-tab-pane>
</el-tabs>
</el-main>
</el-container>
@ -72,7 +70,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="dialogVisible = false">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" @click="saveRole('roleForm')">确认</el-button>
<el-button type="primary" @click="saveRole('roleForm')">{{ $t('commons.confirm') }}</el-button>
</div>
</el-dialog>

View File

@ -1,46 +1,46 @@
<template>
<layout-content :header="formType=='add' ? $t('user.create') : $t('user.modify')" back-name="用户管理">
<el-form ref="createUserForm" :model="form" :rules="rule" size="small" label-width="auto" label-position="right">
<el-form-item label="用户名" prop="username">
<el-form-item :label="$t('commons.name')" prop="username">
<el-input v-model="form.username" />
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-form-item :label="$t('commons.phone')" prop="phone">
<el-input v-model="form.phone" />
</el-form-item>
<el-form-item label="昵称" prop="nickName">
<el-form-item :label="$t('commons.nick_name')" prop="nickName">
<el-input v-model="form.nickName" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-form-item :label="$t('commons.email')" prop="email">
<el-input v-model="form.email" />
</el-form-item>
<el-form-item label="性别">
<el-form-item :label="$t('commons.gender')">
<el-radio-group v-model="form.gender" style="width: 178px">
<el-radio label="男"></el-radio>
<el-radio label="女"></el-radio>
<el-radio :label="$t('commons.man')">{{ $t('commons.man') }}</el-radio>
<el-radio :label="$t('commons.woman')">{{ $t('commons.woman') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态">
<el-form-item :label="$t('commons.status')">
<el-radio-group v-model="form.enabled" style="width: 140px">
<el-radio :label="1">启用</el-radio>
<el-radio :label="0">停用</el-radio>
<el-radio :label="1">{{ $t('user.enable') }}</el-radio>
<el-radio :label="0">{{ $t('user.disable') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="部门" prop="dept">
<el-form-item :label="$t('commons.organization')" prop="dept">
<treeselect
v-model="form.deptId"
:options="depts"
:load-options="loadDepts"
:auto-load-root-options="false"
placeholder="选择部门"
:placeholder="$t('user.choose_org')"
/>
</el-form-item>
<el-form-item label="角色" prop="roleIds">
<el-form-item :label="$t('commons.role')" prop="roleIds">
<el-select
v-model="form.roleIds"
style="width: 100%"
multiple
placeholder="请选择"
:placeholder="$t('commons.please_select')"
@remove-tag="deleteTag"
@change="changeRole"
>
@ -53,8 +53,8 @@
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="save">保存</el-button>
<el-button @click="reset">重置</el-button>
<el-button type="primary" @click="save">{{ $t('commons.confirm') }}</el-button>
<el-button @click="reset">{{ $t('commons.reset') }}</el-button>
</el-form-item>
</el-form>

View File

@ -14,28 +14,28 @@
<!-- <fu-table-button v-permission="['user:add']" icon="el-icon-circle-plus-outline" :label="$t('user.create')" @click="create" /> -->
</template>
<el-table-column prop="username" label="ID" width="80" />
<el-table-column prop="nickName" :label="$t('commons.name')" width="140" />
<el-table-column prop="gender" label="性别" width="50" />
<el-table-column prop="username" :label="$t('commons.name')" />
<el-table-column prop="nickName" :label="$t('commons.nick_name')" />
<el-table-column prop="gender" :label="$t('commons.gender')" />
<el-table-column :show-overflow-tooltip="true" prop="phone" width="200" label="电话" />
<el-table-column :show-overflow-tooltip="true" width="200" prop="email" :label="$t('commons.email')" />
<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')">
<template slot-scope="scope">
<div>{{ scope.row.dept.deptName }}</div>
</template>
</el-table-column>
<el-table-column prop="status" :label="$t('commons.status')" width="60">
<el-table-column prop="status" :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')" width="160">
<el-table-column prop="createTime" :label="$t('commons.create_time')">
<template v-slot:default="scope">
<span>{{ scope.row.createTime | timestampFormatDate }}</span>
</template>
</el-table-column>
<fu-table-operations :buttons="buttons" label="操作" fix />
<fu-table-operations :buttons="buttons" :label="$t('commons.operating')" fix />
</complex-table>
<el-dialog
@ -49,47 +49,47 @@
>
<el-form ref="createUserForm" :inline="true" :model="form" :rules="rule" size="small" label-width="66px">
<el-form-item label="用户名" prop="username">
<el-form-item :label="$t('commons.name')" prop="username">
<el-input v-model="form.username" />
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-form-item :label="$t('commons.phone')" prop="phone">
<el-input v-model="form.phone" />
</el-form-item>
<el-form-item label="昵称" prop="nickName">
<el-form-item :label="$t('commons.nick_name')" prop="nickName">
<el-input v-model="form.nickName" />
</el-form-item>
<el-form-item label="邮箱" prop="email">
<el-form-item :label="$t('commons.email')" prop="email">
<el-input v-model="form.email" />
</el-form-item>
<el-form-item label="性别">
<el-form-item :label="$t('commons.gender')">
<el-radio-group v-model="form.gender" style="width: 178px">
<el-radio label="男"></el-radio>
<el-radio label="女"></el-radio>
<el-radio :label="$t('commons.man')">{{ $t('commons.man') }}</el-radio>
<el-radio :label="$t('commons.woman')">{{ $t('commons.woman') }}</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="状态">
<el-form-item :label="$t('commons.status')" >
<el-radio-group v-model="form.enabled" style="width: 140px">
<el-radio :label="1">启用</el-radio>
<el-radio :label="0">停用</el-radio>
<el-radio :label="1">{{ $t('commons.enable') }} </el-radio>
<el-radio :label="0"> {{ $t('commons.disable') }} </el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="部门" prop="dept">
<el-form-item :label="$t('commons.organization')" prop="dept">
<treeselect
v-model="form.deptId"
:options="depts"
:load-options="loadDepts"
style="width: 430px"
placeholder="选择部门"
:placeholder="$t('user.choose_org')"
/>
</el-form-item>
<el-form-item style="margin-bottom: 0;" label="角色" prop="roleIds">
<el-form-item style="margin-bottom: 0;" :label="$t('commons.role')" prop="roleIds">
<el-select
v-model="form.roleIds"
style="width: 430px"
multiple
required="true"
placeholder="请选择"
:placeholder="$t('commons.please_select')"
@remove-tag="deleteTag"
@change="changeRole"
>
@ -104,7 +104,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="dialogVisible = false">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" @click="createUser('createUserForm')">确认</el-button>
<el-button type="primary" @click="createUser('createUserForm')">{{ $t('commons.confirm') }}</el-button>
</div>
</el-dialog>
@ -134,7 +134,7 @@
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="editPasswordVisible = false">{{ $t('commons.cancel') }}</el-button>
<el-button type="primary" @click="editUserPassword('editPasswordForm')">确认</el-button>
<el-button type="primary" @click="editUserPassword('editPasswordForm')">{{ $t('commons.confirm') }}</el-button>
</div>
</el-dialog>
</layout-content>
@ -178,9 +178,7 @@ export default {
useQuickSearch: false,
quickPlaceholder: '按姓名搜索',
components: [
// { field: 'name', label: '', component: 'FuComplexInput', defaultOperator: 'eq' },
{ field: 'nick_name', label: '姓名', component: 'FuComplexInput' },
{
field: 'u.enabled',
label: '状态',