From 06421ccfb60ce576a1063c8bf0fb173a526a9c1b Mon Sep 17 00:00:00 2001 From: micah Date: Sat, 14 Mar 2026 15:35:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=9B=86=E6=88=90=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- package-lock.json | 17 ++++++++++++++++- package.json | 3 ++- src/{App.jsx => App.tsx} | 0 src/{main.jsx => main.tsx} | 2 +- src/pages/{Home.jsx => Home.tsx} | 4 +++- src/pages/{Layout.jsx => Layout.tsx} | 0 src/pages/{Login.jsx => Login.tsx} | 4 ++-- src/pages/{Menu1.jsx => Menu1.tsx} | 0 src/pages/{Menu2.jsx => Menu2.tsx} | 6 ++---- tsconfig.json | 21 +++++++++++++++++++++ tsconfig.node.json | 11 +++++++++++ 12 files changed, 59 insertions(+), 11 deletions(-) rename src/{App.jsx => App.tsx} (100%) rename src/{main.jsx => main.tsx} (96%) rename src/pages/{Home.jsx => Home.tsx} (93%) rename src/pages/{Layout.jsx => Layout.tsx} (100%) rename src/pages/{Login.jsx => Login.tsx} (96%) rename src/pages/{Menu1.jsx => Menu1.tsx} (100%) rename src/pages/{Menu2.jsx => Menu2.tsx} (94%) create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json diff --git a/index.html b/index.html index 8620378..c29feaf 100644 --- a/index.html +++ b/index.html @@ -8,6 +8,6 @@
- + diff --git a/package-lock.json b/package-lock.json index 4e9a66e..158d752 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,11 +18,12 @@ "@eslint/js": "^9.39.4", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.0", + "@vitejs/plugin-react": "^6.0.1", "eslint": "^9.39.4", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", "globals": "^17.4.0", + "typescript": "^5.9.3", "vite": "^8.0.0" } }, @@ -3448,6 +3449,20 @@ "node": ">= 0.8.0" } }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/update-browserslist-db": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", diff --git a/package.json b/package.json index 6b68878..defe76e 100644 --- a/package.json +++ b/package.json @@ -20,11 +20,12 @@ "@eslint/js": "^9.39.4", "@types/react": "^19.2.14", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.0", + "@vitejs/plugin-react": "^6.0.1", "eslint": "^9.39.4", "eslint-plugin-react-hooks": "^7.0.1", "eslint-plugin-react-refresh": "^0.5.2", "globals": "^17.4.0", + "typescript": "^5.9.3", "vite": "^8.0.0" } } diff --git a/src/App.jsx b/src/App.tsx similarity index 100% rename from src/App.jsx rename to src/App.tsx diff --git a/src/main.jsx b/src/main.tsx similarity index 96% rename from src/main.jsx rename to src/main.tsx index 3950e6c..7e9bae9 100644 --- a/src/main.jsx +++ b/src/main.tsx @@ -4,7 +4,7 @@ import { ConfigProvider, App as AntApp } from 'antd' import zhCN from 'antd/locale/zh_CN' import 'antd/dist/reset.css' import './index.css' -import App from './App.jsx' +import App from './App' import { setMessageApi } from './api' // App 组件容器,用于获取 message API diff --git a/src/pages/Home.jsx b/src/pages/Home.tsx similarity index 93% rename from src/pages/Home.jsx rename to src/pages/Home.tsx index 579ecc8..bb1783a 100644 --- a/src/pages/Home.jsx +++ b/src/pages/Home.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react' +import React, { useState, useEffect } from 'react' import { Card, Row, Col, Statistic, Spin } from 'antd' import { UserOutlined, ShoppingOutlined, DollarOutlined } from '@ant-design/icons' import statsApi from '../api/modules/stats' @@ -44,6 +44,7 @@ function Home() { title="总用户数" value={stats.totalUsers} prefix={} + // @ts-ignore - antd v5 types incomplete styles={{ value: { color: '#3f8600' } }} /> @@ -54,6 +55,7 @@ function Home() { title="今日订单" value={stats.todayOrders} prefix={} + // @ts-ignore styles={{ value: { color: '#1890ff' } }} /> diff --git a/src/pages/Layout.jsx b/src/pages/Layout.tsx similarity index 100% rename from src/pages/Layout.jsx rename to src/pages/Layout.tsx diff --git a/src/pages/Login.jsx b/src/pages/Login.tsx similarity index 96% rename from src/pages/Login.jsx rename to src/pages/Login.tsx index b249548..a054a75 100644 --- a/src/pages/Login.jsx +++ b/src/pages/Login.tsx @@ -1,4 +1,4 @@ -import { useState } from 'react' +import React, { useState } from 'react' import { useNavigate } from 'react-router-dom' import { Form, Input, Button, message } from 'antd' import { UserOutlined, LockOutlined } from '@ant-design/icons' @@ -80,7 +80,7 @@ function Login({ onLogin }) { ) } -const styles = { +const styles: Record = { container: { display: 'flex', justifyContent: 'center', diff --git a/src/pages/Menu1.jsx b/src/pages/Menu1.tsx similarity index 100% rename from src/pages/Menu1.jsx rename to src/pages/Menu1.tsx diff --git a/src/pages/Menu2.jsx b/src/pages/Menu2.tsx similarity index 94% rename from src/pages/Menu2.jsx rename to src/pages/Menu2.tsx index 4e39a38..21441d3 100644 --- a/src/pages/Menu2.jsx +++ b/src/pages/Menu2.tsx @@ -42,10 +42,8 @@ function Menu2() { })) setSaving(true) - const response = await settingsApi.save(updatedSettings) - if (response.code === 0) { - message.success('保存成功') - } + await settingsApi.save(updatedSettings) + message.success('保存成功') } catch (error) { message.error('保存失败: ' + error.message) } finally { diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..217d88e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "strict": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"], + "references": [{ "path": "./tsconfig.node.json" }] +} \ No newline at end of file diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..decf631 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "bundler", + "allowSyntheticDefaultImports": true, + "strict": true + }, + "include": ["vite.config.js"] +} \ No newline at end of file