forked from liweijie/education
1 line
56 KiB
JSON
1 line
56 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\\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"]}]} |