diff --git a/package-lock.json b/package-lock.json index e7a28a2..ff21ee9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -851,7 +851,6 @@ "version": "4.17.12", "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz", "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", - "peer": true, "dependencies": { "@types/lodash": "*" } @@ -874,7 +873,6 @@ "version": "2.3.4", "resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz", "integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==", - "peer": true, "dependencies": { "@transloadit/prettier-bytes": "0.0.7", "@uppy/store-default": "^2.1.1", @@ -903,7 +901,6 @@ "version": "2.1.3", "resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz", "integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==", - "peer": true, "dependencies": { "@uppy/companion-client": "^2.2.2", "@uppy/utils": "^4.1.2", @@ -1058,7 +1055,6 @@ "version": "1.1.7", "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz", "integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==", - "peer": true, "dependencies": { "is-url": "^1.2.4" }, @@ -1089,7 +1085,6 @@ "version": "1.1.19", "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz", "integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==", - "peer": true, "dependencies": { "@types/event-emitter": "^0.3.3", "event-emitter": "^0.3.5", @@ -1119,7 +1114,6 @@ "version": "5.1.23", "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz", "integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==", - "peer": true, "dependencies": { "@uppy/core": "^2.1.1", "@uppy/xhr-upload": "^2.0.3", @@ -1476,7 +1470,6 @@ "version": "11.13.1", "resolved": "https://registry.npmmirror.com/diagram-js/-/diagram-js-11.13.1.tgz", "integrity": "sha512-6kO0rBN6aBIQiMELfv1oX2Ohes/brlIPuOVZUYAioeWM0EyuazhAXgHeq8iKFt29daU9NGRr4n78esGx8QjtjQ==", - "peer": true, "dependencies": { "@bpmn-io/diagram-js-ui": "^0.2.2", "clsx": "^1.2.1", @@ -1514,7 +1507,6 @@ "version": "3.0.0", "resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz", "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", - "peer": true, "dependencies": { "ssr-window": "^3.0.0-alpha.1" } @@ -1540,7 +1532,6 @@ "version": "2.7.3", "resolved": "https://registry.npmjs.org/element-plus/-/element-plus-2.7.3.tgz", "integrity": "sha512-OaqY1kQ2xzNyRFyge3fzM7jqMwux+464RBEqd+ybRV9xPiGxtgnj/sVK4iEbnKnzQIa9XK03DOIFzoToUhu1DA==", - "peer": true, "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.3.1", @@ -1866,8 +1857,7 @@ "node_modules/is-hotkey": { "version": "0.2.0", "resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz", - "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==", - "peer": true + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" }, "node_modules/is-number": { "version": "7.0.0", @@ -1942,14 +1932,12 @@ "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "peer": true + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, "node_modules/lodash-es": { "version": "4.17.21", "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==", - "peer": true + "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, "node_modules/lodash-unified": { "version": "1.0.3", @@ -1964,44 +1952,37 @@ "node_modules/lodash.camelcase": { "version": "4.3.0", "resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", - "peer": true + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" }, "node_modules/lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==", - "peer": true + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" }, "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "peer": true + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" }, "node_modules/lodash.foreach": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz", - "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", - "peer": true + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" }, "node_modules/lodash.isequal": { "version": "4.5.0", "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "peer": true + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" }, "node_modules/lodash.throttle": { "version": "4.1.1", "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==", - "peer": true + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" }, "node_modules/lodash.toarray": { "version": "4.4.0", "resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==", - "peer": true + "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" }, "node_modules/magic-string": { "version": "0.30.10", @@ -2116,7 +2097,6 @@ "url": "https://github.com/sponsors/ai" } ], - "peer": true, "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -2308,7 +2288,6 @@ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", "dev": true, - "peer": true, "dependencies": { "@types/estree": "1.0.5" }, @@ -2367,7 +2346,6 @@ "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz", "integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==", "dev": true, - "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -2403,7 +2381,6 @@ "version": "0.72.8", "resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz", "integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==", - "peer": true, "dependencies": { "immer": "^9.0.6", "is-plain-object": "^5.0.0", @@ -2425,7 +2402,6 @@ "version": "3.5.1", "resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.5.1.tgz", "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==", - "peer": true, "engines": { "node": ">=8.3.0" } @@ -2623,7 +2599,6 @@ "resolved": "https://registry.npmjs.org/vite/-/vite-5.2.12.tgz", "integrity": "sha512-/gC8GxzxMK5ntBwb48pR32GGhENnjtY30G4A0jemunsBkiEZFw60s8InGpN8gkhHEkjnRK1aSAxeQgwvFhUHAA==", "dev": true, - "peer": true, "dependencies": { "esbuild": "^0.20.1", "postcss": "^8.4.38", @@ -2791,7 +2766,6 @@ "version": "3.4.27", "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz", "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.4.27", "@vue/compiler-sfc": "3.4.27", diff --git a/src/api/martial/activitySchedule.js b/src/api/martial/activitySchedule.js index 866aea4..81ddcf2 100644 --- a/src/api/martial/activitySchedule.js +++ b/src/api/martial/activitySchedule.js @@ -183,3 +183,16 @@ export const saveDispatch = (data) => { data }) } + +/** + * 导出赛程表 + * @param {Number} competitionId - 赛事ID + */ +export const exportSchedule = (competitionId) => { + return request({ + url: '/martial/export/schedule', + method: 'get', + params: { competitionId }, + responseType: 'blob' + }) +} diff --git a/src/axios.js b/src/axios.js index 7d9b5e5..e24edb9 100644 --- a/src/axios.js +++ b/src/axios.js @@ -98,6 +98,10 @@ axios.interceptors.request.use( axios.interceptors.response.use( res => { NProgress.done(); + // 如果是 blob 类型响应(文件下载),直接返回 + if (res.config.responseType === 'blob') { + return res; + } const status = res.data.code || res.status; const statusWhiteList = website.statusWhiteList || []; const message = res.data.msg || res.data.error_description || '系统错误'; diff --git a/src/views/martial/order/index.vue b/src/views/martial/order/index.vue index 60b8c4f..5249277 100644 --- a/src/views/martial/order/index.vue +++ b/src/views/martial/order/index.vue @@ -181,13 +181,13 @@ export default { try { const res = await getScheduleResult(competition.id) if (res.data?.data) { - this.$set(this.scheduleStatusMap, competition.id, res.data.data.isCompleted || false) + this.scheduleStatusMap[competition.id] = res.data.data.isCompleted || false } else { - this.$set(this.scheduleStatusMap, competition.id, false) + this.scheduleStatusMap[competition.id] = false } } catch (err) { // 如果获取失败,默认为未完成 - this.$set(this.scheduleStatusMap, competition.id, false) + this.scheduleStatusMap[competition.id] = false } } }, diff --git a/src/views/martial/order/index.vue.bak b/src/views/martial/order/index.vue.bak new file mode 100644 index 0000000..60b8c4f --- /dev/null +++ b/src/views/martial/order/index.vue.bak @@ -0,0 +1,355 @@ + + + + + diff --git a/src/views/martial/participant/index.vue b/src/views/martial/participant/index.vue index b260bb8..6698c76 100644 --- a/src/views/martial/participant/index.vue +++ b/src/views/martial/participant/index.vue @@ -94,11 +94,14 @@ + > + + +
+ +
+ +
+

参赛选手管理

+ + 添加选手 + +
+ + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
+ + + + + +
+
+ + 基本信息 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + 赛事信息 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ + 其他信息 +
+ + + + + + + + +
+
+
+
+
+ + + + + diff --git a/src/views/martial/schedule/index.vue b/src/views/martial/schedule/index.vue index 1accdb9..814bbd9 100644 --- a/src/views/martial/schedule/index.vue +++ b/src/views/martial/schedule/index.vue @@ -71,71 +71,176 @@ -
-
-
- {{ group.title }} - {{ group.type }} - {{ group.count }} - {{ group.code }} + +
+ +
+
+ + + + + + {{ groupIndex + 1 }}、 + {{ group.title }} + {{ group.type }} + {{ getTeamCount(group) }}队 + {{ group.items?.length || 0 }}组 + {{ group.code }}
-
- - 移动 - +
+ + +
+
移动到
+ + + + 移动 +
+
- - - - - - - - - - + {{ playerIndex + 1 }} + {{ player.playerName }} + + + {{ player.status || '未签到' }} + + + + + 标记异常 + + + 取消异常 + + +
+
+
+
+ +
+
+ + {{ venue.venueName }} + +
+ 暂无场地信息,请先在赛事管理中配置场地 +
+
+
+
+ + diff --git a/src/views/martial/score/index.vue b/src/views/martial/score/index.vue index 253721c..b49a9e2 100644 --- a/src/views/martial/score/index.vue +++ b/src/views/martial/score/index.vue @@ -154,6 +154,11 @@
总分: {{ formatScore(currentDetail.totalScore) }} +
+ + (去掉最高分和最低分后的平均分) + +
@@ -182,96 +187,6 @@ export default { projectOptions: [], venueOptions: [], scoreList: [], - allTableData: [ - { - id: 1, - projectName: '男子组陈氏太极拳', - venueName: '第一场地', - playerName: '张三', - teamName: '少林寺武术大学院', - idCard: '123456789000000000', - playerNo: '123-4567898275', - judgeScores: [8.906, 8.905, 8.908, 8.907, 8.906], - totalScore: 8.907 - }, - { - id: 2, - projectName: '女子组长拳', - venueName: '第一场地', - playerName: '李四', - teamName: '武当武术学院', - idCard: '123456789000000001', - playerNo: '123-4567898276', - judgeScores: [9.125, 9.130, 9.128, 9.126, 9.129], - totalScore: 9.128 - }, - { - id: 3, - projectName: '男子组陈氏太极拳', - venueName: '第二场地', - playerName: '王五', - teamName: '峨眉武术协会', - idCard: '123456789000000002', - playerNo: '123-4567898277', - judgeScores: [8.550, 8.548, 8.552, 8.551, 8.549], - totalScore: 8.550 - }, - { - id: 4, - projectName: '女子组双剑(含长穗双剑)', - venueName: '第一场地', - playerName: '赵六', - teamName: '昆仑武术馆', - idCard: '123456789000000003', - playerNo: '123-4567898278', - judgeScores: [9.245, 9.248, 9.246, 9.247, 9.249], - totalScore: 9.247 - }, - { - id: 5, - projectName: '男子组杨氏太极拳', - venueName: '第三场地', - playerName: '孙七', - teamName: '华山武术学校', - idCard: '123456789000000004', - playerNo: '123-4567898279', - judgeScores: [8.785, 8.788, 8.786, 8.787, 8.785], - totalScore: 8.786 - }, - { - id: 6, - projectName: '女子组刀术', - venueName: '第二场地', - playerName: '周八', - teamName: '少林寺武术大学院', - idCard: '123456789000000005', - playerNo: '123-4567898280', - judgeScores: [8.925, 8.928, 8.926, 8.927, 8.925], - totalScore: 8.926 - }, - { - id: 7, - projectName: '男子组棍术', - venueName: '第四场地', - playerName: '吴九', - teamName: '武当武术学院', - idCard: '123456789000000006', - playerNo: '123-4567898281', - judgeScores: [9.015, 9.018, 9.016, 9.017, 9.015], - totalScore: 9.016 - }, - { - id: 8, - projectName: '女子组枪术', - venueName: '第三场地', - playerName: '郑十', - teamName: '峨眉武术协会', - idCard: '123456789000000007', - playerNo: '123-4567898282', - judgeScores: [8.665, 8.668, 8.666, 8.667, 8.665], - totalScore: 8.666 - } - ], tableData: [], pagination: { current: 1, @@ -345,25 +260,22 @@ export default { try { const res = await getScoreList(this.pagination.current, this.pagination.size, params) console.log('评分列表返回数据:', res) - console.log('===== 调试:后端返回的数据结构 =====') + const responseData = res.data?.data - if (responseData && responseData.records && responseData.records.length > 0) { - console.log('第一条评分记录:', responseData.records[0]) - console.log('记录字段:', Object.keys(responseData.records[0])) - console.log('是否包含 projectName:', 'projectName' in responseData.records[0]) - console.log('是否包含 venueName:', 'venueName' in responseData.records[0]) - console.log('是否包含 playerName:', 'playerName' in responseData.records[0]) - console.log('projectId 值:', responseData.records[0].projectId) - console.log('venueId 值:', responseData.records[0].venueId) - console.log('athleteId 值:', responseData.records[0].athleteId) - } - console.log('======================================') - if (responseData && responseData.records) { - this.scoreList = responseData.records + // 过滤掉 projectId 为 null 的无效记录 + const validScores = responseData.records.filter(score => { + if (!score.projectId) { + console.warn('发现无效评分记录(projectId为空):', score) + return false + } + return true + }) + + this.scoreList = validScores // 补充关联数据(项目名称、场地名称、选手名称) - await this.enrichScoreData(responseData.records) + await this.enrichScoreData(validScores) // 按选手分组评分数据 this.processScoreData(this.scoreList) @@ -466,6 +378,12 @@ export default { const athleteMap = new Map() scores.forEach(score => { + // 确保 projectId 存在 + if (!score.projectId) { + console.warn('跳过无效评分记录:', score) + return + } + const key = `${score.athleteId}-${score.projectId}` if (!athleteMap.has(key)) { athleteMap.set(key, { @@ -495,11 +413,10 @@ export default { }) }) - // 计算总分(平均分) + // 计算总分(去掉最高最低分后的平均分) this.tableData = Array.from(athleteMap.values()).map(athlete => { if (athlete.judgeScores.length > 0) { - const sum = athlete.judgeScores.reduce((a, b) => a + b, 0) - athlete.totalScore = sum / athlete.judgeScores.length + athlete.totalScore = this.calculateFinalScore(athlete.judgeScores) } return athlete }) @@ -516,6 +433,34 @@ export default { this.judgeColumns = Array(maxJudges).fill(null) }, + /** + * 计算最终得分 + * 规则: + * - 如果裁判数 <= 2,直接取平均值 + * - 如果裁判数 > 2,去掉最高分和最低分后取平均值 + */ + calculateFinalScore(scores) { + if (!scores || scores.length === 0) { + return 0 + } + + // 如果只有1-2个裁判,直接取平均值 + if (scores.length <= 2) { + const sum = scores.reduce((a, b) => a + b, 0) + return sum / scores.length + } + + // 3个及以上裁判,去掉最高分和最低分 + const sortedScores = [...scores].sort((a, b) => a - b) + + // 去掉第一个(最低分)和最后一个(最高分) + const validScores = sortedScores.slice(1, -1) + + // 计算平均值 + const sum = validScores.reduce((a, b) => a + b, 0) + return sum / validScores.length + }, + // 查询 handleSearch() { this.pagination.current = 1 @@ -663,6 +608,12 @@ export default { font-weight: 700; color: #1b7c5e; } + + .calculation-note { + margin-top: 8px; + font-size: 12px; + color: #999; + } } } }