Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45973a5145 | ||
|
|
53d0eeac6b | ||
|
|
4ce7520066 | ||
|
|
13dd84a8a7 | ||
|
|
2d66abc610 | ||
|
|
29029bb608 | ||
|
|
95d594c2aa | ||
|
|
cdbe3bb51e | ||
|
|
6367014e1f | ||
|
|
ce06ad0214 |
No files matched your search
@@ -4,7 +4,8 @@
|
||||
"Bash(npx tsc --noEmit)",
|
||||
"Bash(pnpm lint)",
|
||||
"Bash(pnpm add -D typescript-eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin)",
|
||||
"Bash(git add .)"
|
||||
"Bash(git add .)",
|
||||
"Bash(git commit -m \"$(cat <<''EOF''\n迁移到 TypeScript\n\n完整的 TypeScript 迁移,提升代码质量和开发体验\n\n**安装依赖:**\n- TypeScript 5.9.3\n- @types/react, @types/react-dom, @types/node\n- typescript-eslint 相关包\n\n**配置文件:**\n- 创建 tsconfig.json (应用配置)\n- 创建 tsconfig.node.json (Node 配置)\n- 更新 eslint.config.ts 支持 TypeScript\n- 所有配置文件迁移到 .ts 扩展名\n\n**源代码迁移:**\n- 所有 .jsx 文件 → .tsx\n- 所有 .js 文件 → .ts \n- 添加完整的类型定义和接口\n- 修复所有类型错误\n\n**类型定义:**\n- Experiment 接口 (实验数据类型)\n- DraggableItemProps 接口\n- 函数参数类型注解\n- React 组件 Props 类型\n\n**代码优化:**\n- 修复 main.tsx 中的 null 检查\n- 添加 DragEndEvent 类型\n- 使用类型守卫和类型断言\n- 改进错误处理\n\n**构建脚本:**\n- 添加 typecheck 脚本\n- build 脚本包含类型检查\n- 更新 index.html 入口为 main.tsx\n\n**验证:**\n- ✅ TypeScript 编译通过\n- ✅ ESLint 检查通过\n- ✅ 所有类型正确推导\n- ✅ 代码质量提升\n\n🤖 Generated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>\nEOF\n)\")"
|
||||
],
|
||||
"deny": [],
|
||||
"ask": []
|
||||
|
||||
@@ -22,3 +22,19 @@ dist-ssr
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
# Microsoft Office temporary lock files
|
||||
~$*.docx
|
||||
|
||||
# Large original media kept outside the production bundle
|
||||
source-assets/
|
||||
|
||||
# Videos and oversized deployment assets are managed outside Git
|
||||
*.mp4
|
||||
*.webm
|
||||
*.mov
|
||||
*.m4v
|
||||
*.avi
|
||||
*.mkv
|
||||
/public/fonts/SourceHanSansSC-Medium.otf
|
||||
/public/teachers/yuan-yuan/documents/yy-6bbf801b066d.pptx
|
||||
@@ -8,4 +8,4 @@ engine-strict=true
|
||||
auto-install-peers=true
|
||||
|
||||
# 使用国内镜像(可选)
|
||||
# registry=https://registry.npmmirror.com
|
||||
registry=https://registry.npmmirror.com
|
||||
@@ -1,6 +1,6 @@
|
||||
# 传感器及检测技术 - 实验课件系统
|
||||
# 名师工作室 - 实验课件系统
|
||||
|
||||
这是一个基于 React 的传感器及检测技术实验课件交互式平台。
|
||||
这是一个基于 React 的名师工作室实验课件交互式平台。
|
||||
|
||||
## 技术栈
|
||||
|
||||
|
||||
@@ -1,32 +1,33 @@
|
||||
import js from '@eslint/js';
|
||||
import globals from 'globals';
|
||||
import reactHooks from 'eslint-plugin-react-hooks';
|
||||
import reactRefresh from 'eslint-plugin-react-refresh';
|
||||
import tseslint from 'typescript-eslint';
|
||||
import js from "@eslint/js";
|
||||
import globals from "globals";
|
||||
import reactHooks from "eslint-plugin-react-hooks";
|
||||
import reactRefresh from "eslint-plugin-react-refresh";
|
||||
import tseslint from "typescript-eslint";
|
||||
|
||||
export default tseslint.config(
|
||||
{ ignores: ['dist', 'node_modules'] },
|
||||
{ ignores: ["dist", "node_modules"] },
|
||||
{
|
||||
extends: [js.configs.recommended, ...tseslint.configs.recommended],
|
||||
files: ['**/*.{ts,tsx}'],
|
||||
files: ["**/*.{ts,tsx}"],
|
||||
languageOptions: {
|
||||
ecmaVersion: 2020,
|
||||
globals: globals.browser,
|
||||
},
|
||||
plugins: {
|
||||
'react-hooks': reactHooks,
|
||||
'react-refresh': reactRefresh,
|
||||
"react-hooks": reactHooks,
|
||||
"react-refresh": reactRefresh,
|
||||
},
|
||||
rules: {
|
||||
...reactHooks.configs.recommended.rules,
|
||||
'react-refresh/only-export-components': [
|
||||
'warn',
|
||||
"react-refresh/only-export-components": [
|
||||
"warn",
|
||||
{ allowConstantExport: true },
|
||||
],
|
||||
'@typescript-eslint/no-unused-vars': [
|
||||
'error',
|
||||
{ varsIgnorePattern: '^_', argsIgnorePattern: '^_' },
|
||||
"@typescript-eslint/no-unused-vars": [
|
||||
"warn",
|
||||
{ varsIgnorePattern: "^_", argsIgnorePattern: "^_" },
|
||||
],
|
||||
"@typescript-eslint/no-explicit-any": "off",
|
||||
},
|
||||
}
|
||||
);
|
||||
@@ -1,10 +1,13 @@
|
||||
<!doctype html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>传感器及检测技术 - 实验课件系统</title>
|
||||
<meta
|
||||
name="viewport"
|
||||
content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"
|
||||
/>
|
||||
<title>南湖名师/技能大师工作室</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "sensor-lab",
|
||||
"name": "master-teacher-studio",
|
||||
"private": true,
|
||||
"version": "0.0.0",
|
||||
"type": "module",
|
||||
@@ -16,15 +16,16 @@
|
||||
"preview": "vite preview"
|
||||
},
|
||||
"dependencies": {
|
||||
"@dnd-kit/core": "^6.3.1",
|
||||
"@dnd-kit/sortable": "^10.0.0",
|
||||
"@dnd-kit/utilities": "^3.2.2",
|
||||
"axios": "^1.12.2",
|
||||
"clsx": "^2.1.1",
|
||||
"docx-preview": "^0.3.7",
|
||||
"exceljs": "4.4.0",
|
||||
"lucide-react": "^0.545.0",
|
||||
"pptx-preview": "1.0.7",
|
||||
"react": "^19.1.1",
|
||||
"react-dom": "^19.1.1",
|
||||
"react-router-dom": "^7.9.4"
|
||||
"react-router-dom": "^7.18.4",
|
||||
"vconsole": "^3.15.1",
|
||||
"zustand": "^5.0.8"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^9.36.0",
|
||||
|
||||
|
After Width: | Height: | Size: 3.2 MiB |
|
After Width: | Height: | Size: 430 KiB |
|
After Width: | Height: | Size: 434 KiB |
|
After Width: | Height: | Size: 479 KiB |
|
After Width: | Height: | Size: 239 KiB |
|
After Width: | Height: | Size: 423 KiB |
|
After Width: | Height: | Size: 416 KiB |
|
After Width: | Height: | Size: 510 KiB |
|
After Width: | Height: | Size: 723 KiB |
|
After Width: | Height: | Size: 650 KiB |
|
After Width: | Height: | Size: 510 KiB |
|
After Width: | Height: | Size: 530 KiB |
|
After Width: | Height: | Size: 477 KiB |
|
After Width: | Height: | Size: 489 KiB |
|
After Width: | Height: | Size: 392 KiB |
|
After Width: | Height: | Size: 303 KiB |
|
After Width: | Height: | Size: 131 KiB |
|
After Width: | Height: | Size: 678 KiB |
|
After Width: | Height: | Size: 775 KiB |
|
After Width: | Height: | Size: 467 KiB |
|
After Width: | Height: | Size: 721 KiB |
|
After Width: | Height: | Size: 535 KiB |
|
After Width: | Height: | Size: 648 KiB |
|
After Width: | Height: | Size: 486 KiB |
|
After Width: | Height: | Size: 443 KiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 1.3 MiB |
|
After Width: | Height: | Size: 388 KiB |
|
After Width: | Height: | Size: 321 KiB |
|
After Width: | Height: | Size: 436 KiB |
|
After Width: | Height: | Size: 496 KiB |
|
After Width: | Height: | Size: 511 KiB |
|
After Width: | Height: | Size: 732 KiB |
|
After Width: | Height: | Size: 617 KiB |
|
After Width: | Height: | Size: 306 KiB |
|
After Width: | Height: | Size: 459 KiB |
|
After Width: | Height: | Size: 442 KiB |
|
After Width: | Height: | Size: 518 KiB |
|
After Width: | Height: | Size: 518 KiB |
|
After Width: | Height: | Size: 711 KiB |
|
After Width: | Height: | Size: 461 KiB |
|
After Width: | Height: | Size: 669 KiB |
|
After Width: | Height: | Size: 301 KiB |
|
After Width: | Height: | Size: 421 KiB |
|
After Width: | Height: | Size: 469 KiB |
|
After Width: | Height: | Size: 616 KiB |
|
After Width: | Height: | Size: 492 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 544 KiB |
|
After Width: | Height: | Size: 661 KiB |