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

1 line
12 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\\ClassTeamSelectDialog.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\teachOffice\\shiftSemester\\ClassTeamSelectDialog.vue","mtime":1787648748786},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQpleHBvcnQgZGVmYXVsdCB7DQogIG5hbWU6ICdDbGFzc1RlYW1TZWxlY3REaWFsb2cnLA0KICBwcm9wczogew0KICAgIHZpc2libGU6IHsgdHlwZTogQm9vbGVhbiwgZGVmYXVsdDogZmFsc2UgfSwNCiAgICAvKiog5qCH6aKY77yI5Y+v6YCJ77yJICovDQogICAgdGl0bGU6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAn55uu5qCH54+t5qyh5a2m5pyf6YCJ5Y+WJyB9LA0KICAgIC8qKiDlj6/pgInnmoTnm67moIfnj63mrKHlrabmnJ/liJfooajvvIjlkKsgYmgvbmQveHFkYy94eWRiaC9reHJxL2pzcnEg562J77yJICovDQogICAgc2VtZXN0ZXJMaXN0OiB7IHR5cGU6IEFycmF5LCBkZWZhdWx0OiAoKSA9PiBbXSB9LA0KICAgIC8qKiDpnIDopoHmjpLpmaTnmoTnj63mrKHlrabmnJ/nvJblj7fvvIjlvZPliY3nj63mrKHlrabmnJ/vvIzkuI3lj6/lpI3liLbnu5noh6rlt7HvvIkgKi8NCiAgICBleGNsdWRlQmg6IHsgdHlwZTogU3RyaW5nLCBkZWZhdWx0OiAnJyB9LA0KICAgIC8qKiDpobbpg6jmk43kvZzor7TmmI4gKi8NCiAgICBleGNsdWRlTm90ZTogeyB0eXBlOiBTdHJpbmcsIGRlZmF1bHQ6ICcnIH0NCiAgfSwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgbG9hZGluZzogZmFsc2UsDQogICAgICBxdWVyeUZvcm06IHsgeHlkYmg6ICcnIH0sDQogICAgICBzZWxlY3Rpb246IFtdDQogICAgfQ0KICB9LA0KICBjb21wdXRlZDogew0KICAgIGRpYWxvZ1Zpc2libGU6IHsNCiAgICAgIGdldCgpIHsNCiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZQ0KICAgICAgfSwNCiAgICAgIHNldCh2YWwpIHsNCiAgICAgICAgdGhpcy4kZW1pdCgndXBkYXRlOnZpc2libGUnLCB2YWwpDQogICAgICB9DQogICAgfSwNCiAgICAvKiog5o6S6Zmk5b2T5YmN54+t5qyh5a2m5pyf5ZCO55qE5Y+v6YCJ5YiX6KGoICovDQogICAgYXZhaWxhYmxlTGlzdCgpIHsNCiAgICAgIGNvbnN0IGV4Y2x1ZGVCaCA9IHRoaXMuZXhjbHVkZUJoIHx8ICcnDQogICAgICByZXR1cm4gKHRoaXMuc2VtZXN0ZXJMaXN0IHx8IFtdKS5maWx0ZXIoaXRlbSA9PiBpdGVtLmJoICYmIFN0cmluZyhpdGVtLmJoKSAhPT0gU3RyaW5nKGV4Y2x1ZGVCaCkpDQogICAgfSwNCiAgICAvKiog5pys5Zyw6L+H5ruk5ZCO55qE5YiX6KGoICovDQogICAgZmlsdGVyZWRMaXN0KCkgew0KICAgICAgY29uc3Qga3cgPSAodGhpcy5xdWVyeUZvcm0ueHlkYmggfHwgJycpLnRyaW0oKQ0KICAgICAgaWYgKCFrdykgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGlzdA0KICAgICAgcmV0dXJuIHRoaXMuYXZhaWxhYmxlTGlzdC5maWx0ZXIoaXRlbSA9PiBpdGVtLnh5ZGJoICYmIFN0cmluZyhpdGVtLnh5ZGJoKS5pbmNsdWRlcyhrdykpDQogICAgfQ0KICB9LA0KICB3YXRjaDogew0KICAgIHZpc2libGUodmFsKSB7DQogICAgICBpZiAodmFsKSB7DQogICAgICAgIHRoaXMuc2VsZWN0aW9uID0gW10NCiAgICAgICAgdGhpcy5xdWVyeUZvcm0ueHlkYmggPSAnJw0KICAgICAgICB0aGlzLiRuZXh0VGljaygoKSA9PiB7DQogICAgICAgICAgaWYgKHRoaXMuJHJlZnMudGFibGVSZWYpIHRoaXMuJHJlZnMudGFibGVSZWYuY2xlYXJTZWxlY3Rpb24oKQ0KICAgICAgICB9KQ0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGZtdERhdGUodmFsKSB7DQogICAgICBpZiAoIXZhbCkgcmV0dXJuICctJw0KICAgICAgcmV0dXJuIFN0cmluZyh2YWwpLnNsaWNlKDAsIDEwKQ0KICAgIH0sDQogICAgeHFkY0xhYmVsKHZhbCkgew0KICAgICAgaWYgKHZhbCA9PT0gMSB8fCB2YWwgPT09ICcxJykgcmV0dXJuICfnrKwx5a2m5pyfJw0KICAgICAgaWYgKHZhbCA9PT0gMiB8fCB2YWwgPT09ICcyJykgcmV0dXJuICfnrKwy5a2m5pyfJw0KICAgICAgaWYgKHZhbCA9PT0gMyB8fCB2YWwgPT09ICczJykgcmV0dXJuICfnrKwz5a2m5pyfJw0KICAgICAgcmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkICYmIHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09ICcnID8gYOesrCR7dmFsfeWtpuacn2AgOiAnLScNCiAgICB9LA0KICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZShyb3dzKSB7DQogICAgICB0aGlzLnNlbGVjdGlvbiA9IHJvd3MNCiAgICB9LA0KICAgIGhhbmRsZVF1ZXJ5KCkge30sDQogICAgaGFuZGxlUmVzZXRRdWVyeSgpIHsNCiAgICAgIHRoaXMucXVlcnlGb3JtLnh5ZGJoID0gJycNCiAgICB9LA0KICAgIGhhbmRsZUNvbmZpcm0oKSB7DQogICAgICBpZiAoIXRoaXMuc2VsZWN0aW9uLmxlbmd0aCkgew0KICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+WFiOWLvumAieebruagh+ePreasoeWtpuacnycpDQogICAgICAgIHJldHVybg0KICAgICAgfQ0KICAgICAgdGhpcy4kZW1pdCgnY29uZmlybScsIHRoaXMuc2VsZWN0aW9uLnNsaWNlKCkpDQogICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSBmYWxzZQ0KICAgIH0NCiAgfQ0KfQ0K"},{"version":3,"sources":["ClassTeamSelectDialog.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0EA;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;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","file":"ClassTeamSelectDialog.vue","sourceRoot":"src/views/teachOffice/shiftSemester","sourcesContent":["<template>\r\n <el-dialog\r\n :visible=\"dialogVisible\"\r\n :title=\"title\"\r\n width=\"900px\"\r\n top=\"8vh\"\r\n :close-on-click-modal=\"false\"\r\n class=\"team-select-dialog\"\r\n @update:visible=\"val => dialogVisible = val\"\r\n >\r\n <div class=\"team-select\">\r\n <!-- ==================== 操作说明 ==================== -->\r\n <div v-if=\"excludeNote\" class=\"note-bar\">\r\n <i class=\"el-icon-info\"></i>\r\n <span>{{ excludeNote }}</span>\r\n </div>\r\n\r\n <!-- ==================== 查询条件区域 ==================== -->\r\n <div class=\"query-panel\">\r\n <el-form :inline=\"true\" class=\"query-form\" @submit.native.prevent>\r\n <el-form-item label=\"班次编号\">\r\n <el-input\r\n v-model=\"queryForm.xydbh\"\r\n placeholder=\"请输入班次编号(模糊)\"\r\n clearable\r\n style=\"width: 220px\"\r\n @keyup.enter.native=\"handleQuery\"\r\n />\r\n </el-form-item>\r\n <el-form-item>\r\n <el-button type=\"primary\" size=\"small\" icon=\"el-icon-search\" @click=\"handleQuery\">查询</el-button>\r\n <el-button size=\"small\" @click=\"handleResetQuery\">重置</el-button>\r\n </el-form-item>\r\n </el-form>\r\n </div>\r\n\r\n <!-- ==================== 目标班次学期表格 ==================== -->\r\n <div class=\"table-panel\">\r\n <el-table\r\n ref=\"tableRef\"\r\n v-loading=\"loading\"\r\n :data=\"filteredList\"\r\n border\r\n stripe\r\n size=\"small\"\r\n max-height=\"360\"\r\n class=\"team-table\"\r\n @selection-change=\"handleSelectionChange\"\r\n >\r\n <el-table-column type=\"selection\" width=\"44\" align=\"center\" reserve-selection />\r\n <el-table-column type=\"index\" label=\"序号\" width=\"55\" align=\"center\" />\r\n <el-table-column prop=\"nd\" label=\"年度\" width=\"80\" align=\"center\" show-overflow-tooltip />\r\n <el-table-column label=\"学期第次\" width=\"90\" align=\"center\">\r\n <template slot-scope=\"{ row }\">{{ xqdcLabel(row.xqdc) }}</template>\r\n </el-table-column>\r\n <el-table-column prop=\"xydbh\" label=\"班次编号\" min-width=\"150\" align=\"center\" show-overflow-tooltip />\r\n <el-table-column prop=\"kxrq\" label=\"开学日期\" width=\"110\" align=\"center\" :formatter=\"fmtDate\" />\r\n <el-table-column prop=\"jsrq\" label=\"结束日期\" width=\"110\" align=\"center\" :formatter=\"fmtDate\" />\r\n <el-table-column prop=\"bz\" label=\"备注\" min-width=\"120\" align=\"left\" header-align=\"center\" show-overflow-tooltip />\r\n </el-table>\r\n <el-empty v-if=\"!filteredList.length\" description=\"暂无可选的目标班次学期\" :image-size=\"60\" />\r\n </div>\r\n\r\n <!-- ==================== 底部按钮区域 ==================== -->\r\n <div class=\"footer-actions\">\r\n <span class=\"selected-count\">已选择 {{ selection.length }} 个班次学期</span>\r\n <el-button size=\"small\" @click=\"dialogVisible = false\">取消</el-button>\r\n <el-button size=\"small\" type=\"primary\" :disabled=\"!selection.length\" @click=\"handleConfirm\">确定</el-button>\r\n </div>\r\n </div>\r\n </el-dialog>\r\n</template>\r\n\r\n<script>\r\nexport default {\r\n name: 'ClassTeamSelectDialog',\r\n props: {\r\n visible: { type: Boolean, default: false },\r\n /** 标题(可选) */\r\n title: { type: String, default: '目标班次学期选取' },\r\n /** 可选的目标班次学期列表(含 bh/nd/xqdc/xydbh/kxrq/jsrq 等) */\r\n semesterList: { type: Array, default: () => [] },\r\n /** 需要排除的班次学期编号(当前班次学期,不可复制给自己) */\r\n excludeBh: { type: String, default: '' },\r\n /** 顶部操作说明 */\r\n excludeNote: { type: String, default: '' }\r\n },\r\n data() {\r\n return {\r\n loading: false,\r\n queryForm: { xydbh: '' },\r\n selection: []\r\n }\r\n },\r\n computed: {\r\n dialogVisible: {\r\n get() {\r\n return this.visible\r\n },\r\n set(val) {\r\n this.$emit('update:visible', val)\r\n }\r\n },\r\n /** 排除当前班次学期后的可选列表 */\r\n availableList() {\r\n const excludeBh = this.excludeBh || ''\r\n return (this.semesterList || []).filter(item => item.bh && String(item.bh) !== String(excludeBh))\r\n },\r\n /** 本地过滤后的列表 */\r\n filteredList() {\r\n const kw = (this.queryForm.xydbh || '').trim()\r\n if (!kw) return this.availableList\r\n return this.availableList.filter(item => item.xydbh && String(item.xydbh).includes(kw))\r\n }\r\n },\r\n watch: {\r\n visible(val) {\r\n if (val) {\r\n this.selection = []\r\n this.queryForm.xydbh = ''\r\n this.$nextTick(() => {\r\n if (this.$refs.tableRef) this.$refs.tableRef.clearSelection()\r\n })\r\n }\r\n }\r\n },\r\n methods: {\r\n fmtDate(val) {\r\n if (!val) return '-'\r\n return String(val).slice(0, 10)\r\n },\r\n xqdcLabel(val) {\r\n if (val === 1 || val === '1') return '第1学期'\r\n if (val === 2 || val === '2') return '第2学期'\r\n if (val === 3 || val === '3') return '第3学期'\r\n return val !== undefined && val !== null && val !== '' ? `第${val}学期` : '-'\r\n },\r\n handleSelectionChange(rows) {\r\n this.selection = rows\r\n },\r\n handleQuery() {},\r\n handleResetQuery() {\r\n this.queryForm.xydbh = ''\r\n },\r\n handleConfirm() {\r\n if (!this.selection.length) {\r\n this.$message.warning('请先勾选目标班次学期')\r\n return\r\n }\r\n this.$emit('confirm', this.selection.slice())\r\n this.dialogVisible = false\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style scoped lang=\"scss\">\r\n.team-select {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 12px;\r\n\r\n // ========== 操作说明 ==========\r\n .note-bar {\r\n display: flex;\r\n align-items: center;\r\n gap: 6px;\r\n padding: 8px 12px;\r\n font-size: 13px;\r\n color: #1e6fff;\r\n background: #ecf5ff;\r\n border: 1px solid #d9ecff;\r\n border-radius: 4px;\r\n }\r\n\r\n // ========== 查询条件区域 ==========\r\n .query-panel {\r\n background: #fff;\r\n border: 1px solid #ebeef5;\r\n border-radius: 4px;\r\n padding: 10px 12px 2px;\r\n\r\n .query-form {\r\n ::v-deep .el-form-item {\r\n margin-bottom: 8px;\r\n }\r\n }\r\n }\r\n\r\n // ========== 表格区域 ==========\r\n .table-panel {\r\n position: relative;\r\n background: #fff;\r\n border: 1px solid #ebeef5;\r\n border-radius: 4px;\r\n padding: 10px;\r\n overflow: hidden;\r\n\r\n .team-table {\r\n width: 100%;\r\n }\r\n\r\n ::v-deep .el-empty {\r\n padding: 12px 0;\r\n }\r\n }\r\n\r\n // ========== 底部按钮区域 ==========\r\n .footer-actions {\r\n display: flex;\r\n justify-content: flex-end;\r\n align-items: center;\r\n gap: 8px;\r\n padding-top: 12px;\r\n border-top: 1px solid #ebeef5;\r\n\r\n .selected-count {\r\n flex: 1;\r\n font-size: 13px;\r\n color: #606266;\r\n }\r\n }\r\n}\r\n</style>\r\n"]}]}