diff --git a/frontend/src/api/log.js b/frontend/src/api/log.js index 75f13d6b..c3114b47 100644 --- a/frontend/src/api/log.js +++ b/frontend/src/api/log.js @@ -1,10 +1,9 @@ import request from '@/utils/request' -// ======================== 教学日志核心 ======================== -// 说明:以下接口均已与实际运行的后端 LogController 逐一核对(前缀 /log, -// 经 vue.config.js 代理转发为 /api/log)。axios baseURL 为 /api(.env.development)。 +// ======================== 教学日志核心(以 api.txt 为准) ======================== +// 接口前缀 /log,经 vue.config.js 代理转发为 /api/log(axios baseURL 为 /api)。 -// 分页条件查询教学日志列表(待上报 / 待审核视图) +// 分页条件查询教学日志列表(待上报视图) // 支持参数:pageNum pageSize ksrq jsrq kcmc jys jxff skjy rzzt pxqb gdqk gdxxqk rwlb export function getTeachingLogList(query) { return request({ @@ -32,7 +31,7 @@ export function getAuditedTeachingLogList(query) { }) } -// 新增教学日志 +// 新增教学日志(请求体为 SSKCB_RZ 实体) export function addTeachingLog(data) { return request({ url: '/log/teaching-log/add', @@ -41,21 +40,39 @@ export function addTeachingLog(data) { }) } -// 批量上报教学日志(入参为 bh 编号数组,Content-Type: application/json) -export function batchReportTeachingLog(bhList) { +// 编辑教学日志(请求体为 SSKCB_RZ 实体,bh 必传) +export function updateTeachingLog(data) { return request({ - url: '/log/teaching-log/batch-report', + url: '/log/teaching-log/update', method: 'post', - data: bhList + data: data }) } -// 批量审核教学日志(入参为 bh 编号数组) -export function batchAuditTeachingLog(bhList) { +// 根据编号查询教学日志详情 +export function getTeachingLogByBh(bh) { return request({ - url: '/log/teaching-log/batch-audit', + url: '/log/teaching-log/get', + method: 'get', + params: { bh: bh } + }) +} + +// 提交教学日志审核,接口形态:POST /log/teaching-log/submit?bh=&targetStatus= +export function submitTeachingLog(bh, targetStatus) { + return request({ + url: '/log/teaching-log/submit', method: 'post', - data: bhList + params: { bh: bh, targetStatus: targetStatus } + }) +} + +// 审核通过教学日志,接口形态:GET /log/teaching-log/approve?bh=&feedback= +export function approveTeachingLog(bh, feedback) { + return request({ + url: '/log/teaching-log/approve', + method: 'get', + params: { bh: bh, feedback: feedback } }) } @@ -68,6 +85,15 @@ export function rejectTeachingLog(bh, thyj) { }) } +// 根据课表自动创建教学日志,接口形态:POST /log/teaching-log/auto-create?tybh= +export function autoCreateTeachingLog(tybh) { + return request({ + url: '/log/teaching-log/auto-create', + method: 'post', + params: { tybh: tybh } + }) +} + // 批量导入教学日志 Excel,接口形态:POST /log/teaching-log/import-excel(multipart,字段名 file) export function importTeachingLogExcel(file) { const formData = new FormData() @@ -97,33 +123,3 @@ export function downloadTeachingLogTemplate() { responseType: 'blob' }) } - -// ======================== TODO:后端暂未提供,保留占位待接 ======================== - -// TODO(后端缺接口):批量删除教学日志 —— 当前后端 LogController 无 delete 接口, -// 待后端提供后确认入参与请求方式。 -export function deleteTeachingLog(bhList) { - return request({ - url: '/log/teaching-log/delete', - method: 'post', - data: bhList - }) -} - -// TODO(后端缺接口):重新检查通报变更情况 —— 当前后端无 recheck 接口,待后端提供后确认。 -export function recheckTeachingLog() { - return request({ - url: '/log/teaching-log/recheck', - method: 'post' - }) -} - -// TODO(后端缺接口):根据编号查询教学日志详情 —— 当前后端无 teaching-log/get 接口。 -// 列表接口已含完整字段,组件以行数据兜底展示;待后端提供 get 接口后再联调。 -export function getTeachingLogByBh(bh) { - return request({ - url: '/log/teaching-log/get', - method: 'get', - params: { bh: bh } - }) -} \ No newline at end of file diff --git a/frontend/src/views/teachingLog/organLog/components/logView.vue b/frontend/src/views/teachingLog/organLog/components/logView.vue index 92afd58f..0736fcc8 100644 --- a/frontend/src/views/teachingLog/organLog/components/logView.vue +++ b/frontend/src/views/teachingLog/organLog/components/logView.vue @@ -221,9 +221,7 @@ import { formatDate } from '@/utils/index' import { getTeachingLogList, - deleteTeachingLog, - batchReportTeachingLog, - recheckTeachingLog, + submitTeachingLog, exportTeachingLog, importTeachingLogExcel, downloadTeachingLogTemplate, @@ -380,43 +378,36 @@ export default { }, handleDeleteSelected() { - const ids = this.getSelectedBhs() - if (ids.length === 0) return - this.$confirm(`确定要删除选中的 ${ids.length} 条记录吗?`, '删除确认', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }) - .then(() => deleteTeachingLog(ids)) - .then(() => { - this.$message.success(`已删除 ${ids.length} 条记录`) - this.fetchList() - }) - .catch(() => {}) + // 后端暂未提供删除接口,仅作提示 + this.$message.info('后端暂未提供该接口') }, handleBatchReport() { const ids = this.getSelectedBhs() if (ids.length === 0) return - this.$confirm(`确定要批量上报选中的 ${ids.length} 条记录吗?`, '上报确认', { + this.$confirm(`确定要上报选中的 ${ids.length} 条记录吗?`, '上报确认', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }) - .then(() => batchReportTeachingLog(ids)) .then(() => { - this.$message.success(`已批量上报 ${ids.length} 条记录`) + // 提交教学日志审核,逐条上报至「已上报」状态 + let settled = Promise.resolve() + ids.forEach((bh) => { + settled = settled.then(() => submitTeachingLog(bh, '已上报')) + }) + return settled + }) + .then(() => { + this.$message.success(`已上报 ${ids.length} 条记录`) this.fetchList() }) .catch(() => {}) }, handleRecheck() { - recheckTeachingLog() - .then(() => { - this.$message.success('重新检查完成') - }) - .catch(() => {}) + // 后端暂未提供重新检查接口,仅作提示 + this.$message.info('后端暂未提供该接口') }, downloadBlob(blob, fileName) { diff --git a/frontend/src/views/teachingLog/organLog/components/reportedView.vue b/frontend/src/views/teachingLog/organLog/components/reportedView.vue index fe5b7fb8..7cd6d28d 100644 --- a/frontend/src/views/teachingLog/organLog/components/reportedView.vue +++ b/frontend/src/views/teachingLog/organLog/components/reportedView.vue @@ -208,10 +208,8 @@ import { formatDate } from '@/utils/index' import { getReportedTeachingLogList, - deleteTeachingLog, - batchAuditTeachingLog, + approveTeachingLog, rejectTeachingLog, - recheckTeachingLog, exportTeachingLog, getTeachingLogByBh } from '@/api/log' @@ -375,19 +373,8 @@ export default { }, handleDelete() { - const ids = this.getSelectedBhs() - if (ids.length === 0) return - this.$confirm(`确定要删除选中的 ${ids.length} 条记录吗?`, '删除确认', { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning' - }) - .then(() => deleteTeachingLog(ids)) - .then(() => { - this.$message.success(`已删除 ${ids.length} 条记录`) - this.fetchList() - }) - .catch(() => {}) + // 后端暂未提供删除接口,仅作提示 + this.$message.info('后端暂未提供该接口') }, handleAudit() { @@ -398,7 +385,14 @@ export default { cancelButtonText: '取消', type: 'warning' }) - .then(() => batchAuditTeachingLog(ids)) + .then(() => { + // 审核通过教学日志,逐条审核 + let settled = Promise.resolve() + ids.forEach((bh) => { + settled = settled.then(() => approveTeachingLog(bh, '')) + }) + return settled + }) .then(() => { this.$message.success(`已审核通过 ${ids.length} 条记录`) this.fetchList() @@ -432,11 +426,8 @@ export default { }, handleRecheck() { - recheckTeachingLog() - .then(() => { - this.$message.success('重新检查变更情况完成') - }) - .catch(() => {}) + // 后端暂未提供重新检查接口,仅作提示 + this.$message.info('后端暂未提供该接口') }, downloadBlob(blob, fileName) {