2025-10-21 17:43:57 +08:00
|
|
|
|
<template>
|
|
|
|
|
|
<div class="app-container">
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
|
<el-col :span="14" :xs="24">
|
|
|
|
|
|
<!-- 表单区域-->
|
|
|
|
|
|
<el-form :inline="true" :model="queryParams" class="mb8">
|
|
|
|
|
|
<el-form-item label="项目类别" prop="userName">
|
|
|
|
|
|
<el-input clearable placeholder="项目类别" prefix-icon="Search" style="width: 150px"/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="细菌标志" prop="bacteriaFlag">
|
|
|
|
|
|
<el-input clearable placeholder="细菌标志" prefix-icon="Search" style="width: 150px"/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="仪器代号" prop="instrumentCode">
|
|
|
|
|
|
<el-input clearable placeholder="仪器代号" prefix-icon="Search" style="width: 130px"/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="快速查找">
|
|
|
|
|
|
<el-input clearable placeholder="快速查找" prefix-icon="Search" style="width: 150px"/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="仪器大类">
|
|
|
|
|
|
<el-input clearable placeholder="仪器大类" prefix-icon="Search" style="width: 150px"/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="项目ID">
|
|
|
|
|
|
<el-input clearable placeholder="项目ID" prefix-icon="Search" style="width: 150px"/>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
|
|
|
<el-radio-group v-model="status" fill="primary" size="large">
|
2025-10-24 15:37:24 +08:00
|
|
|
|
<el-radio value="1">在用</el-radio>
|
|
|
|
|
|
<el-radio value="2">停用</el-radio>
|
|
|
|
|
|
<el-radio value="3">所有</el-radio>
|
2025-10-21 17:43:57 +08:00
|
|
|
|
</el-radio-group>
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item>
|
|
|
|
|
|
<el-checkbox v-model="isMIC" label="隐藏微生物项目" size="large" />
|
2025-10-24 15:37:24 +08:00
|
|
|
|
</el-form-item>
|
2025-10-21 17:43:57 +08:00
|
|
|
|
</el-form>
|
|
|
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
|
|
|
<el-col :span="1.5">
|
|
|
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleAdd">新增</el-button>
|
|
|
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleDel">删除</el-button>
|
|
|
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleDelCorr">删除对应</el-button>
|
|
|
|
|
|
<el-button type="primary" plain icon="Plus" @click="handleSave">保存</el-button>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
<!-- 表格区域-->
|
2025-10-24 15:37:24 +08:00
|
|
|
|
<el-table :data="dataList" height="65vh" border >
|
|
|
|
|
|
<el-table-column label="项目类别" align="center" prop="xmgl">
|
|
|
|
|
|
<template #default="{ row }">
|
|
|
|
|
|
{{ formatDict(row.xmgl, 'XMGL') }}
|
|
|
|
|
|
</template>
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
<el-table-column label="英文缩写" align="center" prop="xmdh"></el-table-column>
|
|
|
|
|
|
<el-table-column label="名称" align="center" prop="xmmc" width="200"></el-table-column>
|
|
|
|
|
|
<el-table-column label="参考值" align="center" prop="dyckz"></el-table-column>
|
|
|
|
|
|
<el-table-column label="单位" align="center" prop="dw"></el-table-column>
|
|
|
|
|
|
<el-table-column label="结果类型" align="center" prop="xmlb"></el-table-column>
|
|
|
|
|
|
<el-table-column label="计算项目" align="center" prop="jsxm"></el-table-column>
|
|
|
|
|
|
<el-table-column label="序号" align="center" prop="dyxh"></el-table-column>
|
|
|
|
|
|
<el-table-column label="调整系数" align="center" prop="xs"></el-table-column>
|
|
|
|
|
|
<el-table-column label="小数位数" align="center" prop="xsws"></el-table-column>
|
|
|
|
|
|
<el-table-column label="稀释倍数" align="center" prop="xsbs"></el-table-column>
|
|
|
|
|
|
<el-table-column label="停用" align="center" prop="uflag"></el-table-column>
|
|
|
|
|
|
<el-table-column label="仪器大类" align="center" prop="yqdl"></el-table-column>
|
|
|
|
|
|
<el-table-column label="项目ID" align="center" prop="xmid"></el-table-column>
|
|
|
|
|
|
<el-table-column label="项目编码" align="center" prop="knowledge"></el-table-column>
|
|
|
|
|
|
<el-table-column label="外部代码1" align="center" prop="val1"></el-table-column>
|
|
|
|
|
|
<el-table-column label="外部代码2" align="center" prop="val2"></el-table-column>
|
|
|
|
|
|
<el-table-column label="外部代码3" align="center" prop="val3"></el-table-column>
|
|
|
|
|
|
<el-table-column label="英文名称" align="center" prop="yymc" width="200"></el-table-column>
|
|
|
|
|
|
<el-table-column label="允许CA(%)" align="center" prop="qccv"></el-table-column>
|
2025-10-21 17:43:57 +08:00
|
|
|
|
</el-table>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
<!-- 右侧区域-->
|
|
|
|
|
|
<el-col :span="10" :xs="24">
|
|
|
|
|
|
<div class="flex gap-2 mt-4">
|
|
|
|
|
|
<el-check-tag checked type="primary" @click="handleTabClick('1')">基本资料</el-check-tag>
|
|
|
|
|
|
<el-check-tag checked type="primary" @click="handleTabClick('2')">常用取值</el-check-tag>
|
|
|
|
|
|
<el-check-tag checked type="primary" @click="handleTabClick('3')">使用仪器</el-check-tag>
|
|
|
|
|
|
<el-check-tag checked type="primary" @click="handleTabClick('4')">知识库</el-check-tag>
|
|
|
|
|
|
<el-check-tag checked type="primary" @click="handleTabClick('5')">整体排序</el-check-tag>
|
|
|
|
|
|
<el-check-tag checked type="primary" @click="handleTabClick('6')">常见描述</el-check-tag>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div>
|
|
|
|
|
|
<Basic :visible="tabVisible === '1'"/>
|
|
|
|
|
|
<CommmonlyValues :visible="tabVisible === '2'"/>
|
|
|
|
|
|
<UseInstr :visible="tabVisible === '3'"/>
|
|
|
|
|
|
<Knowledge :visible="tabVisible === '4'"/>
|
|
|
|
|
|
<Sort :visible="tabVisible === '5'"/>
|
|
|
|
|
|
<CommonDescriptions :visible="tabVisible === '6'"/>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</el-col>
|
|
|
|
|
|
</el-row>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
2025-10-24 15:37:24 +08:00
|
|
|
|
<script setup lang="ts">
|
|
|
|
|
|
import { onMounted, ref,toRaw } from 'vue';
|
2025-10-21 17:43:57 +08:00
|
|
|
|
import Basic from './tab/basic.vue'
|
|
|
|
|
|
import CommmonlyValues from './tab/commmonlyValues.vue'
|
|
|
|
|
|
import UseInstr from './tab/useInstr.vue'
|
|
|
|
|
|
import Knowledge from './tab/knowledge.vue'
|
|
|
|
|
|
import CommonDescriptions from './tab/commonDescriptions.vue'
|
|
|
|
|
|
import Sort from './tab/sort.vue'
|
2025-10-24 15:37:24 +08:00
|
|
|
|
import { queryXmInfoNewService } from '@/api/liswork/labItem/LabItem';
|
|
|
|
|
|
//@ts-ignore
|
|
|
|
|
|
import { comDict } from '@/utils/dict'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
interface DictData {
|
|
|
|
|
|
XMGL?: Array<any>;
|
|
|
|
|
|
[key: string]: any[] | undefined; // 添加索引签名以支持动态访问
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-10-21 17:43:57 +08:00
|
|
|
|
|
|
|
|
|
|
const status = ref(1);
|
|
|
|
|
|
const isMIC = ref(false);
|
|
|
|
|
|
const dataList = ref([])
|
|
|
|
|
|
const tabVisible = ref('1')
|
2025-10-24 15:37:24 +08:00
|
|
|
|
const queryParams = ref()
|
|
|
|
|
|
//字典数据
|
|
|
|
|
|
const dictData = ref<DictData>({});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
onMounted(async () => {
|
|
|
|
|
|
// 初始化数据
|
|
|
|
|
|
const dictRefs = await comDict('XMGL');
|
|
|
|
|
|
// 从 ref 中获取实际数据
|
|
|
|
|
|
dictData.value = {
|
|
|
|
|
|
XMGL: toRaw(dictRefs.XMGL.value) || []
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
queryXmInfoNewService(queryParams.value).then((res: any) => {
|
|
|
|
|
|
dataList.value = res.rows;
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 引入公共组件的字典格式化方法
|
|
|
|
|
|
const formatDict = (v: string, dictType: string) => {
|
|
|
|
|
|
console.log('传入的值v:', v);
|
|
|
|
|
|
const dictArray = dictData.value[dictType];
|
|
|
|
|
|
console.log('对应的字典数组dictArray:', dictArray);
|
|
|
|
|
|
dictArray?.forEach(item => {
|
|
|
|
|
|
console.log('数组元素value:', item.value, '类型:', typeof item.value);
|
|
|
|
|
|
});
|
|
|
|
|
|
const matchedItem = dictArray?.find((item: any) => item.value == v);
|
|
|
|
|
|
console.log('匹配到的item:', matchedItem); // 关键:看是否为undefined
|
|
|
|
|
|
const abc = matchedItem?.label;
|
|
|
|
|
|
console.log('字典数据abc', abc);
|
|
|
|
|
|
return abc;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2025-10-21 17:43:57 +08:00
|
|
|
|
|
|
|
|
|
|
//新增
|
|
|
|
|
|
const handleAdd = () => {
|
|
|
|
|
|
console.log('新增')
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//删除
|
|
|
|
|
|
const handleDel = () => {
|
|
|
|
|
|
console.log('删除')
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//删除对应
|
|
|
|
|
|
const handleDelCorr = () => {
|
|
|
|
|
|
console.log('删除对应')
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//保存
|
|
|
|
|
|
const handleSave = () => {
|
|
|
|
|
|
console.log('保存')
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//标签切换
|
2025-10-24 15:37:24 +08:00
|
|
|
|
const handleTabClick = (tab: string) => {
|
2025-10-21 17:43:57 +08:00
|
|
|
|
tabVisible.value = tab
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</script>
|