From 3453ba7e5243022ad4388da1515dc75ad8d81f94 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期日, 17 五月 2026 15:00:23 +0800
Subject: [PATCH] 近期调试
---
src/views/business/course/components/DonorMaintenanceStage.vue | 394 ++++++++++++++++++++++---------------------------------
1 files changed, 157 insertions(+), 237 deletions(-)
diff --git a/src/views/business/course/components/DonorMaintenanceStage.vue b/src/views/business/course/components/DonorMaintenanceStage.vue
index e07bdc9..f30f888 100644
--- a/src/views/business/course/components/DonorMaintenanceStage.vue
+++ b/src/views/business/course/components/DonorMaintenanceStage.vue
@@ -1,171 +1,13 @@
<template>
<div class="maintenance-detail">
- <!-- 鍩虹淇℃伅 -->
- <el-card class="detail-card">
- <div slot="header" class="clearfix">
- <span class="detail-title">渚涜�呭熀鏈俊鎭�</span>
- </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" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鎹愮尞鑰呭鍚�" prop="name">
- <el-input v-model="form.name" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鎬у埆" prop="gender">
- <el-select v-model="form.sex" 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" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鐤剧梾璇婃柇" prop="diagnosisname">
- <el-input v-model="form.diagnosisname" />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="棣栬瘖鍖荤枟鏈烘瀯" prop="treatmenthospitalname">
- <el-input v-model="form.treatmenthospitalname" />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="鎮h�呯姸鎬�" prop="recordstate">
- <el-select v-model="form.recordstate" style="width: 100%">
- <el-option
- v-for="dict in dict.type.sys_DonationCategory || []"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- ></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item
- label="鏈畬鎴愬師鍥�"
- prop="incompleteReason"
- v-if="form.recordstate === '5'"
- >
- <el-input
- v-model="form.incompleteReason"
- placeholder="璇疯緭鍏ユ湭瀹屾垚鎹愮尞鐨勫師鍥�"
- />
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row :gutter="20">
- <el-col :span="8">
- <el-form-item label="涓婃姤鏃堕棿" prop="reporttime">
- <el-date-picker
- v-model="form.reporttime"
- type="datetime"
- value-format="yyyy-MM-dd HH:mm:ss"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="姝讳骸鏃堕棿" prop="deathTime">
- <el-date-picker
- v-model="form.deathTime"
- type="datetime"
- value-format="yyyy-MM-dd HH:mm:ss"
- style="width: 100%"
- />
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="鍗忚皟鍛�" prop="coordinatorName">
- <el-input v-model="form.coordinatorName" />
- </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" style="width: 100%">
- <el-option
- v-for="dict in dict.type.sys_BloodType"
- :key="dict.value"
- :label="dict.label"
- :value="dict.value"
- ></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="Rh(D)" prop="rhYin">
- <el-radio-group v-model="form.rhYin">
- <el-radio
- v-for="dict in dict.type.sys_bloodtype_rhd || []"
- :key="dict.value"
- :label="dict.value"
- >{{ dict.label }}</el-radio
- >
- </el-radio-group>
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-form-item label="鐗规畩鐥呭彶" prop="specialMedicalHistory">
- <el-input
- type="textarea"
- :rows="3"
- v-model="form.specialMedicalHistory"
- placeholder="璁板綍鐗规畩鐥呭彶淇℃伅"
- />
- </el-form-item>
- </el-form>
- </el-card>
-
<el-card class="assessment-card">
- <div slot="header" class="clearfix">
- <span class="detail-title">渚涜�呰瘎浼板悇椤硅褰�</span>
- <el-button
- type="primary"
- size="mini"
- @click="toggleEditMode"
- style="float: right;"
- >
- {{ isEdit ? "瀹屾垚缂栬緫" : "寮�濮嬬紪杈�" }}
- </el-button>
- </div>
-
<el-tabs v-model="activeTab" type="card" @tab-click="handleTabClick">
<!-- 鍩瑰吇缁撴灉璁板綍 -->
<el-tab-pane label="鍩瑰吇缁撴灉" name="culture">
<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">
@@ -231,6 +73,75 @@
</el-table>
</el-card>
</el-tab-pane>
+ <el-tab-pane label="鎶ょ悊鏍告煡璁板綍" name="hlihc">
+ <el-card class="record-card">
+ <div slot="header" class="clearfix">
+ <span class="detail-title">鎶ょ悊鏍告煡璁板綍</span>
+
+ </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="checkRecord"
+ min-width="200"
+ show-overflow-tooltip
+ />
+ <el-table-column label="闄勪欢" align="center" width="120">
+ <template slot-scope="scope">
+ <el-button
+ v-if="
+ scope.row.attachments && scope.row.attachments.length > 0
+ "
+ size="mini"
+ type="text"
+ @click="handleViewRecordAttachments(scope.row)"
+ >
+ 鏌ョ湅闄勪欢({{ scope.row.attachments.length }})
+ </el-button>
+ <span v-else>鏃犻檮浠�</span>
+ </template>
+ </el-table-column>
+ <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="handleEditRecord(scope.row)"
+ >缂栬緫</el-button
+ >
+ <el-button
+ size="mini"
+ type="text"
+ icon="el-icon-delete"
+ style="color: #F56C6C;"
+ @click="handleDeleteRecord(scope.row)"
+ >鍒犻櫎</el-button
+ >
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-card>
+ </el-tab-pane>
<!-- 鑲濆姛鑳借偩鍔熻兘 -->
<el-tab-pane label="鑲濆姛鑳借偩鍔熻兘" name="liverKidney">
@@ -265,78 +176,6 @@
</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="checkRecord"
- min-width="200"
- show-overflow-tooltip
- />
- <el-table-column label="闄勪欢" align="center" width="120">
- <template slot-scope="scope">
- <el-button
- v-if="scope.row.attachments && scope.row.attachments.length > 0"
- size="mini"
- type="text"
- @click="handleViewRecordAttachments(scope.row)"
- >
- 鏌ョ湅闄勪欢({{ scope.row.attachments.length }})
- </el-button>
- <span v-else>鏃犻檮浠�</span>
- </template>
- </el-table-column>
- <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="handleEditRecord(scope.row)"
- >缂栬緫</el-button
- >
- <el-button
- size="mini"
- type="text"
- icon="el-icon-delete"
- style="color: #F56C6C;"
- @click="handleDeleteRecord(scope.row)"
- >鍒犻櫎</el-button
- >
- </template>
- </el-table-column>
- </el-table>
- </el-card>
<!-- 鍩瑰吇璁板綍缂栬緫瀵硅瘽妗� -->
<el-dialog
@@ -483,6 +322,12 @@
<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>
@@ -560,6 +405,8 @@
import LiverKidneyPanel from "@/components/MaintainComponents/LiverKidneyPanel.vue";
import BloodRoutinePanel from "@/components/MaintainComponents/BloodRoutinePanel.vue";
import UrineRoutinePanel from "@/components/MaintainComponents/UrineRoutinePanel.vue";
+import CaseBasicInfo from "@/components/CaseBasicInfo";
+import store from "@/store";
import dayjs from "dayjs";
export default {
@@ -570,7 +417,8 @@
FilePreviewDialog,
LiverKidneyPanel,
BloodRoutinePanel,
- UrineRoutinePanel
+ UrineRoutinePanel,
+ CaseBasicInfo
},
dicts: [
"sys_donornode",
@@ -588,7 +436,7 @@
},
data() {
return {
- isEdit: false,
+ isEdit: true,
currentMaintenanceId: null,
isEditMode: false,
form: {
@@ -696,6 +544,8 @@
};
},
created() {
+ this.caseId = this.infoid;
+
this.loadMaintenanceData();
},
watch: {
@@ -710,15 +560,24 @@
this.cultureLoading = true;
this.recordLoading = true;
+ const id = null;
+ const infoid = this.infoid;
const queryParams = {};
- console.log(this.infoid, "this.infoid");
- if (this.infoid) {
- queryParams.infoid = this.infoid;
+ if (id) {
+ queryParams.infoid = infoid;
+ this.currentMaintenanceId = id;
+ this.isEditMode = true;
+ } else if (infoid) {
+ queryParams.infoid = infoid;
+ this.currentMaintenanceId = null;
+ this.isEditMode = false;
} else {
this.$message.error("缂哄皯蹇呰鐨勮矾鐢卞弬鏁�");
return;
}
+
+ queryParams.infoid = infoid;
const response = await maintainList(queryParams);
if (response.code === 200) {
let maintenanceData = response.data[0];
@@ -772,13 +631,74 @@
}
},
+ // 淇濆瓨鎵�鏈夋暟鎹�
+ async handleSave() {
+ try {
+ const saveData = {
+ ...this.form,
+ itemDesc: {
+ liverKidney: this.assessmentData.liverKidney,
+ bloodRoutine: this.assessmentData.bloodRoutine,
+ urineRoutine: this.assessmentData.urineRoutine,
+ cultureResults: this.cultureList,
+ nursingRecords: this.recordList
+ }
+ };
+ if (saveData.state == 1 || !saveData.state) {
+ saveData.state = 2;
+ }
+ this.extracontentinfo.specialMedicalHistory = this.form.specialMedicalHistory;
+ let response;
+ if (this.isEditMode && this.currentMaintenanceId) {
+ saveData.id = this.currentMaintenanceId;
+ response = await maintainedit(saveData);
+ } else {
+ response = await maintainAdd(saveData);
+ }
+
+ if (response.code === 200) {
+ this.$message.success("淇濆瓨鎴愬姛");
+ this.isEdit = false;
+ if (!this.currentMaintenanceId) {
+ this.currentMaintenanceId = response.data;
+ }
+ // this.donatebaseinfoEdit({
+ // id: this.$route.query.infoid,
+ // extracontent: JSON.stringify(this.extracontentinfo)
+ // });
+ if (!this.isEditMode && response.data && response.data.id) {
+ this.currentMaintenanceId = response.data.id;
+ this.isEditMode = true;
+ }
+ } else {
+ this.$message.error("淇濆瓨澶辫触锛�" + (response.msg || "鏈煡閿欒"));
+ }
+ } catch (error) {
+ console.error("淇濆瓨鏁版嵁澶辫触:", error);
+ this.$message.error("淇濆瓨澶辫触");
+ }
+ },
+
// 鍒囨崲缂栬緫妯″紡
toggleEditMode() {
this.isEdit = !this.isEdit;
if (!this.isEdit) {
+ this.handleSave();
}
},
+ accomplish() {
+ this.$confirm("鏄惁瀹屾垚璇ユ渚嬫崘鐚‘璁ゆ楠わ紵", "鎻愰啋", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning"
+ })
+ .then(() => {
+ this.form.state = 3;
+ this.handleSave();
+ })
+ .catch(() => {});
+ },
// 鍩瑰吇璁板綍鐩稿叧鏂规硶
handleAddCulture() {
this.cultureDialogTitle = "鏂板鍩瑰吇璁板綍";
@@ -863,7 +783,7 @@
.toISOString()
.replace("T", " ")
.substring(0, 19),
- recorder: "褰撳墠鐢ㄦ埛",
+ recorder: store.getters.name,
checkRecord: "",
attachments: []
};
--
Gitblit v1.9.3