Compare commits

..

No commits in common. "dde16d4d0212c13b282cb9df9a5a12639bcb2596" and "fc03d50c0748935d3834aa56a212c80208d346e1" have entirely different histories.

5 changed files with 159 additions and 227 deletions

View File

@ -147,27 +147,3 @@ export function delitemtdh(data?: Object) {
params: data
});
}
// 获取仪器参数
export function querydouble(data?: Object) {
return request({
url: '/xminfo/querydouble',
method: 'get',
params: data
});
}
// 保存仪器参数
export function savedouble(data?: Object) {
return request({
url: '/xminfo/savedouble',
method: 'post',
data
});
}
// 获取参数默认模板
export function querymbmc(data?: Object) {
return request({
url: '/xminfo/querymbmc',
method: 'get',
params: data
});
}

View File

@ -171,7 +171,13 @@ service.interceptors.response.use(res => {
})
return Promise.reject('error');
} else if (code === 1) {
//提示并返回数据
//提示并失败
ElNotification({
title: '提示',
message: msg,
type: 'error',
duration: 0,
})
return Promise.resolve(res.data)
} else if (code === 4) {
//返回特定值,需要后续处理,表示当前操作需要处理后再调用,problemId是步骤关键参数,需要再次调用时引入

View File

@ -1,169 +1,159 @@
<template>
<!-- 参数列表 -->
<div>
<template v-if="paramsFlag">
<el-row :gutter="10" class="table-toolbar">
<el-col :span="1.5">
<el-button type="primary" plain icon="Check" @click="handleSave">保存</el-button>
</el-col>
<!-- <el-col :span="1.5">
<el-row :gutter="10" class="table-toolbar">
<el-col :span="1.5">
<el-button type="primary" plain icon="Check" @click="handleSave">保存</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" plain icon="Edit" @click="handleCancelEdit">取消修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" plain icon="RefreshRight" @click="handleRestoreDefault">还原默认</el-button>
</el-col> -->
</el-col>
</el-row>
<el-form ref="form" :model="formData" :rules="rules" label-width="120px" class="form-inline" inline>
<div class="title">说明:公式中阴阳对照请用NC,PC表示</div>
<el-row>
<el-col :span="8">
<el-form-item label="测试波长" prop="csbc">
<el-select v-model="formData.csbc" style="width: 12rem;">
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" style="display: flex;">
<el-form-item label="参考波长" prop="ckbc">
<el-select v-model="formData.ckbc" style="width: 12rem;">
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
</el-select>
</el-form-item>
<el-button type="primary" @click="openDz">滤光片波长对照表</el-button>
</el-col>
<el-col :span="8">
<el-form-item label="阳性判断公式" prop="yxgs">
<el-input v-model="formData.yxgs" />
</el-form-item>
</el-col>
</el-row>
<el-form ref="form" :model="formData" :rules="rules" label-width="120px" class="form-inline" inline>
<div style="display: flex;">
<el-form-item label="项目" prop="xmdh">
<SelectTable v-model:data="xmdh" :tableData="xmList" style="width: 12rem;" @getDataValue='getXmInfo' />
<el-row>
<el-col :span="8">
<el-form-item label="上灰区" prop="shq">
<el-input v-model="formData.shq">
<template #append>% </template>
</el-input>
</el-form-item>
<div class="title">说明:公式中阴阳对照请用NC,PC表示</div>
</div>
<el-row>
<el-col :span="8">
<el-form-item label="测试波长" prop="csbc">
<el-select v-model="formData.csbc" style="width: 12rem;">
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" style="display: flex;">
<el-form-item label="参考波长" prop="ckbc">
<el-select v-model="formData.ckbc" style="width: 12rem;">
<el-option v-for="item in dzList" :key="item.lgph" :value="item.lgph" :label="item.bc" />
</el-select>
</el-form-item>
<el-button type="primary" @click="openDz">滤光片波长对照表</el-button>
</el-col>
<el-col :span="8">
<el-form-item label="阳性判断公式" prop="yxgs">
<el-input v-model="formData.yxgs" />
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-form-item label="下灰区" prop="xhq">
<el-input v-model="formData.xhq">
<template #append>% </template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="阴性对照下限" prop="negxx">
<el-input v-model="formData.negxx" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="上灰区" prop="shq">
<el-input v-model="formData.shq">
<template #append>% </template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="下灰区" prop="xhq">
<el-input v-model="formData.xhq">
<template #append>% </template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="阴性对照下限" prop="negxx">
<el-input v-model="formData.negxx" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="阳性对照下限" prop="posxx">
<el-input v-model="formData.posxx" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="阴性对照上限" prop="negsx">
<el-input v-model="formData.negsx" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="阳性对照上限" prop="possx">
<el-input v-model="formData.possx" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-row>
<el-col :span="8">
<el-form-item label="阳性对照下限" prop="posxx">
<el-input v-model="formData.posxx" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="阴性对照上限" prop="negsx">
<el-input v-model="formData.negsx" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="阳性对照上限" prop="possx">
<el-input v-model="formData.possx" />
</el-form-item>
</el-col>
<el-col :span="6">
</el-col>
</el-row>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col :span="8">
<el-form-item label="项目性质" prop="xmxz">
<el-radio-group v-model="formData.xmxz">
<el-radio value="1">定性</el-radio>
<el-radio value="2">定量</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="移动模式" prop="ydfs">
<el-radio-group v-model="formData.ydfs">
<el-radio value="1">连续</el-radio>
<el-radio value="2">步进</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-divider></el-divider>
<el-row>
<el-col :span="8">
<el-form-item label="项目性质" prop="xmxz">
<el-radio-group v-model="formData.xmxz">
<el-radio value="1">定性</el-radio>
<el-radio value="2">定量</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="移动模式" prop="ydfs">
<el-radio-group v-model="formData.ydfs">
<el-radio value="1">连续</el-radio>
<el-radio value="2">步进</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="测试模式" prop="csms">
<el-radio-group v-model="formData.csms">
<el-radio value="1">终点法</el-radio>
<el-radio value="2">两点法</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="振板频率" prop="zbpl">
<el-radio-group v-model="formData.zbpl">
<el-radio value="1">高</el-radio>
<el-radio value="2">中</el-radio>
<el-radio value="3">低</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="空白形式" prop="kbms">
<el-radio-group v-model="formData.kbms">
<el-radio value="1">空气</el-radio>
<el-radio value="2">试剂</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="振板时间" prop="zbsj">
<el-input v-model="formData.zbsj">
<template #append>秒</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col :span="8">
<el-form-item label="默认模板" prop="mrmb">
<el-select v-model="formData.mrmb" style="width: 12rem;">
<el-option v-for="item in mbList" :key="item.no" :value="item.no" :label="item.na" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" style="display: flex;">
<el-form-item label="默认试剂" prop="mrsjph">
<el-select v-model="formData.mrsjph" style="width: 12rem;">
<el-option v-for="item in sjtableData" :key="item.sjph" :value="item.sjph" :label="item.sjph" />
</el-select>
</el-form-item>
<el-button type="primary" @click="sjHandle">试剂维护</el-button>
</el-col>
</el-row>
</el-form>
</template>
<template v-else>
<el-empty :image-size="200" description="暂无参数配置" />
</template>
<el-form-item label="测试模式" prop="csms">
<el-radio-group v-model="formData.csms">
<el-radio value="1">终点法</el-radio>
<el-radio value="2">两点法</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="振板频率" prop="zbpl">
<el-radio-group v-model="formData.zbpl">
<el-radio value="1">高</el-radio>
<el-radio value="2">中</el-radio>
<el-radio value="3">低</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="空白形式" prop="kbms">
<el-radio-group v-model="formData.kbms">
<el-radio value="1">空气</el-radio>
<el-radio value="2">试剂</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="振板时间" prop="zbsj">
<el-input v-model="formData.zbsj">
<template #append>秒</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col :span="8">
<el-form-item label="默认模板" prop="mrmb">
<el-select v-model="formData.mrmb" style="width: 12rem;">
<!-- <el-option v-for="item in sjtableData" :key="item.sjph" :value="item.sjph" :label="item.sjph" /> -->
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" style="display: flex;">
<el-form-item label="默认试剂" prop="mrsjph">
<el-select v-model="formData.mrsjph" style="width: 12rem;">
<el-option v-for="item in sjtableData" :key="item.sjph" :value="item.sjph" :label="item.sjph" />
</el-select>
</el-form-item>
<el-button type="primary" @click="sjHandle">试剂维护</el-button>
</el-col>
</el-row>
</el-form>
<!-- 波长对照表 -->
<el-dialog v-model="dialogVisible" title="滤光波长对照表" draggable :close-on-click-modal="false" width="500px">
@ -227,16 +217,14 @@
</template>
<script setup lang="ts">
import { queryFilter, addXmFilter, delXmFilter, addXmLot, delXmLot, queryXmLot, querySjcs, querydouble, savedouble, querymbmc } from '@/api/liswork/xtwh/ComOpt'
import { queryFilter, addXmFilter, delXmFilter, addXmLot, delXmLot, queryXmLot, querySjcs } from '@/api/liswork/xtwh/ComOpt'
import { ElMessage } from 'element-plus';
import { formatDict, dictData } from '@/hooks'
import { queryXmInfo } from '@/api/liswork/work/LisWork';
import { get } from 'lodash';
const yq = defineModel<string>()
const dialogVisible = ref(false)
const xmdh = ref('');
const formData = ref({
csbc: '',
ckbc: '',
@ -254,8 +242,7 @@ const formData = ref({
kbms: '1',
zbsj: '',
mrmb: '',
mrsjph: '',
xmdh: '',
mrsjph: ''
});
const rules = ref({
csbc: [
@ -266,18 +253,11 @@ const rules = ref({
]
});
const paramsFlag = ref(true);
const form = ref();
const handleSave = () => {
form.value.validate((valid: boolean) => {
if (valid) {
savedouble(formData.value).then((res: any) => {
if (res.code == 0) {
ElMessage.success('保存成功!')
getXmInfo()
}
})
console.log('submit!')
}
})
}
@ -330,7 +310,6 @@ interface sjList {
sjcs: string, sjph: string, yq: string, yxq: string, csff: string
}
const sjShow = ref(false)
const mbList = ref<Array<{ na: string, no: string }>>([])
const sjtableData = ref<sjList[]>([])
const sjHandle = () => {
getSjList()
@ -384,38 +363,9 @@ const getSjcjList = () => {
})
}
const getXmInfo = () => {
querydouble({ yq: yq.value, xmdh: xmdh.value }).then((res: any) => {
paramsFlag.value = res.code == 1 ? false : true;
formData.value = res.data || {}
})
}
const xmList = ref<Array<{ label: string, value: string }>>([])
const getXmList = () => {
queryXmInfo({ yq: yq.value }).then((res: any) => {
xmList.value = res.data.map((item: any) => {
return {
label: item.xmmc,
value: item.xmdh,
}
})
})
};
onMounted(() => {
querymbmc().then((res: any) => {
mbList.value = res.data || []
})
});
watch(yq, (newVal) => {
if (newVal) {
getXmInfo()
getDzList()
getSjList()
getXmList()
}
xmdh.value = ''
getDzList()
getSjList()
}, {
immediate: true,
deep: true

View File

@ -18,9 +18,9 @@
<div class="table-row">
<CustomTable ref="tableRef" :data="dataList" :columns="columns" :config="tableConfig" :enableRowDrag="true"
@row-drag-end="handleRowDragEnd" @row-click="handleRowClick">
<!-- <template #dyxh="{ row }">
<template #dyxh="{ row }">
<el-input v-model="row.dyxh" class="full-width-input" />
</template> -->
</template>
</CustomTable>
</div>
</div>
@ -44,7 +44,7 @@ const dataList = ref<DataItem[]>([]);
const columns = ref([
{ prop: 'xmid', label: '项目ID', visible: true, align: 'center' },
{ prop: 'xmmc', label: '项目名称', visible: true, align: 'center' },
{ prop: 'dyxh', label: '排序', visible: true, align: 'center', },
{ prop: 'dyxh', label: '排序', visible: true, align: 'center', slot: "dyxh" },
]);
const tableConfig = ref({
border: true, // 边框

View File

@ -112,7 +112,7 @@ const tabList = [
{ key: 'SysSort', label: '项目排序', component: SysSort },
{ key: 'SysReport', label: '报告单设置', component: SysReport },
]
const activeName = ref('SysParameter')
const activeName = ref('SysChannel')
// 计算当前要渲染的组件
const currentComponent = computed(() => {