From bcb9976e7680ce67fadb6fec7ab5fca36552cdbc Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 28 一月 2026 17:10:49 +0800
Subject: [PATCH] 青岛维护
---
src/views/business/decide/DecideInfo.vue | 295 +++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 199 insertions(+), 96 deletions(-)
diff --git a/src/views/business/decide/DecideInfo.vue b/src/views/business/decide/DecideInfo.vue
index 4a664a6..74ca8c9 100644
--- a/src/views/business/decide/DecideInfo.vue
+++ b/src/views/business/decide/DecideInfo.vue
@@ -13,33 +13,41 @@
>
淇濆瓨淇℃伅
</el-button>
+ <el-button
+ v-else
+ type="primary"
+ style="float: right; padding: 3px 0"
+ @click="handleEdit"
+ >
+ 缂栬緫淇℃伅
+ </el-button>
</div>
<el-form :model="form" ref="form" :rules="rules" label-width="120px">
<el-row :gutter="20">
<el-col :span="8">
- <el-form-item label="浣忛櫌鍙�" prop="hospitalNo">
+ <el-form-item label="鎹愮尞鑰呯紪鍙�" prop="donorno">
<el-input
- v-model="form.hospitalNo"
+ v-model="form.donorno"
:readonly="!isEdit"
- placeholder="鑷姩鐢熸垚 D+鏁板瓧"
+ placeholder="鑷姩鐢熸垚鎹愮尞鑰呯紪鍙�"
/>
</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 label="鎹愮尞鑰呭鍚�" prop="name">
+ <el-input v-model="form.name" :readonly="!isEdit" />
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="鎬у埆" prop="gender">
+ <el-form-item label="鎬у埆" prop="sex">
<el-select
- v-model="form.gender"
+ v-model="form.sex"
:disabled="!isEdit"
style="width: 100%"
>
- <el-option label="鐢�" value="0" />
- <el-option label="濂�" value="1" />
+ <el-option label="鐢�" value="1" />
+ <el-option label="濂�" value="2" />
</el-select>
</el-form-item>
</el-col>
@@ -52,14 +60,14 @@
</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 label="鐤剧梾璇婃柇" prop="diagnosisname">
+ <el-input v-model="form.diagnosisname" :readonly="!isEdit" />
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="姝讳骸鍘熷洜" prop="deathReason">
+ <el-form-item label="姝讳骸鍘熷洜" prop="deathreason">
<el-select
- v-model="form.deathReason"
+ v-model="form.deathreason"
:disabled="!isEdit"
style="width: 100%"
>
@@ -73,9 +81,9 @@
<el-row :gutter="20">
<el-col :span="8">
- <el-form-item label="姝讳骸鏃堕棿" prop="deathTime">
+ <el-form-item label="姝讳骸鏃堕棿" prop="deathtime">
<el-date-picker
- v-model="form.deathTime"
+ v-model="form.deathtime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
@@ -83,21 +91,61 @@
/>
</el-form-item>
</el-col>
- <el-col :span="8">
- <el-form-item label="鍒ゅ畾鍖荤敓涓�" prop="judgmentDoctor">
- <el-input v-model="form.judgmentDoctorone" :readonly="!isEdit" />
+ <el-col :span="8">
+ <el-form-item label="鍒ゅ畾鍖荤敓涓�" prop="deathjudgedocto">
+ <el-input v-model="form.deathjudgedocto" :readonly="!isEdit" />
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="鍒ゅ畾鍖荤敓浜�" prop="judgmentDoctor">
- <el-input v-model="form.judgmentDoctortwo" :readonly="!isEdit" />
+ <el-form-item label="鍒ゅ畾鍖荤敓浜�" prop="deathjudgedoctt">
+ <el-input v-model="form.deathjudgedoctt" :readonly="!isEdit" />
</el-form-item>
</el-col>
</el-row>
- <el-row>
+
+ <el-row :gutter="20">
<el-col :span="8">
- <el-form-item label="鐧昏浜�" prop="registrant">
- <el-input v-model="form.registrant" :readonly="!isEdit" />
+ <el-form-item label="鍣ㄥ畼鑾峰彇鏈烘瀯" prop="gainhospitalname">
+ <el-input v-model="form.gainhospitalname" :readonly="!isEdit" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏄惁榛樺搥缂呮��" prop="isspendremember">
+ <el-select
+ v-model="form.isspendremember"
+ :disabled="!isEdit"
+ style="width: 100%"
+ >
+ <el-option label="鏄�" :value="1" />
+ <el-option label="鍚�" :value="0" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="鏄惁鎭㈠閬椾綋浠" prop="isrestoreremains">
+ <el-select
+ v-model="form.isrestoreremains"
+ :disabled="!isEdit"
+ style="width: 100%"
+ >
+ <el-option label="鏄�" :value="1" />
+ <el-option label="鍚�" :value="0" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+
+ <el-row :gutter="20">
+ <el-col :span="8">
+ <el-form-item label="璐熻矗浜�" prop="responsibleusername">
+ <el-input v-model="form.responsibleusername" :readonly="!isEdit" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="璁板綍鐘舵��" prop="recordstate">
+ <el-tag :type="getStatusTag(form.recordstate)">
+ {{ getStatusText(form.recordstate) }}
+ </el-tag>
</el-form-item>
</el-col>
</el-row>
@@ -281,7 +329,7 @@
</template>
<script>
-import { getDeathJudgmentDetail, updateDeathJudgment } from "./mockDeathJudgmentApi";
+import { deathinfoedit, deathinfoInfo } from "@/api/businessApi";
export default {
name: "DeathJudgmentDetail",
@@ -294,31 +342,39 @@
// 琛ㄥ崟鏁版嵁
form: {
id: undefined,
- hospitalNo: "",
- donorName: "",
- gender: "",
+ infoid: undefined,
+ donorno: "",
+ name: "",
+ sex: "",
age: "",
- diagnosis: "",
- deathReason: "",
- deathTime: "",
- judgmentDoctor: "",
- judgmentDescription: "",
- registrant: "",
- registrationTime: ""
+ diagnosisname: "",
+ deathreason: "",
+ deathtime: "",
+ deathjudgedocto: "",
+ deathjudgedoctt: "",
+ gainhospitalno: "",
+ gainhospitalname: "",
+ isspendremember: 0,
+ isrestoreremains: 0,
+ rememberannex: "",
+ responsibleuserid: "",
+ responsibleusername: "",
+ recordstate: "0",
+ judgmentDescription: ""
},
// 琛ㄥ崟楠岃瘉瑙勫垯
rules: {
- donorName: [
+ name: [
{ required: true, message: "鎹愮尞鑰呭鍚嶄笉鑳戒负绌�", trigger: "blur" }
],
- deathReason: [
+ deathreason: [
{ required: true, message: "姝讳骸鍘熷洜涓嶈兘涓虹┖", trigger: "change" }
],
- deathTime: [
+ deathtime: [
{ required: true, message: "姝讳骸鏃堕棿涓嶈兘涓虹┖", trigger: "change" }
],
- judgmentDoctor: [
- { required: true, message: "鍒ゅ畾鍖荤敓涓嶈兘涓虹┖", trigger: "blur" }
+ deathjudgedocto: [
+ { required: true, message: "鍒ゅ畾鍖荤敓涓�涓嶈兘涓虹┖", trigger: "blur" }
]
},
// 闄勪欢鐩稿叧鏁版嵁
@@ -358,52 +414,87 @@
if (id && !this.$route.path.includes('/add')) {
this.getDetail(id);
} else if (this.$route.path.includes('/add')) {
- this.generateHospitalNo();
+ this.generateDonorNo();
}
this.getAttachmentList();
},
methods: {
- // 鐢熸垚浣忛櫌鍙�
- generateHospitalNo() {
- // 妯℃嫙鐢熸垚浣忛櫌鍙凤細D + 鏃堕棿鎴冲悗6浣�
+ // 鐢熸垚鎹愮尞鑰呯紪鍙�
+ generateDonorNo() {
const timestamp = Date.now().toString();
- this.form.hospitalNo = 'D' + timestamp.slice(-6);
+ this.form.donorno = 'DONOR' + timestamp.slice(-8);
},
// 鑾峰彇璇︽儏
- getDetail(id) {
- getDeathJudgmentDetail(id).then(response => {
- if (response.code === 200) {
- this.form = response.data;
+ async getDetail(id) {
+ try {
+ const response = await deathinfoInfo({ id });
+ let realData = {};
+
+ if (response && response.data) {
+ realData = response.data;
+ } else if (response) {
+ realData = response;
}
- });
+
+ // 鏄犲皠瀛楁鍒拌〃鍗�
+ this.form = {
+ ...this.form,
+ ...realData,
+ // 纭繚鏁板�肩被鍨嬪瓧娈垫纭浆鎹�
+ isspendremember: realData.isspendremember ? parseInt(realData.isspendremember) : 0,
+ isrestoreremains: realData.isrestoreremains ? parseInt(realData.isrestoreremains) : 0
+ };
+
+ // 瑙f瀽闄勪欢淇℃伅
+ if (realData.rememberannex) {
+ this.parseAttachmentData(realData.rememberannex);
+ }
+
+ } catch (error) {
+ console.error('鑾峰彇姝讳骸鍒ゅ畾璇︽儏澶辫触:', error);
+ this.$message.error('鏁版嵁鍔犺浇澶辫触');
+ }
+ },
+ // 瑙f瀽闄勪欢鏁版嵁
+ parseAttachmentData(attachmentJson) {
+ try {
+ if (attachmentJson) {
+ const attachments = JSON.parse(attachmentJson);
+ if (Array.isArray(attachments)) {
+ this.attachmentList = attachments;
+ }
+ }
+ } catch (error) {
+ console.error('瑙f瀽闄勪欢鏁版嵁澶辫触:', error);
+ }
+ },
+ // 鏋勫缓闄勪欢JSON鏁版嵁
+ buildAttachmentJson() {
+ return JSON.stringify(this.attachmentList);
+ },
+ // 鑾峰彇鐘舵�佹爣绛炬牱寮�
+ getStatusTag(status) {
+ const statusMap = {
+ "0": "warning", // 缁存姢涓�
+ "1": "success", // 宸插畬鎴�
+ "99": "danger" // 宸茬粓姝�
+ };
+ return statusMap[status] || "info";
+ },
+ // 鑾峰彇鐘舵�佹枃鏈�
+ getStatusText(status) {
+ const textMap = {
+ "0": "缁存姢涓�",
+ "1": "宸插畬鎴�",
+ "99": "宸茬粓姝�"
+ };
+ return textMap[status] || "鏈煡鐘舵��";
},
// 鑾峰彇闄勪欢鍒楄〃
getAttachmentList() {
this.attachmentLoading = true;
- // 妯℃嫙闄勪欢鏁版嵁 - 瀹為檯椤圭洰涓粠鎺ュ彛鑾峰彇
+ // 瀹為檯椤圭洰涓粠鎺ュ彛鑾峰彇闄勪欢鏁版嵁
setTimeout(() => {
- this.attachmentList = [
- {
- id: 1,
- type: "1",
- typeName: "鑴戞浜″垽瀹氳〃",
- fileName: "鑴戞浜″垽瀹氳〃_202512001.pdf",
- fileSize: 2548321,
- uploadTime: "2025-12-01 10:30:00",
- uploader: "寮犲尰鐢�",
- fileUrl: "/attachments/brain_death_1.pdf"
- },
- {
- id: 2,
- type: "2",
- typeName: "鑴戠數鍥捐瘎浼拌〃",
- fileName: "鑴戠數鍥捐瘎浼拌〃_202512001.docx",
- fileSize: 512345,
- uploadTime: "2025-12-01 14:20:00",
- uploader: "鏉庡尰鐢�",
- fileUrl: "/attachments/eeg_1.docx"
- }
- ];
this.attachmentLoading = false;
}, 500);
},
@@ -451,7 +542,6 @@
const maxSize = 10 * 1024 * 1024; // 10MB
- // 鏍¢獙鏂囦欢绫诲瀷
const isTypeOk = allowedTypes.includes(file.type) ||
file.name.endsWith('.pdf') ||
file.name.endsWith('.jpg') ||
@@ -467,7 +557,6 @@
return false;
}
- // 鏍¢獙鏂囦欢澶у皬
if (file.size > maxSize) {
this.$message.error('鏂囦欢澶у皬涓嶈兘瓒呰繃10MB');
return false;
@@ -493,7 +582,6 @@
this.uploadLoading = true;
try {
- // 妯℃嫙涓婁紶杩囩▼ - 瀹為檯椤圭洰涓皟鐢ㄤ笂浼犳帴鍙�
for (const file of this.tempFileList) {
const newAttachment = {
id: Date.now() + Math.random(),
@@ -508,6 +596,9 @@
this.attachmentList.push(newAttachment);
}
+
+ // 鏇存柊闄勪欢JSON鏁版嵁鍒拌〃鍗�
+ this.form.rememberannex = this.buildAttachmentJson();
this.$message.success('鏂囦欢涓婁紶鎴愬姛');
this.uploadDialogVisible = false;
@@ -529,6 +620,8 @@
const index = this.attachmentList.findIndex(item => item.id === attachment.id);
if (index !== -1) {
this.attachmentList.splice(index, 1);
+ // 鏇存柊闄勪欢JSON鏁版嵁鍒拌〃鍗�
+ this.form.rememberannex = this.buildAttachmentJson();
this.$message.success('璇勪及琛ㄥ垹闄ゆ垚鍔�');
}
}).catch(() => {});
@@ -549,38 +642,48 @@
},
// 涓嬭浇闄勪欢
handleDownload(attachment) {
- // 瀹為檯椤圭洰涓皟鐢ㄤ笅杞芥帴鍙�
const link = document.createElement('a');
link.href = attachment.fileUrl;
link.download = attachment.fileName;
link.click();
this.$message.success(`寮�濮嬩笅杞�: ${attachment.fileName}`);
},
+ // 缂栬緫淇℃伅
+ handleEdit() {
+ this.isEdit = true;
+ },
// 淇濆瓨淇℃伅
- handleSave() {
- this.$refs.form.validate(valid => {
+ async handleSave() {
+ this.$refs.form.validate(async valid => {
if (valid) {
this.saveLoading = true;
- // 妯℃嫙淇濆瓨杩囩▼
- updateDeathJudgment(this.form)
- .then(response => {
- if (response.code === 200) {
- this.$message.success('淇濆瓨鎴愬姛');
- if (this.$route.path.includes('/add')) {
- this.$router.push('/case/deathJudgment');
- } else {
- this.isEdit = false;
- }
+ try {
+ // 鏋勫缓鎻愪氦鏁版嵁
+ const submitData = {
+ ...this.form,
+ // 纭繚闄勪欢鏁版嵁鏈�鏂�
+ rememberannex: this.buildAttachmentJson()
+ };
+
+ const response = await deathinfoedit(submitData);
+
+ if (response.code === 200) {
+ this.$message.success('淇濆瓨鎴愬姛');
+ this.isEdit = false;
+
+ if (this.$route.path.includes('/add')) {
+ this.$router.push('/case/deathJudgment');
}
- })
- .catch(error => {
- console.error('淇濆瓨澶辫触:', error);
- this.$message.error('淇濆瓨澶辫触');
- })
- .finally(() => {
- this.saveLoading = false;
- });
+ } else {
+ this.$message.error(response.message || '淇濆瓨澶辫触');
+ }
+ } catch (error) {
+ console.error('淇濆瓨澶辫触:', error);
+ this.$message.error('淇濆瓨澶辫触');
+ } finally {
+ this.saveLoading = false;
+ }
}
});
},
--
Gitblit v1.9.3