diff --git a/src/api/system/role.ts b/src/api/system/role.ts index 28b6020c..9198a5e3 100644 --- a/src/api/system/role.ts +++ b/src/api/system/role.ts @@ -8,6 +8,10 @@ export const delRole_api = (id: string): Promise => server.remove(`/role/${ export const saveRole_api = (data: any): Promise => server.post(`/role`, data); // 更新角色信息 export const updateRole_api = (data: any): Promise => server.patch(`/role`, data); + +// 更新角色信息 +export const editRole_api = (id: string, data: any): Promise => server.put(`/role/${id}`, data); + // 获取角色详细信息 export const getRoleDetails_api = (id: string): Promise => server.get(`/role/${id}`); // 获取角色对应的权限树 diff --git a/src/router/menu.ts b/src/router/menu.ts index f7d68cd4..7f7c7614 100644 --- a/src/router/menu.ts +++ b/src/router/menu.ts @@ -2,7 +2,7 @@ export const LoginPath = '/user/login' export const InitHomePath = '/init-home' export const AccountCenterBindPath = '/account/center/bind' export const InitLicense = '/init-license' -export const NotificationSubscriptionCode = 'account/NotificationSubscription' +export const NotificationSubscriptionCode = 'message-subscribe' export const NotificationRecordCode = 'account/NotificationRecord' export const OauthPath = '/oauth' diff --git a/src/store/menu.ts b/src/store/menu.ts index d1d8f8c4..fbb54394 100644 --- a/src/store/menu.ts +++ b/src/store/menu.ts @@ -5,7 +5,7 @@ import { cloneDeep, isArray } from 'lodash-es' import { usePermissionStore } from './permission' import router from '@/router' import { onlyMessage } from '@/utils/comm' -// import { AccountMenu, NotificationRecordCode, NotificationSubscriptionCode } from '@/router/menu' +import { AccountMenu, NotificationRecordCode, NotificationSubscriptionCode } from '@/router/menu' import { USER_CENTER_MENU_CODE } from '@/utils/consts' import {isNoCommunity} from "@/utils/utils"; @@ -109,6 +109,7 @@ export const useMenuStore = defineStore({ permission.permissions = {} const { menusData, silderMenus } = filterAsyncRouter(resultData) + this.menus = findCodeRoute([...resultData]) // AccountMenu Object.keys(this.menus).forEach((item) => { const _item = this.menus[item] @@ -125,7 +126,7 @@ export const useMenuStore = defineStore({ } }) // menusData.push(AccountMenu) - this.siderMenus = silderMenus.filter((item: { name: string }) => ![USER_CENTER_MENU_CODE].includes(item.name)) + this.siderMenus = silderMenus.filter((item: { name: string }) => ![USER_CENTER_MENU_CODE, NotificationRecordCode, NotificationSubscriptionCode].includes(item.name)) res(menusData) } }) diff --git a/src/store/type.ts b/src/store/type.ts new file mode 100644 index 00000000..14220140 --- /dev/null +++ b/src/store/type.ts @@ -0,0 +1,17 @@ +import { defineStore } from "pinia"; + +export const useTypeStore = defineStore({ + id: 'type', + state: () => ({ + configRef: [] as any, + resourcesClusters: {} as any, + }), + actions: { + setConfigRef(current: any[]) { + this.configRef = current + }, + setResourcesClusters(current: any) { + this.resourcesClusters = current + } + } +}) \ No newline at end of file diff --git a/src/views/DataCollect/Collector/Tree/Save/index.vue b/src/views/DataCollect/Collector/Tree/Save/index.vue index 9e3a5c89..504b77d0 100644 --- a/src/views/DataCollect/Collector/Tree/Save/index.vue +++ b/src/views/DataCollect/Collector/Tree/Save/index.vue @@ -156,13 +156,10 @@ diff --git a/src/views/device/Instance/Detail/ChildDevice/EdgeMap/PatchMapping.vue b/src/views/device/Instance/Detail/ChildDevice/EdgeMap/PatchMapping.vue index 66345b8b..646a51db 100644 --- a/src/views/device/Instance/Detail/ChildDevice/EdgeMap/PatchMapping.vue +++ b/src/views/device/Instance/Detail/ChildDevice/EdgeMap/PatchMapping.vue @@ -16,9 +16,11 @@
@@ -56,8 +58,17 @@ @@ -212,4 +300,4 @@ onMounted(() => { } } } - \ No newline at end of file + diff --git a/src/views/device/Instance/Detail/EdgeMap/PatchMapping.vue b/src/views/device/Instance/Detail/EdgeMap/PatchMapping.vue index 86818e91..65250054 100644 --- a/src/views/device/Instance/Detail/EdgeMap/PatchMapping.vue +++ b/src/views/device/Instance/Detail/EdgeMap/PatchMapping.vue @@ -20,6 +20,7 @@ :checkedKeys="checkedKeys" :load-data="onLoadData" @check="onCheck" + v-model:expandedKeys="expandedKeys" />
@@ -120,7 +121,11 @@ const handleSearch = async () => { } }; + +const expandedKeys = ref([]) const onCheck = (keys: string[], e: any) => { + // console.log(expandedKeys.push(e)); + expandedKeys.value.push(e.node.id) checkedKeys.value = [...keys]; leftList.value = e?.checkedNodes || []; }; diff --git a/src/views/device/components/Metadata/Base/Base.vue b/src/views/device/components/Metadata/Base/Base.vue index 3f1fa096..fea0d350 100644 --- a/src/views/device/components/Metadata/Base/Base.vue +++ b/src/views/device/components/Metadata/Base/Base.vue @@ -51,9 +51,6 @@ - @@ -66,6 +63,9 @@ + @@ -80,7 +80,7 @@ - + @@ -146,7 +146,11 @@ const confirm = async () => { watch( () => props.value, () => { + if (props.value.id && !props.value?.expands?.source) { + myValue.value = 'device'; + } else { myValue.value = props.value?.expands?.source || ''; + } type.value = props.value?.expands?.type || []; }, { immediate: true }, diff --git a/src/views/link/DashBoard/components/Cpu.vue b/src/views/link/DashBoard/components/Cpu.vue index 59192c47..96098663 100644 --- a/src/views/link/DashBoard/components/Cpu.vue +++ b/src/views/link/DashBoard/components/Cpu.vue @@ -20,17 +20,13 @@ style="margin-right: 10px" v-model:value="data.type" > - - 最近1小时 - - - 今日 - - - 近一周 - - + + 最近1小时 + + 最近24小时 + 近一周 + +
@@ -38,18 +34,26 @@ v-if="isEmpty" style="height: 200px; margin-top: 100px" /> -
+
m diff --git a/src/views/link/DashBoard/components/Jvm.vue b/src/views/link/DashBoard/components/Jvm.vue index 1b598dba..7da8f2cb 100644 --- a/src/views/link/DashBoard/components/Jvm.vue +++ b/src/views/link/DashBoard/components/Jvm.vue @@ -20,15 +20,11 @@ style="margin-right: 10px" v-model:value="data.type" > - - 最近1小时 - - - 今日 - - - 近一周 - + + 最近1小时 + + 最近24小时 + 近一周 @@ -38,18 +34,26 @@ v-if="isEmpty" style="height: 200px; margin-top: 100px" /> -
+ diff --git a/src/views/link/DashBoard/components/Network.vue b/src/views/link/DashBoard/components/Network.vue index 2a0cd1bd..e6c32143 100644 --- a/src/views/link/DashBoard/components/Network.vue +++ b/src/views/link/DashBoard/components/Network.vue @@ -26,7 +26,7 @@ 最近1小时 - 今日 + 最近24小时 近一周 -
+ @@ -60,14 +69,15 @@ diff --git a/src/views/link/DashBoard/components/ServerList.vue b/src/views/link/DashBoard/components/ServerList.vue new file mode 100644 index 00000000..80bc72bb --- /dev/null +++ b/src/views/link/DashBoard/components/ServerList.vue @@ -0,0 +1,79 @@ + + + + + \ No newline at end of file diff --git a/src/views/link/DashBoard/components/TopCard.vue b/src/views/link/DashBoard/components/TopCard.vue index 3a924893..869448d6 100644 --- a/src/views/link/DashBoard/components/TopCard.vue +++ b/src/views/link/DashBoard/components/TopCard.vue @@ -1,43 +1,47 @@ @@ -115,6 +119,7 @@ const getData = () => { }; onMounted(() => { + console.log('isNoCommunity') if (isNoCommunity) { serverNode().then((resp: any) => { if (resp.success) { @@ -143,19 +148,21 @@ watch( emit('serviceChange', val) }, ); + \ No newline at end of file diff --git a/src/views/link/DashBoard/components/tool.ts b/src/views/link/DashBoard/components/tool.ts index be73f058..4bcbac31 100644 --- a/src/views/link/DashBoard/components/tool.ts +++ b/src/views/link/DashBoard/components/tool.ts @@ -1,4 +1,4 @@ -import dayjs from 'dayjs'; +import dayjs, { Dayjs } from 'dayjs'; import * as echarts from 'echarts'; // export const getInterval = (type: string) => { @@ -36,11 +36,13 @@ export const getTimeByType = (type: string) => { case 'hour': return dayjs().subtract(1, 'hours'); case 'week': - return dayjs().subtract(6, 'days'); + return dayjs().subtract(6, 'days').startOf('day'); case 'month': return dayjs().subtract(29, 'days'); case 'year': return dayjs().subtract(365, 'days'); + case 'day': + return dayjs().subtract(24, 'hours'); default: return dayjs().startOf('day'); } @@ -57,26 +59,24 @@ export const arrayReverse = (data: string) => { export const networkParams = (val: any) => { let _time = '1h'; let _limit = 12; - let format = 'HH'; - - const dt = Number(val.time.time[1]) - Number(val.time.time[0]); + let format = 'M月dd日 HH:mm'; + // @ts-ignore + const dt = dayjs(val.time.time[1]) - dayjs(val.time.time[0]) const hour = 60 * 60 * 1000; const days = hour * 24; const months = days * 30; const year = 365 * days; - if (dt <= hour) { - format = 'mm:ss'; - _time = '1m'; - _limit = 30; - } else if (dt > hour && dt <= days) { - _limit = Math.abs(Math.ceil(dt / hour)); - _limit = 24; + if (dt <= (hour + 10)) { format = 'HH:mm'; + _time = '1m'; + _limit = 60; + } else if (dt > hour && dt <= days) { + _limit = 24; } else if (dt > days && dt <= months * 3) { _limit = Math.abs(Math.ceil(dt / days)) + 1; _time = '1d'; - format = 'M月dd日'; + format = 'M月dd日 HH:mm:ss'; } else if (dt > months * 3 && dt < year) { _limit = Math.abs(Math.ceil(dt / months)) + 1; _time = '1M'; @@ -99,7 +99,7 @@ export const networkParams = (val: any) => { from: Number(val.time.time[0]), to: Number(val.time.time[1]), limit: _limit, - format: 'YYYY-MM-dd HH:mm', + format: format, }, }, ]; diff --git a/src/views/link/Type/Detail/LocalAddressSelect.vue b/src/views/link/Type/Detail/LocalAddressSelect.vue index ad5815e4..6817dcc3 100644 --- a/src/views/link/Type/Detail/LocalAddressSelect.vue +++ b/src/views/link/Type/Detail/LocalAddressSelect.vue @@ -12,8 +12,13 @@ \ No newline at end of file diff --git a/src/views/rule-engine/Alarm/Log/TabComponent/index.vue b/src/views/rule-engine/Alarm/Log/TabComponent/index.vue index f45429f1..fb87789a 100644 --- a/src/views/rule-engine/Alarm/Log/TabComponent/index.vue +++ b/src/views/rule-engine/Alarm/Log/TabComponent/index.vue @@ -138,7 +138,6 @@ import { queryLevel } from '@/api/rule-engine/config'; import Search from '@/components/Search'; import { useAlarmStore } from '@/store/alarm'; import { storeToRefs } from 'pinia'; -import { Store } from 'jetlinks-store'; import dayjs from 'dayjs'; import type { ActionsType } from '@/components/Table'; import SolveComponent from '../SolveComponent/index.vue'; @@ -149,10 +148,10 @@ const menuStory = useMenuStore(); const tableRef = ref(); const alarmStore = useAlarmStore(); const { data } = storeToRefs(alarmStore); + const getDefaulitLevel = () => { queryLevel().then((res) => { if (res.status === 200) { - Store.set('default-level', res.result?.levels || []); data.value.defaultLevel = res.result?.levels || []; } }); diff --git a/src/views/rule-engine/Alarm/Log/index.vue b/src/views/rule-engine/Alarm/Log/index.vue index f886b287..7467ef01 100644 --- a/src/views/rule-engine/Alarm/Log/index.vue +++ b/src/views/rule-engine/Alarm/Log/index.vue @@ -9,7 +9,6 @@ import { isNoCommunity } from '@/utils/utils'; import { useAlarmStore } from '@/store/alarm'; import { storeToRefs } from 'pinia'; import { queryLevel } from '@/api/rule-engine/config'; -import { Store } from 'jetlinks-store'; import TableComponents from './TabComponent/index.vue'; const list = [ { @@ -56,7 +55,6 @@ const { data } = storeToRefs(alarmStore); const getDefaulitLevel = () => { queryLevel().then((res)=>{ if(res.status === 200 ){ - Store.set('default-level', res.result?.levels || []); data.value.defaultLevel = res.result?.levels || []; } }) diff --git a/src/views/rule-engine/DashBoard/components/TimeSelect.vue b/src/views/rule-engine/DashBoard/components/TimeSelect.vue index 5bb29065..c0ca0a49 100644 --- a/src/views/rule-engine/DashBoard/components/TimeSelect.vue +++ b/src/views/rule-engine/DashBoard/components/TimeSelect.vue @@ -86,6 +86,8 @@ const getTimeByType = (type: string) => { return dayjs().subtract(29, 'days').valueOf(); case 'year': return dayjs().subtract(365, 'days').valueOf(); + case 'day': + return dayjs().subtract(24, 'hours').valueOf(); default: return dayjs().startOf('day').valueOf(); } diff --git a/src/views/rule-engine/DashBoard/index.vue b/src/views/rule-engine/DashBoard/index.vue index 0ad4f4a8..983b106c 100644 --- a/src/views/rule-engine/DashBoard/index.vue +++ b/src/views/rule-engine/DashBoard/index.vue @@ -42,6 +42,11 @@ @@ -238,6 +243,7 @@ const getDashBoard = () => { .filter((item) => item.group === '15day') .map((item) => item.data) .sort((a, b) => b.timestamp - a.timestamp); + state.fifteenOptions = { xAxis: { type: 'category', @@ -355,20 +361,25 @@ const initQueryTime = (data: any) => { selectChange(); }; const selectChange = () => { - let time = '1h'; - let format = 'HH'; + let time = '1m'; + let format = 'M月dd日 HH:mm'; let limit = 12; const dt = queryCodition.endTime - queryCodition.startTime; const hour = 60 * 60 * 1000; const day = hour * 24; const month = day * 30; const year = 365 * day; - if (dt <= day) { - limit = Math.abs(Math.ceil(dt / hour)); + + if (dt <= (hour + 10)) { + limit = 60 + format = 'HH:mm'; + } else if (dt > hour && dt <= day) { + time = '1h' + limit = 24; } else if (dt > day && dt < year) { limit = Math.abs(Math.ceil(dt / day)) + 1; time = '1d'; - format = 'M月dd日'; + format = 'M月dd日 HH:mm:ss'; } else if (dt >= year) { limit = Math.abs(Math.floor(dt / month)); time = '1M'; @@ -429,7 +440,7 @@ const selectChange = () => { .filter((item: any) => item.group === 'alarmTrend') .forEach((item: any) => { xData.push(item.data.timeString); - sData.push(item.data.value * 100000); + sData.push(item.data.value); }); const maxY = sData.sort((a,b)=>{ return b-a @@ -452,7 +463,7 @@ const selectChange = () => { grid: { top: '2%', bottom: '5%', - left: maxY < 1000 ? '40px' : maxY.toString().length * 10, + left: maxY < 1000 ? 50 : maxY.toString().length * 10, right: '48px', }, series: [ diff --git a/src/views/system/Role/Detail/Permiss/index.vue b/src/views/system/Role/Detail/Permiss/index.vue index 5efea8ef..6120a980 100644 --- a/src/views/system/Role/Detail/Permiss/index.vue +++ b/src/views/system/Role/Detail/Permiss/index.vue @@ -56,6 +56,7 @@ import { useMenuStore } from '@/store/menu'; import { getRoleDetails_api, updateRole_api, + editRole_api, updatePrimissTree_api, } from '@/api/system/role'; import { onlyMessage } from '@/utils/comm'; @@ -83,7 +84,7 @@ const form = reactive({ }, clickSave: () => { formRef.value?.validate().then(() => { - const updateRole = updateRole_api(form.data); + const updateRole = editRole_api(roleId, form.data); const updateTree = updatePrimissTree_api(roleId, { menus: form.menus, }); diff --git a/src/views/system/Role/Detail/components/PermissTree.vue b/src/views/system/Role/Detail/components/PermissTree.vue index 8071c40a..0f409216 100644 --- a/src/views/system/Role/Detail/components/PermissTree.vue +++ b/src/views/system/Role/Detail/components/PermissTree.vue @@ -112,6 +112,7 @@ import { } from '@/utils/consts' import { isNoCommunity } from '@/utils/utils' import {permissionsGranted, useIndirectMenusMap} from "@/views/system/Role/Detail/components/util"; +import {NotificationSubscriptionCode} from "@/router/menu"; const emits = defineEmits(['update:selectItems']); const route = useRoute(); @@ -279,12 +280,8 @@ function getAllPermiss() { getPrimissTree_api(id).then((resp) => { const _result = resp.result // 默认选中个人中心相关设置 - tableData.value = _result.map((item: { code: string , buttons: any[], granted: boolean}) => { - // if (item.code === USER_CENTER_MENU_CODE) { - // item.granted = true - // item.buttons = item.buttons.map( b => ({...b, granted: true, enabled: true})) - // } - return item + tableData.value = _result.filter((item: { code: string , buttons: any[], granted: boolean}) => { + return (item.code !== NotificationSubscriptionCode) }); treeToSimple(tableData.value); // 表格数据扁平化 diff --git a/yarn.lock b/yarn.lock index 87f32034..b60217f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3837,8 +3837,8 @@ jetlinks-ui-components@^1.0.23: jetlinks-ui-components@^1.0.25: version "1.0.25" - resolved "http://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.25.tgz#b783da3fe05c1420b2ee5707868a67baa90559f7" - integrity sha512-4HJM9Wi8gFfBgYFPjCO7JpmEAXVtDUf5u5lnXTQUt1QkGh0QCzFSBGBIStFs6HE5oY3oIIS3ZWoAjvXElpnNZg== + resolved "http://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.25.tgz#fa730dc39f4072f35c34c00d41d343b0da4a99a5" + integrity sha512-/iz4p86BxmEAPxgTNkr7RqnMdRHQ6vEUKzIlyddtQIvQjuZXTxImh+Ik+V6yxtQVElI8Fjk3l7fiYZZ0E68MSw== dependencies: "@vueuse/core" "^9.12.0" "@vueuse/router" "^9.13.0"