chenyc
2025-01-16 a5d06bcaaf7761b594ee7425206e2732b05c5e16
gx生化显示
2个文件已修改
282 ■■■■ 已修改文件
src/views/home/components/lis_.ui.vue 212 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/home/index.vue 70 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,25 @@
                            </el-col>
                        </el-row>
                    </el-col>
                    <el-col :span="20" class="card_box" v-loading="loading">
                    <el-col :span="20" class="card_box patTabel" 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-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>
@@ -310,7 +159,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;
@@ -822,7 +672,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();
src/views/home/index.vue
@@ -37,28 +37,8 @@
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="生化数据" name="生化数据">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Aim />
                                </el-icon>
                                <span style="margin-left: 5px">生化数据</span>
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="用药记录" name="用药记录">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Edit />
                                </el-icon>
                                <span style="margin-left: 5px">用药记录</span>
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="历史服务" name="历史服务">
                    <!-- <el-tab-pane label="历史服务" name="历史服务">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
@@ -68,6 +48,17 @@
                            </span>
                        </template>
                        <el-empty  description="该功能未开发"></el-empty> 
                    </el-tab-pane> -->
                    <el-tab-pane label="营养筛查评估" name="营养筛查评估">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Histogram />
                                </el-icon>
                                <span style="margin-left: 5px">营养筛查评估</span>
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="膳食调查" name="膳食调查">
                        <template #label>
@@ -80,17 +71,7 @@
                        </template>
                        
                    </el-tab-pane>
                    <el-tab-pane label="营养筛查评估" name="营养筛查评估">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Histogram />
                                </el-icon>
                                <span style="margin-left: 5px">营养筛查评估</span>
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="方案" name="方案">
                        <template #label>
                            <span class="custom-tabs-label home-title">
@@ -112,6 +93,27 @@
                            </span>
                        </template>
                        <!-- <el-empty  description="该功能未开发"></el-empty>  -->
                    </el-tab-pane>
                    <el-tab-pane label="生化数据" name="生化数据">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Aim />
                                </el-icon>
                                <span style="margin-left: 5px">生化数据</span>
                            </span>
                        </template>
                    </el-tab-pane>
                    <el-tab-pane label="用药记录" name="用药记录">
                        <template #label>
                            <span class="custom-tabs-label home-title">
                                <el-icon>
                                    <Edit />
                                </el-icon>
                                <span style="margin-left: 5px">用药记录</span>
                            </span>
                        </template>
                    </el-tab-pane>
                </el-tabs>
                <div class="itemDoby">
@@ -287,7 +289,7 @@
    .patTabel {
        .el-table th.el-table__cell {
            background-color: #6babfa;
            color: #606266;
            color: #ffffff;
        }
        .el-table__body tr.current-row>td.el-table__cell {