From edb026e6ed4a723b7be41907219c92a99cbbc4c3 Mon Sep 17 00:00:00 2001 From: selcarpa Date: Tue, 14 Oct 2025 17:22:34 +0800 Subject: [PATCH] feat(node): Implements node management functionality - Adds a new node table structure - Configures routing to support dynamic groupId parameter passing --- src-tauri/src/lib.rs | 8 +- src/components.d.ts | 3 + src/components/nodeEdit/addNode.vue | 95 +++++++++++++ src/components/nodeEdit/nodeList.vue | 134 +++++++++++++++++++ src/components/nodeEdit/nodesFloatButton.vue | 36 +++++ src/pages/addNode/[groupId].vue | 13 ++ src/pages/nodes.vue | 31 +---- src/typed-router.d.ts | 5 + 8 files changed, 297 insertions(+), 28 deletions(-) create mode 100644 src/components/nodeEdit/addNode.vue create mode 100644 src/components/nodeEdit/nodeList.vue create mode 100644 src/components/nodeEdit/nodesFloatButton.vue create mode 100644 src/pages/addNode/[groupId].vue diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index a379f17..c961cbf 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -14,7 +14,13 @@ pub fn run() { description: "create_initial_tables", sql: "CREATE TABLE `group`(id INTEGER PRIMARY KEY AUTOINCREMENT, name VARCHAR(60) NOT NULL,url TEXT NULL, arguments JSON NOT NULL default '{}', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP)", kind: MigrationKind::Up, - } + }, + Migration { + version: 2, + description: "add_node_table", + sql: "CREATE TABLE node(id INTEGER PRIMARY KEY AUTOINCREMENT, alias VARCHAR(60) NOT NULL,arguments JSON NOT NULL default '{}', created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP, group_id INTEGER NOT NULL)", + kind: MigrationKind::Up, + }, ]; tauri::Builder::default() .plugin( diff --git a/src/components.d.ts b/src/components.d.ts index 0a162d4..c1f09bf 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -9,6 +9,9 @@ export {} declare module 'vue' { export interface GlobalComponents { AddGroup: typeof import('./components/nodeEdit/addGroup.vue')['default'] + AddNode: typeof import('./components/nodeEdit/addNode.vue')['default'] + NodeList: typeof import('./components/nodeEdit/nodeList.vue')['default'] + NodesFloatButton: typeof import('./components/nodeEdit/nodesFloatButton.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] Spary: typeof import('./components/index/spary.vue')['default'] diff --git a/src/components/nodeEdit/addNode.vue b/src/components/nodeEdit/addNode.vue new file mode 100644 index 0000000..f947fed --- /dev/null +++ b/src/components/nodeEdit/addNode.vue @@ -0,0 +1,95 @@ + + + \ No newline at end of file diff --git a/src/components/nodeEdit/nodeList.vue b/src/components/nodeEdit/nodeList.vue new file mode 100644 index 0000000..f7195a2 --- /dev/null +++ b/src/components/nodeEdit/nodeList.vue @@ -0,0 +1,134 @@ + + + + diff --git a/src/components/nodeEdit/nodesFloatButton.vue b/src/components/nodeEdit/nodesFloatButton.vue new file mode 100644 index 0000000..c5c9ef9 --- /dev/null +++ b/src/components/nodeEdit/nodesFloatButton.vue @@ -0,0 +1,36 @@ + + + + + \ No newline at end of file diff --git a/src/pages/addNode/[groupId].vue b/src/pages/addNode/[groupId].vue new file mode 100644 index 0000000..eeb1e13 --- /dev/null +++ b/src/pages/addNode/[groupId].vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/pages/nodes.vue b/src/pages/nodes.vue index c5c9ef9..2842758 100644 --- a/src/pages/nodes.vue +++ b/src/pages/nodes.vue @@ -1,36 +1,13 @@ \ No newline at end of file diff --git a/src/typed-router.d.ts b/src/typed-router.d.ts index b332a4b..031a4a1 100644 --- a/src/typed-router.d.ts +++ b/src/typed-router.d.ts @@ -20,6 +20,7 @@ declare module 'vue-router/auto-routes' { export interface RouteNamedMap { '/': RouteRecordInfo<'/', '/', Record, Record>, '/addGroup': RouteRecordInfo<'/addGroup', '/addGroup', Record, Record>, + '/addNode/[groupId]': RouteRecordInfo<'/addNode/[groupId]', '/addNode/:groupId', { groupId: ParamValue }, { groupId: ParamValue }>, '/nodes': RouteRecordInfo<'/nodes', '/nodes', Record, Record>, '/settings': RouteRecordInfo<'/settings', '/settings', Record, Record>, } @@ -43,6 +44,10 @@ declare module 'vue-router/auto-routes' { routes: '/addGroup' views: never } + 'src/pages/addNode/[groupId].vue': { + routes: '/addNode/[groupId]' + views: never + } 'src/pages/nodes.vue': { routes: '/nodes' views: never