From 4fbeffb3d23ab4f06406c1a069dafce6c1ed4f76 Mon Sep 17 00:00:00 2001 From: LiRen-qiu <2914668598@qq.com> Date: Thu, 24 Apr 2025 19:41:11 +0800 Subject: [PATCH] 111 --- .VSCodeCounter/2025-04-23_21-25-37/details.md | 52 ++++++ .../2025-04-23_21-25-37/diff-details.md | 15 ++ .VSCodeCounter/2025-04-23_21-25-37/diff.csv | 2 + .VSCodeCounter/2025-04-23_21-25-37/diff.md | 19 +++ .VSCodeCounter/2025-04-23_21-25-37/diff.txt | 22 +++ .../2025-04-23_21-25-37/results.csv | 39 +++++ .../2025-04-23_21-25-37/results.json | 1 + .VSCodeCounter/2025-04-23_21-25-37/results.md | 45 +++++ .../2025-04-23_21-25-37/results.txt | 85 ++++++++++ .cursorrules | 159 ------------------ .../.vue-global-types/vue_2.7_0_0_0.d.ts | 122 ++++++++++++++ .../.vue-global-types/vue_99_0_0_0.d.ts | 5 +- .../src/components/process/FileUpload.vue | 130 +++++++++----- .../src/components/process/PreProcess.vue | 1 + .../src/components/process/ProcessPage.vue | 34 ++-- .../src/components/process/ProcessStep.vue | 51 ++++-- src/vue2/src/store/modules/process.js | 31 +++- src/vue2/src/views/Process.vue | 59 ++++++- 18 files changed, 634 insertions(+), 238 deletions(-) create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/details.md create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/diff-details.md create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/diff.csv create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/diff.md create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/diff.txt create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/results.csv create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/results.json create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/results.md create mode 100644 .VSCodeCounter/2025-04-23_21-25-37/results.txt delete mode 100644 .cursorrules create mode 100644 node_modules/.vue-global-types/vue_2.7_0_0_0.d.ts diff --git a/.VSCodeCounter/2025-04-23_21-25-37/details.md b/.VSCodeCounter/2025-04-23_21-25-37/details.md new file mode 100644 index 0000000..0eb1e23 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/details.md @@ -0,0 +1,52 @@ +# Details + +Date : 2025-04-23 21:25:37 + +Directory e:\\desktop\\模训\\moxun\\src\\vue2 + +Total : 37 files, 17785 codes, 52 comments, 635 blanks, all 18472 lines + +[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | +| [src/vue2/.eslintrc.js](/src/vue2/.eslintrc.js) | JavaScript | 18 | 0 | 0 | 18 | +| [src/vue2/README.md](/src/vue2/README.md) | Markdown | 19 | 0 | 6 | 25 | +| [src/vue2/babel.config.js](/src/vue2/babel.config.js) | JavaScript | 5 | 0 | 1 | 6 | +| [src/vue2/jsconfig.json](/src/vue2/jsconfig.json) | JSON with Comments | 19 | 0 | 1 | 20 | +| [src/vue2/package-lock.json](/src/vue2/package-lock.json) | JSON | 12,372 | 0 | 1 | 12,373 | +| [src/vue2/package.json](/src/vue2/package.json) | JSON | 48 | 0 | 1 | 49 | +| [src/vue2/public/index.html](/src/vue2/public/index.html) | HTML | 16 | 1 | 1 | 18 | +| [src/vue2/src/App.vue](/src/vue2/src/App.vue) | vue | 19 | 0 | 4 | 23 | +| [src/vue2/src/api/analysis.js](/src/vue2/src/api/analysis.js) | JavaScript | 57 | 5 | 9 | 71 | +| [src/vue2/src/api/index.js](/src/vue2/src/api/index.js) | JavaScript | 29 | 4 | 4 | 37 | +| [src/vue2/src/api/process.js](/src/vue2/src/api/process.js) | JavaScript | 78 | 6 | 12 | 96 | +| [src/vue2/src/assets/css/global.css](/src/vue2/src/assets/css/global.css) | CSS | 28 | 2 | 4 | 34 | +| [src/vue2/src/components/HelloWorld.vue](/src/vue2/src/components/HelloWorld.vue) | vue | 55 | 1 | 3 | 59 | +| [src/vue2/src/components/base/ErrorMessage.vue](/src/vue2/src/components/base/ErrorMessage.vue) | vue | 53 | 0 | 8 | 61 | +| [src/vue2/src/components/base/GlobalLoading.vue](/src/vue2/src/components/base/GlobalLoading.vue) | vue | 52 | 0 | 6 | 58 | +| [src/vue2/src/components/layout/Header.vue](/src/vue2/src/components/layout/Header.vue) | vue | 57 | 0 | 6 | 63 | +| [src/vue2/src/components/layout/MainLayout.vue](/src/vue2/src/components/layout/MainLayout.vue) | vue | 38 | 0 | 4 | 42 | +| [src/vue2/src/components/process/DataPreprocess.vue](/src/vue2/src/components/process/DataPreprocess.vue) | vue | 556 | 0 | 71 | 627 | +| [src/vue2/src/components/process/DataPreprocessing.vue](/src/vue2/src/components/process/DataPreprocessing.vue) | vue | 262 | 0 | 21 | 283 | +| [src/vue2/src/components/process/FileUpload.vue](/src/vue2/src/components/process/FileUpload.vue) | vue | 294 | 0 | 46 | 340 | +| [src/vue2/src/components/process/FormatMerge.vue](/src/vue2/src/components/process/FormatMerge.vue) | vue | 552 | 0 | 66 | 618 | +| [src/vue2/src/components/process/MergeFormat.vue](/src/vue2/src/components/process/MergeFormat.vue) | vue | 252 | 0 | 37 | 289 | +| [src/vue2/src/components/process/ModelAnalysis.vue](/src/vue2/src/components/process/ModelAnalysis.vue) | vue | 727 | 1 | 85 | 813 | +| [src/vue2/src/components/process/PreProcess.vue](/src/vue2/src/components/process/PreProcess.vue) | vue | 213 | 0 | 31 | 244 | +| [src/vue2/src/components/process/ProcessPage.vue](/src/vue2/src/components/process/ProcessPage.vue) | vue | 253 | 5 | 29 | 287 | +| [src/vue2/src/components/process/ProcessStep.vue](/src/vue2/src/components/process/ProcessStep.vue) | vue | 218 | 5 | 16 | 239 | +| [src/vue2/src/components/process/WordCorrection.vue](/src/vue2/src/components/process/WordCorrection.vue) | vue | 749 | 0 | 82 | 831 | +| [src/vue2/src/main.js](/src/vue2/src/main.js) | JavaScript | 14 | 0 | 3 | 17 | +| [src/vue2/src/router/index.js](/src/vue2/src/router/index.js) | JavaScript | 29 | 0 | 4 | 33 | +| [src/vue2/src/store/index.js](/src/vue2/src/store/index.js) | JavaScript | 13 | 0 | 2 | 15 | +| [src/vue2/src/store/modules/analysis.js](/src/vue2/src/store/modules/analysis.js) | JavaScript | 77 | 3 | 4 | 84 | +| [src/vue2/src/store/modules/app.js](/src/vue2/src/store/modules/app.js) | JavaScript | 34 | 1 | 4 | 39 | +| [src/vue2/src/store/modules/process.js](/src/vue2/src/store/modules/process.js) | JavaScript | 101 | 1 | 5 | 107 | +| [src/vue2/src/utils/mock.js](/src/vue2/src/utils/mock.js) | JavaScript | 152 | 12 | 12 | 176 | +| [src/vue2/src/views/Analysis.vue](/src/vue2/src/views/Analysis.vue) | vue | 168 | 4 | 25 | 197 | +| [src/vue2/src/views/Process.vue](/src/vue2/src/views/Process.vue) | vue | 139 | 1 | 20 | 160 | +| [src/vue2/vue.config.js](/src/vue2/vue.config.js) | JavaScript | 19 | 0 | 1 | 20 | + +[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/diff-details.md b/.VSCodeCounter/2025-04-23_21-25-37/diff-details.md new file mode 100644 index 0000000..b353050 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/diff-details.md @@ -0,0 +1,15 @@ +# Diff Details + +Date : 2025-04-23 21:25:37 + +Directory e:\\desktop\\模训\\moxun\\src\\vue2 + +Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines + +[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details + +## Files +| filename | language | code | comment | blank | total | +| :--- | :--- | ---: | ---: | ---: | ---: | + +[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/diff.csv b/.VSCodeCounter/2025-04-23_21-25-37/diff.csv new file mode 100644 index 0000000..b7d8d75 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/diff.csv @@ -0,0 +1,2 @@ +"filename", "language", "", "comment", "blank", "total" +"Total", "-", , 0, 0, 0 \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/diff.md b/.VSCodeCounter/2025-04-23_21-25-37/diff.md new file mode 100644 index 0000000..bbd7760 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/diff.md @@ -0,0 +1,19 @@ +# Diff Summary + +Date : 2025-04-23 21:25:37 + +Directory e:\\desktop\\模训\\moxun\\src\\vue2 + +Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines + +[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | + +[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/diff.txt b/.VSCodeCounter/2025-04-23_21-25-37/diff.txt new file mode 100644 index 0000000..d688f57 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/diff.txt @@ -0,0 +1,22 @@ +Date : 2025-04-23 21:25:37 +Directory : e:\desktop\模训\moxun\src\vue2 +Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines + +Languages ++----------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++----------+------------+------------+------------+------------+------------+ ++----------+------------+------------+------------+------------+------------+ + +Directories ++------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++------+------------+------------+------------+------------+------------+ ++------+------------+------------+------------+------------+------------+ + +Files ++----------+----------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++----------+----------+------------+------------+------------+------------+ +| Total | | 0 | 0 | 0 | 0 | ++----------+----------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/results.csv b/.VSCodeCounter/2025-04-23_21-25-37/results.csv new file mode 100644 index 0000000..192f257 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/results.csv @@ -0,0 +1,39 @@ +"filename", "language", "JSON with Comments", "JavaScript", "vue", "Markdown", "JSON", "CSS", "HTML", "comment", "blank", "total" +"e:\desktop\模训\moxun\src\vue2\.eslintrc.js", "JavaScript", 0, 18, 0, 0, 0, 0, 0, 0, 0, 18 +"e:\desktop\模训\moxun\src\vue2\README.md", "Markdown", 0, 0, 0, 19, 0, 0, 0, 0, 6, 25 +"e:\desktop\模训\moxun\src\vue2\babel.config.js", "JavaScript", 0, 5, 0, 0, 0, 0, 0, 0, 1, 6 +"e:\desktop\模训\moxun\src\vue2\jsconfig.json", "JSON with Comments", 19, 0, 0, 0, 0, 0, 0, 0, 1, 20 +"e:\desktop\模训\moxun\src\vue2\package-lock.json", "JSON", 0, 0, 0, 0, 12372, 0, 0, 0, 1, 12373 +"e:\desktop\模训\moxun\src\vue2\package.json", "JSON", 0, 0, 0, 0, 48, 0, 0, 0, 1, 49 +"e:\desktop\模训\moxun\src\vue2\public\index.html", "HTML", 0, 0, 0, 0, 0, 0, 16, 1, 1, 18 +"e:\desktop\模训\moxun\src\vue2\src\App.vue", "vue", 0, 0, 19, 0, 0, 0, 0, 0, 4, 23 +"e:\desktop\模训\moxun\src\vue2\src\api\analysis.js", "JavaScript", 0, 57, 0, 0, 0, 0, 0, 5, 9, 71 +"e:\desktop\模训\moxun\src\vue2\src\api\index.js", "JavaScript", 0, 29, 0, 0, 0, 0, 0, 4, 4, 37 +"e:\desktop\模训\moxun\src\vue2\src\api\process.js", "JavaScript", 0, 78, 0, 0, 0, 0, 0, 6, 12, 96 +"e:\desktop\模训\moxun\src\vue2\src\assets\css\global.css", "CSS", 0, 0, 0, 0, 0, 28, 0, 2, 4, 34 +"e:\desktop\模训\moxun\src\vue2\src\components\HelloWorld.vue", "vue", 0, 0, 55, 0, 0, 0, 0, 1, 3, 59 +"e:\desktop\模训\moxun\src\vue2\src\components\base\ErrorMessage.vue", "vue", 0, 0, 53, 0, 0, 0, 0, 0, 8, 61 +"e:\desktop\模训\moxun\src\vue2\src\components\base\GlobalLoading.vue", "vue", 0, 0, 52, 0, 0, 0, 0, 0, 6, 58 +"e:\desktop\模训\moxun\src\vue2\src\components\layout\Header.vue", "vue", 0, 0, 57, 0, 0, 0, 0, 0, 6, 63 +"e:\desktop\模训\moxun\src\vue2\src\components\layout\MainLayout.vue", "vue", 0, 0, 38, 0, 0, 0, 0, 0, 4, 42 +"e:\desktop\模训\moxun\src\vue2\src\components\process\DataPreprocess.vue", "vue", 0, 0, 556, 0, 0, 0, 0, 0, 71, 627 +"e:\desktop\模训\moxun\src\vue2\src\components\process\DataPreprocessing.vue", "vue", 0, 0, 262, 0, 0, 0, 0, 0, 21, 283 +"e:\desktop\模训\moxun\src\vue2\src\components\process\FileUpload.vue", "vue", 0, 0, 294, 0, 0, 0, 0, 0, 46, 340 +"e:\desktop\模训\moxun\src\vue2\src\components\process\FormatMerge.vue", "vue", 0, 0, 552, 0, 0, 0, 0, 0, 66, 618 +"e:\desktop\模训\moxun\src\vue2\src\components\process\MergeFormat.vue", "vue", 0, 0, 252, 0, 0, 0, 0, 0, 37, 289 +"e:\desktop\模训\moxun\src\vue2\src\components\process\ModelAnalysis.vue", "vue", 0, 0, 727, 0, 0, 0, 0, 1, 85, 813 +"e:\desktop\模训\moxun\src\vue2\src\components\process\PreProcess.vue", "vue", 0, 0, 213, 0, 0, 0, 0, 0, 31, 244 +"e:\desktop\模训\moxun\src\vue2\src\components\process\ProcessPage.vue", "vue", 0, 0, 253, 0, 0, 0, 0, 5, 29, 287 +"e:\desktop\模训\moxun\src\vue2\src\components\process\ProcessStep.vue", "vue", 0, 0, 218, 0, 0, 0, 0, 5, 16, 239 +"e:\desktop\模训\moxun\src\vue2\src\components\process\WordCorrection.vue", "vue", 0, 0, 749, 0, 0, 0, 0, 0, 82, 831 +"e:\desktop\模训\moxun\src\vue2\src\main.js", "JavaScript", 0, 14, 0, 0, 0, 0, 0, 0, 3, 17 +"e:\desktop\模训\moxun\src\vue2\src\router\index.js", "JavaScript", 0, 29, 0, 0, 0, 0, 0, 0, 4, 33 +"e:\desktop\模训\moxun\src\vue2\src\store\index.js", "JavaScript", 0, 13, 0, 0, 0, 0, 0, 0, 2, 15 +"e:\desktop\模训\moxun\src\vue2\src\store\modules\analysis.js", "JavaScript", 0, 77, 0, 0, 0, 0, 0, 3, 4, 84 +"e:\desktop\模训\moxun\src\vue2\src\store\modules\app.js", "JavaScript", 0, 34, 0, 0, 0, 0, 0, 1, 4, 39 +"e:\desktop\模训\moxun\src\vue2\src\store\modules\process.js", "JavaScript", 0, 101, 0, 0, 0, 0, 0, 1, 5, 107 +"e:\desktop\模训\moxun\src\vue2\src\utils\mock.js", "JavaScript", 0, 152, 0, 0, 0, 0, 0, 12, 12, 176 +"e:\desktop\模训\moxun\src\vue2\src\views\Analysis.vue", "vue", 0, 0, 168, 0, 0, 0, 0, 4, 25, 197 +"e:\desktop\模训\moxun\src\vue2\src\views\Process.vue", "vue", 0, 0, 139, 0, 0, 0, 0, 1, 20, 160 +"e:\desktop\模训\moxun\src\vue2\vue.config.js", "JavaScript", 0, 19, 0, 0, 0, 0, 0, 0, 1, 20 +"Total", "-", 19, 626, 4657, 19, 12420, 28, 16, 52, 635, 18472 \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/results.json b/.VSCodeCounter/2025-04-23_21-25-37/results.json new file mode 100644 index 0000000..7c0f5e0 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/results.json @@ -0,0 +1 @@ +{"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/jsconfig.json":{"language":"JSON with Comments","code":19,"comment":0,"blank":1},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/babel.config.js":{"language":"JavaScript","code":5,"comment":0,"blank":1},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/utils/mock.js":{"language":"JavaScript","code":152,"comment":12,"blank":12},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/views/Process.vue":{"language":"vue","code":139,"comment":1,"blank":20},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/.eslintrc.js":{"language":"JavaScript","code":18,"comment":0,"blank":0},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/vue.config.js":{"language":"JavaScript","code":19,"comment":0,"blank":1},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/main.js":{"language":"JavaScript","code":14,"comment":0,"blank":3},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/views/Analysis.vue":{"language":"vue","code":168,"comment":4,"blank":25},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/store/modules/app.js":{"language":"JavaScript","code":34,"comment":1,"blank":4},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/HelloWorld.vue":{"language":"vue","code":55,"comment":1,"blank":3},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/base/GlobalLoading.vue":{"language":"vue","code":52,"comment":0,"blank":6},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/store/modules/analysis.js":{"language":"JavaScript","code":77,"comment":3,"blank":4},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/base/ErrorMessage.vue":{"language":"vue","code":53,"comment":0,"blank":8},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/store/modules/process.js":{"language":"JavaScript","code":101,"comment":1,"blank":5},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/WordCorrection.vue":{"language":"vue","code":749,"comment":0,"blank":82},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/store/index.js":{"language":"JavaScript","code":13,"comment":0,"blank":2},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/router/index.js":{"language":"JavaScript","code":29,"comment":0,"blank":4},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/PreProcess.vue":{"language":"vue","code":213,"comment":0,"blank":31},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/layout/Header.vue":{"language":"vue","code":57,"comment":0,"blank":6},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/ProcessPage.vue":{"language":"vue","code":253,"comment":5,"blank":29},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/layout/MainLayout.vue":{"language":"vue","code":38,"comment":0,"blank":4},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/MergeFormat.vue":{"language":"vue","code":252,"comment":0,"blank":37},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/ProcessStep.vue":{"language":"vue","code":218,"comment":5,"blank":16},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/ModelAnalysis.vue":{"language":"vue","code":727,"comment":1,"blank":85},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/FormatMerge.vue":{"language":"vue","code":552,"comment":0,"blank":66},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/FileUpload.vue":{"language":"vue","code":294,"comment":0,"blank":46},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/DataPreprocess.vue":{"language":"vue","code":556,"comment":0,"blank":71},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/App.vue":{"language":"vue","code":19,"comment":0,"blank":4},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/README.md":{"language":"Markdown","code":19,"comment":0,"blank":6},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/components/process/DataPreprocessing.vue":{"language":"vue","code":262,"comment":0,"blank":21},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/package.json":{"language":"JSON","code":48,"comment":0,"blank":1},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/api/index.js":{"language":"JavaScript","code":29,"comment":4,"blank":4},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/api/analysis.js":{"language":"JavaScript","code":57,"comment":5,"blank":9},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/api/process.js":{"language":"JavaScript","code":78,"comment":6,"blank":12},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/src/assets/css/global.css":{"language":"CSS","code":28,"comment":2,"blank":4},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/public/index.html":{"language":"HTML","code":16,"comment":1,"blank":1},"file:///e%3A/desktop/%E6%A8%A1%E8%AE%AD/moxun/src/vue2/package-lock.json":{"language":"JSON","code":12372,"comment":0,"blank":1}} \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/results.md b/.VSCodeCounter/2025-04-23_21-25-37/results.md new file mode 100644 index 0000000..b6bfa35 --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/results.md @@ -0,0 +1,45 @@ +# Summary + +Date : 2025-04-23 21:25:37 + +Directory e:\\desktop\\模训\\moxun\\src\\vue2 + +Total : 37 files, 17785 codes, 52 comments, 635 blanks, all 18472 lines + +Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) + +## Languages +| language | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| JSON | 2 | 12,420 | 0 | 2 | 12,422 | +| vue | 18 | 4,657 | 17 | 560 | 5,234 | +| JavaScript | 13 | 626 | 32 | 61 | 719 | +| CSS | 1 | 28 | 2 | 4 | 34 | +| JSON with Comments | 1 | 19 | 0 | 1 | 20 | +| Markdown | 1 | 19 | 0 | 6 | 25 | +| HTML | 1 | 16 | 1 | 1 | 18 | + +## Directories +| path | files | code | comment | blank | total | +| :--- | ---: | ---: | ---: | ---: | ---: | +| . | 37 | 17,785 | 52 | 635 | 18,472 | +| . (Files) | 7 | 12,500 | 0 | 11 | 12,511 | +| public | 1 | 16 | 1 | 1 | 18 | +| src | 29 | 5,269 | 51 | 623 | 5,943 | +| src (Files) | 2 | 33 | 0 | 7 | 40 | +| src\\api | 3 | 164 | 15 | 25 | 204 | +| src\\assets | 1 | 28 | 2 | 4 | 34 | +| src\\assets\\css | 1 | 28 | 2 | 4 | 34 | +| src\\components | 15 | 4,331 | 12 | 511 | 4,854 | +| src\\components (Files) | 1 | 55 | 1 | 3 | 59 | +| src\\components\\base | 2 | 105 | 0 | 14 | 119 | +| src\\components\\layout | 2 | 95 | 0 | 10 | 105 | +| src\\components\\process | 10 | 4,076 | 11 | 484 | 4,571 | +| src\\router | 1 | 29 | 0 | 4 | 33 | +| src\\store | 4 | 225 | 5 | 15 | 245 | +| src\\store (Files) | 1 | 13 | 0 | 2 | 15 | +| src\\store\\modules | 3 | 212 | 5 | 13 | 230 | +| src\\utils | 1 | 152 | 12 | 12 | 176 | +| src\\views | 2 | 307 | 5 | 45 | 357 | + +Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md) \ No newline at end of file diff --git a/.VSCodeCounter/2025-04-23_21-25-37/results.txt b/.VSCodeCounter/2025-04-23_21-25-37/results.txt new file mode 100644 index 0000000..caa5aea --- /dev/null +++ b/.VSCodeCounter/2025-04-23_21-25-37/results.txt @@ -0,0 +1,85 @@ +Date : 2025-04-23 21:25:37 +Directory : e:\desktop\模训\moxun\src\vue2 +Total : 37 files, 17785 codes, 52 comments, 635 blanks, all 18472 lines + +Languages ++--------------------+------------+------------+------------+------------+------------+ +| language | files | code | comment | blank | total | ++--------------------+------------+------------+------------+------------+------------+ +| JSON | 2 | 12,420 | 0 | 2 | 12,422 | +| vue | 18 | 4,657 | 17 | 560 | 5,234 | +| JavaScript | 13 | 626 | 32 | 61 | 719 | +| CSS | 1 | 28 | 2 | 4 | 34 | +| JSON with Comments | 1 | 19 | 0 | 1 | 20 | +| Markdown | 1 | 19 | 0 | 6 | 25 | +| HTML | 1 | 16 | 1 | 1 | 18 | ++--------------------+------------+------------+------------+------------+------------+ + +Directories ++---------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| path | files | code | comment | blank | total | ++---------------------------------------------------------------------------+------------+------------+------------+------------+------------+ +| . | 37 | 17,785 | 52 | 635 | 18,472 | +| . (Files) | 7 | 12,500 | 0 | 11 | 12,511 | +| public | 1 | 16 | 1 | 1 | 18 | +| src | 29 | 5,269 | 51 | 623 | 5,943 | +| src (Files) | 2 | 33 | 0 | 7 | 40 | +| src\api | 3 | 164 | 15 | 25 | 204 | +| src\assets | 1 | 28 | 2 | 4 | 34 | +| src\assets\css | 1 | 28 | 2 | 4 | 34 | +| src\components | 15 | 4,331 | 12 | 511 | 4,854 | +| src\components (Files) | 1 | 55 | 1 | 3 | 59 | +| src\components\base | 2 | 105 | 0 | 14 | 119 | +| src\components\layout | 2 | 95 | 0 | 10 | 105 | +| src\components\process | 10 | 4,076 | 11 | 484 | 4,571 | +| src\router | 1 | 29 | 0 | 4 | 33 | +| src\store | 4 | 225 | 5 | 15 | 245 | +| src\store (Files) | 1 | 13 | 0 | 2 | 15 | +| src\store\modules | 3 | 212 | 5 | 13 | 230 | +| src\utils | 1 | 152 | 12 | 12 | 176 | +| src\views | 2 | 307 | 5 | 45 | 357 | ++---------------------------------------------------------------------------+------------+------------+------------+------------+------------+ + +Files ++---------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+ +| filename | language | code | comment | blank | total | ++---------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+ +| e:\desktop\模训\moxun\src\vue2\.eslintrc.js | JavaScript | 18 | 0 | 0 | 18 | +| e:\desktop\模训\moxun\src\vue2\README.md | Markdown | 19 | 0 | 6 | 25 | +| e:\desktop\模训\moxun\src\vue2\babel.config.js | JavaScript | 5 | 0 | 1 | 6 | +| e:\desktop\模训\moxun\src\vue2\jsconfig.json | JSON with Comments | 19 | 0 | 1 | 20 | +| e:\desktop\模训\moxun\src\vue2\package-lock.json | JSON | 12,372 | 0 | 1 | 12,373 | +| e:\desktop\模训\moxun\src\vue2\package.json | JSON | 48 | 0 | 1 | 49 | +| e:\desktop\模训\moxun\src\vue2\public\index.html | HTML | 16 | 1 | 1 | 18 | +| e:\desktop\模训\moxun\src\vue2\src\App.vue | vue | 19 | 0 | 4 | 23 | +| e:\desktop\模训\moxun\src\vue2\src\api\analysis.js | JavaScript | 57 | 5 | 9 | 71 | +| e:\desktop\模训\moxun\src\vue2\src\api\index.js | JavaScript | 29 | 4 | 4 | 37 | +| e:\desktop\模训\moxun\src\vue2\src\api\process.js | JavaScript | 78 | 6 | 12 | 96 | +| e:\desktop\模训\moxun\src\vue2\src\assets\css\global.css | CSS | 28 | 2 | 4 | 34 | +| e:\desktop\模训\moxun\src\vue2\src\components\HelloWorld.vue | vue | 55 | 1 | 3 | 59 | +| e:\desktop\模训\moxun\src\vue2\src\components\base\ErrorMessage.vue | vue | 53 | 0 | 8 | 61 | +| e:\desktop\模训\moxun\src\vue2\src\components\base\GlobalLoading.vue | vue | 52 | 0 | 6 | 58 | +| e:\desktop\模训\moxun\src\vue2\src\components\layout\Header.vue | vue | 57 | 0 | 6 | 63 | +| e:\desktop\模训\moxun\src\vue2\src\components\layout\MainLayout.vue | vue | 38 | 0 | 4 | 42 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\DataPreprocess.vue | vue | 556 | 0 | 71 | 627 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\DataPreprocessing.vue | vue | 262 | 0 | 21 | 283 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\FileUpload.vue | vue | 294 | 0 | 46 | 340 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\FormatMerge.vue | vue | 552 | 0 | 66 | 618 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\MergeFormat.vue | vue | 252 | 0 | 37 | 289 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\ModelAnalysis.vue | vue | 727 | 1 | 85 | 813 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\PreProcess.vue | vue | 213 | 0 | 31 | 244 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\ProcessPage.vue | vue | 253 | 5 | 29 | 287 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\ProcessStep.vue | vue | 218 | 5 | 16 | 239 | +| e:\desktop\模训\moxun\src\vue2\src\components\process\WordCorrection.vue | vue | 749 | 0 | 82 | 831 | +| e:\desktop\模训\moxun\src\vue2\src\main.js | JavaScript | 14 | 0 | 3 | 17 | +| e:\desktop\模训\moxun\src\vue2\src\router\index.js | JavaScript | 29 | 0 | 4 | 33 | +| e:\desktop\模训\moxun\src\vue2\src\store\index.js | JavaScript | 13 | 0 | 2 | 15 | +| e:\desktop\模训\moxun\src\vue2\src\store\modules\analysis.js | JavaScript | 77 | 3 | 4 | 84 | +| e:\desktop\模训\moxun\src\vue2\src\store\modules\app.js | JavaScript | 34 | 1 | 4 | 39 | +| e:\desktop\模训\moxun\src\vue2\src\store\modules\process.js | JavaScript | 101 | 1 | 5 | 107 | +| e:\desktop\模训\moxun\src\vue2\src\utils\mock.js | JavaScript | 152 | 12 | 12 | 176 | +| e:\desktop\模训\moxun\src\vue2\src\views\Analysis.vue | vue | 168 | 4 | 25 | 197 | +| e:\desktop\模训\moxun\src\vue2\src\views\Process.vue | vue | 139 | 1 | 20 | 160 | +| e:\desktop\模训\moxun\src\vue2\vue.config.js | JavaScript | 19 | 0 | 1 | 20 | +| Total | | 17,785 | 52 | 635 | 18,472 | ++---------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+ \ No newline at end of file diff --git a/.cursorrules b/.cursorrules deleted file mode 100644 index eea175c..0000000 --- a/.cursorrules +++ /dev/null @@ -1,159 +0,0 @@ -Vue 2 前端界面设计构想 (SVG/Excel 数据处理) -一、 核心设计理念 -清晰分步: 将复杂的 SVG/Excel 数据处理流程分解为四个明确、独立的步骤(格式合并、单词纠错、大模型分析、统计结果),降低用户的认知负荷。 - -用户引导: 通过可视化的步骤指示器 (Stepper) 和明确的导航按钮,引导用户按顺序完成任务。 - -关注点分离: 将文件上传、数据查看/编辑、逐步处理这几个核心功能在界面布局上进行区分。 - -大数据友好: 考虑到可能处理大数据量,将数据查看和编辑功能与主处理流程适当分离(强烈推荐使用模态框),避免主界面卡顿。 - -简洁直观: 界面元素和交互设计力求简洁明了,符合初学者的使用习惯。 - -二、 界面整体布局与结构 -采用上下两层的主体布局: - -1. 上层区域:文件上传与准备 -目的: 负责接收用户输入的文件。 - -内容: - -一个醒目的文件上传控件: - -支持拖拽和点击选择文件。 - -明确标示支持的文件类型 (SVG, Excel)。 - -上传过程中的视觉反馈: - -进度条。 - -成功/失败提示。 - -上传成功后显示文件基本信息: - -文件名、大小、类型等。 - -一个关键的 “查看/编辑文件内容” 按钮 (文件上传成功后激活)。 - -2. 下层区域:多步骤处理流程 -目的: 引导用户完成四个核心处理步骤,并展示每步结果。 - -内容: - -步骤指示器 (Stepper): - -位于该区域的最上方。 - -可视化展示四个步骤(例如:① 格式合并 → ② 单词纠错 → ③ 大模型分析 → ④ 统计结果)。 - -高亮显示当前活动步骤和已完成步骤。 - -当前步骤内容区: - -下层区域的主体。 - -每次只显示一个步骤的相关内容。 - -根据 Stepper 的状态动态切换。 - -导航按钮: - -通常在当前步骤内容区的底部。 - -包含“下一步”按钮。 - -最后一步为“完成”或“导出结果”按钮。 - -三、 关键组件与交互细节 -1. 文件上传组件 -提供清晰的拖拽区域和“选择文件”按钮。 - -上传中、上传成功、上传失败都要有明确的视觉提示。 - -2. 数据查看/编辑组件 (核心交互点) -触发方式: 点击上层区域文件上传成功后的 “查看/编辑文件内容” 按钮。 - -实现方式: 强烈推荐使用“模态框 (Modal Dialog)”。 - -优点: 保持用户在主流程页面内,提供连贯体验,技术上状态管理相对简单。 - -备选方案: 在当前页面内展开一个区域。 - -不推荐方案: 跳转到全新的页面(打断流程,增加状态管理复杂度)。 - -模态框内容: - -Excel 数据: 使用交互式表格组件(如 Element UI 的 Table 配合输入框),允许基本的单元格查看/编辑。 - -SVG 数据: 渲染 SVG 图像供查看。(编辑功能按需添加)。 - -操作: 模态框内需要有 “保存修改并关闭” 或 “关闭” 按钮。“保存修改”操作会将处理后的数据准备好,作为处理流程第一步的输入。 - -3. 步骤指示器 (Stepper) -使用 UI 库(如 Element UI 的 Steps 组件)实现。 - -清晰标示步骤编号和名称。 - -视觉上区分已完成、当前、未开始状态。 - -(可选) 允许点击已完成步骤返回查看。 - -4. 单个处理步骤内容区 (动态切换) -结构: 每个步骤都应包含: - -明确的标题: 如 “步骤 1:格式合并”。 - -简要说明 (可选): 解释该步骤的作用。 - -(可选) 配置项: 若步骤需要用户输入参数,提供表单控件。 - -处理结果展示区: 显示该步骤的处理结果。 - -格式合并: 合并后的数据预览或摘要。 - -单词纠错: 修改的单词列表/数量,或高亮修改处。 - -大模型分析: 分析摘要、关键标签或评分。(此步骤预计耗时长,必须显示加载/处理中状态) - -统计结果: 图表或关键统计数据。 - -导航按钮: “下一步”按钮(触发进入下一处理步骤并更新 Stepper),最后一个步骤显示“完成”或“导出结果”。 - -四、 整体工作流程 (User Journey) -用户进入界面,看到上层文件上传区和下层待激活的步骤区。 - -用户上传 SVG 或 Excel 文件,界面反馈上传状态。 - -上传成功,显示文件信息,“查看/编辑文件内容” 按钮可用。 - -用户点击 “查看/编辑文件内容”,弹出模态框。 - -用户在模态框中查看/编辑数据,点击 “保存修改并关闭”。 - -模态框关闭,下层步骤区自动激活并显示第一步(格式合并)内容,Stepper 指向第一步。 - -用户查看结果,点击 “下一步:单词纠错”。 - -界面更新为第二步(单词纠错)内容,Stepper 指向第二步。 - -用户查看结果,点击 “下一步:大模型分析”。 - -界面显示明确的加载/处理中提示。完成后,更新为第三步内容,Stepper 指向第三步。 - -用户查看结果,点击 “下一步:查看统计结果”。 - -界面更新为第四步内容,Stepper 指向第四步。 - -用户查看最终结果,点击 “完成” 或 “导出结果”。 - -五、 技术栈提示 (Vue 2) -初始化: 使用 vue create 并手动选择 Vue 2 版本。 - -核心 API: 使用 Options API (data, methods, computed, watch, 生命周期钩子)。 - -UI 库: 推荐使用成熟的 Vue 2 UI 库 (如 Element UI, Vuetify, iView) 获取开箱即用的组件(上传、模态框、步骤条、表格等)。 - -状态管理: 可能需要 Vuex (v3) 来管理跨组件/步骤的状态(尤其数据从编辑模态框传递到处理流程)。 - -路由: 若选择页面跳转方式实现查看/编辑,则需要 Vue Router (v3)。 \ No newline at end of file diff --git a/node_modules/.vue-global-types/vue_2.7_0_0_0.d.ts b/node_modules/.vue-global-types/vue_2.7_0_0_0.d.ts new file mode 100644 index 0000000..d562f26 --- /dev/null +++ b/node_modules/.vue-global-types/vue_2.7_0_0_0.d.ts @@ -0,0 +1,122 @@ +// @ts-nocheck +export {}; + +; declare module 'vue' { + export interface GlobalComponents { } + export interface GlobalDirectives { } +} +; declare global { + const __VLS_intrinsicElements: __VLS_IntrinsicElements; + const __VLS_directiveBindingRestFields: { instance: null, oldValue: null, modifiers: any, dir: any }; + const __VLS_unref: typeof import('vue').unref; + const __VLS_placeholder: any; + + type __VLS_NativeElements = __VLS_SpreadMerge; + type __VLS_IntrinsicElements = globalThis.JSX.IntrinsicElements; + type __VLS_Element = globalThis.JSX.Element; + type __VLS_GlobalComponents = import('vue').GlobalComponents & Pick; + type __VLS_GlobalDirectives = import('vue').GlobalDirectives; + type __VLS_IsAny = 0 extends 1 & T ? true : false; + type __VLS_PickNotAny = __VLS_IsAny extends true ? B : A; + type __VLS_SpreadMerge = Omit & B; + type __VLS_WithComponent = + N1 extends keyof LocalComponents ? N1 extends N0 ? Pick : { [K in N0]: LocalComponents[N1] } : + N2 extends keyof LocalComponents ? N2 extends N0 ? Pick : { [K in N0]: LocalComponents[N2] } : + N3 extends keyof LocalComponents ? N3 extends N0 ? Pick : { [K in N0]: LocalComponents[N3] } : + Self extends object ? { [K in N0]: Self } : + N1 extends keyof __VLS_GlobalComponents ? N1 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N1] } : + N2 extends keyof __VLS_GlobalComponents ? N2 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N2] } : + N3 extends keyof __VLS_GlobalComponents ? N3 extends N0 ? Pick<__VLS_GlobalComponents, N0 extends keyof __VLS_GlobalComponents ? N0 : never> : { [K in N0]: __VLS_GlobalComponents[N3] } : + { [K in N0]: unknown }; + type __VLS_FunctionalComponentProps = + '__ctx' extends keyof __VLS_PickNotAny ? K extends { __ctx?: { props?: infer P } } ? NonNullable

