diff --git a/.env b/.env new file mode 100644 index 0000000..ba65ba3 --- /dev/null +++ b/.env @@ -0,0 +1,22 @@ +# 所有环境都会加载的配置 + +# 项目名称 +VITE_APP_TITLE=智慧湿地管理平台 + +# 项目描述 +VITE_APP_DESC=科技赋能生态保护 智慧守护绿色家园 + +# 版本号 +VITE_APP_VERSION=1.0.0 + +# 版权信息 +VITE_APP_COPYRIGHT=Copyright © 2025 智慧湿地管理平台 All Rights Reserved. + +# 是否启用 gzip 压缩 +VITE_BUILD_GZIP=false + +# 是否启用 brotli 压缩 +VITE_BUILD_BROTLI=false + +# 是否删除 console +VITE_DROP_CONSOLE=true \ No newline at end of file diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..d8640f1 --- /dev/null +++ b/.env.development @@ -0,0 +1,14 @@ +# 开发环境 +VITE_NODE_ENV=development + +# API 基础路径 +VITE_API_BASE_URL=http://localhost:3000 + +# 项目基础路径 +VITE_BASE_URL=/ + +# Mock API 路径 +VITE_MOCK_API=true + +# 是否开启调试工具 +VITE_DEV_TOOLS=true \ No newline at end of file diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..f5561ec --- /dev/null +++ b/.env.production @@ -0,0 +1,14 @@ +# 生产环境 +VITE_NODE_ENV=production + +# API 基础路径 - 实际项目中替换为真实的后端接口地址 +VITE_API_BASE_URL=https://api.your-domain.com + +# 项目基础路径 +VITE_BASE_URL=/ + +# Mock API 路径 +VITE_MOCK_API=false + +# 是否开启调试工具 +VITE_DEV_TOOLS=false \ No newline at end of file diff --git a/.env.test b/.env.test new file mode 100644 index 0000000..6db513b --- /dev/null +++ b/.env.test @@ -0,0 +1,14 @@ +# 测试环境 +VITE_NODE_ENV=test + +# API 基础路径 +VITE_API_BASE_URL=https://test-api.your-domain.com + +# 项目基础路径 +VITE_BASE_URL=/ + +# Mock API 路径 +VITE_MOCK_API=false + +# 是否开启调试工具 +VITE_DEV_TOOLS=true \ No newline at end of file diff --git a/index.html b/index.html index 11104c1..bff11de 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,6 @@
- + diff --git a/package-lock.json b/package-lock.json index 105fefe..4fad924 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,8 @@ "json-server": "^1.0.0-beta.3", "pinia": "^2.3.1", "vue": "^3.5.13", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "wetlandguard-admin": "file:" }, "devDependencies": { "@types/node": "^22.13.0", @@ -2750,6 +2751,10 @@ "typescript": ">=5.0.0" } }, + "node_modules/wetlandguard-admin": { + "resolved": "", + "link": true + }, "node_modules/zrender": { "version": "5.6.1", "resolved": "https://registry.npmmirror.com/zrender/-/zrender-5.6.1.tgz", diff --git a/package.json b/package.json index e383da0..4f50e9b 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,8 @@ "json-server": "^1.0.0-beta.3", "pinia": "^2.3.1", "vue": "^3.5.13", - "vue-router": "^4.5.0" + "vue-router": "^4.5.0", + "wetlandguard-admin": "file:" }, "devDependencies": { "@types/node": "^22.13.0", diff --git a/src/api/login/index.js b/src/api/login/index.js new file mode 100644 index 0000000..ddc01d1 --- /dev/null +++ b/src/api/login/index.js @@ -0,0 +1,20 @@ +import request from '@/utils/request' + +/** + * 用户登录 + * @param {Object} data - 登录参数 + * @param {string} data.username - 用户名 + * @param {string} data.password - 密码 + * @returns {Promise} 返回包含token和用户信息的Promise + */ +export function login(data) { + return request.post('/api/users/login', data) +} + +/** + * 退出登录 + * @returns {Promise} + */ +export function logout() { + return request.post('/api/users/logout') +} diff --git a/src/api/report.ts b/src/api/report.ts deleted file mode 100644 index 26fd721..0000000 --- a/src/api/report.ts +++ /dev/null @@ -1,49 +0,0 @@ -import request from './request'; - -// 日常报告接口 -export const dailyReportApi = { - // 获取日常报告列表 - getList: (params: any) => request.get('/report/daily/list', { params }), - - // 获取日常报告详情 - getDetail: (id: number) => request.get(`/report/daily/${id}`), - - // 创建日常报告 - create: (data: any) => request.post('/report/daily', data), - - // 更新日常报告 - update: (id: number, data: any) => request.put(`/report/daily/${id}`, data), - - // 删除日常报告 - delete: (id: number) => request.delete(`/report/daily/${id}`), - - // 导出日常报告 - export: (id: number) => request.get(`/report/daily/export/${id}`, { responseType: 'blob' }) -}; - -// 分析报告接口 -export const analysisReportApi = { - // 获取分析报告列表 - getList: (params: any) => request.get('/report/analysis/list', { params }), - - // 获取分析报告详情 - getDetail: (id: number) => request.get(`/report/analysis/${id}`), - - // 创建分析报告 - create: (data: any) => request.post('/report/analysis', data), - - // 更新分析报告 - update: (id: number, data: any) => request.put(`/report/analysis/${id}`, data), - - // 删除分析报告 - delete: (id: number) => request.delete(`/report/analysis/${id}`), - - // 导出分析报告 - export: (id: number) => request.get(`/report/analysis/export/${id}`, { responseType: 'blob' }), - - // 获取监测数据统计 - getMonitorStats: (params: any) => request.get('/report/analysis/monitor-stats', { params }), - - // 获取物种数据统计 - getSpeciesStats: (params: any) => request.get('/report/analysis/species-stats', { params }) -}; \ No newline at end of file diff --git a/src/api/request.ts b/src/api/request.ts deleted file mode 100644 index 2ba193c..0000000 --- a/src/api/request.ts +++ /dev/null @@ -1,35 +0,0 @@ -import axios from 'axios' -import { ElMessage } from 'element-plus' - -const request = axios.create({ - baseURL: '/api', - timeout: 5000 -}) - -// 请求拦截器 -request.interceptors.request.use( - (config) => { - const token = localStorage.getItem('token') - if (token) { - config.headers.Authorization = `Bearer ${token}` - } - return config - }, - (error) => { - return Promise.reject(error) - } -) - -// 响应拦截器 -request.interceptors.response.use( - (response) => { - const { data } = response - return data - }, - (error) => { - ElMessage.error(error.message || '请求失败') - return Promise.reject(error) - } -) - -export default request \ No newline at end of file diff --git a/src/api/user/index.js b/src/api/user/index.js new file mode 100644 index 0000000..e69de29 diff --git a/src/components/HelloWorld.vue b/src/components/HelloWorld.vue deleted file mode 100644 index b58e52b..0000000 --- a/src/components/HelloWorld.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - - - diff --git a/src/components/report/EnvironmentAnalysis.vue b/src/components/report/EnvironmentAnalysis.vue index 4a82cad..c86c9ad 100644 --- a/src/components/report/EnvironmentAnalysis.vue +++ b/src/components/report/EnvironmentAnalysis.vue @@ -1,15 +1,23 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/src/views/patrol/records/index.vue b/src/views/patrol/records/index.vue index bb5e7b3..d9790a3 100644 --- a/src/views/patrol/records/index.vue +++ b/src/views/patrol/records/index.vue @@ -1,20 +1,9 @@ - @@ -242,7 +231,7 @@ const handleCurrentChange = (val: number) => { diff --git a/src/views/report/daily/index.vue b/src/views/report/daily/index.vue index dc80ca8..20b01d6 100644 --- a/src/views/report/daily/index.vue +++ b/src/views/report/daily/index.vue @@ -1,29 +1,11 @@ - @@ -73,7 +65,7 @@ const handleDelete = (row: RoleData) => {