<template>
|
<div class="maintenance-detail">
|
<!-- 基础信息 -->
|
<el-card class="detail-card">
|
<div slot="header" class="clearfix">
|
<span class="detail-title">供者基本信息</span>
|
<el-button
|
v-if="isEdit"
|
type="primary"
|
style="float: right; padding: 3px 0"
|
@click="handleSave"
|
>
|
保存信息
|
</el-button>
|
</div>
|
|
<el-form :model="form" ref="form" label-width="120px">
|
<el-row :gutter="20">
|
<el-col :span="8">
|
<el-form-item label="案例编号" prop="caseNo">
|
<el-input v-model="form.caseNo" :readonly="!isEdit" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="捐献者姓名" prop="donorName">
|
<el-input v-model="form.donorName" :readonly="!isEdit" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="性别" prop="gender">
|
<el-select v-model="form.gender" :disabled="!isEdit" style="width: 100%">
|
<el-option label="男" value="0" />
|
<el-option label="女" value="1" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="8">
|
<el-form-item label="年龄" prop="age">
|
<el-input v-model="form.age" :readonly="!isEdit" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="疾病诊断" prop="diagnosis">
|
<el-input v-model="form.diagnosis" :readonly="!isEdit" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="所在医疗机构" prop="hospitalName">
|
<el-input v-model="form.hospitalName" :readonly="!isEdit" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="8">
|
<el-form-item label="患者状态" prop="patientStatus">
|
<el-select v-model="form.patientStatus" :disabled="!isEdit" style="width: 100%">
|
<el-option label="DCD" value="1" />
|
<el-option label="DBD" value="2" />
|
<el-option label="DBCD" value="3" />
|
<el-option label="已完成捐献" value="4" />
|
<el-option label="未完成捐献" value="5" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="未完成原因" prop="incompleteReason" v-if="form.patientStatus === '5'">
|
<el-input
|
v-model="form.incompleteReason"
|
:readonly="!isEdit"
|
placeholder="请输入未完成捐献的原因"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="8">
|
<el-form-item label="入院时间" prop="admissionTime">
|
<el-date-picker
|
v-model="form.admissionTime"
|
type="datetime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
style="width: 100%"
|
:disabled="!isEdit"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="出院时间" prop="dischargeTime">
|
<el-date-picker
|
v-model="form.dischargeTime"
|
type="datetime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
style="width: 100%"
|
:disabled="!isEdit"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="协调员" prop="coordinator">
|
<el-input v-model="form.coordinator" :readonly="!isEdit" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="8">
|
<el-form-item label="血型" prop="bloodType">
|
<el-select v-model="form.bloodType" :disabled="!isEdit" style="width: 100%">
|
<el-option label="A型" value="A" />
|
<el-option label="B型" value="B" />
|
<el-option label="O型" value="O" />
|
<el-option label="AB型" value="AB" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="RH因子" prop="rhFactor">
|
<el-select v-model="form.rhFactor" :disabled="!isEdit" style="width: 100%">
|
<el-option label="阳性" value="positive" />
|
<el-option label="阴性" value="negative" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-form-item label="特殊病史" prop="specialMedicalHistory">
|
<el-input
|
type="textarea"
|
:rows="3"
|
v-model="form.specialMedicalHistory"
|
:readonly="!isEdit"
|
placeholder="记录特殊病史信息"
|
/>
|
</el-form-item>
|
</el-form>
|
</el-card>
|
|
<!-- 培养结果记录 -->
|
<!-- 培养结果记录 -->
|
<el-card class="culture-card">
|
<div slot="header" class="clearfix">
|
<span class="detail-title">培养结果记录</span>
|
<el-button
|
type="primary"
|
size="mini"
|
icon="el-icon-plus"
|
@click="handleAddCulture"
|
>
|
新增培养记录
|
</el-button>
|
</div>
|
|
<el-table :data="cultureList" v-loading="cultureLoading">
|
<el-table-column label="培养类型" align="center" prop="cultureType" width="120">
|
<template slot-scope="scope">
|
<dict-tag :options="cultureTypeOptions" :value="scope.row.cultureType" />
|
</template>
|
</el-table-column>
|
<el-table-column label="采样时间" align="center" prop="sampleTime" width="160" />
|
<el-table-column label="培养结果" align="center" prop="result" width="100">
|
<template slot-scope="scope">
|
<el-tag :type="scope.row.result === '阴性' ? 'success' : 'danger'" effect="plain">
|
{{ scope.row.result }}
|
</el-tag>
|
</template>
|
</el-table-column>
|
<el-table-column label="菌种" align="center" prop="bacteria" width="120" />
|
<el-table-column label="药敏结果" align="center" prop="drugSensitivity" min-width="150" show-overflow-tooltip />
|
<el-table-column label="检测机构" align="center" prop="testingInstitution" width="120" />
|
<el-table-column label="操作" align="center" width="180" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-edit"
|
@click="handleEditCulture(scope.row)"
|
>编辑</el-button>
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-delete"
|
style="color: #F56C6C;"
|
@click="handleDeleteCulture(scope.row)"
|
>删除</el-button>
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-view"
|
@click="handleViewCulture(scope.row)"
|
>详情</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<!-- 分页组件 -->
|
<pagination
|
v-show="cultureTotal > 0"
|
:total="cultureTotal"
|
:page.sync="cultureQueryParams.pageNum"
|
:limit.sync="cultureQueryParams.pageSize"
|
@pagination="getCultureList"
|
/>
|
</el-card>
|
|
<!-- 护理核查记录 -->
|
<el-card class="record-card">
|
<div slot="header" class="clearfix">
|
<span class="detail-title">护理核查记录</span>
|
<el-button
|
type="primary"
|
size="mini"
|
icon="el-icon-plus"
|
@click="handleAddRecord"
|
>
|
新增核查记录
|
</el-button>
|
</div>
|
|
<el-table :data="recordList" v-loading="recordLoading">
|
<el-table-column label="核查时间" align="center" prop="recordTime" width="160" />
|
<el-table-column label="核查人" align="center" prop="recorder" width="100" />
|
<el-table-column label="体温(℃)" align="center" prop="temperature" />
|
<el-table-column label="心率(次/分)" align="center" prop="heartRate" />
|
<el-table-column label="血压(mmHg)" align="center" prop="bloodPressure" width="160" />
|
<el-table-column label="呼吸(次/分)" align="center" prop="respirationRate" />
|
<el-table-column label="血氧饱和度(%)" align="center" prop="oxygenSaturation" width="160" />
|
<el-table-column label="尿量(ml/h)" align="center" prop="urineOutput" />
|
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-edit"
|
@click="handleEditRecord(scope.row)"
|
>编辑</el-button>
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-delete"
|
style="color: #F56C6C;"
|
@click="handleDeleteRecord(scope.row)"
|
>删除</el-button>
|
<el-button
|
size="mini"
|
type="text"
|
icon="el-icon-view"
|
@click="handleViewRecord(scope.row)"
|
>详情</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
|
<!-- 分页组件 -->
|
<pagination
|
v-show="recordTotal > 0"
|
:total="recordTotal"
|
:page.sync="recordQueryParams.pageNum"
|
:limit.sync="recordQueryParams.pageSize"
|
@pagination="getRecordList"
|
/>
|
</el-card>
|
|
<!-- 培养记录编辑对话框 -->
|
<el-dialog
|
:title="cultureDialogTitle"
|
:visible.sync="cultureDialogVisible"
|
width="700px"
|
:close-on-click-modal="false"
|
>
|
<el-form :model="cultureForm" ref="cultureForm" :rules="cultureRules" label-width="120px">
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="培养类型" prop="cultureType">
|
<el-select v-model="cultureForm.cultureType" placeholder="请选择培养类型" style="width: 100%">
|
<el-option
|
v-for="item in cultureTypeOptions"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="采样时间" prop="sampleTime">
|
<el-date-picker
|
v-model="cultureForm.sampleTime"
|
type="datetime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
placeholder="选择采样时间"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="培养结果" prop="result">
|
<el-select v-model="cultureForm.result" placeholder="请选择培养结果" style="width: 100%">
|
<el-option label="阴性" value="阴性" />
|
<el-option label="阳性" value="阳性" />
|
</el-select>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="菌种" prop="bacteria">
|
<el-input v-model="cultureForm.bacteria" placeholder="请输入检测到的菌种" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-form-item label="药敏结果" prop="drugSensitivity">
|
<el-input
|
type="textarea"
|
:rows="3"
|
v-model="cultureForm.drugSensitivity"
|
placeholder="请输入药敏试验结果"
|
/>
|
</el-form-item>
|
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="检测机构" prop="testingInstitution">
|
<el-input v-model="cultureForm.testingInstitution" placeholder="请输入检测机构" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="标本类型" prop="specimenType">
|
<el-input v-model="cultureForm.specimenType" placeholder="请输入标本类型" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-form-item label="备注" prop="remarks">
|
<el-input
|
type="textarea"
|
:rows="2"
|
v-model="cultureForm.remarks"
|
placeholder="请输入备注信息"
|
/>
|
</el-form-item>
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="cultureDialogVisible = false">取消</el-button>
|
<el-button type="primary" @click="handleSaveCulture" :loading="cultureSaveLoading">保存</el-button>
|
</span>
|
</el-dialog>
|
|
<!-- 护理核查记录编辑对话框 -->
|
<el-dialog
|
:title="recordDialogTitle"
|
:visible.sync="recordDialogVisible"
|
width="800px"
|
:close-on-click-modal="false"
|
>
|
<el-form :model="recordForm" ref="recordForm" :rules="recordRules" label-width="120px">
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="核查时间" prop="recordTime">
|
<el-date-picker
|
v-model="recordForm.recordTime"
|
type="datetime"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
placeholder="选择核查时间"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="核查人" prop="recorder">
|
<el-input v-model="recordForm.recorder" placeholder="请输入核查人姓名" />
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="8">
|
<el-form-item label="体温(℃)" prop="temperature">
|
<el-input-number
|
v-model="recordForm.temperature"
|
:min="30" :max="45" :step="0.1"
|
controls-position="right"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="心率(次/分)" prop="heartRate">
|
<el-input-number
|
v-model="recordForm.heartRate"
|
:min="0" :max="200"
|
controls-position="right"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="8">
|
<el-form-item label="呼吸(次/分)" prop="respirationRate">
|
<el-input-number
|
v-model="recordForm.respirationRate"
|
:min="0" :max="60"
|
controls-position="right"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="血压(mmHg)" prop="bloodPressure">
|
<el-input v-model="recordForm.bloodPressure" placeholder="格式:收缩压/舒张压" />
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="血氧饱和度(%)" prop="oxygenSaturation">
|
<el-input-number
|
v-model="recordForm.oxygenSaturation"
|
:min="0" :max="100"
|
controls-position="right"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-row :gutter="20">
|
<el-col :span="12">
|
<el-form-item label="尿量(ml/h)" prop="urineOutput">
|
<el-input-number
|
v-model="recordForm.urineOutput"
|
:min="0" :max="1000"
|
controls-position="right"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
<el-col :span="12">
|
<el-form-item label="中心静脉压" prop="cvp">
|
<el-input-number
|
v-model="recordForm.cvp"
|
:min="0" :max="20" :step="0.1"
|
controls-position="right"
|
style="width: 100%"
|
/>
|
</el-form-item>
|
</el-col>
|
</el-row>
|
|
<el-form-item label="备注" prop="remarks">
|
<el-input
|
type="textarea"
|
:rows="3"
|
v-model="recordForm.remarks"
|
placeholder="请输入核查备注信息"
|
/>
|
</el-form-item>
|
</el-form>
|
|
<span slot="footer" class="dialog-footer">
|
<el-button @click="recordDialogVisible = false">取消</el-button>
|
<el-button type="primary" @click="handleSaveRecord" :loading="recordSaveLoading">保存</el-button>
|
</span>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script>
|
import { getMaintenanceDetail, updateMaintenance } from "./mockMaintenanceApi";
|
import { listCultureResults, addCultureResult, updateCultureResult, deleteCultureResult } from "./mockMaintenanceApi";
|
import { listNursingRecords, addNursingRecord, updateNursingRecord, deleteNursingRecord } from "./mockMaintenanceApi";
|
import Pagination from "@/components/Pagination";
|
|
export default {
|
name: "MaintenanceDetail",
|
components: { Pagination },
|
data() {
|
return {
|
isEdit: false,
|
form: {
|
id: undefined,
|
caseNo: '',
|
donorName: '',
|
gender: '',
|
age: '',
|
diagnosis: '',
|
hospitalName: '',
|
patientStatus: '1',
|
admissionTime: '',
|
dischargeTime: '',
|
coordinator: '',
|
bloodType: '',
|
rhFactor: '',
|
specialMedicalHistory: '',
|
incompleteReason: ''
|
},
|
|
// 培养结果相关数据
|
cultureList: [],
|
cultureLoading: false,
|
cultureTotal: 0,
|
cultureQueryParams: {
|
pageNum: 1,
|
pageSize: 10
|
},
|
cultureDialogVisible: false,
|
cultureDialogTitle: '',
|
cultureSaveLoading: false,
|
cultureForm: {
|
id: undefined,
|
cultureType: '',
|
sampleTime: '',
|
result: '阴性',
|
bacteria: '',
|
drugSensitivity: '',
|
testingInstitution: '',
|
specimenType: '',
|
remarks: ''
|
},
|
cultureRules: {
|
cultureType: [{ required: true, message: '请选择培养类型', trigger: 'change' }],
|
sampleTime: [{ required: true, message: '请选择采样时间', trigger: 'change' }],
|
result: [{ required: true, message: '请选择培养结果', trigger: 'change' }]
|
},
|
cultureTypeOptions: [
|
{ value: '1', label: '血培养' },
|
{ value: '2', label: '痰培养' },
|
{ value: '3', label: '尿培养' },
|
{ value: '4', label: '伤口分泌物' },
|
{ value: '5', label: '脑脊液培养' },
|
{ value: '6', label: '其他' }
|
],
|
|
// 护理核查记录相关数据
|
recordList: [],
|
recordLoading: false,
|
recordTotal: 0,
|
recordQueryParams: {
|
pageNum: 1,
|
pageSize: 10
|
},
|
recordDialogVisible: false,
|
recordDialogTitle: '',
|
recordSaveLoading: false,
|
recordForm: {
|
id: undefined,
|
recordTime: '',
|
recorder: '',
|
temperature: 36.5,
|
heartRate: 80,
|
bloodPressure: '120/80',
|
respirationRate: 18,
|
oxygenSaturation: 98,
|
urineOutput: 50,
|
cvp: 8,
|
remarks: ''
|
},
|
recordRules: {
|
recordTime: [{ required: true, message: '请选择核查时间', trigger: 'change' }],
|
recorder: [{ required: true, message: '请输入核查人', trigger: 'blur' }],
|
temperature: [{ required: true, message: '请输入体温', trigger: 'blur' }]
|
}
|
};
|
},
|
created() {
|
const id = this.$route.query.id;
|
this.isEdit = this.$route.query.edit === 'true';
|
if (id) {
|
this.getDetail(id);
|
this.getCultureList();
|
this.getRecordList();
|
}
|
},
|
methods: {
|
// 获取详情
|
getDetail(id) {
|
getMaintenanceDetail(id).then(response => {
|
if (response.code === 200) {
|
this.form = response.data;
|
}
|
});
|
},
|
|
// 培养记录相关方法
|
getCultureList() {
|
this.cultureLoading = true;
|
listCultureResults(this.form.id, this.cultureQueryParams).then(response => {
|
if (response.code === 200) {
|
this.cultureList = response.data.rows;
|
this.cultureTotal = response.data.total;
|
}
|
this.cultureLoading = false;
|
}).catch(() => {
|
this.cultureLoading = false;
|
});
|
},
|
|
handleAddCulture() {
|
this.cultureDialogTitle = '新增培养记录';
|
this.cultureForm = {
|
id: undefined,
|
cultureType: '',
|
sampleTime: '',
|
result: '阴性',
|
bacteria: '',
|
drugSensitivity: '',
|
testingInstitution: '',
|
specimenType: '',
|
remarks: ''
|
};
|
this.cultureDialogVisible = true;
|
this.$nextTick(() => {
|
this.$refs.cultureForm && this.$refs.cultureForm.clearValidate();
|
});
|
},
|
|
handleEditCulture(row) {
|
this.cultureDialogTitle = '编辑培养记录';
|
this.cultureForm = { ...row };
|
this.cultureDialogVisible = true;
|
this.$nextTick(() => {
|
this.$refs.cultureForm && this.$refs.cultureForm.clearValidate();
|
});
|
},
|
|
handleViewCulture(row) {
|
this.$alert(`
|
<div>
|
<p><strong>培养类型:</strong>${this.getCultureTypeLabel(row.cultureType)}</p>
|
<p><strong>采样时间:</strong>${row.sampleTime}</p>
|
<p><strong>培养结果:</strong>${row.result}</p>
|
<p><strong>菌种:</strong>${row.bacteria || '无'}</p>
|
<p><strong>药敏结果:</strong>${row.drugSensitivity || '无'}</p>
|
<p><strong>检测机构:</strong>${row.testingInstitution}</p>
|
</div>
|
`, '培养记录详情', {
|
dangerouslyUseHTMLString: true,
|
customClass: 'detail-dialog'
|
});
|
},
|
|
handleSaveCulture() {
|
this.$refs.cultureForm.validate(valid => {
|
if (valid) {
|
this.cultureSaveLoading = true;
|
const api = this.cultureForm.id ? updateCultureResult : addCultureResult;
|
const requestData = {
|
...this.cultureForm,
|
maintenanceId: this.form.id
|
};
|
|
api(requestData).then(response => {
|
if (response.code === 200) {
|
this.$message.success(this.cultureForm.id ? '修改成功' : '新增成功');
|
this.cultureDialogVisible = false;
|
this.getCultureList();
|
}
|
this.cultureSaveLoading = false;
|
}).catch(() => {
|
this.cultureSaveLoading = false;
|
});
|
}
|
});
|
},
|
|
handleDeleteCulture(row) {
|
this.$confirm('确定要删除这条培养记录吗?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
deleteCultureResult(row.id).then(response => {
|
if (response.code === 200) {
|
this.$message.success('删除成功');
|
this.getCultureList();
|
}
|
});
|
}).catch(() => {});
|
},
|
|
getCultureTypeLabel(value) {
|
const type = this.cultureTypeOptions.find(item => item.value === value);
|
return type ? type.label : '未知';
|
},
|
|
// 护理核查记录相关方法
|
getRecordList() {
|
this.recordLoading = true;
|
listNursingRecords(this.form.id, this.recordQueryParams).then(response => {
|
if (response.code === 200) {
|
this.recordList = response.data.rows;
|
this.recordTotal = response.data.total;
|
}
|
this.recordLoading = false;
|
}).catch(() => {
|
this.recordLoading = false;
|
});
|
},
|
|
handleAddRecord() {
|
this.recordDialogTitle = '新增护理核查记录';
|
this.recordForm = {
|
id: undefined,
|
recordTime: new Date().toISOString().replace('T', ' ').substring(0, 19),
|
recorder: '当前用户', // 实际项目中从用户信息获取
|
temperature: 36.5,
|
heartRate: 80,
|
bloodPressure: '120/80',
|
respirationRate: 18,
|
oxygenSaturation: 98,
|
urineOutput: 50,
|
cvp: 8,
|
remarks: ''
|
};
|
this.recordDialogVisible = true;
|
this.$nextTick(() => {
|
this.$refs.recordForm && this.$refs.recordForm.clearValidate();
|
});
|
},
|
|
handleEditRecord(row) {
|
this.recordDialogTitle = '编辑护理核查记录';
|
this.recordForm = { ...row };
|
this.recordDialogVisible = true;
|
this.$nextTick(() => {
|
this.$refs.recordForm && this.$refs.recordForm.clearValidate();
|
});
|
},
|
|
handleViewRecord(row) {
|
this.$alert(`
|
<div>
|
<p><strong>核查时间:</strong>${row.recordTime}</p>
|
<p><strong>核查人:</strong>${row.recorder}</p>
|
<p><strong>生命体征:</strong></p>
|
<ul>
|
<li>体温:${row.temperature}℃</li>
|
<li>心率:${row.heartRate}次/分</li>
|
<li>血压:${row.bloodPressure}mmHg</li>
|
<li>呼吸:${row.respirationRate}次/分</li>
|
<li>血氧饱和度:${row.oxygenSaturation}%</li>
|
<li>尿量:${row.urineOutput}ml/h</li>
|
</ul>
|
<p><strong>备注:</strong>${row.remarks || '无'}</p>
|
</div>
|
`, '护理核查记录详情', {
|
dangerouslyUseHTMLString: true,
|
customClass: 'detail-dialog'
|
});
|
},
|
|
handleSaveRecord() {
|
this.$refs.recordForm.validate(valid => {
|
if (valid) {
|
this.recordSaveLoading = true;
|
const api = this.recordForm.id ? updateNursingRecord : addNursingRecord;
|
const requestData = {
|
...this.recordForm,
|
maintenanceId: this.form.id
|
};
|
|
api(requestData).then(response => {
|
if (response.code === 200) {
|
this.$message.success(this.recordForm.id ? '修改成功' : '新增成功');
|
this.recordDialogVisible = false;
|
this.getRecordList();
|
}
|
this.recordSaveLoading = false;
|
}).catch(() => {
|
this.recordSaveLoading = false;
|
});
|
}
|
});
|
},
|
|
handleDeleteRecord(row) {
|
this.$confirm('确定要删除这条护理核查记录吗?', '提示', {
|
confirmButtonText: '确定',
|
cancelButtonText: '取消',
|
type: 'warning'
|
}).then(() => {
|
deleteNursingRecord(row.id).then(response => {
|
if (response.code === 200) {
|
this.$message.success('删除成功');
|
this.getRecordList();
|
}
|
});
|
}).catch(() => {});
|
},
|
|
// 保存基本信息
|
handleSave() {
|
this.$refs.form.validate(valid => {
|
if (valid) {
|
updateMaintenance(this.form).then(response => {
|
if (response.code === 200) {
|
this.$message.success("保存成功");
|
this.isEdit = false;
|
}
|
});
|
}
|
});
|
}
|
}
|
};
|
</script>
|
|
<style scoped>
|
.maintenance-detail {
|
padding: 20px;
|
}
|
|
.detail-card {
|
margin-bottom: 20px;
|
}
|
|
.culture-card {
|
margin-bottom: 20px;
|
}
|
|
.record-card {
|
margin-bottom: 20px;
|
}
|
|
.detail-title {
|
font-size: 16px;
|
font-weight: bold;
|
}
|
.maintenance-detail {
|
padding: 20px;
|
}
|
|
.detail-card {
|
margin-bottom: 20px;
|
}
|
|
.culture-card {
|
margin-bottom: 20px;
|
}
|
|
.record-card {
|
margin-bottom: 20px;
|
}
|
|
.detail-title {
|
font-size: 16px;
|
font-weight: bold;
|
}
|
|
.fixed-width .el-button {
|
margin: 0 2px;
|
}
|
|
/* 详情对话框样式 */
|
:deep(.detail-dialog) {
|
width: 500px;
|
}
|
|
:deep(.detail-dialog .el-message-box__content) {
|
line-height: 1.8;
|
}
|
|
:deep(.detail-dialog ul) {
|
margin: 10px 0;
|
padding-left: 20px;
|
}
|
|
:deep(.detail-dialog li) {
|
margin-bottom: 5px;
|
}
|
</style>
|