使用仪器

This commit is contained in:
jiangs 2025-11-18 18:12:25 +08:00
parent 35d00b9bfa
commit a873cebec1
2 changed files with 70 additions and 13 deletions

11
src/types/Object.d.ts vendored
View File

@ -115,4 +115,15 @@ export class XmValNew {
xh?: number; xh?: number;
jgbz?: string; jgbz?: string;
}
export class XmInfoVs {
yq: string;
xmid: number;
xs?: number;
zkxm?: string;
cksx?: number;
ckxx?: number;
dyckz?: string;
} }

View File

@ -6,22 +6,47 @@
<el-button type="primary" @click="onClickDel">删除</el-button> <el-button type="primary" @click="onClickDel">删除</el-button>
</div> </div>
<CustomTable ref="tableRef" :data="yqList" :columns="columns" :enable-column-drag="true" @column-drag-end="handleColumnDragEnd" <CustomTable ref="tableRef" :data="yqList" :columns="columns" :enable-column-drag="true" @column-drag-end="handleColumnDragEnd"
:config="tableConfig"/> :config="tableConfig" @row-click="onRowClick">
<template #yq="{row}">
<YQSelectTable v-model:data="row.yq" placeholder="请输入仪器名称"/>
</template>
<template #xs="{row}">
<el-input v-model="row.xs" class="full-width-input"/>
</template>
<template #zkxm="{row}">
<el-checkbox v-model="row.zkxm" />
</template>
<template #cksx="{row}">
<el-input v-model="row.cksx" class="full-width-input"></el-input>
</template>
<template #ckxx="{row}">
<el-input v-model="row.ckxx" class="full-width-input"></el-input>
</template>
<template #dyckz="{row}">
<el-input v-model="row.dyckz" class="full-width-input"></el-input>
</template>
</CustomTable>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import CustomTable from '@/components/elTable/index.vue' import CustomTable from '@/components/elTable/index.vue'
import { LabInstr } from '@/types'; import { XmInfoVs } from '@/types';
import { ref } from 'vue' import YQSelectTable from '@/components/SelectTable/YQSelectTable/index.vue'
import {ElMessageBox} from 'element-plus'
const props = defineProps({ const props = defineProps({
// 显示数据 // 显示数据
dataList: { dataList: {
type: Array, type: Array<XmInfoVs>,
required: true, required: true,
default: () => [] default: () => []
},
formData: {
type: Object,
required: false,
default: {}
} }
}); });
@ -29,13 +54,14 @@ const props = defineProps({
//const yq = ref<string>(''); //const yq = ref<string>('');
const tableRef = ref<any>(); const tableRef = ref<any>();
const yqList = ref<any>([]); const yqList = ref<Array<XmInfoVs>>([]);
const columns = ref([ const columns = ref([
{ prop: 'xz', label: '选择', visible: true, align: 'center', width: 50 }, { prop: 'yq', label: '仪器代号', visible: true, align: 'center', slot: 'yq', width: 150 },
{ prop: 'yq', label: '仪器代号', visible: true, align: 'center', width: 150 }, { prop: 'xs', label: '调整系数', visible: true, align: 'center', slot: 'xs', width: 100 },
{ prop: 'yqmc', label: '仪器名称', visible: true, align: 'center', width: 200}, { prop: 'zkxm', label: '质控', visible: true, align: 'center', slot: 'zkxm', width: 40 },
{ prop: 'xs', label: '调整系数', visible: true, align: 'center', width: 100 }, { prop: 'cksx', label: '参考上限', visible: true, align: 'center',slot: 'cksx', width: 100 },
{ prop: 'zkxm', label: '质控', visible: true, align: 'center', width: 100 } { prop: 'ckxx', label: '参考下限', visible: true, align: 'center',slot: 'ckxx', width: 100 },
{ prop: 'dyckz', label: '打印参考值', visible: true, align: 'center',slot: 'dyckz', width: 100 },
]); ]);
const tableConfig = ref({ const tableConfig = ref({
border: true, // 边框 border: true, // 边框
@ -43,6 +69,10 @@ const tableConfig = ref({
highlightCurrentRow: true, // 高亮当前行 highlightCurrentRow: true, // 高亮当前行
// cellStyle: cellStyleHd // cellStyle: cellStyleHd
}) })
const selectRow = ref<XmInfoVs>({
yq: '',
xmid: 0
})
//退拽属性 //退拽属性
@ -61,14 +91,30 @@ const handInputChange = () => {
} }
const onClickAdd = () => { const onClickAdd = () => {
const newData: XmInfoVs = {
yq: '',
xmid: props.formData.xmid,
}
yqList.value.push(newData)
} }
const onClickDel = () => { const onClickDel = async () => {
if(selectRow.value){
await ElMessageBox.confirm('是否要删除选中的数据?','Warning',
{
confirmButtonText: '确认',
cancelButtonText: '取消',
type: 'warning',
});
yqList.value = yqList.value.filter(item => item.yq != selectRow.value.yq);
}
}
const onRowClick = (row: any) => {
selectRow.value = row
} }
onActivated(() =>{ onActivated(() =>{
yqList.value = props.dataList; yqList.value = Array.isArray(props.dataList) ? props.dataList : [];
}) })
</script> </script>