diff --git a/src/api/account/center.ts b/src/api/account/center.ts index 2d86af80..67414ce9 100644 --- a/src/api/account/center.ts +++ b/src/api/account/center.ts @@ -9,7 +9,7 @@ export const updateMeInfo_api = (data:object) => server.put(`/user/detail`,data) // 修改登录用户密码 export const updateMepsd_api = (data:object) => server.put(`/user/passwd`,data); // 第三方账号解绑 -export const unBind_api = (appId: string) => server.post(`/application/sso/${appId}/unbind/me`); +export const unBind_api = (appId: string) => server.post(`/application/sso/${appId}/unbind/me`, []); /** * 校验字段合法性 * @param type 类型 diff --git a/src/components/ValueItem/index.vue b/src/components/ValueItem/index.vue index 35e39dcb..ca8751f6 100644 --- a/src/components/ValueItem/index.vue +++ b/src/components/ValueItem/index.vue @@ -67,6 +67,14 @@ + ({ double: 'inputNumber', string: 'input', array: 'input', - password: 'input', + password: 'password', enum: 'select', boolean: 'select', date: 'date', diff --git a/src/router/menu.ts b/src/router/menu.ts index 18aab90b..0224dc75 100644 --- a/src/router/menu.ts +++ b/src/router/menu.ts @@ -2,6 +2,8 @@ export const LoginPath = '/login' export const InitHomePath = '/init-home' export const AccountCenterBindPath = '/account/center/bind' export const InitLicense = '/init-license' +export const NotificationSubscriptionCode = 'account/NotificationSubscription' +export const NotificationRecordCode = 'account/NotificationRecord' export const AccountMenu = { path: '/account', diff --git a/src/store/menu.ts b/src/store/menu.ts index 645471f8..16f65155 100644 --- a/src/store/menu.ts +++ b/src/store/menu.ts @@ -1,11 +1,12 @@ import { defineStore } from 'pinia' import { queryOwnThree } from '@/api/system/menu' import { filterAsyncRouter, findCodeRoute, MenuItem } from '@/utils/menu' -import { isArray } from 'lodash-es' +import { cloneDeep, isArray } from 'lodash-es' import { usePermissionStore } from './permission' import router from '@/router' import { onlyMessage } from '@/utils/comm' -import { AccountMenu } from '@/router/menu' +import { AccountMenu, NotificationRecordCode, NotificationSubscriptionCode } from '@/router/menu' +import { MESSAGE_SUBSCRIBE_MENU_CODE, USER_CENTER_MENU_CODE } from '@/utils/consts' const defaultOwnParams = [ { @@ -96,6 +97,13 @@ export const useMenuStore = defineStore({ const permission = usePermissionStore() permission.permissions = {} const { menusData, silderMenus } = filterAsyncRouter(resp.result) + + // 是否存在通知订阅 + const hasMessageSub = resp.result.some((item: { code: string }) => item.code === MESSAGE_SUBSCRIBE_MENU_CODE) + console.log('hasMessageSub', hasMessageSub) + if (!hasMessageSub) { + AccountMenu.children = AccountMenu.children.filter((item: { code: string }) => ![NotificationSubscriptionCode, NotificationRecordCode].includes(item.code) ) + } this.menus = findCodeRoute([...resp.result, AccountMenu]) Object.keys(this.menus).forEach((item) => { const _item = this.menus[item] @@ -112,7 +120,7 @@ export const useMenuStore = defineStore({ } }) menusData.push(AccountMenu) - this.siderMenus = silderMenus + this.siderMenus = silderMenus.filter((item: { name: string }) => ![USER_CENTER_MENU_CODE, MESSAGE_SUBSCRIBE_MENU_CODE].includes(item.name)) res(menusData) } }) diff --git a/src/utils/consts.ts b/src/utils/consts.ts index d04577ed..04458dd8 100644 --- a/src/utils/consts.ts +++ b/src/utils/consts.ts @@ -1,3 +1,5 @@ +import { MESSAGE_SUBSCRIBE_MENU_DATA } from '@/views/init-home/data/baseMenu' + /** * 状态颜色 */ @@ -47,3 +49,8 @@ export const SystemConst = { VERSION_CODE: 'version_code', AMAP_KEY : 'amap_key', } + +export const USER_CENTER_MENU_CODE = 'account-center' +export const USER_CENTER_MENU_BUTTON_CODE = 'user-center-passwd-update' +export const MESSAGE_SUBSCRIBE_MENU_CODE = 'message-subscribe' +export const MESSAGE_SUBSCRIBE_MENU_BUTTON_CODE = 'message-subscribe-view' diff --git a/src/views/account/Center/index.vue b/src/views/account/Center/index.vue index dd36cfd7..becf59e7 100644 --- a/src/views/account/Center/index.vue +++ b/src/views/account/Center/index.vue @@ -110,7 +110,7 @@ /> -
+

修改密码

@@ -245,7 +245,10 @@ import moment from 'moment'; import { getMe_api, getView_api, setView_api } from '@/api/home'; import { isNoCommunity } from '@/utils/utils'; import { userInfoType } from './typing'; +import { usePermissionStore } from 'store/permission' +const btnHasPermission = usePermissionStore().hasPermission; +const updatePassword = btnHasPermission('account-center:user-center-passwd-update') const permission = 'system/User'; const userInfo = ref({} as any); // 第三方账号 @@ -361,7 +364,7 @@ function getViews() { .then((resp: any) => { if (resp?.status === 200) { if (resp.result) currentView.value = resp.result?.content; - else if (resp.result.username === 'admin') { + else if (resp.result?.username === 'admin') { currentView.value = 'comprehensive'; } else currentView.value = 'init'; } diff --git a/src/views/device/components/Metadata/Base/Edit/ValueTypeForm.vue b/src/views/device/components/Metadata/Base/Edit/ValueTypeForm.vue index 7f171f06..ed0942ef 100644 --- a/src/views/device/components/Metadata/Base/Edit/ValueTypeForm.vue +++ b/src/views/device/components/Metadata/Base/Edit/ValueTypeForm.vue @@ -163,7 +163,7 @@ const changeType = (val: SelectValue) => { _value.value.fileType = _value.value.fileType || 'url' } if (['date'].includes(val as string)) { - _value.value.format = _value.value.format || 'yyyy-MM-DD HH:mm:ss' + _value.value.format = _value.value.format || 'yyyy-MM-dd HH:mm:ss' } emit('changeType', val as string) } diff --git a/src/views/init-home/Menu/index.vue b/src/views/init-home/Menu/index.vue index b39a312a..6fa18e54 100644 --- a/src/views/init-home/Menu/index.vue +++ b/src/views/init-home/Menu/index.vue @@ -12,7 +12,7 @@