Browse Source

add user Settings

5.0.0-rc.2
cKey 4 years ago
parent
commit
57e41603c5
  1. 4
      apps/vue/src/api/settings/model/settingModel.ts
  2. 22
      apps/vue/src/api/settings/settings.ts
  3. 13
      apps/vue/src/utils/http/axios/index.ts
  4. 31
      apps/vue/src/views/account/center/Setting.vue
  5. 16
      apps/vue/src/views/account/center/index.vue
  6. 2
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Localization/ApplicationContracts/en.json
  7. 2
      aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Localization/ApplicationContracts/zh-Hans.json

4
apps/vue/src/api/settings/model/settingModel.ts

@ -56,3 +56,7 @@ export class SettingGroup {
description?: string;
settings = new Array<Setting>();
}
export interface SettingGroupResult {
items: SettingGroup[];
}

22
apps/vue/src/api/settings/settings.ts

@ -1,16 +1,17 @@
import { defHttp } from '/@/utils/http/axios';
import { SettingGroup, SettingsUpdate } from './model/settingModel';
import { ListResultDto } from '/@/api/model/baseModel';
import { SettingGroupResult, SettingsUpdate } from './model/settingModel';
enum Api {
GetGlobalSettings = '/api/setting-management/settings/by-global',
SetGlobalSettings = '/api/setting-management/settings/change-global',
GetCurrentTenantSettings = '/api/setting-management/settings/by-current-tenant',
SetCurrentTenantSettings = '/api/setting-management/settings/change-current-tenant',
GetCurrentUserSettings = '/api/setting-management/settings/by-current-user',
SetCurrentUserSettings = '/api/setting-management/settings/change-current-user',
}
export const getGlobalSettings = () => {
return defHttp.get<ListResultDto<SettingGroup>>({
return defHttp.get<SettingGroupResult>({
url: Api.GetGlobalSettings,
});
};
@ -23,7 +24,7 @@ export const setGlobalSettings = (payload: SettingsUpdate) => {
};
export const getCurrentTenantSettings = () => {
return defHttp.get<ListResultDto<SettingGroup>>({
return defHttp.get<SettingGroupResult>({
url: Api.GetCurrentTenantSettings,
});
};
@ -34,3 +35,16 @@ export const setCurrentTenantSettings = (payload: SettingsUpdate) => {
url: Api.SetCurrentTenantSettings,
});
};
export const getCurrentUserSettings = () => {
return defHttp.get<SettingGroupResult>({
url: Api.GetCurrentUserSettings,
});
};
export const setCurrentUserSettings = (payload: SettingsUpdate) => {
return defHttp.put({
data: payload,
url: Api.SetCurrentUserSettings,
});
};

13
apps/vue/src/utils/http/axios/index.ts

@ -38,13 +38,14 @@ const transform: AxiosTransform = {
}
const { data } = res;
if (!data) {
// return '[HTTP] Request has no return value';
throw new Error(t('sys.api.apiRequestFailed'));
}
// 对包装结果处理
if (res.headers['_abpwrapresult'] === 'true') {
if (!data) {
// return '[HTTP] Request has no return value';
throw new Error(t('sys.api.apiRequestFailed'));
}
const { code, result, message, details } = data;
const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.CODE;
if (hasSuccess) {
@ -62,7 +63,7 @@ const transform: AxiosTransform = {
throw new Error(content || t('sys.api.apiRequestFailed'));
}
return res.data;
return data;
},
// 请求之前处理config

31
apps/vue/src/views/account/center/Setting.vue

@ -0,0 +1,31 @@
<template>
<SettingForm :save-api="settingFormRef.saveApi" :setting-groups="group" tab-position="left" />
</template>
<script lang="ts" setup>
import { ref, onMounted } from 'vue';
import { useAbpStoreWithOut } from '/@/store/modules/abp';
import { SettingForm } from '/@/components/SettingManagement';
import { SettingGroup } from '/@/api/settings/model/settingModel';
import { getCurrentUserSettings, setCurrentUserSettings } from '/@/api/settings/settings';
interface ISettingForm {
providerName: string;
providerKey?: string;
saveApi: (...args: any) => Promise<any>;
}
const abpStore = useAbpStoreWithOut();
const group = ref<SettingGroup[]>([]);
const settingFormRef = ref<ISettingForm>({
providerName: 'U',
providerKey: abpStore.getApplication.currentUser.id,
saveApi: setCurrentUserSettings,
});
onMounted(() => {
getCurrentUserSettings().then((res) => {
group.value = res.items;
})
});
</script>

16
apps/vue/src/views/account/center/index.vue

@ -14,7 +14,7 @@
</a-col>
</a-row>
<div :class="`${prefixCls}-bottom`">
<Tabs>
<Tabs tab-position="top" v-model:activeKey="activeTabKey">
<template v-for="item in components" :key="item.key">
<TabPane :tab="item.name">
<component :is="item.component" />
@ -27,13 +27,14 @@
<script lang="ts">
import { Tag, Tabs, Row, Col } from 'ant-design-vue';
import { defineComponent, computed } from 'vue';
import { defineComponent, computed, ref } from 'vue';
import { CollapseContainer } from '/@/components/Container/index';
import Icon from '/@/components/Icon/index';
import headerImg from '/@/assets/images/header.jpg';
import { useUserStore } from '/@/store/modules/user';
import { useLocalization } from '/@/hooks/abp/useLocalization';
import Cloud from './Cloud.vue';
import Setting from './Setting.vue';
export default defineComponent({
components: {
Cloud,
@ -42,20 +43,29 @@
Tag,
Tabs,
TabPane: Tabs.TabPane,
Setting,
[Row.name]: Row,
[Col.name]: Col,
},
setup() {
const userStore = useUserStore();
const { L } = useLocalization('AbpOssManagement');
const activeTabKey = ref('cloud');
const { L } = useLocalization('AbpOssManagement', 'AbpSettingManagement');
const components = [
{
key: 'cloud',
name: L('MyCloud'),
component: 'cloud',
},
{
key: 'setting',
name: L('User'),
component: 'setting',
},
];
const userInfo = computed(() => userStore.getUserInfo);
return {
activeTabKey,
prefixCls: 'account-center',
userInfo,
headerImg,

2
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Localization/ApplicationContracts/en.json

@ -5,6 +5,8 @@
"Permission:Settings": "Settings",
"Permission:Update": "Update",
"Permission:Manager": "Manager",
"DisplayName:User": "User Settings",
"Description:User": "User defined settings",
"DisplayName:System": "System",
"Description:System": "System",
"DisplayName:System.Language": "Language",

2
aspnet-core/modules/settings/LINGYUN.Abp.SettingManagement.Application.Contracts/LINGYUN/Abp/SettingManagement/Localization/ApplicationContracts/zh-Hans.json

@ -5,6 +5,8 @@
"Permission:Settings": "配置管理",
"Permission:Update": "变更",
"Permission:Manager": "管理",
"DisplayName:User": "用户设置",
"Description:User": "用户自定义的设置项",
"DisplayName:System": "系统设置",
"Description:System": "与系统相关的配置项",
"DisplayName:System.Language": "语言",

Loading…
Cancel
Save