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

1 line
56 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{"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\\assessment\\index.vue?vue&type=style&index=0&id=d7c40642&scoped=true&lang=scss","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\assessment\\index.vue","mtime":1787534068869},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\css-loader\\dist\\cjs.js","mtime":1787309792478},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1787309794547},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\postcss-loader\\src\\index.js","mtime":1787309793084},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\sass-loader\\dist\\cjs.js","mtime":1787309791955},{"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:CgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoNCi5hcHAtY29udGFpbmVyIHsNCiAgcGFkZGluZzogMjBweDsNCn0NCg0KLmFzc2Vzc21lbnQtcGFnZSB7DQogIC5hc3Nlc3NtZW50LXRhYnMgew0KICAgIGJhY2tncm91bmQ6ICNmZmY7DQogIH0NCg0KICAvLyA9PT09PT09PT09PT09PT09PT09PSDmn6Xor6LmnaHku7bljLrln58gPT09PT09PT09PT09PT09PT09PT0NCiAgLnNlYXJjaC1jYXJkIHsNCiAgICBtYXJnaW4tYm90dG9tOiAxNnB4Ow0KDQogICAgLnNlYXJjaC1mb3JtIHsNCiAgICAgIC53LWZ1bGwgew0KICAgICAgICB3aWR0aDogMTAwJTsNCiAgICAgIH0NCg0KICAgICAgLmRhdGUtYmxvY2sgew0KICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47DQogICAgICAgIGdhcDogMTZweDsNCiAgICAgICAgZmxleC13cmFwOiB3cmFwOw0KDQogICAgICAgIC5kYXRlLXJhbmdlIHsNCiAgICAgICAgICBkaXNwbGF5OiBmbGV4Ow0KICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgICAgZ2FwOiA2cHg7DQogICAgICAgICAgZmxleC13cmFwOiB3cmFwOw0KICAgICAgICB9DQoNCiAgICAgICAgLnF1aWNrLXJvdyB7DQogICAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOw0KICAgICAgICAgIGdhcDogOHB4Ow0KICAgICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCg0KICAgICAgICAgIC5xdWljay1zZWxlY3Qgew0KICAgICAgICAgICAgd2lkdGg6IDE3MHB4Ow0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KDQogICAgICAudGVhbS1maWVsZCB7DQogICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7DQogICAgICAgIGdhcDogOHB4Ow0KDQogICAgICAgIC5lbC1zZWxlY3Qgew0KICAgICAgICAgIGZsZXg6IDE7DQogICAgICAgICAgbWluLXdpZHRoOiAwOw0KICAgICAgICB9DQoNCiAgICAgICAgLmVsZWN0aXZlLWNoZWNrIHsNCiAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOw0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIC5yYW5nZS1jb250cm9sIHsNCiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsNCiAgICAgICAgZ2FwOiA2cHg7DQoNCiAgICAgICAgLmVsLWlucHV0IHsNCiAgICAgICAgICBmbGV4OiAxOw0KICAgICAgICB9DQoNCiAgICAgICAgLmVsLWRhdGUtZWRpdG9yIHsNCiAgICAgICAgICBmbGV4OiAxOw0KICAgICAgICAgIG1pbi13aWR0aDogMTIwcHg7DQogICAgICAgIH0NCg0KICAgICAgICAucmFuZ2Utc2VwLA0KICAgICAgICAucmFuZ2Utc3VmZml4IHsNCiAgICAgICAgICBmbGV4LXNocmluazogMDsNCiAgICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgICAgY29sb3I6ICM2MDYyNjY7DQogICAgICAgIH0NCiAgICAgIH0NCg0KICAgICAgLnNlYXJjaC10aXAgew0KICAgICAgICBmb250LXNpemU6IDEycHg7DQogICAgICAgIGNvbG9yOiAjZjU2YzZjOw0KICAgICAgICBtYXJnaW4tdG9wOiA0cHg7DQogICAgICAgIG1hcmdpbi1ib3R0b206IDRweDsNCiAgICAgIH0NCg0KICAgICAgLnNlYXJjaC1hY3Rpb25zIHsNCiAgICAgICAgZGlzcGxheTogZmxleDsNCiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsNCiAgICAgICAgbWFyZ2luLXRvcDogOHB4Ow0KICAgICAgICBwYWRkaW5nLXRvcDogMTJweDsNCiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlYmVlZjU7DQogICAgICB9DQogICAgfQ0KICB9DQoNCiAgLy8gPT09PT09PT09PT09PT09PT09PT0gVGFiMiDpobbpg6jmj5DnpLogLyDmoIfpopggLyDlr7zlh7ogPT09PT09PT09PT09PT09PT09PT0NCiAgLnN0YXR1cy10aXAgew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsNCiAgICBiYWNrZ3JvdW5kOiAjZGMzNTQ1Ow0KICAgIGNvbG9yOiAjZmZmOw0KICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICBwYWRkaW5nOiAzcHggMTBweDsNCiAgICBib3JkZXItcmFkaXVzOiA0cHg7DQogICAgbWFyZ2luLWJvdHRvbTogMTJweDsNCiAgfQ0KDQogIC5iaWctdGl0bGUgew0KICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICBmb250LXNpemU6IDIwcHg7DQogICAgZm9udC13ZWlnaHQ6IDcwMDsNCiAgICBjb2xvcjogIzMwMzEzMzsNCiAgICBtYXJnaW46IDhweCAwIDEycHg7DQogIH0NCg0KICAuZXhwb3J0LWJhciB7DQogICAgZGlzcGxheTogZmxleDsNCiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOw0KICAgIGdhcDogMTJweDsNCiAgICBtYXJnaW4tYm90dG9tOiAxNnB4Ow0KICB9DQoNCiAgLy8gPT09PT09PT09PT09PT09PT09PT0g5pWw5o2u6KGo5qC85Yy65Z+fID09PT09PT09PT09PT09PT09PT09DQogIC50YWJsZS1jYXJkIHsNCiAgICAudGFibGUtdGl0bGUgew0KICAgICAgZm9udC1zaXplOiAxNnB4Ow0KICAgICAgZm9udC13ZWlnaHQ6IDYwMDsNCiAgICAgIGNvbG9yOiAjMzAzMTMzOw0KICAgICAgbWFyZ2luLWJvdHRvbTogMTJweDsNCiAgICB9DQoNCiAgICAuYWN0aW9uLWJhciB7DQogICAgICAuYWN0aW9uLXJvdyB7DQogICAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICAgIGZsZXgtd3JhcDogd3JhcDsNCiAgICAgICAgZ2FwOiAxMHB4Ow0KICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4Ow0KDQogICAgICAgICY6bGFzdC1jaGlsZCB7DQogICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTRweDsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgIH0NCg0KICAgIC5tYWluLXRhYmxlIHsNCiAgICAgIDo6di1kZWVwKC5jZWxsKSB7DQogICAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgIH0NCiAgICB9DQoNCiAgICAudHdvLWxpbmUtaGVhZGVyLA0KICAgIC50d28tbGluZS1jZWxsIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KICAgICAgbGluZS1oZWlnaHQ6IDEuNDsNCiAgICB9DQoNCiAgICAucGFnaW5hdGlvbi13cmFwIHsNCiAgICAgIGRpc3BsYXk6IGZsZXg7DQogICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kOw0KICAgICAgbWFyZ2luLXRvcDogMTJweDsNCiAgICB9DQogIH0NCn0NCg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAusBA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/assessment","sourcesContent":["<template>\r\n <div class=\"app-container assessment-page\">\r\n <el-tabs v-model=\"activeTab\" type=\"border-card\" class=\"assessment-tabs\">\r\n <!-- ==================== Tab1:课程表信息列表 ==================== -->\r\n <el-tab-pane label=\"课程表信息列表\" name=\"schedule\">\r\n <!-- 查询条件 -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form :model=\"scheduleSearchForm\" label-width=\"160px\" class=\"search-form\">\r\n <!-- 考核日期:独立整行 -->\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"24\">\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.examDateEnabled\">考核日期</el-checkbox>\r\n </template>\r\n <div class=\"date-block\">\r\n <div class=\"date-range\">\r\n <span>从</span>\r\n <el-date-picker\r\n v-model=\"scheduleSearchForm.examDateFrom\"\r\n type=\"date\"\r\n value-format=\"yyyy-MM-dd\"\r\n :disabled=\"!scheduleSearchForm.examDateEnabled\"\r\n />\r\n <span>到</span>\r\n <el-date-picker\r\n v-model=\"scheduleSearchForm.examDateTo\"\r\n type=\"date\"\r\n value-format=\"yyyy-MM-dd\"\r\n :disabled=\"!scheduleSearchForm.examDateEnabled\"\r\n />\r\n </div>\r\n <div class=\"quick-row\">\r\n <el-select v-model=\"scheduleSearchForm.semester\" class=\"quick-select\">\r\n <el-option v-for=\"item in semesterOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n <el-button size=\"small\" @click=\"handleQuickDate('semester')\">确定</el-button>\r\n <el-select v-model=\"scheduleSearchForm.week\" class=\"quick-select\">\r\n <el-option v-for=\"item in weekOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n <el-button size=\"small\" @click=\"handleQuickDate('week')\">确定</el-button>\r\n </div>\r\n </div>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"0\">\r\n <!-- 左栏 -->\r\n <el-col :span=\"12\">\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.deptEnabled\">教研室</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.dept\" class=\"w-full\" :disabled=\"!scheduleSearchForm.deptEnabled\">\r\n <el-option v-for=\"item in deptOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.buildingEnabled\">教学楼</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.building\" class=\"w-full\" :disabled=\"!scheduleSearchForm.buildingEnabled\">\r\n <el-option v-for=\"item in buildingOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"培训层次\">\r\n <el-select v-model=\"scheduleSearchForm.trainLevel\" placeholder=\"请选择\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in trainLevelOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.deptSystemEnabled\">监考教员所属院部系</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.deptSystem\" class=\"w-full\" :disabled=\"!scheduleSearchForm.deptSystemEnabled\">\r\n <el-option v-for=\"item in deptOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.resourceTypeEnabled\">保障资源类别</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.resourceType\" class=\"w-full\" :disabled=\"!scheduleSearchForm.resourceTypeEnabled\">\r\n <el-option v-for=\"item in resourceTypeOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.periodEnabled\">节次</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.period\" class=\"w-full\" :disabled=\"!scheduleSearchForm.periodEnabled\">\r\n <el-option v-for=\"item in periodOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.combineEnabled\">合堂选项</el-checkbox>\r\n </template>\r\n <el-checkbox v-model=\"scheduleSearchForm.combineChange\" :disabled=\"!scheduleSearchForm.combineEnabled\">合堂变动</el-checkbox>\r\n </el-form-item>\r\n <el-form-item label=\"专业名称\">\r\n <el-input v-model=\"scheduleSearchForm.majorName\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"监考教员姓名\">\r\n <el-input v-model=\"scheduleSearchForm.invigilatorName\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"考核场地名称\">\r\n <el-input v-model=\"scheduleSearchForm.examPlaceName\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n\r\n <!-- 右栏 -->\r\n <el-col :span=\"12\">\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.invigilatorEnabled\">监考教员</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.invigilator\" class=\"w-full\" :disabled=\"!scheduleSearchForm.invigilatorEnabled\">\r\n <el-option v-for=\"item in invigilatorOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.examSubjectEnabled\">考核科目</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.examSubject\" class=\"w-full\" :disabled=\"!scheduleSearchForm.examSubjectEnabled\">\r\n <el-option v-for=\"item in subjectOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.placeEnabled\">教学场地</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.place\" class=\"w-full\" :disabled=\"!scheduleSearchForm.placeEnabled\">\r\n <el-option v-for=\"item in placeOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.teamEnabled\">班次</el-checkbox>\r\n </template>\r\n <div class=\"team-field\">\r\n <el-select v-model=\"scheduleSearchForm.team\" placeholder=\"请选择\" :disabled=\"!scheduleSearchForm.teamEnabled\">\r\n <el-option v-for=\"item in teamOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n <el-checkbox v-model=\"scheduleSearchForm.showElective\" class=\"elective-check\">显示选修课临时班</el-checkbox>\r\n </div>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.teamCategoryEnabled\">队别</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.teamCategory\" class=\"w-full\" :disabled=\"!scheduleSearchForm.teamCategoryEnabled\">\r\n <el-option v-for=\"item in teamCategoryOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.resourceEnabled\">保障资源</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.resource\" class=\"w-full\" :disabled=\"!scheduleSearchForm.resourceEnabled\">\r\n <el-option v-for=\"item in resourceOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.manageOrgEnabled\">管理机构</el-checkbox>\r\n </template>\r\n <el-select v-model=\"scheduleSearchForm.manageOrg\" class=\"w-full\" :disabled=\"!scheduleSearchForm.manageOrgEnabled\">\r\n <el-option v-for=\"item in manageOrgOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"scheduleSearchForm.logOptionEnabled\">日志填写选项</el-checkbox>\r\n </template>\r\n <el-radio-group v-model=\"scheduleSearchForm.logOption\" :disabled=\"!scheduleSearchForm.logOptionEnabled\">\r\n <el-radio :label=\"'已填写'\">已填写</el-radio>\r\n <el-radio :label=\"'未填写'\">未填写</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"年级\">\r\n <el-input v-model=\"scheduleSearchForm.gradeInput\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"队别班次名称\">\r\n <el-input v-model=\"scheduleSearchForm.teamClassName\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"科目名称\">\r\n <el-input v-model=\"scheduleSearchForm.subjectName\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <div class=\"search-actions\">\r\n <el-button type=\"primary\" @click=\"handleScheduleQuery\">查询</el-button>\r\n </div>\r\n </el-form>\r\n </el-card>\r\n\r\n <!-- 操作与列表区域 -->\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <div class=\"table-title\">课程表信息列表</div>\r\n <div class=\"action-bar\">\r\n <div class=\"action-row\">\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleScheduleBatch('批量设置备注信息')\">批量设置备注信息</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleScheduleBatch('批量变更时间')\">批量变更时间</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleScheduleBatch('批量平移时间')\">批量平移时间</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleScheduleBatch('批量变更授课教员')\">批量变更授课教员</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleScheduleBatch('批量变更授课场地')\">批量变更授课场地</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleExport('班次课程课时汇总')\">班次课程课时汇总另存</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleExport('教学实施计划概要')\">教学实施计划概要另存</el-button>\r\n <el-button type=\"primary\" size=\"small\" @click=\"handleExport('教学实施计划')\">教学实施计划另存</el-button>\r\n </div>\r\n <div class=\"action-row\">\r\n <el-button type=\"danger\" size=\"small\" @click=\"handleScheduleBatchDelete\">批量删除</el-button>\r\n </div>\r\n </div>\r\n <el-table v-loading=\"scheduleLoading\" :data=\"schedulePagedData\" border stripe class=\"main-table\" @selection-change=\"handleScheduleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"50\" />\r\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" align=\"center\" />\r\n <el-table-column prop=\"time\" label=\"上课时间\" width=\"150\" align=\"center\" />\r\n <el-table-column prop=\"course\" label=\"课程\" width=\"110\" show-overflow-tooltip />\r\n <el-table-column prop=\"deptUnit\" label=\"责任单位\" width=\"120\" show-overflow-tooltip />\r\n <el-table-column prop=\"teamCategory\" label=\"队别\" width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"teamClass\" label=\"班次\" show-overflow-tooltip />\r\n <el-table-column prop=\"grade\" label=\"年级\" width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"major\" label=\"专业\" width=\"100\" show-overflow-tooltip />\r\n <el-table-column prop=\"teacher\" label=\"教员\" width=\"80\" align=\"center\" />\r\n <el-table-column prop=\"countPlace\" label=\"人数/场地\" width=\"110\" align=\"center\" />\r\n <el-table-column prop=\"contentMethod\" label=\"教学内容方法\" width=\"110\" show-overflow-tooltip />\r\n <el-table-column prop=\"keyPoints\" label=\"教学要点\" width=\"100\" show-overflow-tooltip />\r\n <el-table-column prop=\"guarantee\" label=\"保障明细\" width=\"110\" show-overflow-tooltip />\r\n <el-table-column prop=\"remark\" label=\"备注\" width=\"90\" show-overflow-tooltip />\r\n </el-table>\r\n <div class=\"pagination-wrap\">\r\n <el-pagination\r\n background\r\n layout=\"total, prev, pager, next, jumper\"\r\n :total=\"scheduleData.length\"\r\n :page-size=\"schedulePageSize\"\r\n :current-page=\"scheduleCurrentPage\"\r\n @current-change=\"handleSchedulePageChange\"\r\n />\r\n </div>\r\n </el-card>\r\n </el-tab-pane>\r\n\r\n <!-- ==================== Tab2:课程检索 ==================== -->\r\n <el-tab-pane label=\"课程检索\" name=\"search\">\r\n <div v-if=\"statusTip\" class=\"status-tip\">{{ statusTip }}</div>\r\n <div class=\"export-bar\">\r\n <el-button type=\"primary\" @click=\"handleExport('另存Excel(成绩五级制)')\">另存Excel(成绩五级制)</el-button>\r\n <el-button type=\"primary\" @click=\"handleExport('另存Excel(成绩四级制)')\">另存Excel(成绩四级制)</el-button>\r\n <el-button type=\"primary\" @click=\"handleExport('课程学员名单')\">课程学员名单</el-button>\r\n </div>\r\n\r\n <!-- 查询条件 -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form :model=\"courseSearchForm\" label-width=\"130px\" class=\"search-form\">\r\n <el-row :gutter=\"0\">\r\n <!-- 左栏 -->\r\n <el-col :span=\"12\">\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.deptEnabled\">责任教研室</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.dept\" class=\"w-full\" :disabled=\"!courseSearchForm.deptEnabled\">\r\n <el-option v-for=\"item in deptOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.courseTypeEnabled\">课类型</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.courseType\" class=\"w-full\" :disabled=\"!courseSearchForm.courseTypeEnabled\">\r\n <el-option v-for=\"item in courseTypeOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"培训层次\">\r\n <el-select v-model=\"courseSearchForm.trainLevel\" placeholder=\"请选择\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in trainLevelOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.teamEnabled\">队别(班次)</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.team\" class=\"w-full\" :disabled=\"!courseSearchForm.teamEnabled\">\r\n <el-option v-for=\"item in teamOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"学分\">\r\n <div class=\"range-control\">\r\n <el-input v-model=\"courseSearchForm.creditMin\" placeholder=\"0\" />\r\n <span class=\"range-sep\">至</span>\r\n <el-input v-model=\"courseSearchForm.creditMax\" placeholder=\"0\" />\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"计划学时\">\r\n <div class=\"range-control\">\r\n <el-input v-model=\"courseSearchForm.planHoursMin\" placeholder=\"0\" />\r\n <span class=\"range-sep\">至</span>\r\n <el-input v-model=\"courseSearchForm.planHoursMax\" placeholder=\"0\" />\r\n </div>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.arrangeStatusEnabled\">考核安排状态</el-checkbox>\r\n </template>\r\n <el-radio-group v-model=\"courseSearchForm.arrangeStatus\" :disabled=\"!courseSearchForm.arrangeStatusEnabled\">\r\n <el-radio :label=\"'已安排'\">已安排</el-radio>\r\n <el-radio :label=\"'未安排'\">未安排</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n <el-form-item label=\"教员\">\r\n <el-input v-model=\"courseSearchForm.teacher\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"队别班次\">\r\n <el-input v-model=\"courseSearchForm.teamClass\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.scoreStatusEnabled\">成绩录入状态</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.scoreStatus\" class=\"w-full\" :disabled=\"!courseSearchForm.scoreStatusEnabled\">\r\n <el-option v-for=\"item in scoreStatusOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"形成性成绩比例\">\r\n <div class=\"range-control\">\r\n <el-input v-model=\"courseSearchForm.formaScoreMin\" placeholder=\"0\" />\r\n <span class=\"range-suffix\">%</span>\r\n <span class=\"range-sep\">至</span>\r\n <el-input v-model=\"courseSearchForm.formaScoreMax\" placeholder=\"0\" />\r\n <span class=\"range-suffix\">%</span>\r\n </div>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <!-- 右栏 -->\r\n <el-col :span=\"12\">\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.implTeacherEnabled\">实施教员</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.implTeacher\" class=\"w-full\" :disabled=\"!courseSearchForm.implTeacherEnabled\">\r\n <el-option v-for=\"item in implTeacherOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.courseSubjectEnabled\">课程科目</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.courseSubject\" class=\"w-full\" :disabled=\"!courseSearchForm.courseSubjectEnabled\">\r\n <el-option v-for=\"item in subjectOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"教学楼\">\r\n <el-select v-model=\"courseSearchForm.building\" class=\"w-full\">\r\n <el-option v-for=\"item in buildingOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.placeEnabled\">教学场地</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.place\" class=\"w-full\" :disabled=\"!courseSearchForm.placeEnabled\">\r\n <el-option v-for=\"item in placeOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.startDateEnabled\">开课日期</el-checkbox>\r\n </template>\r\n <div class=\"range-control\">\r\n <el-date-picker v-model=\"courseSearchForm.startDateStart\" type=\"date\" value-format=\"yyyy-MM-dd\" :disabled=\"!courseSearchForm.startDateEnabled\" />\r\n <span class=\"range-sep\">至</span>\r\n <el-date-picker v-model=\"courseSearchForm.startDateEnd\" type=\"date\" value-format=\"yyyy-MM-dd\" :disabled=\"!courseSearchForm.startDateEnabled\" />\r\n </div>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.endDateEnabled\">结课日期</el-checkbox>\r\n </template>\r\n <div class=\"range-control\">\r\n <el-date-picker v-model=\"courseSearchForm.endDateStart\" type=\"date\" value-format=\"yyyy-MM-dd\" :disabled=\"!courseSearchForm.endDateEnabled\" />\r\n <span class=\"range-sep\">至</span>\r\n <el-date-picker v-model=\"courseSearchForm.endDateEnd\" type=\"date\" value-format=\"yyyy-MM-dd\" :disabled=\"!courseSearchForm.endDateEnabled\" />\r\n </div>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.examDateEnabled\">考试日期</el-checkbox>\r\n </template>\r\n <div class=\"range-control\">\r\n <el-date-picker v-model=\"courseSearchForm.examDateStart\" type=\"date\" value-format=\"yyyy-MM-dd\" :disabled=\"!courseSearchForm.examDateEnabled\" />\r\n <span class=\"range-sep\">至</span>\r\n <el-date-picker v-model=\"courseSearchForm.examDateEnd\" type=\"date\" value-format=\"yyyy-MM-dd\" :disabled=\"!courseSearchForm.examDateEnabled\" />\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"课程科目\">\r\n <el-input v-model=\"courseSearchForm.courseSubjectInput\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item label=\"教学场地\">\r\n <el-input v-model=\"courseSearchForm.placeInput\" placeholder=\"请输入\" clearable />\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.finalStrategyEnabled\">终结性成绩策略</el-checkbox>\r\n </template>\r\n <el-checkbox v-model=\"courseSearchForm.finalPassEnabled\">终结性成绩定及格</el-checkbox>\r\n </el-form-item>\r\n <el-form-item>\r\n <template slot=\"label\">\r\n <el-checkbox v-model=\"courseSearchForm.manageOrgEnabled\">管理机构</el-checkbox>\r\n </template>\r\n <el-select v-model=\"courseSearchForm.manageOrg\" class=\"w-full\" :disabled=\"!courseSearchForm.manageOrgEnabled\">\r\n <el-option v-for=\"item in manageOrgOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <div class=\"search-tip\">注意:勾选\"选择框\"表示启用该项对应的查询条件,输入框非空表示启用查询条件。</div>\r\n <div class=\"search-actions\">\r\n <el-button type=\"primary\" @click=\"handleCourseQuery\">查询</el-button>\r\n </div>\r\n </el-form>\r\n </el-card>\r\n\r\n <!-- 数据表格 -->\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <el-table v-loading=\"courseLoading\" :data=\"coursePagedData\" border stripe class=\"main-table\">\r\n <el-table-column type=\"index\" label=\"序号\" width=\"50\" align=\"center\" />\r\n <el-table-column label=\"课程名称/课时系数\" width=\"150\" align=\"center\">\r\n <template slot=\"header\">\r\n <div class=\"two-line-header\">\r\n <span>课程名称</span>\r\n <span>课时系数</span>\r\n </div>\r\n </template>\r\n <template slot-scope=\"{ row }\">\r\n <div class=\"two-line-cell\">\r\n <span>{{ row.courseName }}</span>\r\n <span>{{ row.coeff }}</span>\r\n </div>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"teacherTimes\" label=\"责任教员&课次\" width=\"120\" align=\"center\" />\r\n <el-table-column prop=\"teamClass\" label=\"班次\" show-overflow-tooltip />\r\n <el-table-column prop=\"grade\" label=\"年级\" width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"major\" label=\"专业\" width=\"120\" show-overflow-tooltip />\r\n <el-table-column prop=\"planHours\" label=\"计划学时\" width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"runHours\" label=\"运行学时\" width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"examType\" label=\"考核类型方式\" width=\"110\" align=\"center\" />\r\n <el-table-column prop=\"implTeacher\" label=\"实施教员\" width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"countPlace\" label=\"人数/场地\" width=\"110\" align=\"center\" />\r\n <el-table-column prop=\"courseLecture\" label=\"课程讲座\" width=\"90\" align=\"center\" />\r\n <el-table-column prop=\"planChange\" label=\"实施计划变\" width=\"90\" align=\"center\" />\r\n </el-table>\r\n <div class=\"pagination-wrap\">\r\n <el-pagination\r\n background\r\n layout=\"total, prev, pager, next, jumper\"\r\n :total=\"courseData.length\"\r\n :page-size=\"coursePageSize\"\r\n :current-page=\"courseCurrentPage\"\r\n @current-change=\"handleCoursePageChange\"\r\n />\r\n </div>\r\n </el-card>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'AssessmentIndex',\r\n data() {\r\n return {\r\n activeTab: 'schedule',\r\n\r\n // ==================== 下拉选项(两页共用) ====================\r\n deptOptions: ['教务处', '政治工作教研室', '军事基础教研室', '装备保障教研室'],\r\n trainLevelOptions: ['本科', '研究生', '大专'],\r\n buildingOptions: ['校内', '教学楼A', '教学楼B'],\r\n placeOptions: ['操场', '教室101', '实验室203'],\r\n subjectOptions: ['英语(补课)', '高等数学', '军事理论', '战术基础'],\r\n teamOptions: ['2025级炮兵装备运用(线膛炮)专业学员54队5区队', '2024级学员32队', '研究生1队'],\r\n manageOrgOptions: ['教务处', '教务科', '教研室'],\r\n\r\n // Tab1 专属选项\r\n semesterOptions: ['2026年春季学期', '2026年秋季学期', '2025年秋季学期'],\r\n weekOptions: ['第20周2026-07-06', '第19周2026-06-29', '第21周2026-07-13'],\r\n resourceTypeOptions: ['弹药', '器材', '场地'],\r\n periodOptions: ['1-2', '3-4', '5-6', '7-8'],\r\n invigilatorOptions: ['教务处', '张三', '李四', '王五'],\r\n teamCategoryOptions: ['学员大队', '学员一队', '学员二队'],\r\n resourceOptions: ['92式手榴弹', '模拟器材', '靶场'],\r\n\r\n // Tab2 专属选项\r\n courseTypeOptions: ['讲座', '讲授', '研讨', '实操'],\r\n scoreStatusOptions: ['未填写', '已填写'],\r\n implTeacherOptions: ['教务处', '张三', '李四', '王五', '赵六'],\r\n\r\n // ==================== Tab1 查询条件 ====================\r\n scheduleSearchForm: {\r\n examDateEnabled: true,\r\n examDateFrom: '2026-07-06',\r\n examDateTo: '2026-07-12',\r\n semester: '2026年春季学期',\r\n week: '第20周2026-07-06',\r\n deptEnabled: false,\r\n dept: '教务处',\r\n buildingEnabled: true,\r\n building: '校内',\r\n trainLevel: '',\r\n deptSystemEnabled: false,\r\n deptSystem: '教务处',\r\n resourceTypeEnabled: false,\r\n resourceType: '弹药',\r\n periodEnabled: false,\r\n period: '1-2',\r\n combineEnabled: false,\r\n combineChange: false,\r\n majorName: '',\r\n invigilatorName: '',\r\n examPlaceName: '',\r\n invigilatorEnabled: false,\r\n invigilator: '教务处',\r\n examSubjectEnabled: false,\r\n examSubject: '英语(补课)',\r\n placeEnabled: false,\r\n place: '操场',\r\n teamEnabled: false,\r\n team: '',\r\n showElective: true,\r\n teamCategoryEnabled: false,\r\n teamCategory: '学员大队',\r\n resourceEnabled: false,\r\n resource: '92式手榴弹',\r\n manageOrgEnabled: false,\r\n manageOrg: '教务处',\r\n logOptionEnabled: false,\r\n logOption: '未填写',\r\n gradeInput: '',\r\n teamClassName: '',\r\n subjectName: ''\r\n },\r\n\r\n // ==================== Tab2 查询条件 ====================\r\n statusTip: '',\r\n courseSearchForm: {\r\n deptEnabled: false,\r\n dept: '教务处',\r\n courseTypeEnabled: false,\r\n courseType: '讲座',\r\n trainLevel: '',\r\n teamEnabled: false,\r\n team: '2025级炮兵装备运用(线膛炮)专业学员54队5区队',\r\n creditMin: '',\r\n creditMax: '',\r\n planHoursMin: '',\r\n planHoursMax: '',\r\n arrangeStatusEnabled: true,\r\n arrangeStatus: '已安排',\r\n teacher: '',\r\n teamClass: '',\r\n scoreStatusEnabled: false,\r\n scoreStatus: '未填写',\r\n formaScoreMin: '',\r\n formaScoreMax: '',\r\n implTeacherEnabled: false,\r\n implTeacher: '教务处',\r\n courseSubjectEnabled: false,\r\n courseSubject: '英语(补课)',\r\n building: '校内',\r\n placeEnabled: false,\r\n place: '操场',\r\n startDateEnabled: false,\r\n startDateStart: '2026-08-21',\r\n startDateEnd: '2027-01-23',\r\n endDateEnabled: false,\r\n endDateStart: '2026-08-21',\r\n endDateEnd: '2027-01-23',\r\n examDateEnabled: false,\r\n examDateStart: '2026-08-21',\r\n examDateEnd: '2027-01-23',\r\n courseSubjectInput: '',\r\n placeInput: '',\r\n finalStrategyEnabled: false,\r\n finalPassEnabled: false,\r\n manageOrgEnabled: false,\r\n manageOrg: '教务处'\r\n },\r\n\r\n // ==================== Tab1 表格数据(mock ====================\r\n scheduleLoading: false,\r\n scheduleData: [\r\n { id: 1, time: '2026-07-06 08:00-09:40', course: '高等数学', deptUnit: '教务处', teamCategory: '学员大队', teamClass: '2025级本科1班', grade: '2025级', major: '数学', teacher: '张三', countPlace: '45/教室101', contentMethod: '理论讲授', keyPoints: '微积分基础', guarantee: '无', remark: '第1次课' },\r\n { id: 2, time: '2026-07-06 10:00-11:40', course: '军事理论', deptUnit: '政治工作教研室', teamCategory: '学员大队', teamClass: '2024级本科2班', grade: '2024级', major: '军事', teacher: '李四', countPlace: '38/教室203', contentMethod: '案例教学', keyPoints: '战争理论', guarantee: '多媒体', remark: '' },\r\n { id: 3, time: '2026-07-07 14:30-16:10', course: '英语(补课)', deptUnit: '军事基础教研室', teamCategory: '学员一队', teamClass: '研究生1班', grade: '2026级', major: '英语', teacher: '王五', countPlace: '30/教室102', contentMethod: '研讨教学', keyPoints: '口语训练', guarantee: '无', remark: '补课' },\r\n { id: 4, time: '2026-07-07 08:00-09:40', course: '战术基础', deptUnit: '教务处', teamCategory: '学员大队', teamClass: '2023级本科3班', grade: '2023级', major: '战术', teacher: '赵六', countPlace: '50/操场', contentMethod: '实操演练', keyPoints: '战术动作', guarantee: '器材', remark: '' },\r\n { id: 5, time: '2026-07-08 10:00-11:40', course: '装备保障', deptUnit: '装备保障教研室', teamCategory: '学员二队', teamClass: '研究生2班', grade: '2026级', major: '装备', teacher: '孙七', countPlace: '20/实验室203', contentMethod: '实践教学', keyPoints: '装备维护', guarantee: '模拟器材', remark: '分组' },\r\n { id: 6, time: '2026-07-08 14:30-16:10', course: '联合作战指挥', deptUnit: '教务处', teamCategory: '学员大队', teamClass: '2025级本科1班', grade: '2025级', major: '指挥', teacher: '李四', countPlace: '45/教室B301', contentMethod: '案例教学', keyPoints: '联合作战', guarantee: '多媒体', remark: '' },\r\n { id: 7, time: '2026-07-09 08:00-09:40', course: '大学英语', deptUnit: '军事基础教研室', teamCategory: '学员一队', teamClass: '2024级本科2班', grade: '2024级', major: '英语', teacher: '王五', countPlace: '38/教室105', contentMethod: '理论讲授', keyPoints: '语法', guarantee: '无', remark: '' },\r\n { id: 8, time: '2026-07-09 10:00-11:40', course: '政治理论', deptUnit: '政治工作教研室', teamCategory: '学员大队', teamClass: '研究生1班', grade: '2026级', major: '政治', teacher: '张三', countPlace: '30/教室204', contentMethod: '理论讲授', keyPoints: '形势政策', guarantee: '无', remark: '' },\r\n { id: 9, time: '2026-07-10 14:30-16:10', course: '装备操作', deptUnit: '装备保障教研室', teamCategory: '学员二队', teamClass: '2023级本科3班', grade: '2023级', major: '装备', teacher: '赵六', countPlace: '45/实验室101', contentMethod: '实操演练', keyPoints: '操作规范', guarantee: '器材', remark: '安全注意' },\r\n { id: 10, time: '2026-07-10 16:20-18:00', course: '军事地形学', deptUnit: '教务处', teamCategory: '学员大队', teamClass: '2025级本科1班', grade: '2025级', major: '地形', teacher: '孙七', countPlace: '50/操场', contentMethod: '实操演练', keyPoints: '地形判读', guarantee: '地图', remark: '' }\r\n ],\r\n selectedRows: [],\r\n scheduleCurrentPage: 1,\r\n schedulePageSize: 20,\r\n\r\n // ==================== Tab2 表格数据(mock ====================\r\n courseLoading: false,\r\n courseData: [\r\n { id: 1, courseName: '高等数学', coeff: '1.0', teacherTimes: '张三×48', teamClass: '2025级炮兵装备运用(线膛炮)专业学员54队5区队', grade: '2025级', major: '炮兵装备运用', planHours: 96, runHours: 96, examType: '闭卷考试', implTeacher: '张三', countPlace: '45/教室101', courseLecture: '讲座', planChange: '否' },\r\n { id: 2, courseName: '军事理论', coeff: '1.2', teacherTimes: '李四×32', teamClass: '2024级学员32队', grade: '2024级', major: '军事指挥', planHours: 64, runHours: 62, examType: '开卷考试', implTeacher: '李四', countPlace: '38/教室203', courseLecture: '讲授', planChange: '是' },\r\n { id: 3, courseName: '英语(补课)', coeff: '0.8', teacherTimes: '王五×40', teamClass: '研究生1队', grade: '2026级', major: '英语', planHours: 80, runHours: 78, examType: '口语测试', implTeacher: '王五', countPlace: '30/教室102', courseLecture: '讲座', planChange: '否' },\r\n { id: 4, courseName: '战术基础', coeff: '1.0', teacherTimes: '赵六×56', teamClass: '2023级学员51队', grade: '2023级', major: '战术指挥', planHours: 112, runHours: 110, examType: '实操考核', implTeacher: '赵六', countPlace: '50/操场', courseLecture: '实操', planChange: '是' },\r\n { id: 5, courseName: '装备保障', coeff: '1.1', teacherTimes: '张三×24', teamClass: '研究生2队', grade: '2026级', major: '装备保障', planHours: 48, runHours: 48, examType: '闭卷考试', implTeacher: '孙七', countPlace: '20/实验室203', courseLecture: '讲授', planChange: '否' },\r\n { id: 6, courseName: '联合作战指挥', coeff: '1.3', teacherTimes: '李四×60', teamClass: '2025级炮兵装备运用(线膛炮)专业学员54队5区队', grade: '2025级', major: '联合作战', planHours: 120, runHours: 118, examType: '综合考核', implTeacher: '李四', countPlace: '45/教室B301', courseLecture: '讲座', planChange: '是' },\r\n { id: 7, courseName: '大学英语', coeff: '0.8', teacherTimes: '王五×36', teamClass: '2024级学员32队', grade: '2024级', major: '英语', planHours: 72, runHours: 72, examType: '四级制考试', implTeacher: '王五', countPlace: '38/教室105', courseLecture: '讲授', planChange: '否' },\r\n { id: 8, courseName: '军事地形学', coeff: '1.0', teacherTimes: '赵六×40', teamClass: '2023级学员51队', grade: '2023级', major: '军事指挥', planHours: 80, runHours: 76, examType: '实操考核', implTeacher: '赵六', countPlace: '50/操场', courseLecture: '实操', planChange: '是' },\r\n { id: 9, courseName: '政治理论', coeff: '1.0', teacherTimes: '张三×48', teamClass: '研究生1队', grade: '2026级', major: '政治学', planHours: 96, runHours: 96, examType: '开卷考试', implTeacher: '孙七', countPlace: '30/教室204', courseLecture: '讲座', planChange: '否' },\r\n { id: 10, courseName: '装备操作', coeff: '1.2', teacherTimes: '李四×32', teamClass: '2025级炮兵装备运用(线膛炮)专业学员54队5区队', grade: '2025级', major: '炮兵装备运用', planHours: 64, runHours: 62, examType: '实操考核', implTeacher: '李四', countPlace: '45/实验室101', courseLecture: '实操', planChange: '是' }\r\n ],\r\n courseCurrentPage: 1,\r\n coursePageSize: 20\r\n }\r\n },\r\n computed: {\r\n schedulePagedData() {\r\n const start = (this.scheduleCurrentPage - 1) * this.schedulePageSize\r\n return this.scheduleData.slice(start, start + this.schedulePageSize)\r\n },\r\n coursePagedData() {\r\n const start = (this.courseCurrentPage - 1) * this.coursePageSize\r\n return this.courseData.slice(start, start + this.coursePageSize)\r\n }\r\n },\r\n methods: {\r\n // ==================== Tab1 查询 ====================\r\n // TODO: 后端接口未提供,以下操作均为前端模拟;接口就绪后替换为对应接口\r\n handleScheduleQuery() {\r\n this.$message.success('查询完成(前端模拟)')\r\n },\r\n\r\n /** 学期/周次「确定」快速填充日期范围 */\r\n handleQuickDate(type) {\r\n if (type === 'semester') {\r\n this.$message.success(`已按「${this.scheduleSearchForm.semester}」确定考核日期范围(前端模拟)`)\r\n } else {\r\n this.$message.success(`已按「${this.scheduleSearchForm.week}」确定考核日期范围(前端模拟)`)\r\n }\r\n },\r\n\r\n // ==================== 导出按钮 ====================\r\n handleExport(type) {\r\n this.$message.success(`已导出 ${type}(前端模拟)`)\r\n },\r\n\r\n // ==================== Tab1 多选与批量操作 ====================\r\n handleScheduleSelectionChange(rows) {\r\n this.selectedRows = rows\r\n },\r\n\r\n handleScheduleBatch(action) {\r\n if (this.selectedRows.length === 0) {\r\n this.$message.warning('请先选择记录')\r\n return\r\n }\r\n this.$message.success(`已对所选 ${this.selectedRows.length} 条记录执行「${action}」(前端模拟)`)\r\n },\r\n\r\n handleScheduleBatchDelete() {\r\n if (this.selectedRows.length === 0) {\r\n this.$message.warning('请先选择要删除的记录')\r\n return\r\n }\r\n const ids = this.selectedRows.map((r) => r.id)\r\n this.scheduleData = this.scheduleData.filter((r) => ids.indexOf(r.id) === -1)\r\n this.$message.success(`已删除所选 ${ids.length} 条记录(前端模拟)`)\r\n },\r\n\r\n handleSchedulePageChange(page) {\r\n this.scheduleCurrentPage = page\r\n },\r\n\r\n // ==================== Tab2 查询 ====================\r\n handleCourseQuery() {\r\n const now = new Date()\r\n const hh = String(now.getHours()).padStart(2, '0')\r\n const mm = String(now.getMinutes()).padStart(2, '0')\r\n const ss = String(now.getSeconds()).padStart(2, '0')\r\n const count = this.courseData.length\r\n this.statusTip = `[${hh}:${mm}:${ss}]查询成功! 共检索到${count}条记录。`\r\n this.$message.success(`查询成功,共检索到${count}条记录(前端模拟)`)\r\n },\r\n\r\n handleCoursePageChange(page) {\r\n this.courseCurrentPage = page\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.app-container {\r\n padding: 20px;\r\n}\r\n\r\n.assessment-page {\r\n .assessment-tabs {\r\n background: #fff;\r\n }\r\n\r\n // ==================== 查询条件区域 ====================\r\n .search-card {\r\n margin-bottom: 16px;\r\n\r\n .search-form {\r\n .w-full {\r\n width: 100%;\r\n }\r\n\r\n .date-block {\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n gap: 16px;\r\n flex-wrap: wrap;\r\n\r\n .date-range {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n flex-wrap: wrap;\r\n }\r\n\r\n .quick-row {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n flex-wrap: wrap;\r\n\r\n .quick-select {\r\n width: 170px;\r\n }\r\n }\r\n }\r\n\r\n .team-field {\r\n display: flex;\r\n align-items: center;\r\n gap: 8px;\r\n\r\n .el-select {\r\n flex: 1;\r\n min-width: 0;\r\n }\r\n\r\n .elective-check {\r\n white-space: nowrap;\r\n }\r\n }\r\n\r\n .range-control {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n\r\n .el-input {\r\n flex: 1;\r\n }\r\n\r\n .el-date-editor {\r\n flex: 1;\r\n min-width: 120px;\r\n }\r\n\r\n .range-sep,\r\n .range-suffix {\r\n flex-shrink: 0;\r\n font-size: 12px;\r\n color: #606266;\r\n }\r\n }\r\n\r\n .search-tip {\r\n font-size: 12px;\r\n color: #f56c6c;\r\n margin-top: 4px;\r\n margin-bottom: 4px;\r\n }\r\n\r\n .search-actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-top: 8px;\r\n padding-top: 12px;\r\n border-top: 1px solid #ebeef5;\r\n }\r\n }\r\n }\r\n\r\n // ==================== Tab2 顶部提示 / 标题 / 导出 ====================\r\n .status-tip {\r\n display: inline-block;\r\n background: #dc3545;\r\n color: #fff;\r\n font-size: 12px;\r\n padding: 3px 10px;\r\n border-radius: 4px;\r\n margin-bottom: 12px;\r\n }\r\n\r\n .big-title {\r\n text-align: center;\r\n font-size: 20px;\r\n font-weight: 700;\r\n color: #303133;\r\n margin: 8px 0 12px;\r\n }\r\n\r\n .export-bar {\r\n display: flex;\r\n justify-content: flex-end;\r\n gap: 12px;\r\n margin-bottom: 16px;\r\n }\r\n\r\n // ==================== 数据表格区域 ====================\r\n .table-card {\r\n .table-title {\r\n font-size: 16px;\r\n font-weight: 600;\r\n color: #303133;\r\n margin-bottom: 12px;\r\n }\r\n\r\n .action-bar {\r\n .action-row {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 10px;\r\n margin-bottom: 10px;\r\n\r\n &:last-child {\r\n margin-bottom: 14px;\r\n }\r\n }\r\n }\r\n\r\n .main-table {\r\n ::v-deep(.cell) {\r\n font-size: 12px;\r\n }\r\n }\r\n\r\n .two-line-header,\r\n .two-line-cell {\r\n display: flex;\r\n flex-direction: column;\r\n line-height: 1.4;\r\n }\r\n\r\n .pagination-wrap {\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-top: 12px;\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}