diff --git a/frontend/babel.config.js b/frontend/babel.config.js index ba179669a1..119f81f9ee 100644 --- a/frontend/babel.config.js +++ b/frontend/babel.config.js @@ -1,5 +1,6 @@ module.exports = { presets: [ '@vue/app' - ] + ], + plugins: ['@babel/plugin-proposal-optional-chaining'] } diff --git a/frontend/package.json b/frontend/package.json index ff69f74ec5..c42f945220 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -76,6 +76,7 @@ }, "devDependencies": { "@babel/core": "^7.4.0-0", + "@babel/plugin-proposal-optional-chaining": "^7.18.6", "@babel/register": "7.0.0", "@vue/cli-plugin-babel": "3.6.0", "@vue/cli-plugin-eslint": "^3.9.1", diff --git a/frontend/src/components/AsyncComponent/index.vue b/frontend/src/components/AsyncComponent/index.vue index b1d4964692..9e1e53a1ae 100644 --- a/frontend/src/components/AsyncComponent/index.vue +++ b/frontend/src/components/AsyncComponent/index.vue @@ -11,7 +11,6 @@ + + diff --git a/frontend/src/components/dataease/DeAsideContainer.vue b/frontend/src/components/dataease/DeAsideContainer.vue index 7b53d3a455..25ea438df6 100644 --- a/frontend/src/components/dataease/DeAsideContainer.vue +++ b/frontend/src/components/dataease/DeAsideContainer.vue @@ -5,7 +5,7 @@ :style="{'margin-left': !asideHidden ? 0 : '-' + currentWidth}" > - + @@ -20,6 +20,10 @@ export default { type: String, default: '260px' }, + isCollapseWidth: { + type: String, + default: '' + }, enableAsideHidden: { type: Boolean, default: true @@ -28,6 +32,10 @@ export default { type: Boolean, default: true }, + isTemplate: { + type: Boolean, + default: false + }, type: { type: String, default: null @@ -40,7 +48,11 @@ export default { }, computed: { currentWidth() { - return this.type && getLayout(this.type) || this.width + return this.isCollapseWidth || this.type && getLayout(this.type) || this.width + }, + isSystem() { + // 系统管理不需要拖拽菜单 + return this.isTemplate || (!this.$route.fullPath.includes('system') && this.showDragBar) } } } @@ -50,15 +62,19 @@ export default { .ms-aside-container { /* border: 1px solid #E6E6E6; */ - padding: 10px; border-radius: 2px; box-sizing: border-box; background-color: var(--SiderBG, #FFF); height: calc(100vh - 56px); border-right: 0px; position: relative; + padding-bottom: 50px; } + /* .collapse-style { + height: calc(100vh - 56px); + } */ + .hiddenBottom { width: 8px; height: 50px; diff --git a/frontend/src/components/gridTable/index.vue b/frontend/src/components/gridTable/index.vue new file mode 100644 index 0000000000..711977679f --- /dev/null +++ b/frontend/src/components/gridTable/index.vue @@ -0,0 +1,223 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/components/gridTable/tableBody.vue b/frontend/src/components/gridTable/tableBody.vue new file mode 100644 index 0000000000..f34a63a077 --- /dev/null +++ b/frontend/src/components/gridTable/tableBody.vue @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/frontend/src/icons/svg/field_time.svg b/frontend/src/icons/svg/field_time.svg index 3a2e07c6ff..77a79164c4 100644 --- a/frontend/src/icons/svg/field_time.svg +++ b/frontend/src/icons/svg/field_time.svg @@ -1 +1,4 @@ - + + + + \ No newline at end of file diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index 6dbcdf12a3..6cfe191bcb 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -131,9 +131,13 @@ export default { default_login: 'Normal' }, commons: { + manage_member: 'Managing members', + user_confirm_remove_cancel:'Are you sure you want to remove the user from the role?', + confirm_remove_cancel: 'Are you sure to delete the role?', default_value: 'Default Value', params_value: 'Param Value', publish: 'publish', + input_role_name: 'Enter a role name', unpublished: 'unpublished', default_pwd: 'Default Pwd', stop: 'Stop', @@ -159,6 +163,7 @@ export default { button: 'Button', man: 'Man', woman: 'Woman', + keep_secret: 'keep secret', nick_name: 'Name', confirmPassword: 'Confirm Password', upload: 'Upload', @@ -210,6 +215,8 @@ export default { member: 'Member', email: 'Email', phone: 'Phone', + mobile_phone: 'Please enter your mobile phone number', + mobile_phone_number: 'Phone number', role: 'Role', personal_info: 'Personal Info', api_keys: 'API Keys', @@ -503,7 +510,7 @@ export default { please_choose_member: 'Please choose member', search_by_name: 'Search by name', modify_personal_info: 'Modify personal info', - edit_password: 'Edit Password', + edit_password: 'Reset Password', edit_information: 'Edit Information', input_name: 'Input Name', input_email: 'Input Email', @@ -525,6 +532,12 @@ export default { modify: 'Modify User', input_name: 'Please enter user name', input_id: 'Please enter user ID', + id_mandatory: 'id is mandatory', + name_mandatory: 'name is mandatory', + email_mandatory: 'email is mandatory', + role_mandatory: 'role is mandatory', + phone_format: 'mobile phone number format is incorrect', + select_gender: 'Please select gender', input_email: 'Please input email', input_password: 'Please input a password', input_phone: 'Please enter the phone number', @@ -536,7 +549,8 @@ export default { 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', + choose_org: 'Please select a role', + choose_role: '请选择角色', reset_password: 'Reset Password', current_user: 'Current User', origin_passwd: 'Origin Password', @@ -601,7 +615,20 @@ export default { confirm_delete: 'Confirm delete role ', role_name: 'Role Name ', search_by_name: 'Search by name', - pls_input_name: 'please input name' + pls_input_name: 'please input name', + search_by_name_email: 'Search by name or email', + api_role: 'API role', + role_exist: 'Failed to add, the role already exists', + add_api_role: 'Add API role', + can_not_move: `Can't be removed, keep at least one administrator`, + manage_can_not_move: 'Administrator is a preset role of the system. By default, he has all the permissions of system management and cannot be deleted', + manage_can_not_update: 'Administrator is a preset role of the system. By default, he has all the permissions of system management and cannot be edit', + role_name: 'Role name', + role_description: 'Role description', + editer_role: 'Edit role', + add_role: 'Add role', + role_name_exist: 'The role name already exists', + search_by_role: 'Search by role name', }, menu: { parent_category: 'Parent Category', @@ -636,7 +663,26 @@ export default { 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' + select: 'Select organization', + member: 'member', + organization: 'organization', + add_user: 'Add user', + search_by_name: 'Search by organization name', + sure_move_user: 'Are you sure to remove this user from the organization?', + move_success: 'Removed successfully', + user: 'user', + add_organization: 'Add organization', + defalut_organization_canot_move: 'The default organization cannot be deleted', + organization_name: 'Organization name', + input_organization_name: 'Please enter the organization name', + relate_top_organization: 'Associated parent organization', + organization_name_exist: 'Organization name already exists', + canot_delete: 'Cannot delete', + remove_user_first: 'Please remove all users in the organization before deleting the organization', + sure_delete_organization: 'Are you sure to delete this organization?', + delete: 'delete', + add_child_org: 'Add sub organization', + edite_organization: 'Edit organization', }, system_parameter_setting: { mailbox_service_settings: 'Mail Settings', @@ -1834,6 +1880,7 @@ export default { dept: 'Dept', role: 'Role', user: 'User', + set_rules: 'Set rules', sysParams_type: { user_id: 'User ID', user_name: 'User Name', @@ -1857,7 +1904,34 @@ export default { view: 'View', use: 'Use', export: 'Export', - manage: 'Manage' + manage: 'Manage', + row_column: 'Row and column permission settings', + row_permission: 'Row permission rules', + enable_row: 'Enable row permissions', + add_condition: 'Add condition', + add_relationship: 'Add relationship', + white_list: 'White list', + white_user_not: 'The above permission rules do not take effect for white list users', + organization_or_role: 'Please select an organization or role', + column_permission: 'Column permission rule', + enable_column: 'Enable column permissions', + search_by_field: 'Search by field name', + add_condition: 'Add condition', + add_relationship: 'Add relationship', + filter_fields: 'Filter fields', + selct_filter_fields: 'Please select a filter field', + enter_keywords: 'Please enter keywords', + screen_method: 'Screening method', + select: 'Please select', + fixed_value: 'Fixed value', + defalut_method: 'Default condition', + select_all: 'Select all', + added: 'Added', + manual_input: 'Manual input', + please_fill: 'Please fill in one line and add 500 at most. Duplicate options and added options will be automatically filtered when identifying and entering', + close: 'close', + add: 'add to', + sure: 'determine', }, about: { auth_to: 'Authorized to', diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index ad13363808..7d8a88d4c5 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -131,9 +131,13 @@ export default { default_login: '普通登錄' }, commons: { + manage_member: '管理成員', + user_confirm_remove_cancel: '確定將該用戶從角色中移除嗎?', + confirm_remove_cancel: '確定刪除該角色嗎?', default_value: '默認值', params_value: '参数值', publish: '發布', + input_role_name: '請輸入角色名稱', unpublished: '取消發布', default_pwd: '初始密碼', stop: '停止', @@ -159,6 +163,7 @@ export default { gender: '性別', man: '男', woman: '女', + keep_secret: '保密', nick_name: '姓名', confirmPassword: '確認密碼', upload: '上傳', @@ -210,6 +215,8 @@ export default { member: '成員', email: '郵箱', phone: '電話', + mobile_phone: '請輸入手機號', + mobile_phone_number: '手機號碼', role: '角色', personal_info: '個人信息', api_keys: 'API Keys', @@ -503,7 +510,7 @@ export default { please_choose_member: '請選擇成員', search_by_name: '根據名稱搜索', modify_personal_info: '修改個人信息', - edit_password: '修改密碼', + edit_password: '重置密码', edit_information: '編輯信息', input_name: '請輸入名稱', input_email: '請輸入郵箱', @@ -525,6 +532,12 @@ export default { modify: '修改用戶', input_name: '請輸入用戶姓名', input_id: '請輸入ID', + id_mandatory: 'ID為必填', + name_mandatory: '姓名為必填', + email_mandatory: '郵箱為必填', + role_mandatory: '角色為必填', + phone_format: '手機號碼格式錯誤', + select_gender: '請選擇性別', input_email: '請輸入郵箱', input_password: '請輸入密碼', input_phone: '請輸入電話號碼', @@ -537,7 +550,7 @@ export default { apikey_delete_confirm: '這個 API Key 確定要刪除嗎?', input_id_placeholder: '請輸入ID (不支持中文)', source: '用戶來源', - choose_org: '選擇組織', + choose_org: '請選擇組織', reset_password: '重置密碼', current_user: '當前用戶', origin_passwd: '原始密碼', @@ -603,7 +616,20 @@ export default { confirm_delete: '確認刪除角色 ', role_name: '角色名稱', search_by_name: '按名稱搜索', - pls_input_name: '請輸入名稱' + pls_input_name: '請輸入名稱', + search_by_name_email: '通過姓名或郵箱搜索', + api_role: 'API角色', + role_exist: '添加失敗,該角色已存在', + add_api_role: '添加API角色', + can_not_move: '不可移除,至少保留一位管理員', + manage_can_not_move: '管理員是系統預置角色,默認擁有系統管理全部權限,無法刪除', + manage_can_not_update: '管理員是系統預置角色,默認擁有系統管理全部權限,無法編輯', + role_name: '角色名稱', + role_description: '角色描述', + editer_role: '編輯角色', + add_role: '添加角色', + role_name_exist: '該角色名稱已存在', + search_by_role: '通過角色名稱搜索', }, menu: { parent_category: '上級目錄', @@ -638,7 +664,26 @@ export default { select_organization: '請選擇組織', search_by_name: '根據名稱搜索', special_characters_are_not_supported: '格式錯誤(不支持特殊字符,且不能以\'-\'開頭結尾)', - select: '選擇組織' + select: '選擇組織', + member: '成員', + organization: '組織', + add_user: '添加用戶', + search_by_name: '通過組織名稱搜索', + sure_move_user: '確定將該用戶從組織中移除嗎?', + move_success: '移除成功', + user: '用戶', + add_organization: '添加組織', + defalut_organization_canot_move: '默認組織無法刪除', + organization_name: '組織名稱', + input_organization_name: '請輸入組織名稱', + relate_top_organization: '關聯上級組織', + organization_name_exist: '組織名稱已存在', + canot_delete: '無法刪除', + remove_user_first: '請先移除組織中所有用戶,再進行刪除組織操作。', + sure_delete_organization: '確定刪除該組織嗎?', + delete: '刪除', + add_child_org: '添加子組織', + edite_organization: '編輯組織', }, system_parameter_setting: { mailbox_service_settings: '郵件設置', @@ -1844,6 +1889,7 @@ export default { dept: '組織', role: '角色', user: '用戶', + set_rules: '設置規則', sysParams: '系統變量', sysParams_type: { user_id: '用戶ID', @@ -1869,7 +1915,34 @@ export default { view: '查看', use: '使用', export: '導出', - manage: '管理' + manage: '管理', + row_column: '行列權限設置', + row_permission: '行權限規則', + enable_row: '啟用行權限', + add_condition: '添加條件', + add_relationship: '添加關系', + white_list: '白名單', + white_user_not: '以上權限規則對白名單用戶不生效', + organization_or_role: '請選擇組織或角色', + column_permission: '列權限規則', + enable_column: '啟用列權限', + search_by_field: '通過字段名稱搜索', + add_condition: '添加條件', + add_relationship: '添加關系', + filter_fields: '篩選字段', + selct_filter_fields: '請選擇篩選字段', + enter_keywords: '請輸關鍵字', + screen_method: '篩選方式', + select: '請選擇', + fixed_value: '固定值', + defalut_method: '默認條件', + select_all: '全 選', + added: '已添加', + manual_input: '手工輸入', + please_fill: '請一行填一個,最多添加500個,識別錄入時會自動過濾重復的選項和已經添加過的選項', + close: '關 閉', + add: '添 加', + sure: '確 定', }, about: { auth_to: '授權給', diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index d0776d6fa7..bb46e8a0a4 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -131,8 +131,12 @@ export default { default_login: '普通登录' }, commons: { + manage_member: '管理成员', + confirm_remove_cancel: '确定删除该角色吗?', + user_confirm_remove_cancel:'确定将该用户从角色中移除吗?', default_value: '默认值', params_value: '参数值', + input_role_name: '请输入角色名称', publish: '发布', unpublished: '取消发布', default_pwd: '初始密码', @@ -159,6 +163,7 @@ export default { gender: '性别', man: '男', woman: '女', + keep_secret: '保密', nick_name: '姓名', confirmPassword: '确认密码', upload: '上传', @@ -211,6 +216,8 @@ export default { member: '成员', email: '邮箱', phone: '电话', + mobile_phone: '请输入手机号', + mobile_phone_number: '手机号码', role: '角色', personal_info: '个人信息', api_keys: 'API Keys', @@ -504,7 +511,7 @@ export default { please_choose_member: '请选择成员', search_by_name: '根据名称搜索', modify_personal_info: '修改个人信息', - edit_password: '修改密码', + edit_password: '重置密码', edit_information: '编辑信息', input_name: '请输入名称', input_email: '请输入邮箱', @@ -522,15 +529,21 @@ export default { no_such_user: '无此用户信息, 请输入正确的用户 ID 或者 用户邮箱!' }, user: { - create: '新建用户', - modify: '修改用户', - input_name: '请输入用户姓名', + create: '添加用户', + modify: '编辑用户', + input_name: '请输入姓名', input_id: '请输入ID', + id_mandatory: 'ID为必填', + name_mandatory: '姓名为必填', + email_mandatory: '邮箱为必填', + role_mandatory: '角色为必填', + phone_format: '手机号码格式错误', input_email: '请输入邮箱', input_password: '请输入密码', input_phone: '请输入电话号码', input_roles: '请选择角色', select_users: '请选择用户', + select_gender: '请选择性别', special_characters_are_not_supported: '不支持特殊字符', mobile_number_format_is_incorrect: '手机号码格式不正确', email_format_is_incorrect: '邮箱格式不正确', @@ -538,7 +551,7 @@ export default { apikey_delete_confirm: '这个 API Key 确定要删除吗?', input_id_placeholder: '请输入ID (不支持中文)', source: '用户来源', - choose_org: '选择组织', + choose_org: '请选择组织', reset_password: '重置密码', current_user: '当前用户', origin_passwd: '原始密码', @@ -604,7 +617,20 @@ export default { confirm_delete: '确认删除角色 ', role_name: '角色名称', search_by_name: '按名称搜索', - pls_input_name: '请输入名称' + pls_input_name: '请输入名称', + search_by_name_email: '通过姓名或邮箱搜索', + api_role: 'API角色', + role_exist: '添加失败,该角色已存在', + add_api_role: '添加API角色', + can_not_move: '不可移除,至少保留一位管理员', + manage_can_not_move: '管理员是系统预置角色,默认拥有系统管理全部权限,无法删除', + manage_can_not_update: '管理员是系统预置角色,默认拥有系统管理全部权限,无法编辑', + role_name: '角色名称', + role_description: '角色描述', + editer_role: '编辑角色', + add_role: '添加角色', + role_name_exist: '该角色名称已存在', + search_by_role: '通过角色名称搜索', }, menu: { parent_category: '上级目录', @@ -639,7 +665,26 @@ export default { select_organization: '请选择组织', search_by_name: '根据名称搜索', special_characters_are_not_supported: '格式错误(不支持特殊字符,且不能以\'-\'开头结尾)', - select: '选择组织' + select: '选择组织', + member: '成员', + organization: '组织', + add_user: '添加用户', + search_by_name: '通过组织名称搜索', + sure_move_user: '确定将该用户从组织中移除吗?', + move_success: '移除成功', + user: '用户', + add_organization: '添加组织', + defalut_organization_canot_move: '默认组织无法删除', + organization_name: '组织名称', + input_organization_name: '请输入组织名称', + relate_top_organization: '关联上级组织', + organization_name_exist: '组织名称已存在', + canot_delete: '无法删除', + remove_user_first: '请先移除组织中所有用户,再进行删除组织操作。', + sure_delete_organization: '确定删除该组织吗?', + delete: '删除', + add_child_org: '添加子组织', + edite_organization: '编辑组织', }, system_parameter_setting: { mailbox_service_settings: '邮件设置', @@ -1853,6 +1898,7 @@ export default { dept: '组织', role: '角色', user: '用户', + set_rules: '设置规则', sysParams: '系统变量', sysParams_type: { user_id: '用户ID', @@ -1878,7 +1924,34 @@ export default { view: '查看', use: '使用', export: '导出', - manage: '管理' + manage: '管理', + row_column: '行列权限设置', + row_permission: '行权限规则', + enable_row: '启用行权限', + add_condition: '添加条件', + add_relationship: '添加关系', + white_list: '白名单', + white_user_not: '以上权限规则对白名单用户不生效', + organization_or_role: '请选择组织或角色', + column_permission: '列权限规则', + enable_column: '启用列权限', + search_by_field: '通过字段名称搜索', + add_condition: '添加条件', + add_relationship: '添加关系', + filter_fields: '筛选字段', + selct_filter_fields: '请选择筛选字段', + enter_keywords: '请输关键字', + screen_method: '筛选方式', + select: '请选择', + fixed_value: '固定值', + defalut_method: '默认条件', + select_all: '全 选', + added: '已添加', + manual_input: '手工输入', + please_fill: '请一行填一个,最多添加500个,识别录入时会自动过滤重复的选项和已经添加过的选项', + close: '关 闭', + add: '添 加', + sure: '确 定', }, about: { auth_to: '授权给', diff --git a/frontend/src/layout/components/Sidebar/index.vue b/frontend/src/layout/components/Sidebar/index.vue index cfbac3949c..aa711cb469 100644 --- a/frontend/src/layout/components/Sidebar/index.vue +++ b/frontend/src/layout/components/Sidebar/index.vue @@ -1,60 +1,147 @@ diff --git a/frontend/src/layout/index.vue b/frontend/src/layout/index.vue index 221a405f0d..d48b87825d 100644 --- a/frontend/src/layout/index.vue +++ b/frontend/src/layout/index.vue @@ -4,8 +4,8 @@ - - + + @@ -51,7 +51,8 @@ export default { componentName: 'PanelMain', showTips: false, finishLoad: false, - buttonDisable: false + buttonDisable: false, + sideWidth: "", } }, computed: { diff --git a/frontend/src/styles/variables.scss b/frontend/src/styles/variables.scss index f823d8a86c..5c1dd3d73b 100644 --- a/frontend/src/styles/variables.scss +++ b/frontend/src/styles/variables.scss @@ -21,6 +21,7 @@ $--border-color-lighter: #e6ebf5; $--table-border: 1px solid #dfe6ec; $--font-path: "~element-ui/lib/theme-chalk/fonts"; +$--color-primary: #3370ff; @import "~element-ui/packages/theme-chalk/src/index"; // topBar diff --git a/frontend/src/views/panel/template/index.vue b/frontend/src/views/panel/template/index.vue index 786f244dbd..b128637e71 100644 --- a/frontend/src/views/panel/template/index.vue +++ b/frontend/src/views/panel/template/index.vue @@ -1,6 +1,6 @@