: never + : T extends (props: infer P, ...args: any) => any ? P : + {}; + type __VLS_IsFunction = K extends keyof T + ? __VLS_IsAny extends false + ? unknown extends T[K] + ? false + : true + : false + : false; + type __VLS_NormalizeComponentEvent = ( + __VLS_IsFunction extends true + ? Props + : __VLS_IsFunction extends true + ? { [K in onEvent]?: Events[Event] } + : __VLS_IsFunction extends true + ? { [K in onEvent]?: Events[CamelizedEvent] } + : Props + ) & Record; + // fix https://github.com/vuejs/language-tools/issues/926 + type __VLS_UnionToIntersection = (U extends unknown ? (arg: U) => unknown : never) extends ((arg: infer P) => unknown) ? P : never; + type __VLS_OverloadUnionInner = U & T extends (...args: infer A) => infer R + ? U extends T + ? never + : __VLS_OverloadUnionInner & U & ((...args: A) => R)> | ((...args: A) => R) + : never; + type __VLS_OverloadUnion = Exclude< + __VLS_OverloadUnionInner<(() => never) & T>, + T extends () => never ? never : () => never + >; + type __VLS_ConstructorOverloads = __VLS_OverloadUnion extends infer F + ? F extends (event: infer E, ...args: infer A) => any + ? { [K in E & string]: (...args: A) => void; } + : never + : never; + type __VLS_NormalizeEmits = __VLS_PrettifyGlobal< + __VLS_UnionToIntersection< + __VLS_ConstructorOverloads & { + [K in keyof T]: T[K] extends any[] ? { (...args: T[K]): void } : never + } + > + >; + type __VLS_PrettifyGlobal = { [K in keyof T]: T[K]; } & {}; + type __VLS_PickFunctionalComponentCtx = NonNullable<__VLS_PickNotAny< + '__ctx' extends keyof __VLS_PickNotAny ? K extends { __ctx?: infer Ctx } ? Ctx : never : any + , T extends (props: any, ctx: infer Ctx) => any ? Ctx : any + >>; + type __VLS_UseTemplateRef = Readonly>; + + function __VLS_getVForSourceType>(source: T): [ + item: T extends number ? number + : T extends string ? string + : T extends any[] ? T[number] + : T extends Iterable ? T1 + : any, + index: number, + ][]; + function __VLS_getVForSourceType(source: T): [ + item: T[keyof T], + key: keyof T, + index: number, + ][]; + // @ts-ignore + function __VLS_getSlotParams(slot: T): Parameters<__VLS_PickNotAny, (...args: any[]) => any>>; + // @ts-ignore + function __VLS_getSlotParam(slot: T): Parameters<__VLS_PickNotAny, (...args: any[]) => any>>[0]; + function __VLS_asFunctionalDirective(dir: T): T extends import('vue').ObjectDirective + ? NonNullable + : T extends (...args: any) => any + ? T + : (arg1: unknown, arg2: unknown, arg3: unknown, arg4: unknown) => void; + function __VLS_makeOptional(t: T): { [K in keyof T]?: T[K] }; + function __VLS_asFunctionalComponent any ? InstanceType : unknown>(t: T, instance?: K): + T extends new (...args: any) => any + ? (props: (K extends { $props: infer Props } ? Props : any) & Record, ctx?: any) => __VLS_Element & { + __ctx?: { + attrs?: any; + slots?: K extends { $scopedSlots: infer Slots } ? Slots : any; + emit?: K extends { $emit: infer Emit } ? Emit : any; + expose?(exposed: K): void; + props?: (K extends { $props: infer Props } ? Props : any) & Record; + } + } + : T extends () => any ? (props: {}, ctx?: any) => ReturnType + : T extends (...args: any) => any ? T + : (_: {} & Record, ctx?: any) => { __ctx?: { attrs?: any, expose?: any, slots?: any, emit?: any, props?: {} & Record } }; + function __VLS_functionalComponentArgsRest any>(t: T): 2 extends Parameters['length'] ? [any] : []; + function __VLS_asFunctionalElement(tag: T, endTag?: T): (attrs: T & Record) => void; + function __VLS_asFunctionalSlot(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable; + function __VLS_tryAsConstant(t: T): T; +} diff --git a/node_modules/.vue-global-types/vue_99_0_0_0.d.ts b/node_modules/.vue-global-types/vue_99_0_0_0.d.ts index 72f1004..1c73e1f 100644 --- a/node_modules/.vue-global-types/vue_99_0_0_0.d.ts +++ b/node_modules/.vue-global-types/vue_99_0_0_0.d.ts @@ -72,9 +72,6 @@ export {}; '__ctx' extends keyof __VLS_PickNotAny ? K extends { __ctx?: infer Ctx } ? Ctx : never : any , T extends (props: any, ctx: infer Ctx) => any ? Ctx : any >>; - type __VLS_OmitStringIndex = { - [K in keyof T as string extends K ? never : K]: T[K]; - }; type __VLS_UseTemplateRef = Readonly>; function __VLS_getVForSourceType>(source: T): [ @@ -116,6 +113,6 @@ export {}; : (_: {} & Record, ctx?: any) => { __ctx?: { attrs?: any, expose?: any, slots?: any, emit?: any, props?: {} & Record } }; function __VLS_functionalComponentArgsRest any>(t: T): 2 extends Parameters['length'] ? [any] : []; function __VLS_asFunctionalElement(tag: T, endTag?: T): (attrs: T & Record) => void; - function __VLS_asFunctionalSlot(slot: S): (props: NonNullable extends (props: infer P) => any ? P : {}) => void; + function __VLS_asFunctionalSlot(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable; function __VLS_tryAsConstant(t: T): T; } diff --git a/src/vue2/src/components/process/FileUpload.vue b/src/vue2/src/components/process/FileUpload.vue index 2026259..942f8d9 100644 --- a/src/vue2/src/components/process/FileUpload.vue +++ b/src/vue2/src/components/process/FileUpload.vue @@ -8,6 +8,7 @@ :operationButtonText="'上传文件'" :processingText="'正在上传文件...'" :errorText="'文件上传失败,请重试'" + :showPrevButton="false" @start="handleUpload" @retry="handleRetry" @prev="$emit('prev')" @@ -47,6 +48,16 @@

