Files
education/frontend/node_modules/.cache/vue-loader/2c0024d0d765b3220eaeed314fa19058.json
T

1 line
15 KiB
JSON

{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\studentRecords\\warningResult\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\studentRecords\\warningResult\\index.vue","mtime":1787314750710},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7CiAgbGlzdFdhcm5pbmdSZXN1bHQsCiAgZ2V0V2FybmluZ1Jlc3VsdAp9IGZyb20gIkAvYXBpL3N0dWRlbnRSZWNvcmRzL3dhcm5pbmdSZXN1bHQiCgpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIldhcm5pbmdSZXN1bHQiLAogIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmn6Xor6LmnaHku7YgPT09PT09PT09PT09PT09PT09PT0KICAgICAgc2VhcmNoRm9ybTogewogICAgICAgIGJoOiAnJywKICAgICAgICBuZDogJycsCiAgICAgICAgeWp0amJoOiAnJywKICAgICAgICB4eWJoOiAnJywKICAgICAgICBmYjogJycKICAgICAgfSwKCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOWIl+ihqOaVsOaNriA9PT09PT09PT09PT09PT09PT09PQogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgdGFibGVEYXRhOiBbXSwKICAgICAgdG90YWw6IDAsCiAgICAgIHBhZ2VOdW06IDEsCiAgICAgIHBhZ2VTaXplOiAyMCwKCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOivpuaDhSA9PT09PT09PT09PT09PT09PT09PQogICAgICB2aWV3RGlhbG9nVmlzaWJsZTogZmFsc2UsCiAgICAgIHZpZXdMb2FkaW5nOiBmYWxzZSwKICAgICAgdmlld0Zvcm06IHt9CiAgICB9CiAgfSwKICBjcmVhdGVkKCkgewogICAgdGhpcy5mZXRjaExpc3QoKQogIH0sCiAgbWV0aG9kczogewogICAgLy8gPT09PT09PT09PT09PT09PT09PT0g5p+l6K+i5YiX6KGoID09PT09PT09PT09PT09PT09PT09CiAgICBmZXRjaExpc3QoKSB7CiAgICAgIHRoaXMubG9hZGluZyA9IHRydWUKICAgICAgY29uc3QgcGFyYW1zID0gewogICAgICAgIHBhZ2VOdW06IHRoaXMucGFnZU51bSwKICAgICAgICBwYWdlU2l6ZTogdGhpcy5wYWdlU2l6ZQogICAgICB9CiAgICAgIC8vIOWPkeW4g++8mjEg5pivIC8gMCDlkKbvvIjpgInkuK3ml7bmiY3kvKDvvIkKICAgICAgaWYgKHRoaXMuc2VhcmNoRm9ybS5mYiAhPT0gJycgJiYgdGhpcy5zZWFyY2hGb3JtLmZiICE9PSBudWxsICYmIHRoaXMuc2VhcmNoRm9ybS5mYiAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgcGFyYW1zLmZiID0gdGhpcy5zZWFyY2hGb3JtLmZiCiAgICAgIH0KICAgICAgLy8g5YW25L2Z5paH5pys5p2h5Lu26Z2e56m65pe25omN5LygCiAgICAgIDtbJ2JoJywgJ25kJywgJ3lqdGpiaCcsICd4eWJoJ10uZm9yRWFjaChrZXkgPT4gewogICAgICAgIGlmICh0aGlzLnNlYXJjaEZvcm1ba2V5XSAhPT0gJycgJiYgdGhpcy5zZWFyY2hGb3JtW2tleV0gIT09IG51bGwgJiYgdGhpcy5zZWFyY2hGb3JtW2tleV0gIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgcGFyYW1zW2tleV0gPSB0aGlzLnNlYXJjaEZvcm1ba2V5XS50cmltKCkKICAgICAgICB9CiAgICAgIH0pCiAgICAgIGxpc3RXYXJuaW5nUmVzdWx0KHBhcmFtcykudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEgfHwge30KICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IGRhdGEucmVjb3JkcyB8fCBbXQogICAgICAgIHRoaXMudG90YWwgPSBkYXRhLnRvdGFsIHx8IDAKICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQogICAgICB9KS5jYXRjaCgoKSA9PiB7CiAgICAgICAgdGhpcy50YWJsZURhdGEgPSBbXQogICAgICAgIHRoaXMudG90YWwgPSAwCiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2UKICAgICAgfSkKICAgIH0sCgogICAgaGFuZGxlU2VhcmNoKCkgewogICAgICB0aGlzLnBhZ2VOdW0gPSAxCiAgICAgIHRoaXMuZmV0Y2hMaXN0KCkKICAgIH0sCgogICAgaGFuZGxlUmVzZXQoKSB7CiAgICAgIHRoaXMuc2VhcmNoRm9ybSA9IHsKICAgICAgICBiaDogJycsCiAgICAgICAgbmQ6ICcnLAogICAgICAgIHlqdGpiaDogJycsCiAgICAgICAgeHliaDogJycsCiAgICAgICAgZmI6ICcnCiAgICAgIH0KICAgICAgdGhpcy5wYWdlTnVtID0gMQogICAgICB0aGlzLmZldGNoTGlzdCgpCiAgICB9LAoKICAgIGhhbmRsZVBhZ2VDaGFuZ2UoY3VycmVudCkgewogICAgICB0aGlzLnBhZ2VOdW0gPSBjdXJyZW50CiAgICAgIHRoaXMuZmV0Y2hMaXN0KCkKICAgIH0sCgogICAgaGFuZGxlU2l6ZUNoYW5nZShzaXplKSB7CiAgICAgIHRoaXMucGFnZVNpemUgPSBzaXplCiAgICAgIHRoaXMucGFnZU51bSA9IDEKICAgICAgdGhpcy5mZXRjaExpc3QoKQogICAgfSwKCiAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDor6bmg4UgPT09PT09PT09PT09PT09PT09PT0KICAgIGhhbmRsZVZpZXcocm93KSB7CiAgICAgIHRoaXMudmlld0RpYWxvZ1Zpc2libGUgPSB0cnVlCiAgICAgIHRoaXMudmlld0xvYWRpbmcgPSB0cnVlCiAgICAgIHRoaXMudmlld0Zvcm0gPSB7fQogICAgICBnZXRXYXJuaW5nUmVzdWx0KHJvdy5iaCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgdGhpcy52aWV3Rm9ybSA9IHJlc3BvbnNlLmRhdGEgfHwge30KICAgICAgICB0aGlzLnZpZXdMb2FkaW5nID0gZmFsc2UKICAgICAgfSkuY2F0Y2goKCkgPT4gewogICAgICAgIHRoaXMudmlld0xvYWRpbmcgPSBmYWxzZQogICAgICB9KQogICAgfSwKCiAgICAvKiog56m65YC85pi+56S65Y2g5L2N56ymICovCiAgICBmb3JtYXRWYWx1ZSh2YWwpIHsKICAgICAgcmV0dXJuIHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHVuZGVmaW5lZCA/IHZhbCA6ICctJwogICAgfQogIH0KfQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4GA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/studentRecords/warningResult","sourcesContent":["<template>\n <div class=\"app-container warning-result-page\">\n <!-- ==================== 1. 查询条件 ==================== -->\n <el-card shadow=\"never\" class=\"search-card\">\n <el-form ref=\"searchFormRef\" :model=\"searchForm\" label-width=\"90px\" class=\"search-form\">\n <el-row :gutter=\"24\">\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"编号\">\n <el-input v-model=\"searchForm.bh\" placeholder=\"请输入预警结果编号\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"年度\">\n <el-input v-model=\"searchForm.nd\" placeholder=\"请输入年度\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"预警条件编号\">\n <el-input v-model=\"searchForm.yjtjbh\" placeholder=\"请输入预警条件编号\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"学员编号\">\n <el-input v-model=\"searchForm.xybh\" placeholder=\"请输入学员编号\" clearable @keyup.enter.native=\"handleSearch\" />\n </el-form-item>\n </el-col>\n <el-col :xs=\"24\" :sm=\"12\" :md=\"12\" :lg=\"8\" :xl=\"8\">\n <el-form-item label=\"发布\">\n <el-select v-model=\"searchForm.fb\" placeholder=\"请选择发布状态\" clearable style=\"width: 100%\">\n <el-option label=\"是\" :value=\"1\" />\n <el-option label=\"否\" :value=\"0\" />\n </el-select>\n </el-form-item>\n </el-col>\n </el-row>\n <el-row class=\"search-actions-row\">\n <el-col :span=\"24\" class=\"search-actions\">\n <el-button type=\"primary\" icon=\"el-icon-search\" @click=\"handleSearch\">查询</el-button>\n <el-button icon=\"el-icon-refresh\" @click=\"handleReset\">重置</el-button>\n </el-col>\n </el-row>\n </el-form>\n </el-card>\n\n <!-- ==================== 2. 列表 ==================== -->\n <el-card shadow=\"never\" class=\"table-card\">\n <div class=\"table-header\">\n <span class=\"table-title\">预警结果列表:</span>\n </div>\n <el-table v-loading=\"loading\" :data=\"tableData\" stripe border highlight-current-row>\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" align=\"center\" />\n <el-table-column prop=\"bh\" label=\"编号\" width=\"100\" show-overflow-tooltip />\n <el-table-column prop=\"nd\" label=\"年度\" width=\"80\" align=\"center\" />\n <el-table-column prop=\"yjtjbh\" label=\"预警条件编号\" min-width=\"140\" show-overflow-tooltip />\n <el-table-column prop=\"xybh\" label=\"学员编号\" min-width=\"140\" show-overflow-tooltip />\n <el-table-column prop=\"cjsj\" label=\"创建时间\" width=\"170\" show-overflow-tooltip />\n <el-table-column label=\"发布\" width=\"80\" align=\"center\">\n <template slot-scope=\"scope\">\n <el-tag :type=\"scope.row.fb === 1 || scope.row.fb === true ? 'success' : 'info'\" size=\"mini\">\n {{ scope.row.fb === 1 || scope.row.fb === true ? '是' : '否' }}\n </el-tag>\n </template>\n </el-table-column>\n <el-table-column prop=\"fbsj\" label=\"发布时间\" width=\"170\" show-overflow-tooltip />\n <el-table-column label=\"操作\" width=\"90\" align=\"center\" fixed=\"right\">\n <template slot-scope=\"scope\">\n <el-button type=\"text\" size=\"small\" icon=\"el-icon-view\" @click=\"handleView(scope.row)\">详情</el-button>\n </template>\n </el-table-column>\n </el-table>\n\n <el-pagination\n :current-page=\"pageNum\"\n :page-size=\"pageSize\"\n :total=\"total\"\n :page-sizes=\"[10, 20, 50, 100]\"\n layout=\"total, sizes, prev, pager, next, jumper\"\n class=\"pagination-wrapper\"\n @current-change=\"handlePageChange\"\n @size-change=\"handleSizeChange\"\n />\n </el-card>\n\n <!-- ==================== 3. 详情对话框 ==================== -->\n <el-dialog title=\"预警结果详情\" :visible.sync=\"viewDialogVisible\" width=\"600px\" :close-on-click-modal=\"false\">\n <div v-loading=\"viewLoading\" class=\"detail-body\">\n <el-descriptions :column=\"2\" border>\n <el-descriptions-item label=\"编号\">{{ viewForm.bh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"年度\">{{ formatValue(viewForm.nd) }}</el-descriptions-item>\n <el-descriptions-item label=\"预警条件编号\">{{ viewForm.yjtjbh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"学员编号\">{{ viewForm.xybh || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"创建时间\">{{ viewForm.cjsj || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"发布时间\">{{ viewForm.fbsj || '-' }}</el-descriptions-item>\n <el-descriptions-item label=\"发布\">\n <el-tag :type=\"viewForm.fb === 1 || viewForm.fb === true ? 'success' : 'info'\" size=\"mini\">\n {{ viewForm.fb === 1 || viewForm.fb === true ? '是' : '否' }}\n </el-tag>\n </el-descriptions-item>\n </el-descriptions>\n </div>\n <div slot=\"footer\" class=\"dialog-footer\">\n <el-button @click=\"viewDialogVisible = false\">关 闭</el-button>\n </div>\n </el-dialog>\n </div>\n</template>\n\n<script>\nimport {\n listWarningResult,\n getWarningResult\n} from \"@/api/studentRecords/warningResult\"\n\nexport default {\n name: \"WarningResult\",\n data() {\n return {\n // ==================== 查询条件 ====================\n searchForm: {\n bh: '',\n nd: '',\n yjtjbh: '',\n xybh: '',\n fb: ''\n },\n\n // ==================== 列表数据 ====================\n loading: false,\n tableData: [],\n total: 0,\n pageNum: 1,\n pageSize: 20,\n\n // ==================== 详情 ====================\n viewDialogVisible: false,\n viewLoading: false,\n viewForm: {}\n }\n },\n created() {\n this.fetchList()\n },\n methods: {\n // ==================== 查询列表 ====================\n fetchList() {\n this.loading = true\n const params = {\n pageNum: this.pageNum,\n pageSize: this.pageSize\n }\n // 发布:1 是 / 0 否(选中时才传)\n if (this.searchForm.fb !== '' && this.searchForm.fb !== null && this.searchForm.fb !== undefined) {\n params.fb = this.searchForm.fb\n }\n // 其余文本条件非空时才传\n ;['bh', 'nd', 'yjtjbh', 'xybh'].forEach(key => {\n if (this.searchForm[key] !== '' && this.searchForm[key] !== null && this.searchForm[key] !== undefined) {\n params[key] = this.searchForm[key].trim()\n }\n })\n listWarningResult(params).then(response => {\n const data = response.data || {}\n this.tableData = data.records || []\n this.total = data.total || 0\n this.loading = false\n }).catch(() => {\n this.tableData = []\n this.total = 0\n this.loading = false\n })\n },\n\n handleSearch() {\n this.pageNum = 1\n this.fetchList()\n },\n\n handleReset() {\n this.searchForm = {\n bh: '',\n nd: '',\n yjtjbh: '',\n xybh: '',\n fb: ''\n }\n this.pageNum = 1\n this.fetchList()\n },\n\n handlePageChange(current) {\n this.pageNum = current\n this.fetchList()\n },\n\n handleSizeChange(size) {\n this.pageSize = size\n this.pageNum = 1\n this.fetchList()\n },\n\n // ==================== 详情 ====================\n handleView(row) {\n this.viewDialogVisible = true\n this.viewLoading = true\n this.viewForm = {}\n getWarningResult(row.bh).then(response => {\n this.viewForm = response.data || {}\n this.viewLoading = false\n }).catch(() => {\n this.viewLoading = false\n })\n },\n\n /** 空值显示占位符 */\n formatValue(val) {\n return val !== null && val !== undefined ? val : '-'\n }\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n.warning-result-page {\n .search-card {\n margin-bottom: 16px;\n }\n\n .search-form {\n ::v-deep .el-form-item {\n margin-bottom: 18px;\n }\n\n .search-actions-row {\n margin-top: 2px;\n border-top: 1px dashed #ebeef5;\n padding-top: 14px;\n }\n\n .search-actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 12px;\n }\n }\n\n .table-card {\n .table-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 16px;\n\n .table-title {\n font-size: 16px;\n font-weight: 600;\n color: #303133;\n }\n }\n\n .pagination-wrapper {\n display: flex;\n justify-content: flex-end;\n margin-top: 16px;\n }\n }\n}\n</style>\n"]}]}