mirror of
https://github.com/apache/skywalking-booster-ui.git
synced 2025-05-01 18:53:40 +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 => ({
|
||||
services: [],
|
||||
}),
|
||||
getters: {},
|
||||
actions: {
|
||||
async fetchLayers() {
|
||||
async fetchLayers(): Promise<AxiosResponse> {
|
||||
const res: AxiosResponse = await graph.query("queryLayers").params({});
|
||||
|
||||
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
|
||||
export declare type PropType<T> = VuePropType<T>;
|
||||
declare type PropType<T> = VuePropType<T>;
|
||||
declare type VueNode = VNodeChild | JSX.Element;
|
||||
|
||||
export type Writable<T> = {
|
||||
|
@ -14,6 +14,7 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License. -->
|
||||
<template>
|
||||
<div class="dashboard-tool">
|
||||
<el-button size="mini">Add Widget</el-button>
|
||||
<el-button size="mini">Save As</el-button>
|
||||
<el-button size="mini">Discard</el-button>
|
||||
<el-button size="mini" type="primary">Apply</el-button>
|
||||
|
@ -37,16 +37,9 @@ limitations under the License. -->
|
||||
</grid-layout>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ref } from "vue";
|
||||
export interface GridItemData {
|
||||
x: number;
|
||||
y: number;
|
||||
w: number;
|
||||
h: number;
|
||||
i: number;
|
||||
static: boolean;
|
||||
}
|
||||
const layout = [
|
||||
import { GridItemData } from "@/types/dashboard";
|
||||
|
||||
const layout: GridItemData[] = [
|
||||
{ x: 0, y: 0, w: 2, h: 2, i: "0" },
|
||||
{ x: 2, y: 0, w: 2, h: 4, i: "1" },
|
||||
{ x: 4, y: 0, w: 2, h: 5, i: "2" },
|
||||
|
Loading…
Reference in New Issue
Block a user