From 81ced3885266779c3a3813a0e4687962375b1d62 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期一, 09 六月 2025 19:16:43 +0800
Subject: [PATCH] gx

---
 src/views/home/components/lis_.ui.vue |  221 ++++++++++++-------------------------------------------
 1 files changed, 48 insertions(+), 173 deletions(-)

diff --git a/src/views/home/components/lis_.ui.vue b/src/views/home/components/lis_.ui.vue
index 7c5684e..5df7c16 100644
--- a/src/views/home/components/lis_.ui.vue
+++ b/src/views/home/components/lis_.ui.vue
@@ -1,31 +1,6 @@
 <template>
 	<div class="inspection_project_report_container">
 		<el-row>
-			<el-col :span="24" class="card_box card_box_search">
-				<el-form :model="searchForm" inline size="small">
-					<!-- <el-form-item label="收费项目">
-						<el-select v-model="searchForm.feeItemName" filterable placeholder="收费项目" :loading="feeItemNameLoading" @change="feeItemChange">
-							<el-option v-for="(item, index) in feeItemOptions" :key="index" :label="item" :value="item" />
-						</el-select>
-					</el-form-item> -->
-					<!-- <el-form-item label="患者">
-						<el-select v-model="searchForm.patCode" filterable placeholder="患者" :loading="patLoading">
-							<el-option v-for="(item, index) in patOptions" :key="index" :label="item.patientName" :value="item.code" />
-						</el-select>
-					</el-form-item> -->
-					<el-form-item>
-						<el-button type="primary" :loading="loading" @click="searchFun">
-							<el-icon><RefreshRight /></el-icon>
-							刷新
-						</el-button>
-						<!-- <el-button type="success" :loading="loading" @click="addFun">
-							<el-icon><Plus /></el-icon>
-							新增检验数据
-						</el-button> -->
-					</el-form-item>
-					<el-form-item></el-form-item>
-				</el-form>
-			</el-col>
 			<el-col :span="24" v-loading="loading">
 				<el-row :gutter="15">
 					<el-col :span="4">
@@ -41,8 +16,7 @@
 									:row-class-name="feeItemTableRowClassName"
 									@row-click="feeItemRowClick"
 								>
-									<!-- <el-table-column label="序号" type="index" width="100" /> -->
-									<el-table-column label="收费项目">
+									<el-table-column label="检验项目">
 										<template #default="scope">
 											{{ scope.row }}
 										</template>
@@ -51,150 +25,24 @@
 							</el-col>
 						</el-row>
 					</el-col>
-					<el-col :span="20" class="card_box" v-loading="loading">
-						<el-empty v-if="tableData.length <= 0" description="暂无检验数据" />
-
-						<div class="result_box" v-if="tableHeight > 0" :style="{ height: (tableHeight-10) + 'px' }">
-							<el-descriptions
-								v-for="item in tableData"
-								:key="item.reportCode"
-								class="fee_item_box"
-								:title="formatDescriptionsTitle(item.sampleDate)"
-								:column="4"
-								size="small"
-								border
-							>
-								<!-- <template #extra>
-									<el-button type="primary" size="small" :loading="false" @click="editRow(item)">编辑</el-button>
-									<el-button type="danger" size="small" :loading="false" @click="delRow(item)">删除</el-button>
-								</template> -->
-								<el-descriptions-item v-for="(td, index) in item.results" :key="index">
-									<template #label>
-										<div class="cell-item">
-											{{ td.itemName }}
-										</div>
-									</template>
-									<el-popover placement="right" :width="220" trigger="click">
-										<template #reference>
-											<span class="item_res_text" :style="{ color: formatResultColor(td.resultFlag) }"
-												>{{ td.itemResult }} {{ td.itemResultUnit ? `(${td.itemResultUnit})` : '' }}</span
-											>
-										</template>
-										<div>
-											<el-button type="success" size="mini" @click="editItem(td, item)">编辑</el-button>
-											<el-button type="danger" size="mini" @click="delItem(td)">删除</el-button>
-										</div>
-									</el-popover>
-								</el-descriptions-item>
-							</el-descriptions>
-						</div>
+					<el-col :span="20" class="patTabel" v-loading="loading" >
+						<el-table  stripe border :data="tableData" class="patient_table" :row-class-name="feeItemTableRowClassName">
+							<el-table-column  min-width="110"  fixed  prop="itemType" label="检验日期">
+								<template #default="scope">
+									{{scope.row.sampleDate.substring(0,11)}}
+								</template>
+							</el-table-column>
+							<el-table-column  min-width="100" v-for="(col,index) in tableCols" :key="index" >
+								<template #header> {{col.name}}<br/>{{`${col.参考值 || ''}${col.单位 || ''}`}}</template>
+								<template #default="scope">
+									<span  v-html="funJg(col,scope.row)"></span>
+								</template>
+							</el-table-column>
+						</el-table>
 					</el-col>
 				</el-row>
 			</el-col>
 		</el-row>
