diff --git a/package-lock.json b/package-lock.json index 7c41ee1..c5cb153 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3704,6 +3704,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -12560,6 +12565,35 @@ } } }, + "umy-table": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/umy-table/-/umy-table-1.1.8.tgz", + "integrity": "sha512-yqPMFwZ6MUNqI73KamsNKBTbHRA7VuVZDEWobaySghtf4n/s7INuTNQoADB/ROVK57WOXr99Xpnol0aMqGlASA==", + "requires": { + "async-validator": "~1.8.1", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1", + "vuedraggable": "^2.23.2", + "xe-utils": "^3.0.0-beta.12" + } + }, + "umy-ui": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/umy-ui/-/umy-ui-1.1.6.tgz", + "integrity": "sha512-wX0S29B5sFn8q0MvU9PEl8DGZeQmZXOJlLrwaCJ2UHiIQZCANWgXMBjjQgpaequ1gRZ8BekEu7Sn7hJccm9YMQ==", + "requires": { + "async-validator": "~1.8.1", + "deepmerge": "^1.2.0", + "normalize-wheel": "^1.0.1", + "resize-observer-polyfill": "^1.5.0", + "throttle-debounce": "^1.0.1", + "umy-table": "1.1.8", + "vuedraggable": "^2.23.2", + "xe-utils": "^3.0.0-beta.12" + } + }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", @@ -13735,6 +13769,11 @@ "async-limiter": "~1.0.0" } }, + "xe-utils": { + "version": "3.5.22", + "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.22.tgz", + "integrity": "sha512-rhWuM2fVXsdrqUtyjRAsYTDLvVzYSSZqg/uCRyDqcw96AweB1AWsnTJZyl9g68ejnP0xhxfSoNBSrIcOeX1yxA==" + }, "xml2js": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", diff --git a/package.json b/package.json index 9b96004..c96fc8c 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "babel-polyfill": "^6.26.0", "blueimp-md5": "^2.19.0", "clipboard": "^2.0.11", + "decimal.js": "^10.4.3", "echarts": "^5.4.1", "element-theme": "^2.0.1", "element-ui": "^2.13.0", @@ -27,6 +28,7 @@ "qs": "^6.11.2", "sortablejs": "^1.14.0", "tinymce-plugin": "0.0.3-beta.22", + "umy-ui": "^1.1.6", "vue": "^2.6.10", "vue-codemirror": "^4.0.6", "vue-cropper": "^0.5.8", diff --git a/src/components/Header.vue b/src/components/Header.vue index e4081eb..f6ccb75 100644 --- a/src/components/Header.vue +++ b/src/components/Header.vue @@ -32,6 +32,7 @@ export default { }, mounted () { this.getUserInfo() + this.heartbeatDetection() }, methods: { toPerson () { @@ -83,6 +84,12 @@ export default { // 监听socket消息 this.socket.onmessage = this.getMessage; }, + // 心跳检测 + heartbeatDetection () { + setInterval(async () => { + await this.$get(this.api.heartbeatDetection) + }, 58 * 1000) + }, getUserInfo () { diff --git a/src/setting.js b/src/setting.js index c26c768..bc180b3 100644 --- a/src/setting.js +++ b/src/setting.js @@ -14,8 +14,7 @@ if (isDev) { sandPath = `http://${location.hostname}:9520` host = 'http://121.37.12.51/' // host = 'https://huorantech.cn/' - host = 'http://192.168.31.217:9000/'// 榕 - // host = 'http://192.168.31.51:9000/'// 赓 + host = 'http://192.168.31.217:9000/' } else if (isPro) { jumpPath = 'https://judgment.huorantech.cn/' } diff --git a/src/utils/api.js b/src/utils/api.js index b430574..8719dfe 100644 --- a/src/utils/api.js +++ b/src/utils/api.js @@ -11,6 +11,7 @@ export default { getUserRolesPermissionMenu: `users/users/user-role/getUserRolesPermissionMenu`, deleteProfile : `users/users/userInfo/deleteProfile`, refreshPageNotification : `nakadai/message/refreshPageNotification`, + heartbeatDetection : `nakadai/message/heartbeatDetection`, // 阿里云文件/视频管理 getPlayAuth: `${uploadURL}oss/manage/getPlayAuth`, // 获取播放凭证 diff --git a/src/views/match/manage/matchArchList copy.vue b/src/views/match/manage/matchArchList copy.vue new file mode 100644 index 0000000..b27cddc --- /dev/null +++ b/src/views/match/manage/matchArchList copy.vue @@ -0,0 +1,644 @@ + + + + + + + + + + + + + + 已参加/应参加人数 + {{ isNaN(statData.totalNumber) ? '' : statData.attendance + '/' + statData.totalNumber }} + + + 实验平均分 + {{ avgScore }} + + + + + + + + + {{ item }} + + + + + + + + 上传成绩 + 批量删除 + 导出 + + + {{ loading ? '正在导出' : '批量导出' }} + + + + + + + + {{ scope.$index + (page - 1) * pageSize + 1 }} + + + + + + + + + + {{ scope.row.timeSum ? scope.row.timeSum + 'min' : '--' }} + + + + + {{ scope.row.submitTime || '--' }} + + + + + {{ scope.row.reportId ? '查看成绩报告' : '未参加' }} + 删除 + + + + + + + + + + + + + + {{ scope.$index + (page1 - 1) * pageSize + 1 }} + + + + + + + + + + + + + + + 预览文件 + 导出文件 + + + + + + + + + + + + + + 模板下载 + + + 上传文件 + + 部分数据导入失败,查看失败原因 + + + 取 消 + 确 定 + + + + + + + + \ No newline at end of file diff --git a/src/views/match/manage/matchReport.vue b/src/views/match/manage/matchReport.vue index 70f2700..0c94cb0 100644 --- a/src/views/match/manage/matchReport.vue +++ b/src/views/match/manage/matchReport.vue @@ -173,6 +173,11 @@ + 保存为草稿 确定并发布 @@ -156,34 +158,38 @@ style="margin-bottom: 10px">批量删除 - - - + + + {{ scope.row.sort }} - - - - + + + + - - + + - - + + - - + + @@ -274,39 +280,42 @@ - - - + + + {{ scope.$index + 1 }} - - - + + + 查看 - - + +
已参加/应参加人数
{{ isNaN(statData.totalNumber) ? '' : statData.attendance + '/' + statData.totalNumber }}
实验平均分
{{ avgScore }}