教学日志管理
This commit is contained in:
+39
-43
@@ -1,10 +1,9 @@
|
|||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
|
||||||
// ======================== 教学日志核心 ========================
|
// ======================== 教学日志核心(以 api.txt 为准) ========================
|
||||||
// 说明:以下接口均已与实际运行的后端 LogController 逐一核对(前缀 /log,
|
// 接口前缀 /log,经 vue.config.js 代理转发为 /api/log(axios baseURL 为 /api)。
|
||||||
// 经 vue.config.js 代理转发为 /api/log)。axios baseURL 为 /api(.env.development)。
|
|
||||||
|
|
||||||
// 分页条件查询教学日志列表(待上报 / 待审核视图)
|
// 分页条件查询教学日志列表(待上报视图)
|
||||||
// 支持参数:pageNum pageSize ksrq jsrq kcmc jys jxff skjy rzzt pxqb gdqk gdxxqk rwlb
|
// 支持参数:pageNum pageSize ksrq jsrq kcmc jys jxff skjy rzzt pxqb gdqk gdxxqk rwlb
|
||||||
export function getTeachingLogList(query) {
|
export function getTeachingLogList(query) {
|
||||||
return request({
|
return request({
|
||||||
@@ -32,7 +31,7 @@ export function getAuditedTeachingLogList(query) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增教学日志
|
// 新增教学日志(请求体为 SSKCB_RZ 实体)
|
||||||
export function addTeachingLog(data) {
|
export function addTeachingLog(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/log/teaching-log/add',
|
url: '/log/teaching-log/add',
|
||||||
@@ -41,21 +40,39 @@ export function addTeachingLog(data) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 批量上报教学日志(入参为 bh 编号数组,Content-Type: application/json)
|
// 编辑教学日志(请求体为 SSKCB_RZ 实体,bh 必传)
|
||||||
export function batchReportTeachingLog(bhList) {
|
export function updateTeachingLog(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/log/teaching-log/batch-report',
|
url: '/log/teaching-log/update',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: bhList
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// 批量审核教学日志(入参为 bh 编号数组)
|
// 根据编号查询教学日志详情
|
||||||
export function batchAuditTeachingLog(bhList) {
|
export function getTeachingLogByBh(bh) {
|
||||||
return request({
|
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',
|
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)
|
// 批量导入教学日志 Excel,接口形态:POST /log/teaching-log/import-excel(multipart,字段名 file)
|
||||||
export function importTeachingLogExcel(file) {
|
export function importTeachingLogExcel(file) {
|
||||||
const formData = new FormData()
|
const formData = new FormData()
|
||||||
@@ -97,33 +123,3 @@ export function downloadTeachingLogTemplate() {
|
|||||||
responseType: 'blob'
|
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 }
|
|
||||||
})
|
|
||||||
}
|
|
||||||
@@ -221,9 +221,7 @@
|
|||||||
import { formatDate } from '@/utils/index'
|
import { formatDate } from '@/utils/index'
|
||||||
import {
|
import {
|
||||||
getTeachingLogList,
|
getTeachingLogList,
|
||||||
deleteTeachingLog,
|
submitTeachingLog,
|
||||||
batchReportTeachingLog,
|
|
||||||
recheckTeachingLog,
|
|
||||||
exportTeachingLog,
|
exportTeachingLog,
|
||||||
importTeachingLogExcel,
|
importTeachingLogExcel,
|
||||||
downloadTeachingLogTemplate,
|
downloadTeachingLogTemplate,
|
||||||
@@ -380,43 +378,36 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
handleDeleteSelected() {
|
handleDeleteSelected() {
|
||||||
const ids = this.getSelectedBhs()
|
// 后端暂未提供删除接口,仅作提示
|
||||||
if (ids.length === 0) return
|
this.$message.info('后端暂未提供该接口')
|
||||||
this.$confirm(`确定要删除选中的 ${ids.length} 条记录吗?`, '删除确认', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
})
|
|
||||||
.then(() => deleteTeachingLog(ids))
|
|
||||||
.then(() => {
|
|
||||||
this.$message.success(`已删除 ${ids.length} 条记录`)
|
|
||||||
this.fetchList()
|
|
||||||
})
|
|
||||||
.catch(() => {})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
handleBatchReport() {
|
handleBatchReport() {
|
||||||
const ids = this.getSelectedBhs()
|
const ids = this.getSelectedBhs()
|
||||||
if (ids.length === 0) return
|
if (ids.length === 0) return
|
||||||
this.$confirm(`确定要批量上报选中的 ${ids.length} 条记录吗?`, '上报确认', {
|
this.$confirm(`确定要上报选中的 ${ids.length} 条记录吗?`, '上报确认', {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
})
|
})
|
||||||
.then(() => batchReportTeachingLog(ids))
|
|
||||||
.then(() => {
|
.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()
|
this.fetchList()
|
||||||
})
|
})
|
||||||
.catch(() => {})
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
|
|
||||||
handleRecheck() {
|
handleRecheck() {
|
||||||
recheckTeachingLog()
|
// 后端暂未提供重新检查接口,仅作提示
|
||||||
.then(() => {
|
this.$message.info('后端暂未提供该接口')
|
||||||
this.$message.success('重新检查完成')
|
|
||||||
})
|
|
||||||
.catch(() => {})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
downloadBlob(blob, fileName) {
|
downloadBlob(blob, fileName) {
|
||||||
|
|||||||
@@ -208,10 +208,8 @@
|
|||||||
import { formatDate } from '@/utils/index'
|
import { formatDate } from '@/utils/index'
|
||||||
import {
|
import {
|
||||||
getReportedTeachingLogList,
|
getReportedTeachingLogList,
|
||||||
deleteTeachingLog,
|
approveTeachingLog,
|
||||||
batchAuditTeachingLog,
|
|
||||||
rejectTeachingLog,
|
rejectTeachingLog,
|
||||||
recheckTeachingLog,
|
|
||||||
exportTeachingLog,
|
exportTeachingLog,
|
||||||
getTeachingLogByBh
|
getTeachingLogByBh
|
||||||
} from '@/api/log'
|
} from '@/api/log'
|
||||||
@@ -375,19 +373,8 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
handleDelete() {
|
handleDelete() {
|
||||||
const ids = this.getSelectedBhs()
|
// 后端暂未提供删除接口,仅作提示
|
||||||
if (ids.length === 0) return
|
this.$message.info('后端暂未提供该接口')
|
||||||
this.$confirm(`确定要删除选中的 ${ids.length} 条记录吗?`, '删除确认', {
|
|
||||||
confirmButtonText: '确定',
|
|
||||||
cancelButtonText: '取消',
|
|
||||||
type: 'warning'
|
|
||||||
})
|
|
||||||
.then(() => deleteTeachingLog(ids))
|
|
||||||
.then(() => {
|
|
||||||
this.$message.success(`已删除 ${ids.length} 条记录`)
|
|
||||||
this.fetchList()
|
|
||||||
})
|
|
||||||
.catch(() => {})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
handleAudit() {
|
handleAudit() {
|
||||||
@@ -398,7 +385,14 @@ export default {
|
|||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
type: 'warning'
|
type: 'warning'
|
||||||
})
|
})
|
||||||
.then(() => batchAuditTeachingLog(ids))
|
.then(() => {
|
||||||
|
// 审核通过教学日志,逐条审核
|
||||||
|
let settled = Promise.resolve()
|
||||||
|
ids.forEach((bh) => {
|
||||||
|
settled = settled.then(() => approveTeachingLog(bh, ''))
|
||||||
|
})
|
||||||
|
return settled
|
||||||
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.$message.success(`已审核通过 ${ids.length} 条记录`)
|
this.$message.success(`已审核通过 ${ids.length} 条记录`)
|
||||||
this.fetchList()
|
this.fetchList()
|
||||||
@@ -432,11 +426,8 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
handleRecheck() {
|
handleRecheck() {
|
||||||
recheckTeachingLog()
|
// 后端暂未提供重新检查接口,仅作提示
|
||||||
.then(() => {
|
this.$message.info('后端暂未提供该接口')
|
||||||
this.$message.success('重新检查变更情况完成')
|
|
||||||
})
|
|
||||||
.catch(() => {})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
downloadBlob(blob, fileName) {
|
downloadBlob(blob, fileName) {
|
||||||
|
|||||||
Reference in New Issue
Block a user