diff --git a/src/api/setting.ts b/src/api/setting.ts index e52aeaf..4c1df78 100644 --- a/src/api/setting.ts +++ b/src/api/setting.ts @@ -10,6 +10,7 @@ export interface BaseEntity { } export interface PaginationParams { + keyword?: string; role_id?: number | null; page?: number; page_size?: number; @@ -138,7 +139,25 @@ export interface UpdateUserRoleParam { role_id: number | null; user_id: number | null; } +// ==================== 系统设置相关类型 ==================== +export type SafeDefaultPage = 1 | 2 | 3; // 默认登录页:1工作台 2项目管理 3房源剖视 +export type SafeLoginTimeType = 1 | 2 | 3 | 4; // 登录状态保存时间:1:7天, 2:1天, 3:12小时, 4:1小时 +export type SafeMoreLogin = 1 | 2; // 多点登录支持:1支持 2不支持 +export interface SafeParams { + default_url_typee: SafeDefaultPage; + login_time_type: SafeLoginTimeType; + is_more_login: SafeMoreLogin; +} +export interface SafeInfo { + id: number; + systemTenantId: number | null; // 租户id + defaultUrlType: SafeDefaultPage; // 默认登录页:1工作台 2项目管理 3房源剖视 + loginTimeType: SafeLoginTimeType; // 登录状态保存时间:1:7天, 2:1天, 3:12小时, 4:1小时 + isMoreLogin: SafeMoreLogin; // 多点登录支持:1支持 2不支持 + createdAt?: string; + updatedAt?: string; +} // ==================== 响应类型别名 ==================== export type DepartmentFormRes = HttpResponse; export type DepartmentList = DepartmentItem[]; @@ -153,6 +172,7 @@ export type UserInfoRes = HttpResponse; export type RoleListRes = HttpResponse; export type PermissionRes = HttpResponse; export type RolePermissionRes = HttpResponse; +export type SafeInfoRes = HttpResponse<{ safeSetting: SafeInfo }>; // ==================== 部门相关 API ==================== export function createDepartment( @@ -261,3 +281,13 @@ export function updateUserRole( ): Promise { return axios.post('role/updateUserRole', params); } + +// ==================== 系统设置相关 API ==================== +// 通用设置-安全设置信息 +export function getSafeSettingInfo(): Promise { + return axios.get('setting/getSafeSetting'); +} +// 通用设置-安全设置信息保存 +export function saveSafeSetting(params: SafeParams): Promise { + return axios.post('setting/saveSafeSetting', params); +} diff --git a/src/locale/zh-CN.ts b/src/locale/zh-CN.ts index accf328..292c964 100644 --- a/src/locale/zh-CN.ts +++ b/src/locale/zh-CN.ts @@ -117,6 +117,11 @@ export default { 'all.data.permission': '全部数据权限', 'customize.data.permission': '自定义数据权限', 'self.data.permission': '仅本人数据', + 'setting.general': '通用设置', + 'setting.process': '流程设置', + 'setting.project': '项目设置', + 'setting.contract': '合同设置', + 'setting.data-dictionary': '数据字典', ...localeSettings, ...localeMessageBox, diff --git a/src/router/routes/modules/setting.ts b/src/router/routes/modules/setting.ts index b4e33f0..58dbde0 100644 --- a/src/router/routes/modules/setting.ts +++ b/src/router/routes/modules/setting.ts @@ -56,13 +56,89 @@ const SETTING: AppRouteRecordRaw = { { path: 'system', name: 'system-setting', - component: () => import('@/views/setting/system/index.vue'), + component: PageLayout, + redirect: '/setting/system/general', + // component: () => import('@/views/setting/system/index.vue'), meta: { locale: 'menu.setting.system', requiresAuth: true, roles: ['admin'], icon: 'icon-settings', }, + children: [ + // 通用设置 + { + path: 'general', + name: 'system-setting-general', + component: () => + import('@/views/setting/system/general-settings/index.vue'), + meta: { + locale: 'setting.general', + requiresAuth: true, + roles: ['*'], + }, + }, + // 组织架构 + { + path: 'organization', + name: 'system-setting-organization', + component: () => + import('@/views/setting/system/organization/index.vue'), + meta: { + locale: 'organization', + requiresAuth: true, + roles: ['*'], + }, + }, + // 流程设置 + { + path: 'process', + name: 'system-setting-process', + component: () => + import('@/views/setting/system/process-settings/index.vue'), + meta: { + locale: 'setting.process', + requiresAuth: true, + roles: ['*'], + }, + }, + // 项目设置 + { + path: 'project', + name: 'system-setting-project', + component: () => + import('@/views/setting/system/project-settings/index.vue'), + meta: { + locale: 'setting.project', + requiresAuth: true, + roles: ['*'], + }, + }, + // 合同设置 + { + path: 'contract', + name: 'system-setting-contract', + component: () => + import('@/views/setting/system/contract-settings/index.vue'), + meta: { + locale: 'setting.contract', + requiresAuth: true, + roles: ['*'], + }, + }, + // 数据字典 + { + path: 'data-dictionary', + name: 'system-setting-data-dictionary', + component: () => + import('@/views/setting/system/data-dictionary/index.vue'), + meta: { + locale: 'setting.data-dictionary', + requiresAuth: true, + roles: ['*'], + }, + }, + ], }, ], }; diff --git a/src/views/setting/system/contract-settings/index.vue b/src/views/setting/system/contract-settings/index.vue new file mode 100644 index 0000000..c8cb69c --- /dev/null +++ b/src/views/setting/system/contract-settings/index.vue @@ -0,0 +1,3 @@ + diff --git a/src/views/setting/system/data-dictionary/index.vue b/src/views/setting/system/data-dictionary/index.vue new file mode 100644 index 0000000..c8cb69c --- /dev/null +++ b/src/views/setting/system/data-dictionary/index.vue @@ -0,0 +1,3 @@ + diff --git a/src/views/setting/system/general-settings/contrant.ts b/src/views/setting/system/general-settings/contrant.ts new file mode 100644 index 0000000..415bb1e --- /dev/null +++ b/src/views/setting/system/general-settings/contrant.ts @@ -0,0 +1,28 @@ +const generalList = [{ id: 1, text: '安全相关' }]; +const safeSettingList = [ + { + title: '默认登陆页', + options: [ + { type: 1, label: '工作台' }, + { type: 2, label: '项目管理' }, + { type: 3, label: '房源剖视' }, + ], + }, + { + title: '登陆状态保存', + options: [ + { type: 1, label: '7天' }, + { type: 2, label: '1天' }, + { type: 3, label: '12小时' }, + { type: 4, label: '1小时' }, + ], + }, + { + title: '多点登陆支持', + options: [ + { type: 1, label: '支持' }, + { type: 2, label: '不支持' }, + ], + }, +]; +export { generalList, safeSettingList }; diff --git a/src/views/setting/system/general-settings/index.vue b/src/views/setting/system/general-settings/index.vue new file mode 100644 index 0000000..d128bef --- /dev/null +++ b/src/views/setting/system/general-settings/index.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/src/views/setting/system/index.vue b/src/views/setting/system/index.vue deleted file mode 100644 index 368e253..0000000 --- a/src/views/setting/system/index.vue +++ /dev/null @@ -1,101 +0,0 @@ - - - - - diff --git a/src/views/setting/system/organization.vue b/src/views/setting/system/organization/index.vue similarity index 53% rename from src/views/setting/system/organization.vue rename to src/views/setting/system/organization/index.vue index f8b007b..5b4f202 100644 --- a/src/views/setting/system/organization.vue +++ b/src/views/setting/system/organization/index.vue @@ -1,95 +1,100 @@