文件上传成功

文件已准备好进行后续处理

+ + + 继续处理 + @@ -124,6 +135,11 @@ export default { 'setFileData' ]), + handleNextStep() { + console.log('手动点击继续处理按钮'); + this.$emit('next'); + }, + handleFileChange(file) { this.file = file.raw this.fileList = [file] @@ -172,31 +188,52 @@ export default { simulateUploadComplete() { // 模拟上传完成后获取文件分析结果 setTimeout(() => { - // 生成模拟的文件数据 - const mockFileData = { - fileName: this.file.name, - fileSize: this.formatFileSize(this.file.size), - rowCount: Math.floor(Math.random() * 1000) + 500, - columnCount: Math.floor(Math.random() * 10) + 5, - uploadTime: this.formatDate(new Date()), - fileType: this.getFileType(this.file.name), - previewData: this.generatePreviewData() + try { + // 生成模拟的文件数据 + const mockFileData = { + fileName: this.file.name, + fileSize: this.formatFileSize(this.file.size), + rowCount: Math.floor(Math.random() * 1000) + 500, + columnCount: Math.floor(Math.random() * 10) + 5, + uploadTime: this.formatDate(new Date()), + fileType: this.getFileType(this.file.name), + previewData: this.generatePreviewData() + } + + // 设置文件数据到Vuex + this.setFileData(mockFileData) + + // 将上传步骤状态更新为已完成 + this.$store.commit('process/UPDATE_STEP_STATUS', { step: 'upload', status: 'completed' }) + this.$store.commit('process/SET_FILE_UPLOADED', true) + + // 重要:立即更新组件状态为已完成 + this.loading = false + this.uploadStatus = 'completed' + console.log('文件上传完成,状态已设置为:', this.uploadStatus) + + // 显示成功消息 + this.$message({ + message: '文件上传成功,请点击下一步按钮继续', + type: 'success', + duration: 5000, + showClose: true + }) + + // 通知父组件文件上传完成 + this.$emit('file-uploaded', mockFileData) + console.log('触发file-uploaded事件,文件数据:', mockFileData) + + // 确保DOM更新完成 + this.$nextTick(() => { + console.log('DOM已更新,文件上传状态:', this.uploadStatus) + }) + } catch (error) { + console.error('文件上传完成处理出错:', error) + this.uploadStatus = 'error' + this.loading = false + this.$message.error('处理上传文件时出错') } - - // 设置文件数据到Vuex - this.setFileData(mockFileData) - - // 更新组件状态为已完成 - this.loading = false - this.uploadStatus = 'completed' - console.log('文件上传完成,状态已设置为:', this.uploadStatus) - - // 显示成功消息 - this.$message.success('文件上传成功,请点击下一步按钮继续') - - // 通知父组件文件上传完成 - this.$emit('file-uploaded', mockFileData) - console.log('触发file-uploaded事件,文件数据:', mockFileData) }, 500) }, @@ -245,12 +282,12 @@ export default { }) } - // 生成行 - const rowCount = 5 + // 生成行数据 + const rowCount = Math.min(5, Math.floor(Math.random() * 10) + 3) for (let i = 0; i < rowCount; i++) { const row = {} for (let j = 0; j < colCount; j++) { - row['col' + j] = `数据 ${i + 1}-${j + 1}` + row['col' + j] = `数据 ${i+1}-${j+1}` } rows.push(row) } @@ -269,45 +306,58 @@ export default { \ No newline at end of file diff --git a/src/vue2/src/store/modules/process.js b/src/vue2/src/store/modules/process.js index 1d5dfe0..2384ac5 100644 --- a/src/vue2/src/store/modules/process.js +++ b/src/vue2/src/store/modules/process.js @@ -7,8 +7,9 @@ const state = { mergeResults: null, correctionResults: null, analysisResults: null, + fileUploaded: false, stepStatus: { - upload: 'pending', + upload: 'waiting', preprocess: 'pending', merge: 'pending', correction: 'pending', @@ -25,6 +26,9 @@ const mutations = { }, SET_FILE_DATA(state, data) { state.fileData = data + if (data) { + state.fileUploaded = true + } }, SET_PREPROCESS_RESULTS(state, results) { state.preprocessResults = results @@ -40,6 +44,15 @@ const mutations = { }, UPDATE_STEP_STATUS(state, { step, status }) { state.stepStatus[step] = status + if (step === 'upload' && status === 'completed') { + state.fileUploaded = true + } + }, + RESET_FILE_UPLOADED(state) { + state.fileUploaded = false + }, + SET_FILE_UPLOADED(state, status) { + state.fileUploaded = status } } @@ -70,6 +83,17 @@ const actions = { commit('SET_ANALYSIS_RESULTS', results) commit('UPDATE_STEP_STATUS', { step: 'analysis', status: 'completed' }) }, + uploadFile({ commit }) { + return new Promise((resolve) => { + commit('UPDATE_STEP_STATUS', { step: 'upload', status: 'running' }) + + setTimeout(() => { + commit('UPDATE_STEP_STATUS', { step: 'upload', status: 'completed' }) + commit('SET_FILE_UPLOADED', true) + resolve({ success: true, message: '文件上传成功' }) + }, 1000) + }) + }, resetProcess({ commit }) { commit('SET_CURRENT_STEP', 1) commit('SET_UPLOADED_FILES', []) @@ -78,11 +102,13 @@ const actions = { commit('SET_MERGE_RESULTS', null) commit('SET_CORRECTION_RESULTS', null) commit('SET_ANALYSIS_RESULTS', null) + commit('RESET_FILE_UPLOADED') const steps = ['upload', 'preprocess', 'merge', 'correction', 'analysis'] steps.forEach(step => { commit('UPDATE_STEP_STATUS', { step, status: 'pending' }) }) + commit('UPDATE_STEP_STATUS', { step: 'upload', status: 'waiting' }) } } @@ -95,7 +121,8 @@ const getters = { correctionResults: state => state.correctionResults, analysisResults: state => state.analysisResults, stepStatus: state => state.stepStatus, - isStepCompleted: state => step => state.stepStatus[step] === 'completed' + isStepCompleted: state => step => state.stepStatus[step] === 'completed', + fileUploaded: state => state.fileUploaded } export default { diff --git a/src/vue2/src/views/Process.vue b/src/vue2/src/views/Process.vue index d3ca714..c3c3f73 100644 --- a/src/vue2/src/views/Process.vue +++ b/src/vue2/src/views/Process.vue @@ -3,11 +3,12 @@

文件处理流程

- - - - - +
@@ -51,15 +52,27 @@ export default { ModelAnalysis }, + data() { + return { + steps: [ + { title: '文件上传', description: '上传Excel或CSV文件' }, + { title: '数据预处理', description: '规范化文本格式' }, + { title: '格式合并', description: '统一数据格式' }, + { title: '单词纠错', description: '纠正错误拼写' }, + { title: '大模型分析', description: '使用AI分析内容' } + ] + } + }, + computed: { - ...mapState('process', ['currentStep', 'uploadedFiles']), + ...mapState('process', ['currentStep', 'uploadedFiles', 'stepStatus', 'fileUploaded']), ...mapGetters('process', ['isStepCompleted']), canProceedToNextStep() { // 根据当前步骤判断是否可以进行下一步 switch (this.currentStep) { case 1: - return this.isStepCompleted('upload') + return this.isStepCompleted('upload') || this.fileUploaded case 2: return this.isStepCompleted('preprocess') case 3: @@ -77,6 +90,28 @@ export default { methods: { ...mapActions('process', ['setCurrentStep']), + getStepStatus(stepIndex) { + const stepKeys = ['upload', 'preprocess', 'merge', 'correction', 'analysis']; + + // 如果是第一步且文件已上传成功 + if (stepIndex === 1 && (this.isStepCompleted('upload') || this.fileUploaded)) { + return 'success'; + } + + // 如果是当前步骤 + if (stepIndex === this.currentStep) { + return 'process'; + } + + // 如果是已完成的步骤 + if (stepIndex < this.currentStep && this.isStepCompleted(stepKeys[stepIndex - 1])) { + return 'success'; + } + + // 其他情况为等待中 + return 'wait'; + }, + prevStep() { if (this.currentStep > 1) { this.setCurrentStep(this.currentStep - 1) @@ -84,8 +119,14 @@ export default { }, nextStep() { - if (this.currentStep < 5 && this.canProceedToNextStep) { - this.setCurrentStep(this.currentStep + 1) + if (this.currentStep < 5) { + console.log('Process.vue: 准备进入下一步,当前步骤:', this.currentStep, '下一步骤:', this.currentStep + 1); + + // 使用nextTick确保DOM更新 + this.$nextTick(() => { + this.setCurrentStep(this.currentStep + 1); + console.log('Process.vue: 已切换到下一步,当前步骤:', this.currentStep + 1); + }); } },