diff --git a/packages/ui/src/components/native-select/NativeSelect.vue b/packages/ui/src/components/native-select/NativeSelect.vue
new file mode 100644
index 00000000..70a0e8b7
--- /dev/null
+++ b/packages/ui/src/components/native-select/NativeSelect.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
diff --git a/packages/ui/src/components/native-select/NativeSelectOptGroup.vue b/packages/ui/src/components/native-select/NativeSelectOptGroup.vue
new file mode 100644
index 00000000..c21efe10
--- /dev/null
+++ b/packages/ui/src/components/native-select/NativeSelectOptGroup.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/packages/ui/src/components/native-select/NativeSelectOption.vue b/packages/ui/src/components/native-select/NativeSelectOption.vue
new file mode 100644
index 00000000..d19488c1
--- /dev/null
+++ b/packages/ui/src/components/native-select/NativeSelectOption.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
diff --git a/packages/ui/src/components/native-select/index.ts b/packages/ui/src/components/native-select/index.ts
new file mode 100644
index 00000000..04e92c7e
--- /dev/null
+++ b/packages/ui/src/components/native-select/index.ts
@@ -0,0 +1,3 @@
+export { default as NativeSelect } from "./NativeSelect.vue"
+export { default as NativeSelectOptGroup } from "./NativeSelectOptGroup.vue"
+export { default as NativeSelectOption } from "./NativeSelectOption.vue"
diff --git a/packages/ui/src/components/scroll-area/index.ts b/packages/ui/src/components/scroll-area/index.ts
index c416759c..2bd4fae5 100644
--- a/packages/ui/src/components/scroll-area/index.ts
+++ b/packages/ui/src/components/scroll-area/index.ts
@@ -1,2 +1,2 @@
-export { default as ScrollArea } from "./ScrollArea.vue"
-export { default as ScrollBar } from "./ScrollBar.vue"
+export { default as ScrollArea } from './ScrollArea.vue'
+export { default as ScrollBar } from './ScrollBar.vue'
diff --git a/packages/ui/src/index.ts b/packages/ui/src/index.ts
index a0e2cdd7..82898938 100644
--- a/packages/ui/src/index.ts
+++ b/packages/ui/src/index.ts
@@ -16,6 +16,7 @@ export * from './components/input/index'
export * from './components/input-group/index'
export * from './components/kbd/index'
export * from './components/label/index'
+export * from './components/native-select/index'
export * from './components/radio-group/index'
export * from './components/scroll-area/index'
export * from './components/select/index'
diff --git a/packages/web/package.json b/packages/web/package.json
index 06f0da6f..ed66fb8e 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -15,6 +15,7 @@
"@memoh/ui": "workspace:*",
"@pinia/colada": "^0.21.1",
"@tailwindcss/vite": "^4.1.18",
+ "@tanstack/vue-table": "^8.21.3",
"@vee-validate/zod": "^4.15.1",
"axios": "^1.13.2",
"dotenv": "^17.2.3",
diff --git a/packages/web/src/components/CreateModel/index.vue b/packages/web/src/components/CreateModel/index.vue
new file mode 100644
index 00000000..ad034394
--- /dev/null
+++ b/packages/web/src/components/CreateModel/index.vue
@@ -0,0 +1,208 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/web/src/components/DataTable/index.vue b/packages/web/src/components/DataTable/index.vue
new file mode 100644
index 00000000..2b1205b0
--- /dev/null
+++ b/packages/web/src/components/DataTable/index.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No results.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/web/src/pages/login/index.vue b/packages/web/src/pages/login/index.vue
index 6a603305..8dea5b33 100644
--- a/packages/web/src/pages/login/index.vue
+++ b/packages/web/src/pages/login/index.vue
@@ -107,10 +107,8 @@ import {
CardContent,
CardFooter,
Input,
-
Button,
FormControl,
-
FormField,
FormItem,
FormLabel,
diff --git a/packages/web/src/pages/models/index.vue b/packages/web/src/pages/models/index.vue
index ff69061e..4ecc519e 100644
--- a/packages/web/src/pages/models/index.vue
+++ b/packages/web/src/pages/models/index.vue
@@ -1,5 +1,43 @@
+
+
-
+
\ No newline at end of file
diff --git a/packages/web/src/utils/request.ts b/packages/web/src/utils/request.ts
index 1174924d..234b1de4 100644
--- a/packages/web/src/utils/request.ts
+++ b/packages/web/src/utils/request.ts
@@ -6,13 +6,8 @@ export default (function () {
const axiosInstance = axios.create({
baseURL:'http://localhost:7002/'
})
-
- axiosInstance.interceptors.request.use((config) => {
- return config
- }, (error) => Promise.reject(error))
axiosInstance.interceptors.response.use((response) => {
-
return response
}, (error) => {
if (error?.status === 401) {
@@ -23,6 +18,13 @@ export default (function () {
return Promise.reject(error)
})
return (params: AxiosRequestConfig,isToken=true) => {
+ axiosInstance.interceptors.request.use((config) => {
+ if (isToken) {
+ const token = localStorage.getItem('token')
+ config.headers['Authorization'] =`Bearer ${token}`
+ }
+ return config
+ }, (error) => Promise.reject(error))
return axiosInstance(params)
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 9f1261d4..b865a8ab 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -246,6 +246,9 @@ importers:
'@tailwindcss/vite':
specifier: ^4.1.18
version: 4.1.18(vite@7.3.0(@types/node@24.10.4)(jiti@2.6.1)(lightningcss@1.30.2)(tsx@4.21.0))
+ '@tanstack/vue-table':
+ specifier: ^8.21.3
+ version: 8.21.3(vue@3.5.26(typescript@5.9.3))
'@vee-validate/zod':
specifier: ^4.15.1
version: 4.15.1(vue@3.5.26(typescript@5.9.3))(zod@4.3.5)