From 69d1c5fc6771797ec245601f721413b8d0253a73 Mon Sep 17 00:00:00 2001 From: chakcy <947105045@qq.com> Date: Wed, 15 Apr 2026 16:05:31 +0800 Subject: [PATCH] =?UTF-8?q?modify:=20task=20=E9=9B=86=E6=88=90=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/chongming-web/package-lock.json | 208 +++++++++++ src/chongming-web/package.json | 6 +- src/chongming-web/src/App.vue | 26 ++ .../src/api/generated/core/ApiError.ts | 25 ++ .../api/generated/core/ApiRequestOptions.ts | 17 + .../src/api/generated/core/ApiResult.ts | 11 + .../api/generated/core/CancelablePromise.ts | 131 +++++++ .../src/api/generated/core/OpenAPI.ts | 32 ++ .../src/api/generated/core/request.ts | 322 ++++++++++++++++++ src/chongming-web/src/api/generated/index.ts | 24 ++ .../generated/models/HTTPValidationError.ts | 9 + .../generated/models/RefreshTokenResponse.ts | 12 + .../src/api/generated/models/TaskRequest.ts | 9 + .../src/api/generated/models/TodoCreate.ts | 10 + .../src/api/generated/models/TodoRead.ts | 11 + .../src/api/generated/models/TodoUpdate.ts | 10 + .../src/api/generated/models/TokenResponse.ts | 15 + .../src/api/generated/models/UserCreate.ts | 17 + .../src/api/generated/models/UserLogin.ts | 9 + .../src/api/generated/models/UserRead.ts | 17 + .../api/generated/models/ValidationError.ts | 12 + .../services/AuthenticationService.ts | 109 ++++++ .../api/generated/services/DefaultService.ts | 42 +++ .../src/api/generated/services/TodoService.ts | 118 +++++++ src/chongming-web/src/main.ts | 5 + src/chongming-web/vite.config.ts | 5 +- src/chongming/app/__init__.py | 43 ++- src/chongming/app/api/routers/auth.py | 6 +- src/chongming/app/core/jwt_cache.py | 7 + src/chongming/app/core/scheduler.py | 17 +- src/chongming/app/core/static_files.py | 24 +- src/chongming/app/model/__init__.py | 15 + src/chongming/app/model/permission.py | 24 ++ src/chongming/app/model/relationship_table.py | 17 + src/chongming/app/model/role.py | 21 ++ src/chongming/app/model/user.py | 15 +- src/chongming/app/task/__init__.py | 17 +- src/chongming/app/task/execute_background.py | 17 +- src/chongming/scripts/build.py | 9 + 39 files changed, 1374 insertions(+), 70 deletions(-) create mode 100644 src/chongming-web/src/api/generated/core/ApiError.ts create mode 100644 src/chongming-web/src/api/generated/core/ApiRequestOptions.ts create mode 100644 src/chongming-web/src/api/generated/core/ApiResult.ts create mode 100644 src/chongming-web/src/api/generated/core/CancelablePromise.ts create mode 100644 src/chongming-web/src/api/generated/core/OpenAPI.ts create mode 100644 src/chongming-web/src/api/generated/core/request.ts create mode 100644 src/chongming-web/src/api/generated/index.ts create mode 100644 src/chongming-web/src/api/generated/models/HTTPValidationError.ts create mode 100644 src/chongming-web/src/api/generated/models/RefreshTokenResponse.ts create mode 100644 src/chongming-web/src/api/generated/models/TaskRequest.ts create mode 100644 src/chongming-web/src/api/generated/models/TodoCreate.ts create mode 100644 src/chongming-web/src/api/generated/models/TodoRead.ts create mode 100644 src/chongming-web/src/api/generated/models/TodoUpdate.ts create mode 100644 src/chongming-web/src/api/generated/models/TokenResponse.ts create mode 100644 src/chongming-web/src/api/generated/models/UserCreate.ts create mode 100644 src/chongming-web/src/api/generated/models/UserLogin.ts create mode 100644 src/chongming-web/src/api/generated/models/UserRead.ts create mode 100644 src/chongming-web/src/api/generated/models/ValidationError.ts create mode 100644 src/chongming-web/src/api/generated/services/AuthenticationService.ts create mode 100644 src/chongming-web/src/api/generated/services/DefaultService.ts create mode 100644 src/chongming-web/src/api/generated/services/TodoService.ts create mode 100644 src/chongming/app/model/permission.py create mode 100644 src/chongming/app/model/relationship_table.py create mode 100644 src/chongming/app/model/role.py diff --git a/src/chongming-web/package-lock.json b/src/chongming-web/package-lock.json index 08148bf..87ac0ad 100644 --- a/src/chongming-web/package-lock.json +++ b/src/chongming-web/package-lock.json @@ -18,6 +18,7 @@ "@vitejs/plugin-vue": "^6.0.5", "@vue/tsconfig": "^0.9.1", "npm-run-all2": "^8.0.4", + "openapi-typescript-codegen": "^0.29.0", "prettier": "3.8.1", "typescript": "~6.0.0", "vite": "^8.0.3", @@ -28,6 +29,24 @@ "node": "^20.19.0 || >=22.12.0" } }, + "node_modules/@apidevtools/json-schema-ref-parser": { + "version": "11.9.3", + "resolved": "https://registry.npmmirror.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz", + "integrity": "sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jsdevtools/ono": "^7.1.3", + "@types/json-schema": "^7.0.15", + "js-yaml": "^4.1.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/philsturgeon" + } + }, "node_modules/@babel/code-frame": { "version": "7.29.0", "resolved": "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.29.0.tgz", @@ -561,6 +580,13 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@jsdevtools/ono": { + "version": "7.1.3", + "resolved": "https://registry.npmmirror.com/@jsdevtools/ono/-/ono-7.1.3.tgz", + "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", + "dev": true, + "license": "MIT" + }, "node_modules/@napi-rs/wasm-runtime": { "version": "1.1.3", "resolved": "https://registry.npmmirror.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.3.tgz", @@ -879,6 +905,13 @@ "tslib": "^2.4.0" } }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/node": { "version": "24.12.2", "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.12.2.tgz", @@ -1266,6 +1299,13 @@ "node": ">=14" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, "node_modules/ast-kit": { "version": "2.2.0", "resolved": "https://registry.npmmirror.com/ast-kit/-/ast-kit-2.2.0.tgz", @@ -1370,6 +1410,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001788", "resolved": "https://registry.npmmirror.com/caniuse-lite/-/caniuse-lite-1.0.30001788.tgz", @@ -1406,6 +1459,16 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmmirror.com/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/confbox": { "version": "0.2.4", "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.4.tgz", @@ -1617,6 +1680,21 @@ } } }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", @@ -1642,6 +1720,35 @@ "node": ">=6.9.0" } }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/handlebars": { + "version": "4.7.9", + "resolved": "https://registry.npmmirror.com/handlebars/-/handlebars-4.7.9.tgz", + "integrity": "sha512-4E71E0rpOaQuJR2A3xDZ+GM1HyWYv1clR58tC8emQNeQe3RH7MAzSbat+V0wG78LQBo6m6bzSG/L4pBuCsgnUQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.2", + "source-map": "^0.6.1", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, "node_modules/hookable": { "version": "5.5.3", "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", @@ -1728,6 +1835,19 @@ "dev": true, "license": "MIT" }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsesc": { "version": "3.1.0", "resolved": "https://registry.npmmirror.com/jsesc/-/jsesc-3.1.0.tgz", @@ -1762,6 +1882,19 @@ "node": ">=6" } }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmmirror.com/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "dev": true, + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, "node_modules/kolorist": { "version": "1.8.0", "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", @@ -2090,6 +2223,16 @@ "node": ">= 0.10.0" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/mitt": { "version": "3.0.1", "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", @@ -2166,6 +2309,13 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmmirror.com/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "license": "MIT" + }, "node_modules/node-releases": { "version": "2.0.37", "resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.37.tgz", @@ -2236,6 +2386,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/openapi-typescript-codegen": { + "version": "0.29.0", + "resolved": "https://registry.npmmirror.com/openapi-typescript-codegen/-/openapi-typescript-codegen-0.29.0.tgz", + "integrity": "sha512-/wC42PkD0LGjDTEULa/XiWQbv4E9NwLjwLjsaJ/62yOsoYhwvmBR31kPttn1DzQ2OlGe5stACcF/EIkZk43M6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^11.5.4", + "camelcase": "^6.3.0", + "commander": "^12.0.0", + "fs-extra": "^11.2.0", + "handlebars": "^4.7.8" + }, + "bin": { + "openapi": "bin/index.js" + } + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/path-browserify/-/path-browserify-1.0.1.tgz", @@ -2542,6 +2709,16 @@ "node": ">=18" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", @@ -2626,6 +2803,20 @@ "integrity": "sha512-yDJTmhydvl5lJzBmy/hyOAA0d+aqCBuwl818haVdYCRrWV84o7YyeVm4QlVHStqNrrJSTb6jKuFAVqAFsr+K3Q==", "license": "MIT" }, + "node_modules/uglify-js": { + "version": "3.19.3", + "resolved": "https://registry.npmmirror.com/uglify-js/-/uglify-js-3.19.3.tgz", + "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==", + "dev": true, + "license": "BSD-2-Clause", + "optional": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/undici-types": { "version": "7.16.0", "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.16.0.tgz", @@ -2633,6 +2824,16 @@ "dev": true, "license": "MIT" }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, "node_modules/unplugin": { "version": "3.0.0", "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-3.0.0.tgz", @@ -3048,6 +3249,13 @@ "node": "^18.17.0 || >=20.5.0" } }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/wsl-utils": { "version": "0.1.0", "resolved": "https://registry.npmmirror.com/wsl-utils/-/wsl-utils-0.1.0.tgz", diff --git a/src/chongming-web/package.json b/src/chongming-web/package.json index 79a6591..032212a 100644 --- a/src/chongming-web/package.json +++ b/src/chongming-web/package.json @@ -9,7 +9,8 @@ "preview": "vite preview", "build-only": "vite build", "type-check": "vue-tsc --build", - "format": "prettier --write --experimental-cli src/" + "format": "prettier --write --experimental-cli src/", + "openapi": "npx openapi-typescript-codegen --input http://127.0.0.1:8000/openapi.json --output ./src/api/generated/" }, "dependencies": { "pinia": "^3.0.4", @@ -22,6 +23,7 @@ "@vitejs/plugin-vue": "^6.0.5", "@vue/tsconfig": "^0.9.1", "npm-run-all2": "^8.0.4", + "openapi-typescript-codegen": "^0.29.0", "prettier": "3.8.1", "typescript": "~6.0.0", "vite": "^8.0.3", @@ -31,4 +33,4 @@ "engines": { "node": "^20.19.0 || >=22.12.0" } -} +} \ No newline at end of file diff --git a/src/chongming-web/src/App.vue b/src/chongming-web/src/App.vue index 7905b05..38e183b 100644 --- a/src/chongming-web/src/App.vue +++ b/src/chongming-web/src/App.vue @@ -1,6 +1,25 @@