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

1 line
15 KiB
JSON

{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachOffice\\shiftSemester\\ClassSemesterDetailDialog.vue?vue&type=script&setup=true&lang=ts","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachOffice\\shiftSemester\\ClassSemesterDetailDialog.vue","mtime":1787322930261},{"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:DQppbXBvcnQgeyBjb21wdXRlZCwgcmVhY3RpdmUsIHdhdGNoIH0gZnJvbSAndnVlJw0KaW1wb3J0IHsgRWxNZXNzYWdlIH0gZnJvbSAnZWxlbWVudC1wbHVzJw0KDQovKiog5Y+v5paw5bu65a2m5pyf5L+h5oGv55qE54+t5qyhICovDQpleHBvcnQgaW50ZXJmYWNlIE5ld0NsYXNzSW5mbyB7DQogIGJjOiBzdHJpbmcgICAvLyDnj63mrKENCiAgeGt6eTogc3RyaW5nIC8vIOS4k+S4mg0KICBuajogc3RyaW5nICAgLy8g5bm057qnDQogIHJ4cnE/OiBzdHJpbmcgLy8g5YWl5a2m5pel5pyf77yI55So5LqO5pm66IO95o6o5patL+m7mOiupOW8gOWtpuaXpeacn++8iQ0KICBieXJxPzogc3RyaW5nIC8vIOavleS4muaXpeacn++8iOeUqOS6jum7mOiupOe7k+adn+aXpeacn++8iQ0KfQ0KDQovKiog5qCh5Y6GIC8g6aKE6K6+5pel5pyfICovDQpleHBvcnQgaW50ZXJmYWNlIERhdGVQcmVzZXQgew0KICBreHJxOiBzdHJpbmcgLy8g5byA5a2m5pel5pyfDQogIGpzcnE6IHN0cmluZyAvLyDnu5PmnZ/ml6XmnJ8NCiAgd2Vla3M6IG51bWJlcg0KfQ0KDQpjb25zdCBwcm9wcyA9IHdpdGhEZWZhdWx0cygNCiAgZGVmaW5lUHJvcHM8ew0KICAgIG1vZGVsVmFsdWU6IGJvb2xlYW4NCiAgICBtb2RlPzogJ2NyZWF0ZScgfCAnZWRpdCcNCiAgICAvKiog5Yib5bu677ya6YCJ5Lit55qE5Y+v5paw5bu654+t5qyhICovDQogICAgY2xhc3NJbmZvPzogTmV3Q2xhc3NJbmZvIHwgbnVsbA0KICAgIC8qKiDnvJbovpHvvJrlt7LmnInnmoTnj63mrKHlrabmnJ/kv6Hmga/ooYwgKi8NCiAgICBlZGl0Um93PzogUmVjb3JkPHN0cmluZywgYW55PiB8IG51bGwNCiAgICAvKiog5a2m5pyf5ZCN56ewICovDQogICAgc2VtZXN0ZXJOYW1lPzogc3RyaW5nDQogICAgLyoqIOagoeWOhuaXpeacnyAqLw0KICAgIHNlbWVzdGVyPzogRGF0ZVByZXNldA0KICAgIC8qKiDpooTorr7ml6XmnJ8gKi8NCiAgICBwcmVzZXQ/OiBEYXRlUHJlc2V0DQogIH0+KCksDQogIHsNCiAgICBtb2RlOiAnY3JlYXRlJywNCiAgICBjbGFzc0luZm86IG51bGwsDQogICAgZWRpdFJvdzogbnVsbCwNCiAgICBzZW1lc3Rlck5hbWU6ICcyMDE35bm056eL5a2j5a2m5pyfJywNCiAgICBzZW1lc3RlcjogKCkgPT4gKHsga3hycTogJycsIGpzcnE6ICcnLCB3ZWVrczogMCB9KSwNCiAgICBwcmVzZXQ6ICgpID0+ICh7IGt4cnE6ICcnLCBqc3JxOiAnJywgd2Vla3M6IDAgfSkNCiAgfQ0KKQ0KDQpjb25zdCBlbWl0ID0gZGVmaW5lRW1pdHM8ew0KICAoZTogJ3VwZGF0ZTptb2RlbFZhbHVlJywgdmFsdWU6IGJvb2xlYW4pOiB2b2lkDQogIChlOiAnY29uZmlybScpOiB2b2lkDQp9PigpDQoNCmNvbnN0IGRpYWxvZ1Zpc2libGUgPSBjb21wdXRlZCh7DQogIGdldDogKCkgPT4gcHJvcHMubW9kZWxWYWx1ZSwNCiAgc2V0OiAodmFsOiBib29sZWFuKSA9PiBlbWl0KCd1cGRhdGU6bW9kZWxWYWx1ZScsIHZhbCkNCn0pDQoNCi8vID09PT09PT09PT09PT09PT09PT09IOihqOWNlSA9PT09PT09PT09PT09PT09PT09PQ0KY29uc3QgZm9ybSA9IHJlYWN0aXZlKHsNCiAgYmM6ICcnLCAgICAgICAgICAvLyDnj63mrKENCiAgeGt6eTogJycsICAgICAgICAvLyDkuJPkuJoNCiAgbmo6ICcnLCAgICAgICAgICAvLyDlubTnuqcNCiAgeHE6ICcnLCAgICAgICAgICAvLyDlrabmnJ8NCiAgeHFjYzogJycsICAgICAgICAvLyDlrabmnJ/nrKzmrKENCiAga3hycTogJycsICAgICAgICAvLyDlvIDlrabml6XmnJ8NCiAganNycTogJycsICAgICAgICAvLyDnu5PmnZ/ml6XmnJ8NCiAgenM6IDAsICAgICAgICAgICAvLyDlrabmnJ/lkajmlbANCiAganhydzogJycsICAgICAgICAvLyDmlZnlrabku7vliqENCiAga2ZweTogdHJ1ZSwgICAgICAvLyDlvIDmlL7mlZnlkZjmjpLor74NCiAgenhqczogJycsICAgICAgICAvLyDmn6Xmib7mlZnlrqTvvIjovpPlhaXmi7zpn7PpppblrZfmr43lv6vpgJ/mn6Xmib7vvIkNCiAganhsOiAnJywgICAgICAgICAvLyDmlZnlrabmpbwNCiAgenlqczogJycsICAgICAgICAvLyDkuJPnlKjmlZnlrqQNCiAgYno6ICcnICAgICAgICAgICAvLyDlpIfms6gNCn0pDQoNCmNvbnN0IGlzRWRpdCA9IGNvbXB1dGVkKCgpID0+IHByb3BzLm1vZGUgPT09ICdlZGl0JykNCg0KY29uc3QgdGFza09wdGlvbnMgPSBbJzIwMTflubTkuIvljYrlubTmlZnlrabku7vliqEnLCAn56CU56m255SfMjAxN+S4i+WNiuW5tOaVmeWtpuS7u+WKoSddDQpjb25zdCBsZXZlbE9wdGlvbnMgPSBbJ+esrDHlrabmnJ8nLCAn56ysMuWtpuacnycsICfnrKwz5a2m5pyfJywgJ+esrDTlrabmnJ8nLCAn56ysNeWtpuacnycsICfnrKw25a2m5pyfJ10NCmNvbnN0IHJvb21PcHRpb25zID0gWycxMC0wMyYxMC0wMyg1MCknLCAnMTAtMDQmMTAtMDQoNDApJywgJzktMDEnXQ0KY29uc3QgYnVpbGRpbmdPcHRpb25zID0gWyc15Y+35qW8JywgJzblj7fmpbwnLCAn57u85ZCI5qW8J10NCmNvbnN0IHp5anNPcHRpb25zID0gWyfkvZzmiJjlrp7pqozkuK3lv4PlrabmnK/miqXlkYrljoUnLCAn57u85ZCI5pWZ5a2m5qW8MTAxJywgJ+Wtpuacr+aKpeWRiuWOhSddDQoNCi8qKiDmiZPlvIDml7bmoLnmja7liJvlu7ov57yW6L6R5qih5byP5Yid5aeL5YyW6KGo5Y2VICovDQp3YXRjaCgNCiAgKCkgPT4gcHJvcHMubW9kZWxWYWx1ZSwNCiAgKHZhbCkgPT4gew0KICAgIGlmICghdmFsKSByZXR1cm4NCiAgICBjb25zdCBzID0gcHJvcHMuc2VtZXN0ZXIgYXMgRGF0ZVByZXNldA0KICAgIGNvbnN0IHAgPSBwcm9wcy5wcmVzZXQgYXMgRGF0ZVByZXNldA0KICAgIGlmIChwcm9wcy5tb2RlID09PSAnZWRpdCcgJiYgcHJvcHMuZWRpdFJvdykgew0KICAgICAgY29uc3QgciA9IHByb3BzLmVkaXRSb3cNCiAgICAgIGZvcm0uYmMgPSByLmJjID8/ICcnDQogICAgICBmb3JtLnhrenkgPSByLnhrenkgPz8gJycNCiAgICAgIGZvcm0ubmogPSByLm5qID8/ICcnDQogICAgICBmb3JtLnhxID0gcHJvcHMuc2VtZXN0ZXJOYW1lDQogICAgICBmb3JtLnhxY2MgPSByLnhxY2MgPz8gJ+esrDHlrabmnJ8nDQogICAgICBmb3JtLmt4cnEgPSByLmt4cnEgPz8gJycNCiAgICAgIGZvcm0uanNycSA9IHIuanNycSA/PyAnJw0KICAgICAgZm9ybS56cyA9IHIuenMgPz8gMA0KICAgICAgZm9ybS5qeHJ3ID0gci5qeHJ3ID8/ICcnDQogICAgICBmb3JtLmtmcHkgPSByLmtmcHkgPz8gdHJ1ZQ0KICAgICAgZm9ybS56eGpzID0gJycNCiAgICAgIGZvcm0uanhsID0gJycNCiAgICAgIGZvcm0uenlqcyA9IHIuenlqcyA/PyAnJw0KICAgICAgZm9ybS5ieiA9IHIuYnogPz8gJycNCiAgICB9IGVsc2Ugew0KICAgICAgY29uc3QgY2kgPSBwcm9wcy5jbGFzc0luZm8NCiAgICAgIC8vIOWIm+W7uu+8mum7mOiupOW8gOWtpuaXpeacnz3pooTorr7ml6XmnJ/vvIznu5PmnZ/ml6XmnJ896aKE6K6+5pel5pyf77yM5a2m5pyf5ZGo5pWwPemihOiuvuWRqOaVsA0KICAgICAgZm9ybS5iYyA9IGNpPy5iYyA/PyAnJw0KICAgICAgZm9ybS54a3p5ID0gY2k/LnhrenkgPz8gJycNCiAgICAgIGZvcm0ubmogPSBjaT8ubmogPz8gJycNCiAgICAgIGZvcm0ueHEgPSBwcm9wcy5zZW1lc3Rlck5hbWUNCiAgICAgIGZvcm0ueHFjYyA9ICfnrKwx5a2m5pyfJyAvLyDlrabliLbljYrlubTku6XlhoXlj6rog73nrKzkuIDlrabmnJ/vvJvljYrlubTku6XkuIrns7vnu5/mmbrog73mjqjmlq3vvIzkuZ/lj6/miYvliqjmjIflrpoNCiAgICAgIGZvcm0ua3hycSA9IHAua3hycSA/PyBzLmt4cnEgPz8gJycNCiAgICAgIGZvcm0uanNycSA9IHAuanNycSA/PyBzLmpzcnEgPz8gJycNCiAgICAgIGZvcm0uenMgPSBwLndlZWtzIHx8IHMud2Vla3MgfHwgMA0KICAgICAgZm9ybS5qeHJ3ID0gJycNCiAgICAgIGZvcm0ua2ZweSA9IHRydWUNCiAgICAgIGZvcm0uenhqcyA9ICcnDQogICAgICBmb3JtLmp4bCA9ICcnDQogICAgICBmb3JtLnp5anMgPSAnJyAvLyDnrKzkuozku6XkuIrlrabmnJ/pu5jorqTpooTorr7kuIrlrabmnJ/nmoTkuJPnlKjmlZnlrqQNCiAgICAgIGZvcm0uYnogPSAnJw0KICAgIH0NCiAgfQ0KKQ0KDQpjb25zdCBoYW5kbGVDb25maXJtID0gKCkgPT4gew0KICBpZiAoIWZvcm0uYmMpIHsNCiAgICBFbE1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup54+t5qyhJykNCiAgICByZXR1cm4NCiAgfQ0KICBlbWl0KCdjb25maXJtJykNCiAgZGlhbG9nVmlzaWJsZS52YWx1ZSA9IGZhbHNlDQp9DQo="},{"version":3,"sources":["ClassSemesterDetailDialog.vue"],"names":[],"mappings":";AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"ClassSemesterDetailDialog.vue","sourceRoot":"src/views/teachOffice/shiftSemester","sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, reactive, watch } from 'vue'\r\nimport { ElMessage } from 'element-plus'\r\n\r\n/** 可新建学期信息的班次 */\r\nexport interface NewClassInfo {\r\n bc: string // 班次\r\n xkzy: string // 专业\r\n nj: string // 年级\r\n rxrq?: string // 入学日期(用于智能推断/默认开学日期)\r\n byrq?: string // 毕业日期(用于默认结束日期)\r\n}\r\n\r\n/** 校历 / 预设日期 */\r\nexport interface DatePreset {\r\n kxrq: string // 开学日期\r\n jsrq: string // 结束日期\r\n weeks: number\r\n}\r\n\r\nconst props = withDefaults(\r\n defineProps<{\r\n modelValue: boolean\r\n mode?: 'create' | 'edit'\r\n /** 创建:选中的可新建班次 */\r\n classInfo?: NewClassInfo | null\r\n /** 编辑:已有的班次学期信息行 */\r\n editRow?: Record<string, any> | null\r\n /** 学期名称 */\r\n semesterName?: string\r\n /** 校历日期 */\r\n semester?: DatePreset\r\n /** 预设日期 */\r\n preset?: DatePreset\r\n }>(),\r\n {\r\n mode: 'create',\r\n classInfo: null,\r\n editRow: null,\r\n semesterName: '2017年秋季学期',\r\n semester: () => ({ kxrq: '', jsrq: '', weeks: 0 }),\r\n preset: () => ({ kxrq: '', jsrq: '', weeks: 0 })\r\n }\r\n)\r\n\r\nconst emit = defineEmits<{\r\n (e: 'update:modelValue', value: boolean): void\r\n (e: 'confirm'): void\r\n}>()\r\n\r\nconst dialogVisible = computed({\r\n get: () => props.modelValue,\r\n set: (val: boolean) => emit('update:modelValue', val)\r\n})\r\n\r\n// ==================== 表单 ====================\r\nconst form = reactive({\r\n bc: '', // 班次\r\n xkzy: '', // 专业\r\n nj: '', // 年级\r\n xq: '', // 学期\r\n xqcc: '', // 学期第次\r\n kxrq: '', // 开学日期\r\n jsrq: '', // 结束日期\r\n zs: 0, // 学期周数\r\n jxrw: '', // 教学任务\r\n kfpy: true, // 开放教员排课\r\n zxjs: '', // 查找教室(输入拼音首字母快速查找)\r\n jxl: '', // 教学楼\r\n zyjs: '', // 专用教室\r\n bz: '' // 备注\r\n})\r\n\r\nconst isEdit = computed(() => props.mode === 'edit')\r\n\r\nconst taskOptions = ['2017年下半年教学任务', '研究生2017下半年教学任务']\r\nconst levelOptions = ['第1学期', '第2学期', '第3学期', '第4学期', '第5学期', '第6学期']\r\nconst roomOptions = ['10-03&10-03(50)', '10-04&10-04(40)', '9-01']\r\nconst buildingOptions = ['5号楼', '6号楼', '综合楼']\r\nconst zyjsOptions = ['作战实验中心学术报告厅', '综合教学楼101', '学术报告厅']\r\n\r\n/** 打开时根据创建/编辑模式初始化表单 */\r\nwatch(\r\n () => props.modelValue,\r\n (val) => {\r\n if (!val) return\r\n const s = props.semester as DatePreset\r\n const p = props.preset as DatePreset\r\n if (props.mode === 'edit' && props.editRow) {\r\n const r = props.editRow\r\n form.bc = r.bc ?? ''\r\n form.xkzy = r.xkzy ?? ''\r\n form.nj = r.nj ?? ''\r\n form.xq = props.semesterName\r\n form.xqcc = r.xqcc ?? '第1学期'\r\n form.kxrq = r.kxrq ?? ''\r\n form.jsrq = r.jsrq ?? ''\r\n form.zs = r.zs ?? 0\r\n form.jxrw = r.jxrw ?? ''\r\n form.kfpy = r.kfpy ?? true\r\n form.zxjs = ''\r\n form.jxl = ''\r\n form.zyjs = r.zyjs ?? ''\r\n form.bz = r.bz ?? ''\r\n } else {\r\n const ci = props.classInfo\r\n // 创建:默认开学日期=预设日期,结束日期=预设日期,学期周数=预设周数\r\n form.bc = ci?.bc ?? ''\r\n form.xkzy = ci?.xkzy ?? ''\r\n form.nj = ci?.nj ?? ''\r\n form.xq = props.semesterName\r\n form.xqcc = '第1学期' // 学制半年以内只能第一学期;半年以上系统智能推断,也可手动指定\r\n form.kxrq = p.kxrq ?? s.kxrq ?? ''\r\n form.jsrq = p.jsrq ?? s.jsrq ?? ''\r\n form.zs = p.weeks || s.weeks || 0\r\n form.jxrw = ''\r\n form.kfpy = true\r\n form.zxjs = ''\r\n form.jxl = ''\r\n form.zyjs = '' // 第二以上学期默认预设上学期的专用教室\r\n form.bz = ''\r\n }\r\n }\r\n)\r\n\r\nconst handleConfirm = () => {\r\n if (!form.bc) {\r\n ElMessage.warning('请选择班次')\r\n return\r\n }\r\n emit('confirm')\r\n dialogVisible.value = false\r\n}\r\n</script>\r\n\r\n<template>\r\n <el-dialog\r\n v-model=\"dialogVisible\"\r\n :title=\"isEdit ? '修改教学班次学期信息明细' : '教学班次学期信息明细'\"\r\n width=\"720px\"\r\n class=\"class-detail-dialog\"\r\n :close-on-click-modal=\"false\"\r\n destroy-on-close\r\n >\r\n <el-form label-width=\"100px\" class=\"detail-form\">\r\n <el-row :gutter=\"24\">\r\n <!-- 左列 -->\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"班次\">\r\n <el-input v-model=\"form.bc\" readonly />\r\n </el-form-item>\r\n <el-form-item label=\"专业\">\r\n <el-input v-model=\"form.xkzy\" readonly />\r\n </el-form-item>\r\n <el-form-item label=\"年级\">\r\n <el-input v-model=\"form.nj\" readonly />\r\n </el-form-item>\r\n <el-form-item label=\"学期\">\r\n <el-input v-model=\"form.xq\" readonly />\r\n </el-form-item>\r\n <el-form-item label=\"开学日期\">\r\n <el-date-picker v-model=\"form.kxrq\" type=\"date\" format=\"YYYY年M月D日\" value-format=\"YYYY-MM-DD\" style=\"width: 100%\" />\r\n </el-form-item>\r\n <el-form-item label=\"结束日期\">\r\n <el-date-picker v-model=\"form.jsrq\" type=\"date\" format=\"YYYY年M月D日\" value-format=\"YYYY-MM-DD\" style=\"width: 100%\" />\r\n </el-form-item>\r\n <el-form-item label=\"学期周数\">\r\n <el-input v-model=\"form.zs\" />\r\n </el-form-item>\r\n </el-col>\r\n <!-- 右列 -->\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"教学任务\">\r\n <el-select v-model=\"form.jxrw\" clearable placeholder=\"请选择\" style=\"width: 100%\">\r\n <el-option v-for=\"opt in taskOptions\" :key=\"opt\" :label=\"opt\" :value=\"opt\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"学期第次\">\r\n <el-select v-model=\"form.xqcc\" style=\"width: 100%\">\r\n <el-option v-for=\"opt in levelOptions\" :key=\"opt\" :label=\"opt\" :value=\"opt\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"开放教员排课\">\r\n <el-checkbox v-model=\"form.kfpy\" />\r\n </el-form-item>\r\n <el-form-item label=\"查找教室\">\r\n <el-select\r\n v-model=\"form.zxjs\"\r\n filterable\r\n clearable\r\n placeholder=\"输入拼音首字母快速查找\"\r\n style=\"width: 100%\"\r\n >\r\n <el-option v-for=\"opt in roomOptions\" :key=\"opt\" :label=\"opt\" :value=\"opt\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"教学楼\">\r\n <el-select v-model=\"form.jxl\" style=\"width: 100%\">\r\n <el-option v-for=\"opt in buildingOptions\" :key=\"opt\" :label=\"opt\" :value=\"opt\" />\r\n </el-select>\r\n </el-form-item>\r\n <el-form-item label=\"专用教室\">\r\n <el-select v-model=\"form.zyjs\" style=\"width: 100%\">\r\n <el-option v-for=\"opt in zyjsOptions\" :key=\"opt\" :label=\"opt\" :value=\"opt\" />\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n </el-row>\r\n <!-- 备注 -->\r\n <el-form-item label=\"备注\">\r\n <el-input v-model=\"form.bz\" type=\"textarea\" :rows=\"3\" placeholder=\"\" style=\"width: 100%\" />\r\n </el-form-item>\r\n </el-form>\r\n\r\n <template #footer>\r\n <el-button @click=\"dialogVisible = false\">取消</el-button>\r\n <el-button type=\"primary\" @click=\"handleConfirm\">确定</el-button>\r\n </template>\r\n </el-dialog>\r\n</template>\r\n\r\n<style scoped lang=\"scss\">\r\n.class-detail-dialog {\r\n .detail-form {\r\n :deep(.el-input.is-disabled .el-input__wrapper) {\r\n background-color: #f5f7fa;\r\n }\r\n }\r\n}\r\n</style>"]}]}