@ -1,159 +1,169 @@
< template >
<!-- 参数列表 -- >
< div >
< 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" >
< 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-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-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-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 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-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 >
< 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-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 = "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-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-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-col >
< / el-row >
< 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-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-dialog v-model = "dialogVisible" title="滤光波长对照表" draggable :close-on-click-modal="false" width="500px" >
@ -217,14 +227,16 @@
< / template >
< script setup lang = "ts" >
import { queryFilter , addXmFilter , delXmFilter , addXmLot , delXmLot , queryXmLot , querySjcs } from '@/api/liswork/xtwh/ComOpt'
import { queryFilter , addXmFilter , delXmFilter , addXmLot , delXmLot , queryXmLot , querySjcs , querydouble , savedouble , querymbmc } from '@/api/liswork/xtwh/ComOpt'
import { ElMessage } from 'element-plus' ;
import { formatDict , dictData } from '@/hooks'
import { get } from 'lodash' ;
import { queryXmInfo } from '@/api/liswork/work/LisWork' ;
const yq = defineModel < string > ( )
const dialogVisible = ref ( false )
const xmdh = ref ( '' ) ;
const formData = ref ( {
csbc : '' ,
ckbc : '' ,
@ -242,7 +254,8 @@ const formData = ref({
kbms : '1' ,
zbsj : '' ,
mrmb : '' ,
mrsjph : ''
mrsjph : '' ,
xmdh : '' ,
} ) ;
const rules = ref ( {
csbc : [
@ -253,11 +266,18 @@ const rules = ref({
]
} ) ;
const paramsFlag = ref ( true ) ;
const form = ref ( ) ;
const handleSave = ( ) => {
form . value . validate ( ( valid : boolean ) => {
if ( valid ) {
console . log ( 'submit!' )
savedouble ( formData . value ) . then ( ( res : any ) => {
if ( res . code == 0 ) {
ElMessage . success ( '保存成功!' )
getXmInfo ( )
}
} )
}
} )
}
@ -310,6 +330,7 @@ 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 ( )
@ -363,9 +384,38 @@ 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 ) => {
getDzList ( )
getSjList ( )
if ( newVal ) {
getXmInfo ( )
getDzList ( )
getSjList ( )
getXmList ( )
}
xmdh . value = ''
} , {
immediate : true ,
deep : true