mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-05-02 16:54:52 +00:00
feat: add dashboard store
This commit is contained in:
parent
337d9bfe04
commit
f9f38e4cf0
39
src/store/modules/dashboard.ts
Normal file
39
src/store/modules/dashboard.ts
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
import { defineStore } from "pinia";
|
||||||
|
import { store } from "@/store";
|
||||||
|
import { GridItemData } from "@/types/dashboard";
|
||||||
|
|
||||||
|
interface DashboardState {
|
||||||
|
layouts: GridItemData[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export const dashboardStore = defineStore({
|
||||||
|
id: "dashboard",
|
||||||
|
state: (): DashboardState => ({
|
||||||
|
layouts: [],
|
||||||
|
}),
|
||||||
|
actions: {
|
||||||
|
setLayouts(data: GridItemData[]) {
|
||||||
|
this.layouts = data;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
export function useDashboardStore(): any {
|
||||||
|
return dashboardStore(store);
|
||||||
|
}
|
@ -29,9 +29,8 @@ export const selectorStore = defineStore({
|
|||||||
state: (): SelectorState => ({
|
state: (): SelectorState => ({
|
||||||
services: [],
|
services: [],
|
||||||
}),
|
}),
|
||||||
getters: {},
|
|
||||||
actions: {
|
actions: {
|
||||||
async fetchLayers() {
|
async fetchLayers(): Promise<AxiosResponse> {
|
||||||
const res: AxiosResponse = await graph.query("queryLayers").params({});
|
const res: AxiosResponse = await graph.query("queryLayers").params({});
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
|
24
src/types/dashboard.ts
Normal file
24
src/types/dashboard.ts
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/**
|
||||||
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
* contributor license agreements. See the NOTICE file distributed with
|
||||||
|
* this work for additional information regarding copyright ownership.
|
||||||
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
||||||
|
* (the "License"); you may not use this file except in compliance with
|
||||||
|
* the License. You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
export interface GridItemData {
|
||||||
|
x: number;
|
||||||
|
y: number;
|
||||||
|
w: number;
|
||||||
|
h: number;
|
||||||
|
i: string;
|
||||||
|
static?: boolean;
|
||||||
|
}
|
2
src/types/global.d.ts
vendored
2
src/types/global.d.ts
vendored
@ -38,7 +38,7 @@ declare global {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// vue
|
// vue
|
||||||
export declare type PropType<T> = VuePropType<T>;
|
declare type PropType<T> = VuePropType<T>;
|
||||||
declare type VueNode = VNodeChild | JSX.Element;
|
declare type VueNode = VNodeChild | JSX.Element;
|
||||||
|
|
||||||
export type Writable<T> = {
|
export type Writable<T> = {
|
||||||
|
@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
|
|||||||
limitations under the License. -->
|
limitations under the License. -->
|
||||||
<template>
|
<template>
|
||||||
<div class="dashboard-tool">
|
<div class="dashboard-tool">
|
||||||
|
<el-button size="mini">Add Widget</el-button>
|
||||||
<el-button size="mini">Save As</el-button>
|
<el-button size="mini">Save As</el-button>
|
||||||
<el-button size="mini">Discard</el-button>
|
<el-button size="mini">Discard</el-button>
|
||||||
<el-button size="mini" type="primary">Apply</el-button>
|
<el-button size="mini" type="primary">Apply</el-button>
|
||||||
|
@ -37,16 +37,9 @@ limitations under the License. -->
|
|||||||
</grid-layout>
|
</grid-layout>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref } from "vue";
|
import { GridItemData } from "@/types/dashboard";
|
||||||
export interface GridItemData {
|
|
||||||
x: number;
|
const layout: GridItemData[] = [
|
||||||
y: number;
|
|
||||||
w: number;
|
|
||||||
h: number;
|
|
||||||
i: number;
|
|
||||||
static: boolean;
|
|
||||||
}
|
|
||||||
const layout = [
|
|
||||||
{ x: 0, y: 0, w: 2, h: 2, i: "0" },
|
{ x: 0, y: 0, w: 2, h: 2, i: "0" },
|
||||||
{ x: 2, y: 0, w: 2, h: 4, i: "1" },
|
{ x: 2, y: 0, w: 2, h: 4, i: "1" },
|
||||||
{ x: 4, y: 0, w: 2, h: 5, i: "2" },
|
{ x: 4, y: 0, w: 2, h: 5, i: "2" },
|
||||||
|
Loading…
Reference in New Issue
Block a user