-		<!-- 修改单项的dialog -->
-		<el-dialog v-model="isEditItemDialogShow" title="编辑" center width="400px">
-			<el-form ref="editItemFormRef" :model="editItemForm" size="small" :rules="editItemFormRules">
-				<el-form-item label="检验日期">
-					<el-date-picker v-model="editItemForm.sampleDate" type="date" style="width: 100%" placeholder="检验日期" :clearable="false" />
-				</el-form-item>
-				<el-form-item label="检验项目">
-					<el-input disabled v-model="editItemForm.itemName"></el-input>
-				</el-form-item>
-				<el-form-item label="检验结果" prop="itemResult">
-					<el-input v-model="editItemForm.itemResult" @change="(e) => itemInpChangeyz(e, editItemForm)" placeholder="检验结果" clearable>
-						<template #append>
-							<span v-if="editItemForm.itemResultUnit">{{ editItemForm.itemResultUnit }}</span>
-						</template>
-					</el-input>
-				</el-form-item>
-			</el-form>
-			<template #footer>
-				<el-button size="small" :loading="loading" @click="isEditItemDialogShow = false">取消</el-button>
-				<el-button type="primary" size="small" :loading="loading" @click="editItemSubmit(editItemFormRef)">保存</el-button>
-			</template>
-		</el-dialog>
-		<!-- 修改多项 -->
-		<el-dialog v-model="isManyFeeShow" title="编辑" center width="800px" :close-on-click-modal="false">
-			<el-form ref="editManyFeeFormRef" :model="editManyFeeForm" size="small" label-width="150px" label-position="right">
-				<el-row :gutter="10">
-					<el-col :span="12" class="m_b_20">
-						<el-form-item label="检验日期">
-							<el-date-picker v-model="editManyFeeForm.sampleDate" type="date" style="width: 100%" placeholder="检验日期" :clearable="false" />
-						</el-form-item>
-					</el-col>
-					<el-col :span="12" class="m_b_20">
-						<el-form-item label="收费项目">
-							<el-input v-model="searchForm.feeItemName" disabled></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col v-for="(item, index) in editManyFeeForm.children" :key="item.code" :span="12" class="m_b_20">
-						<el-form-item :label="item.itemName">
-							<el-input
-								v-model="item.itemResult"
-								:disabled="item.itemSystemName === '转铁蛋白饱和度' || disabledItem.includes(item.itemSystemName)"
-								@change="(e) => itemInpChangeyz(e, item)"
-								@input="(e) => itemInpChange2(e, item)"
-							>
-								<template #append>
-									<span v-if="item.itemResultUnit">{{ item.itemResultUnit }}</span>
-								</template>
-							</el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :span="24" v-if="searchForm.feeItemName === 'KT/V检查'">
-						<el-form-item label=" ">
-							<el-button type="success" size="small" :loading="loading || addLoading" @click="calculatorKtvAndUrrByUpdate">计算URR K/TV</el-button>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<template #footer>
-				<el-button size="small" :loading="loading" @click="isManyFeeShow = false">取消</el-button>
-				<el-button type="primary" size="small" :loading="loading" @click="editManySubmit(editManyFeeFormRef)">保存</el-button>
-			</template>
-		</el-dialog>
-		<!-- 新增 -->
-		<el-dialog v-model="isShowAddFeeShow" title="新增检验数据" center width="800px" :close-on-click-modal="false">
-			<el-form :model="addFeeForm" v-loading="addLoading" size="small" label-width="150px" label-position="right">
-				<el-row :gutter="10">
-					<el-col :span="12" class="m_b_20">
-						<el-form-item label="检验日期">
-							<el-date-picker v-model="addFeeForm.sampleDate" type="date" style="width: 100%" placeholder="检验日期" :clearable="false" />
-						</el-form-item>
-					</el-col>
-					<el-col :span="12" class="m_b_20">
-						<el-form-item label="收费项目">
-							<el-select v-model="addFeeForm.feeItemName" filterable placeholder="收费项目" @change="feeItemChangeByAdd">
-								<el-option v-for="(item, index) in feeItemOptions" :key="index" :label="item" :value="item" />
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col v-for="(item, index) in addFeeForm.details" :key="index" :span="12" class="m_b_20">
-						<el-form-item :label="item.testItem">
-							<el-input
-								v-model="item.testValue"
-								:disabled="disabledItem.includes(item.stName)"
-								:placeholder="item.placeholder"
-								@change="(e) => itemInpChangeyz(e, item)"
-								@input="(e) => itemInpChange(e, item)"
-							>
-								<template #append>{{ item.testItemUnit }}</template>
-							</el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :span="24" v-if="addFeeForm.feeItemName === 'KT/V检查'">
-						<el-form-item label=" ">
-							<el-button type="success" size="small" :loading="loading || addLoading" @click="calculatorKtvAndUrr">计算URR K/TV</el-button>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<template #footer>
-				<el-button size="small" :loading="loading || addLoading" @click="isShowAddFeeShow = false">取消</el-button>
-				<el-button type="primary" size="small" :loading="loading || addLoading" @click="addSubmit">保存</el-button>
-			</template>
-		</el-dialog>
 	</div>
 </template>
 
