门诊号码管理维护界面-》优化
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.businessrule.appservice;
|
||||
|
||||
import com.openhis.web.businessrule.dto.OutpatientNoLogDto;
|
||||
|
||||
/**
|
||||
* 门诊号码管理服务接口
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-01-XX
|
||||
*/
|
||||
public interface IOutpatientNoAppService {
|
||||
|
||||
/**
|
||||
* 记录操作日志
|
||||
*
|
||||
* @param logDto 日志数据
|
||||
*/
|
||||
void addOperationLog(OutpatientNoLogDto logDto);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.businessrule.appservice.impl;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.openhis.web.businessrule.appservice.IOutpatientNoAppService;
|
||||
import com.openhis.web.businessrule.dto.OutpatientNoLogDto;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 门诊号码管理服务实现
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-01-XX
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class OutpatientNoAppServiceImpl implements IOutpatientNoAppService {
|
||||
|
||||
/**
|
||||
* 记录操作日志
|
||||
*
|
||||
* @param logDto 日志数据
|
||||
*/
|
||||
@Override
|
||||
public void addOperationLog(OutpatientNoLogDto logDto) {
|
||||
// 记录日志到系统日志
|
||||
log.info("门诊号码管理操作日志 - 操作类型: {}, 操作详情: {}, 操作结果: {}, 用户: {} (ID: {})",
|
||||
logDto.getOperation(),
|
||||
logDto.getDetails(),
|
||||
logDto.getSuccess() ? "成功" : "失败",
|
||||
logDto.getUserName(),
|
||||
logDto.getUserId());
|
||||
|
||||
if (logDto.getErrorMessage() != null && !logDto.getErrorMessage().isEmpty()) {
|
||||
log.warn("操作失败原因: {}", logDto.getErrorMessage());
|
||||
}
|
||||
|
||||
// TODO: 如果需要保存到数据库,可以在这里添加数据库操作
|
||||
// 例如:保存到 sys_oper_log 表或其他日志表
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.businessrule.controller;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.businessrule.appservice.IOutpatientNoAppService;
|
||||
import com.openhis.web.businessrule.dto.OutpatientNoLogDto;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 门诊号码管理 controller
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-01-XX
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/business-rule/outpatient-no")
|
||||
@Slf4j
|
||||
@AllArgsConstructor
|
||||
public class OutpatientNoController {
|
||||
|
||||
@Autowired
|
||||
private IOutpatientNoAppService outpatientNoAppService;
|
||||
|
||||
/**
|
||||
* 记录操作日志
|
||||
*
|
||||
* @param logDto 日志数据
|
||||
* @return 结果
|
||||
*/
|
||||
@PostMapping("/log")
|
||||
public R<?> addOperationLog(@RequestBody OutpatientNoLogDto logDto) {
|
||||
try {
|
||||
outpatientNoAppService.addOperationLog(logDto);
|
||||
return R.ok("操作日志记录成功");
|
||||
} catch (Exception e) {
|
||||
log.error("记录操作日志失败", e);
|
||||
return R.fail("操作日志记录失败:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.businessrule.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 门诊号码操作日志DTO
|
||||
*
|
||||
* @author system
|
||||
* @date 2025-01-XX
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class OutpatientNoLogDto {
|
||||
|
||||
/** 操作类型(新增/修改/删除/查询) */
|
||||
private String operation;
|
||||
|
||||
/** 操作详情 */
|
||||
private String details;
|
||||
|
||||
/** 操作是否成功 */
|
||||
private Boolean success;
|
||||
|
||||
/** 错误信息 */
|
||||
private String errorMessage;
|
||||
|
||||
/** 时间戳 */
|
||||
private String timestamp;
|
||||
|
||||
/** 用户ID */
|
||||
private Long userId;
|
||||
|
||||
/** 用户名称 */
|
||||
private String userName;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<!-- Windows XP风格窗口布局,600px固定宽度 -->
|
||||
<!-- 全屏布局 -->
|
||||
<div class="outpatient-no-management-wrapper">
|
||||
<div class="outpatient-no-management">
|
||||
<!--标题栏(32px高) -->
|
||||
@@ -33,18 +33,28 @@
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<!-- 表格内容区(自适应剩余高度) -->
|
||||
<!-- 表格内容区(自适应剩余高度,全屏显示) -->
|
||||
<div class="table-content">
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
:data="tableData"
|
||||
@selection-change="handleSelectionChange"
|
||||
:row-class-name="tableRowClassName"
|
||||
style="width: 100%;"
|
||||
>
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<el-table-column label="序号" type="index" width="60" align="center" />
|
||||
<el-table-column label="操作员" prop="operatorName" min-width="120" />
|
||||
<el-table-column label="员工工号" prop="staffNo" min-width="120" />
|
||||
<el-table-column label="员工工号" prop="staffNo" min-width="120">
|
||||
<template #default="{ row }">
|
||||
<el-input
|
||||
v-if="row._editing"
|
||||
v-model.trim="row.staffNo"
|
||||
placeholder="请输入员工工号"
|
||||
/>
|
||||
<span v-else>{{ row.staffNo }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="领用日期" prop="receiveDate" min-width="140">
|
||||
<template #default="{ row }">
|
||||
<el-date-picker
|
||||
@@ -113,7 +123,7 @@
|
||||
<el-input v-model="editForm.operatorName" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="员工工号">
|
||||
<el-input v-model="editForm.staffNo" disabled />
|
||||
<el-input v-model.trim="editForm.staffNo" placeholder="请输入员工工号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="领用日期">
|
||||
<el-date-picker v-model="editForm.receiveDate" type="date" value-format="YYYY-MM-DD" style="width: 100%" />
|
||||
@@ -174,11 +184,12 @@ const data = reactive({
|
||||
queryParams: {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
onlySelf: true,
|
||||
onlySelf: true, // 默认只查询当前账号下的记录
|
||||
},
|
||||
})
|
||||
const { queryParams } = toRefs(data)
|
||||
|
||||
// 初始化配置并自动获取当前账号下的所有号码段记录
|
||||
initConfig()
|
||||
getList()
|
||||
|
||||
@@ -207,11 +218,13 @@ function onAdd() {
|
||||
const yyyy = now.getFullYear()
|
||||
const mm = String(now.getMonth() + 1).padStart(2, '0')
|
||||
const dd = String(now.getDate()).padStart(2, '0')
|
||||
// 员工工号默认为当前用户ID(文本格式)
|
||||
const defaultStaffNo = String(userStore.id || '')
|
||||
tableData.value.push({
|
||||
id: undefined,
|
||||
operatorId: userStore.id,
|
||||
operatorName: userStore.name || userStore.nickName,
|
||||
staffNo: userStore.id,
|
||||
staffNo: defaultStaffNo, // 默认取当前员工工号(用户ID)
|
||||
receiveDate: `${yyyy}-${mm}-${dd}`,
|
||||
startNo: '',
|
||||
endNo: '',
|
||||
@@ -244,7 +257,8 @@ function openEdit(row, index) {
|
||||
editForm.endNo = row.endNo
|
||||
editForm.usedNo = row.usedNo
|
||||
editForm.operatorName = row.operatorName
|
||||
editForm.staffNo = row.staffNo
|
||||
// 员工工号可编辑,如果为空则默认取当前用户ID
|
||||
editForm.staffNo = row.staffNo || String(userStore.id || '')
|
||||
dialogVisible.value = true
|
||||
}
|
||||
|
||||
@@ -489,8 +503,10 @@ function onDelete() {
|
||||
}
|
||||
}
|
||||
|
||||
// 打开界面系统自动获取当前账号下维护的所有号码段记录
|
||||
function getList() {
|
||||
loading.value = true
|
||||
// 默认只查询当前账号下的记录(onlySelf = true)
|
||||
queryParams.value.onlySelf = !viewAll.value
|
||||
const res = lcList({ ...queryParams.value })
|
||||
tableData.value = res.records.map((it) => ({
|
||||
@@ -498,6 +514,8 @@ function getList() {
|
||||
_editing: false,
|
||||
_error: false,
|
||||
_dirty: false,
|
||||
// 确保员工工号为文本格式
|
||||
staffNo: it.staffNo ? String(it.staffNo) : String(userStore.id || ''),
|
||||
}))
|
||||
total.value = res.total
|
||||
loading.value = false
|
||||
@@ -576,27 +594,30 @@ function lcDeleteByIds(idList) {
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/*Windows XP风格布局 */
|
||||
/* 全屏布局 */
|
||||
|
||||
/* 外层容器 - 居中显示 */
|
||||
/* 外层容器 - 全屏显示 */
|
||||
.outpatient-no-management-wrapper {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
min-height: calc(100vh - 100px);
|
||||
padding: 20px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
min-height: calc(100vh - 84px);
|
||||
padding: 0;
|
||||
background-color: #f0f0f0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* 主容器 - 600px固定宽度 */
|
||||
/* 主容器 - 全屏宽度 */
|
||||
.outpatient-no-management {
|
||||
width: 600px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #D4D0C8;
|
||||
border: 1px solid #000000;
|
||||
box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 500px;
|
||||
flex: 1;
|
||||
min-height: calc(100vh - 84px);
|
||||
}
|
||||
|
||||
/* 标题栏(32px高,背景色#D4D0C8) */
|
||||
@@ -697,19 +718,29 @@ function lcDeleteByIds(idList) {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
/*表格内容区(自适应剩余高度) */
|
||||
/*表格内容区(自适应剩余高度,全屏显示) */
|
||||
.table-content {
|
||||
flex: 1;
|
||||
background-color: #FFFFFF;
|
||||
padding: 8px;
|
||||
overflow: auto;
|
||||
min-height: 400px;
|
||||
overflow: hidden;
|
||||
min-height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* 表格样式(1px实线边框#CCCCCC,表头背景#F0F0F0) */
|
||||
.table-content :deep(.el-table) {
|
||||
border: 1px solid #CCCCCC;
|
||||
font-size: 13px;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.table-content :deep(.el-table__body-wrapper) {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.table-content :deep(.el-table th) {
|
||||
@@ -807,14 +838,9 @@ function lcDeleteByIds(idList) {
|
||||
}
|
||||
|
||||
/* 响应式调整 */
|
||||
@media (max-width: 650px) {
|
||||
@media (max-width: 768px) {
|
||||
.outpatient-no-management {
|
||||
width: 100%;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.outpatient-no-management-wrapper {
|
||||
padding: 0;
|
||||
min-height: calc(100vh - 84px);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user