72.系统管理--》基础数据-》科室管理
This commit is contained in:
@@ -41,6 +41,14 @@
|
||||
<el-table-column label="科室分类" align="center" prop="classEnum_dictText" />
|
||||
<el-table-column label="医保码" align="center" prop="ybNo" />
|
||||
<el-table-column label="医保名称" align="center" prop="ybName" />
|
||||
<el-table-column label="挂号科室" align="center">
|
||||
<template #default="scope">
|
||||
{{ scope.row.registerFlag ? '是' : '否' }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="科室位置" align="center" prop="location" show-overflow-tooltip />
|
||||
<el-table-column label="科室简介" align="center" prop="intro" show-overflow-tooltip />
|
||||
<el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
|
||||
<el-table-column label="状态" align="center" prop="activeFlag_dictText" />
|
||||
<el-table-column label="操作" align="center">
|
||||
<template #default="scope">
|
||||
@@ -129,6 +137,35 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-form-item label="挂号科室" prop="registerFlag">
|
||||
<el-radio-group v-model="form.registerFlag" size="large">
|
||||
<el-radio :label="true">是</el-radio>
|
||||
<el-radio :label="false">否</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="科室位置" prop="location">
|
||||
<el-input v-model="form.location" placeholder="请输入科室位置" maxlength="100" show-word-limit />
|
||||
</el-form-item>
|
||||
<el-form-item label="科室简介" prop="intro">
|
||||
<el-input
|
||||
v-model="form.intro"
|
||||
type="textarea"
|
||||
placeholder="请输入科室简介"
|
||||
maxlength="500"
|
||||
show-word-limit
|
||||
:rows="4"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="备注" prop="remark">
|
||||
<el-input
|
||||
v-model="form.remark"
|
||||
type="textarea"
|
||||
placeholder="请输入备注信息"
|
||||
maxlength="1000"
|
||||
show-word-limit
|
||||
:rows="3"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
@@ -141,7 +178,7 @@
|
||||
</template>
|
||||
|
||||
<script setup name="Organization">
|
||||
import { getList, deleteOrganization, addOrganization, updateOrganization, disableOrg, initOrgTypeOption, enableOrg } from './components/api';
|
||||
import { getList, deleteOrganization, addOrganization, updateOrganization, disableOrg, initOrgTypeOption, enableOrg, getOrgDetail } from './components/api';
|
||||
|
||||
const { proxy } = getCurrentInstance();
|
||||
const loading = ref(true);
|
||||
@@ -154,6 +191,10 @@ const form = ref({
|
||||
name: undefined,
|
||||
typeEnum: undefined,
|
||||
busNoParent: undefined,
|
||||
registerFlag: false, // 挂号科室标记
|
||||
location: undefined, // 科室位置
|
||||
intro: undefined, // 科室简介
|
||||
remark: undefined, // 备注
|
||||
});
|
||||
const orgTableRef = ref();
|
||||
const orgRef = ref();
|
||||
@@ -169,6 +210,10 @@ const rules = ref({
|
||||
{ min: 2, max: 20, message: '长度在 2 到 20 个字符', trigger: 'change' },
|
||||
],
|
||||
typeEnum: [{ required: true, message: '请选择科室类型', trigger: 'change' }],
|
||||
// 新增字段验证规则
|
||||
location: [{ required: false, message: '请输入科室位置', trigger: 'blur' }],
|
||||
intro: [{ required: false, message: '请输入科室简介', trigger: 'blur' }],
|
||||
remark: [{ required: false, message: '请输入备注信息', trigger: 'blur' }],
|
||||
});
|
||||
|
||||
getPageList();
|
||||
@@ -230,6 +275,10 @@ function initOption() {
|
||||
|
||||
function reset() {
|
||||
form.value.id = undefined;
|
||||
form.value.registerFlag = false;
|
||||
form.value.location = undefined;
|
||||
form.value.intro = undefined;
|
||||
form.value.remark = undefined;
|
||||
orgRef.value.resetFields();
|
||||
}
|
||||
|
||||
@@ -248,7 +297,7 @@ function getDictLabel(value) {
|
||||
}
|
||||
|
||||
function getPageList() {
|
||||
loading.value = false;
|
||||
loading.value = true;
|
||||
getList(queryParams.value).then((res) => {
|
||||
// 处理返回的科室数据,确保科室分类显示与系统标准字典一致
|
||||
const processedData = res.data.records.map(item => {
|
||||
@@ -269,6 +318,12 @@ function getPageList() {
|
||||
|
||||
organization.value = processedData;
|
||||
total.value = res.data.total;
|
||||
}).catch(error => {
|
||||
console.error('获取科室列表失败:', error);
|
||||
proxy.$modal.msgError('获取科室列表失败,请稍后重试');
|
||||
organization.value = [];
|
||||
total.value = 0;
|
||||
}).finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
@@ -285,17 +340,29 @@ function handelEdit(row) {
|
||||
|
||||
title.value = '编辑科室';
|
||||
open.value = true;
|
||||
setTimeout(() => {
|
||||
form.value.id = row.id;
|
||||
form.value.busNo = row.busNo;
|
||||
form.value.name = row.name;
|
||||
form.value.ybNo = row.ybNo;
|
||||
form.value.ybName = row.ybName;
|
||||
form.value.typeEnum = row.typeEnum;
|
||||
// 确保科室分类值的类型正确,使其能正确匹配下拉选项中的值
|
||||
form.value.classEnum = row.classEnum !== undefined ? String(row.classEnum) : undefined;
|
||||
form.value.busNoParent = row.busNo.split('.').length > 1 ? row.busNo.split('.')[0] : undefined;
|
||||
}, 50);
|
||||
|
||||
// 调用后端API获取完整的科室信息,确保包含所有字段
|
||||
getOrgDetail(row.id).then(res => {
|
||||
if (res.code === 200) {
|
||||
const orgInfo = res.data;
|
||||
form.value.id = orgInfo.id;
|
||||
form.value.busNo = orgInfo.busNo;
|
||||
form.value.name = orgInfo.name;
|
||||
form.value.ybNo = orgInfo.ybNo;
|
||||
form.value.ybName = orgInfo.ybName;
|
||||
form.value.typeEnum = orgInfo.typeEnum;
|
||||
// 确保科室分类值的类型正确,使其能正确匹配下拉选项中的值
|
||||
form.value.classEnum = orgInfo.classEnum !== undefined ? String(orgInfo.classEnum) : undefined;
|
||||
form.value.busNoParent = orgInfo.busNo.split('.').length > 1 ? orgInfo.busNo.split('.')[0] : undefined;
|
||||
form.value.registerFlag = !!orgInfo.registerFlag;
|
||||
form.value.location = orgInfo.location;
|
||||
form.value.intro = orgInfo.intro;
|
||||
form.value.remark = orgInfo.remark;
|
||||
}
|
||||
}).catch(error => {
|
||||
console.error('获取科室信息失败:', error);
|
||||
proxy.$modal.msgError('获取科室信息失败');
|
||||
});
|
||||
}
|
||||
|
||||
function cancel() {
|
||||
@@ -308,20 +375,43 @@ function cancel() {
|
||||
function submitForm() {
|
||||
proxy.$refs['orgRef'].validate((valid) => {
|
||||
if (valid) {
|
||||
// 创建表单数据副本,避免直接修改原始form对象
|
||||
const formData = { ...form.value };
|
||||
// 确保registerFlag从布尔值转换为整数(true=1, false=0)
|
||||
formData.registerFlag = Number(formData.registerFlag ? 1 : 0);
|
||||
|
||||
// 确保classEnum字段有值(数据库必填)
|
||||
// 如果未定义,设置默认值1
|
||||
if (formData.classEnum === undefined || formData.classEnum === null || formData.classEnum === '') {
|
||||
formData.classEnum = 1;
|
||||
}
|
||||
|
||||
// 确保classEnum为数字类型
|
||||
formData.classEnum = Number(formData.classEnum);
|
||||
|
||||
// 验证提交数据
|
||||
console.log('提交的数据:', formData);
|
||||
|
||||
if (form.value.id == undefined) {
|
||||
if (form.value.busNoParent) {
|
||||
form.value.busNo = form.value.busNoParent;
|
||||
formData.busNo = form.value.busNoParent;
|
||||
}
|
||||
addOrganization(form.value).then((res) => {
|
||||
addOrganization(formData).then((res) => {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
open.value = false;
|
||||
getPageList();
|
||||
}).catch(error => {
|
||||
console.error('添加科室失败:', error);
|
||||
proxy.$modal.msgError('添加科室失败,请稍后重试');
|
||||
});
|
||||
} else {
|
||||
updateOrganization(form.value).then((res) => {
|
||||
updateOrganization(formData).then((res) => {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
open.value = false;
|
||||
getPageList();
|
||||
}).catch(error => {
|
||||
console.error('更新科室失败:', error);
|
||||
proxy.$modal.msgError('更新科室失败,请稍后重试');
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -340,8 +430,12 @@ function handleDelete() {
|
||||
loading.value = true;
|
||||
deleteOrganization(selectRowIds.value.join(',')).then((res) => {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
loading.value = false;
|
||||
getPageList();
|
||||
}).catch(error => {
|
||||
console.error('删除科室失败:', error);
|
||||
proxy.$modal.msgError('删除科室失败,请稍后重试');
|
||||
}).finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
// 停用
|
||||
@@ -349,6 +443,9 @@ function handleDisabled(id) {
|
||||
disableOrg(id).then((res) => {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
getPageList();
|
||||
}).catch(error => {
|
||||
console.error('停用科室失败:', error);
|
||||
proxy.$modal.msgError('停用科室失败,请稍后重试');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -357,6 +454,9 @@ function handelEnable(id) {
|
||||
enableOrg(id).then((res) => {
|
||||
proxy.$modal.msgSuccess('操作成功');
|
||||
getPageList();
|
||||
}).catch(error => {
|
||||
console.error('启用科室失败:', error);
|
||||
proxy.$modal.msgError('启用科室失败,请稍后重试');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user