mirror of
https://gitee.com/devlive-community/datacap.git
synced 2024-11-30 11:07:41 +08:00
web: Supports historical viewing (#28)
This commit is contained in:
commit
739a54b7ee
16
.github/workflows/bofore_checker.yml
vendored
16
.github/workflows/bofore_checker.yml
vendored
@ -41,28 +41,12 @@ jobs:
|
||||
- run: chmod 755 ./mvnw
|
||||
- run: ./mvnw clean install findbugs:findbugs -Dcheckstyle.skip -Dskip.npm -DskipTests=true -X
|
||||
|
||||
before_checker_tests:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- before_checker_loading
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Maven Checker Tests
|
||||
uses: actions/setup-java@v3
|
||||
with:
|
||||
java-version: '11'
|
||||
distribution: 'temurin'
|
||||
- run: chmod 755 ./mvnw
|
||||
- run: ./mvnw clean install -Dfindbugs.skip -Dcheckstyle.skip -Dskip.npm -X
|
||||
|
||||
before_checker_package:
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- before_checker_loading
|
||||
- before_checker_style
|
||||
- before_checker_bugs
|
||||
- before_checker_tests
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
63
README.md
63
README.md
@ -12,3 +12,66 @@ DataCap is integrated software for data transformation, integration and visualiz
|
||||
cp configure/git-hook/* .git/hooks
|
||||
chmod 700 .git/hooks/*
|
||||
```
|
||||
|
||||
## Contributors
|
||||
|
||||
---
|
||||
|
||||
![GitHub Contributors Image](https://contrib.rocks/image?repo=EdurtIO/incubator-datacap)
|
||||
|
||||
## Stargazers over time
|
||||
|
||||
---
|
||||
|
||||
[![Stargazers over time](https://starchart.cc/EdurtIO/incubator-datacap.svg)](https://starchart.cc/EdurtIO/incubator-datacap)
|
||||
|
||||
## Overview
|
||||
|
||||
---
|
||||
|
||||
![](https://visitor-badge.glitch.me/badge?page_id=incubator-datacap)
|
||||
[![](https://tokei.rs/b1/github/EdurtIO/dbm)](https://github.com/EdurtIO/incubator-datacap)
|
||||
![version](https://img.shields.io/github/v/release/EdurtIO/incubator-datacap.svg)
|
||||
|
||||
![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/downloads-pre/EdurtIO/incubator-datacap/latest/total?style=flat-square)
|
||||
![GitHub all releases](https://img.shields.io/github/downloads/EdurtIO/incubator-datacap/total?style=flat-square)
|
||||
|
||||
![GitHub branch checks state](https://img.shields.io/github/checks-status/EdurtIO/incubator-datacap/master?style=flat-square)
|
||||
![GitHub Release Date](https://img.shields.io/github/release-date/EdurtIO/incubator-datacap?style=flat-square)
|
||||
|
||||
![GitHub commit activity](https://img.shields.io/github/commit-activity/y/EdurtIO/incubator-datacap?style=flat-square)
|
||||
![GitHub contributors](https://img.shields.io/github/contributors-anon/EdurtIO/incubator-datacap?style=flat-square)
|
||||
![GitHub last commit](https://img.shields.io/github/last-commit/EdurtIO/incubator-datacap?style=flat-square)
|
||||
|
||||
## Supported Databases
|
||||
|
||||
---
|
||||
|
||||
DBM can query data from any SQL-speaking datastore or data engine (ClickHouse and more).
|
||||
|
||||
Here are some of the major database solutions that are supported:
|
||||
|
||||
<p align="center">
|
||||
<a href="https://clickhouse.com" target="_blank"><img src="./shared/plugin/clickhouse.png" alt="ClickHouse" class="a" width="133" height="34" /></a>
|
||||
<a href="https://www.mysql.com" target="_blank"><img src="./shared/plugin/mysql.png" alt="MySQL" class="a" width="auto" height="50"/></a>
|
||||
</p>
|
||||
|
||||
## Join Us
|
||||
|
||||
---
|
||||
|
||||
Open the DingTalk software and scan the following QR code to join
|
||||
|
||||
<img src="./shared/dingtalk.png" width="200px" height="250px"></img>
|
||||
|
||||
## Thank you
|
||||
|
||||
---
|
||||
|
||||
- [Jetbrains](https://www.jetbrains.com/)
|
||||
|
||||
## Installation and Configuration
|
||||
|
||||
---
|
||||
|
||||
[Extended documentation for DataCap](https://databap.incubator.edurt.io)
|
||||
|
BIN
shared/dingtalk.png
Normal file
BIN
shared/dingtalk.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 174 KiB |
BIN
shared/plugin/clickhouse.png
Normal file
BIN
shared/plugin/clickhouse.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.1 KiB |
BIN
shared/plugin/mysql.png
Normal file
BIN
shared/plugin/mysql.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
48
web/console-fe/src/components/ConsoleSQL.vue
Normal file
48
web/console-fe/src/components/ConsoleSQL.vue
Normal file
@ -0,0 +1,48 @@
|
||||
<template>
|
||||
<a-modal v-model:visible="visible" title="SQL" :footer="null" width="60%" @cancel="handlerCancel()">
|
||||
<MonacoEditor theme="vs" :options="{theme: 'vs-dark', fontSize: 15}" language="sql" :height="300"
|
||||
v-model:value="localContent">
|
||||
</MonacoEditor>
|
||||
</a-modal>
|
||||
</template>
|
||||
<script lang="ts">
|
||||
import MonacoEditor from 'monaco-editor-vue3';
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ConsoleSQLComponent",
|
||||
props: {
|
||||
isVisible: {
|
||||
type: Boolean,
|
||||
default: () => false
|
||||
},
|
||||
content: {
|
||||
type: String,
|
||||
default: () => ''
|
||||
}
|
||||
},
|
||||
components: { MonacoEditor },
|
||||
data() {
|
||||
return {
|
||||
localContent: this.content
|
||||
}
|
||||
}
|
||||
,
|
||||
methods: {
|
||||
handlerCancel() {
|
||||
this.visible = false;
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
visible: {
|
||||
get(): boolean {
|
||||
return this.isVisible;
|
||||
},
|
||||
set(value: boolean) {
|
||||
this.$emit('close', value);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
@ -1,4 +1,4 @@
|
||||
import {SourceModel} from "@/model/SourceModel";
|
||||
import { SourceModel } from "@/model/SourceModel";
|
||||
|
||||
const emptySource: SourceModel = {
|
||||
name: "",
|
||||
|
@ -31,6 +31,12 @@ const headers = [
|
||||
name: 'state',
|
||||
dataIndex: 'state',
|
||||
key: 'state'
|
||||
},
|
||||
{
|
||||
title: 'Action',
|
||||
name: 'action',
|
||||
dataIndex: 'action',
|
||||
key: 'action'
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -10,25 +10,50 @@
|
||||
<template v-if="column.dataIndex === 'state'">
|
||||
<a-tag :color="record.state === 'SUCCESS' ? '#87d068' : '#f50'">{{record.state}}</a-tag>
|
||||
</template>
|
||||
<template v-if="column.dataIndex === 'action'">
|
||||
<a-space style="width: 100%">
|
||||
<a-button type="primary" shape="circle" size="small"
|
||||
@click="handlerShowContent(record.content)">
|
||||
<a-tooltip>
|
||||
<template #title>SQL</template>
|
||||
<eye-outlined />
|
||||
</a-tooltip>
|
||||
</a-button>
|
||||
<a-button :disabled="record.state === 'SUCCESS'" danger type="primary" shape="circle"
|
||||
size="small" @click="handlerShowError(record.message)">
|
||||
<a-tooltip>
|
||||
<template #title>Error</template>
|
||||
<warning-outlined />
|
||||
</a-tooltip>
|
||||
</a-button>
|
||||
</a-space>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-card>
|
||||
</div>
|
||||
|
||||
<ConsoleSQLComponent v-if="content" :isVisible="visibleContent" :content="content"
|
||||
@close="handlerCloseContent($event)" />
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import ConsoleSQLComponent from "@/components/ConsoleSQL.vue";
|
||||
import { AuditService } from "@/services/AuditService";
|
||||
import { headers } from "@/views/pages/console/ConsoleGenerate";
|
||||
import { Modal } from "ant-design-vue";
|
||||
import { defineComponent } from "vue";
|
||||
|
||||
export default defineComponent({
|
||||
name: "ConsoleHistoryView",
|
||||
components: {},
|
||||
components: { ConsoleSQLComponent },
|
||||
data() {
|
||||
return {
|
||||
headers,
|
||||
columns: [],
|
||||
loading: false,
|
||||
content: '',
|
||||
visibleContent: false,
|
||||
pagination: {
|
||||
total: 0,
|
||||
current: 1,
|
||||
@ -59,6 +84,20 @@ export default defineComponent({
|
||||
this.pagination.current = pagination.current;
|
||||
this.pagination.pageSize = pagination.pageSize;
|
||||
this.handlerInitialize(pagination.current, pagination.pageSize)
|
||||
},
|
||||
handlerShowError(message: string) {
|
||||
Modal.error({
|
||||
title: 'Error Message',
|
||||
content: message,
|
||||
});
|
||||
},
|
||||
handlerShowContent(content: string) {
|
||||
this.visibleContent = true;
|
||||
this.content = content;
|
||||
},
|
||||
handlerCloseContent(value: boolean) {
|
||||
this.visibleContent = value;
|
||||
this.content = '';
|
||||
}
|
||||
}
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user