Files
his/openhis-ui-vue3/src/views/basicmanage/outpatientNoManagement/components/operationLog.js

106 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 操作日志工具
* 所有操作必须有操作日志
*/
import { addOperationLog } from './outpatientNumber'
/**
* 记录操作日志
* @param {Object} params
* @param {string} params.operation - 操作类型(新增/修改/删除/查询)
* @param {string} params.details - 操作详情
* @param {boolean} params.success - 操作是否成功
* @param {string} params.errorMessage - 错误信息
* @param {Object} params.userInfo - 用户信息
*/
export async function logOperation({ operation, details, success, errorMessage, userInfo }) {
try {
const logData = {
operation,
details,
success,
errorMessage: errorMessage || null,
timestamp: new Date().toISOString(),
userId: userInfo?.id || null,
userName: userInfo?.name || null,
}
// 控制台输出(便于调试)
console.log('[门诊号码管理] 操作日志:', logData)
// 调用后端接口记录日志
try {
await addOperationLog(logData)
} catch (apiError) {
console.warn('[门诊号码管理] 日志接口调用失败,仅记录到控制台')
}
} catch (error) {
console.error('[门诊号码管理] 记录日志失败:', error)
}
}
/**
* 记录查询操作
*/
export function logQuery(recordCount, userInfo) {
return logOperation({
operation: '查询',
details: `查询门诊号码段列表,共 ${recordCount} 条记录`,
success: true,
userInfo
})
}
/**
* 记录新增操作
*/
export function logCreate(record, success, errorMessage, userInfo) {
const details = success
? `新增门诊号码段:${record.startNo} - ${record.endNo}(操作员:${record.operatorName}`
: `尝试新增门诊号码段:${record.startNo} - ${record.endNo},失败原因:${errorMessage}`
return logOperation({
operation: '新增',
details,
success,
errorMessage,
userInfo
})
}
/**
* 记录修改操作
*/
export function logUpdate(record, success, errorMessage, userInfo) {
const details = success
? `修改门诊号码段:${record.startNo} - ${record.endNo}ID${record.id}`
: `尝试修改门诊号码段 ID${record.id},失败原因:${errorMessage}`
return logOperation({
operation: '修改',
details,
success,
errorMessage,
userInfo
})
}
/**
* 记录删除操作
*/
export function logDelete(records, success, errorMessage, userInfo) {
const recordsInfo = records.map(r => `${r.startNo}-${r.endNo}`).join('、')
const details = success
? `删除门诊号码段(共 ${records.length} 条):${recordsInfo}`
: `尝试删除门诊号码段(共 ${records.length} 条),失败原因:${errorMessage}`
return logOperation({
operation: '删除',
details,
success,
errorMessage,
userInfo
})
}