@@ -264,7 +112,7 @@
 				});
 			}
 		} else {
-			ElMessage.warning('请选择患者');
+			// ElMessage.warning('请选择患者');
 		}
 	}
 );
@@ -300,7 +148,7 @@
  * 查询
  */
 const searchFun = async () => {
-	if (!searchForm.value.patCode) return ElMessage.warning('请选择患者');
+	if (!searchForm.value.patCode) return true
 	if (!searchForm.value.feeItemName) return ElMessage.warning('请选择收费项目');
 	loading.value = true;
 	try {
@@ -310,7 +158,8 @@
 			isFilterTestItem: 1,
 		};
 		const { data } = await listReportsByPatientApi(params);
-		tableCols.value = data.cols;
+		// tableCols.value = data.cols;
+		tableCols.value=[...data.cols.filter(e => e.排序 !== null).sort((a, b) => a.排序 - b.排序), ...data.cols.filter(e => e.排序 === null)]
 		tableData.value = data.reports;
 	} finally {
 		loading.value = false;
@@ -741,7 +590,7 @@
 		height -= demoFormDom.scrollHeight;
 	}
 
-	height = height - 200;
+	height = height - 140;
 	tableHeight.value = height;
 };
 
@@ -822,7 +671,33 @@
 		addLoading.value = false;
 	}
 };
-
+const funJg=(col:any,row:any)=>{
+	const name=col.系统默认名称;
+	if(row.results.length>0){
+		const x= row.results.findIndex((e:any)=>{return e.itemSystemName===name})
+		if(x==-1){
+			return ''
+		}else{
+			if(row.results[x].resultFlag==='正常'){
+				return `<span style="color: black;">${row.results[x].itemResult}</span>` 
+			}else if(row.results[x].resultFlag==='偏高'){
+				return `<span style="color: red;">${row.results[x].itemResult}</span>` 
+			}else if(row.results[x].resultFlag==='高'){
+				return `<span style="color: red;">${row.results[x].itemResult}</span>` 
+			}
+			else if(row.results[x].resultFlag==='偏低'){
+				return `<span style="color: #409EFF;">${row.results[x].itemResult}</span>` 
+			}else if(row.results[x].resultFlag==='低'){
+				return `<span style="color: #409EFF;">${row.results[x].itemResult}</span>` 
+			} else {
+				return `<span>${row.results[x].itemResult}</span>` 
+			}
+			
+		}
+	}else{
+		return ''
+	}
+}
 onMounted(async () => {
 	setTableHeight();
 	// await getPatients();
@@ -831,7 +706,7 @@
 		// @ts-ignore
 		searchForm.value.patCode = patientsInfo.value.code
 	} else {
-		ElMessage.warning('请选择患者');
+		// ElMessage.warning('请选择患者');
 	}
 	getFeeItems();
 });

--
Gitblit v1.8.0