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 @@
-
-
导入学生名单
-
-
- 点击上传
- 导入学生
+
+
+
-
-
-
-
-
-
-
-
+
+ 将文件拖到此处,或点击上传
+
+ 仅允许导入xls、xlsx格式文件。
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
-
+
-
-
\ 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 @@
-
导入学生
+
+ 导入学生
-
-
+
+
+
+ 将文件拖到此处,或点击上传
+
+
+ 仅允许导入xls、xlsx格式文件。
+
+
+
+
-
- 将文件拖到此处,或点击上传
-
- 仅允许导入xls、xlsx格式文件。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
@@ -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