diff --git a/frontend/src/api/datasource.ts b/frontend/src/api/datasource.ts
new file mode 100644
index 00000000..d43fe5b4
--- /dev/null
+++ b/frontend/src/api/datasource.ts
@@ -0,0 +1,7 @@
+import { request } from '@/utils/request'
+
+export const datasourceApi = {
+ check: (data: any) => request.post('/datasource/check', data),
+ add: (data: any) => request.post('/datasource/add', data),
+ list: () => request.get('/datasource/list')
+}
\ No newline at end of file
diff --git a/frontend/src/utils/utils.ts b/frontend/src/utils/utils.ts
new file mode 100644
index 00000000..59bf7f6b
--- /dev/null
+++ b/frontend/src/utils/utils.ts
@@ -0,0 +1,20 @@
+const getCheckDate = (timestamp: any) => {
+ if (!timestamp) return false
+ const dt = new Date(timestamp)
+ if (isNaN(dt.getTime())) return false
+ return dt
+}
+
+export const datetimeFormat = (timestamp: any) => {
+ const dt = getCheckDate(timestamp)
+ if (!dt) return timestamp
+
+ const y = dt.getFullYear()
+ const m = (dt.getMonth() + 1 + '').padStart(2, '0')
+ const d = (dt.getDate() + '').padStart(2, '0')
+ const hh = (dt.getHours() + '').padStart(2, '0')
+ const mm = (dt.getMinutes() + '').padStart(2, '0')
+ const ss = (dt.getSeconds() + '').padStart(2, '0')
+
+ return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
+}
\ No newline at end of file
diff --git a/frontend/src/views/ds/form.vue b/frontend/src/views/ds/form.vue
index d175de93..c1e22618 100644
--- a/frontend/src/views/ds/form.vue
+++ b/frontend/src/views/ds/form.vue
@@ -8,6 +8,19 @@
+
+
+
+
+
+
+
+
@@ -25,7 +38,7 @@
- Test Connect
+ Test Connect
Save
@@ -34,14 +47,22 @@