From 01932a640788ae2cd5b903ebd577b413577fd86f Mon Sep 17 00:00:00 2001 From: wanglingyu <1512528122@qq.com> Date: Tue, 23 May 2023 16:34:07 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=B9=B6=E5=9B=9E?= =?UTF-8?q?=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 55 +++++--- package.json | 1 + src/api/upload.js | 25 ++++ src/utils/service.js | 2 +- src/views/admins/ImportListView.vue | 202 ++++++++++------------------ yarn.lock | 16 ++- 6 files changed, 151 insertions(+), 150 deletions(-) create mode 100644 src/api/upload.js diff --git a/package-lock.json b/package-lock.json index c940201..a214e8f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "stu-eval-frontend", "version": "0.1.0", "dependencies": { + "axios": "^1.4.0", "core-js": "^3.8.3", "element-ui": "^2.15.13", "v-fit-columns": "^0.2.0", @@ -3469,8 +3470,7 @@ "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/at-least-node": { "version": "1.0.0", @@ -3504,6 +3504,16 @@ "postcss": "^8.1.0" } }, + "node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "node_modules/babel-helper-vue-jsx-merge-props": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", @@ -4172,7 +4182,6 @@ "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "dependencies": { "delayed-stream": "~1.0.0" }, @@ -5000,7 +5009,6 @@ "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true, "engines": { "node": ">=0.4.0" } @@ -6388,7 +6396,6 @@ "version": "1.15.2", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, "engines": { "node": ">=4.0" }, @@ -6402,7 +6409,6 @@ "version": "4.0.0", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -7976,7 +7982,6 @@ "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -7985,7 +7990,6 @@ "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -9948,6 +9952,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", @@ -15352,8 +15361,7 @@ "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "at-least-node": { "version": "1.0.0", @@ -15375,6 +15383,16 @@ "postcss-value-parser": "^4.2.0" } }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, "babel-helper-vue-jsx-merge-props": { "version": "2.0.3", "resolved": "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz", @@ -15937,7 +15955,6 @@ "version": "1.0.8", "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -16589,8 +16606,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "dev": true + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "depd": { "version": "2.0.0", @@ -17706,14 +17722,12 @@ "follow-redirects": { "version": "1.15.2", "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -18961,14 +18975,12 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, "requires": { "mime-db": "1.52.0" } @@ -20454,6 +20466,11 @@ } } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", diff --git a/package.json b/package.json index d9d5efd..abcf983 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { + "axios": "^1.4.0", "core-js": "^3.8.3", "element-ui": "^2.15.13", "v-fit-columns": "^0.2.0", diff --git a/src/api/upload.js b/src/api/upload.js new file mode 100644 index 0000000..07bdbe3 --- /dev/null +++ b/src/api/upload.js @@ -0,0 +1,25 @@ +import service from '@/utils/service'; + +// 导入名单 +export function importStu(file) { + const data = { + file + } + return service({ + url: '/student/import', + method: 'post', + data: data + }) + } + + export function getPage(page, pageSize){ + const data = { + page, + pageSize + } + return service({ + url:'/student/page', + method:'get', + data:data + }) + } \ No newline at end of file diff --git a/src/utils/service.js b/src/utils/service.js index 8b36ae6..f8d898f 100644 --- a/src/utils/service.js +++ b/src/utils/service.js @@ -3,7 +3,7 @@ import { getToken } from '@/utils/token' import { Message } from 'element-ui' const service = axios.create({ - baseURL: '/api', // baseURL 会自动加在每次请求的最前面,然后被 vue.config.js 解析 + baseURL: 'http://localhost:20235', // baseURL 会自动加在每次请求的最前面,然后被 vue.config.js 解析 timeout: 3000 }) diff --git a/src/views/admins/ImportListView.vue b/src/views/admins/ImportListView.vue index cce7a25..b735454 100644 --- a/src/views/admins/ImportListView.vue +++ b/src/views/admins/ImportListView.vue @@ -1,152 +1,96 @@ - - + - - \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 58f9f0d..bac02fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2039,6 +2039,15 @@ "picocolors" "^1.0.0" "postcss-value-parser" "^4.2.0" +"axios@^1.4.0": + "integrity" "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==" + "resolved" "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz" + "version" "1.4.0" + dependencies: + "follow-redirects" "^1.15.0" + "form-data" "^4.0.0" + "proxy-from-env" "^1.1.0" + "babel-helper-vue-jsx-merge-props@^2.0.0": "integrity" "sha512-gsLiKK7Qrb7zYJNgiXKpXblxbV5ffSwR0f5whkPAaBAR4fhi6bwRZxX9wBlIc5M/v8CCkXUbXZL4N/nSE97cqg==" "resolved" "https://registry.npmmirror.com/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-2.0.3.tgz" @@ -3631,7 +3640,7 @@ "resolved" "https://registry.npmmirror.com/flatted/-/flatted-3.2.7.tgz" "version" "3.2.7" -"follow-redirects@^1.0.0": +"follow-redirects@^1.0.0", "follow-redirects@^1.15.0": "integrity" "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" "resolved" "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz" "version" "1.15.2" @@ -5671,6 +5680,11 @@ "forwarded" "0.2.0" "ipaddr.js" "1.9.1" +"proxy-from-env@^1.1.0": + "integrity" "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + "resolved" "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + "version" "1.1.0" + "prr@~1.0.1": "integrity" "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" "resolved" "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz" -- Gitee From 15ba8a77eff1a83f781a182b8b62ca6132625d8e Mon Sep 17 00:00:00 2001 From: wanglingyu <1512528122@qq.com> Date: Tue, 23 May 2023 16:52:52 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/admins/ImportListView.vue | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/views/admins/ImportListView.vue b/src/views/admins/ImportListView.vue index b735454..7b467cb 100644 --- a/src/views/admins/ImportListView.vue +++ b/src/views/admins/ImportListView.vue @@ -25,7 +25,8 @@ - + + @@ -35,10 +36,10 @@ @@ -57,6 +58,7 @@ export default { currentPage: 1, pageSize: 10, studentList: [], // 学生列表数据 + totalStudents: 0, // 总学生数 }; }, mounted() { @@ -66,6 +68,7 @@ export default { async fetchStudentList() { const response = await getPage(this.currentPage, this.pageSize); this.studentList = response.data.data.rows; // 将数据赋值给studentList + this.totalStudents = response.data.data.total; // 设置总学生数 }, handleFileChange(file) { this.file = file; @@ -79,17 +82,14 @@ export default { // 可以显示提示信息或进行其他操作 } }, - handlePageChange(page) { - this.currentPage = page; + handlePageChange(currentPage) { + this.currentPage = currentPage; this.fetchStudentList(); }, }, computed: { pagedStudentList() { - const start = (this.currentPage - 1) * this.pageSize; - const end = this.currentPage * this.pageSize; - - return this.studentList.slice(start, end); + return this.studentList; // 不需要分页处理,直接返回当前页的列表数据 }, }, }; -- Gitee From 0176cd5d1b5f5c0568edb5b8324e9f0756820571 Mon Sep 17 00:00:00 2001 From: wanglingyu <1512528122@qq.com> Date: Tue, 23 May 2023 18:27:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=88=86=E9=A1=B5?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/admins/ImportListView.vue | 114 +++++++++++++++++----------- 1 file changed, 69 insertions(+), 45 deletions(-) diff --git a/src/views/admins/ImportListView.vue b/src/views/admins/ImportListView.vue index 7b467cb..2ae15a6 100644 --- a/src/views/admins/ImportListView.vue +++ b/src/views/admins/ImportListView.vue @@ -1,48 +1,70 @@ @@ -65,6 +87,9 @@ export default { this.fetchStudentList(); }, methods: { + indexMethod(index) { + return index + 1 + (this.currentPage - 1) * this.pageSize; // 返回表格序号 + }, async fetchStudentList() { const response = await getPage(this.currentPage, this.pageSize); this.studentList = response.data.data.rows; // 将数据赋值给studentList @@ -86,10 +111,9 @@ export default { this.currentPage = currentPage; this.fetchStudentList(); }, - }, - computed: { - pagedStudentList() { - return this.studentList; // 不需要分页处理,直接返回当前页的列表数据 + handleSizeChange(pageSize) { + this.pageSize = pageSize; + this.fetchStudentList(); }, }, }; -- Gitee