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

1 line
23 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\\teachingLog\\organLog\\components\\auditedView.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachingLog\\organLog\\components\\auditedView.vue","mtime":1787567993862},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQC91dGlscy9pbmRleCcNCmltcG9ydCB7IGdldEF1ZGl0ZWRUZWFjaGluZ0xvZ0xpc3QsIGdldFRlYWNoaW5nTG9nQnlCaCB9IGZyb20gJ0AvYXBpL2xvZycNCg0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnQXVkaXRlZFZpZXcnLA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICAvLyA9PT09PT09PT09PT09PT09PT09PSDmn6Xor6LooajljZUgPT09PT09PT09PT09PT09PT09PT0NCiAgICAgIHNlYXJjaEZvcm06IHsNCiAgICAgICAga3NycTogJycsDQogICAgICAgIGpzcnE6ICcnLA0KICAgICAgICBrY21jOiAnJywNCiAgICAgICAganlzOiAnJywNCiAgICAgICAganhmZjogJycsDQogICAgICAgIHNrank6ICcnLA0KICAgICAgICBjcmVhdGVTb3VyY2U6ICcnLA0KICAgICAgICBjaGFuZ2VUeXBlczogW10sDQogICAgICAgIHJ3bGI6ICcnLA0KICAgICAgICBweHFiOiAnJw0KICAgICAgfSwNCg0KICAgICAganlzT3B0aW9uczogWyfmlZnnoJTlrqQnLCAn6Ziy56m65YW157O7JywgJ+mAmuS/oeW3peeoi+ezuycsICfoo4XnlLLlhbXns7snXSwNCiAgICAgIGp4ZmZPcHRpb25zOiBbJ+eQhuiuuuiusuaOiCcsICforqjorronLCAn5a6e5pONJywgJ+a8lOekuiddLA0KICAgICAgc2tqeU9wdGlvbnM6IFsn5pWZ5Yqh5aSEJywgJ+W8oOS4iScsICfmnY7lm5snLCAn546L5LqUJ10sDQogICAgICByd2xiT3B0aW9uczogWyflhajlhpvpmaLmoKHorq3nu4Pop4TliJLlhoXku7vliqEnLCAn5YW25LuW5Lu75YqhJ10sDQogICAgICBjcmVhdGVTb3VyY2VPcHRpb25zOiBbJ+eUseaVmeWtpuiuoeWIkuWIm+W7uicsICflt7LmlLnliqjmlZnlraborqHliJInLCAn5omL5Yqo5ouf5Yi2J10sDQogICAgICBjaGFuZ2VUeXBlT3B0aW9uczogWw0KICAgICAgICAn5pWZ5ZGY5Y+Y5YqoJywNCiAgICAgICAgJ+aXtumXtOWPmOWKqCcsDQogICAgICAgICfor77nqIvlj5jliqgnLA0KICAgICAgICAn5o6I6K++5pa55byP5Y+Y5YqoJywNCiAgICAgICAgJ+S7u+WKoeexu+WIq+WPmOWKqCcsDQogICAgICAgICfmnJ/nj63lj5jliqgnLA0KICAgICAgICAn5Zyw54K55Y+Y5YqoJywNCiAgICAgICAgJ+ivvumimOWPmOWKqCcNCiAgICAgIF0sDQoNCiAgICAgIC8vID09PT09PT09PT09PT09PT09PT09IOaVsOaNruihqOagvCA9PT09PT09PT09PT09PT09PT09PQ0KICAgICAgbG9hZGluZzogZmFsc2UsDQogICAgICB0YWJsZURhdGE6IFtdLA0KICAgICAgc2VsZWN0ZWRSb3dzOiBbXSwNCiAgICAgIHBhZ2VOdW06IDEsDQogICAgICBwYWdlU2l6ZTogMjAsDQogICAgICB0b3RhbDogMCwNCg0KICAgICAgLy8gPT09PT09PT09PT09PT09PT09PT0g6K+m5oOFID09PT09PT09PT09PT09PT09PT09DQogICAgICBkZXRhaWxWaXNpYmxlOiBmYWxzZSwNCiAgICAgIGRldGFpbExvYWRpbmc6IGZhbHNlLA0KICAgICAgZGV0YWlsRGF0YToge30NCiAgICB9DQogIH0sDQogIGNyZWF0ZWQoKSB7DQogICAgdGhpcy5mZXRjaExpc3QoKQ0KICB9LA0KICBtZXRob2RzOiB7DQogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHJvd3MpIHsNCiAgICAgIHRoaXMuc2VsZWN0ZWRSb3dzID0gcm93cw0KICAgIH0sDQoNCiAgICAvKiog5qC55o2u5bey5aGr5YaZ55qE5p+l6K+i5YC85p6E5bu65a6e6ZmF5p+l6K+i5Y+C5pWwICovDQogICAgYnVpbGRTZWFyY2hQYXJhbXMoKSB7DQogICAgICBjb25zdCBmb3JtID0gdGhpcy5zZWFyY2hGb3JtDQogICAgICBjb25zdCBwYXJhbXMgPSB7IHBhZ2VOdW06IHRoaXMucGFnZU51bSwgcGFnZVNpemU6IHRoaXMucGFnZVNpemUgfQ0KICAgICAgaWYgKGZvcm0ua3NycSkgcGFyYW1zLmtzcnEgPSBmb3JtLmtzcnENCiAgICAgIGlmIChmb3JtLmpzcnEpIHBhcmFtcy5qc3JxID0gZm9ybS5qc3JxDQogICAgICBpZiAoZm9ybS5rY21jKSBwYXJhbXMua2NtYyA9IGZvcm0ua2NtYw0KICAgICAgaWYgKGZvcm0uanlzKSBwYXJhbXMuanlzID0gZm9ybS5qeXMNCiAgICAgIGlmIChmb3JtLmp4ZmYpIHBhcmFtcy5qeGZmID0gZm9ybS5qeGZmDQogICAgICBpZiAoZm9ybS5za2p5KSBwYXJhbXMuc2tqeSA9IGZvcm0uc2tqeQ0KICAgICAgaWYgKGZvcm0ucndsYikgcGFyYW1zLnJ3bGIgPSBmb3JtLnJ3bGINCiAgICAgIGlmIChmb3JtLnB4cWIpIHBhcmFtcy5weHFiID0gZm9ybS5weHFiDQogICAgICBpZiAoZm9ybS5jcmVhdGVTb3VyY2UpIHBhcmFtcy5nZHFrID0gZm9ybS5jcmVhdGVTb3VyY2UNCiAgICAgIGlmIChmb3JtLmNoYW5nZVR5cGVzLmxlbmd0aCA+IDApIHsNCiAgICAgICAgcGFyYW1zLmdkeHhxayA9IGZvcm0uY2hhbmdlVHlwZXMuam9pbignLCcpDQogICAgICB9DQogICAgICByZXR1cm4gcGFyYW1zDQogICAgfSwNCg0KICAgIGV4dHJhY3RMaXN0RGF0YShyZXMpIHsNCiAgICAgIGNvbnN0IGRhdGEgPSByZXMuZGF0YSB8fCByZXMNCiAgICAgIGNvbnN0IGxpc3QgPSBkYXRhLnJlY29yZHMgfHwgZGF0YS5saXN0IHx8IGRhdGEucm93cyB8fCBbXQ0KICAgICAgY29uc3QgdG90YWxDb3VudCA9IGRhdGEudG90YWwgPz8gZGF0YS50b3RhbENvdW50ID8/IGRhdGEudG90YWxSb3dzID8/IDANCiAgICAgIHJldHVybiB7IGxpc3QsIHRvdGFsOiB0b3RhbENvdW50IH0NCiAgICB9LA0KDQogICAgZmV0Y2hMaXN0KCkgew0KICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZQ0KICAgICAgcmV0dXJuIGdldEF1ZGl0ZWRUZWFjaGluZ0xvZ0xpc3QodGhpcy5idWlsZFNlYXJjaFBhcmFtcygpKQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDAgfHwgcmVzLmNvZGUgPT09IDApIHsNCiAgICAgICAgICAgIGNvbnN0IHsgbGlzdCwgdG90YWwgfSA9IHRoaXMuZXh0cmFjdExpc3REYXRhKHJlcykNCiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gbGlzdA0KICAgICAgICAgICAgdGhpcy50b3RhbCA9IHRvdGFsDQogICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKCkgPT4ge30pDQogICAgICAgIC5maW5hbGx5KCgpID0+IHsNCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZQ0KICAgICAgICB9KQ0KICAgIH0sDQoNCiAgICBoYW5kbGVTZWFyY2goKSB7DQogICAgICB0aGlzLnBhZ2VOdW0gPSAxDQogICAgICB0aGlzLmZldGNoTGlzdCgpDQogICAgfSwNCg0KICAgIGhhbmRsZVBhZ2VDaGFuZ2UocGFnZSkgew0KICAgICAgdGhpcy5wYWdlTnVtID0gcGFnZQ0KICAgICAgdGhpcy5mZXRjaExpc3QoKQ0KICAgIH0sDQoNCiAgICBoYW5kbGVTaXplQ2hhbmdlKHNpemUpIHsNCiAgICAgIHRoaXMucGFnZVNpemUgPSBzaXplDQogICAgICB0aGlzLnBhZ2VOdW0gPSAxDQogICAgICB0aGlzLmZldGNoTGlzdCgpDQogICAgfSwNCg0KICAgIGhhbmRsZURldGFpbChyb3cpIHsNCiAgICAgIHRoaXMuZGV0YWlsRGF0YSA9IHsgLi4ucm93IH0NCiAgICAgIHRoaXMuZGV0YWlsVmlzaWJsZSA9IHRydWUNCiAgICAgIGNvbnN0IGJoID0gcm93LmJoDQogICAgICBpZiAoIWJoKSByZXR1cm4NCiAgICAgIHRoaXMuZGV0YWlsTG9hZGluZyA9IHRydWUNCiAgICAgIGdldFRlYWNoaW5nTG9nQnlCaChTdHJpbmcoYmgpKQ0KICAgICAgICAudGhlbigocmVzKSA9PiB7DQogICAgICAgICAgaWYgKChyZXMuY29kZSA9PT0gMjAwIHx8IHJlcy5jb2RlID09PSAwKSAmJiByZXMuZGF0YSkgew0KICAgICAgICAgICAgdGhpcy5kZXRhaWxEYXRhID0gcmVzLmRhdGENCiAgICAgICAgICB9DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgoKSA9PiB7fSkNCiAgICAgICAgLmZpbmFsbHkoKCkgPT4gew0KICAgICAgICAgIHRoaXMuZGV0YWlsTG9hZGluZyA9IGZhbHNlDQogICAgICAgIH0pDQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["auditedView.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwKA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"auditedView.vue","sourceRoot":"src/views/teachingLog/organLog/components","sourcesContent":["<template>\r\n <div class=\"page-container\">\r\n <!-- 查询条件 -->\r\n <el-card shadow=\"never\" class=\"search-card\">\r\n <el-form :model=\"searchForm\" label-width=\"110px\" class=\"search-form\">\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"开始日期\">\r\n <el-date-picker v-model=\"searchForm.ksrq\" type=\"date\" value-format=\"yyyy-MM-dd\" placeholder=\"选择开始日期\"\r\n class=\"w-full\" />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"结束日期\">\r\n <el-date-picker v-model=\"searchForm.jsrq\" type=\"date\" value-format=\"yyyy-MM-dd\" placeholder=\"选择结束日期\"\r\n class=\"w-full\" />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n\r\n <el-row :gutter=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"课程名称\">\r\n <el-input v-model=\"searchForm.kcmc\" placeholder=\"请输入课程名称\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教研室\">\r\n <el-select v-model=\"searchForm.jys\" placeholder=\"请选择教研室\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in jysOptions\" :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 <el-row :gutter=\"0\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教学方法\">\r\n <el-select v-model=\"searchForm.jxff\" placeholder=\"请选择教学方法\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in jxffOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"授课教员\">\r\n <el-select v-model=\"searchForm.skjy\" placeholder=\"请选择授课教员\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in skjyOptions\" :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 <el-row :gutter=\"0\">\r\n <el-col :span=\"24\">\r\n <el-form-item label=\"改动情况\">\r\n <div class=\"change-options\">\r\n <el-radio-group v-model=\"searchForm.createSource\">\r\n <el-radio v-for=\"item in createSourceOptions\" :key=\"item\" :label=\"item\">{{ item }}</el-radio>\r\n </el-radio-group>\r\n <el-checkbox-group v-model=\"searchForm.changeTypes\">\r\n <el-checkbox v-for=\"item in changeTypeOptions\" :key=\"item\" :label=\"item\">{{ item }}</el-checkbox>\r\n </el-checkbox-group>\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 <el-col :span=\"12\">\r\n <el-form-item label=\"任务类别\">\r\n <el-select v-model=\"searchForm.rwlb\" placeholder=\"请选择任务类别\" clearable class=\"w-full\">\r\n <el-option v-for=\"item in rwlbOptions\" :key=\"item\" :label=\"item\" :value=\"item\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"培训期班\">\r\n <el-input v-model=\"searchForm.pxqb\" placeholder=\"请输入培训期班\" clearable />\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n\r\n <div class=\"search-actions\">\r\n <el-button type=\"primary\" @click=\"handleSearch\">查询</el-button>\r\n </div>\r\n </el-card>\r\n\r\n <!-- 数据表格 -->\r\n <el-card shadow=\"never\" class=\"table-card\">\r\n <el-table v-loading=\"loading\" :data=\"tableData\" stripe border highlight-current-row\r\n @selection-change=\"handleSelectionChange\">\r\n <el-table-column type=\"selection\" width=\"50\" align=\"center\" />\r\n <el-table-column type=\"index\" label=\"序号\" width=\"60\" align=\"center\" />\r\n <el-table-column prop=\"rwlb\" label=\"任务类别\" width=\"130\" align=\"center\" show-overflow-tooltip />\r\n <el-table-column prop=\"jyxm\" label=\"主讲教员\" width=\"100\" align=\"center\" />\r\n <el-table-column prop=\"rq\" label=\"日期\" width=\"150\" align=\"center\">\r\n <template slot-scope=\"scope\">{{ scope.row.rq ? formatDate(scope.row.rq) : '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"节次\" width=\"80\" align=\"center\">\r\n <template slot-scope=\"scope\">\r\n {{ scope.row.qsjc && scope.row.jsjc ? `${scope.row.qsjc}-${scope.row.jsjc}节` : (scope.row.qsjc || '-') }}\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"kcmc\" label=\"课程名称\" min-width=\"150\" show-overflow-tooltip />\r\n <el-table-column prop=\"pxqbxx\" label=\"培训期班信息\" min-width=\"140\" show-overflow-tooltip />\r\n <el-table-column label=\"人数\" width=\"70\" align=\"center\">\r\n <template slot-scope=\"scope\">{{ scope.row.sdrs || scope.row.ydrs || '-' }}</template>\r\n </el-table-column>\r\n <el-table-column label=\"分组指导教员\" width=\"120\" align=\"center\">\r\n <template slot-scope=\"scope\">{{ scope.row.fzyzdjy || '-' }}</template>\r\n </el-table-column>\r\n <el-table-column prop=\"jsfs\" label=\"教学方法\" width=\"100\" align=\"center\" />\r\n <el-table-column prop=\"zt\" label=\"日志状态\" width=\"100\" align=\"center\" />\r\n <el-table-column prop=\"gdqk\" label=\"变动汇总\" min-width=\"120\" show-overflow-tooltip />\r\n <el-table-column prop=\"jxrzcjfs\" label=\"创建方式\" width=\"100\" align=\"center\" />\r\n <el-table-column label=\"操作\" width=\"80\" align=\"center\" fixed=\"right\" class-name=\"table-action-column\">\r\n <template slot-scope=\"scope\">\r\n <el-button type=\"text\" @click=\"handleDetail(scope.row)\">详细</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n\r\n <!-- 分页 -->\r\n <div class=\"pagination-wrapper\">\r\n <el-pagination :current-page=\"pageNum\" :page-size=\"pageSize\" :total=\"total\" :page-sizes=\"[10, 20, 50, 100]\"\r\n layout=\"total, sizes, prev, pager, next, jumper\" background @current-change=\"handlePageChange\"\r\n @size-change=\"handleSizeChange\" />\r\n </div>\r\n </el-card>\r\n\r\n <!-- 日志详情对话框 -->\r\n <el-dialog :visible.sync=\"detailVisible\" title=\"教学日志详情\" width=\"700px\" destroy-on-close>\r\n <div v-loading=\"detailLoading\">\r\n <el-descriptions v-if=\"!detailLoading\" :column=\"2\" border>\r\n <el-descriptions-item label=\"编号\">{{ detailData.bh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"统一编号\">{{ detailData.tybh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教员编号\">{{ detailData.jybh || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教员姓名\">{{ detailData.jyxm || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"课程名称\">{{ detailData.kcmc || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"任务类别\">{{ detailData.rwlb || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"日期\">{{ detailData.rq || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"节次\">\r\n {{ detailData.qsjc && detailData.jsjc ? `${detailData.qsjc}-${detailData.jsjc}节` : '-' }}\r\n </el-descriptions-item>\r\n <el-descriptions-item label=\"教学方法\">{{ detailData.jsfs || detailData.jxff || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"创建方式\">{{ detailData.jxrzcjfs || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"应到人数\">{{ detailData.ydrs || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"实到人数\">{{ detailData.sdrs || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"培训期班信息\" :span=\"2\">{{ detailData.pxqbxx || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"授课地点\" :span=\"2\">{{ detailData.skdd || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"状态\">{{ detailData.zt || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"教研室\">{{ detailData.jysmc || detailData.jys || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"变动汇总\" :span=\"2\">{{ detailData.gdqk || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"变动详细情况\" :span=\"2\">{{ detailData.gdxxqk || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"退回意见\" :span=\"2\">{{ detailData.thyj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"创建时间\">{{ detailData.cjsj || '-' }}</el-descriptions-item>\r\n <el-descriptions-item label=\"修改时间\">{{ detailData.xgsj || '-' }}</el-descriptions-item>\r\n </el-descriptions>\r\n </div>\r\n <div slot=\"footer\" class=\"dialog-footer\">\r\n <el-button @click=\"detailVisible = false\">关 闭</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { formatDate } from '@/utils/index'\r\nimport { getAuditedTeachingLogList, getTeachingLogByBh } from '@/api/log'\r\n\r\nexport default {\r\n name: 'AuditedView',\r\n data() {\r\n return {\r\n // ==================== 查询表单 ====================\r\n searchForm: {\r\n ksrq: '',\r\n jsrq: '',\r\n kcmc: '',\r\n jys: '',\r\n jxff: '',\r\n skjy: '',\r\n createSource: '',\r\n changeTypes: [],\r\n rwlb: '',\r\n pxqb: ''\r\n },\r\n\r\n jysOptions: ['教研室', '防空兵系', '通信工程系', '装甲兵系'],\r\n jxffOptions: ['理论讲授', '讨论', '实操', '演示'],\r\n skjyOptions: ['教务处', '张三', '李四', '王五'],\r\n rwlbOptions: ['全军院校训练规划内任务', '其他任务'],\r\n createSourceOptions: ['由教学计划创建', '已改动教学计划', '手动拟制'],\r\n changeTypeOptions: [\r\n '教员变动',\r\n '时间变动',\r\n '课程变动',\r\n '授课方式变动',\r\n '任务类别变动',\r\n '期班变动',\r\n '地点变动',\r\n '课题变动'\r\n ],\r\n\r\n // ==================== 数据表格 ====================\r\n loading: false,\r\n tableData: [],\r\n selectedRows: [],\r\n pageNum: 1,\r\n pageSize: 20,\r\n total: 0,\r\n\r\n // ==================== 详情 ====================\r\n detailVisible: false,\r\n detailLoading: false,\r\n detailData: {}\r\n }\r\n },\r\n created() {\r\n this.fetchList()\r\n },\r\n methods: {\r\n handleSelectionChange(rows) {\r\n this.selectedRows = rows\r\n },\r\n\r\n /** 根据已填写的查询值构建实际查询参数 */\r\n buildSearchParams() {\r\n const form = this.searchForm\r\n const params = { pageNum: this.pageNum, pageSize: this.pageSize }\r\n if (form.ksrq) params.ksrq = form.ksrq\r\n if (form.jsrq) params.jsrq = form.jsrq\r\n if (form.kcmc) params.kcmc = form.kcmc\r\n if (form.jys) params.jys = form.jys\r\n if (form.jxff) params.jxff = form.jxff\r\n if (form.skjy) params.skjy = form.skjy\r\n if (form.rwlb) params.rwlb = form.rwlb\r\n if (form.pxqb) params.pxqb = form.pxqb\r\n if (form.createSource) params.gdqk = form.createSource\r\n if (form.changeTypes.length > 0) {\r\n params.gdxxqk = form.changeTypes.join(',')\r\n }\r\n return params\r\n },\r\n\r\n extractListData(res) {\r\n const data = res.data || res\r\n const list = data.records || data.list || data.rows || []\r\n const totalCount = data.total ?? data.totalCount ?? data.totalRows ?? 0\r\n return { list, total: totalCount }\r\n },\r\n\r\n fetchList() {\r\n this.loading = true\r\n return getAuditedTeachingLogList(this.buildSearchParams())\r\n .then((res) => {\r\n if (res.code === 200 || res.code === 0) {\r\n const { list, total } = this.extractListData(res)\r\n this.tableData = list\r\n this.total = total\r\n }\r\n })\r\n .catch(() => {})\r\n .finally(() => {\r\n this.loading = false\r\n })\r\n },\r\n\r\n handleSearch() {\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handlePageChange(page) {\r\n this.pageNum = page\r\n this.fetchList()\r\n },\r\n\r\n handleSizeChange(size) {\r\n this.pageSize = size\r\n this.pageNum = 1\r\n this.fetchList()\r\n },\r\n\r\n handleDetail(row) {\r\n this.detailData = { ...row }\r\n this.detailVisible = true\r\n const bh = row.bh\r\n if (!bh) return\r\n this.detailLoading = true\r\n getTeachingLogByBh(String(bh))\r\n .then((res) => {\r\n if ((res.code === 200 || res.code === 0) && res.data) {\r\n this.detailData = res.data\r\n }\r\n })\r\n .catch(() => {})\r\n .finally(() => {\r\n this.detailLoading = false\r\n })\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.page-container {\r\n padding: 4px 8px;\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 ::v-deep .el-row {\r\n border-bottom: 1px solid #ebeef5;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n }\r\n\r\n ::v-deep .el-col {\r\n border-right: 1px solid #ebeef5;\r\n\r\n &:last-child {\r\n border-right: none;\r\n }\r\n }\r\n\r\n ::v-deep .el-form-item__label {\r\n white-space: normal;\r\n line-height: 1.4;\r\n text-align: left;\r\n justify-content: flex-start;\r\n }\r\n\r\n .el-form-item {\r\n margin-bottom: 0;\r\n padding: 10px 12px;\r\n }\r\n\r\n .change-options {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n\r\n ::v-deep .el-radio-group,\r\n ::v-deep .el-checkbox-group {\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 12px;\r\n }\r\n\r\n }\r\n }\r\n\r\n .search-tip {\r\n padding: 6px 12px 0;\r\n font-size: 12px;\r\n color: #f56c6c;\r\n }\r\n\r\n .search-actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 12px;\r\n border-top: 1px solid #ebeef5;\r\n }\r\n}\r\n\r\n.table-card {\r\n .el-table {\r\n width: 100%;\r\n }\r\n\r\n .pagination-wrapper {\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: 16px 0 0;\r\n }\r\n}\r\n</style>\r\n"]}]}