Skip to content

Commit 6b084f0

Browse files
committed
feat: datasource page
1 parent 5111fec commit 6b084f0

2 files changed

Lines changed: 72 additions & 3 deletions

File tree

frontend/src/views/ds/form.vue

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
<template>
2+
<el-dialog
3+
v-model="dialogVisible"
4+
title="Add Datasource"
5+
width="500"
6+
>
7+
<el-form :model="form" label-width="auto">
8+
<el-form-item label="Name">
9+
<el-input v-model="form.name" />
10+
</el-form-item>
11+
<el-form-item label="Host/Ip">
12+
<el-input v-model="form.host" />
13+
</el-form-item>
14+
<el-form-item label="Port">
15+
<el-input v-model="form.port" />
16+
</el-form-item>
17+
<el-form-item label="Username">
18+
<el-input v-model="form.username" />
19+
</el-form-item>
20+
<el-form-item label="Password">
21+
<el-input v-model="form.password" />
22+
</el-form-item>
23+
<el-form-item label="Database">
24+
<el-input v-model="form.database" />
25+
</el-form-item>
26+
27+
<el-form-item>
28+
<el-button>Test Connect</el-button>
29+
<el-button type="primary" @click="save">Save</el-button>
30+
</el-form-item>
31+
</el-form>
32+
</el-dialog>
33+
</template>
34+
<script lang="ts" setup>
35+
import { reactive } from 'vue'
36+
import { ref } from 'vue'
37+
const dialogVisible = ref<boolean>(false)
38+
const form = reactive({
39+
name:'',
40+
host:'',
41+
port:0,
42+
username:'',
43+
password:'',
44+
database:''
45+
})
46+
47+
const open = () => {
48+
dialogVisible.value = true
49+
}
50+
51+
const save = () => {
52+
53+
}
54+
55+
defineExpose({ open })
56+
</script>
57+
<style lang="less" scoped>
58+
</style>

frontend/src/views/ds/index.vue

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<div class="header">
44
<div class="mt-4">
55
<el-input
6-
v-model="input3"
6+
v-model="search"
77
style="max-width: 300px"
88
placeholder="Search Datasource..."
99
class="input-with-select"
@@ -14,7 +14,7 @@
1414
</el-input>
1515
</div>
1616

17-
<el-button type="primary" :icon="IconOpeAdd">Add Datasource</el-button>
17+
<el-button type="primary" :icon="IconOpeAdd" @click="addDs">Add Datasource</el-button>
1818
</div>
1919

2020
<div class="connections-container">
@@ -43,12 +43,19 @@
4343
</div>
4444
</div>
4545
</div>
46+
<DsForm ref="dsForm"/>
4647
</template>
4748
<script lang="ts" setup>
4849
import IconOpeAdd from '@/assets/svg/operate/ope-add.svg'
4950
import IconOpeEdit from '@/assets/svg/operate/ope-edit.svg'
5051
import IconOpeDelete from '@/assets/svg/operate/ope-delete.svg'
5152
import { Search } from '@element-plus/icons-vue'
53+
import { ref } from 'vue'
54+
import DsForm from './form.vue'
55+
56+
const search = ref<string>('')
57+
const dsForm = ref()
58+
5259
const mockData = [
5360
{
5461
name:'1',
@@ -133,7 +140,7 @@ const mockData = [
133140
}
134141
]
135142
136-
const getStatus = function(status: string) {
143+
const getStatus = (status: string) => {
137144
if (status === 'On') {
138145
return 'connected'
139146
}
@@ -144,6 +151,10 @@ const getStatus = function(status: string) {
144151
return 'needs-verification'
145152
}
146153
}
154+
155+
const addDs = () => {
156+
dsForm.value.open()
157+
}
147158
</script>
148159
<style lang="less" scoped>
149160
.header{

0 commit comments

Comments
 (0)